@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/component-registry.md +1286 -40
- package/dist/index.d.ts +1572 -133
- package/dist/index.js +2245 -257
- package/dist/index.js.map +1 -1
- package/dist/tokens.css +680 -0
- package/package.json +20 -1
- package/src/components/atoms/blurred-video-backdrop/blurred-video-backdrop.tsx +447 -0
- package/src/components/atoms/button/icon-button.tsx +10 -4
- package/src/components/atoms/select/select.tsx +202 -49
- package/src/components/atoms/video-player/caption-overlay.tsx +107 -0
- package/src/components/atoms/video-player/video-player.tsx +811 -0
- package/src/components/molecules/dialog/dialog.tsx +526 -0
- package/src/components/molecules/video-dialog/video-dialog.tsx +272 -0
- package/src/components/molecules/video-with-backdrop/video-with-backdrop.tsx +383 -0
- package/src/hooks/index.ts +16 -0
- package/src/hooks/use-breakpoint.ts +145 -0
- package/src/hooks/use-captions.ts +247 -0
- package/src/hooks/use-video-keyboard.ts +230 -0
- package/src/lib/utils.ts +8 -1
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
|
|
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
|
-
|
|
1960
|
-
|
|
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
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
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,
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
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
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
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
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
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
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
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,
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
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
|
-
|
|
2033
|
-
|
|
2034
|
-
|
|
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
|
-
*
|
|
2068
|
-
* For horizontal layout, takes up ~40% width and stretches to content height.
|
|
2335
|
+
* Caption text box variants.
|
|
2069
2336
|
*/
|
|
2070
|
-
declare const
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
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,
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
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
|
-
|
|
2094
|
-
|
|
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
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
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 };
|