@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 +1 -1
- package/dist/index.d.mts +108 -21
- package/dist/index.d.ts +108 -21
- package/dist/index.js +55 -55
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -55
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.d.mts +1 -1
- package/dist/tailwind-preset.d.ts +1 -1
- package/dist/tailwind-preset.js +1 -1
- package/dist/tailwind-preset.js.map +1 -1
- package/dist/tailwind-preset.mjs +1 -1
- package/dist/tailwind-preset.mjs.map +1 -1
- package/package.json +1 -1
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 `
|
|
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?: "
|
|
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?: "
|
|
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" | "
|
|
41
|
-
size?: "
|
|
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?: "
|
|
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
|
|
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
|
|
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
|
|
759
|
-
type
|
|
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
|
|
869
|
+
interface GradeThemeProviderProps {
|
|
783
870
|
children: React$1.ReactNode;
|
|
784
871
|
defaultTheme?: string;
|
|
785
872
|
defaultMode?: ModeName;
|
|
786
873
|
}
|
|
787
|
-
declare function
|
|
788
|
-
/** Read the active theme + mode. Must be used inside <
|
|
789
|
-
declare function
|
|
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
|
|
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 <
|
|
884
|
+
* Renders nothing when no <GradeThemeProvider> is mounted, so it's safe to
|
|
798
885
|
* drop into any layout.
|
|
799
886
|
*/
|
|
800
|
-
declare function
|
|
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
|
|
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
|
|
898
|
+
interface GradeModeSwitcherProps {
|
|
812
899
|
className?: string;
|
|
813
900
|
variant?: "icons" | "labeled";
|
|
814
901
|
}
|
|
815
|
-
declare function
|
|
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
|
-
* <
|
|
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,
|
|
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?: "
|
|
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?: "
|
|
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" | "
|
|
41
|
-
size?: "
|
|
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?: "
|
|
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
|
|
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
|
|
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
|
|
759
|
-
type
|
|
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
|
|
869
|
+
interface GradeThemeProviderProps {
|
|
783
870
|
children: React$1.ReactNode;
|
|
784
871
|
defaultTheme?: string;
|
|
785
872
|
defaultMode?: ModeName;
|
|
786
873
|
}
|
|
787
|
-
declare function
|
|
788
|
-
/** Read the active theme + mode. Must be used inside <
|
|
789
|
-
declare function
|
|
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
|
|
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 <
|
|
884
|
+
* Renders nothing when no <GradeThemeProvider> is mounted, so it's safe to
|
|
798
885
|
* drop into any layout.
|
|
799
886
|
*/
|
|
800
|
-
declare function
|
|
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
|
|
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
|
|
898
|
+
interface GradeModeSwitcherProps {
|
|
812
899
|
className?: string;
|
|
813
900
|
variant?: "icons" | "labeled";
|
|
814
901
|
}
|
|
815
|
-
declare function
|
|
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
|
-
* <
|
|
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,
|
|
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 };
|