/** * New grouped configuration interfaces for better API organization * This provides a cleaner, more intuitive way to configure the timeline */ /** * Layout and sizing configuration */ export interface LayoutConfig { /** Maximum width of timeline cards in pixels */ cardWidth?: number; /** Height of timeline cards in pixels, or 'auto' for automatic sizing based on content */ cardHeight?: number | 'auto'; /** Size of timeline points in pixels */ pointSize?: number; /** Width of the timeline track line in pixels */ lineWidth?: number; /** Width of each timeline section in horizontal mode */ itemWidth?: number; /** Height of the timeline container (number = px or CSS length string) */ timelineHeight?: number | string; /** Responsive behavior configuration */ responsive?: { /** Viewport width breakpoint for switching modes */ breakpoint?: number; /** Whether responsive breakpoint switching is enabled */ enabled?: boolean; }; /** Positioning and layout options */ positioning?: { /** Card position in horizontal mode */ cardPosition?: 'top' | 'bottom'; /** Flip layout for RTL support */ flipLayout?: boolean; }; } /** * User interaction and navigation configuration */ export interface InteractionConfig { /** Enable keyboard navigation with arrow keys */ keyboardNavigation?: boolean; /** Enable clicking on timeline points */ pointClick?: boolean; /** Enable auto-scroll to active items */ autoScroll?: boolean; /** Focus active item on component load */ focusOnLoad?: boolean; /** Highlight cards on mouse hover */ cardHover?: boolean; /** Disable all user interactions */ disabled?: boolean; } /** * Content handling and display configuration */ export interface ContentConfig { /** Allow HTML parsing in card content */ allowHTML?: boolean; /** Enable read more functionality for long content */ readMore?: boolean; /** Display text as overlay on media */ textOverlay?: boolean; /** Date format for timeline titles */ dateFormat?: string; /** Use compact text display */ compactText?: boolean; /** Semantic HTML tags for accessibility */ semanticTags?: { title?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' | 'div'; subtitle?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' | 'div'; }; /** Content alignment within timeline cards */ alignment?: { /** Horizontal alignment of content */ horizontal?: 'left' | 'center' | 'right' | 'stretch'; /** Vertical alignment of content */ vertical?: 'top' | 'center' | 'bottom' | 'stretch'; }; } /** * Visual display and styling configuration */ export interface DisplayConfig { /** Remove borders and shadows from cards */ borderless?: boolean; /** Hide timeline cards completely */ cardsDisabled?: boolean; /** Hide timeline points */ pointsDisabled?: boolean; /** Shape of timeline points */ pointShape?: 'circle' | 'square' | 'diamond'; /** Show all cards simultaneously in horizontal mode */ allCardsVisible?: boolean; /** Toolbar configuration */ toolbar?: { /** Enable/disable the toolbar */ enabled?: boolean; /** Position of the toolbar */ position?: 'top' | 'bottom'; /** Make toolbar sticky during scroll */ sticky?: boolean; /** Search input width configuration */ search?: { /** Default width of search section (CSS length string) */ width?: string; /** Maximum width of search section (CSS length string) */ maxWidth?: string; /** Minimum width of search section (CSS length string) */ minWidth?: string; /** Width of actual input field (CSS length string) */ inputWidth?: string; /** Maximum width of actual input field (CSS length string) */ inputMaxWidth?: string; }; }; /** Scrolling configuration */ scrollable?: boolean | { /** Show scrollbar */ scrollbar: boolean; }; } /** * Media content configuration */ export interface MediaConfig { /** Minimum height of media elements in pixels */ height?: number; /** Media alignment within cards */ align?: 'left' | 'center' | 'right'; /** CSS object-fit property for images */ fit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'; } /** * Animation and slideshow configuration */ export interface AnimationConfig { /** Slideshow configuration */ slideshow?: { /** Enable slideshow functionality */ enabled?: boolean; /** Duration each slide is displayed in milliseconds */ duration?: number; /** Type of slideshow transition animation */ type?: 'reveal' | 'slide' | 'fade'; /** Auto-start slideshow on load */ autoStart?: boolean; /** Show progress indicator on individual cards */ showProgress?: boolean; /** Show overall progress bar */ showOverallProgress?: boolean; }; } /** * Styling and theming configuration */ export interface StyleConfig { /** Custom CSS class names for elements */ classNames?: { card?: string; cardMedia?: string; cardSubTitle?: string; cardText?: string; cardTitle?: string; controls?: string; title?: string; timelinePoint?: string; timelineTrack?: string; }; /** Custom font sizes */ fontSizes?: { cardSubtitle?: string; cardText?: string; cardTitle?: string; title?: string; }; /** Google Fonts configuration */ googleFonts?: { /** Primary font family name from Google Fonts */ fontFamily: string; /** Font configurations for different text elements */ elements?: { /** Timeline item titles */ title?: { weight?: 'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; style?: 'normal' | 'italic'; size?: string; }; /** Timeline card titles */ cardTitle?: { weight?: 'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; style?: 'normal' | 'italic'; size?: string; }; /** Timeline card subtitles */ cardSubtitle?: { weight?: 'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; style?: 'normal' | 'italic'; size?: string; }; /** Timeline card main text content */ cardText?: { weight?: 'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; style?: 'normal' | 'italic'; size?: string; }; /** Timeline controls and UI text */ controls?: { weight?: 'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900; style?: 'normal' | 'italic'; size?: string; }; }; /** Additional font weights to load */ weights?: Array<'thin' | 'extra-light' | 'light' | 'regular' | 'medium' | 'semi-bold' | 'bold' | 'extra-bold' | 'black' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 'italic' | string>; /** Font display strategy for loading */ display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional'; /** Preconnect to Google Fonts for faster loading */ preconnect?: boolean; }; } /** * Accessibility and internationalization */ export interface AccessibilityConfig { /** Custom button text labels */ buttonTexts?: { first?: string; last?: string; next?: string; previous?: string; play?: string; stop?: string; }; /** Search functionality labels */ search?: { placeholder?: string; ariaLabel?: string; clearLabel?: string; }; } /** * Comprehensive internationalization configuration */ export interface I18nConfig { /** Complete internationalization configuration for all timeline texts */ texts?: import('./TimelineI18n').TimelineI18nConfig; /** Locale code (e.g., 'en', 'es', 'fr', 'de') for future locale-specific features */ locale?: string; /** Text direction for RTL language support */ direction?: 'ltr' | 'rtl'; } /** * Dark mode configuration */ export interface DarkModeConfig { /** Enable dark mode */ enabled?: boolean; /** Show dark mode toggle button in toolbar */ showToggle?: boolean; } //# sourceMappingURL=TimelineConfig.d.ts.map