UNPKG

watercolor-ui

Version:

A modern minimalist cross-framework component library

257 lines 7.64 kB
/** * Handle keyboard navigation * @param {Event} event - Keyboard event * @param {number} currentIndex - Current tab index * @param {Array} tabs - Array of tabs * @param {string} orientation - Tab orientation * @returns {number} New tab index */ export function handleKeyboardNavigation(event: Event, currentIndex: number, tabs: any[], orientation?: string): number; /** * Find next enabled tab * @param {number} currentIndex - Current index * @param {Array} tabs - Array of tabs * @returns {number} Next enabled tab index */ export function findNextEnabledTab(currentIndex: number, tabs: any[]): number; /** * Find previous enabled tab * @param {number} currentIndex - Current index * @param {Array} tabs - Array of tabs * @returns {number} Previous enabled tab index */ export function findPreviousEnabledTab(currentIndex: number, tabs: any[]): number; /** * Find first enabled tab * @param {Array} tabs - Array of tabs * @returns {number} First enabled tab index */ export function findFirstEnabledTab(tabs: any[]): number; /** * Find last enabled tab * @param {Array} tabs - Array of tabs * @returns {number} Last enabled tab index */ export function findLastEnabledTab(tabs: any[]): number; /** * Generate tabs wrapper classes * @param {Object} props - Component props * @returns {string} Class names */ export function getTabsWrapperClasses(props?: Object): string; /** * Generate tabs container classes * @param {Object} props - Component props * @returns {string} Class names */ export function getTabsClasses(props?: Object): string; /** * Generate tab classes * @param {Object} props - Component props * @returns {string} Class names */ export function getTabClasses(props?: Object): string; /** * Generate tab content classes * @param {Object} props - Component props * @returns {string} Class names */ export function getTabContentClasses(props?: Object): string; /** * Create controlled tab state * @param {Object} config - Configuration * @returns {Object} State management object */ export function createTabState(config?: Object): Object; /** * Animate tab content transition * @param {Element} element - Content element * @param {Object} options - Animation options * @returns {Promise} Animation promise */ export function animateTabContent(element: Element, options?: Object): Promise<any>; /** * Generate ARIA attributes for tabs * @param {Object} props - Component props * @returns {Object} ARIA attributes */ export function getTabsAriaAttributes(props?: Object): Object; /** * Generate ARIA attributes for individual tab * @param {Object} props - Component props * @returns {Object} ARIA attributes */ export function getTabAriaAttributes(props?: Object): Object; /** * Generate ARIA attributes for tab panel * @param {Object} props - Component props * @returns {Object} ARIA attributes */ export function getTabPanelAriaAttributes(props?: Object): Object; /** * Validate tabs configuration * @param {Array} tabs - Tabs array * @returns {Object} Validation result */ export function validateTabs(tabs: any[]): Object; /** * Validate tab props * @param {Object} props - Component props * @returns {Object} Validation result */ export function validateTabProps(props?: Object): Object; /** * Debounce tab change handler * @param {Function} handler - Change handler * @param {number} delay - Debounce delay * @returns {Function} Debounced handler */ export function debounceTabChange(handler: Function, delay?: number): Function; /** * Throttle tab change handler * @param {Function} handler - Change handler * @param {number} delay - Throttle delay * @returns {Function} Throttled handler */ export function throttleTabChange(handler: Function, delay?: number): Function; /** * Create tab ID generator * @param {string} prefix - ID prefix * @returns {Function} ID generator function */ export function createTabIdGenerator(prefix?: string): Function; /** * Scroll tab into view * @param {Element} tabElement - Tab element * @param {Element} containerElement - Container element * @param {Object} options - Scroll options */ export function scrollTabIntoView(tabElement: Element, containerElement: Element, options?: Object): void; export namespace TAB_VARIANTS { let _default: string; export { _default as default }; export let pills: string; export let underline: string; export let bordered: string; export let segmented: string; export let minimal: string; export let filled: string; } export namespace TAB_SIZES { let sm: string; let md: string; let lg: string; } export namespace TAB_ORIENTATIONS { let horizontal: string; let vertical: string; } export namespace KEY_CODES { let ARROW_LEFT: number; let ARROW_UP: number; let ARROW_RIGHT: number; let ARROW_DOWN: number; let HOME: number; let END: number; let ENTER: number; let SPACE: number; } /** * Tab Manager Class * Manages tab state, navigation, and lifecycle */ export class TabManager { constructor(config?: {}); tabs: any[]; activeIndex: any; orientation: any; variant: any; size: any; allowKeyboardNavigation: boolean; lazy: any; keepAlive: any; onChange: any; onTabLoad: any; loadedTabs: Set<any>; /** * Add tab to manager * @param {Object} tab - Tab configuration * @returns {number} Tab index */ addTab(tab: Object): number; /** * Remove tab by index * @param {number} index - Tab index * @returns {boolean} Success */ removeTab(index: number): boolean; /** * Set active tab * @param {number} index - Tab index * @returns {boolean} Success */ setActiveTab(index: number): boolean; /** * Get active tab * @returns {Object|null} Active tab */ getActiveTab(): Object | null; /** * Get tab by index * @param {number} index - Tab index * @returns {Object|null} Tab */ getTab(index: number): Object | null; /** * Mark tab as loaded * @param {number} index - Tab index */ markTabAsLoaded(index: number): void; /** * Check if tab is loaded * @param {number} index - Tab index * @returns {boolean} Is loaded */ isTabLoaded(index: number): boolean; /** * Notify change listeners * @param {number} index - New active index */ notifyChange(index: number): void; /** * Update tab properties * @param {number} index - Tab index * @param {Object} updates - Properties to update * @returns {boolean} Success */ updateTab(index: number, updates: Object): boolean; } declare namespace _default { export { TAB_VARIANTS }; export { TAB_SIZES }; export { TAB_ORIENTATIONS }; export { KEY_CODES }; export { TabManager }; export { handleKeyboardNavigation }; export { findNextEnabledTab }; export { findPreviousEnabledTab }; export { findFirstEnabledTab }; export { findLastEnabledTab }; export { getTabsWrapperClasses }; export { getTabsClasses }; export { getTabClasses }; export { getTabContentClasses }; export { createTabState }; export { animateTabContent }; export { getTabsAriaAttributes }; export { getTabAriaAttributes }; export { getTabPanelAriaAttributes }; export { validateTabs }; export { validateTabProps }; export { debounceTabChange }; export { throttleTabChange }; export { createTabIdGenerator }; export { scrollTabIntoView }; } export default _default; //# sourceMappingURL=utils.d.ts.map