@gradeui/ui 0.3.0 → 0.4.0
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.mts +310 -1
- package/dist/index.d.ts +310 -1
- package/dist/index.js +39 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -39
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -2
package/dist/index.d.mts
CHANGED
|
@@ -17,6 +17,7 @@ import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
|
17
17
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
18
18
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
19
19
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
20
|
+
import * as THREE from 'three';
|
|
20
21
|
import { ClassValue } from 'clsx';
|
|
21
22
|
|
|
22
23
|
declare const Accordion: React$1.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -426,6 +427,314 @@ declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
|
|
|
426
427
|
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
427
428
|
declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
428
429
|
|
|
430
|
+
/**
|
|
431
|
+
* MediaSurface — the shared shell used by VideoPlayer, RivePlayer,
|
|
432
|
+
* and ThreeScene. Not exported publicly.
|
|
433
|
+
*
|
|
434
|
+
* Handles the surface area that's identical across all media types:
|
|
435
|
+
* - aspect ratio / radius / border (driven by CSS variables for theming)
|
|
436
|
+
* - loading skeleton
|
|
437
|
+
* - intersection-observer (for pause-when-offscreen)
|
|
438
|
+
* - reduced-motion query
|
|
439
|
+
*
|
|
440
|
+
* Design-system note: all visual dimensions are backed by CSS vars so
|
|
441
|
+
* consumers can retheme via `--rds-media-radius`, `--rds-media-border`, etc.
|
|
442
|
+
* (These will rename to `--gds-*` when the broader codebase rename lands.)
|
|
443
|
+
*/
|
|
444
|
+
|
|
445
|
+
type MediaAspect = "video" | "square" | "portrait" | "wide" | "auto";
|
|
446
|
+
type MediaRadius = "none" | "sm" | "md" | "lg" | "xl";
|
|
447
|
+
interface MediaSurfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
448
|
+
aspect?: MediaAspect;
|
|
449
|
+
radius?: MediaRadius;
|
|
450
|
+
border?: boolean;
|
|
451
|
+
loading?: boolean;
|
|
452
|
+
/** Callback fires when the surface enters / leaves the viewport. */
|
|
453
|
+
onVisibilityChange?: (visible: boolean) => void;
|
|
454
|
+
/** Fallback shown before `onReady` is signalled by the child. */
|
|
455
|
+
fallback?: React$1.ReactNode;
|
|
456
|
+
children?: React$1.ReactNode;
|
|
457
|
+
}
|
|
458
|
+
declare const MediaSurface: React$1.ForwardRefExoticComponent<MediaSurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
459
|
+
/** Shared prop interface extended by each media primitive. */
|
|
460
|
+
interface BaseMediaProps {
|
|
461
|
+
/** src for the media — url or path. */
|
|
462
|
+
src?: string;
|
|
463
|
+
/** Show native-ish play/pause/scrubber controls. Default: `true` for video, `false` for Rive/three. */
|
|
464
|
+
controls?: boolean;
|
|
465
|
+
/** Autoplay when mounted (respects reduced-motion). */
|
|
466
|
+
autoPlay?: boolean;
|
|
467
|
+
/** Loop on end. */
|
|
468
|
+
loop?: boolean;
|
|
469
|
+
/** Pause rendering / playback when offscreen. Default `true` (big perf win for WebGL). */
|
|
470
|
+
pauseOffscreen?: boolean;
|
|
471
|
+
/** Aspect ratio of the surface. */
|
|
472
|
+
aspect?: MediaAspect;
|
|
473
|
+
/** Corner radius. */
|
|
474
|
+
radius?: MediaRadius;
|
|
475
|
+
/** Draw a subtle border around the surface. */
|
|
476
|
+
border?: boolean;
|
|
477
|
+
/** Poster / fallback image while loading. */
|
|
478
|
+
poster?: string;
|
|
479
|
+
/** Accessible label — used as `aria-label` on the surface. */
|
|
480
|
+
label?: string;
|
|
481
|
+
className?: string;
|
|
482
|
+
style?: React$1.CSSProperties;
|
|
483
|
+
}
|
|
484
|
+
/** Hook — returns `true` when the OS reports reduced-motion preference. */
|
|
485
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* VideoPlayer — native HTML5 video wrapped in a MediaSurface.
|
|
489
|
+
*
|
|
490
|
+
* Modes:
|
|
491
|
+
* controls={true} (default) — shows native video controls
|
|
492
|
+
* controls={false} — bare viewer: hides chrome, muted autoplay/loop
|
|
493
|
+
*/
|
|
494
|
+
|
|
495
|
+
interface VideoPlayerProps extends BaseMediaProps {
|
|
496
|
+
/** Mute audio. Required `true` if `autoPlay` (browser restriction). */
|
|
497
|
+
muted?: boolean;
|
|
498
|
+
/** Playback rate. Defaults to 1. */
|
|
499
|
+
playbackRate?: number;
|
|
500
|
+
/** Object-fit. Defaults to "cover" — matches typical hero/background use. */
|
|
501
|
+
objectFit?: "cover" | "contain" | "fill";
|
|
502
|
+
}
|
|
503
|
+
declare const VideoPlayer: React$1.ForwardRefExoticComponent<VideoPlayerProps & React$1.RefAttributes<HTMLVideoElement>>;
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* RivePlayer — Rive runtime wrapped in a MediaSurface.
|
|
507
|
+
*
|
|
508
|
+
* The @rive-app/react-canvas dep is marked `optional` in package.json — this
|
|
509
|
+
* component lazy-imports it so consumers who don't use Rive don't fail at
|
|
510
|
+
* install time and don't pay the bundle cost unless they render one.
|
|
511
|
+
*
|
|
512
|
+
* Modes:
|
|
513
|
+
* controls={true} — shows a small play/pause overlay
|
|
514
|
+
* controls={false} (default) — bare viewer: zero chrome
|
|
515
|
+
*/
|
|
516
|
+
|
|
517
|
+
interface RivePlayerProps extends BaseMediaProps {
|
|
518
|
+
/** State machine to run. */
|
|
519
|
+
stateMachines?: string | string[];
|
|
520
|
+
/** Artboard name — omit to use the default. */
|
|
521
|
+
artboard?: string;
|
|
522
|
+
/** Object-fit equivalent — how the art sits inside the surface. */
|
|
523
|
+
fit?: "contain" | "cover" | "fill" | "fitWidth" | "fitHeight" | "none";
|
|
524
|
+
/** Inputs to pass to the state machine. */
|
|
525
|
+
stateMachineInputs?: Record<string, number | boolean | string>;
|
|
526
|
+
}
|
|
527
|
+
declare const RivePlayer: React$1.ForwardRefExoticComponent<RivePlayerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Shared types for the three.js layer of the design system.
|
|
531
|
+
*
|
|
532
|
+
* Presets are structured data so the same registry can drive both the
|
|
533
|
+
* runtime `<ThreeScene preset="..." />` and the `<ShaderPresetPicker />`
|
|
534
|
+
* preview gallery without duplicating shaders.
|
|
535
|
+
*/
|
|
536
|
+
|
|
537
|
+
/** Minimal context passed to a scene factory. */
|
|
538
|
+
interface SceneContext {
|
|
539
|
+
renderer: THREE.WebGLRenderer;
|
|
540
|
+
width: number;
|
|
541
|
+
height: number;
|
|
542
|
+
/** Palette to drive the scene — all presets map their colors onto these slots. */
|
|
543
|
+
palette: Palette;
|
|
544
|
+
}
|
|
545
|
+
/** The four palette slots every preset opts into. */
|
|
546
|
+
interface Palette {
|
|
547
|
+
primary: string;
|
|
548
|
+
secondary: string;
|
|
549
|
+
accent: string;
|
|
550
|
+
background: string;
|
|
551
|
+
}
|
|
552
|
+
/** A scene factory returns everything needed to run and tear down a scene. */
|
|
553
|
+
interface SceneHandle {
|
|
554
|
+
scene: THREE.Scene;
|
|
555
|
+
camera: THREE.Camera;
|
|
556
|
+
/** Called every frame with elapsed seconds + delta seconds. */
|
|
557
|
+
update?: (elapsed: number, delta: number) => void;
|
|
558
|
+
/** Called on container resize. */
|
|
559
|
+
resize?: (width: number, height: number) => void;
|
|
560
|
+
/** Called when palette changes at runtime. */
|
|
561
|
+
setPalette?: (palette: Palette) => void;
|
|
562
|
+
/** Release GPU + CPU resources. */
|
|
563
|
+
dispose?: () => void;
|
|
564
|
+
}
|
|
565
|
+
type SceneFactory = (ctx: SceneContext) => SceneHandle;
|
|
566
|
+
/** Declarative description of a post-FX stack. Specific pass types are strings
|
|
567
|
+
* so consumers can author presets without importing postprocessing types. */
|
|
568
|
+
interface PostPreset {
|
|
569
|
+
id: string;
|
|
570
|
+
label: string;
|
|
571
|
+
/** Per-pass options keyed by effect name (bloom, noise, scanlines, vignette, chromatic, glitch). */
|
|
572
|
+
effects: {
|
|
573
|
+
bloom?: {
|
|
574
|
+
intensity?: number;
|
|
575
|
+
luminanceThreshold?: number;
|
|
576
|
+
radius?: number;
|
|
577
|
+
};
|
|
578
|
+
noise?: {
|
|
579
|
+
intensity?: number;
|
|
580
|
+
};
|
|
581
|
+
scanlines?: {
|
|
582
|
+
density?: number;
|
|
583
|
+
opacity?: number;
|
|
584
|
+
};
|
|
585
|
+
vignette?: {
|
|
586
|
+
darkness?: number;
|
|
587
|
+
offset?: number;
|
|
588
|
+
};
|
|
589
|
+
chromatic?: {
|
|
590
|
+
offset?: number;
|
|
591
|
+
};
|
|
592
|
+
glitch?: {
|
|
593
|
+
chromatic?: boolean;
|
|
594
|
+
strength?: [number, number];
|
|
595
|
+
};
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
/** A shader preset is the data needed to instantiate one of the canned scenes. */
|
|
599
|
+
interface ShaderPreset {
|
|
600
|
+
id: string;
|
|
601
|
+
/** Short human label for picker cards. */
|
|
602
|
+
label: string;
|
|
603
|
+
/** One-line description an LLM can use to pick this preset. */
|
|
604
|
+
description: string;
|
|
605
|
+
/** Semantic tags — consumer filters ("space", "retro", "abstract") and LLM hints. */
|
|
606
|
+
tags: string[];
|
|
607
|
+
/** Name of the scene factory in the scene registry. */
|
|
608
|
+
scene: string;
|
|
609
|
+
/** Default post-FX preset id for this preset. */
|
|
610
|
+
defaultPostPreset?: string;
|
|
611
|
+
/** Optional palette overrides — otherwise uses the theme palette. */
|
|
612
|
+
defaultPalette?: Partial<Palette>;
|
|
613
|
+
/** Static poster image path for non-hover previews. Served from /public. */
|
|
614
|
+
poster?: string;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* ThreeScene — the WebGL media primitive.
|
|
619
|
+
*
|
|
620
|
+
* Supports two modes:
|
|
621
|
+
* 1. Preset mode: <ThreeScene preset="space" postPreset="vhs" />
|
|
622
|
+
* 2. Custom mode: <ThreeScene createScene={({ renderer, width, height, palette }) => ({ scene, camera, update, dispose })} />
|
|
623
|
+
*
|
|
624
|
+
* Post-FX composer is always applied; use postPreset="none" for a clean render.
|
|
625
|
+
*
|
|
626
|
+
* Zero-chrome viewer mode: the default. Pass `controls` to show a minimal
|
|
627
|
+
* play/pause overlay. Scene pauses when offscreen (pauseOffscreen default `true`).
|
|
628
|
+
*/
|
|
629
|
+
|
|
630
|
+
interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster"> {
|
|
631
|
+
/** Preset id from the shader preset registry. */
|
|
632
|
+
preset?: string;
|
|
633
|
+
/** Post-FX preset id. Defaults to the preset's `defaultPostPreset` or "vhs". */
|
|
634
|
+
postPreset?: string;
|
|
635
|
+
/** Palette overrides. Unset slots fall back to `DEFAULT_PALETTE`. */
|
|
636
|
+
palette?: Partial<Palette>;
|
|
637
|
+
/**
|
|
638
|
+
* Custom scene factory. Takes precedence over `preset`.
|
|
639
|
+
* Use for bespoke three.js scenes that don't fit a preset.
|
|
640
|
+
*/
|
|
641
|
+
createScene?: SceneFactory;
|
|
642
|
+
/** Static poster to show while the GL context warms up. */
|
|
643
|
+
poster?: string;
|
|
644
|
+
/** Pixel-ratio cap. Defaults to `Math.min(window.devicePixelRatio, 2)`. */
|
|
645
|
+
maxDpr?: number;
|
|
646
|
+
}
|
|
647
|
+
declare const ThreeScene: React$1.ForwardRefExoticComponent<ThreeSceneProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* ShaderPresetPreview — a thumbnail-sized preview of a shader preset.
|
|
651
|
+
*
|
|
652
|
+
* Default behaviour: static poster until hovered, then kick in a live
|
|
653
|
+
* `<ThreeScene>` render. Keeps gallery pages cheap (ten live shaders on
|
|
654
|
+
* one page eats FPS fast, Safari caps WebGL contexts ~8).
|
|
655
|
+
*
|
|
656
|
+
* Props:
|
|
657
|
+
* live: "never" → always show poster, no canvas
|
|
658
|
+
* live: "hover" → (default) canvas spins up on hover, tears down on leave
|
|
659
|
+
* live: "always" → canvas always rendering
|
|
660
|
+
*/
|
|
661
|
+
|
|
662
|
+
interface ShaderPresetPreviewProps {
|
|
663
|
+
preset: string;
|
|
664
|
+
live?: "never" | "hover" | "always";
|
|
665
|
+
postPreset?: string;
|
|
666
|
+
palette?: Partial<Palette>;
|
|
667
|
+
className?: string;
|
|
668
|
+
aspect?: "video" | "square" | "portrait" | "wide";
|
|
669
|
+
radius?: "none" | "sm" | "md" | "lg" | "xl";
|
|
670
|
+
/** Text label shown on the card. Defaults to preset label. */
|
|
671
|
+
label?: string;
|
|
672
|
+
/** Hide the label strip. */
|
|
673
|
+
hideLabel?: boolean;
|
|
674
|
+
onClick?: () => void;
|
|
675
|
+
}
|
|
676
|
+
declare const ShaderPresetPreview: React$1.ForwardRefExoticComponent<ShaderPresetPreviewProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* ShaderPresetPicker — runtime preset gallery + selection.
|
|
680
|
+
*
|
|
681
|
+
* A grid of `<ShaderPresetPreview>` cards. Click to select. Used for
|
|
682
|
+
* things like "pick a vibe for your course background".
|
|
683
|
+
*
|
|
684
|
+
* For a browsing-only catalogue with no selection, just lay out
|
|
685
|
+
* `<ShaderPresetPreview>` directly.
|
|
686
|
+
*
|
|
687
|
+
* TODO(phase 2): static catalogue page for the docs site mirroring this.
|
|
688
|
+
*/
|
|
689
|
+
|
|
690
|
+
interface ShaderPresetPickerProps {
|
|
691
|
+
/** Currently selected preset id (controlled). */
|
|
692
|
+
value?: string;
|
|
693
|
+
/** Called when the user clicks a preset. */
|
|
694
|
+
onChange?: (presetId: string) => void;
|
|
695
|
+
/** Filter by tag — e.g. only show `"space"` or `"retro"` presets. */
|
|
696
|
+
filterTags?: string[];
|
|
697
|
+
/** Live-render mode for thumbnails. Default "hover". */
|
|
698
|
+
live?: "never" | "hover" | "always";
|
|
699
|
+
/** Shared post-FX preset applied to all thumbnails. Default: each preset's own. */
|
|
700
|
+
postPreset?: string;
|
|
701
|
+
/** Shared palette for all thumbnails. */
|
|
702
|
+
palette?: Partial<Palette>;
|
|
703
|
+
/** Columns at md+ breakpoint. Default 3. */
|
|
704
|
+
columns?: 2 | 3 | 4;
|
|
705
|
+
className?: string;
|
|
706
|
+
}
|
|
707
|
+
declare function ShaderPresetPicker({ value, onChange, filterTags, live, postPreset, palette, columns, className, }: ShaderPresetPickerProps): React$1.JSX.Element;
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
* Shader preset registry — maps semantic preset ids to scene factories
|
|
711
|
+
* plus metadata for the picker UI.
|
|
712
|
+
*
|
|
713
|
+
* Adding a new preset:
|
|
714
|
+
* 1. Write a SceneFactory in `./scenes/<name>.ts`
|
|
715
|
+
* 2. Register it in `sceneRegistry` below
|
|
716
|
+
* 3. Add a `ShaderPreset` entry in `shaderPresets`
|
|
717
|
+
*
|
|
718
|
+
* Both `<ThreeScene preset="space" />` and `<ShaderPresetPicker />` read
|
|
719
|
+
* from this registry so they stay in lockstep.
|
|
720
|
+
*/
|
|
721
|
+
|
|
722
|
+
declare const sceneRegistry: Record<string, SceneFactory>;
|
|
723
|
+
declare const shaderPresets: ShaderPreset[];
|
|
724
|
+
declare const shaderPresetById: Record<string, ShaderPreset>;
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Post-FX preset registry.
|
|
728
|
+
*
|
|
729
|
+
* Each preset is a tunable description of the post-FX stack. Lives as data
|
|
730
|
+
* so the same registry drives `<ThreeScene postPreset="vhs" />` and the
|
|
731
|
+
* preset picker's preview thumbnails.
|
|
732
|
+
*/
|
|
733
|
+
|
|
734
|
+
declare const postPresets: Record<string, PostPreset>;
|
|
735
|
+
type PostPresetId = keyof typeof postPresets;
|
|
736
|
+
declare const defaultPostPreset: PostPresetId;
|
|
737
|
+
|
|
429
738
|
declare function cn(...inputs: ClassValue[]): string;
|
|
430
739
|
|
|
431
740
|
interface LenisProviderProps {
|
|
@@ -908,4 +1217,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
|
|
|
908
1217
|
*/
|
|
909
1218
|
declare function ThemeToggle(): React$1.JSX.Element;
|
|
910
1219
|
|
|
911
|
-
export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BreadcrumbItem, Button, type ButtonShape, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Input, type InputStyle, Label, LenisProvider, type ModeName, type OKLCHTriplet, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SideMenu, type SideMenuItem, type SideMenuProps, type SideMenuSection, type SimpleTab, SimpleTabs, SimpleTabsContent, SimpleTabsList, type SimpleTabsListProps, SimpleTabsPanel, type SimpleTabsPanelProps, type SimpleTabsProps, SimpleTabsRoot, type SimpleTabsRootProps, SimpleTabsTrigger, type SimpleTabsTriggerProps, Skeleton, Slider, type SpacingDensity, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopMenu, type TopMenuProps, TopMenuUser, TopMenuUserItem, type TopMenuUserItemProps, type TopMenuUserProps, TopMenuUserSection, type TypeScalePreset, applyThemeToRoot, badgeVariants, builtInThemes, buttonVariants, calmInput, cn, defaultThemeId, deleteUserTheme, duplicateTheme, energyInput, generateTheme, getTheme, listThemes, listUserThemes, loadUserThemeInput, saveUserTheme, themeToCSSVars, useGradeTheme, useMaybeGradeTheme };
|
|
1220
|
+
export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BaseMediaProps, type BreadcrumbItem, Button, type ButtonShape, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Input, type InputStyle, Label, LenisProvider, type MediaAspect, type MediaRadius, MediaSurface, type MediaSurfaceProps, type ModeName, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, RivePlayer, type RivePlayerProps, type SceneContext, type SceneFactory, type SceneHandle, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SideMenu, type SideMenuItem, type SideMenuProps, type SideMenuSection, type SimpleTab, SimpleTabs, SimpleTabsContent, SimpleTabsList, type SimpleTabsListProps, SimpleTabsPanel, type SimpleTabsPanelProps, type SimpleTabsProps, SimpleTabsRoot, type SimpleTabsRootProps, SimpleTabsTrigger, type SimpleTabsTriggerProps, Skeleton, Slider, type SpacingDensity, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopMenu, type TopMenuProps, TopMenuUser, TopMenuUserItem, type TopMenuUserItemProps, type TopMenuUserProps, TopMenuUserSection, type TypeScalePreset, VideoPlayer, type VideoPlayerProps, applyThemeToRoot, badgeVariants, builtInThemes, buttonVariants, calmInput, cn, defaultPostPreset, defaultThemeId, deleteUserTheme, duplicateTheme, energyInput, generateTheme, getTheme, listThemes, listUserThemes, loadUserThemeInput, postPresets, saveUserTheme, sceneRegistry, shaderPresetById, shaderPresets, themeToCSSVars, useGradeTheme, useMaybeGradeTheme, usePrefersReducedMotion };
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
|
17
17
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
18
18
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
19
19
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
20
|
+
import * as THREE from 'three';
|
|
20
21
|
import { ClassValue } from 'clsx';
|
|
21
22
|
|
|
22
23
|
declare const Accordion: React$1.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -426,6 +427,314 @@ declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
|
|
|
426
427
|
declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
427
428
|
declare const TooltipContent: React$1.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
428
429
|
|
|
430
|
+
/**
|
|
431
|
+
* MediaSurface — the shared shell used by VideoPlayer, RivePlayer,
|
|
432
|
+
* and ThreeScene. Not exported publicly.
|
|
433
|
+
*
|
|
434
|
+
* Handles the surface area that's identical across all media types:
|
|
435
|
+
* - aspect ratio / radius / border (driven by CSS variables for theming)
|
|
436
|
+
* - loading skeleton
|
|
437
|
+
* - intersection-observer (for pause-when-offscreen)
|
|
438
|
+
* - reduced-motion query
|
|
439
|
+
*
|
|
440
|
+
* Design-system note: all visual dimensions are backed by CSS vars so
|
|
441
|
+
* consumers can retheme via `--rds-media-radius`, `--rds-media-border`, etc.
|
|
442
|
+
* (These will rename to `--gds-*` when the broader codebase rename lands.)
|
|
443
|
+
*/
|
|
444
|
+
|
|
445
|
+
type MediaAspect = "video" | "square" | "portrait" | "wide" | "auto";
|
|
446
|
+
type MediaRadius = "none" | "sm" | "md" | "lg" | "xl";
|
|
447
|
+
interface MediaSurfaceProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> {
|
|
448
|
+
aspect?: MediaAspect;
|
|
449
|
+
radius?: MediaRadius;
|
|
450
|
+
border?: boolean;
|
|
451
|
+
loading?: boolean;
|
|
452
|
+
/** Callback fires when the surface enters / leaves the viewport. */
|
|
453
|
+
onVisibilityChange?: (visible: boolean) => void;
|
|
454
|
+
/** Fallback shown before `onReady` is signalled by the child. */
|
|
455
|
+
fallback?: React$1.ReactNode;
|
|
456
|
+
children?: React$1.ReactNode;
|
|
457
|
+
}
|
|
458
|
+
declare const MediaSurface: React$1.ForwardRefExoticComponent<MediaSurfaceProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
459
|
+
/** Shared prop interface extended by each media primitive. */
|
|
460
|
+
interface BaseMediaProps {
|
|
461
|
+
/** src for the media — url or path. */
|
|
462
|
+
src?: string;
|
|
463
|
+
/** Show native-ish play/pause/scrubber controls. Default: `true` for video, `false` for Rive/three. */
|
|
464
|
+
controls?: boolean;
|
|
465
|
+
/** Autoplay when mounted (respects reduced-motion). */
|
|
466
|
+
autoPlay?: boolean;
|
|
467
|
+
/** Loop on end. */
|
|
468
|
+
loop?: boolean;
|
|
469
|
+
/** Pause rendering / playback when offscreen. Default `true` (big perf win for WebGL). */
|
|
470
|
+
pauseOffscreen?: boolean;
|
|
471
|
+
/** Aspect ratio of the surface. */
|
|
472
|
+
aspect?: MediaAspect;
|
|
473
|
+
/** Corner radius. */
|
|
474
|
+
radius?: MediaRadius;
|
|
475
|
+
/** Draw a subtle border around the surface. */
|
|
476
|
+
border?: boolean;
|
|
477
|
+
/** Poster / fallback image while loading. */
|
|
478
|
+
poster?: string;
|
|
479
|
+
/** Accessible label — used as `aria-label` on the surface. */
|
|
480
|
+
label?: string;
|
|
481
|
+
className?: string;
|
|
482
|
+
style?: React$1.CSSProperties;
|
|
483
|
+
}
|
|
484
|
+
/** Hook — returns `true` when the OS reports reduced-motion preference. */
|
|
485
|
+
declare function usePrefersReducedMotion(): boolean;
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* VideoPlayer — native HTML5 video wrapped in a MediaSurface.
|
|
489
|
+
*
|
|
490
|
+
* Modes:
|
|
491
|
+
* controls={true} (default) — shows native video controls
|
|
492
|
+
* controls={false} — bare viewer: hides chrome, muted autoplay/loop
|
|
493
|
+
*/
|
|
494
|
+
|
|
495
|
+
interface VideoPlayerProps extends BaseMediaProps {
|
|
496
|
+
/** Mute audio. Required `true` if `autoPlay` (browser restriction). */
|
|
497
|
+
muted?: boolean;
|
|
498
|
+
/** Playback rate. Defaults to 1. */
|
|
499
|
+
playbackRate?: number;
|
|
500
|
+
/** Object-fit. Defaults to "cover" — matches typical hero/background use. */
|
|
501
|
+
objectFit?: "cover" | "contain" | "fill";
|
|
502
|
+
}
|
|
503
|
+
declare const VideoPlayer: React$1.ForwardRefExoticComponent<VideoPlayerProps & React$1.RefAttributes<HTMLVideoElement>>;
|
|
504
|
+
|
|
505
|
+
/**
|
|
506
|
+
* RivePlayer — Rive runtime wrapped in a MediaSurface.
|
|
507
|
+
*
|
|
508
|
+
* The @rive-app/react-canvas dep is marked `optional` in package.json — this
|
|
509
|
+
* component lazy-imports it so consumers who don't use Rive don't fail at
|
|
510
|
+
* install time and don't pay the bundle cost unless they render one.
|
|
511
|
+
*
|
|
512
|
+
* Modes:
|
|
513
|
+
* controls={true} — shows a small play/pause overlay
|
|
514
|
+
* controls={false} (default) — bare viewer: zero chrome
|
|
515
|
+
*/
|
|
516
|
+
|
|
517
|
+
interface RivePlayerProps extends BaseMediaProps {
|
|
518
|
+
/** State machine to run. */
|
|
519
|
+
stateMachines?: string | string[];
|
|
520
|
+
/** Artboard name — omit to use the default. */
|
|
521
|
+
artboard?: string;
|
|
522
|
+
/** Object-fit equivalent — how the art sits inside the surface. */
|
|
523
|
+
fit?: "contain" | "cover" | "fill" | "fitWidth" | "fitHeight" | "none";
|
|
524
|
+
/** Inputs to pass to the state machine. */
|
|
525
|
+
stateMachineInputs?: Record<string, number | boolean | string>;
|
|
526
|
+
}
|
|
527
|
+
declare const RivePlayer: React$1.ForwardRefExoticComponent<RivePlayerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Shared types for the three.js layer of the design system.
|
|
531
|
+
*
|
|
532
|
+
* Presets are structured data so the same registry can drive both the
|
|
533
|
+
* runtime `<ThreeScene preset="..." />` and the `<ShaderPresetPicker />`
|
|
534
|
+
* preview gallery without duplicating shaders.
|
|
535
|
+
*/
|
|
536
|
+
|
|
537
|
+
/** Minimal context passed to a scene factory. */
|
|
538
|
+
interface SceneContext {
|
|
539
|
+
renderer: THREE.WebGLRenderer;
|
|
540
|
+
width: number;
|
|
541
|
+
height: number;
|
|
542
|
+
/** Palette to drive the scene — all presets map their colors onto these slots. */
|
|
543
|
+
palette: Palette;
|
|
544
|
+
}
|
|
545
|
+
/** The four palette slots every preset opts into. */
|
|
546
|
+
interface Palette {
|
|
547
|
+
primary: string;
|
|
548
|
+
secondary: string;
|
|
549
|
+
accent: string;
|
|
550
|
+
background: string;
|
|
551
|
+
}
|
|
552
|
+
/** A scene factory returns everything needed to run and tear down a scene. */
|
|
553
|
+
interface SceneHandle {
|
|
554
|
+
scene: THREE.Scene;
|
|
555
|
+
camera: THREE.Camera;
|
|
556
|
+
/** Called every frame with elapsed seconds + delta seconds. */
|
|
557
|
+
update?: (elapsed: number, delta: number) => void;
|
|
558
|
+
/** Called on container resize. */
|
|
559
|
+
resize?: (width: number, height: number) => void;
|
|
560
|
+
/** Called when palette changes at runtime. */
|
|
561
|
+
setPalette?: (palette: Palette) => void;
|
|
562
|
+
/** Release GPU + CPU resources. */
|
|
563
|
+
dispose?: () => void;
|
|
564
|
+
}
|
|
565
|
+
type SceneFactory = (ctx: SceneContext) => SceneHandle;
|
|
566
|
+
/** Declarative description of a post-FX stack. Specific pass types are strings
|
|
567
|
+
* so consumers can author presets without importing postprocessing types. */
|
|
568
|
+
interface PostPreset {
|
|
569
|
+
id: string;
|
|
570
|
+
label: string;
|
|
571
|
+
/** Per-pass options keyed by effect name (bloom, noise, scanlines, vignette, chromatic, glitch). */
|
|
572
|
+
effects: {
|
|
573
|
+
bloom?: {
|
|
574
|
+
intensity?: number;
|
|
575
|
+
luminanceThreshold?: number;
|
|
576
|
+
radius?: number;
|
|
577
|
+
};
|
|
578
|
+
noise?: {
|
|
579
|
+
intensity?: number;
|
|
580
|
+
};
|
|
581
|
+
scanlines?: {
|
|
582
|
+
density?: number;
|
|
583
|
+
opacity?: number;
|
|
584
|
+
};
|
|
585
|
+
vignette?: {
|
|
586
|
+
darkness?: number;
|
|
587
|
+
offset?: number;
|
|
588
|
+
};
|
|
589
|
+
chromatic?: {
|
|
590
|
+
offset?: number;
|
|
591
|
+
};
|
|
592
|
+
glitch?: {
|
|
593
|
+
chromatic?: boolean;
|
|
594
|
+
strength?: [number, number];
|
|
595
|
+
};
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
/** A shader preset is the data needed to instantiate one of the canned scenes. */
|
|
599
|
+
interface ShaderPreset {
|
|
600
|
+
id: string;
|
|
601
|
+
/** Short human label for picker cards. */
|
|
602
|
+
label: string;
|
|
603
|
+
/** One-line description an LLM can use to pick this preset. */
|
|
604
|
+
description: string;
|
|
605
|
+
/** Semantic tags — consumer filters ("space", "retro", "abstract") and LLM hints. */
|
|
606
|
+
tags: string[];
|
|
607
|
+
/** Name of the scene factory in the scene registry. */
|
|
608
|
+
scene: string;
|
|
609
|
+
/** Default post-FX preset id for this preset. */
|
|
610
|
+
defaultPostPreset?: string;
|
|
611
|
+
/** Optional palette overrides — otherwise uses the theme palette. */
|
|
612
|
+
defaultPalette?: Partial<Palette>;
|
|
613
|
+
/** Static poster image path for non-hover previews. Served from /public. */
|
|
614
|
+
poster?: string;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* ThreeScene — the WebGL media primitive.
|
|
619
|
+
*
|
|
620
|
+
* Supports two modes:
|
|
621
|
+
* 1. Preset mode: <ThreeScene preset="space" postPreset="vhs" />
|
|
622
|
+
* 2. Custom mode: <ThreeScene createScene={({ renderer, width, height, palette }) => ({ scene, camera, update, dispose })} />
|
|
623
|
+
*
|
|
624
|
+
* Post-FX composer is always applied; use postPreset="none" for a clean render.
|
|
625
|
+
*
|
|
626
|
+
* Zero-chrome viewer mode: the default. Pass `controls` to show a minimal
|
|
627
|
+
* play/pause overlay. Scene pauses when offscreen (pauseOffscreen default `true`).
|
|
628
|
+
*/
|
|
629
|
+
|
|
630
|
+
interface ThreeSceneProps extends Omit<BaseMediaProps, "src" | "poster"> {
|
|
631
|
+
/** Preset id from the shader preset registry. */
|
|
632
|
+
preset?: string;
|
|
633
|
+
/** Post-FX preset id. Defaults to the preset's `defaultPostPreset` or "vhs". */
|
|
634
|
+
postPreset?: string;
|
|
635
|
+
/** Palette overrides. Unset slots fall back to `DEFAULT_PALETTE`. */
|
|
636
|
+
palette?: Partial<Palette>;
|
|
637
|
+
/**
|
|
638
|
+
* Custom scene factory. Takes precedence over `preset`.
|
|
639
|
+
* Use for bespoke three.js scenes that don't fit a preset.
|
|
640
|
+
*/
|
|
641
|
+
createScene?: SceneFactory;
|
|
642
|
+
/** Static poster to show while the GL context warms up. */
|
|
643
|
+
poster?: string;
|
|
644
|
+
/** Pixel-ratio cap. Defaults to `Math.min(window.devicePixelRatio, 2)`. */
|
|
645
|
+
maxDpr?: number;
|
|
646
|
+
}
|
|
647
|
+
declare const ThreeScene: React$1.ForwardRefExoticComponent<ThreeSceneProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* ShaderPresetPreview — a thumbnail-sized preview of a shader preset.
|
|
651
|
+
*
|
|
652
|
+
* Default behaviour: static poster until hovered, then kick in a live
|
|
653
|
+
* `<ThreeScene>` render. Keeps gallery pages cheap (ten live shaders on
|
|
654
|
+
* one page eats FPS fast, Safari caps WebGL contexts ~8).
|
|
655
|
+
*
|
|
656
|
+
* Props:
|
|
657
|
+
* live: "never" → always show poster, no canvas
|
|
658
|
+
* live: "hover" → (default) canvas spins up on hover, tears down on leave
|
|
659
|
+
* live: "always" → canvas always rendering
|
|
660
|
+
*/
|
|
661
|
+
|
|
662
|
+
interface ShaderPresetPreviewProps {
|
|
663
|
+
preset: string;
|
|
664
|
+
live?: "never" | "hover" | "always";
|
|
665
|
+
postPreset?: string;
|
|
666
|
+
palette?: Partial<Palette>;
|
|
667
|
+
className?: string;
|
|
668
|
+
aspect?: "video" | "square" | "portrait" | "wide";
|
|
669
|
+
radius?: "none" | "sm" | "md" | "lg" | "xl";
|
|
670
|
+
/** Text label shown on the card. Defaults to preset label. */
|
|
671
|
+
label?: string;
|
|
672
|
+
/** Hide the label strip. */
|
|
673
|
+
hideLabel?: boolean;
|
|
674
|
+
onClick?: () => void;
|
|
675
|
+
}
|
|
676
|
+
declare const ShaderPresetPreview: React$1.ForwardRefExoticComponent<ShaderPresetPreviewProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* ShaderPresetPicker — runtime preset gallery + selection.
|
|
680
|
+
*
|
|
681
|
+
* A grid of `<ShaderPresetPreview>` cards. Click to select. Used for
|
|
682
|
+
* things like "pick a vibe for your course background".
|
|
683
|
+
*
|
|
684
|
+
* For a browsing-only catalogue with no selection, just lay out
|
|
685
|
+
* `<ShaderPresetPreview>` directly.
|
|
686
|
+
*
|
|
687
|
+
* TODO(phase 2): static catalogue page for the docs site mirroring this.
|
|
688
|
+
*/
|
|
689
|
+
|
|
690
|
+
interface ShaderPresetPickerProps {
|
|
691
|
+
/** Currently selected preset id (controlled). */
|
|
692
|
+
value?: string;
|
|
693
|
+
/** Called when the user clicks a preset. */
|
|
694
|
+
onChange?: (presetId: string) => void;
|
|
695
|
+
/** Filter by tag — e.g. only show `"space"` or `"retro"` presets. */
|
|
696
|
+
filterTags?: string[];
|
|
697
|
+
/** Live-render mode for thumbnails. Default "hover". */
|
|
698
|
+
live?: "never" | "hover" | "always";
|
|
699
|
+
/** Shared post-FX preset applied to all thumbnails. Default: each preset's own. */
|
|
700
|
+
postPreset?: string;
|
|
701
|
+
/** Shared palette for all thumbnails. */
|
|
702
|
+
palette?: Partial<Palette>;
|
|
703
|
+
/** Columns at md+ breakpoint. Default 3. */
|
|
704
|
+
columns?: 2 | 3 | 4;
|
|
705
|
+
className?: string;
|
|
706
|
+
}
|
|
707
|
+
declare function ShaderPresetPicker({ value, onChange, filterTags, live, postPreset, palette, columns, className, }: ShaderPresetPickerProps): React$1.JSX.Element;
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
* Shader preset registry — maps semantic preset ids to scene factories
|
|
711
|
+
* plus metadata for the picker UI.
|
|
712
|
+
*
|
|
713
|
+
* Adding a new preset:
|
|
714
|
+
* 1. Write a SceneFactory in `./scenes/<name>.ts`
|
|
715
|
+
* 2. Register it in `sceneRegistry` below
|
|
716
|
+
* 3. Add a `ShaderPreset` entry in `shaderPresets`
|
|
717
|
+
*
|
|
718
|
+
* Both `<ThreeScene preset="space" />` and `<ShaderPresetPicker />` read
|
|
719
|
+
* from this registry so they stay in lockstep.
|
|
720
|
+
*/
|
|
721
|
+
|
|
722
|
+
declare const sceneRegistry: Record<string, SceneFactory>;
|
|
723
|
+
declare const shaderPresets: ShaderPreset[];
|
|
724
|
+
declare const shaderPresetById: Record<string, ShaderPreset>;
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Post-FX preset registry.
|
|
728
|
+
*
|
|
729
|
+
* Each preset is a tunable description of the post-FX stack. Lives as data
|
|
730
|
+
* so the same registry drives `<ThreeScene postPreset="vhs" />` and the
|
|
731
|
+
* preset picker's preview thumbnails.
|
|
732
|
+
*/
|
|
733
|
+
|
|
734
|
+
declare const postPresets: Record<string, PostPreset>;
|
|
735
|
+
type PostPresetId = keyof typeof postPresets;
|
|
736
|
+
declare const defaultPostPreset: PostPresetId;
|
|
737
|
+
|
|
429
738
|
declare function cn(...inputs: ClassValue[]): string;
|
|
430
739
|
|
|
431
740
|
interface LenisProviderProps {
|
|
@@ -908,4 +1217,4 @@ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProp
|
|
|
908
1217
|
*/
|
|
909
1218
|
declare function ThemeToggle(): React$1.JSX.Element;
|
|
910
1219
|
|
|
911
|
-
export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BreadcrumbItem, Button, type ButtonShape, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Input, type InputStyle, Label, LenisProvider, type ModeName, type OKLCHTriplet, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SideMenu, type SideMenuItem, type SideMenuProps, type SideMenuSection, type SimpleTab, SimpleTabs, SimpleTabsContent, SimpleTabsList, type SimpleTabsListProps, SimpleTabsPanel, type SimpleTabsPanelProps, type SimpleTabsProps, SimpleTabsRoot, type SimpleTabsRootProps, SimpleTabsTrigger, type SimpleTabsTriggerProps, Skeleton, Slider, type SpacingDensity, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopMenu, type TopMenuProps, TopMenuUser, TopMenuUserItem, type TopMenuUserItemProps, type TopMenuUserProps, TopMenuUserSection, type TypeScalePreset, applyThemeToRoot, badgeVariants, builtInThemes, buttonVariants, calmInput, cn, defaultThemeId, deleteUserTheme, duplicateTheme, energyInput, generateTheme, getTheme, listThemes, listUserThemes, loadUserThemeInput, saveUserTheme, themeToCSSVars, useGradeTheme, useMaybeGradeTheme };
|
|
1220
|
+
export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BaseMediaProps, type BreadcrumbItem, Button, type ButtonShape, Calendar, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type FontKey, GRADE_PRE_HYDRATION_SCRIPT, type GeneratedTheme, GradeModeSwitcher, GradeThemeProvider, type GradeThemeProviderProps, GradeThemeSwitcher, Input, type InputStyle, Label, LenisProvider, type MediaAspect, type MediaRadius, MediaSurface, type MediaSurfaceProps, type ModeName, type OKLCHTriplet, type Palette, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostPreset, Progress, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, RivePlayer, type RivePlayerProps, type SceneContext, type SceneFactory, type SceneHandle, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, type ShaderPreset, ShaderPresetPicker, type ShaderPresetPickerProps, ShaderPresetPreview, type ShaderPresetPreviewProps, type ShadowIntensity, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, SideMenu, type SideMenuItem, type SideMenuProps, type SideMenuSection, type SimpleTab, SimpleTabs, SimpleTabsContent, SimpleTabsList, type SimpleTabsListProps, SimpleTabsPanel, type SimpleTabsPanelProps, type SimpleTabsProps, SimpleTabsRoot, type SimpleTabsRootProps, SimpleTabsTrigger, type SimpleTabsTriggerProps, Skeleton, Slider, type SpacingDensity, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type ThemeInput, ThemeToggle, ThreeScene, type ThreeSceneProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopMenu, type TopMenuProps, TopMenuUser, TopMenuUserItem, type TopMenuUserItemProps, type TopMenuUserProps, TopMenuUserSection, type TypeScalePreset, VideoPlayer, type VideoPlayerProps, applyThemeToRoot, badgeVariants, builtInThemes, buttonVariants, calmInput, cn, defaultPostPreset, defaultThemeId, deleteUserTheme, duplicateTheme, energyInput, generateTheme, getTheme, listThemes, listUserThemes, loadUserThemeInput, postPresets, saveUserTheme, sceneRegistry, shaderPresetById, shaderPresets, themeToCSSVars, useGradeTheme, useMaybeGradeTheme, usePrefersReducedMotion };
|