import type { ThemeColor } from '../../types'; import '../../content/icon/icon'; import '../../feedback/progress/progress'; import './carousel-slide'; export { CAROUSEL_SLIDE_TAG } from './carousel-slide'; export type CarouselOrientation = 'horizontal' | 'vertical'; export type CarouselVariant = 'default' | 'fade' | 'filmstrip' | 'gallery'; export type OreCarouselEvents = { /** Fired when the active slide changes. */ change: { index: number; }; }; export type OreCarouselProps = { /** * Whether to advance slides automatically. Defaults to `false`. * Opt in explicitly — autoplay on by default is a WCAG 2.1 SC 2.2.2 violation for many use cases. */ autoplay?: boolean; /** Interval in milliseconds between automatic slide advances. Defaults to `5000`. */ 'autoplay-interval'?: number; /** Theme color passed to the prev/next navigation buttons. */ color?: ThemeColor; /** Accessible label for the carousel region. */ label?: string; /** Whether the carousel loops from the last slide back to the first. Defaults to `true`. */ loop?: boolean; /** Carousel orientation. Defaults to `'horizontal'`. */ orientation?: CarouselOrientation; /** Show next/prev navigation buttons. Defaults to `true`. */ 'show-controls'?: boolean; /** Show dot/indicator navigation. Defaults to `true`. */ 'show-indicators'?: boolean; /** Index of the currently active slide (zero-based). Defaults to `0`. */ 'slide-index'?: number; /** * Layout variant. * - `'default'` — slides translate in/out (default) * - `'fade'` — slides crossfade; no movement * - `'filmstrip'` — all slides visible side-by-side; active expands * - `'gallery'` — active slide fills the majority; adjacent slides show as thumbnails */ variant?: CarouselVariant; }; /** * An accessible, keyboard-navigable carousel / slideshow with optional * autoplay, swipe support, and indicator dots. * * Place `` elements as direct children. * * @element ore-carousel * @element ore-carousel-slide - Child element for individual slides * * @attr {string} color - Theme color for navigation buttons: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error' * @attr {boolean} autoplay - Advance slides automatically (default false) * @attr {number} autoplay-interval - Milliseconds between automatic advances (default 5000) * @attr {string} label - Accessible label for the carousel region * @attr {boolean} loop - Loop from last slide to first (default true) * @attr {string} orientation - 'horizontal' (default) | 'vertical' * @attr {string} variant - 'default' | 'fade' | 'filmstrip' | 'gallery' * @attr {boolean} show-controls - Show prev/next buttons (default true) * @attr {boolean} show-indicators - Show indicator dots (default true) * @attr {number} slide-index - Active slide index (zero-based, default 0) * * @fires change - Fires when the active slide changes. detail: { index: number } * * @slot - Place `` elements here * * @cssprop --carousel-bg - Slide area background * @cssprop --carousel-radius - Border radius of the carousel * @cssprop --carousel-dot-bg - Inactive indicator color (default: var(--color-contrast-300)) * @cssprop --carousel-dot-active-bg - Active indicator / fill color (default: var(--color-contrast-700)) * @cssprop --carousel-transition-duration - Slide transition duration (default 0.35s; 0s under prefers-reduced-motion). * @cssprop --carousel-min-height - Minimum height when no explicit height is set (default 240px) * @cssprop --carousel-filmstrip-inactive - Width (horizontal) or height (vertical) of inactive slides in filmstrip mode * @cssprop --carousel-filmstrip-gap - Gap between slides in filmstrip mode * @cssprop --carousel-gallery-thumbnail - Width (horizontal) or height (vertical) of thumbnail slides in gallery mode (default var(--size-24)) * @cssprop --carousel-gallery-gap - Gap between slides in gallery mode (default var(--size-2)) * * @part track - The scrolling slide track element * @part controls - The prev/next button container * @part indicators - The indicator dots container * @part prev-btn - The previous-slide button * @part next-btn - The next-slide button * * @example * ```html * * Slide 1 * Slide 2 * Slide 3 * * ``` */ export declare const CAROUSEL_TAG: "ore-carousel"; //# sourceMappingURL=carousel.d.ts.map