@gradeui/ui 0.1.1 → 0.3.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/README.md CHANGED
@@ -46,7 +46,7 @@ export default {
46
46
 
47
47
  ## Theme engine
48
48
 
49
- `@gradeui/ui` ships an OKLCH-based theme generator. Wrap your app in `GradeThemeProvider` (currently still named `RampThemeProvider` pending rename — see upstream TODO) to get runtime theme switching.
49
+ `@gradeui/ui` ships an OKLCH-based theme generator. Wrap your app in `GradeThemeProvider` (currently still named `GradeThemeProvider` pending rename — see upstream TODO) to get runtime theme switching.
50
50
 
51
51
  ## License
52
52
 
package/dist/index.d.mts CHANGED
@@ -2,10 +2,12 @@ import * as React$1 from 'react';
2
2
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import { DayPicker, DayButton, DateRange } from 'react-day-picker';
5
6
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
6
7
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
8
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
8
9
  import * as LabelPrimitive from '@radix-ui/react-label';
10
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
9
11
  import * as ProgressPrimitive from '@radix-ui/react-progress';
10
12
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
11
13
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
@@ -23,13 +25,13 @@ declare const AccordionTrigger: React$1.ForwardRefExoticComponent<Omit<Accordion
23
25
  declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
24
26
 
25
27
  declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
26
- variant?: "success" | "warning" | "info" | "highlight" | "destructive" | "default" | null | undefined;
28
+ variant?: "default" | "destructive" | "success" | "warning" | "info" | "highlight" | null | undefined;
27
29
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
28
30
  declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
29
31
  declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
30
32
 
31
33
  declare const badgeVariants: (props?: ({
32
- variant?: "success" | "warning" | "info" | "highlight" | "secondary" | "destructive" | "default" | "outline" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
34
+ variant?: "default" | "destructive" | "success" | "warning" | "info" | "highlight" | "secondary" | "outline" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
33
35
  rounded?: "default" | "full" | null | undefined;
34
36
  } & class_variance_authority_types.ClassProp) | undefined) => string;
35
37
  interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
@@ -37,14 +39,19 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProp
37
39
  declare function Badge({ className, variant, rounded, ...props }: BadgeProps): React$1.JSX.Element;
38
40
 
39
41
  declare const buttonVariants: (props?: ({
40
- variant?: "link" | "secondary" | "destructive" | "default" | "outline" | "ghost" | null | undefined;
41
- size?: "lg" | "sm" | "default" | "icon" | null | undefined;
42
+ variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
43
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
42
44
  } & class_variance_authority_types.ClassProp) | undefined) => string;
43
45
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
44
46
  asChild?: boolean;
45
47
  }
46
48
  declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
47
49
 
50
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React$1.ComponentProps<typeof DayPicker> & {
51
+ buttonVariant?: React$1.ComponentProps<typeof Button>["variant"];
52
+ }): React$1.JSX.Element;
53
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: React$1.ComponentProps<typeof DayButton>): React$1.JSX.Element;
54
+
48
55
  declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
49
56
  declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
50
57
  declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
@@ -54,6 +61,71 @@ declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttribut
54
61
 
55
62
  declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
56
63
 
64
+ /**
65
+ * DatePicker + DateRangePicker
66
+ *
67
+ * Sealed complex components built on top of the Popover + Button + Calendar
68
+ * primitives. Consumers get a single import with a `value` / `onChange`
69
+ * contract — no need to know about Popover, DayPicker, or date-fns.
70
+ *
71
+ * The primitives remain exported from the barrel so anyone who needs a
72
+ * different trigger, different positioning, or a custom layout can still
73
+ * compose their own — see `apps/docs/app/components/date-picker/page.tsx`
74
+ * for the hand-assembled recipe.
75
+ *
76
+ * API:
77
+ * <DatePicker value={date} onChange={setDate} />
78
+ * <DatePicker value={date} onChange={setDate} format="PP" placeholder="..." />
79
+ * <DateRangePicker value={range} onChange={setRange} numberOfMonths={2} />
80
+ *
81
+ * The `value` / `onChange` shape matches react-day-picker's `selected` /
82
+ * `onSelect` internally — we just rename them so consumers speak form.
83
+ */
84
+
85
+ type PopoverAlign = "start" | "center" | "end";
86
+ type PopoverSide = "top" | "right" | "bottom" | "left";
87
+ interface DatePickerBaseProps {
88
+ /** Placeholder text shown when no date is selected. */
89
+ placeholder?: string;
90
+ /** Disable the trigger. */
91
+ disabled?: boolean;
92
+ /** Classes on the outer trigger button. */
93
+ className?: string;
94
+ /** Classes forwarded to PopoverContent. */
95
+ contentClassName?: string;
96
+ /** Forwarded to PopoverContent — which edge to align to. Defaults to "start". */
97
+ align?: PopoverAlign;
98
+ /** Forwarded to PopoverContent — which side of the trigger to render on. */
99
+ side?: PopoverSide;
100
+ /**
101
+ * date-fns format string for the trigger label. Defaults to "PPP"
102
+ * (e.g. "April 19th, 2026"). Pass "PP" for shorter "Apr 19, 2026".
103
+ */
104
+ format?: string;
105
+ /** Forwarded to the underlying `react-day-picker` Calendar. */
106
+ captionLayout?: React$1.ComponentProps<typeof Calendar>["captionLayout"];
107
+ /** Icon shown in the trigger. Defaults to lucide's CalendarIcon. */
108
+ icon?: React$1.ReactNode;
109
+ /** Accessible label for screen readers when no date is selected. */
110
+ "aria-label"?: string;
111
+ }
112
+ interface DatePickerProps extends DatePickerBaseProps {
113
+ /** The selected date, or undefined when empty. */
114
+ value?: Date;
115
+ /** Called when the user selects or clears the date. */
116
+ onChange?: (date: Date | undefined) => void;
117
+ }
118
+ interface DateRangePickerProps extends DatePickerBaseProps {
119
+ /** The selected range, or undefined when empty. */
120
+ value?: DateRange;
121
+ /** Called when the user selects or clears the range. */
122
+ onChange?: (range: DateRange | undefined) => void;
123
+ /** Number of months to show side-by-side. Defaults to 2. */
124
+ numberOfMonths?: number;
125
+ }
126
+ declare function DatePicker({ value, onChange, placeholder, disabled, className, contentClassName, align, side, format, captionLayout, icon, "aria-label": ariaLabel, }: DatePickerProps): React$1.JSX.Element;
127
+ declare function DateRangePicker({ value, onChange, placeholder, disabled, className, contentClassName, align, side, format, captionLayout, icon, numberOfMonths, "aria-label": ariaLabel, }: DateRangePickerProps): React$1.JSX.Element;
128
+
57
129
  declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
58
130
  declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
59
131
  declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
@@ -100,6 +172,11 @@ declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTML
100
172
 
101
173
  declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
102
174
 
175
+ declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
176
+ declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
177
+ declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
178
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
179
+
103
180
  declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
104
181
 
105
182
  declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -127,7 +204,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
127
204
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
128
205
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
129
206
  declare const sheetVariants: (props?: ({
130
- side?: "top" | "right" | "bottom" | "left" | null | undefined;
207
+ side?: "left" | "right" | "top" | "bottom" | null | undefined;
131
208
  } & class_variance_authority_types.ClassProp) | undefined) => string;
132
209
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
133
210
  }
@@ -540,6 +617,16 @@ interface GeneratedColorsMode {
540
617
  warning: OKLCHTriplet;
541
618
  info: OKLCHTriplet;
542
619
  highlight: OKLCHTriplet;
620
+ destructiveSoft: OKLCHTriplet;
621
+ destructiveDeep: OKLCHTriplet;
622
+ successSoft: OKLCHTriplet;
623
+ successDeep: OKLCHTriplet;
624
+ warningSoft: OKLCHTriplet;
625
+ warningDeep: OKLCHTriplet;
626
+ infoSoft: OKLCHTriplet;
627
+ infoDeep: OKLCHTriplet;
628
+ highlightSoft: OKLCHTriplet;
629
+ highlightDeep: OKLCHTriplet;
543
630
  }
544
631
  /** Concrete resolved CSS values for the typography dimension. */
545
632
  interface GeneratedTypography {
@@ -678,7 +765,7 @@ declare function applyThemeToRoot(theme: GeneratedTheme, mode: ModeName): void;
678
765
  * Built-in ThemeInputs. Every theme — built-in or user-built — is a
679
766
  * ThemeInput. Built-ins are just curated ones we ship as starting points.
680
767
  *
681
- * "Calm" is the canonical Ramp DS look: warm neutrals, terracotta primary,
768
+ * "Calm" is the canonical Grade DS look: warm neutrals, terracotta primary,
682
769
  * serif display + body, roomier spacing, rounded corners, pill buttons,
683
770
  * subtle shadows. "Energy" is a bolder alternate — teal primary, Geist
684
771
  * sans, tighter feel.
@@ -687,7 +774,7 @@ declare function applyThemeToRoot(theme: GeneratedTheme, mode: ModeName): void;
687
774
  * and add it to the registry.
688
775
  */
689
776
  /**
690
- * Calm — the canonical Ramp DS theme.
777
+ * Calm — the canonical Grade DS theme.
691
778
  *
692
779
  * Warm neutral tint (~40° amber), terracotta primary (~20°), amber accent.
693
780
  * Serif display and body (Fraunces with its full variable weight range),
@@ -755,8 +842,8 @@ declare const ALL_MODES: ModeName[];
755
842
  * NOTE: this string is embedded directly into the <head> via
756
843
  * dangerouslySetInnerHTML. Keep it self-contained and dependency-free.
757
844
  */
758
- declare const RAMP_PRE_HYDRATION_SCRIPT = "\n(function() {\n try {\n var mode = localStorage.getItem('ramp-mode');\n var valid = ['superLight','light','dark','superDark'];\n if (!mode || valid.indexOf(mode) === -1) {\n mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n if (mode === 'dark' || mode === 'superDark') {\n document.documentElement.classList.add('dark');\n }\n document.documentElement.setAttribute('data-mode', mode);\n var themeId = localStorage.getItem('ramp-theme');\n if (themeId) document.documentElement.setAttribute('data-ramp-theme', themeId);\n } catch(e) {}\n})();\n";
759
- type RampThemeContextValue = {
845
+ declare const GRADE_PRE_HYDRATION_SCRIPT = "\n(function() {\n try {\n var mode = localStorage.getItem('ramp-mode');\n var valid = ['superLight','light','dark','superDark'];\n if (!mode || valid.indexOf(mode) === -1) {\n mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n if (mode === 'dark' || mode === 'superDark') {\n document.documentElement.classList.add('dark');\n }\n document.documentElement.setAttribute('data-mode', mode);\n var themeId = localStorage.getItem('ramp-theme');\n if (themeId) document.documentElement.setAttribute('data-ramp-theme', themeId);\n } catch(e) {}\n})();\n";
846
+ type GradeThemeContextValue = {
760
847
  /** The currently active theme object. */
761
848
  theme: GeneratedTheme;
762
849
  /** The active theme's id. */
@@ -779,46 +866,46 @@ type RampThemeContextValue = {
779
866
  /** Refresh the themes list (call after external user-theme mutations). */
780
867
  refresh: () => void;
781
868
  };
782
- interface RampThemeProviderProps {
869
+ interface GradeThemeProviderProps {
783
870
  children: React$1.ReactNode;
784
871
  defaultTheme?: string;
785
872
  defaultMode?: ModeName;
786
873
  }
787
- declare function RampThemeProvider({ children, defaultTheme, defaultMode, }: RampThemeProviderProps): React$1.JSX.Element;
788
- /** Read the active theme + mode. Must be used inside <RampThemeProvider>. */
789
- declare function useRampTheme(): RampThemeContextValue;
874
+ declare function GradeThemeProvider({ children, defaultTheme, defaultMode, }: GradeThemeProviderProps): React$1.JSX.Element;
875
+ /** Read the active theme + mode. Must be used inside <GradeThemeProvider>. */
876
+ declare function useGradeTheme(): GradeThemeContextValue;
790
877
  /** Safe variant — returns null outside a provider instead of throwing. */
791
- declare function useMaybeRampTheme(): RampThemeContextValue | null;
878
+ declare function useMaybeGradeTheme(): GradeThemeContextValue | null;
792
879
 
793
880
  /**
794
881
  * Theme switcher — iterates every registered theme (built-in + user) and
795
882
  * lets you pick one. User themes get a delete button on hover.
796
883
  *
797
- * Renders nothing when no <RampThemeProvider> is mounted, so it's safe to
884
+ * Renders nothing when no <GradeThemeProvider> is mounted, so it's safe to
798
885
  * drop into any layout.
799
886
  */
800
- declare function RampThemeSwitcher({ className }: {
887
+ declare function GradeThemeSwitcher({ className }: {
801
888
  className?: string;
802
889
  }): React$1.JSX.Element | null;
803
890
 
804
891
  /**
805
892
  * 4-way mode switcher. Segmented control: super-light / light / dark / super-dark.
806
893
  *
807
- * Renders nothing without a RampThemeProvider. Default layout is a compact
894
+ * Renders nothing without a GradeThemeProvider. Default layout is a compact
808
895
  * 4-icon row suitable for a header; the `variant="labeled"` form adds
809
896
  * text labels for settings pages.
810
897
  */
811
- interface RampModeSwitcherProps {
898
+ interface GradeModeSwitcherProps {
812
899
  className?: string;
813
900
  variant?: "icons" | "labeled";
814
901
  }
815
- declare function RampModeSwitcher({ className, variant }: RampModeSwitcherProps): React$1.JSX.Element | null;
902
+ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProps): React$1.JSX.Element | null;
816
903
 
817
904
  /**
818
905
  * Binary light/dark toggle — flips between `light` and `dark` modes.
819
906
  * For the full 4-way picker (including super-light / super-dark), use
820
- * <RampModeSwitcher /> instead.
907
+ * <GradeModeSwitcher /> instead.
821
908
  */
822
909
  declare function ThemeToggle(): React$1.JSX.Element;
823
910
 
824
- export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BreadcrumbItem, Button, type ButtonShape, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, 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, type GeneratedTheme, Input, type InputStyle, Label, LenisProvider, type ModeName, type OKLCHTriplet, Progress, RAMP_PRE_HYDRATION_SCRIPT, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, RampModeSwitcher, RampThemeProvider, type RampThemeProviderProps, RampThemeSwitcher, 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, useMaybeRampTheme, useRampTheme };
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 };
package/dist/index.d.ts CHANGED
@@ -2,10 +2,12 @@ import * as React$1 from 'react';
2
2
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
3
  import * as class_variance_authority_types from 'class-variance-authority/types';
4
4
  import { VariantProps } from 'class-variance-authority';
5
+ import { DayPicker, DayButton, DateRange } from 'react-day-picker';
5
6
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
6
7
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
8
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
8
9
  import * as LabelPrimitive from '@radix-ui/react-label';
10
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
9
11
  import * as ProgressPrimitive from '@radix-ui/react-progress';
10
12
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
11
13
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
@@ -23,13 +25,13 @@ declare const AccordionTrigger: React$1.ForwardRefExoticComponent<Omit<Accordion
23
25
  declare const AccordionContent: React$1.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
24
26
 
25
27
  declare const Alert: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
26
- variant?: "success" | "warning" | "info" | "highlight" | "destructive" | "default" | null | undefined;
28
+ variant?: "default" | "destructive" | "success" | "warning" | "info" | "highlight" | null | undefined;
27
29
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
28
30
  declare const AlertTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
29
31
  declare const AlertDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
30
32
 
31
33
  declare const badgeVariants: (props?: ({
32
- variant?: "success" | "warning" | "info" | "highlight" | "secondary" | "destructive" | "default" | "outline" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
34
+ variant?: "default" | "destructive" | "success" | "warning" | "info" | "highlight" | "secondary" | "outline" | "success-soft" | "warning-soft" | "destructive-soft" | "info-soft" | "highlight-soft" | "success-outline" | "warning-outline" | "destructive-outline" | "info-outline" | null | undefined;
33
35
  rounded?: "default" | "full" | null | undefined;
34
36
  } & class_variance_authority_types.ClassProp) | undefined) => string;
35
37
  interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
@@ -37,14 +39,19 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProp
37
39
  declare function Badge({ className, variant, rounded, ...props }: BadgeProps): React$1.JSX.Element;
38
40
 
39
41
  declare const buttonVariants: (props?: ({
40
- variant?: "link" | "secondary" | "destructive" | "default" | "outline" | "ghost" | null | undefined;
41
- size?: "lg" | "sm" | "default" | "icon" | null | undefined;
42
+ variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
43
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
42
44
  } & class_variance_authority_types.ClassProp) | undefined) => string;
43
45
  interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
44
46
  asChild?: boolean;
45
47
  }
46
48
  declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
47
49
 
50
+ declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React$1.ComponentProps<typeof DayPicker> & {
51
+ buttonVariant?: React$1.ComponentProps<typeof Button>["variant"];
52
+ }): React$1.JSX.Element;
53
+ declare function CalendarDayButton({ className, day, modifiers, ...props }: React$1.ComponentProps<typeof DayButton>): React$1.JSX.Element;
54
+
48
55
  declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
49
56
  declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
50
57
  declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
@@ -54,6 +61,71 @@ declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttribut
54
61
 
55
62
  declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
56
63
 
64
+ /**
65
+ * DatePicker + DateRangePicker
66
+ *
67
+ * Sealed complex components built on top of the Popover + Button + Calendar
68
+ * primitives. Consumers get a single import with a `value` / `onChange`
69
+ * contract — no need to know about Popover, DayPicker, or date-fns.
70
+ *
71
+ * The primitives remain exported from the barrel so anyone who needs a
72
+ * different trigger, different positioning, or a custom layout can still
73
+ * compose their own — see `apps/docs/app/components/date-picker/page.tsx`
74
+ * for the hand-assembled recipe.
75
+ *
76
+ * API:
77
+ * <DatePicker value={date} onChange={setDate} />
78
+ * <DatePicker value={date} onChange={setDate} format="PP" placeholder="..." />
79
+ * <DateRangePicker value={range} onChange={setRange} numberOfMonths={2} />
80
+ *
81
+ * The `value` / `onChange` shape matches react-day-picker's `selected` /
82
+ * `onSelect` internally — we just rename them so consumers speak form.
83
+ */
84
+
85
+ type PopoverAlign = "start" | "center" | "end";
86
+ type PopoverSide = "top" | "right" | "bottom" | "left";
87
+ interface DatePickerBaseProps {
88
+ /** Placeholder text shown when no date is selected. */
89
+ placeholder?: string;
90
+ /** Disable the trigger. */
91
+ disabled?: boolean;
92
+ /** Classes on the outer trigger button. */
93
+ className?: string;
94
+ /** Classes forwarded to PopoverContent. */
95
+ contentClassName?: string;
96
+ /** Forwarded to PopoverContent — which edge to align to. Defaults to "start". */
97
+ align?: PopoverAlign;
98
+ /** Forwarded to PopoverContent — which side of the trigger to render on. */
99
+ side?: PopoverSide;
100
+ /**
101
+ * date-fns format string for the trigger label. Defaults to "PPP"
102
+ * (e.g. "April 19th, 2026"). Pass "PP" for shorter "Apr 19, 2026".
103
+ */
104
+ format?: string;
105
+ /** Forwarded to the underlying `react-day-picker` Calendar. */
106
+ captionLayout?: React$1.ComponentProps<typeof Calendar>["captionLayout"];
107
+ /** Icon shown in the trigger. Defaults to lucide's CalendarIcon. */
108
+ icon?: React$1.ReactNode;
109
+ /** Accessible label for screen readers when no date is selected. */
110
+ "aria-label"?: string;
111
+ }
112
+ interface DatePickerProps extends DatePickerBaseProps {
113
+ /** The selected date, or undefined when empty. */
114
+ value?: Date;
115
+ /** Called when the user selects or clears the date. */
116
+ onChange?: (date: Date | undefined) => void;
117
+ }
118
+ interface DateRangePickerProps extends DatePickerBaseProps {
119
+ /** The selected range, or undefined when empty. */
120
+ value?: DateRange;
121
+ /** Called when the user selects or clears the range. */
122
+ onChange?: (range: DateRange | undefined) => void;
123
+ /** Number of months to show side-by-side. Defaults to 2. */
124
+ numberOfMonths?: number;
125
+ }
126
+ declare function DatePicker({ value, onChange, placeholder, disabled, className, contentClassName, align, side, format, captionLayout, icon, "aria-label": ariaLabel, }: DatePickerProps): React$1.JSX.Element;
127
+ declare function DateRangePicker({ value, onChange, placeholder, disabled, className, contentClassName, align, side, format, captionLayout, icon, numberOfMonths, "aria-label": ariaLabel, }: DateRangePickerProps): React$1.JSX.Element;
128
+
57
129
  declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
58
130
  declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
59
131
  declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
@@ -100,6 +172,11 @@ declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTML
100
172
 
101
173
  declare const Label: React$1.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React$1.RefAttributes<HTMLLabelElement>, "ref"> & VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React$1.RefAttributes<HTMLLabelElement>>;
102
174
 
175
+ declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
176
+ declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
177
+ declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
178
+ declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
179
+
103
180
  declare const Progress: React$1.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
104
181
 
105
182
  declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
@@ -127,7 +204,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
127
204
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
128
205
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
129
206
  declare const sheetVariants: (props?: ({
130
- side?: "top" | "right" | "bottom" | "left" | null | undefined;
207
+ side?: "left" | "right" | "top" | "bottom" | null | undefined;
131
208
  } & class_variance_authority_types.ClassProp) | undefined) => string;
132
209
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
133
210
  }
@@ -540,6 +617,16 @@ interface GeneratedColorsMode {
540
617
  warning: OKLCHTriplet;
541
618
  info: OKLCHTriplet;
542
619
  highlight: OKLCHTriplet;
620
+ destructiveSoft: OKLCHTriplet;
621
+ destructiveDeep: OKLCHTriplet;
622
+ successSoft: OKLCHTriplet;
623
+ successDeep: OKLCHTriplet;
624
+ warningSoft: OKLCHTriplet;
625
+ warningDeep: OKLCHTriplet;
626
+ infoSoft: OKLCHTriplet;
627
+ infoDeep: OKLCHTriplet;
628
+ highlightSoft: OKLCHTriplet;
629
+ highlightDeep: OKLCHTriplet;
543
630
  }
544
631
  /** Concrete resolved CSS values for the typography dimension. */
545
632
  interface GeneratedTypography {
@@ -678,7 +765,7 @@ declare function applyThemeToRoot(theme: GeneratedTheme, mode: ModeName): void;
678
765
  * Built-in ThemeInputs. Every theme — built-in or user-built — is a
679
766
  * ThemeInput. Built-ins are just curated ones we ship as starting points.
680
767
  *
681
- * "Calm" is the canonical Ramp DS look: warm neutrals, terracotta primary,
768
+ * "Calm" is the canonical Grade DS look: warm neutrals, terracotta primary,
682
769
  * serif display + body, roomier spacing, rounded corners, pill buttons,
683
770
  * subtle shadows. "Energy" is a bolder alternate — teal primary, Geist
684
771
  * sans, tighter feel.
@@ -687,7 +774,7 @@ declare function applyThemeToRoot(theme: GeneratedTheme, mode: ModeName): void;
687
774
  * and add it to the registry.
688
775
  */
689
776
  /**
690
- * Calm — the canonical Ramp DS theme.
777
+ * Calm — the canonical Grade DS theme.
691
778
  *
692
779
  * Warm neutral tint (~40° amber), terracotta primary (~20°), amber accent.
693
780
  * Serif display and body (Fraunces with its full variable weight range),
@@ -755,8 +842,8 @@ declare const ALL_MODES: ModeName[];
755
842
  * NOTE: this string is embedded directly into the <head> via
756
843
  * dangerouslySetInnerHTML. Keep it self-contained and dependency-free.
757
844
  */
758
- declare const RAMP_PRE_HYDRATION_SCRIPT = "\n(function() {\n try {\n var mode = localStorage.getItem('ramp-mode');\n var valid = ['superLight','light','dark','superDark'];\n if (!mode || valid.indexOf(mode) === -1) {\n mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n if (mode === 'dark' || mode === 'superDark') {\n document.documentElement.classList.add('dark');\n }\n document.documentElement.setAttribute('data-mode', mode);\n var themeId = localStorage.getItem('ramp-theme');\n if (themeId) document.documentElement.setAttribute('data-ramp-theme', themeId);\n } catch(e) {}\n})();\n";
759
- type RampThemeContextValue = {
845
+ declare const GRADE_PRE_HYDRATION_SCRIPT = "\n(function() {\n try {\n var mode = localStorage.getItem('ramp-mode');\n var valid = ['superLight','light','dark','superDark'];\n if (!mode || valid.indexOf(mode) === -1) {\n mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n if (mode === 'dark' || mode === 'superDark') {\n document.documentElement.classList.add('dark');\n }\n document.documentElement.setAttribute('data-mode', mode);\n var themeId = localStorage.getItem('ramp-theme');\n if (themeId) document.documentElement.setAttribute('data-ramp-theme', themeId);\n } catch(e) {}\n})();\n";
846
+ type GradeThemeContextValue = {
760
847
  /** The currently active theme object. */
761
848
  theme: GeneratedTheme;
762
849
  /** The active theme's id. */
@@ -779,46 +866,46 @@ type RampThemeContextValue = {
779
866
  /** Refresh the themes list (call after external user-theme mutations). */
780
867
  refresh: () => void;
781
868
  };
782
- interface RampThemeProviderProps {
869
+ interface GradeThemeProviderProps {
783
870
  children: React$1.ReactNode;
784
871
  defaultTheme?: string;
785
872
  defaultMode?: ModeName;
786
873
  }
787
- declare function RampThemeProvider({ children, defaultTheme, defaultMode, }: RampThemeProviderProps): React$1.JSX.Element;
788
- /** Read the active theme + mode. Must be used inside <RampThemeProvider>. */
789
- declare function useRampTheme(): RampThemeContextValue;
874
+ declare function GradeThemeProvider({ children, defaultTheme, defaultMode, }: GradeThemeProviderProps): React$1.JSX.Element;
875
+ /** Read the active theme + mode. Must be used inside <GradeThemeProvider>. */
876
+ declare function useGradeTheme(): GradeThemeContextValue;
790
877
  /** Safe variant — returns null outside a provider instead of throwing. */
791
- declare function useMaybeRampTheme(): RampThemeContextValue | null;
878
+ declare function useMaybeGradeTheme(): GradeThemeContextValue | null;
792
879
 
793
880
  /**
794
881
  * Theme switcher — iterates every registered theme (built-in + user) and
795
882
  * lets you pick one. User themes get a delete button on hover.
796
883
  *
797
- * Renders nothing when no <RampThemeProvider> is mounted, so it's safe to
884
+ * Renders nothing when no <GradeThemeProvider> is mounted, so it's safe to
798
885
  * drop into any layout.
799
886
  */
800
- declare function RampThemeSwitcher({ className }: {
887
+ declare function GradeThemeSwitcher({ className }: {
801
888
  className?: string;
802
889
  }): React$1.JSX.Element | null;
803
890
 
804
891
  /**
805
892
  * 4-way mode switcher. Segmented control: super-light / light / dark / super-dark.
806
893
  *
807
- * Renders nothing without a RampThemeProvider. Default layout is a compact
894
+ * Renders nothing without a GradeThemeProvider. Default layout is a compact
808
895
  * 4-icon row suitable for a header; the `variant="labeled"` form adds
809
896
  * text labels for settings pages.
810
897
  */
811
- interface RampModeSwitcherProps {
898
+ interface GradeModeSwitcherProps {
812
899
  className?: string;
813
900
  variant?: "icons" | "labeled";
814
901
  }
815
- declare function RampModeSwitcher({ className, variant }: RampModeSwitcherProps): React$1.JSX.Element | null;
902
+ declare function GradeModeSwitcher({ className, variant }: GradeModeSwitcherProps): React$1.JSX.Element | null;
816
903
 
817
904
  /**
818
905
  * Binary light/dark toggle — flips between `light` and `dark` modes.
819
906
  * For the full 4-way picker (including super-light / super-dark), use
820
- * <RampModeSwitcher /> instead.
907
+ * <GradeModeSwitcher /> instead.
821
908
  */
822
909
  declare function ThemeToggle(): React$1.JSX.Element;
823
910
 
824
- export { ALL_MODES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, BUILT_IN_INPUTS, Badge, type BreadcrumbItem, Button, type ButtonShape, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardStyle, CardTitle, type ChartPalette, Checkbox, type ColorIntensity, 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, type GeneratedTheme, Input, type InputStyle, Label, LenisProvider, type ModeName, type OKLCHTriplet, Progress, RAMP_PRE_HYDRATION_SCRIPT, RadioGroup, RadioGroupItem, type RadiusStyle, type Ramp, RampModeSwitcher, RampThemeProvider, type RampThemeProviderProps, RampThemeSwitcher, 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, useMaybeRampTheme, useRampTheme };
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 };