@nationaldesignstudio/react 0.5.4 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as tailwind_variants from 'tailwind-variants';
2
2
  import { VariantProps } from 'tailwind-variants';
3
- export { cnBase as cn } from 'tailwind-variants';
3
+ export { cnBase as twMerge } from 'tailwind-variants';
4
4
  import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
5
5
  import * as React$1 from 'react';
6
6
  import { ReactNode } from 'react';
@@ -10,6 +10,8 @@ import { ButtonProps as ButtonProps$1 } from '@base-ui-components/react/button';
10
10
  import { Popover as Popover$1 } from '@base-ui-components/react/popover';
11
11
  import { Select as Select$1 } from '@base-ui-components/react/select';
12
12
  import { Tooltip as Tooltip$1 } from '@base-ui-components/react/tooltip';
13
+ import { Dialog as Dialog$1 } from '@base-ui-components/react/dialog';
14
+ import { ClassValue } from 'clsx';
13
15
  import { CSSVariableMap, NestedStringRecord, ColorThemeName, SurfaceThemeName } from '@nds-design-system/tokens';
14
16
 
15
17
  declare const accordionVariants: tailwind_variants.TVReturnType<{
@@ -243,6 +245,233 @@ declare const BackgroundCompound: React$1.ForwardRefExoticComponent<BackgroundPr
243
245
  Gradient: React$1.ForwardRefExoticComponent<BackgroundGradientProps & React$1.RefAttributes<HTMLDivElement>>;
244
246
  };
245
247
 
248
+ type BlurIntensity = "low" | "medium" | "high" | "extreme";
249
+ type OverlayType = "none" | "vignette" | "top-bottom";
250
+ /**
251
+ * Blurred video backdrop wrapper variants.
252
+ *
253
+ * The wrapper extends beyond its bounds (inset: -120px) to cover
254
+ * blur artifacts at the edges.
255
+ */
256
+ declare const blurredVideoBackdropVariants: tailwind_variants.TVReturnType<{
257
+ /**
258
+ * Blur intensity level.
259
+ * Higher values provide more diffused backgrounds.
260
+ */
261
+ blur: {
262
+ low: string;
263
+ medium: string;
264
+ high: string;
265
+ extreme: string;
266
+ };
267
+ /**
268
+ * Gradient overlay for visual depth.
269
+ */
270
+ overlay: {
271
+ none: string;
272
+ vignette: string;
273
+ "top-bottom": string;
274
+ };
275
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
276
+ /**
277
+ * Blur intensity level.
278
+ * Higher values provide more diffused backgrounds.
279
+ */
280
+ blur: {
281
+ low: string;
282
+ medium: string;
283
+ high: string;
284
+ extreme: string;
285
+ };
286
+ /**
287
+ * Gradient overlay for visual depth.
288
+ */
289
+ overlay: {
290
+ none: string;
291
+ vignette: string;
292
+ "top-bottom": string;
293
+ };
294
+ }, {
295
+ /**
296
+ * Blur intensity level.
297
+ * Higher values provide more diffused backgrounds.
298
+ */
299
+ blur: {
300
+ low: string;
301
+ medium: string;
302
+ high: string;
303
+ extreme: string;
304
+ };
305
+ /**
306
+ * Gradient overlay for visual depth.
307
+ */
308
+ overlay: {
309
+ none: string;
310
+ vignette: string;
311
+ "top-bottom": string;
312
+ };
313
+ }>, {
314
+ /**
315
+ * Blur intensity level.
316
+ * Higher values provide more diffused backgrounds.
317
+ */
318
+ blur: {
319
+ low: string;
320
+ medium: string;
321
+ high: string;
322
+ extreme: string;
323
+ };
324
+ /**
325
+ * Gradient overlay for visual depth.
326
+ */
327
+ overlay: {
328
+ none: string;
329
+ vignette: string;
330
+ "top-bottom": string;
331
+ };
332
+ }, undefined, tailwind_variants.TVReturnType<{
333
+ /**
334
+ * Blur intensity level.
335
+ * Higher values provide more diffused backgrounds.
336
+ */
337
+ blur: {
338
+ low: string;
339
+ medium: string;
340
+ high: string;
341
+ extreme: string;
342
+ };
343
+ /**
344
+ * Gradient overlay for visual depth.
345
+ */
346
+ overlay: {
347
+ none: string;
348
+ vignette: string;
349
+ "top-bottom": string;
350
+ };
351
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
352
+ /**
353
+ * Blur intensity level.
354
+ * Higher values provide more diffused backgrounds.
355
+ */
356
+ blur: {
357
+ low: string;
358
+ medium: string;
359
+ high: string;
360
+ extreme: string;
361
+ };
362
+ /**
363
+ * Gradient overlay for visual depth.
364
+ */
365
+ overlay: {
366
+ none: string;
367
+ vignette: string;
368
+ "top-bottom": string;
369
+ };
370
+ }, {
371
+ /**
372
+ * Blur intensity level.
373
+ * Higher values provide more diffused backgrounds.
374
+ */
375
+ blur: {
376
+ low: string;
377
+ medium: string;
378
+ high: string;
379
+ extreme: string;
380
+ };
381
+ /**
382
+ * Gradient overlay for visual depth.
383
+ */
384
+ overlay: {
385
+ none: string;
386
+ vignette: string;
387
+ "top-bottom": string;
388
+ };
389
+ }>, unknown, unknown, undefined>>;
390
+ /**
391
+ * Canvas element styles.
392
+ */
393
+ declare const canvasVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
394
+ /**
395
+ * Gradient overlay base styles.
396
+ * Gradient backgrounds are applied via inline styles to avoid arbitrary values.
397
+ */
398
+ declare const gradientOverlayVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
399
+ declare const BLUR_AMOUNTS: Record<BlurIntensity, number>;
400
+ interface UseCanvasBlurOptions {
401
+ /** Ref to the source video element */
402
+ videoRef: React$1.RefObject<HTMLVideoElement | null>;
403
+ /** Blur amount in pixels */
404
+ blurAmount: number;
405
+ /** Whether rendering is enabled */
406
+ enabled?: boolean;
407
+ /** Target FPS (lower = better performance, default: 30) */
408
+ targetFps?: number;
409
+ /** Canvas scale factor (lower = better performance, default: 0.5) */
410
+ scale?: number;
411
+ }
412
+ interface UseCanvasBlurReturn {
413
+ /** Ref to attach to the canvas element */
414
+ canvasRef: React$1.RefObject<HTMLCanvasElement | null>;
415
+ /** Whether the canvas is currently rendering */
416
+ isRendering: boolean;
417
+ /** Performance metrics */
418
+ metrics: {
419
+ fps: number;
420
+ frameTime: number;
421
+ };
422
+ }
423
+ /**
424
+ * Hook for rendering a blurred video to canvas.
425
+ *
426
+ * Performance optimizations:
427
+ * - Renders at reduced resolution (scale factor)
428
+ * - Throttled to target FPS
429
+ * - Uses CSS scale to fill container
430
+ * - Single video decoder (no sync needed)
431
+ */
432
+ declare function useCanvasBlur({ videoRef, blurAmount, enabled, targetFps, scale, }: UseCanvasBlurOptions): UseCanvasBlurReturn;
433
+ interface BlurredVideoBackdropProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children">, VariantProps<typeof blurredVideoBackdropVariants> {
434
+ /** Ref to the primary video element to create backdrop from (required) */
435
+ videoRef: React$1.RefObject<HTMLVideoElement | null>;
436
+ /** Opacity of the backdrop (0-1, default: 0.6) */
437
+ opacity?: number;
438
+ /** Extension amount in pixels to cover blur artifacts (default: 120) */
439
+ extension?: number;
440
+ /** Target FPS for canvas rendering (default: 30) */
441
+ targetFps?: number;
442
+ /** Canvas scale factor - lower = better performance (default: 0.5) */
443
+ scale?: number;
444
+ /** Whether to show debug metrics */
445
+ showMetrics?: boolean;
446
+ }
447
+ /**
448
+ * BlurredVideoBackdrop - A high-performance blurred video backdrop using canvas.
449
+ *
450
+ * Renders a blurred copy of a video element to create an ambient backdrop effect.
451
+ * Uses canvas rendering for optimal performance - no video sync needed.
452
+ *
453
+ * Performance features:
454
+ * - Single video decoder (draws from existing video element)
455
+ * - Reduced resolution rendering (configurable scale)
456
+ * - Throttled frame rate (configurable FPS)
457
+ * - GPU-accelerated canvas scaling
458
+ *
459
+ * @example
460
+ * ```tsx
461
+ * const videoRef = useRef<HTMLVideoElement>(null);
462
+ *
463
+ * <div className="relative">
464
+ * <BlurredVideoBackdrop
465
+ * videoRef={videoRef}
466
+ * blur="high"
467
+ * overlay="vignette"
468
+ * />
469
+ * <VideoPlayer videoRef={videoRef} src="/video.mp4" />
470
+ * </div>
471
+ * ```
472
+ */
473
+ declare const BlurredVideoBackdrop: React$1.ForwardRefExoticComponent<BlurredVideoBackdropProps & React$1.RefAttributes<HTMLDivElement>>;
474
+
246
475
  /**
247
476
  * Component-level theming interface
248
477
  *
@@ -770,7 +999,7 @@ declare const iconButtonVariants: tailwind_variants.TVReturnType<{
770
999
  default: string;
771
1000
  full: string;
772
1001
  };
773
- }, undefined, "inline-flex items-center justify-center whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", tailwind_variants_dist_config_js.TVConfig<{
1002
+ }, undefined, "inline-flex items-center justify-center whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>svg]:shrink-0", tailwind_variants_dist_config_js.TVConfig<{
774
1003
  variant: {
775
1004
  primary: string;
776
1005
  "primary-outline": string;
@@ -842,7 +1071,7 @@ declare const iconButtonVariants: tailwind_variants.TVReturnType<{
842
1071
  default: string;
843
1072
  full: string;
844
1073
  };
845
- }, undefined, "inline-flex items-center justify-center whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", tailwind_variants_dist_config_js.TVConfig<{
1074
+ }, undefined, "inline-flex items-center justify-center whitespace-nowrap transition-colors duration-150 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>svg]:shrink-0", tailwind_variants_dist_config_js.TVConfig<{
846
1075
  variant: {
847
1076
  primary: string;
848
1077
  "primary-outline": string;
@@ -1679,6 +1908,7 @@ declare const PopoverParts: (({ children, ...props }: PopoverRootProps) => react
1679
1908
  * - Focus/Open: Accent border with focus ring
1680
1909
  * - Selected: Has a value selected (darker text)
1681
1910
  * - Disabled: Reduced opacity, not interactive
1911
+ * - Invalid: Error border and styling
1682
1912
  */
1683
1913
  declare const selectTriggerVariants: tailwind_variants.TVReturnType<{
1684
1914
  size: {
@@ -1753,6 +1983,11 @@ declare const selectTriggerVariants: tailwind_variants.TVReturnType<{
1753
1983
  }>, unknown, unknown, undefined>>;
1754
1984
  /**
1755
1985
  * Select popup/menu variants
1986
+ *
1987
+ * Uses overlay tokens for consistent floating panel styling:
1988
+ * - color.overlay.background - Light background
1989
+ * - color.overlay.border - Subtle border
1990
+ * - surface.overlay.radius - Rounded corners
1756
1991
  */
1757
1992
  declare const selectPopupVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
1758
1993
  /**
@@ -1772,10 +2007,25 @@ declare const SelectRoot: <Value = string>({ children, ...props }: SelectProps<V
1772
2007
  interface SelectTriggerProps extends Omit<React$1.ComponentProps<typeof Select$1.Trigger>, "className">, VariantProps<typeof selectTriggerVariants> {
1773
2008
  className?: string;
1774
2009
  placeholder?: string;
2010
+ /**
2011
+ * Accessible label for the select trigger.
2012
+ * Required for accessibility when no visible label is present.
2013
+ */
2014
+ "aria-label"?: string;
1775
2015
  }
1776
2016
  declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2017
+ interface SelectValueProps extends Omit<React$1.ComponentProps<typeof Select$1.Value>, "className"> {
2018
+ className?: string;
2019
+ placeholder?: string;
2020
+ }
1777
2021
  interface SelectPopupProps extends Omit<React$1.ComponentProps<typeof Select$1.Popup>, "className"> {
1778
2022
  className?: string;
2023
+ /**
2024
+ * Whether the selected item should align with the trigger.
2025
+ * When true (default), the popup positions so the selected item appears over the trigger.
2026
+ * When false, the popup aligns to the trigger edge.
2027
+ */
2028
+ alignItemWithTrigger?: boolean;
1779
2029
  }
1780
2030
  declare const SelectPopup: React$1.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1781
2031
  interface SelectOptionProps extends Omit<React$1.ComponentProps<typeof Select$1.Item>, "className"> {
@@ -1790,12 +2040,28 @@ interface SelectGroupLabelProps extends Omit<React$1.ComponentProps<typeof Selec
1790
2040
  className?: string;
1791
2041
  }
1792
2042
  declare const SelectGroupLabel: React$1.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2043
+ interface SelectSeparatorProps extends Omit<React$1.ComponentProps<typeof Select$1.Separator>, "className"> {
2044
+ className?: string;
2045
+ }
2046
+ interface SelectScrollUpArrowProps extends Omit<React$1.ComponentProps<typeof Select$1.ScrollUpArrow>, "className"> {
2047
+ className?: string;
2048
+ }
2049
+ interface SelectScrollDownArrowProps extends Omit<React$1.ComponentProps<typeof Select$1.ScrollDownArrow>, "className"> {
2050
+ className?: string;
2051
+ }
1793
2052
  declare const Select: (<Value = string>({ children, ...props }: SelectProps<Value>) => react_jsx_runtime.JSX.Element) & {
1794
2053
  Trigger: React$1.ForwardRefExoticComponent<Omit<SelectTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2054
+ Value: React$1.ForwardRefExoticComponent<Omit<SelectValueProps, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
1795
2055
  Popup: React$1.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2056
+ Content: React$1.ForwardRefExoticComponent<Omit<SelectPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1796
2057
  Option: React$1.ForwardRefExoticComponent<Omit<SelectOptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2058
+ Item: React$1.ForwardRefExoticComponent<Omit<SelectOptionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1797
2059
  Group: React$1.ForwardRefExoticComponent<Omit<SelectGroupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1798
2060
  GroupLabel: React$1.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2061
+ Label: React$1.ForwardRefExoticComponent<Omit<SelectGroupLabelProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2062
+ Separator: React$1.ForwardRefExoticComponent<Omit<SelectSeparatorProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2063
+ ScrollUpArrow: React$1.ForwardRefExoticComponent<Omit<SelectScrollUpArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2064
+ ScrollDownArrow: React$1.ForwardRefExoticComponent<Omit<SelectScrollDownArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1799
2065
  };
1800
2066
 
1801
2067
  /**
@@ -1956,157 +2222,1182 @@ declare const TooltipParts: (({ children, ...props }: TooltipRootProps) => react
1956
2222
  Arrow: React$1.ForwardRefExoticComponent<Omit<TooltipArrowProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1957
2223
  };
1958
2224
 
1959
- interface DevToolbarProps {
1960
- defaultExpanded?: boolean;
2225
+ /**
2226
+ * Represents a single caption cue parsed from VTT.
2227
+ */
2228
+ interface CaptionCue {
2229
+ /** Unique identifier for the cue */
2230
+ id: string;
2231
+ /** Start time in seconds */
2232
+ startTime: number;
2233
+ /** End time in seconds */
2234
+ endTime: number;
2235
+ /** Caption text content */
2236
+ text: string;
1961
2237
  }
1962
- declare function DevToolbar({ defaultExpanded }: DevToolbarProps): react_jsx_runtime.JSX.Element;
1963
-
1964
- interface GridOverlayProps {
1965
- columnOpacity?: number;
1966
- borderOpacity?: number;
1967
- visible?: boolean;
2238
+ interface UseCaptionsOptions {
2239
+ /** VTT file URL to fetch */
2240
+ src?: string;
2241
+ /** Pre-loaded VTT content string */
2242
+ content?: string;
2243
+ /** Strip VTT formatting tags from caption text */
2244
+ stripTags?: boolean;
2245
+ /** Current playback time in seconds (alternative to setCurrentTime) */
2246
+ currentTime?: number;
1968
2247
  }
1969
- declare function GridOverlay({ columnOpacity, borderOpacity, visible, }: GridOverlayProps): react_jsx_runtime.JSX.Element;
2248
+ interface UseCaptionsReturn {
2249
+ /** All parsed caption cues */
2250
+ cues: CaptionCue[];
2251
+ /** Currently active cue based on current time */
2252
+ activeCue: CaptionCue | null;
2253
+ /** Update the current playback time to get active cue */
2254
+ setCurrentTime: (time: number) => void;
2255
+ /** Loading state */
2256
+ isLoading: boolean;
2257
+ /** Error state */
2258
+ error: Error | null;
2259
+ }
2260
+ /**
2261
+ * Hook for parsing VTT captions and tracking the active cue.
2262
+ *
2263
+ * @param options - Caption source options
2264
+ * @returns Parsed cues, active cue, and state
2265
+ *
2266
+ * @example
2267
+ * ```tsx
2268
+ * function VideoPlayer() {
2269
+ * const videoRef = React.useRef<HTMLVideoElement>(null);
2270
+ * const { activeCue, setCurrentTime } = useCaptions({
2271
+ * src: '/captions.vtt',
2272
+ * });
2273
+ *
2274
+ * // Sync with video time
2275
+ * React.useEffect(() => {
2276
+ * const video = videoRef.current;
2277
+ * if (!video) return;
2278
+ *
2279
+ * const handleTimeUpdate = () => setCurrentTime(video.currentTime);
2280
+ * video.addEventListener('timeupdate', handleTimeUpdate);
2281
+ * return () => video.removeEventListener('timeupdate', handleTimeUpdate);
2282
+ * }, [setCurrentTime]);
2283
+ *
2284
+ * return (
2285
+ * <div>
2286
+ * <video ref={videoRef} src="/video.mp4" />
2287
+ * {activeCue && <div className="caption">{activeCue.text}</div>}
2288
+ * </div>
2289
+ * );
2290
+ * }
2291
+ * ```
2292
+ */
2293
+ declare function useCaptions(options?: UseCaptionsOptions): UseCaptionsReturn;
1970
2294
 
1971
- declare const cardVariants: tailwind_variants.TVReturnType<{
1972
- layout: {
1973
- vertical: string;
1974
- horizontal: string;
1975
- /**
1976
- * Overlay layout - content sits on top of full-bleed background.
1977
- * Use with Background components for images/gradients.
1978
- */
1979
- overlay: string;
2295
+ /**
2296
+ * Caption overlay variants using semantic tokens.
2297
+ */
2298
+ declare const captionOverlayVariants: tailwind_variants.TVReturnType<{
2299
+ position: {
2300
+ bottom: string;
2301
+ "bottom-sm": string;
1980
2302
  };
1981
- }, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
1982
- layout: {
1983
- vertical: string;
1984
- horizontal: string;
1985
- /**
1986
- * Overlay layout - content sits on top of full-bleed background.
1987
- * Use with Background components for images/gradients.
1988
- */
1989
- overlay: string;
2303
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2304
+ position: {
2305
+ bottom: string;
2306
+ "bottom-sm": string;
1990
2307
  };
1991
2308
  }, {
1992
- layout: {
1993
- vertical: string;
1994
- horizontal: string;
1995
- /**
1996
- * Overlay layout - content sits on top of full-bleed background.
1997
- * Use with Background components for images/gradients.
1998
- */
1999
- overlay: string;
2309
+ position: {
2310
+ bottom: string;
2311
+ "bottom-sm": string;
2000
2312
  };
2001
2313
  }>, {
2002
- layout: {
2003
- vertical: string;
2004
- horizontal: string;
2005
- /**
2006
- * Overlay layout - content sits on top of full-bleed background.
2007
- * Use with Background components for images/gradients.
2008
- */
2009
- overlay: string;
2314
+ position: {
2315
+ bottom: string;
2316
+ "bottom-sm": string;
2010
2317
  };
2011
2318
  }, undefined, tailwind_variants.TVReturnType<{
2012
- layout: {
2013
- vertical: string;
2014
- horizontal: string;
2015
- /**
2016
- * Overlay layout - content sits on top of full-bleed background.
2017
- * Use with Background components for images/gradients.
2018
- */
2019
- overlay: string;
2319
+ position: {
2320
+ bottom: string;
2321
+ "bottom-sm": string;
2020
2322
  };
2021
- }, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
2022
- layout: {
2023
- vertical: string;
2024
- horizontal: string;
2025
- /**
2026
- * Overlay layout - content sits on top of full-bleed background.
2027
- * Use with Background components for images/gradients.
2028
- */
2029
- overlay: string;
2323
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2324
+ position: {
2325
+ bottom: string;
2326
+ "bottom-sm": string;
2030
2327
  };
2031
2328
  }, {
2032
- layout: {
2033
- vertical: string;
2034
- horizontal: string;
2035
- /**
2036
- * Overlay layout - content sits on top of full-bleed background.
2037
- * Use with Background components for images/gradients.
2038
- */
2039
- overlay: string;
2329
+ position: {
2330
+ bottom: string;
2331
+ "bottom-sm": string;
2040
2332
  };
2041
2333
  }>, unknown, unknown, undefined>>;
2042
- interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
2043
- }
2044
- /**
2045
- * Card component for displaying content in a contained, scannable format.
2046
- *
2047
- * Layouts:
2048
- * - vertical: Image on top, content below (default)
2049
- * - horizontal: Image on left, content on right
2050
- * - overlay: Full-bleed background with content on top
2051
- *
2052
- * Use with CardImage, CardContent, CardEyebrow, CardTitle, CardDescription, and CardActions.
2053
- * For overlay layout, use Background components for full-bleed backgrounds.
2054
- */
2055
- declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
2056
- interface CardImageProps extends React$1.HTMLAttributes<HTMLDivElement> {
2057
- /**
2058
- * The image source URL
2059
- */
2060
- src?: string;
2061
- /**
2062
- * Alt text for the image
2063
- */
2064
- alt?: string;
2065
- }
2066
2334
  /**
2067
- * Card image area. For vertical layout, displays with 16:9 aspect ratio.
2068
- * For horizontal layout, takes up ~40% width and stretches to content height.
2335
+ * Caption text box variants.
2069
2336
  */
2070
- declare const CardImage: React$1.ForwardRefExoticComponent<CardImageProps & React$1.RefAttributes<HTMLDivElement>>;
2071
- declare const cardContentVariants: tailwind_variants.TVReturnType<{
2072
- /**
2073
- * Vertical alignment of content within the card.
2074
- * Useful for overlay layouts to position content at top/center/bottom.
2075
- */
2076
- justify: {
2077
- start: string;
2078
- center: string;
2079
- end: string;
2337
+ declare const captionTextVariants: tailwind_variants.TVReturnType<{
2338
+ size: {
2339
+ sm: string;
2340
+ md: string;
2341
+ lg: string;
2080
2342
  };
2081
- }, undefined, "flex w-full flex-1 flex-col gap-spatial-card-large-gap p-spatial-card-large-padding", tailwind_variants_dist_config_js.TVConfig<{
2082
- /**
2083
- * Vertical alignment of content within the card.
2084
- * Useful for overlay layouts to position content at top/center/bottom.
2085
- */
2086
- justify: {
2087
- start: string;
2088
- center: string;
2089
- end: string;
2343
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2344
+ size: {
2345
+ sm: string;
2346
+ md: string;
2347
+ lg: string;
2090
2348
  };
2091
2349
  }, {
2092
- /**
2093
- * Vertical alignment of content within the card.
2094
- * Useful for overlay layouts to position content at top/center/bottom.
2095
- */
2096
- justify: {
2097
- start: string;
2098
- center: string;
2099
- end: string;
2350
+ size: {
2351
+ sm: string;
2352
+ md: string;
2353
+ lg: string;
2100
2354
  };
2101
2355
  }>, {
2102
- /**
2103
- * Vertical alignment of content within the card.
2104
- * Useful for overlay layouts to position content at top/center/bottom.
2105
- */
2106
- justify: {
2107
- start: string;
2108
- center: string;
2109
- end: string;
2356
+ size: {
2357
+ sm: string;
2358
+ md: string;
2359
+ lg: string;
2360
+ };
2361
+ }, undefined, tailwind_variants.TVReturnType<{
2362
+ size: {
2363
+ sm: string;
2364
+ md: string;
2365
+ lg: string;
2366
+ };
2367
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2368
+ size: {
2369
+ sm: string;
2370
+ md: string;
2371
+ lg: string;
2372
+ };
2373
+ }, {
2374
+ size: {
2375
+ sm: string;
2376
+ md: string;
2377
+ lg: string;
2378
+ };
2379
+ }>, unknown, unknown, undefined>>;
2380
+ interface CaptionOverlayProps extends React$1.HTMLAttributes<HTMLOutputElement>, VariantProps<typeof captionOverlayVariants>, VariantProps<typeof captionTextVariants> {
2381
+ /** Caption cue to display */
2382
+ cue?: CaptionCue | null;
2383
+ /** Caption text to display (alternative to cue) */
2384
+ text?: string;
2385
+ }
2386
+ /**
2387
+ * CaptionOverlay component.
2388
+ *
2389
+ * Displays caption text overlaid on video content.
2390
+ * Styled to match the DGA video player implementation.
2391
+ *
2392
+ * @example
2393
+ * ```tsx
2394
+ * <CaptionOverlay cue={activeCue} />
2395
+ *
2396
+ * // Or with plain text
2397
+ * <CaptionOverlay text="Hello, world!" />
2398
+ * ```
2399
+ */
2400
+ declare const CaptionOverlay: React$1.ForwardRefExoticComponent<CaptionOverlayProps & React$1.RefAttributes<HTMLOutputElement>>;
2401
+
2402
+ /** Cloudflare Stream configuration */
2403
+ interface CloudflareConfig$1 {
2404
+ /** Cloudflare Stream video ID */
2405
+ videoId: string;
2406
+ /** Cloudflare customer code/subdomain */
2407
+ customerCode: string;
2408
+ }
2409
+ /**
2410
+ * Video player container variants.
2411
+ */
2412
+ declare const videoPlayerVariants: tailwind_variants.TVReturnType<{
2413
+ aspectRatio: {
2414
+ "16/9": string;
2415
+ "4/3": string;
2416
+ "1/1": string;
2417
+ "9/16": string;
2418
+ auto: string;
2419
+ };
2420
+ rounded: {
2421
+ none: string;
2422
+ sm: string;
2423
+ md: string;
2424
+ lg: string;
2425
+ };
2426
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2427
+ aspectRatio: {
2428
+ "16/9": string;
2429
+ "4/3": string;
2430
+ "1/1": string;
2431
+ "9/16": string;
2432
+ auto: string;
2433
+ };
2434
+ rounded: {
2435
+ none: string;
2436
+ sm: string;
2437
+ md: string;
2438
+ lg: string;
2439
+ };
2440
+ }, {
2441
+ aspectRatio: {
2442
+ "16/9": string;
2443
+ "4/3": string;
2444
+ "1/1": string;
2445
+ "9/16": string;
2446
+ auto: string;
2447
+ };
2448
+ rounded: {
2449
+ none: string;
2450
+ sm: string;
2451
+ md: string;
2452
+ lg: string;
2453
+ };
2454
+ }>, {
2455
+ aspectRatio: {
2456
+ "16/9": string;
2457
+ "4/3": string;
2458
+ "1/1": string;
2459
+ "9/16": string;
2460
+ auto: string;
2461
+ };
2462
+ rounded: {
2463
+ none: string;
2464
+ sm: string;
2465
+ md: string;
2466
+ lg: string;
2467
+ };
2468
+ }, undefined, tailwind_variants.TVReturnType<{
2469
+ aspectRatio: {
2470
+ "16/9": string;
2471
+ "4/3": string;
2472
+ "1/1": string;
2473
+ "9/16": string;
2474
+ auto: string;
2475
+ };
2476
+ rounded: {
2477
+ none: string;
2478
+ sm: string;
2479
+ md: string;
2480
+ lg: string;
2481
+ };
2482
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2483
+ aspectRatio: {
2484
+ "16/9": string;
2485
+ "4/3": string;
2486
+ "1/1": string;
2487
+ "9/16": string;
2488
+ auto: string;
2489
+ };
2490
+ rounded: {
2491
+ none: string;
2492
+ sm: string;
2493
+ md: string;
2494
+ lg: string;
2495
+ };
2496
+ }, {
2497
+ aspectRatio: {
2498
+ "16/9": string;
2499
+ "4/3": string;
2500
+ "1/1": string;
2501
+ "9/16": string;
2502
+ auto: string;
2503
+ };
2504
+ rounded: {
2505
+ none: string;
2506
+ sm: string;
2507
+ md: string;
2508
+ lg: string;
2509
+ };
2510
+ }>, unknown, unknown, undefined>>;
2511
+ /**
2512
+ * Media controller container styles.
2513
+ * Uses CSS custom properties to configure media-chrome components.
2514
+ * Styled to match DGA video player design with ghost-style buttons.
2515
+ */
2516
+ declare const mediaControllerVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2517
+ /**
2518
+ * Control bar variants.
2519
+ * Note: Positioning is handled via inline styles to override web component defaults.
2520
+ * Tailwind classes handle background color and visibility transitions.
2521
+ */
2522
+ declare const controlBarVariants: tailwind_variants.TVReturnType<{
2523
+ visible: {
2524
+ true: string;
2525
+ false: string;
2526
+ };
2527
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2528
+ visible: {
2529
+ true: string;
2530
+ false: string;
2531
+ };
2532
+ }, {
2533
+ visible: {
2534
+ true: string;
2535
+ false: string;
2536
+ };
2537
+ }>, {
2538
+ visible: {
2539
+ true: string;
2540
+ false: string;
2541
+ };
2542
+ }, undefined, tailwind_variants.TVReturnType<{
2543
+ visible: {
2544
+ true: string;
2545
+ false: string;
2546
+ };
2547
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2548
+ visible: {
2549
+ true: string;
2550
+ false: string;
2551
+ };
2552
+ }, {
2553
+ visible: {
2554
+ true: string;
2555
+ false: string;
2556
+ };
2557
+ }>, unknown, unknown, undefined>>;
2558
+ /**
2559
+ * Control button styles for custom buttons.
2560
+ * Transparent by default, shows background on hover (ghost style).
2561
+ */
2562
+ declare const controlButtonVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2563
+ /**
2564
+ * Loading overlay variants.
2565
+ */
2566
+ declare const loadingOverlayVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2567
+ interface VideoPlayerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children" | "onError" | "onPlay" | "onPause" | "onEnded" | "onTimeUpdate">, VariantProps<typeof videoPlayerVariants> {
2568
+ /** Video source URL (HLS .m3u8 or regular video file) */
2569
+ src?: string;
2570
+ /** Cloudflare Stream configuration (takes precedence over src) */
2571
+ cloudflare?: CloudflareConfig$1;
2572
+ /** Poster image URL */
2573
+ poster?: string;
2574
+ /** VTT captions URL */
2575
+ captionsSrc?: string;
2576
+ /** Whether to autoplay (default: false) */
2577
+ autoPlay?: boolean;
2578
+ /** Whether to loop the video (default: false) */
2579
+ loop?: boolean;
2580
+ /** Whether to mute initially (default: false) */
2581
+ muted?: boolean;
2582
+ /** Whether to show controls (default: true) */
2583
+ controls?: boolean;
2584
+ /** Whether to auto-hide controls when not interacting (default: true) */
2585
+ autoHideControls?: boolean;
2586
+ /** Control auto-hide delay in ms (default: 3000) */
2587
+ autoHideDelay?: number;
2588
+ /** Whether captions are enabled by default (default: false) */
2589
+ captionsEnabled?: boolean;
2590
+ /** Callback when video starts playing */
2591
+ onPlay?: () => void;
2592
+ /** Callback when video pauses */
2593
+ onPause?: () => void;
2594
+ /** Callback when video ends */
2595
+ onEnded?: () => void;
2596
+ /** Callback on time update */
2597
+ onTimeUpdate?: (time: number) => void;
2598
+ /** Callback on error */
2599
+ onError?: (error: Error) => void;
2600
+ /** Ref to the video element */
2601
+ videoRef?: React$1.RefObject<HTMLVideoElement | null>;
2602
+ }
2603
+ /**
2604
+ * VideoPlayer - Standalone video player component with media-chrome controls.
2605
+ *
2606
+ * Supports Cloudflare Stream (recommended) or direct video URLs with HLS support.
2607
+ * Works standalone or can be composed with Modal for fullscreen playback.
2608
+ *
2609
+ * @example
2610
+ * ```tsx
2611
+ * // With Cloudflare Stream (recommended)
2612
+ * <VideoPlayer
2613
+ * cloudflare={{ videoId: "abc123", customerCode: "xyz789" }}
2614
+ * poster="/thumbnail.jpg"
2615
+ * captionsSrc="/captions.vtt"
2616
+ * />
2617
+ *
2618
+ * // With direct URL
2619
+ * <VideoPlayer
2620
+ * src="https://example.com/video.mp4"
2621
+ * poster="/thumbnail.jpg"
2622
+ * />
2623
+ *
2624
+ * // With Modal for fullscreen
2625
+ * <Modal trigger={<Button>Watch Video</Button>}>
2626
+ * <VideoPlayer cloudflare={{ videoId: "...", customerCode: "..." }} />
2627
+ * </Modal>
2628
+ * ```
2629
+ */
2630
+ declare const VideoPlayer: React$1.ForwardRefExoticComponent<VideoPlayerProps & React$1.RefAttributes<HTMLDivElement>>;
2631
+
2632
+ interface DevToolbarProps {
2633
+ defaultExpanded?: boolean;
2634
+ }
2635
+ declare function DevToolbar({ defaultExpanded }: DevToolbarProps): react_jsx_runtime.JSX.Element;
2636
+
2637
+ interface GridOverlayProps {
2638
+ columnOpacity?: number;
2639
+ borderOpacity?: number;
2640
+ visible?: boolean;
2641
+ }
2642
+ declare function GridOverlay({ columnOpacity, borderOpacity, visible, }: GridOverlayProps): react_jsx_runtime.JSX.Element;
2643
+
2644
+ /**
2645
+ * Dialog backdrop variants
2646
+ *
2647
+ * Semi-transparent overlay behind the dialog content.
2648
+ */
2649
+ declare const dialogBackdropVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2650
+ /**
2651
+ * Dialog popup variants
2652
+ *
2653
+ * Uses semantic overlay tokens for themeable styling:
2654
+ * - color.overlay.background - Light background
2655
+ * - color.overlay.border - Subtle border
2656
+ * - color.overlay.text - Primary text
2657
+ * - surface.overlay.radius - Rounded corners
2658
+ */
2659
+ declare const dialogPopupVariants: tailwind_variants.TVReturnType<{
2660
+ size: {
2661
+ sm: string;
2662
+ md: string;
2663
+ lg: string;
2664
+ xl: string;
2665
+ full: string;
2666
+ };
2667
+ variant: {
2668
+ default: string[];
2669
+ minimal: string[];
2670
+ };
2671
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2672
+ size: {
2673
+ sm: string;
2674
+ md: string;
2675
+ lg: string;
2676
+ xl: string;
2677
+ full: string;
2678
+ };
2679
+ variant: {
2680
+ default: string[];
2681
+ minimal: string[];
2682
+ };
2683
+ }, {
2684
+ size: {
2685
+ sm: string;
2686
+ md: string;
2687
+ lg: string;
2688
+ xl: string;
2689
+ full: string;
2690
+ };
2691
+ variant: {
2692
+ default: string[];
2693
+ minimal: string[];
2694
+ };
2695
+ }>, {
2696
+ size: {
2697
+ sm: string;
2698
+ md: string;
2699
+ lg: string;
2700
+ xl: string;
2701
+ full: string;
2702
+ };
2703
+ variant: {
2704
+ default: string[];
2705
+ minimal: string[];
2706
+ };
2707
+ }, undefined, tailwind_variants.TVReturnType<{
2708
+ size: {
2709
+ sm: string;
2710
+ md: string;
2711
+ lg: string;
2712
+ xl: string;
2713
+ full: string;
2714
+ };
2715
+ variant: {
2716
+ default: string[];
2717
+ minimal: string[];
2718
+ };
2719
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2720
+ size: {
2721
+ sm: string;
2722
+ md: string;
2723
+ lg: string;
2724
+ xl: string;
2725
+ full: string;
2726
+ };
2727
+ variant: {
2728
+ default: string[];
2729
+ minimal: string[];
2730
+ };
2731
+ }, {
2732
+ size: {
2733
+ sm: string;
2734
+ md: string;
2735
+ lg: string;
2736
+ xl: string;
2737
+ full: string;
2738
+ };
2739
+ variant: {
2740
+ default: string[];
2741
+ minimal: string[];
2742
+ };
2743
+ }>, unknown, unknown, undefined>>;
2744
+ interface DialogRootProps extends Dialog$1.Root.Props {
2745
+ children: React$1.ReactNode;
2746
+ }
2747
+ /**
2748
+ * Dialog Root
2749
+ *
2750
+ * Groups all dialog parts and manages open/close state.
2751
+ * Provides focus trap, scroll lock, and escape key handling automatically.
2752
+ */
2753
+ declare const DialogRoot: ({ children, ...props }: DialogRootProps) => react_jsx_runtime.JSX.Element;
2754
+ interface DialogTriggerProps extends React$1.ComponentProps<typeof Dialog$1.Trigger> {
2755
+ className?: string;
2756
+ }
2757
+ /**
2758
+ * Dialog Trigger
2759
+ *
2760
+ * The element that triggers the dialog to open on click.
2761
+ * When children is a single React element, uses `render` prop to avoid wrapper element.
2762
+ */
2763
+ declare const DialogTrigger: React$1.ForwardRefExoticComponent<Omit<DialogTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2764
+ interface DialogPortalProps extends Dialog$1.Portal.Props {
2765
+ children: React$1.ReactNode;
2766
+ }
2767
+ /**
2768
+ * Dialog Portal
2769
+ *
2770
+ * Renders the dialog in a portal outside the DOM hierarchy.
2771
+ * This ensures proper stacking context and avoids z-index issues.
2772
+ */
2773
+ declare const DialogPortal: ({ children, ...props }: DialogPortalProps) => react_jsx_runtime.JSX.Element;
2774
+ interface DialogBackdropProps extends Omit<React$1.ComponentProps<typeof Dialog$1.Backdrop>, "className"> {
2775
+ className?: string;
2776
+ }
2777
+ /**
2778
+ * Dialog Backdrop
2779
+ *
2780
+ * Semi-transparent overlay that covers the page behind the dialog.
2781
+ * Clicking the backdrop closes the dialog by default.
2782
+ */
2783
+ declare const DialogBackdrop: React$1.ForwardRefExoticComponent<Omit<DialogBackdropProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2784
+ interface DialogPopupProps extends Omit<React$1.ComponentProps<typeof Dialog$1.Popup>, "className">, VariantProps<typeof dialogPopupVariants> {
2785
+ className?: string;
2786
+ }
2787
+ /**
2788
+ * Dialog Popup
2789
+ *
2790
+ * The dialog content container. Centered on screen with configurable size.
2791
+ * Use `variant="minimal"` for borderless dialogs (video modals, etc.)
2792
+ */
2793
+ declare const DialogPopup: React$1.ForwardRefExoticComponent<Omit<DialogPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2794
+ interface DialogTitleProps extends Omit<React$1.ComponentProps<typeof Dialog$1.Title>, "className"> {
2795
+ className?: string;
2796
+ }
2797
+ /**
2798
+ * Dialog Title
2799
+ *
2800
+ * Accessible title for the dialog. Should be used for screen reader support.
2801
+ */
2802
+ declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
2803
+ interface DialogDescriptionProps extends Omit<React$1.ComponentProps<typeof Dialog$1.Description>, "className"> {
2804
+ className?: string;
2805
+ }
2806
+ /**
2807
+ * Dialog Description
2808
+ *
2809
+ * Accessible description for the dialog content.
2810
+ */
2811
+ declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
2812
+ interface DialogCloseProps extends Omit<React$1.ComponentProps<typeof Dialog$1.Close>, "className"> {
2813
+ className?: string;
2814
+ }
2815
+ /**
2816
+ * Dialog Close
2817
+ *
2818
+ * Close button for the dialog. Can be placed anywhere within the dialog.
2819
+ */
2820
+ declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<DialogCloseProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2821
+ interface DialogBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
2822
+ className?: string;
2823
+ }
2824
+ /**
2825
+ * Dialog Body
2826
+ *
2827
+ * Container for the main dialog content. Handles overflow scrolling.
2828
+ */
2829
+ declare const DialogBody: React$1.ForwardRefExoticComponent<DialogBodyProps & React$1.RefAttributes<HTMLDivElement>>;
2830
+ interface DialogFooterProps extends React$1.HTMLAttributes<HTMLDivElement> {
2831
+ className?: string;
2832
+ }
2833
+ /**
2834
+ * Dialog Footer
2835
+ *
2836
+ * Container for dialog actions (buttons, etc.). Typically placed at the bottom.
2837
+ */
2838
+ declare const DialogFooter: React$1.ForwardRefExoticComponent<DialogFooterProps & React$1.RefAttributes<HTMLDivElement>>;
2839
+ interface DialogProps {
2840
+ /** The content to show in the dialog */
2841
+ children: React$1.ReactNode;
2842
+ /** The element that triggers the dialog (optional for controlled mode) */
2843
+ trigger?: React$1.ReactNode;
2844
+ /** Title for the dialog */
2845
+ title?: React$1.ReactNode;
2846
+ /** Description for the dialog */
2847
+ description?: React$1.ReactNode;
2848
+ /** Size of the dialog */
2849
+ size?: "sm" | "md" | "lg" | "xl" | "full";
2850
+ /** Visual variant: "default" for card style, "minimal" for borderless (video modals) */
2851
+ variant?: "default" | "minimal";
2852
+ /** Whether to show a close button */
2853
+ showClose?: boolean;
2854
+ /** Controlled open state */
2855
+ open?: boolean;
2856
+ /** Default open state */
2857
+ defaultOpen?: boolean;
2858
+ /** Callback when open state changes */
2859
+ onOpenChange?: (open: boolean) => void;
2860
+ /** Additional className for the popup */
2861
+ className?: string;
2862
+ }
2863
+ /**
2864
+ * Dialog
2865
+ *
2866
+ * A simple, pre-composed dialog component for common use cases.
2867
+ * For more complex needs, use the compound components directly.
2868
+ *
2869
+ * @example
2870
+ * ```tsx
2871
+ * // With trigger
2872
+ * <Dialog
2873
+ * trigger={<Button>Open Dialog</Button>}
2874
+ * title="Dialog Title"
2875
+ * description="This is the dialog description."
2876
+ * >
2877
+ * <p>Dialog content goes here.</p>
2878
+ * </Dialog>
2879
+ *
2880
+ * // Controlled mode
2881
+ * <Dialog
2882
+ * open={isOpen}
2883
+ * onOpenChange={setIsOpen}
2884
+ * title="Controlled Dialog"
2885
+ * >
2886
+ * <p>Content here</p>
2887
+ * </Dialog>
2888
+ * ```
2889
+ */
2890
+ declare const Dialog: ({ children, trigger, title, description, size, variant, showClose, open, defaultOpen, onOpenChange, className, }: DialogProps) => react_jsx_runtime.JSX.Element;
2891
+ declare const DialogParts: (({ children, ...props }: DialogRootProps) => react_jsx_runtime.JSX.Element) & {
2892
+ Root: ({ children, ...props }: DialogRootProps) => react_jsx_runtime.JSX.Element;
2893
+ Trigger: React$1.ForwardRefExoticComponent<Omit<DialogTriggerProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2894
+ Portal: ({ children, ...props }: DialogPortalProps) => react_jsx_runtime.JSX.Element;
2895
+ Backdrop: React$1.ForwardRefExoticComponent<Omit<DialogBackdropProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2896
+ Popup: React$1.ForwardRefExoticComponent<Omit<DialogPopupProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2897
+ Title: React$1.ForwardRefExoticComponent<Omit<DialogTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
2898
+ Description: React$1.ForwardRefExoticComponent<Omit<DialogDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
2899
+ Close: React$1.ForwardRefExoticComponent<Omit<DialogCloseProps, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2900
+ Body: React$1.ForwardRefExoticComponent<DialogBodyProps & React$1.RefAttributes<HTMLDivElement>>;
2901
+ Footer: React$1.ForwardRefExoticComponent<DialogFooterProps & React$1.RefAttributes<HTMLDivElement>>;
2902
+ };
2903
+
2904
+ /**
2905
+ * Video dialog container variants.
2906
+ * Uses fixed positioning to cover the viewport.
2907
+ */
2908
+ declare const videoDialogVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2909
+ /**
2910
+ * Close button variants.
2911
+ */
2912
+ declare const closeButtonVariants: tailwind_variants.TVReturnType<{
2913
+ position: {
2914
+ "top-right": string;
2915
+ "top-left": string;
2916
+ };
2917
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2918
+ position: {
2919
+ "top-right": string;
2920
+ "top-left": string;
2921
+ };
2922
+ }, {
2923
+ position: {
2924
+ "top-right": string;
2925
+ "top-left": string;
2926
+ };
2927
+ }>, {
2928
+ position: {
2929
+ "top-right": string;
2930
+ "top-left": string;
2931
+ };
2932
+ }, undefined, tailwind_variants.TVReturnType<{
2933
+ position: {
2934
+ "top-right": string;
2935
+ "top-left": string;
2936
+ };
2937
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
2938
+ position: {
2939
+ "top-right": string;
2940
+ "top-left": string;
2941
+ };
2942
+ }, {
2943
+ position: {
2944
+ "top-right": string;
2945
+ "top-left": string;
2946
+ };
2947
+ }>, unknown, unknown, undefined>>;
2948
+ /**
2949
+ * Video container variants.
2950
+ * Expands to fill viewport, constrained by height (maintains aspect ratio).
2951
+ */
2952
+ declare const videoContainerVariants: tailwind_variants.TVReturnType<{} | {} | {}, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, {} | {}, undefined, tailwind_variants.TVReturnType<unknown, undefined, string[], tailwind_variants_dist_config_js.TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
2953
+ interface VideoDialogProps extends Omit<VideoPlayerProps, "videoRef" | "className"> {
2954
+ /** Trigger element that opens the dialog */
2955
+ trigger: React$1.ReactNode;
2956
+ /** Blur intensity for backdrop (default: high) */
2957
+ blur?: BlurredVideoBackdropProps["blur"];
2958
+ /** Gradient overlay for backdrop (default: vignette) */
2959
+ overlay?: BlurredVideoBackdropProps["overlay"];
2960
+ /** Backdrop opacity (default: 0.6) */
2961
+ backdropOpacity?: number;
2962
+ /** Whether to show close button (default: true) */
2963
+ showClose?: boolean;
2964
+ /** Close button position (default: top-right) */
2965
+ closePosition?: "top-right" | "top-left";
2966
+ /** Video player rounded corners (default: lg) */
2967
+ rounded?: VideoPlayerProps["rounded"];
2968
+ /** Controlled open state */
2969
+ open?: boolean;
2970
+ /** Default open state */
2971
+ defaultOpen?: boolean;
2972
+ /** Callback when open state changes */
2973
+ onOpenChange?: (open: boolean) => void;
2974
+ /** Additional className for the dialog container */
2975
+ className?: string;
2976
+ }
2977
+ /**
2978
+ * VideoDialog - Fullscreen video modal with blurred video backdrop.
2979
+ *
2980
+ * Creates an immersive video viewing experience where the blurred video
2981
+ * serves as the modal backdrop, with the main video centered on top.
2982
+ * Based on the DGA modal pattern.
2983
+ *
2984
+ * Features:
2985
+ * - Blurred video backdrop that syncs with main video
2986
+ * - Configurable blur intensity and gradient overlays
2987
+ * - Automatic play/pause when dialog opens/closes
2988
+ * - HLS streaming support via Cloudflare Stream
2989
+ * - Accessible dialog with focus trap and escape key handling
2990
+ *
2991
+ * @example
2992
+ * ```tsx
2993
+ * <VideoDialog
2994
+ * trigger={<Button>Watch Video</Button>}
2995
+ * cloudflare={{ videoId: "abc123", customerCode: "xyz789" }}
2996
+ * blur="high"
2997
+ * overlay="vignette"
2998
+ * />
2999
+ * ```
3000
+ */
3001
+ declare const VideoDialog: React$1.ForwardRefExoticComponent<VideoDialogProps & React$1.RefAttributes<HTMLDivElement>>;
3002
+
3003
+ /** Cloudflare Stream configuration */
3004
+ interface CloudflareConfig {
3005
+ /** Cloudflare Stream video ID */
3006
+ videoId: string;
3007
+ /** Cloudflare customer code/subdomain */
3008
+ customerCode: string;
3009
+ }
3010
+ /**
3011
+ * Root container variants.
3012
+ */
3013
+ declare const videoWithBackdropVariants: tailwind_variants.TVReturnType<{
3014
+ /**
3015
+ * Full-height mode for dialogs.
3016
+ */
3017
+ fullHeight: {
3018
+ true: string;
3019
+ false: string;
3020
+ };
3021
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
3022
+ /**
3023
+ * Full-height mode for dialogs.
3024
+ */
3025
+ fullHeight: {
3026
+ true: string;
3027
+ false: string;
3028
+ };
3029
+ }, {
3030
+ /**
3031
+ * Full-height mode for dialogs.
3032
+ */
3033
+ fullHeight: {
3034
+ true: string;
3035
+ false: string;
3036
+ };
3037
+ }>, {
3038
+ /**
3039
+ * Full-height mode for dialogs.
3040
+ */
3041
+ fullHeight: {
3042
+ true: string;
3043
+ false: string;
3044
+ };
3045
+ }, undefined, tailwind_variants.TVReturnType<{
3046
+ /**
3047
+ * Full-height mode for dialogs.
3048
+ */
3049
+ fullHeight: {
3050
+ true: string;
3051
+ false: string;
3052
+ };
3053
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
3054
+ /**
3055
+ * Full-height mode for dialogs.
3056
+ */
3057
+ fullHeight: {
3058
+ true: string;
3059
+ false: string;
3060
+ };
3061
+ }, {
3062
+ /**
3063
+ * Full-height mode for dialogs.
3064
+ */
3065
+ fullHeight: {
3066
+ true: string;
3067
+ false: string;
3068
+ };
3069
+ }>, unknown, unknown, undefined>>;
3070
+ /**
3071
+ * Content container variants.
3072
+ */
3073
+ declare const contentVariants: tailwind_variants.TVReturnType<{
3074
+ fullHeight: {
3075
+ true: string;
3076
+ false: string;
3077
+ };
3078
+ padding: {
3079
+ none: string;
3080
+ sm: string;
3081
+ md: string;
3082
+ lg: string;
3083
+ };
3084
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
3085
+ fullHeight: {
3086
+ true: string;
3087
+ false: string;
3088
+ };
3089
+ padding: {
3090
+ none: string;
3091
+ sm: string;
3092
+ md: string;
3093
+ lg: string;
3094
+ };
3095
+ }, {
3096
+ fullHeight: {
3097
+ true: string;
3098
+ false: string;
3099
+ };
3100
+ padding: {
3101
+ none: string;
3102
+ sm: string;
3103
+ md: string;
3104
+ lg: string;
3105
+ };
3106
+ }>, {
3107
+ fullHeight: {
3108
+ true: string;
3109
+ false: string;
3110
+ };
3111
+ padding: {
3112
+ none: string;
3113
+ sm: string;
3114
+ md: string;
3115
+ lg: string;
3116
+ };
3117
+ }, undefined, tailwind_variants.TVReturnType<{
3118
+ fullHeight: {
3119
+ true: string;
3120
+ false: string;
3121
+ };
3122
+ padding: {
3123
+ none: string;
3124
+ sm: string;
3125
+ md: string;
3126
+ lg: string;
3127
+ };
3128
+ }, undefined, string[], tailwind_variants_dist_config_js.TVConfig<{
3129
+ fullHeight: {
3130
+ true: string;
3131
+ false: string;
3132
+ };
3133
+ padding: {
3134
+ none: string;
3135
+ sm: string;
3136
+ md: string;
3137
+ lg: string;
3138
+ };
3139
+ }, {
3140
+ fullHeight: {
3141
+ true: string;
3142
+ false: string;
3143
+ };
3144
+ padding: {
3145
+ none: string;
3146
+ sm: string;
3147
+ md: string;
3148
+ lg: string;
3149
+ };
3150
+ }>, unknown, unknown, undefined>>;
3151
+ interface VideoWithBackdropRootProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof videoWithBackdropVariants> {
3152
+ /** Video source URL (HLS .m3u8 or regular video file) */
3153
+ src?: string;
3154
+ /** Cloudflare Stream configuration (takes precedence over src) */
3155
+ cloudflare?: CloudflareConfig;
3156
+ /** Children to render */
3157
+ children: React$1.ReactNode;
3158
+ }
3159
+ /**
3160
+ * VideoWithBackdrop Root
3161
+ *
3162
+ * Container that provides video context to child components.
3163
+ * Use with VideoWithBackdrop.Backdrop and VideoWithBackdrop.Content.
3164
+ *
3165
+ * @example
3166
+ * ```tsx
3167
+ * <VideoWithBackdrop.Root cloudflare={config}>
3168
+ * <VideoWithBackdrop.Backdrop blur="high" overlay="vignette" />
3169
+ * <VideoWithBackdrop.Content>
3170
+ * <VideoWithBackdrop.Video />
3171
+ * </VideoWithBackdrop.Content>
3172
+ * </VideoWithBackdrop.Root>
3173
+ * ```
3174
+ */
3175
+ declare const VideoWithBackdropRoot: React$1.ForwardRefExoticComponent<VideoWithBackdropRootProps & React$1.RefAttributes<HTMLDivElement>>;
3176
+ interface VideoWithBackdropBackdropProps extends Omit<BlurredVideoBackdropProps, "videoRef"> {
3177
+ }
3178
+ /**
3179
+ * VideoWithBackdrop Backdrop
3180
+ *
3181
+ * Renders the blurred video backdrop layer using canvas.
3182
+ * Automatically draws from the video element in context.
3183
+ */
3184
+ declare const VideoWithBackdropBackdrop: React$1.ForwardRefExoticComponent<VideoWithBackdropBackdropProps & React$1.RefAttributes<HTMLDivElement>>;
3185
+ interface VideoWithBackdropContentProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof contentVariants> {
3186
+ }
3187
+ /**
3188
+ * VideoWithBackdrop Content
3189
+ *
3190
+ * Container for the main video player and any additional content.
3191
+ * Positioned above the backdrop with z-index.
3192
+ */
3193
+ declare const VideoWithBackdropContent: React$1.ForwardRefExoticComponent<VideoWithBackdropContentProps & React$1.RefAttributes<HTMLDivElement>>;
3194
+ interface VideoWithBackdropVideoProps extends Omit<VideoPlayerProps, "videoRef"> {
3195
+ /** Max width of the video player container */
3196
+ maxWidth?: string;
3197
+ }
3198
+ /**
3199
+ * VideoWithBackdrop Video
3200
+ *
3201
+ * Convenience wrapper for VideoPlayer that automatically connects
3202
+ * to the backdrop via context.
3203
+ */
3204
+ declare const VideoWithBackdropVideo: React$1.ForwardRefExoticComponent<VideoWithBackdropVideoProps & React$1.RefAttributes<HTMLDivElement>>;
3205
+ interface VideoWithBackdropProps extends Omit<VideoPlayerProps, "videoRef" | "className" | "aspectRatio"> {
3206
+ /** Blur intensity (default: high) */
3207
+ blur?: BlurredVideoBackdropProps["blur"];
3208
+ /** Gradient overlay (default: vignette) */
3209
+ overlay?: BlurredVideoBackdropProps["overlay"];
3210
+ /** Backdrop opacity (default: 0.6) */
3211
+ backdropOpacity?: number;
3212
+ /** Max width of video player (default: 960px) */
3213
+ maxWidth?: string;
3214
+ /** Content padding (default: md) */
3215
+ padding?: "none" | "sm" | "md" | "lg";
3216
+ /** Video player rounded corners */
3217
+ rounded?: VideoPlayerProps["rounded"];
3218
+ /** Additional className for root container */
3219
+ className?: string;
3220
+ /** Target FPS for backdrop canvas (default: 30) */
3221
+ targetFps?: number;
3222
+ /** Canvas scale factor for backdrop (default: 0.5) */
3223
+ scale?: number;
3224
+ }
3225
+ /**
3226
+ * VideoWithBackdrop - Pre-composed video player with blurred backdrop.
3227
+ *
3228
+ * A simple, ready-to-use component that combines VideoPlayer with
3229
+ * BlurredVideoBackdrop for modal video experiences. Uses canvas rendering
3230
+ * for optimal performance.
3231
+ *
3232
+ * For custom layouts, use the compound components:
3233
+ * - VideoWithBackdrop.Root
3234
+ * - VideoWithBackdrop.Backdrop
3235
+ * - VideoWithBackdrop.Content
3236
+ * - VideoWithBackdrop.Video
3237
+ *
3238
+ * @example
3239
+ * ```tsx
3240
+ * // Simple usage (in a full-height container like Dialog)
3241
+ * <VideoWithBackdrop
3242
+ * cloudflare={{ videoId: "...", customerCode: "..." }}
3243
+ * autoPlay
3244
+ * blur="high"
3245
+ * overlay="vignette"
3246
+ * />
3247
+ *
3248
+ * // With Dialog
3249
+ * <Dialog size="full" variant="minimal">
3250
+ * <VideoWithBackdrop cloudflare={config} autoPlay />
3251
+ * </Dialog>
3252
+ * ```
3253
+ */
3254
+ declare const VideoWithBackdrop: React$1.ForwardRefExoticComponent<VideoWithBackdropProps & React$1.RefAttributes<HTMLDivElement>>;
3255
+ declare const VideoWithBackdropParts: React$1.ForwardRefExoticComponent<VideoWithBackdropRootProps & React$1.RefAttributes<HTMLDivElement>> & {
3256
+ Root: React$1.ForwardRefExoticComponent<VideoWithBackdropRootProps & React$1.RefAttributes<HTMLDivElement>>;
3257
+ Backdrop: React$1.ForwardRefExoticComponent<VideoWithBackdropBackdropProps & React$1.RefAttributes<HTMLDivElement>>;
3258
+ Content: React$1.ForwardRefExoticComponent<VideoWithBackdropContentProps & React$1.RefAttributes<HTMLDivElement>>;
3259
+ Video: React$1.ForwardRefExoticComponent<VideoWithBackdropVideoProps & React$1.RefAttributes<HTMLDivElement>>;
3260
+ };
3261
+
3262
+ declare const cardVariants: tailwind_variants.TVReturnType<{
3263
+ layout: {
3264
+ vertical: string;
3265
+ horizontal: string;
3266
+ /**
3267
+ * Overlay layout - content sits on top of full-bleed background.
3268
+ * Use with Background components for images/gradients.
3269
+ */
3270
+ overlay: string;
3271
+ };
3272
+ }, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
3273
+ layout: {
3274
+ vertical: string;
3275
+ horizontal: string;
3276
+ /**
3277
+ * Overlay layout - content sits on top of full-bleed background.
3278
+ * Use with Background components for images/gradients.
3279
+ */
3280
+ overlay: string;
3281
+ };
3282
+ }, {
3283
+ layout: {
3284
+ vertical: string;
3285
+ horizontal: string;
3286
+ /**
3287
+ * Overlay layout - content sits on top of full-bleed background.
3288
+ * Use with Background components for images/gradients.
3289
+ */
3290
+ overlay: string;
3291
+ };
3292
+ }>, {
3293
+ layout: {
3294
+ vertical: string;
3295
+ horizontal: string;
3296
+ /**
3297
+ * Overlay layout - content sits on top of full-bleed background.
3298
+ * Use with Background components for images/gradients.
3299
+ */
3300
+ overlay: string;
3301
+ };
3302
+ }, undefined, tailwind_variants.TVReturnType<{
3303
+ layout: {
3304
+ vertical: string;
3305
+ horizontal: string;
3306
+ /**
3307
+ * Overlay layout - content sits on top of full-bleed background.
3308
+ * Use with Background components for images/gradients.
3309
+ */
3310
+ overlay: string;
3311
+ };
3312
+ }, undefined, "relative flex overflow-hidden rounded-surface-card bg-card-background stroke-surface-card border-border-subtle border-solid", tailwind_variants_dist_config_js.TVConfig<{
3313
+ layout: {
3314
+ vertical: string;
3315
+ horizontal: string;
3316
+ /**
3317
+ * Overlay layout - content sits on top of full-bleed background.
3318
+ * Use with Background components for images/gradients.
3319
+ */
3320
+ overlay: string;
3321
+ };
3322
+ }, {
3323
+ layout: {
3324
+ vertical: string;
3325
+ horizontal: string;
3326
+ /**
3327
+ * Overlay layout - content sits on top of full-bleed background.
3328
+ * Use with Background components for images/gradients.
3329
+ */
3330
+ overlay: string;
3331
+ };
3332
+ }>, unknown, unknown, undefined>>;
3333
+ interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
3334
+ }
3335
+ /**
3336
+ * Card component for displaying content in a contained, scannable format.
3337
+ *
3338
+ * Layouts:
3339
+ * - vertical: Image on top, content below (default)
3340
+ * - horizontal: Image on left, content on right
3341
+ * - overlay: Full-bleed background with content on top
3342
+ *
3343
+ * Use with CardImage, CardContent, CardEyebrow, CardTitle, CardDescription, and CardActions.
3344
+ * For overlay layout, use Background components for full-bleed backgrounds.
3345
+ */
3346
+ declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
3347
+ interface CardImageProps extends React$1.HTMLAttributes<HTMLDivElement> {
3348
+ /**
3349
+ * The image source URL
3350
+ */
3351
+ src?: string;
3352
+ /**
3353
+ * Alt text for the image
3354
+ */
3355
+ alt?: string;
3356
+ }
3357
+ /**
3358
+ * Card image area. For vertical layout, displays with 16:9 aspect ratio.
3359
+ * For horizontal layout, takes up ~40% width and stretches to content height.
3360
+ */
3361
+ declare const CardImage: React$1.ForwardRefExoticComponent<CardImageProps & React$1.RefAttributes<HTMLDivElement>>;
3362
+ declare const cardContentVariants: tailwind_variants.TVReturnType<{
3363
+ /**
3364
+ * Vertical alignment of content within the card.
3365
+ * Useful for overlay layouts to position content at top/center/bottom.
3366
+ */
3367
+ justify: {
3368
+ start: string;
3369
+ center: string;
3370
+ end: string;
3371
+ };
3372
+ }, undefined, "flex w-full flex-1 flex-col gap-spatial-card-large-gap p-spatial-card-large-padding", tailwind_variants_dist_config_js.TVConfig<{
3373
+ /**
3374
+ * Vertical alignment of content within the card.
3375
+ * Useful for overlay layouts to position content at top/center/bottom.
3376
+ */
3377
+ justify: {
3378
+ start: string;
3379
+ center: string;
3380
+ end: string;
3381
+ };
3382
+ }, {
3383
+ /**
3384
+ * Vertical alignment of content within the card.
3385
+ * Useful for overlay layouts to position content at top/center/bottom.
3386
+ */
3387
+ justify: {
3388
+ start: string;
3389
+ center: string;
3390
+ end: string;
3391
+ };
3392
+ }>, {
3393
+ /**
3394
+ * Vertical alignment of content within the card.
3395
+ * Useful for overlay layouts to position content at top/center/bottom.
3396
+ */
3397
+ justify: {
3398
+ start: string;
3399
+ center: string;
3400
+ end: string;
2110
3401
  };
2111
3402
  }, undefined, tailwind_variants.TVReturnType<{
2112
3403
  /**
@@ -3494,6 +4785,154 @@ interface ToutProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<ty
3494
4785
  */
3495
4786
  declare const Tout: React$1.ForwardRefExoticComponent<ToutProps & React$1.RefAttributes<HTMLElement>>;
3496
4787
 
4788
+ /**
4789
+ * Design system breakpoint values in pixels.
4790
+ * These match the primitive breakpoint tokens from packages/tokens.
4791
+ */
4792
+ declare const BREAKPOINTS: {
4793
+ readonly sm: 320;
4794
+ readonly md: 768;
4795
+ readonly lg: 1440;
4796
+ };
4797
+ type Breakpoint = keyof typeof BREAKPOINTS;
4798
+ /**
4799
+ * Hook to get the current responsive breakpoint.
4800
+ * Returns the active breakpoint name based on viewport width.
4801
+ *
4802
+ * @returns The current breakpoint: 'sm' | 'md' | 'lg'
4803
+ *
4804
+ * @example
4805
+ * ```tsx
4806
+ * function Component() {
4807
+ * const breakpoint = useBreakpoint();
4808
+ *
4809
+ * return (
4810
+ * <div>
4811
+ * {breakpoint === 'sm' && <MobileLayout />}
4812
+ * {breakpoint === 'md' && <TabletLayout />}
4813
+ * {breakpoint === 'lg' && <DesktopLayout />}
4814
+ * </div>
4815
+ * );
4816
+ * }
4817
+ * ```
4818
+ */
4819
+ declare function useBreakpoint(): Breakpoint;
4820
+ /**
4821
+ * Hook to check if viewport is at or above a specific breakpoint.
4822
+ *
4823
+ * @param breakpoint - The minimum breakpoint to check against
4824
+ * @returns boolean indicating if viewport is at or above the breakpoint
4825
+ *
4826
+ * @example
4827
+ * ```tsx
4828
+ * function Component() {
4829
+ * const isDesktop = useMinBreakpoint('lg');
4830
+ * const isTabletUp = useMinBreakpoint('md');
4831
+ *
4832
+ * return isDesktop ? <DesktopView /> : <MobileView />;
4833
+ * }
4834
+ * ```
4835
+ */
4836
+ declare function useMinBreakpoint(breakpoint: Breakpoint): boolean;
4837
+ /**
4838
+ * Hook to check if viewport is below a specific breakpoint.
4839
+ *
4840
+ * @param breakpoint - The breakpoint to check against
4841
+ * @returns boolean indicating if viewport is below the breakpoint
4842
+ *
4843
+ * @example
4844
+ * ```tsx
4845
+ * function Component() {
4846
+ * const isMobile = useMaxBreakpoint('md'); // Below tablet
4847
+ *
4848
+ * return isMobile ? <MobileNav /> : <DesktopNav />;
4849
+ * }
4850
+ * ```
4851
+ */
4852
+ declare function useMaxBreakpoint(breakpoint: Breakpoint): boolean;
4853
+
4854
+ type EventMap<T> = T extends Window ? WindowEventMap : T extends Document ? DocumentEventMap : T extends HTMLElement ? HTMLElementEventMap : never;
4855
+ /**
4856
+ * Custom hook that attaches an event listener to a specified element.
4857
+ * Automatically handles cleanup on unmount and when dependencies change.
4858
+ *
4859
+ * @param eventName - The name of the event to listen for
4860
+ * @param handler - The callback function to execute when the event fires
4861
+ * @param element - The element to attach the listener to (defaults to window)
4862
+ * @param options - Optional event listener options
4863
+ *
4864
+ * @example
4865
+ * ```tsx
4866
+ * // Listen to window resize
4867
+ * useEventListener('resize', handleResize);
4868
+ *
4869
+ * // Listen to element scroll
4870
+ * useEventListener('scroll', handleScroll, containerRef.current);
4871
+ *
4872
+ * // With options
4873
+ * useEventListener('scroll', handleScroll, window, { passive: true });
4874
+ * ```
4875
+ */
4876
+ declare function useEventListener<T extends Window | Document | HTMLElement, K extends keyof EventMap<T>>(eventName: K, handler: (event: EventMap<T>[K]) => void, element?: T | null, options?: boolean | AddEventListenerOptions): void;
4877
+
4878
+ interface UseVideoKeyboardOptions {
4879
+ /** Ref to the video element */
4880
+ videoRef: React$1.RefObject<HTMLVideoElement | null>;
4881
+ /** Whether keyboard handling is enabled (default: true) */
4882
+ enabled?: boolean;
4883
+ /** Seek amount in seconds for arrow keys (default: 5) */
4884
+ seekAmount?: number;
4885
+ /** Volume change amount for arrow keys (default: 0.1) */
4886
+ volumeStep?: number;
4887
+ /** Callback when play/pause is toggled */
4888
+ onTogglePlay?: () => void;
4889
+ /** Callback when fullscreen is toggled */
4890
+ onToggleFullscreen?: () => void;
4891
+ /** Callback when captions are toggled */
4892
+ onToggleCaptions?: () => void;
4893
+ /** Callback when controls should be shown */
4894
+ onShowControls?: () => void;
4895
+ }
4896
+ interface UseVideoKeyboardReturn {
4897
+ /** Key down handler to attach to container element */
4898
+ handleKeyDown: (e: React$1.KeyboardEvent) => void;
4899
+ /** Props to spread on the container element */
4900
+ containerProps: {
4901
+ onKeyDown: (e: React$1.KeyboardEvent) => void;
4902
+ tabIndex: number;
4903
+ role: string;
4904
+ "aria-label": string;
4905
+ };
4906
+ }
4907
+ /**
4908
+ * Hook for handling keyboard shortcuts in a video player.
4909
+ *
4910
+ * Supported shortcuts:
4911
+ * - Space: Play/pause
4912
+ * - Left Arrow: Seek backward
4913
+ * - Right Arrow: Seek forward
4914
+ * - Up Arrow: Volume up
4915
+ * - Down Arrow: Volume down
4916
+ * - M: Toggle mute
4917
+ * - F: Toggle fullscreen
4918
+ * - C: Toggle captions
4919
+ *
4920
+ * @example
4921
+ * ```tsx
4922
+ * const { containerProps } = useVideoKeyboard({
4923
+ * videoRef,
4924
+ * onTogglePlay: () => video.paused ? video.play() : video.pause(),
4925
+ * onToggleFullscreen: () => toggleFullscreen(),
4926
+ * onShowControls: () => setControlsVisible(true),
4927
+ * });
4928
+ *
4929
+ * return <div {...containerProps}>...</div>;
4930
+ * ```
4931
+ */
4932
+ declare function useVideoKeyboard({ videoRef, enabled, seekAmount, volumeStep, onTogglePlay, onToggleFullscreen, onToggleCaptions, onShowControls, }: UseVideoKeyboardOptions): UseVideoKeyboardReturn;
4933
+
4934
+ declare function cn(...inputs: ClassValue[]): tailwind_variants.CnReturn;
4935
+
3497
4936
  /**
3498
4937
  * Theme context value
3499
4938
  */
@@ -3615,4 +5054,4 @@ declare function mergeCSSVars(...maps: CSSVariableMap[]): CSSVariableMap;
3615
5054
  */
3616
5055
  declare function filterCSSVars(cssVars: CSSVariableMap, prefix: string): CSSVariableMap;
3617
5056
 
3618
- export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, BackgroundCompound as Background, BackgroundGradient, type BackgroundGradientProps, BackgroundImage, type BackgroundImageProps, BackgroundOverlay, type BackgroundOverlayProps, type BackgroundProps, BackgroundStream, type BackgroundStreamProps, BackgroundVideo, type BackgroundVideoProps, Banner, type BannerProps, Button, type ButtonProps, type ButtonTheme, Card, CardActions, type CardActionsProps, CardBody, type CardBodyProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardEyebrow, type CardEyebrowProps, CardGrid, type CardGridProps, CardImage, type CardImageProps, type CardProps, CardTitle, type CardTitleProps, type ColorToken, type ComponentTheme, type ComponentThemeColors, type ComponentThemeSpatial, type ComponentThemeSurface, DEFAULT_TITLE_TYPOGRAPHY, DevToolbar, type DevToolbarProps, FONT_SIZES, FaqSection, type FaqSectionProps, type FontSizeToken, GridOverlay, type GridOverlayProps, Hero, BackgroundCompound as HeroBackground, BackgroundImage as HeroBackgroundImage, type BackgroundImageProps as HeroBackgroundImageProps, BackgroundStream as HeroBackgroundStream, type BackgroundStreamProps as HeroBackgroundStreamProps, BackgroundVideo as HeroBackgroundVideo, type BackgroundVideoProps as HeroBackgroundVideoProps, HeroContent, type HeroContentProps, BackgroundGradient as HeroGradient, type BackgroundGradientProps as HeroGradientProps, HeroHeader, type HeroHeaderProps, BackgroundOverlay as HeroOverlay, type BackgroundOverlayProps as HeroOverlayProps, type HeroProps, IconButton, type IconButtonProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps, type InputProps, Navbar, NavbarActions, type NavbarActionsProps, NavbarBrand, type NavbarBrandProps, NavbarLink, type NavbarLinkProps, NavbarLinks, type NavbarLinksProps, NavbarMobileMenu, NavbarMobileMenuButton, type NavbarMobileMenuButtonProps, NavbarMobileMenuLink, type NavbarMobileMenuLinkProps, type NavbarMobileMenuProps, type NavbarProps, NdstudioFooter, type NdstudioFooterProps, PagerControl, type PagerControlProps, Popover, PopoverArrow, type PopoverArrowProps, PopoverBackdrop, type PopoverBackdropProps, PopoverClose, type PopoverCloseProps, PopoverDescription, type PopoverDescriptionProps, PopoverParts, PopoverPopup, type PopoverPopupProps, PopoverPortal, type PopoverPortalProps, PopoverPositioner, type PopoverPositionerProps, type PopoverProps, PopoverRoot, type PopoverRootProps, PopoverTitle, type PopoverTitleProps, PopoverTrigger, type PopoverTriggerProps, Prose, type ProseProps, ProseSection, type ProseSectionProps, QuoteBlock, type QuoteBlockProps, type RadiusToken, River, type RiverProps, Select, SelectGroup, SelectGroupLabel, type SelectGroupLabelProps, type SelectGroupProps, SelectOption, type SelectOptionProps, SelectPopup, type SelectPopupProps, type SelectProps, SelectRoot, SelectTrigger, type SelectTriggerProps, type SpacingToken, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipArrow, type TooltipArrowProps, TooltipParts, TooltipPopup, type TooltipPopupProps, TooltipPortal, type TooltipPortalProps, TooltipPositioner, type TooltipPositionerProps, type TooltipProps, TooltipProvider, type TooltipProviderProps, TooltipRoot, type TooltipRootProps, TooltipTrigger, type TooltipTriggerProps, Tout, type ToutProps, TwoColumnSection, type TwoColumnSectionProps, USGovBanner, type USGovBannerProps, applyTheme, backgroundGradientVariants, backgroundImageVariants, backgroundOverlayVariants, backgroundStreamVariants, backgroundVariants, backgroundVideoVariants, bannerVariants, buttonThemeToStyleVars, buttonVariants, cardGridVariants, cardVariants, createThemeStyle, filterCSSVars, fontSizeToClass, getToken, heroContentVariants, heroHeaderVariants, heroVariants, iconButtonVariants, inputGroupAddonVariants, inputGroupVariants, inputVariants, mergeCSSVars, pagerControlVariants, popoverArrowVariants, popoverPopupVariants, quoteBlockVariants, removeTheme, responsiveTypographyClass, riverVariants, selectOptionVariants, selectPopupVariants, selectTriggerVariants, themeToStyleVars, toCSSVars, tooltipArrowVariants, tooltipPopupVariants, twoColumnSectionVariants, useCSSVars, useTheme, useThemeTokens };
5057
+ export { Accordion, AccordionItem, type AccordionItemProps, type AccordionProps, BLUR_AMOUNTS, BREAKPOINTS, BackgroundCompound as Background, BackgroundGradient, type BackgroundGradientProps, BackgroundImage, type BackgroundImageProps, BackgroundOverlay, type BackgroundOverlayProps, type BackgroundProps, BackgroundStream, type BackgroundStreamProps, BackgroundVideo, type BackgroundVideoProps, Banner, type BannerProps, type BlurIntensity, BlurredVideoBackdrop, type BlurredVideoBackdropProps, type Breakpoint, Button, type ButtonProps, type ButtonTheme, type CaptionCue, CaptionOverlay, type CaptionOverlayProps, Card, CardActions, type CardActionsProps, CardBody, type CardBodyProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardEyebrow, type CardEyebrowProps, CardGrid, type CardGridProps, CardImage, type CardImageProps, type CardProps, CardTitle, type CardTitleProps, type ColorToken, type ComponentTheme, type ComponentThemeColors, type ComponentThemeSpatial, type ComponentThemeSurface, DEFAULT_TITLE_TYPOGRAPHY, DevToolbar, type DevToolbarProps, Dialog, DialogBackdrop, type DialogBackdropProps, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogParts, DialogPopup, type DialogPopupProps, DialogPortal, type DialogPortalProps, type DialogProps, DialogRoot, type DialogRootProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps, FONT_SIZES, FaqSection, type FaqSectionProps, type FontSizeToken, GridOverlay, type GridOverlayProps, Hero, BackgroundCompound as HeroBackground, BackgroundImage as HeroBackgroundImage, type BackgroundImageProps as HeroBackgroundImageProps, BackgroundStream as HeroBackgroundStream, type BackgroundStreamProps as HeroBackgroundStreamProps, BackgroundVideo as HeroBackgroundVideo, type BackgroundVideoProps as HeroBackgroundVideoProps, HeroContent, type HeroContentProps, BackgroundGradient as HeroGradient, type BackgroundGradientProps as HeroGradientProps, HeroHeader, type HeroHeaderProps, BackgroundOverlay as HeroOverlay, type BackgroundOverlayProps as HeroOverlayProps, type HeroProps, IconButton, type IconButtonProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, InputGroupInput, type InputGroupInputProps, type InputGroupProps, InputGroupText, type InputGroupTextProps, InputGroupTextarea, type InputGroupTextareaProps, type InputProps, Navbar, NavbarActions, type NavbarActionsProps, NavbarBrand, type NavbarBrandProps, NavbarLink, type NavbarLinkProps, NavbarLinks, type NavbarLinksProps, NavbarMobileMenu, NavbarMobileMenuButton, type NavbarMobileMenuButtonProps, NavbarMobileMenuLink, type NavbarMobileMenuLinkProps, type NavbarMobileMenuProps, type NavbarProps, NdstudioFooter, type NdstudioFooterProps, type OverlayType, PagerControl, type PagerControlProps, Popover, PopoverArrow, type PopoverArrowProps, PopoverBackdrop, type PopoverBackdropProps, PopoverClose, type PopoverCloseProps, PopoverDescription, type PopoverDescriptionProps, PopoverParts, PopoverPopup, type PopoverPopupProps, PopoverPortal, type PopoverPortalProps, PopoverPositioner, type PopoverPositionerProps, type PopoverProps, PopoverRoot, type PopoverRootProps, PopoverTitle, type PopoverTitleProps, PopoverTrigger, type PopoverTriggerProps, Prose, type ProseProps, ProseSection, type ProseSectionProps, QuoteBlock, type QuoteBlockProps, type RadiusToken, River, type RiverProps, Select, SelectGroup, SelectGroupLabel, type SelectGroupLabelProps, type SelectGroupProps, SelectOption, type SelectOptionProps, SelectPopup, type SelectPopupProps, type SelectProps, SelectRoot, SelectTrigger, type SelectTriggerProps, type SpacingToken, type ThemeContextValue, ThemeProvider, type ThemeProviderProps, Tooltip, TooltipArrow, type TooltipArrowProps, TooltipParts, TooltipPopup, type TooltipPopupProps, TooltipPortal, type TooltipPortalProps, TooltipPositioner, type TooltipPositionerProps, type TooltipProps, TooltipProvider, type TooltipProviderProps, TooltipRoot, type TooltipRootProps, TooltipTrigger, type TooltipTriggerProps, Tout, type ToutProps, TwoColumnSection, type TwoColumnSectionProps, USGovBanner, type USGovBannerProps, type UseCanvasBlurOptions, type UseCanvasBlurReturn, type UseVideoKeyboardOptions, type UseVideoKeyboardReturn, VideoDialog, type VideoDialogProps, VideoPlayer, type VideoPlayerProps, VideoWithBackdrop, VideoWithBackdropBackdrop, type VideoWithBackdropBackdropProps, VideoWithBackdropContent, type VideoWithBackdropContentProps, VideoWithBackdropParts, type VideoWithBackdropProps, VideoWithBackdropRoot, type VideoWithBackdropRootProps, VideoWithBackdropVideo, type VideoWithBackdropVideoProps, applyTheme, backgroundGradientVariants, backgroundImageVariants, backgroundOverlayVariants, backgroundStreamVariants, backgroundVariants, backgroundVideoVariants, bannerVariants, blurredVideoBackdropVariants, buttonThemeToStyleVars, buttonVariants, canvasVariants, captionOverlayVariants, cardGridVariants, cardVariants, closeButtonVariants, cn, controlBarVariants, controlButtonVariants, createThemeStyle, dialogBackdropVariants, dialogPopupVariants, filterCSSVars, fontSizeToClass, getToken, gradientOverlayVariants, heroContentVariants, heroHeaderVariants, heroVariants, iconButtonVariants, inputGroupAddonVariants, inputGroupVariants, inputVariants, loadingOverlayVariants, mediaControllerVariants, mergeCSSVars, pagerControlVariants, popoverArrowVariants, popoverPopupVariants, quoteBlockVariants, removeTheme, responsiveTypographyClass, riverVariants, selectOptionVariants, selectPopupVariants, selectTriggerVariants, themeToStyleVars, toCSSVars, tooltipArrowVariants, tooltipPopupVariants, twoColumnSectionVariants, useBreakpoint, useCSSVars, useCanvasBlur, useCaptions, useEventListener, useMaxBreakpoint, useMinBreakpoint, useTheme, useThemeTokens, useVideoKeyboard, videoContainerVariants, videoDialogVariants, videoPlayerVariants, videoWithBackdropVariants };