export type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number; export type SpinnerColor = 'primary' | 'secondary' | 'white' | 'inherit'; export type SpinnerVariant = 'circular' | 'dots' | 'bars'; export type SpinnerSpeed = 'slow' | 'normal' | 'fast'; /** * Progress mode for circular spinner * - 'indeterminate': Continuous animation (default) * - 'determinate': Shows progress based on value prop * - 'static': No animation, shows fixed progress */ export type SpinnerProgressMode = 'indeterminate' | 'determinate' | 'static'; export interface SpinnerProps { /** * Size variant or custom size in pixels * @default 'md' */ size?: SpinnerSize; /** * Color variant * @default 'primary' */ color?: SpinnerColor; /** * Visual variant * @default 'circular' */ variant?: SpinnerVariant; /** * Animation speed * @default 'normal' */ speed?: SpinnerSpeed; /** * Label for screen readers * @default 'Loading...' */ label?: string; /** * Whether to center in parent container * @default false */ centered?: boolean; /** * Additional CSS classes */ className?: string; /** * Test ID for testing (deprecated, use dataTestId) */ 'data-testid'?: string; /** * Test identifier for automated testing */ dataTestId?: string; /** * Data identifier for ib-ui compatibility */ dataId?: string; /** * Progress mode for circular variant * Only applies to 'circular' variant * @default 'indeterminate' */ progressMode?: SpinnerProgressMode; /** * Progress value (0-100) for determinate mode * Only applies when progressMode is 'determinate' or 'static' */ value?: number; /** * Thickness of the circular progress line (1-10) * Only applies to 'circular' variant * @default 4 */ thickness?: number; /** * Whether to show the percentage label inside the spinner * Only applies when progressMode is 'determinate' and variant is 'circular' * @default false */ withLabel?: boolean; /** * Custom label formatter for determinate mode * @example labelFormatter={(value) => `${value}%`} */ labelFormatter?: (value: number) => string; /** * Custom color string (CSS color value) * Overrides the color prop when provided */ customColor?: string; /** * Use smooth, consistent rotation animation * When true, uses a simple border-based spinner that rotates at constant speed * When false (default), uses the stroke-dasharray animation with varying speed * Only applies to 'circular' variant in 'indeterminate' mode * @default false */ smooth?: boolean; } //# sourceMappingURL=Spinner.types.d.ts.map