/** * Comprehensive internationalization configuration for React Chrono Timeline * * This interface provides complete localization support for all user-facing * text content within the timeline component, including navigation controls, * search functionality, accessibility labels, and interactive elements. */ /** * Navigation control text labels */ export interface NavigationTexts { /** Label for the first item button */ first?: string; /** Label for the last item button */ last?: string; /** Label for the next item button */ next?: string; /** Label for the previous item button */ previous?: string; /** Label for the play slideshow button */ play?: string; /** Label for the stop/pause slideshow button */ stop?: string; /** Label for the pause slideshow button */ pause?: string; /** Label for the resume slideshow button */ resume?: string; } /** * Search functionality text labels */ export interface SearchTexts { /** Placeholder text for search input field */ placeholder?: string; /** ARIA label for search input field */ ariaLabel?: string; /** Label for clear search button */ clearLabel?: string; /** Label for next match button */ nextMatch?: string; /** Label for previous match button */ previousMatch?: string; /** Text template for search results count (uses {current} and {total} placeholders) */ resultsCount?: string; /** Text when no search results found */ noResults?: string; /** ARIA label for search navigation controls */ navigationLabel?: string; } /** * Theme and display mode text labels */ export interface ThemeTexts { /** Label for dark mode button */ darkMode?: string; /** Label for light mode button */ lightMode?: string; /** Label for theme toggle button */ toggleTheme?: string; } /** * Layout and view mode text labels */ export interface LayoutTexts { /** Label for vertical layout mode */ vertical?: string; /** Label for horizontal layout mode */ horizontal?: string; /** Label for alternating layout mode */ alternating?: string; /** Label for horizontal-all layout mode */ horizontalAll?: string; /** Label for layout switcher */ switchLayout?: string; /** ARIA label for layout selection */ layoutSelection?: string; } /** * Fullscreen functionality text labels */ export interface FullscreenTexts { /** Label for enter fullscreen button */ enterFullscreen?: string; /** Label for exit fullscreen button */ exitFullscreen?: string; /** Error message when fullscreen is not supported */ notSupported?: string; /** Error message when fullscreen request fails */ errorMessage?: string; } /** * Quick navigation text labels */ export interface QuickJumpTexts { /** Label for quick jump dropdown */ jumpTo?: string; /** ARIA label for quick jump selection */ jumpToAriaLabel?: string; /** Template for timeline item options in quick jump (uses {index} and {title} placeholders) */ itemTemplate?: string; } /** * Content interaction text labels */ export interface ContentTexts { /** Label for read more button */ readMore?: string; /** Label for show less button */ showLess?: string; /** Label for expand content button */ expand?: string; /** Label for collapse content button */ collapse?: string; /** ARIA label for card interactions */ cardInteraction?: string; } /** * Loading and status text labels */ export interface StatusTexts { /** Loading message */ loading?: string; /** Error message for general errors */ error?: string; /** Message when no items are available */ noItems?: string; /** Message when timeline is empty */ empty?: string; } /** * Accessibility text labels for screen readers */ export interface AccessibilityTexts { /** ARIA label for timeline navigation group */ timelineNavigation?: string; /** ARIA label for timeline container */ timelineContainer?: string; /** ARIA label for individual timeline items */ timelineItem?: string; /** ARIA label for active timeline item */ activeItem?: string; /** ARIA label for timeline point/marker */ timelinePoint?: string; /** ARIA label for timeline card */ timelineCard?: string; /** ARIA label for nested timeline items */ nestedItems?: string; /** Template for item position announcement (uses {current} and {total} placeholders) */ itemPosition?: string; } /** * Density and view options text labels */ export interface ViewTexts { /** Label for compact view */ compact?: string; /** Label for detailed view */ detailed?: string; /** Label for view density toggle */ toggleDensity?: string; /** ARIA label for density selection */ densitySelection?: string; } /** * Keyboard navigation help text */ export interface KeyboardTexts { /** Help text for arrow key navigation */ arrowKeys?: string; /** Help text for home key */ homeKey?: string; /** Help text for end key */ endKey?: string; /** Help text for enter key */ enterKey?: string; /** Help text for escape key */ escapeKey?: string; /** Help text for tab navigation */ tabNavigation?: string; /** General keyboard navigation help */ keyboardHelp?: string; } /** * Complete internationalization configuration interface */ export interface TimelineI18nConfig { /** Navigation control labels */ navigation?: NavigationTexts; /** Search functionality labels */ search?: SearchTexts; /** Theme and display mode labels */ theme?: ThemeTexts; /** Layout and view mode labels */ layout?: LayoutTexts; /** Fullscreen functionality labels */ fullscreen?: FullscreenTexts; /** Quick navigation labels */ quickJump?: QuickJumpTexts; /** Content interaction labels */ content?: ContentTexts; /** Loading and status labels */ status?: StatusTexts; /** Accessibility labels for screen readers */ accessibility?: AccessibilityTexts; /** Density and view options labels */ view?: ViewTexts; /** Keyboard navigation help text */ keyboard?: KeyboardTexts; } /** * Default English text values for all internationalization strings */ export declare const defaultI18nTexts: Required; /** * Utility function to merge user-provided i18n config with defaults */ export declare function mergeI18nConfig(userConfig?: TimelineI18nConfig): Required; /** * Utility function to interpolate template strings with variables * Example: interpolateString('{current} of {total}', { current: 1, total: 5 }) => '1 of 5' */ export declare function interpolateString(template: string, variables: Record): string; //# sourceMappingURL=TimelineI18n.d.ts.map