@e-infra/design-system 0.0.6 → 0.0.8
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 +54 -31
- package/dist/index.cjs.js +1601 -1861
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +1603 -1859
- package/dist/index.es.js.map +1 -1
- package/dist/setup.css +247 -0
- package/dist/types/components/compounds/FeedbackForm.d.ts +41 -0
- package/dist/types/components/compounds/FeedbackForm.d.ts.map +1 -0
- package/dist/types/components/compounds/cookies_banner.d.ts +15 -0
- package/dist/types/components/compounds/cookies_banner.d.ts.map +1 -0
- package/dist/types/components/foundations/index.d.ts +2 -0
- package/dist/types/components/foundations/index.d.ts.map +1 -0
- package/dist/types/components/foundations/typography.d.ts +16 -0
- package/dist/types/components/foundations/typography.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +43 -47
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/layout/content.d.ts +8 -0
- package/dist/types/components/layout/content.d.ts.map +1 -0
- package/dist/types/components/layout/footer.d.ts +14 -0
- package/dist/types/components/layout/footer.d.ts.map +1 -0
- package/dist/types/components/layout/header.d.ts +20 -0
- package/dist/types/components/layout/header.d.ts.map +1 -0
- package/dist/types/components/layout/index.d.ts +4 -0
- package/dist/types/components/layout/index.d.ts.map +1 -0
- package/dist/types/components/{ui → layout}/sidebar.d.ts +4 -4
- package/dist/types/components/layout/sidebar.d.ts.map +1 -0
- package/dist/types/components/primitives/accordion.d.ts.map +1 -0
- package/dist/types/components/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/alert.d.ts +1 -1
- package/dist/types/components/primitives/alert.d.ts.map +1 -0
- package/dist/types/components/primitives/aspect-ratio.d.ts.map +1 -0
- package/dist/types/components/primitives/avatar.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/badge.d.ts +1 -1
- package/dist/types/components/primitives/badge.d.ts.map +1 -0
- package/dist/types/components/primitives/breadcrumb.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/button.d.ts +1 -1
- package/dist/types/components/primitives/button.d.ts.map +1 -0
- package/dist/types/components/primitives/calendar.d.ts.map +1 -0
- package/dist/types/components/primitives/card.d.ts.map +1 -0
- package/dist/types/components/primitives/carousel.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/chart.d.ts +29 -5
- package/dist/types/components/primitives/chart.d.ts.map +1 -0
- package/dist/types/components/primitives/checkbox.d.ts.map +1 -0
- package/dist/types/components/primitives/collapsible.d.ts.map +1 -0
- package/dist/types/components/primitives/command.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/context-menu.d.ts +1 -1
- package/dist/types/components/primitives/context-menu.d.ts.map +1 -0
- package/dist/types/components/primitives/dialog.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/dropdown-menu.d.ts +1 -1
- package/dist/types/components/primitives/dropdown-menu.d.ts.map +1 -0
- package/dist/types/components/primitives/form.d.ts.map +1 -0
- package/dist/types/components/primitives/input.d.ts.map +1 -0
- package/dist/types/components/primitives/label.d.ts.map +1 -0
- package/dist/types/components/{ui → primitives}/menubar.d.ts +1 -1
- package/dist/types/components/primitives/menubar.d.ts.map +1 -0
- package/dist/types/components/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/types/components/primitives/pagination.d.ts.map +1 -0
- package/dist/types/components/primitives/panel.d.ts +9 -0
- package/dist/types/components/primitives/panel.d.ts.map +1 -0
- package/dist/types/components/primitives/popover.d.ts.map +1 -0
- package/dist/types/components/primitives/progress.d.ts.map +1 -0
- package/dist/types/components/primitives/radio-group.d.ts.map +1 -0
- package/dist/types/components/primitives/resizable.d.ts.map +1 -0
- package/dist/types/components/primitives/scroll-area.d.ts.map +1 -0
- package/dist/types/components/primitives/select.d.ts.map +1 -0
- package/dist/types/components/primitives/separator.d.ts.map +1 -0
- package/dist/types/components/primitives/sheet.d.ts.map +1 -0
- package/dist/types/components/primitives/skeleton.d.ts.map +1 -0
- package/dist/types/components/primitives/slider.d.ts.map +1 -0
- package/dist/types/components/primitives/sonner.d.ts.map +1 -0
- package/dist/types/components/primitives/stepper.d.ts.map +1 -0
- package/dist/types/components/primitives/switch.d.ts.map +1 -0
- package/dist/types/components/primitives/table.d.ts.map +1 -0
- package/dist/types/components/primitives/tabs.d.ts.map +1 -0
- package/dist/types/components/primitives/textarea.d.ts.map +1 -0
- package/dist/types/components/primitives/toggle-group.d.ts.map +1 -0
- package/dist/types/components/primitives/toggle.d.ts.map +1 -0
- package/dist/types/components/primitives/tooltip.d.ts.map +1 -0
- package/package.json +23 -12
- package/dist/style.css +0 -1
- package/dist/types/components/ui/accordion.d.ts.map +0 -1
- package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
- package/dist/types/components/ui/alert.d.ts.map +0 -1
- package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
- package/dist/types/components/ui/avatar.d.ts.map +0 -1
- package/dist/types/components/ui/badge.d.ts.map +0 -1
- package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
- package/dist/types/components/ui/button.d.ts.map +0 -1
- package/dist/types/components/ui/calendar.d.ts.map +0 -1
- package/dist/types/components/ui/card.d.ts.map +0 -1
- package/dist/types/components/ui/carousel.d.ts.map +0 -1
- package/dist/types/components/ui/chart.d.ts.map +0 -1
- package/dist/types/components/ui/checkbox.d.ts.map +0 -1
- package/dist/types/components/ui/collapsible.d.ts.map +0 -1
- package/dist/types/components/ui/command.d.ts.map +0 -1
- package/dist/types/components/ui/context-menu.d.ts.map +0 -1
- package/dist/types/components/ui/dialog.d.ts.map +0 -1
- package/dist/types/components/ui/drawer.d.ts +0 -14
- package/dist/types/components/ui/drawer.d.ts.map +0 -1
- package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/types/components/ui/form.d.ts.map +0 -1
- package/dist/types/components/ui/hover-card.d.ts +0 -7
- package/dist/types/components/ui/hover-card.d.ts.map +0 -1
- package/dist/types/components/ui/input-otp.d.ts +0 -12
- package/dist/types/components/ui/input-otp.d.ts.map +0 -1
- package/dist/types/components/ui/input.d.ts.map +0 -1
- package/dist/types/components/ui/label.d.ts.map +0 -1
- package/dist/types/components/ui/menubar.d.ts.map +0 -1
- package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
- package/dist/types/components/ui/pagination.d.ts.map +0 -1
- package/dist/types/components/ui/popover.d.ts.map +0 -1
- package/dist/types/components/ui/progress.d.ts.map +0 -1
- package/dist/types/components/ui/radio-group.d.ts.map +0 -1
- package/dist/types/components/ui/resizable.d.ts.map +0 -1
- package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
- package/dist/types/components/ui/select.d.ts.map +0 -1
- package/dist/types/components/ui/separator.d.ts.map +0 -1
- package/dist/types/components/ui/sheet.d.ts.map +0 -1
- package/dist/types/components/ui/sidebar.d.ts.map +0 -1
- package/dist/types/components/ui/skeleton.d.ts.map +0 -1
- package/dist/types/components/ui/slider.d.ts.map +0 -1
- package/dist/types/components/ui/sonner.d.ts.map +0 -1
- package/dist/types/components/ui/stepper.d.ts.map +0 -1
- package/dist/types/components/ui/switch.d.ts.map +0 -1
- package/dist/types/components/ui/table.d.ts.map +0 -1
- package/dist/types/components/ui/tabs.d.ts.map +0 -1
- package/dist/types/components/ui/textarea.d.ts.map +0 -1
- package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
- package/dist/types/components/ui/toggle.d.ts.map +0 -1
- package/dist/types/components/ui/tooltip.d.ts.map +0 -1
- /package/dist/types/components/{ui → primitives}/accordion.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/alert-dialog.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/aspect-ratio.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/avatar.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/breadcrumb.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/calendar.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/card.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/carousel.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/checkbox.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/collapsible.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/command.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/dialog.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/form.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/input.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/label.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/navigation-menu.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/pagination.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/popover.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/progress.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/radio-group.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/resizable.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/scroll-area.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/select.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/separator.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/sheet.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/skeleton.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/slider.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/sonner.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/stepper.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/switch.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/table.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/tabs.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/textarea.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/toggle-group.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/toggle.d.ts +0 -0
- /package/dist/types/components/{ui → primitives}/tooltip.d.ts +0 -0
package/dist/index.cjs.js
CHANGED
|
@@ -14,24 +14,16 @@ const AspectRatioPrimitive = require("@radix-ui/react-aspect-ratio");
|
|
|
14
14
|
const AvatarPrimitive = require("@radix-ui/react-avatar");
|
|
15
15
|
const reactDayPicker = require("react-day-picker");
|
|
16
16
|
const useEmblaCarousel = require("embla-carousel-react");
|
|
17
|
-
const RechartsPrimitive = require("recharts");
|
|
18
17
|
const CheckboxPrimitive = require("@radix-ui/react-checkbox");
|
|
19
18
|
const CollapsiblePrimitive = require("@radix-ui/react-collapsible");
|
|
20
|
-
const cmdk = require("cmdk");
|
|
21
19
|
const DialogPrimitive = require("@radix-ui/react-dialog");
|
|
22
|
-
const ContextMenuPrimitive = require("@radix-ui/react-context-menu");
|
|
23
|
-
const vaul = require("vaul");
|
|
24
20
|
const DropdownMenuPrimitive = require("@radix-ui/react-dropdown-menu");
|
|
25
21
|
const reactHookForm = require("react-hook-form");
|
|
26
22
|
const LabelPrimitive = require("@radix-ui/react-label");
|
|
27
|
-
const HoverCardPrimitive = require("@radix-ui/react-hover-card");
|
|
28
|
-
const inputOtp = require("input-otp");
|
|
29
23
|
const MenubarPrimitive = require("@radix-ui/react-menubar");
|
|
30
24
|
const NavigationMenuPrimitive = require("@radix-ui/react-navigation-menu");
|
|
31
|
-
const PopoverPrimitive = require("@radix-ui/react-popover");
|
|
32
25
|
const ProgressPrimitive = require("@radix-ui/react-progress");
|
|
33
26
|
const RadioGroupPrimitive = require("@radix-ui/react-radio-group");
|
|
34
|
-
const reactResizablePanels = require("react-resizable-panels");
|
|
35
27
|
const ScrollAreaPrimitive = require("@radix-ui/react-scroll-area");
|
|
36
28
|
const SelectPrimitive = require("@radix-ui/react-select");
|
|
37
29
|
const SeparatorPrimitive = require("@radix-ui/react-separator");
|
|
@@ -64,17 +56,13 @@ const AccordionPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(A
|
|
|
64
56
|
const AlertDialogPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AlertDialogPrimitive);
|
|
65
57
|
const AspectRatioPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AspectRatioPrimitive);
|
|
66
58
|
const AvatarPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AvatarPrimitive);
|
|
67
|
-
const RechartsPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RechartsPrimitive);
|
|
68
59
|
const CheckboxPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(CheckboxPrimitive);
|
|
69
60
|
const CollapsiblePrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(CollapsiblePrimitive);
|
|
70
61
|
const DialogPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(DialogPrimitive);
|
|
71
|
-
const ContextMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ContextMenuPrimitive);
|
|
72
62
|
const DropdownMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(DropdownMenuPrimitive);
|
|
73
63
|
const LabelPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(LabelPrimitive);
|
|
74
|
-
const HoverCardPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(HoverCardPrimitive);
|
|
75
64
|
const MenubarPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(MenubarPrimitive);
|
|
76
65
|
const NavigationMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(NavigationMenuPrimitive);
|
|
77
|
-
const PopoverPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(PopoverPrimitive);
|
|
78
66
|
const ProgressPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ProgressPrimitive);
|
|
79
67
|
const RadioGroupPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RadioGroupPrimitive);
|
|
80
68
|
const ScrollAreaPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ScrollAreaPrimitive);
|
|
@@ -148,8 +136,10 @@ const alertVariants = classVarianceAuthority.cva(
|
|
|
148
136
|
{
|
|
149
137
|
variants: {
|
|
150
138
|
variant: {
|
|
151
|
-
default: "bg-
|
|
152
|
-
|
|
139
|
+
default: "bg-tertiary/50 border-tertiary text-panel-foreground",
|
|
140
|
+
success: "bg-success/50 border-success text-success-foreground [&>svg]:text-success-foreground",
|
|
141
|
+
warning: "bg-warning/50 border-warning text-warning-foreground [&>svg]:text-warning-foreground",
|
|
142
|
+
error: "text-error-foreground bg-error/50 border-error [&>svg]:text-current *:data-[slot=alert-description]:text-error-foreground"
|
|
153
143
|
}
|
|
154
144
|
},
|
|
155
145
|
defaultVariants: {
|
|
@@ -202,16 +192,21 @@ function AlertDescription({
|
|
|
202
192
|
);
|
|
203
193
|
}
|
|
204
194
|
const buttonVariants = classVarianceAuthority.cva(
|
|
205
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-
|
|
195
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-500 cursor-pointer hover:scale-105 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error",
|
|
206
196
|
{
|
|
207
197
|
variants: {
|
|
208
198
|
variant: {
|
|
209
199
|
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
210
|
-
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
211
|
-
outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
212
200
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
213
|
-
|
|
214
|
-
|
|
201
|
+
tertiary: "bg-tertiary text-tertiary-foreground hover:bg-tertiary/80",
|
|
202
|
+
info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/20 dark:focus-visible:ring-info/40",
|
|
203
|
+
success: "bg-success text-success-foreground hover:bg-success/90 focus-visible:ring-success/20 dark:focus-visible:ring-success/40",
|
|
204
|
+
warning: "bg-warning text-warning-foreground hover:bg-warning/90 focus-visible:ring-warning/20 dark:focus-visible:ring-warning/40",
|
|
205
|
+
error: "bg-error text-error-foreground hover:bg-error/90 focus-visible:ring-error/20 dark:focus-visible:ring-error/40 dark:bg-error/60",
|
|
206
|
+
outline: "border bg-background shadow-xs hover:bg-tertiary hover:text-tertiary-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
207
|
+
ghost: "hover:bg-tertiary hover:text-tertiary-foreground dark:hover:bg-tertiary/50",
|
|
208
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
209
|
+
"animated-underline": "relative text-tertiary-foreground bg-transparent hover:scale-100 after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full"
|
|
215
210
|
},
|
|
216
211
|
size: {
|
|
217
212
|
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
@@ -427,14 +422,14 @@ function AvatarFallback({
|
|
|
427
422
|
);
|
|
428
423
|
}
|
|
429
424
|
const badgeVariants = classVarianceAuthority.cva(
|
|
430
|
-
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-
|
|
425
|
+
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error transition-[color,box-shadow] overflow-hidden",
|
|
431
426
|
{
|
|
432
427
|
variants: {
|
|
433
428
|
variant: {
|
|
434
429
|
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
435
430
|
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
436
|
-
|
|
437
|
-
outline: "text-foreground [a&]:hover:bg-
|
|
431
|
+
error: "border-transparent bg-error text-white [a&]:hover:bg-error/90 focus-visible:ring-error/20 dark:focus-visible:ring-error/40 dark:bg-error/60",
|
|
432
|
+
outline: "text-foreground [a&]:hover:bg-tertiary [a&]:hover:text-tertiary-foreground"
|
|
438
433
|
}
|
|
439
434
|
},
|
|
440
435
|
defaultVariants: {
|
|
@@ -637,13 +632,13 @@ function Calendar({
|
|
|
637
632
|
defaultClassNames.day
|
|
638
633
|
),
|
|
639
634
|
range_start: cn(
|
|
640
|
-
"rounded-l-md bg-
|
|
635
|
+
"rounded-l-md bg-tertiary",
|
|
641
636
|
defaultClassNames.range_start
|
|
642
637
|
),
|
|
643
638
|
range_middle: cn("rounded-none", defaultClassNames.range_middle),
|
|
644
|
-
range_end: cn("rounded-r-md bg-
|
|
639
|
+
range_end: cn("rounded-r-md bg-tertiary", defaultClassNames.range_end),
|
|
645
640
|
today: cn(
|
|
646
|
-
"bg-
|
|
641
|
+
"bg-tertiary text-tertiary-foreground rounded-md data-[selected=true]:rounded-none",
|
|
647
642
|
defaultClassNames.today
|
|
648
643
|
),
|
|
649
644
|
outside: cn(
|
|
@@ -717,7 +712,7 @@ function CalendarDayButton({
|
|
|
717
712
|
"data-range-end": modifiers.range_end,
|
|
718
713
|
"data-range-middle": modifiers.range_middle,
|
|
719
714
|
className: cn(
|
|
720
|
-
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-
|
|
715
|
+
"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-tertiary data-[range-middle=true]:text-tertiary-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-tertiary-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
|
|
721
716
|
defaultClassNames.day,
|
|
722
717
|
className
|
|
723
718
|
),
|
|
@@ -731,7 +726,7 @@ function Card({ className, ...props }) {
|
|
|
731
726
|
{
|
|
732
727
|
"data-slot": "card",
|
|
733
728
|
className: cn(
|
|
734
|
-
"bg-card text-card-foreground flex flex-col gap-6 rounded
|
|
729
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded border py-6 shadow-sm hover:bg-primary/12 transition-all duration-500 hover:scale-102",
|
|
735
730
|
className
|
|
736
731
|
),
|
|
737
732
|
...props
|
|
@@ -989,236 +984,6 @@ function CarouselNext({
|
|
|
989
984
|
}
|
|
990
985
|
);
|
|
991
986
|
}
|
|
992
|
-
const THEMES = { light: "", dark: ".dark" };
|
|
993
|
-
const ChartContext = React__namespace.createContext(null);
|
|
994
|
-
function useChart() {
|
|
995
|
-
const context = React__namespace.useContext(ChartContext);
|
|
996
|
-
if (!context) {
|
|
997
|
-
throw new Error("useChart must be used within a <ChartContainer />");
|
|
998
|
-
}
|
|
999
|
-
return context;
|
|
1000
|
-
}
|
|
1001
|
-
function ChartContainer({
|
|
1002
|
-
id,
|
|
1003
|
-
className,
|
|
1004
|
-
children,
|
|
1005
|
-
config,
|
|
1006
|
-
...props
|
|
1007
|
-
}) {
|
|
1008
|
-
const uniqueId = React__namespace.useId();
|
|
1009
|
-
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
1010
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1011
|
-
"div",
|
|
1012
|
-
{
|
|
1013
|
-
"data-slot": "chart",
|
|
1014
|
-
"data-chart": chartId,
|
|
1015
|
-
className: cn(
|
|
1016
|
-
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
1017
|
-
className
|
|
1018
|
-
),
|
|
1019
|
-
...props,
|
|
1020
|
-
children: [
|
|
1021
|
-
/* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
|
|
1022
|
-
/* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
|
|
1023
|
-
]
|
|
1024
|
-
}
|
|
1025
|
-
) });
|
|
1026
|
-
}
|
|
1027
|
-
const ChartStyle = ({ id, config }) => {
|
|
1028
|
-
const colorConfig = Object.entries(config).filter(
|
|
1029
|
-
([, config2]) => config2.theme || config2.color
|
|
1030
|
-
);
|
|
1031
|
-
if (!colorConfig.length) {
|
|
1032
|
-
return null;
|
|
1033
|
-
}
|
|
1034
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1035
|
-
"style",
|
|
1036
|
-
{
|
|
1037
|
-
dangerouslySetInnerHTML: {
|
|
1038
|
-
__html: Object.entries(THEMES).map(
|
|
1039
|
-
([theme, prefix]) => `
|
|
1040
|
-
${prefix} [data-chart=${id}] {
|
|
1041
|
-
${colorConfig.map(([key, itemConfig]) => {
|
|
1042
|
-
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
1043
|
-
return color ? ` --color-${key}: ${color};` : null;
|
|
1044
|
-
}).join("\n")}
|
|
1045
|
-
}
|
|
1046
|
-
`
|
|
1047
|
-
).join("\n")
|
|
1048
|
-
}
|
|
1049
|
-
}
|
|
1050
|
-
);
|
|
1051
|
-
};
|
|
1052
|
-
const ChartTooltip = RechartsPrimitive__namespace.Tooltip;
|
|
1053
|
-
function ChartTooltipContent({
|
|
1054
|
-
active,
|
|
1055
|
-
payload,
|
|
1056
|
-
className,
|
|
1057
|
-
indicator = "dot",
|
|
1058
|
-
hideLabel = false,
|
|
1059
|
-
hideIndicator = false,
|
|
1060
|
-
label,
|
|
1061
|
-
labelFormatter,
|
|
1062
|
-
labelClassName,
|
|
1063
|
-
formatter,
|
|
1064
|
-
color,
|
|
1065
|
-
nameKey,
|
|
1066
|
-
labelKey
|
|
1067
|
-
}) {
|
|
1068
|
-
const { config } = useChart();
|
|
1069
|
-
const tooltipLabel = React__namespace.useMemo(() => {
|
|
1070
|
-
if (hideLabel || !payload?.length) {
|
|
1071
|
-
return null;
|
|
1072
|
-
}
|
|
1073
|
-
const [item] = payload;
|
|
1074
|
-
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
1075
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1076
|
-
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
1077
|
-
if (labelFormatter) {
|
|
1078
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
1079
|
-
}
|
|
1080
|
-
if (!value) {
|
|
1081
|
-
return null;
|
|
1082
|
-
}
|
|
1083
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
1084
|
-
}, [
|
|
1085
|
-
label,
|
|
1086
|
-
labelFormatter,
|
|
1087
|
-
payload,
|
|
1088
|
-
hideLabel,
|
|
1089
|
-
labelClassName,
|
|
1090
|
-
config,
|
|
1091
|
-
labelKey
|
|
1092
|
-
]);
|
|
1093
|
-
if (!active || !payload?.length) {
|
|
1094
|
-
return null;
|
|
1095
|
-
}
|
|
1096
|
-
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
1097
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1098
|
-
"div",
|
|
1099
|
-
{
|
|
1100
|
-
className: cn(
|
|
1101
|
-
"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
|
|
1102
|
-
className
|
|
1103
|
-
),
|
|
1104
|
-
children: [
|
|
1105
|
-
!nestLabel ? tooltipLabel : null,
|
|
1106
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
1107
|
-
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
1108
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1109
|
-
const indicatorColor = color || item.payload.fill || item.color;
|
|
1110
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1111
|
-
"div",
|
|
1112
|
-
{
|
|
1113
|
-
className: cn(
|
|
1114
|
-
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
|
1115
|
-
indicator === "dot" && "items-center"
|
|
1116
|
-
),
|
|
1117
|
-
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1118
|
-
itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1119
|
-
"div",
|
|
1120
|
-
{
|
|
1121
|
-
className: cn(
|
|
1122
|
-
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
1123
|
-
{
|
|
1124
|
-
"h-2.5 w-2.5": indicator === "dot",
|
|
1125
|
-
"w-1": indicator === "line",
|
|
1126
|
-
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
1127
|
-
"my-0.5": nestLabel && indicator === "dashed"
|
|
1128
|
-
}
|
|
1129
|
-
),
|
|
1130
|
-
style: {
|
|
1131
|
-
"--color-bg": indicatorColor,
|
|
1132
|
-
"--color-border": indicatorColor
|
|
1133
|
-
}
|
|
1134
|
-
}
|
|
1135
|
-
),
|
|
1136
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1137
|
-
"div",
|
|
1138
|
-
{
|
|
1139
|
-
className: cn(
|
|
1140
|
-
"flex flex-1 justify-between leading-none",
|
|
1141
|
-
nestLabel ? "items-end" : "items-center"
|
|
1142
|
-
),
|
|
1143
|
-
children: [
|
|
1144
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
|
|
1145
|
-
nestLabel ? tooltipLabel : null,
|
|
1146
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
1147
|
-
] }),
|
|
1148
|
-
item.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
|
|
1149
|
-
]
|
|
1150
|
-
}
|
|
1151
|
-
)
|
|
1152
|
-
] })
|
|
1153
|
-
},
|
|
1154
|
-
item.dataKey
|
|
1155
|
-
);
|
|
1156
|
-
}) })
|
|
1157
|
-
]
|
|
1158
|
-
}
|
|
1159
|
-
);
|
|
1160
|
-
}
|
|
1161
|
-
const ChartLegend = RechartsPrimitive__namespace.Legend;
|
|
1162
|
-
function ChartLegendContent({
|
|
1163
|
-
className,
|
|
1164
|
-
hideIcon = false,
|
|
1165
|
-
payload,
|
|
1166
|
-
verticalAlign = "bottom",
|
|
1167
|
-
nameKey
|
|
1168
|
-
}) {
|
|
1169
|
-
const { config } = useChart();
|
|
1170
|
-
if (!payload?.length) {
|
|
1171
|
-
return null;
|
|
1172
|
-
}
|
|
1173
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1174
|
-
"div",
|
|
1175
|
-
{
|
|
1176
|
-
className: cn(
|
|
1177
|
-
"flex items-center justify-center gap-4",
|
|
1178
|
-
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
1179
|
-
className
|
|
1180
|
-
),
|
|
1181
|
-
children: payload.filter((item) => item.type !== "none").map((item) => {
|
|
1182
|
-
const key = `${nameKey || item.dataKey || "value"}`;
|
|
1183
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
1184
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1185
|
-
"div",
|
|
1186
|
-
{
|
|
1187
|
-
className: cn(
|
|
1188
|
-
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
|
|
1189
|
-
),
|
|
1190
|
-
children: [
|
|
1191
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1192
|
-
"div",
|
|
1193
|
-
{
|
|
1194
|
-
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
1195
|
-
style: {
|
|
1196
|
-
backgroundColor: item.color
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
),
|
|
1200
|
-
itemConfig?.label
|
|
1201
|
-
]
|
|
1202
|
-
},
|
|
1203
|
-
item.value
|
|
1204
|
-
);
|
|
1205
|
-
})
|
|
1206
|
-
}
|
|
1207
|
-
);
|
|
1208
|
-
}
|
|
1209
|
-
function getPayloadConfigFromPayload(config, payload, key) {
|
|
1210
|
-
if (typeof payload !== "object" || payload === null) {
|
|
1211
|
-
return void 0;
|
|
1212
|
-
}
|
|
1213
|
-
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
1214
|
-
let configLabelKey = key;
|
|
1215
|
-
if (key in payload && typeof payload[key] === "string") {
|
|
1216
|
-
configLabelKey = payload[key];
|
|
1217
|
-
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
1218
|
-
configLabelKey = payloadPayload[key];
|
|
1219
|
-
}
|
|
1220
|
-
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
1221
|
-
}
|
|
1222
987
|
function Checkbox({
|
|
1223
988
|
className,
|
|
1224
989
|
...props
|
|
@@ -1228,7 +993,7 @@ function Checkbox({
|
|
|
1228
993
|
{
|
|
1229
994
|
"data-slot": "checkbox",
|
|
1230
995
|
className: cn(
|
|
1231
|
-
"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-
|
|
996
|
+
"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
1232
997
|
className
|
|
1233
998
|
),
|
|
1234
999
|
...props,
|
|
@@ -1329,7 +1094,7 @@ function DialogContent({
|
|
|
1329
1094
|
DialogPrimitive__namespace.Close,
|
|
1330
1095
|
{
|
|
1331
1096
|
"data-slot": "dialog-close",
|
|
1332
|
-
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-
|
|
1097
|
+
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-tertiary data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1333
1098
|
children: [
|
|
1334
1099
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
1335
1100
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
@@ -1390,603 +1155,495 @@ function DialogDescription({
|
|
|
1390
1155
|
}
|
|
1391
1156
|
);
|
|
1392
1157
|
}
|
|
1393
|
-
function
|
|
1394
|
-
className,
|
|
1395
|
-
...props
|
|
1396
|
-
}) {
|
|
1397
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1398
|
-
cmdk.Command,
|
|
1399
|
-
{
|
|
1400
|
-
"data-slot": "command",
|
|
1401
|
-
className: cn(
|
|
1402
|
-
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
|
|
1403
|
-
className
|
|
1404
|
-
),
|
|
1405
|
-
...props
|
|
1406
|
-
}
|
|
1407
|
-
);
|
|
1408
|
-
}
|
|
1409
|
-
function CommandDialog({
|
|
1410
|
-
title = "Command Palette",
|
|
1411
|
-
description = "Search for a command to run...",
|
|
1412
|
-
children,
|
|
1413
|
-
className,
|
|
1414
|
-
showCloseButton = true,
|
|
1415
|
-
...props
|
|
1416
|
-
}) {
|
|
1417
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Dialog, { ...props, children: [
|
|
1418
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: "sr-only", children: [
|
|
1419
|
-
/* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: title }),
|
|
1420
|
-
/* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: description })
|
|
1421
|
-
] }),
|
|
1422
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1423
|
-
DialogContent,
|
|
1424
|
-
{
|
|
1425
|
-
className: cn("overflow-hidden p-0", className),
|
|
1426
|
-
showCloseButton,
|
|
1427
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
|
|
1428
|
-
}
|
|
1429
|
-
)
|
|
1430
|
-
] });
|
|
1431
|
-
}
|
|
1432
|
-
function CommandInput({
|
|
1433
|
-
className,
|
|
1158
|
+
function DropdownMenu({
|
|
1434
1159
|
...props
|
|
1435
1160
|
}) {
|
|
1436
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1437
|
-
"div",
|
|
1438
|
-
{
|
|
1439
|
-
"data-slot": "command-input-wrapper",
|
|
1440
|
-
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
1441
|
-
children: [
|
|
1442
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
|
|
1443
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1444
|
-
cmdk.Command.Input,
|
|
1445
|
-
{
|
|
1446
|
-
"data-slot": "command-input",
|
|
1447
|
-
className: cn(
|
|
1448
|
-
"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
|
|
1449
|
-
className
|
|
1450
|
-
),
|
|
1451
|
-
...props
|
|
1452
|
-
}
|
|
1453
|
-
)
|
|
1454
|
-
]
|
|
1455
|
-
}
|
|
1456
|
-
);
|
|
1161
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
|
|
1457
1162
|
}
|
|
1458
|
-
function
|
|
1459
|
-
className,
|
|
1163
|
+
function DropdownMenuPortal({
|
|
1460
1164
|
...props
|
|
1461
1165
|
}) {
|
|
1462
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1463
|
-
cmdk.Command.List,
|
|
1464
|
-
{
|
|
1465
|
-
"data-slot": "command-list",
|
|
1466
|
-
className: cn(
|
|
1467
|
-
"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
|
|
1468
|
-
className
|
|
1469
|
-
),
|
|
1470
|
-
...props
|
|
1471
|
-
}
|
|
1472
|
-
);
|
|
1166
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
|
|
1473
1167
|
}
|
|
1474
|
-
function
|
|
1168
|
+
function DropdownMenuTrigger({
|
|
1475
1169
|
...props
|
|
1476
1170
|
}) {
|
|
1477
1171
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1478
|
-
|
|
1172
|
+
DropdownMenuPrimitive__namespace.Trigger,
|
|
1479
1173
|
{
|
|
1480
|
-
"data-slot": "
|
|
1481
|
-
className: "py-6 text-center text-sm",
|
|
1174
|
+
"data-slot": "dropdown-menu-trigger",
|
|
1482
1175
|
...props
|
|
1483
1176
|
}
|
|
1484
1177
|
);
|
|
1485
1178
|
}
|
|
1486
|
-
function
|
|
1179
|
+
function DropdownMenuContent({
|
|
1487
1180
|
className,
|
|
1181
|
+
sideOffset = 4,
|
|
1488
1182
|
...props
|
|
1489
1183
|
}) {
|
|
1490
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1491
|
-
|
|
1184
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1185
|
+
DropdownMenuPrimitive__namespace.Content,
|
|
1492
1186
|
{
|
|
1493
|
-
"data-slot": "
|
|
1187
|
+
"data-slot": "dropdown-menu-content",
|
|
1188
|
+
sideOffset,
|
|
1494
1189
|
className: cn(
|
|
1495
|
-
"text-foreground [
|
|
1190
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
1496
1191
|
className
|
|
1497
1192
|
),
|
|
1498
1193
|
...props
|
|
1499
1194
|
}
|
|
1500
|
-
);
|
|
1195
|
+
) });
|
|
1501
1196
|
}
|
|
1502
|
-
function
|
|
1503
|
-
className,
|
|
1197
|
+
function DropdownMenuGroup({
|
|
1504
1198
|
...props
|
|
1505
1199
|
}) {
|
|
1506
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1507
|
-
cmdk.Command.Separator,
|
|
1508
|
-
{
|
|
1509
|
-
"data-slot": "command-separator",
|
|
1510
|
-
className: cn("bg-border -mx-1 h-px", className),
|
|
1511
|
-
...props
|
|
1512
|
-
}
|
|
1513
|
-
);
|
|
1200
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
1514
1201
|
}
|
|
1515
|
-
function
|
|
1202
|
+
function DropdownMenuItem({
|
|
1516
1203
|
className,
|
|
1204
|
+
inset,
|
|
1205
|
+
variant = "default",
|
|
1517
1206
|
...props
|
|
1518
1207
|
}) {
|
|
1519
1208
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1520
|
-
|
|
1209
|
+
DropdownMenuPrimitive__namespace.Item,
|
|
1521
1210
|
{
|
|
1522
|
-
"data-slot": "
|
|
1211
|
+
"data-slot": "dropdown-menu-item",
|
|
1212
|
+
"data-inset": inset,
|
|
1213
|
+
"data-variant": variant,
|
|
1523
1214
|
className: cn(
|
|
1524
|
-
"data-[
|
|
1215
|
+
"focus:bg-tertiary focus:text-tertiary-foreground data-[variant=error]:text-error data-[variant=error]:focus:bg-error/10 dark:data-[variant=error]:focus:bg-error/20 data-[variant=error]:focus:text-error data-[variant=error]:*:[svg]:!text-error [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1525
1216
|
className
|
|
1526
1217
|
),
|
|
1527
1218
|
...props
|
|
1528
1219
|
}
|
|
1529
1220
|
);
|
|
1530
1221
|
}
|
|
1531
|
-
function
|
|
1222
|
+
function DropdownMenuCheckboxItem({
|
|
1532
1223
|
className,
|
|
1224
|
+
children,
|
|
1225
|
+
checked,
|
|
1533
1226
|
...props
|
|
1534
1227
|
}) {
|
|
1535
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1536
|
-
|
|
1228
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1229
|
+
DropdownMenuPrimitive__namespace.CheckboxItem,
|
|
1537
1230
|
{
|
|
1538
|
-
"data-slot": "
|
|
1231
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
1539
1232
|
className: cn(
|
|
1540
|
-
"text-
|
|
1233
|
+
"focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1541
1234
|
className
|
|
1542
1235
|
),
|
|
1543
|
-
|
|
1236
|
+
checked,
|
|
1237
|
+
...props,
|
|
1238
|
+
children: [
|
|
1239
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
|
|
1240
|
+
children
|
|
1241
|
+
]
|
|
1544
1242
|
}
|
|
1545
1243
|
);
|
|
1546
1244
|
}
|
|
1547
|
-
function
|
|
1548
|
-
...props
|
|
1549
|
-
}) {
|
|
1550
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Root, { "data-slot": "context-menu", ...props });
|
|
1551
|
-
}
|
|
1552
|
-
function ContextMenuTrigger({
|
|
1553
|
-
...props
|
|
1554
|
-
}) {
|
|
1555
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Trigger, { "data-slot": "context-menu-trigger", ...props });
|
|
1556
|
-
}
|
|
1557
|
-
function ContextMenuGroup({
|
|
1558
|
-
...props
|
|
1559
|
-
}) {
|
|
1560
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Group, { "data-slot": "context-menu-group", ...props });
|
|
1561
|
-
}
|
|
1562
|
-
function ContextMenuPortal({
|
|
1563
|
-
...props
|
|
1564
|
-
}) {
|
|
1565
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { "data-slot": "context-menu-portal", ...props });
|
|
1566
|
-
}
|
|
1567
|
-
function ContextMenuSub({
|
|
1568
|
-
...props
|
|
1569
|
-
}) {
|
|
1570
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Sub, { "data-slot": "context-menu-sub", ...props });
|
|
1571
|
-
}
|
|
1572
|
-
function ContextMenuRadioGroup({
|
|
1245
|
+
function DropdownMenuRadioGroup({
|
|
1573
1246
|
...props
|
|
1574
1247
|
}) {
|
|
1575
1248
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1576
|
-
|
|
1249
|
+
DropdownMenuPrimitive__namespace.RadioGroup,
|
|
1577
1250
|
{
|
|
1578
|
-
"data-slot": "
|
|
1251
|
+
"data-slot": "dropdown-menu-radio-group",
|
|
1579
1252
|
...props
|
|
1580
1253
|
}
|
|
1581
1254
|
);
|
|
1582
1255
|
}
|
|
1583
|
-
function
|
|
1256
|
+
function DropdownMenuRadioItem({
|
|
1584
1257
|
className,
|
|
1585
|
-
inset,
|
|
1586
1258
|
children,
|
|
1587
1259
|
...props
|
|
1588
1260
|
}) {
|
|
1589
1261
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1590
|
-
|
|
1262
|
+
DropdownMenuPrimitive__namespace.RadioItem,
|
|
1591
1263
|
{
|
|
1592
|
-
"data-slot": "
|
|
1593
|
-
"data-inset": inset,
|
|
1264
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
1594
1265
|
className: cn(
|
|
1595
|
-
"focus:bg-
|
|
1266
|
+
"focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1596
1267
|
className
|
|
1597
1268
|
),
|
|
1598
1269
|
...props,
|
|
1599
1270
|
children: [
|
|
1600
|
-
children,
|
|
1601
|
-
|
|
1271
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
1272
|
+
children
|
|
1602
1273
|
]
|
|
1603
1274
|
}
|
|
1604
1275
|
);
|
|
1605
1276
|
}
|
|
1606
|
-
function
|
|
1277
|
+
function DropdownMenuLabel({
|
|
1607
1278
|
className,
|
|
1279
|
+
inset,
|
|
1608
1280
|
...props
|
|
1609
1281
|
}) {
|
|
1610
1282
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1611
|
-
|
|
1283
|
+
DropdownMenuPrimitive__namespace.Label,
|
|
1612
1284
|
{
|
|
1613
|
-
"data-slot": "
|
|
1285
|
+
"data-slot": "dropdown-menu-label",
|
|
1286
|
+
"data-inset": inset,
|
|
1614
1287
|
className: cn(
|
|
1615
|
-
"
|
|
1288
|
+
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
1616
1289
|
className
|
|
1617
1290
|
),
|
|
1618
1291
|
...props
|
|
1619
1292
|
}
|
|
1620
1293
|
);
|
|
1621
1294
|
}
|
|
1622
|
-
function
|
|
1295
|
+
function DropdownMenuSeparator({
|
|
1623
1296
|
className,
|
|
1624
1297
|
...props
|
|
1625
1298
|
}) {
|
|
1626
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1627
|
-
|
|
1299
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1300
|
+
DropdownMenuPrimitive__namespace.Separator,
|
|
1628
1301
|
{
|
|
1629
|
-
"data-slot": "
|
|
1630
|
-
className: cn(
|
|
1631
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
1632
|
-
className
|
|
1633
|
-
),
|
|
1302
|
+
"data-slot": "dropdown-menu-separator",
|
|
1303
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
1634
1304
|
...props
|
|
1635
1305
|
}
|
|
1636
|
-
)
|
|
1306
|
+
);
|
|
1637
1307
|
}
|
|
1638
|
-
function
|
|
1308
|
+
function DropdownMenuShortcut({
|
|
1639
1309
|
className,
|
|
1640
|
-
inset,
|
|
1641
|
-
variant = "default",
|
|
1642
1310
|
...props
|
|
1643
1311
|
}) {
|
|
1644
1312
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1645
|
-
|
|
1313
|
+
"span",
|
|
1646
1314
|
{
|
|
1647
|
-
"data-slot": "
|
|
1648
|
-
"data-inset": inset,
|
|
1649
|
-
"data-variant": variant,
|
|
1315
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
1650
1316
|
className: cn(
|
|
1651
|
-
"
|
|
1317
|
+
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
1652
1318
|
className
|
|
1653
1319
|
),
|
|
1654
1320
|
...props
|
|
1655
1321
|
}
|
|
1656
1322
|
);
|
|
1657
1323
|
}
|
|
1658
|
-
function
|
|
1659
|
-
className,
|
|
1660
|
-
children,
|
|
1661
|
-
checked,
|
|
1324
|
+
function DropdownMenuSub({
|
|
1662
1325
|
...props
|
|
1663
1326
|
}) {
|
|
1664
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1665
|
-
ContextMenuPrimitive__namespace.CheckboxItem,
|
|
1666
|
-
{
|
|
1667
|
-
"data-slot": "context-menu-checkbox-item",
|
|
1668
|
-
className: cn(
|
|
1669
|
-
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1670
|
-
className
|
|
1671
|
-
),
|
|
1672
|
-
checked,
|
|
1673
|
-
...props,
|
|
1674
|
-
children: [
|
|
1675
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
|
|
1676
|
-
children
|
|
1677
|
-
]
|
|
1678
|
-
}
|
|
1679
|
-
);
|
|
1327
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
1680
1328
|
}
|
|
1681
|
-
function
|
|
1329
|
+
function DropdownMenuSubTrigger({
|
|
1682
1330
|
className,
|
|
1331
|
+
inset,
|
|
1683
1332
|
children,
|
|
1684
1333
|
...props
|
|
1685
1334
|
}) {
|
|
1686
1335
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1687
|
-
|
|
1336
|
+
DropdownMenuPrimitive__namespace.SubTrigger,
|
|
1688
1337
|
{
|
|
1689
|
-
"data-slot": "
|
|
1338
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
1339
|
+
"data-inset": inset,
|
|
1690
1340
|
className: cn(
|
|
1691
|
-
"focus:bg-
|
|
1341
|
+
"focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1692
1342
|
className
|
|
1693
1343
|
),
|
|
1694
1344
|
...props,
|
|
1695
1345
|
children: [
|
|
1696
|
-
|
|
1697
|
-
|
|
1346
|
+
children,
|
|
1347
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
|
|
1698
1348
|
]
|
|
1699
1349
|
}
|
|
1700
1350
|
);
|
|
1701
1351
|
}
|
|
1702
|
-
function
|
|
1352
|
+
function DropdownMenuSubContent({
|
|
1703
1353
|
className,
|
|
1704
|
-
inset,
|
|
1705
1354
|
...props
|
|
1706
1355
|
}) {
|
|
1707
1356
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1708
|
-
|
|
1357
|
+
DropdownMenuPrimitive__namespace.SubContent,
|
|
1709
1358
|
{
|
|
1710
|
-
"data-slot": "
|
|
1711
|
-
"data-inset": inset,
|
|
1359
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
1712
1360
|
className: cn(
|
|
1713
|
-
"text-foreground
|
|
1361
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
|
|
1714
1362
|
className
|
|
1715
1363
|
),
|
|
1716
1364
|
...props
|
|
1717
1365
|
}
|
|
1718
1366
|
);
|
|
1719
1367
|
}
|
|
1720
|
-
function
|
|
1368
|
+
function Label({
|
|
1721
1369
|
className,
|
|
1722
1370
|
...props
|
|
1723
1371
|
}) {
|
|
1724
1372
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1725
|
-
|
|
1726
|
-
{
|
|
1727
|
-
"data-slot": "context-menu-separator",
|
|
1728
|
-
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
1729
|
-
...props
|
|
1730
|
-
}
|
|
1731
|
-
);
|
|
1732
|
-
}
|
|
1733
|
-
function ContextMenuShortcut({
|
|
1734
|
-
className,
|
|
1735
|
-
...props
|
|
1736
|
-
}) {
|
|
1737
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1738
|
-
"span",
|
|
1373
|
+
LabelPrimitive__namespace.Root,
|
|
1739
1374
|
{
|
|
1740
|
-
"data-slot": "
|
|
1375
|
+
"data-slot": "label",
|
|
1741
1376
|
className: cn(
|
|
1742
|
-
"text-
|
|
1377
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
1743
1378
|
className
|
|
1744
1379
|
),
|
|
1745
1380
|
...props
|
|
1746
1381
|
}
|
|
1747
1382
|
);
|
|
1748
1383
|
}
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
}
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
function DrawerTrigger({
|
|
1755
|
-
...props
|
|
1756
|
-
}) {
|
|
1757
|
-
return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
|
|
1758
|
-
}
|
|
1759
|
-
function DrawerPortal({
|
|
1760
|
-
...props
|
|
1761
|
-
}) {
|
|
1762
|
-
return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
|
|
1763
|
-
}
|
|
1764
|
-
function DrawerClose({
|
|
1384
|
+
const Form = reactHookForm.FormProvider;
|
|
1385
|
+
const FormFieldContext = React__namespace.createContext(
|
|
1386
|
+
{}
|
|
1387
|
+
);
|
|
1388
|
+
const FormField = ({
|
|
1765
1389
|
...props
|
|
1766
|
-
}) {
|
|
1767
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1390
|
+
}) => {
|
|
1391
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
|
|
1392
|
+
};
|
|
1393
|
+
const useFormField = () => {
|
|
1394
|
+
const fieldContext = React__namespace.useContext(FormFieldContext);
|
|
1395
|
+
const itemContext = React__namespace.useContext(FormItemContext);
|
|
1396
|
+
const { getFieldState } = reactHookForm.useFormContext();
|
|
1397
|
+
const formState = reactHookForm.useFormState({ name: fieldContext.name });
|
|
1398
|
+
const fieldState = getFieldState(fieldContext.name, formState);
|
|
1399
|
+
if (!fieldContext) {
|
|
1400
|
+
throw new Error("useFormField should be used within <FormField>");
|
|
1401
|
+
}
|
|
1402
|
+
const { id } = itemContext;
|
|
1403
|
+
return {
|
|
1404
|
+
id,
|
|
1405
|
+
name: fieldContext.name,
|
|
1406
|
+
formItemId: `${id}-form-item`,
|
|
1407
|
+
formDescriptionId: `${id}-form-item-description`,
|
|
1408
|
+
formMessageId: `${id}-form-item-message`,
|
|
1409
|
+
...fieldState
|
|
1410
|
+
};
|
|
1411
|
+
};
|
|
1412
|
+
const FormItemContext = React__namespace.createContext(
|
|
1413
|
+
{}
|
|
1414
|
+
);
|
|
1415
|
+
function FormItem({ className, ...props }) {
|
|
1416
|
+
const id = React__namespace.useId();
|
|
1417
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1418
|
+
"div",
|
|
1419
|
+
{
|
|
1420
|
+
"data-slot": "form-item",
|
|
1421
|
+
className: cn("grid gap-2", className),
|
|
1422
|
+
...props
|
|
1423
|
+
}
|
|
1424
|
+
) });
|
|
1768
1425
|
}
|
|
1769
|
-
function
|
|
1426
|
+
function FormLabel({
|
|
1770
1427
|
className,
|
|
1771
1428
|
...props
|
|
1772
1429
|
}) {
|
|
1430
|
+
const { error, formItemId } = useFormField();
|
|
1773
1431
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1774
|
-
|
|
1432
|
+
Label,
|
|
1775
1433
|
{
|
|
1776
|
-
"data-slot": "
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
),
|
|
1434
|
+
"data-slot": "form-label",
|
|
1435
|
+
"data-error": !!error,
|
|
1436
|
+
className: cn("data-[error=true]:text-error", className),
|
|
1437
|
+
htmlFor: formItemId,
|
|
1781
1438
|
...props
|
|
1782
1439
|
}
|
|
1783
1440
|
);
|
|
1784
1441
|
}
|
|
1785
|
-
function
|
|
1786
|
-
|
|
1787
|
-
children,
|
|
1788
|
-
...props
|
|
1789
|
-
}) {
|
|
1790
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
|
|
1791
|
-
/* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
|
|
1792
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1793
|
-
vaul.Drawer.Content,
|
|
1794
|
-
{
|
|
1795
|
-
"data-slot": "drawer-content",
|
|
1796
|
-
className: cn(
|
|
1797
|
-
"group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
|
|
1798
|
-
"data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
|
|
1799
|
-
"data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
|
|
1800
|
-
"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
|
|
1801
|
-
"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
|
|
1802
|
-
className
|
|
1803
|
-
),
|
|
1804
|
-
...props,
|
|
1805
|
-
children: [
|
|
1806
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
|
|
1807
|
-
children
|
|
1808
|
-
]
|
|
1809
|
-
}
|
|
1810
|
-
)
|
|
1811
|
-
] });
|
|
1812
|
-
}
|
|
1813
|
-
function DrawerHeader({ className, ...props }) {
|
|
1442
|
+
function FormControl({ ...props }) {
|
|
1443
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
1814
1444
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1815
|
-
|
|
1445
|
+
reactSlot.Slot,
|
|
1816
1446
|
{
|
|
1817
|
-
"data-slot": "
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
),
|
|
1447
|
+
"data-slot": "form-control",
|
|
1448
|
+
id: formItemId,
|
|
1449
|
+
"aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
|
|
1450
|
+
"aria-invalid": !!error,
|
|
1822
1451
|
...props
|
|
1823
1452
|
}
|
|
1824
1453
|
);
|
|
1825
1454
|
}
|
|
1826
|
-
function
|
|
1455
|
+
function FormDescription({ className, ...props }) {
|
|
1456
|
+
const { formDescriptionId } = useFormField();
|
|
1827
1457
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1828
|
-
"
|
|
1458
|
+
"p",
|
|
1829
1459
|
{
|
|
1830
|
-
"data-slot": "
|
|
1831
|
-
|
|
1460
|
+
"data-slot": "form-description",
|
|
1461
|
+
id: formDescriptionId,
|
|
1462
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
1832
1463
|
...props
|
|
1833
1464
|
}
|
|
1834
1465
|
);
|
|
1835
1466
|
}
|
|
1836
|
-
function
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1467
|
+
function FormMessage({ className, ...props }) {
|
|
1468
|
+
const { error, formMessageId } = useFormField();
|
|
1469
|
+
const body = error ? String(error?.message ?? "") : props.children;
|
|
1470
|
+
if (!body) {
|
|
1471
|
+
return null;
|
|
1472
|
+
}
|
|
1840
1473
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1841
|
-
|
|
1474
|
+
"p",
|
|
1842
1475
|
{
|
|
1843
|
-
"data-slot": "
|
|
1844
|
-
|
|
1476
|
+
"data-slot": "form-message",
|
|
1477
|
+
id: formMessageId,
|
|
1478
|
+
className: cn("text-error text-sm", className),
|
|
1479
|
+
...props,
|
|
1480
|
+
children: body
|
|
1481
|
+
}
|
|
1482
|
+
);
|
|
1483
|
+
}
|
|
1484
|
+
function Input({ className, type, ...props }) {
|
|
1485
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1486
|
+
"input",
|
|
1487
|
+
{
|
|
1488
|
+
type,
|
|
1489
|
+
"data-slot": "input",
|
|
1490
|
+
className: cn(
|
|
1491
|
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
1492
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
1493
|
+
"aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error",
|
|
1494
|
+
className
|
|
1495
|
+
),
|
|
1845
1496
|
...props
|
|
1846
1497
|
}
|
|
1847
1498
|
);
|
|
1848
1499
|
}
|
|
1849
|
-
function
|
|
1500
|
+
function Menubar({
|
|
1850
1501
|
className,
|
|
1851
1502
|
...props
|
|
1852
1503
|
}) {
|
|
1853
1504
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1854
|
-
|
|
1505
|
+
MenubarPrimitive__namespace.Root,
|
|
1855
1506
|
{
|
|
1856
|
-
"data-slot": "
|
|
1857
|
-
className: cn(
|
|
1507
|
+
"data-slot": "menubar",
|
|
1508
|
+
className: cn(
|
|
1509
|
+
"bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
|
|
1510
|
+
className
|
|
1511
|
+
),
|
|
1858
1512
|
...props
|
|
1859
1513
|
}
|
|
1860
1514
|
);
|
|
1861
1515
|
}
|
|
1862
|
-
function
|
|
1516
|
+
function MenubarMenu({
|
|
1863
1517
|
...props
|
|
1864
1518
|
}) {
|
|
1865
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1519
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { "data-slot": "menubar-menu", ...props });
|
|
1866
1520
|
}
|
|
1867
|
-
function
|
|
1521
|
+
function MenubarGroup({
|
|
1868
1522
|
...props
|
|
1869
1523
|
}) {
|
|
1870
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1524
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { "data-slot": "menubar-group", ...props });
|
|
1871
1525
|
}
|
|
1872
|
-
function
|
|
1526
|
+
function MenubarPortal({
|
|
1527
|
+
...props
|
|
1528
|
+
}) {
|
|
1529
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { "data-slot": "menubar-portal", ...props });
|
|
1530
|
+
}
|
|
1531
|
+
function MenubarRadioGroup({
|
|
1532
|
+
...props
|
|
1533
|
+
}) {
|
|
1534
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
|
|
1535
|
+
}
|
|
1536
|
+
function MenubarTrigger({
|
|
1537
|
+
className,
|
|
1873
1538
|
...props
|
|
1874
1539
|
}) {
|
|
1875
1540
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1876
|
-
|
|
1541
|
+
MenubarPrimitive__namespace.Trigger,
|
|
1877
1542
|
{
|
|
1878
|
-
"data-slot": "
|
|
1543
|
+
"data-slot": "menubar-trigger",
|
|
1544
|
+
className: cn(
|
|
1545
|
+
"focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
|
|
1546
|
+
className
|
|
1547
|
+
),
|
|
1879
1548
|
...props
|
|
1880
1549
|
}
|
|
1881
1550
|
);
|
|
1882
1551
|
}
|
|
1883
|
-
function
|
|
1552
|
+
function MenubarContent({
|
|
1884
1553
|
className,
|
|
1885
|
-
|
|
1554
|
+
align = "start",
|
|
1555
|
+
alignOffset = -4,
|
|
1556
|
+
sideOffset = 8,
|
|
1886
1557
|
...props
|
|
1887
1558
|
}) {
|
|
1888
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1889
|
-
|
|
1559
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1560
|
+
MenubarPrimitive__namespace.Content,
|
|
1890
1561
|
{
|
|
1891
|
-
"data-slot": "
|
|
1562
|
+
"data-slot": "menubar-content",
|
|
1563
|
+
align,
|
|
1564
|
+
alignOffset,
|
|
1892
1565
|
sideOffset,
|
|
1893
1566
|
className: cn(
|
|
1894
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:
|
|
1567
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
|
|
1895
1568
|
className
|
|
1896
1569
|
),
|
|
1897
1570
|
...props
|
|
1898
1571
|
}
|
|
1899
1572
|
) });
|
|
1900
1573
|
}
|
|
1901
|
-
function
|
|
1902
|
-
...props
|
|
1903
|
-
}) {
|
|
1904
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
|
|
1905
|
-
}
|
|
1906
|
-
function DropdownMenuItem({
|
|
1574
|
+
function MenubarItem({
|
|
1907
1575
|
className,
|
|
1908
1576
|
inset,
|
|
1909
1577
|
variant = "default",
|
|
1910
1578
|
...props
|
|
1911
1579
|
}) {
|
|
1912
1580
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1913
|
-
|
|
1581
|
+
MenubarPrimitive__namespace.Item,
|
|
1914
1582
|
{
|
|
1915
|
-
"data-slot": "
|
|
1583
|
+
"data-slot": "menubar-item",
|
|
1916
1584
|
"data-inset": inset,
|
|
1917
1585
|
"data-variant": variant,
|
|
1918
1586
|
className: cn(
|
|
1919
|
-
"focus:bg-
|
|
1587
|
+
"focus:bg-tertiary focus:text-tertiary-foreground data-[variant=error]:text-error data-[variant=error]:focus:bg-error/10 dark:data-[variant=error]:focus:bg-error/20 data-[variant=error]:focus:text-error data-[variant=error]:*:[svg]:!text-error [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1920
1588
|
className
|
|
1921
1589
|
),
|
|
1922
1590
|
...props
|
|
1923
1591
|
}
|
|
1924
1592
|
);
|
|
1925
1593
|
}
|
|
1926
|
-
function
|
|
1594
|
+
function MenubarCheckboxItem({
|
|
1927
1595
|
className,
|
|
1928
1596
|
children,
|
|
1929
1597
|
checked,
|
|
1930
1598
|
...props
|
|
1931
1599
|
}) {
|
|
1932
1600
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1933
|
-
|
|
1601
|
+
MenubarPrimitive__namespace.CheckboxItem,
|
|
1934
1602
|
{
|
|
1935
|
-
"data-slot": "
|
|
1603
|
+
"data-slot": "menubar-checkbox-item",
|
|
1936
1604
|
className: cn(
|
|
1937
|
-
"focus:bg-
|
|
1605
|
+
"focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1938
1606
|
className
|
|
1939
1607
|
),
|
|
1940
1608
|
checked,
|
|
1941
1609
|
...props,
|
|
1942
1610
|
children: [
|
|
1943
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1611
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
|
|
1944
1612
|
children
|
|
1945
1613
|
]
|
|
1946
1614
|
}
|
|
1947
1615
|
);
|
|
1948
1616
|
}
|
|
1949
|
-
function
|
|
1950
|
-
...props
|
|
1951
|
-
}) {
|
|
1952
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1953
|
-
DropdownMenuPrimitive__namespace.RadioGroup,
|
|
1954
|
-
{
|
|
1955
|
-
"data-slot": "dropdown-menu-radio-group",
|
|
1956
|
-
...props
|
|
1957
|
-
}
|
|
1958
|
-
);
|
|
1959
|
-
}
|
|
1960
|
-
function DropdownMenuRadioItem({
|
|
1617
|
+
function MenubarRadioItem({
|
|
1961
1618
|
className,
|
|
1962
1619
|
children,
|
|
1963
1620
|
...props
|
|
1964
1621
|
}) {
|
|
1965
1622
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1966
|
-
|
|
1623
|
+
MenubarPrimitive__namespace.RadioItem,
|
|
1967
1624
|
{
|
|
1968
|
-
"data-slot": "
|
|
1625
|
+
"data-slot": "menubar-radio-item",
|
|
1969
1626
|
className: cn(
|
|
1970
|
-
"focus:bg-
|
|
1627
|
+
"focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
1971
1628
|
className
|
|
1972
1629
|
),
|
|
1973
1630
|
...props,
|
|
1974
1631
|
children: [
|
|
1975
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1632
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
1976
1633
|
children
|
|
1977
1634
|
]
|
|
1978
1635
|
}
|
|
1979
1636
|
);
|
|
1980
1637
|
}
|
|
1981
|
-
function
|
|
1638
|
+
function MenubarLabel({
|
|
1982
1639
|
className,
|
|
1983
1640
|
inset,
|
|
1984
1641
|
...props
|
|
1985
1642
|
}) {
|
|
1986
1643
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1987
|
-
|
|
1644
|
+
MenubarPrimitive__namespace.Label,
|
|
1988
1645
|
{
|
|
1989
|
-
"data-slot": "
|
|
1646
|
+
"data-slot": "menubar-label",
|
|
1990
1647
|
"data-inset": inset,
|
|
1991
1648
|
className: cn(
|
|
1992
1649
|
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
@@ -1996,27 +1653,27 @@ function DropdownMenuLabel({
|
|
|
1996
1653
|
}
|
|
1997
1654
|
);
|
|
1998
1655
|
}
|
|
1999
|
-
function
|
|
1656
|
+
function MenubarSeparator({
|
|
2000
1657
|
className,
|
|
2001
1658
|
...props
|
|
2002
1659
|
}) {
|
|
2003
1660
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2004
|
-
|
|
1661
|
+
MenubarPrimitive__namespace.Separator,
|
|
2005
1662
|
{
|
|
2006
|
-
"data-slot": "
|
|
1663
|
+
"data-slot": "menubar-separator",
|
|
2007
1664
|
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
2008
1665
|
...props
|
|
2009
1666
|
}
|
|
2010
1667
|
);
|
|
2011
1668
|
}
|
|
2012
|
-
function
|
|
1669
|
+
function MenubarShortcut({
|
|
2013
1670
|
className,
|
|
2014
1671
|
...props
|
|
2015
1672
|
}) {
|
|
2016
1673
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2017
1674
|
"span",
|
|
2018
1675
|
{
|
|
2019
|
-
"data-slot": "
|
|
1676
|
+
"data-slot": "menubar-shortcut",
|
|
2020
1677
|
className: cn(
|
|
2021
1678
|
"text-muted-foreground ml-auto text-xs tracking-widest",
|
|
2022
1679
|
className
|
|
@@ -2025,1329 +1682,709 @@ function DropdownMenuShortcut({
|
|
|
2025
1682
|
}
|
|
2026
1683
|
);
|
|
2027
1684
|
}
|
|
2028
|
-
function
|
|
1685
|
+
function MenubarSub({
|
|
2029
1686
|
...props
|
|
2030
1687
|
}) {
|
|
2031
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1688
|
+
return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
|
|
2032
1689
|
}
|
|
2033
|
-
function
|
|
1690
|
+
function MenubarSubTrigger({
|
|
2034
1691
|
className,
|
|
2035
1692
|
inset,
|
|
2036
1693
|
children,
|
|
2037
1694
|
...props
|
|
2038
1695
|
}) {
|
|
2039
1696
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2040
|
-
|
|
1697
|
+
MenubarPrimitive__namespace.SubTrigger,
|
|
2041
1698
|
{
|
|
2042
|
-
"data-slot": "
|
|
1699
|
+
"data-slot": "menubar-sub-trigger",
|
|
2043
1700
|
"data-inset": inset,
|
|
2044
1701
|
className: cn(
|
|
2045
|
-
"focus:bg-
|
|
1702
|
+
"focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
|
|
2046
1703
|
className
|
|
2047
1704
|
),
|
|
2048
1705
|
...props,
|
|
2049
1706
|
children: [
|
|
2050
1707
|
children,
|
|
2051
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto
|
|
1708
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
2052
1709
|
]
|
|
2053
1710
|
}
|
|
2054
1711
|
);
|
|
2055
1712
|
}
|
|
2056
|
-
function
|
|
1713
|
+
function MenubarSubContent({
|
|
2057
1714
|
className,
|
|
2058
1715
|
...props
|
|
2059
1716
|
}) {
|
|
2060
1717
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2061
|
-
|
|
1718
|
+
MenubarPrimitive__namespace.SubContent,
|
|
2062
1719
|
{
|
|
2063
|
-
"data-slot": "
|
|
1720
|
+
"data-slot": "menubar-sub-content",
|
|
2064
1721
|
className: cn(
|
|
2065
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-
|
|
1722
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
|
|
2066
1723
|
className
|
|
2067
1724
|
),
|
|
2068
1725
|
...props
|
|
2069
1726
|
}
|
|
2070
1727
|
);
|
|
2071
1728
|
}
|
|
2072
|
-
function
|
|
1729
|
+
function NavigationMenu({
|
|
2073
1730
|
className,
|
|
1731
|
+
children,
|
|
1732
|
+
viewport = true,
|
|
2074
1733
|
...props
|
|
2075
1734
|
}) {
|
|
2076
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2077
|
-
|
|
1735
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1736
|
+
NavigationMenuPrimitive__namespace.Root,
|
|
2078
1737
|
{
|
|
2079
|
-
"data-slot": "
|
|
1738
|
+
"data-slot": "navigation-menu",
|
|
1739
|
+
"data-viewport": viewport,
|
|
2080
1740
|
className: cn(
|
|
2081
|
-
"
|
|
1741
|
+
"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
|
|
2082
1742
|
className
|
|
2083
1743
|
),
|
|
2084
|
-
...props
|
|
1744
|
+
...props,
|
|
1745
|
+
children: [
|
|
1746
|
+
children,
|
|
1747
|
+
viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
|
|
1748
|
+
]
|
|
2085
1749
|
}
|
|
2086
1750
|
);
|
|
2087
1751
|
}
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
{}
|
|
2091
|
-
);
|
|
2092
|
-
const FormField = ({
|
|
1752
|
+
function NavigationMenuList({
|
|
1753
|
+
className,
|
|
2093
1754
|
...props
|
|
2094
|
-
})
|
|
2095
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2096
|
-
|
|
2097
|
-
const useFormField = () => {
|
|
2098
|
-
const fieldContext = React__namespace.useContext(FormFieldContext);
|
|
2099
|
-
const itemContext = React__namespace.useContext(FormItemContext);
|
|
2100
|
-
const { getFieldState } = reactHookForm.useFormContext();
|
|
2101
|
-
const formState = reactHookForm.useFormState({ name: fieldContext.name });
|
|
2102
|
-
const fieldState = getFieldState(fieldContext.name, formState);
|
|
2103
|
-
if (!fieldContext) {
|
|
2104
|
-
throw new Error("useFormField should be used within <FormField>");
|
|
2105
|
-
}
|
|
2106
|
-
const { id } = itemContext;
|
|
2107
|
-
return {
|
|
2108
|
-
id,
|
|
2109
|
-
name: fieldContext.name,
|
|
2110
|
-
formItemId: `${id}-form-item`,
|
|
2111
|
-
formDescriptionId: `${id}-form-item-description`,
|
|
2112
|
-
formMessageId: `${id}-form-item-message`,
|
|
2113
|
-
...fieldState
|
|
2114
|
-
};
|
|
2115
|
-
};
|
|
2116
|
-
const FormItemContext = React__namespace.createContext(
|
|
2117
|
-
{}
|
|
2118
|
-
);
|
|
2119
|
-
function FormItem({ className, ...props }) {
|
|
2120
|
-
const id = React__namespace.useId();
|
|
2121
|
-
return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2122
|
-
"div",
|
|
1755
|
+
}) {
|
|
1756
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1757
|
+
NavigationMenuPrimitive__namespace.List,
|
|
2123
1758
|
{
|
|
2124
|
-
"data-slot": "
|
|
2125
|
-
className: cn(
|
|
1759
|
+
"data-slot": "navigation-menu-list",
|
|
1760
|
+
className: cn(
|
|
1761
|
+
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
1762
|
+
className
|
|
1763
|
+
),
|
|
2126
1764
|
...props
|
|
2127
1765
|
}
|
|
2128
|
-
)
|
|
1766
|
+
);
|
|
2129
1767
|
}
|
|
2130
|
-
function
|
|
1768
|
+
function NavigationMenuItem({
|
|
2131
1769
|
className,
|
|
2132
1770
|
...props
|
|
2133
1771
|
}) {
|
|
2134
|
-
const { error, formItemId } = useFormField();
|
|
2135
1772
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2136
|
-
|
|
1773
|
+
NavigationMenuPrimitive__namespace.Item,
|
|
2137
1774
|
{
|
|
2138
|
-
"data-slot": "
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
1775
|
+
"data-slot": "navigation-menu-item",
|
|
1776
|
+
className: cn(
|
|
1777
|
+
"relative after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full hover:text-tertiary-foreground transition-colors",
|
|
1778
|
+
className
|
|
1779
|
+
),
|
|
2142
1780
|
...props
|
|
2143
1781
|
}
|
|
2144
1782
|
);
|
|
2145
1783
|
}
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
1784
|
+
const navigationMenuTriggerStyle = classVarianceAuthority.cva(
|
|
1785
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium disabled:pointer-events-none disabled:opacity-50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
|
|
1786
|
+
);
|
|
1787
|
+
function NavigationMenuTrigger({
|
|
1788
|
+
className,
|
|
1789
|
+
children,
|
|
1790
|
+
...props
|
|
1791
|
+
}) {
|
|
1792
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1793
|
+
NavigationMenuPrimitive__namespace.Trigger,
|
|
2150
1794
|
{
|
|
2151
|
-
"data-slot": "
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
1795
|
+
"data-slot": "navigation-menu-trigger",
|
|
1796
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
1797
|
+
...props,
|
|
1798
|
+
children: [
|
|
1799
|
+
children,
|
|
1800
|
+
" ",
|
|
1801
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1802
|
+
lucideReact.ChevronDownIcon,
|
|
1803
|
+
{
|
|
1804
|
+
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1805
|
+
"aria-hidden": "true"
|
|
1806
|
+
}
|
|
1807
|
+
)
|
|
1808
|
+
]
|
|
2156
1809
|
}
|
|
2157
1810
|
);
|
|
2158
1811
|
}
|
|
2159
|
-
function
|
|
2160
|
-
|
|
1812
|
+
function NavigationMenuContent({
|
|
1813
|
+
className,
|
|
1814
|
+
...props
|
|
1815
|
+
}) {
|
|
2161
1816
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2162
|
-
|
|
1817
|
+
NavigationMenuPrimitive__namespace.Content,
|
|
2163
1818
|
{
|
|
2164
|
-
"data-slot": "
|
|
2165
|
-
|
|
2166
|
-
|
|
1819
|
+
"data-slot": "navigation-menu-content",
|
|
1820
|
+
className: cn(
|
|
1821
|
+
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
|
|
1822
|
+
"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
|
|
1823
|
+
className
|
|
1824
|
+
),
|
|
2167
1825
|
...props
|
|
2168
1826
|
}
|
|
2169
1827
|
);
|
|
2170
1828
|
}
|
|
2171
|
-
function
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
return null;
|
|
2176
|
-
}
|
|
1829
|
+
function NavigationMenuViewport({
|
|
1830
|
+
className,
|
|
1831
|
+
...props
|
|
1832
|
+
}) {
|
|
2177
1833
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2178
|
-
"
|
|
1834
|
+
"div",
|
|
2179
1835
|
{
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
1836
|
+
className: cn(
|
|
1837
|
+
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
1838
|
+
),
|
|
1839
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1840
|
+
NavigationMenuPrimitive__namespace.Viewport,
|
|
1841
|
+
{
|
|
1842
|
+
"data-slot": "navigation-menu-viewport",
|
|
1843
|
+
className: cn(
|
|
1844
|
+
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
1845
|
+
className
|
|
1846
|
+
),
|
|
1847
|
+
...props
|
|
1848
|
+
}
|
|
1849
|
+
)
|
|
2185
1850
|
}
|
|
2186
1851
|
);
|
|
2187
1852
|
}
|
|
2188
|
-
function
|
|
2189
|
-
...props
|
|
2190
|
-
}) {
|
|
2191
|
-
return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Root, { "data-slot": "hover-card", ...props });
|
|
2192
|
-
}
|
|
2193
|
-
function HoverCardTrigger({
|
|
2194
|
-
...props
|
|
2195
|
-
}) {
|
|
2196
|
-
return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Trigger, { "data-slot": "hover-card-trigger", ...props });
|
|
2197
|
-
}
|
|
2198
|
-
function HoverCardContent({
|
|
1853
|
+
function NavigationMenuLink({
|
|
2199
1854
|
className,
|
|
2200
|
-
align = "center",
|
|
2201
|
-
sideOffset = 4,
|
|
2202
1855
|
...props
|
|
2203
1856
|
}) {
|
|
2204
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2205
|
-
|
|
1857
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1858
|
+
NavigationMenuPrimitive__namespace.Link,
|
|
2206
1859
|
{
|
|
2207
|
-
"data-slot": "
|
|
2208
|
-
align,
|
|
2209
|
-
sideOffset,
|
|
1860
|
+
"data-slot": "navigation-menu-link",
|
|
2210
1861
|
className: cn(
|
|
2211
|
-
"
|
|
1862
|
+
"relative data-[active=true]:bg-tertiary/50 data-[active=true]:text-tertiary-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4 after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full",
|
|
2212
1863
|
className
|
|
2213
1864
|
),
|
|
2214
1865
|
...props
|
|
2215
1866
|
}
|
|
2216
|
-
)
|
|
1867
|
+
);
|
|
2217
1868
|
}
|
|
2218
|
-
function
|
|
1869
|
+
function NavigationMenuIndicator({
|
|
1870
|
+
className,
|
|
1871
|
+
...props
|
|
1872
|
+
}) {
|
|
2219
1873
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2220
|
-
|
|
1874
|
+
NavigationMenuPrimitive__namespace.Indicator,
|
|
2221
1875
|
{
|
|
2222
|
-
|
|
2223
|
-
"data-slot": "input",
|
|
1876
|
+
"data-slot": "navigation-menu-indicator",
|
|
2224
1877
|
className: cn(
|
|
2225
|
-
"
|
|
2226
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
2227
|
-
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
1878
|
+
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
|
|
2228
1879
|
className
|
|
2229
1880
|
),
|
|
2230
|
-
...props
|
|
1881
|
+
...props,
|
|
1882
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
2231
1883
|
}
|
|
2232
1884
|
);
|
|
2233
1885
|
}
|
|
2234
|
-
function
|
|
1886
|
+
function Progress({
|
|
2235
1887
|
className,
|
|
2236
|
-
|
|
1888
|
+
value,
|
|
2237
1889
|
...props
|
|
2238
1890
|
}) {
|
|
2239
1891
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2240
|
-
|
|
1892
|
+
ProgressPrimitive__namespace.Root,
|
|
2241
1893
|
{
|
|
2242
|
-
"data-slot": "
|
|
2243
|
-
|
|
2244
|
-
"
|
|
2245
|
-
|
|
1894
|
+
"data-slot": "progress",
|
|
1895
|
+
className: cn(
|
|
1896
|
+
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
1897
|
+
className
|
|
2246
1898
|
),
|
|
2247
|
-
|
|
2248
|
-
|
|
1899
|
+
...props,
|
|
1900
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1901
|
+
ProgressPrimitive__namespace.Indicator,
|
|
1902
|
+
{
|
|
1903
|
+
"data-slot": "progress-indicator",
|
|
1904
|
+
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
1905
|
+
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
1906
|
+
}
|
|
1907
|
+
)
|
|
2249
1908
|
}
|
|
2250
1909
|
);
|
|
2251
1910
|
}
|
|
2252
|
-
function
|
|
1911
|
+
function RadioGroup({
|
|
1912
|
+
className,
|
|
1913
|
+
...props
|
|
1914
|
+
}) {
|
|
2253
1915
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2254
|
-
|
|
1916
|
+
RadioGroupPrimitive__namespace.Root,
|
|
2255
1917
|
{
|
|
2256
|
-
"data-slot": "
|
|
2257
|
-
className: cn("
|
|
1918
|
+
"data-slot": "radio-group",
|
|
1919
|
+
className: cn("grid gap-3", className),
|
|
2258
1920
|
...props
|
|
2259
1921
|
}
|
|
2260
1922
|
);
|
|
2261
1923
|
}
|
|
2262
|
-
function
|
|
2263
|
-
index,
|
|
1924
|
+
function RadioGroupItem({
|
|
2264
1925
|
className,
|
|
2265
1926
|
...props
|
|
2266
1927
|
}) {
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2270
|
-
"div",
|
|
1928
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1929
|
+
RadioGroupPrimitive__namespace.Item,
|
|
2271
1930
|
{
|
|
2272
|
-
"data-slot": "
|
|
2273
|
-
"data-active": isActive,
|
|
1931
|
+
"data-slot": "radio-group-item",
|
|
2274
1932
|
className: cn(
|
|
2275
|
-
"
|
|
1933
|
+
"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
2276
1934
|
className
|
|
2277
1935
|
),
|
|
2278
1936
|
...props,
|
|
2279
|
-
children:
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
1937
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1938
|
+
RadioGroupPrimitive__namespace.Indicator,
|
|
1939
|
+
{
|
|
1940
|
+
"data-slot": "radio-group-indicator",
|
|
1941
|
+
className: "relative flex items-center justify-center",
|
|
1942
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
|
|
1943
|
+
}
|
|
1944
|
+
)
|
|
2283
1945
|
}
|
|
2284
1946
|
);
|
|
2285
1947
|
}
|
|
2286
|
-
function
|
|
2287
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MinusIcon, {}) });
|
|
2288
|
-
}
|
|
2289
|
-
function Menubar({
|
|
1948
|
+
function ScrollArea({
|
|
2290
1949
|
className,
|
|
1950
|
+
children,
|
|
2291
1951
|
...props
|
|
2292
1952
|
}) {
|
|
2293
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2294
|
-
|
|
1953
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1954
|
+
ScrollAreaPrimitive__namespace.Root,
|
|
2295
1955
|
{
|
|
2296
|
-
"data-slot": "
|
|
2297
|
-
className: cn(
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
1956
|
+
"data-slot": "scroll-area",
|
|
1957
|
+
className: cn("relative", className),
|
|
1958
|
+
...props,
|
|
1959
|
+
children: [
|
|
1960
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1961
|
+
ScrollAreaPrimitive__namespace.Viewport,
|
|
1962
|
+
{
|
|
1963
|
+
"data-slot": "scroll-area-viewport",
|
|
1964
|
+
className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
|
|
1965
|
+
children
|
|
1966
|
+
}
|
|
1967
|
+
),
|
|
1968
|
+
/* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
|
|
1969
|
+
/* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
|
|
1970
|
+
]
|
|
2302
1971
|
}
|
|
2303
1972
|
);
|
|
2304
1973
|
}
|
|
2305
|
-
function
|
|
1974
|
+
function ScrollBar({
|
|
1975
|
+
className,
|
|
1976
|
+
orientation = "vertical",
|
|
2306
1977
|
...props
|
|
2307
1978
|
}) {
|
|
2308
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1979
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1980
|
+
ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
|
|
1981
|
+
{
|
|
1982
|
+
"data-slot": "scroll-area-scrollbar",
|
|
1983
|
+
orientation,
|
|
1984
|
+
className: cn(
|
|
1985
|
+
"flex touch-none p-px transition-colors select-none",
|
|
1986
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
|
|
1987
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
|
|
1988
|
+
className
|
|
1989
|
+
),
|
|
1990
|
+
...props,
|
|
1991
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1992
|
+
ScrollAreaPrimitive__namespace.ScrollAreaThumb,
|
|
1993
|
+
{
|
|
1994
|
+
"data-slot": "scroll-area-thumb",
|
|
1995
|
+
className: "bg-border relative flex-1 rounded-full"
|
|
1996
|
+
}
|
|
1997
|
+
)
|
|
1998
|
+
}
|
|
1999
|
+
);
|
|
2309
2000
|
}
|
|
2310
|
-
function
|
|
2001
|
+
function Select({
|
|
2311
2002
|
...props
|
|
2312
2003
|
}) {
|
|
2313
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2004
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
|
|
2314
2005
|
}
|
|
2315
|
-
function
|
|
2006
|
+
function SelectGroup({
|
|
2316
2007
|
...props
|
|
2317
2008
|
}) {
|
|
2318
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2009
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
|
|
2319
2010
|
}
|
|
2320
|
-
function
|
|
2011
|
+
function SelectValue({
|
|
2321
2012
|
...props
|
|
2322
2013
|
}) {
|
|
2323
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2014
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
|
|
2324
2015
|
}
|
|
2325
|
-
function
|
|
2016
|
+
function SelectTrigger({
|
|
2326
2017
|
className,
|
|
2018
|
+
size = "default",
|
|
2019
|
+
children,
|
|
2327
2020
|
...props
|
|
2328
2021
|
}) {
|
|
2329
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2330
|
-
|
|
2022
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2023
|
+
SelectPrimitive__namespace.Trigger,
|
|
2331
2024
|
{
|
|
2332
|
-
"data-slot": "
|
|
2025
|
+
"data-slot": "select-trigger",
|
|
2026
|
+
"data-size": size,
|
|
2333
2027
|
className: cn(
|
|
2334
|
-
"
|
|
2028
|
+
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2335
2029
|
className
|
|
2336
2030
|
),
|
|
2337
|
-
...props
|
|
2031
|
+
...props,
|
|
2032
|
+
children: [
|
|
2033
|
+
children,
|
|
2034
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
2035
|
+
]
|
|
2338
2036
|
}
|
|
2339
2037
|
);
|
|
2340
2038
|
}
|
|
2341
|
-
function
|
|
2039
|
+
function SelectContent({
|
|
2342
2040
|
className,
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2041
|
+
children,
|
|
2042
|
+
position = "item-aligned",
|
|
2043
|
+
align = "center",
|
|
2346
2044
|
...props
|
|
2347
2045
|
}) {
|
|
2348
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2349
|
-
|
|
2046
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2047
|
+
SelectPrimitive__namespace.Content,
|
|
2350
2048
|
{
|
|
2351
|
-
"data-slot": "
|
|
2352
|
-
align,
|
|
2353
|
-
alignOffset,
|
|
2354
|
-
sideOffset,
|
|
2049
|
+
"data-slot": "select-content",
|
|
2355
2050
|
className: cn(
|
|
2356
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[
|
|
2051
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
2052
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
2357
2053
|
className
|
|
2358
2054
|
),
|
|
2359
|
-
|
|
2055
|
+
position,
|
|
2056
|
+
align,
|
|
2057
|
+
...props,
|
|
2058
|
+
children: [
|
|
2059
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
|
|
2060
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2061
|
+
SelectPrimitive__namespace.Viewport,
|
|
2062
|
+
{
|
|
2063
|
+
className: cn(
|
|
2064
|
+
"p-1",
|
|
2065
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
2066
|
+
),
|
|
2067
|
+
children
|
|
2068
|
+
}
|
|
2069
|
+
),
|
|
2070
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
|
|
2071
|
+
]
|
|
2360
2072
|
}
|
|
2361
2073
|
) });
|
|
2362
2074
|
}
|
|
2363
|
-
function
|
|
2075
|
+
function SelectLabel({
|
|
2364
2076
|
className,
|
|
2365
|
-
inset,
|
|
2366
|
-
variant = "default",
|
|
2367
2077
|
...props
|
|
2368
2078
|
}) {
|
|
2369
2079
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2370
|
-
|
|
2080
|
+
SelectPrimitive__namespace.Label,
|
|
2371
2081
|
{
|
|
2372
|
-
"data-slot": "
|
|
2373
|
-
"
|
|
2374
|
-
"data-variant": variant,
|
|
2375
|
-
className: cn(
|
|
2376
|
-
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2377
|
-
className
|
|
2378
|
-
),
|
|
2082
|
+
"data-slot": "select-label",
|
|
2083
|
+
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
2379
2084
|
...props
|
|
2380
2085
|
}
|
|
2381
2086
|
);
|
|
2382
2087
|
}
|
|
2383
|
-
function
|
|
2088
|
+
function SelectItem({
|
|
2384
2089
|
className,
|
|
2385
2090
|
children,
|
|
2386
|
-
checked,
|
|
2387
2091
|
...props
|
|
2388
2092
|
}) {
|
|
2389
2093
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2390
|
-
|
|
2094
|
+
SelectPrimitive__namespace.Item,
|
|
2391
2095
|
{
|
|
2392
|
-
"data-slot": "
|
|
2096
|
+
"data-slot": "select-item",
|
|
2393
2097
|
className: cn(
|
|
2394
|
-
"focus:bg-
|
|
2098
|
+
"focus:bg-tertiary focus:text-tertiary-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
2395
2099
|
className
|
|
2396
2100
|
),
|
|
2397
|
-
checked,
|
|
2398
2101
|
...props,
|
|
2399
2102
|
children: [
|
|
2400
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2401
|
-
|
|
2103
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2104
|
+
"span",
|
|
2105
|
+
{
|
|
2106
|
+
"data-slot": "select-item-indicator",
|
|
2107
|
+
className: "absolute right-2 flex size-3.5 items-center justify-center",
|
|
2108
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) })
|
|
2109
|
+
}
|
|
2110
|
+
),
|
|
2111
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
2402
2112
|
]
|
|
2403
2113
|
}
|
|
2404
2114
|
);
|
|
2405
2115
|
}
|
|
2406
|
-
function
|
|
2116
|
+
function SelectSeparator({
|
|
2407
2117
|
className,
|
|
2408
|
-
children,
|
|
2409
2118
|
...props
|
|
2410
2119
|
}) {
|
|
2411
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2412
|
-
|
|
2120
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2121
|
+
SelectPrimitive__namespace.Separator,
|
|
2413
2122
|
{
|
|
2414
|
-
"data-slot": "
|
|
2415
|
-
className: cn(
|
|
2416
|
-
|
|
2417
|
-
className
|
|
2418
|
-
),
|
|
2419
|
-
...props,
|
|
2420
|
-
children: [
|
|
2421
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
|
|
2422
|
-
children
|
|
2423
|
-
]
|
|
2123
|
+
"data-slot": "select-separator",
|
|
2124
|
+
className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
|
|
2125
|
+
...props
|
|
2424
2126
|
}
|
|
2425
2127
|
);
|
|
2426
2128
|
}
|
|
2427
|
-
function
|
|
2129
|
+
function SelectScrollUpButton({
|
|
2428
2130
|
className,
|
|
2429
|
-
inset,
|
|
2430
2131
|
...props
|
|
2431
2132
|
}) {
|
|
2432
2133
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2433
|
-
|
|
2134
|
+
SelectPrimitive__namespace.ScrollUpButton,
|
|
2434
2135
|
{
|
|
2435
|
-
"data-slot": "
|
|
2436
|
-
"data-inset": inset,
|
|
2136
|
+
"data-slot": "select-scroll-up-button",
|
|
2437
2137
|
className: cn(
|
|
2438
|
-
"
|
|
2138
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2439
2139
|
className
|
|
2440
2140
|
),
|
|
2441
|
-
...props
|
|
2141
|
+
...props,
|
|
2142
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
|
|
2442
2143
|
}
|
|
2443
2144
|
);
|
|
2444
2145
|
}
|
|
2445
|
-
function
|
|
2146
|
+
function SelectScrollDownButton({
|
|
2446
2147
|
className,
|
|
2447
2148
|
...props
|
|
2448
2149
|
}) {
|
|
2449
2150
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2450
|
-
|
|
2151
|
+
SelectPrimitive__namespace.ScrollDownButton,
|
|
2451
2152
|
{
|
|
2452
|
-
"data-slot": "
|
|
2453
|
-
className: cn(
|
|
2454
|
-
|
|
2153
|
+
"data-slot": "select-scroll-down-button",
|
|
2154
|
+
className: cn(
|
|
2155
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2156
|
+
className
|
|
2157
|
+
),
|
|
2158
|
+
...props,
|
|
2159
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
|
|
2455
2160
|
}
|
|
2456
2161
|
);
|
|
2457
2162
|
}
|
|
2458
|
-
function
|
|
2163
|
+
function Separator({
|
|
2459
2164
|
className,
|
|
2165
|
+
orientation = "horizontal",
|
|
2166
|
+
decorative = true,
|
|
2460
2167
|
...props
|
|
2461
2168
|
}) {
|
|
2462
2169
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2463
|
-
|
|
2170
|
+
SeparatorPrimitive__namespace.Root,
|
|
2464
2171
|
{
|
|
2465
|
-
"data-slot": "
|
|
2172
|
+
"data-slot": "separator",
|
|
2173
|
+
decorative,
|
|
2174
|
+
orientation,
|
|
2466
2175
|
className: cn(
|
|
2467
|
-
"
|
|
2176
|
+
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
2468
2177
|
className
|
|
2469
2178
|
),
|
|
2470
2179
|
...props
|
|
2471
2180
|
}
|
|
2472
2181
|
);
|
|
2473
2182
|
}
|
|
2474
|
-
function
|
|
2183
|
+
function Sheet({ ...props }) {
|
|
2184
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "sheet", ...props });
|
|
2185
|
+
}
|
|
2186
|
+
function SheetTrigger({
|
|
2475
2187
|
...props
|
|
2476
2188
|
}) {
|
|
2477
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2189
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
2478
2190
|
}
|
|
2479
|
-
function
|
|
2480
|
-
className,
|
|
2481
|
-
inset,
|
|
2482
|
-
children,
|
|
2191
|
+
function SheetClose({
|
|
2483
2192
|
...props
|
|
2484
2193
|
}) {
|
|
2485
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2486
|
-
MenubarPrimitive__namespace.SubTrigger,
|
|
2487
|
-
{
|
|
2488
|
-
"data-slot": "menubar-sub-trigger",
|
|
2489
|
-
"data-inset": inset,
|
|
2490
|
-
className: cn(
|
|
2491
|
-
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
|
|
2492
|
-
className
|
|
2493
|
-
),
|
|
2494
|
-
...props,
|
|
2495
|
-
children: [
|
|
2496
|
-
children,
|
|
2497
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
|
|
2498
|
-
]
|
|
2499
|
-
}
|
|
2500
|
-
);
|
|
2194
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "sheet-close", ...props });
|
|
2501
2195
|
}
|
|
2502
|
-
function
|
|
2196
|
+
function SheetPortal({
|
|
2197
|
+
...props
|
|
2198
|
+
}) {
|
|
2199
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
|
|
2200
|
+
}
|
|
2201
|
+
function SheetOverlay({
|
|
2503
2202
|
className,
|
|
2504
2203
|
...props
|
|
2505
2204
|
}) {
|
|
2506
2205
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2507
|
-
|
|
2206
|
+
DialogPrimitive__namespace.Overlay,
|
|
2508
2207
|
{
|
|
2509
|
-
"data-slot": "
|
|
2208
|
+
"data-slot": "sheet-overlay",
|
|
2510
2209
|
className: cn(
|
|
2511
|
-
"
|
|
2210
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
2512
2211
|
className
|
|
2513
2212
|
),
|
|
2514
2213
|
...props
|
|
2515
2214
|
}
|
|
2516
2215
|
);
|
|
2517
2216
|
}
|
|
2518
|
-
function
|
|
2217
|
+
function SheetContent({
|
|
2519
2218
|
className,
|
|
2520
2219
|
children,
|
|
2521
|
-
|
|
2220
|
+
side = "right",
|
|
2522
2221
|
...props
|
|
2523
2222
|
}) {
|
|
2524
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2223
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
|
|
2224
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
|
|
2225
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2226
|
+
DialogPrimitive__namespace.Content,
|
|
2227
|
+
{
|
|
2228
|
+
"data-slot": "sheet-content",
|
|
2229
|
+
className: cn(
|
|
2230
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
2231
|
+
side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
|
|
2232
|
+
side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
|
|
2233
|
+
side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
|
|
2234
|
+
side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
|
|
2235
|
+
className
|
|
2236
|
+
),
|
|
2237
|
+
...props,
|
|
2238
|
+
children: [
|
|
2239
|
+
children,
|
|
2240
|
+
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
|
|
2241
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-4" }),
|
|
2242
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
2243
|
+
] })
|
|
2244
|
+
]
|
|
2245
|
+
}
|
|
2246
|
+
)
|
|
2247
|
+
] });
|
|
2540
2248
|
}
|
|
2541
|
-
function
|
|
2542
|
-
className,
|
|
2543
|
-
...props
|
|
2544
|
-
}) {
|
|
2249
|
+
function SheetHeader({ className, ...props }) {
|
|
2545
2250
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2546
|
-
|
|
2251
|
+
"div",
|
|
2547
2252
|
{
|
|
2548
|
-
"data-slot": "
|
|
2549
|
-
className: cn(
|
|
2550
|
-
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
2551
|
-
className
|
|
2552
|
-
),
|
|
2253
|
+
"data-slot": "sheet-header",
|
|
2254
|
+
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
2553
2255
|
...props
|
|
2554
2256
|
}
|
|
2555
2257
|
);
|
|
2556
2258
|
}
|
|
2557
|
-
function
|
|
2558
|
-
className,
|
|
2559
|
-
...props
|
|
2560
|
-
}) {
|
|
2259
|
+
function SheetFooter({ className, ...props }) {
|
|
2561
2260
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2562
|
-
|
|
2261
|
+
"div",
|
|
2563
2262
|
{
|
|
2564
|
-
"data-slot": "
|
|
2565
|
-
className: cn("
|
|
2263
|
+
"data-slot": "sheet-footer",
|
|
2264
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
2566
2265
|
...props
|
|
2567
2266
|
}
|
|
2568
2267
|
);
|
|
2569
2268
|
}
|
|
2570
|
-
|
|
2571
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
|
|
2572
|
-
);
|
|
2573
|
-
function NavigationMenuTrigger({
|
|
2574
|
-
className,
|
|
2575
|
-
children,
|
|
2576
|
-
...props
|
|
2577
|
-
}) {
|
|
2578
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2579
|
-
NavigationMenuPrimitive__namespace.Trigger,
|
|
2580
|
-
{
|
|
2581
|
-
"data-slot": "navigation-menu-trigger",
|
|
2582
|
-
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
2583
|
-
...props,
|
|
2584
|
-
children: [
|
|
2585
|
-
children,
|
|
2586
|
-
" ",
|
|
2587
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2588
|
-
lucideReact.ChevronDownIcon,
|
|
2589
|
-
{
|
|
2590
|
-
className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
2591
|
-
"aria-hidden": "true"
|
|
2592
|
-
}
|
|
2593
|
-
)
|
|
2594
|
-
]
|
|
2595
|
-
}
|
|
2596
|
-
);
|
|
2597
|
-
}
|
|
2598
|
-
function NavigationMenuContent({
|
|
2269
|
+
function SheetTitle({
|
|
2599
2270
|
className,
|
|
2600
2271
|
...props
|
|
2601
2272
|
}) {
|
|
2602
2273
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2603
|
-
|
|
2274
|
+
DialogPrimitive__namespace.Title,
|
|
2604
2275
|
{
|
|
2605
|
-
"data-slot": "
|
|
2606
|
-
className: cn(
|
|
2607
|
-
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
|
|
2608
|
-
"group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
|
|
2609
|
-
className
|
|
2610
|
-
),
|
|
2276
|
+
"data-slot": "sheet-title",
|
|
2277
|
+
className: cn("text-foreground font-semibold", className),
|
|
2611
2278
|
...props
|
|
2612
2279
|
}
|
|
2613
2280
|
);
|
|
2614
2281
|
}
|
|
2615
|
-
function
|
|
2616
|
-
className,
|
|
2617
|
-
...props
|
|
2618
|
-
}) {
|
|
2619
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2620
|
-
"div",
|
|
2621
|
-
{
|
|
2622
|
-
className: cn(
|
|
2623
|
-
"absolute top-full left-0 isolate z-50 flex justify-center"
|
|
2624
|
-
),
|
|
2625
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2626
|
-
NavigationMenuPrimitive__namespace.Viewport,
|
|
2627
|
-
{
|
|
2628
|
-
"data-slot": "navigation-menu-viewport",
|
|
2629
|
-
className: cn(
|
|
2630
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
2631
|
-
className
|
|
2632
|
-
),
|
|
2633
|
-
...props
|
|
2634
|
-
}
|
|
2635
|
-
)
|
|
2636
|
-
}
|
|
2637
|
-
);
|
|
2638
|
-
}
|
|
2639
|
-
function NavigationMenuLink({
|
|
2282
|
+
function SheetDescription({
|
|
2640
2283
|
className,
|
|
2641
2284
|
...props
|
|
2642
2285
|
}) {
|
|
2643
2286
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2644
|
-
|
|
2287
|
+
DialogPrimitive__namespace.Description,
|
|
2645
2288
|
{
|
|
2646
|
-
"data-slot": "
|
|
2647
|
-
className: cn(
|
|
2648
|
-
"data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
|
|
2649
|
-
className
|
|
2650
|
-
),
|
|
2289
|
+
"data-slot": "sheet-description",
|
|
2290
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
2651
2291
|
...props
|
|
2652
2292
|
}
|
|
2653
2293
|
);
|
|
2654
2294
|
}
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2660
|
-
NavigationMenuPrimitive__namespace.Indicator,
|
|
2661
|
-
{
|
|
2662
|
-
"data-slot": "navigation-menu-indicator",
|
|
2663
|
-
className: cn(
|
|
2664
|
-
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
|
|
2665
|
-
className
|
|
2666
|
-
),
|
|
2667
|
-
...props,
|
|
2668
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
|
|
2669
|
-
}
|
|
2670
|
-
);
|
|
2671
|
-
}
|
|
2672
|
-
function Pagination({ className, ...props }) {
|
|
2673
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2674
|
-
"nav",
|
|
2675
|
-
{
|
|
2676
|
-
role: "navigation",
|
|
2677
|
-
"aria-label": "pagination",
|
|
2678
|
-
"data-slot": "pagination",
|
|
2679
|
-
className: cn("mx-auto flex w-full justify-center", className),
|
|
2680
|
-
...props
|
|
2681
|
-
}
|
|
2295
|
+
const MOBILE_BREAKPOINT = 768;
|
|
2296
|
+
function useIsMobile() {
|
|
2297
|
+
const [isMobile, setIsMobile] = React__namespace.useState(
|
|
2298
|
+
void 0
|
|
2682
2299
|
);
|
|
2300
|
+
React__namespace.useEffect(() => {
|
|
2301
|
+
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
2302
|
+
const onChange = () => {
|
|
2303
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
2304
|
+
};
|
|
2305
|
+
mql.addEventListener("change", onChange);
|
|
2306
|
+
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
2307
|
+
return () => mql.removeEventListener("change", onChange);
|
|
2308
|
+
}, []);
|
|
2309
|
+
return !!isMobile;
|
|
2683
2310
|
}
|
|
2684
|
-
function
|
|
2685
|
-
className,
|
|
2686
|
-
...props
|
|
2687
|
-
}) {
|
|
2311
|
+
function Skeleton({ className, ...props }) {
|
|
2688
2312
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2689
|
-
"
|
|
2313
|
+
"div",
|
|
2690
2314
|
{
|
|
2691
|
-
"data-slot": "
|
|
2692
|
-
className: cn("
|
|
2315
|
+
"data-slot": "skeleton",
|
|
2316
|
+
className: cn("bg-secondary animate-pulse rounded-md", className),
|
|
2693
2317
|
...props
|
|
2694
2318
|
}
|
|
2695
2319
|
);
|
|
2696
2320
|
}
|
|
2697
|
-
function
|
|
2698
|
-
|
|
2699
|
-
}
|
|
2700
|
-
function PaginationLink({
|
|
2701
|
-
className,
|
|
2702
|
-
isActive,
|
|
2703
|
-
size = "icon",
|
|
2321
|
+
function TooltipProvider({
|
|
2322
|
+
delayDuration = 0,
|
|
2704
2323
|
...props
|
|
2705
2324
|
}) {
|
|
2706
2325
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2707
|
-
|
|
2326
|
+
TooltipPrimitive__namespace.Provider,
|
|
2708
2327
|
{
|
|
2709
|
-
"
|
|
2710
|
-
|
|
2711
|
-
"data-active": isActive,
|
|
2712
|
-
className: cn(
|
|
2713
|
-
buttonVariants({
|
|
2714
|
-
variant: isActive ? "outline" : "ghost",
|
|
2715
|
-
size
|
|
2716
|
-
}),
|
|
2717
|
-
className
|
|
2718
|
-
),
|
|
2328
|
+
"data-slot": "tooltip-provider",
|
|
2329
|
+
delayDuration,
|
|
2719
2330
|
...props
|
|
2720
2331
|
}
|
|
2721
2332
|
);
|
|
2722
2333
|
}
|
|
2723
|
-
function
|
|
2724
|
-
className,
|
|
2334
|
+
function Tooltip({
|
|
2725
2335
|
...props
|
|
2726
2336
|
}) {
|
|
2727
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2728
|
-
PaginationLink,
|
|
2729
|
-
{
|
|
2730
|
-
"aria-label": "Go to previous page",
|
|
2731
|
-
size: "default",
|
|
2732
|
-
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
2733
|
-
...props,
|
|
2734
|
-
children: [
|
|
2735
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, {}),
|
|
2736
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Previous" })
|
|
2737
|
-
]
|
|
2738
|
-
}
|
|
2739
|
-
);
|
|
2337
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { "data-slot": "tooltip", ...props }) });
|
|
2740
2338
|
}
|
|
2741
|
-
function
|
|
2742
|
-
className,
|
|
2339
|
+
function TooltipTrigger({
|
|
2743
2340
|
...props
|
|
2744
2341
|
}) {
|
|
2745
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
2746
|
-
PaginationLink,
|
|
2747
|
-
{
|
|
2748
|
-
"aria-label": "Go to next page",
|
|
2749
|
-
size: "default",
|
|
2750
|
-
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
2751
|
-
...props,
|
|
2752
|
-
children: [
|
|
2753
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Next" }),
|
|
2754
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, {})
|
|
2755
|
-
]
|
|
2756
|
-
}
|
|
2757
|
-
);
|
|
2342
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
2758
2343
|
}
|
|
2759
|
-
function
|
|
2344
|
+
function TooltipContent({
|
|
2760
2345
|
className,
|
|
2346
|
+
sideOffset = 0,
|
|
2347
|
+
children,
|
|
2761
2348
|
...props
|
|
2762
2349
|
}) {
|
|
2763
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2764
|
-
|
|
2350
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2351
|
+
TooltipPrimitive__namespace.Content,
|
|
2765
2352
|
{
|
|
2766
|
-
"
|
|
2767
|
-
|
|
2768
|
-
className: cn(
|
|
2353
|
+
"data-slot": "tooltip-content",
|
|
2354
|
+
sideOffset,
|
|
2355
|
+
className: cn(
|
|
2356
|
+
"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
2357
|
+
className
|
|
2358
|
+
),
|
|
2769
2359
|
...props,
|
|
2770
2360
|
children: [
|
|
2771
|
-
|
|
2772
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2361
|
+
children,
|
|
2362
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
2773
2363
|
]
|
|
2774
2364
|
}
|
|
2775
|
-
);
|
|
2776
|
-
}
|
|
2777
|
-
function Popover({
|
|
2778
|
-
...props
|
|
2779
|
-
}) {
|
|
2780
|
-
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
|
|
2365
|
+
) });
|
|
2781
2366
|
}
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2367
|
+
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
2368
|
+
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
2369
|
+
const SIDEBAR_WIDTH = "16rem";
|
|
2370
|
+
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
2371
|
+
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
2372
|
+
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
2373
|
+
const SidebarContext = React__namespace.createContext(null);
|
|
2374
|
+
function useSidebar() {
|
|
2375
|
+
const context = React__namespace.useContext(SidebarContext);
|
|
2376
|
+
if (!context) {
|
|
2377
|
+
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
2378
|
+
}
|
|
2379
|
+
return context;
|
|
2786
2380
|
}
|
|
2787
|
-
function
|
|
2381
|
+
function SidebarProvider({
|
|
2382
|
+
defaultOpen = true,
|
|
2383
|
+
open: openProp,
|
|
2384
|
+
onOpenChange: setOpenProp,
|
|
2788
2385
|
className,
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
...props
|
|
2792
|
-
}) {
|
|
2793
|
-
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2794
|
-
PopoverPrimitive__namespace.Content,
|
|
2795
|
-
{
|
|
2796
|
-
"data-slot": "popover-content",
|
|
2797
|
-
align,
|
|
2798
|
-
sideOffset,
|
|
2799
|
-
className: cn(
|
|
2800
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
|
|
2801
|
-
className
|
|
2802
|
-
),
|
|
2803
|
-
...props
|
|
2804
|
-
}
|
|
2805
|
-
) });
|
|
2806
|
-
}
|
|
2807
|
-
function PopoverAnchor({
|
|
2808
|
-
...props
|
|
2809
|
-
}) {
|
|
2810
|
-
return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
|
|
2811
|
-
}
|
|
2812
|
-
function Progress({
|
|
2813
|
-
className,
|
|
2814
|
-
value,
|
|
2815
|
-
...props
|
|
2816
|
-
}) {
|
|
2817
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2818
|
-
ProgressPrimitive__namespace.Root,
|
|
2819
|
-
{
|
|
2820
|
-
"data-slot": "progress",
|
|
2821
|
-
className: cn(
|
|
2822
|
-
"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
|
|
2823
|
-
className
|
|
2824
|
-
),
|
|
2825
|
-
...props,
|
|
2826
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2827
|
-
ProgressPrimitive__namespace.Indicator,
|
|
2828
|
-
{
|
|
2829
|
-
"data-slot": "progress-indicator",
|
|
2830
|
-
className: "bg-primary h-full w-full flex-1 transition-all",
|
|
2831
|
-
style: { transform: `translateX(-${100 - (value || 0)}%)` }
|
|
2832
|
-
}
|
|
2833
|
-
)
|
|
2834
|
-
}
|
|
2835
|
-
);
|
|
2836
|
-
}
|
|
2837
|
-
function RadioGroup({
|
|
2838
|
-
className,
|
|
2839
|
-
...props
|
|
2840
|
-
}) {
|
|
2841
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2842
|
-
RadioGroupPrimitive__namespace.Root,
|
|
2843
|
-
{
|
|
2844
|
-
"data-slot": "radio-group",
|
|
2845
|
-
className: cn("grid gap-3", className),
|
|
2846
|
-
...props
|
|
2847
|
-
}
|
|
2848
|
-
);
|
|
2849
|
-
}
|
|
2850
|
-
function RadioGroupItem({
|
|
2851
|
-
className,
|
|
2852
|
-
...props
|
|
2853
|
-
}) {
|
|
2854
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2855
|
-
RadioGroupPrimitive__namespace.Item,
|
|
2856
|
-
{
|
|
2857
|
-
"data-slot": "radio-group-item",
|
|
2858
|
-
className: cn(
|
|
2859
|
-
"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
2860
|
-
className
|
|
2861
|
-
),
|
|
2862
|
-
...props,
|
|
2863
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2864
|
-
RadioGroupPrimitive__namespace.Indicator,
|
|
2865
|
-
{
|
|
2866
|
-
"data-slot": "radio-group-indicator",
|
|
2867
|
-
className: "relative flex items-center justify-center",
|
|
2868
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
|
|
2869
|
-
}
|
|
2870
|
-
)
|
|
2871
|
-
}
|
|
2872
|
-
);
|
|
2873
|
-
}
|
|
2874
|
-
function ResizablePanelGroup({
|
|
2875
|
-
className,
|
|
2876
|
-
...props
|
|
2877
|
-
}) {
|
|
2878
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2879
|
-
reactResizablePanels.Group,
|
|
2880
|
-
{
|
|
2881
|
-
"data-slot": "resizable-panel-group",
|
|
2882
|
-
className: cn(
|
|
2883
|
-
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
|
2884
|
-
className
|
|
2885
|
-
),
|
|
2886
|
-
...props
|
|
2887
|
-
}
|
|
2888
|
-
);
|
|
2889
|
-
}
|
|
2890
|
-
function ResizablePanel({ ...props }) {
|
|
2891
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactResizablePanels.Panel, { "data-slot": "resizable-panel", ...props });
|
|
2892
|
-
}
|
|
2893
|
-
function ResizableHandle({
|
|
2894
|
-
withHandle,
|
|
2895
|
-
className,
|
|
2896
|
-
...props
|
|
2897
|
-
}) {
|
|
2898
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2899
|
-
reactResizablePanels.Separator,
|
|
2900
|
-
{
|
|
2901
|
-
"data-slot": "resizable-handle",
|
|
2902
|
-
className: cn(
|
|
2903
|
-
"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
|
2904
|
-
className
|
|
2905
|
-
),
|
|
2906
|
-
...props,
|
|
2907
|
-
children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVerticalIcon, { className: "size-2.5" }) })
|
|
2908
|
-
}
|
|
2909
|
-
);
|
|
2910
|
-
}
|
|
2911
|
-
function ScrollArea({
|
|
2912
|
-
className,
|
|
2913
|
-
children,
|
|
2914
|
-
...props
|
|
2915
|
-
}) {
|
|
2916
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2917
|
-
ScrollAreaPrimitive__namespace.Root,
|
|
2918
|
-
{
|
|
2919
|
-
"data-slot": "scroll-area",
|
|
2920
|
-
className: cn("relative", className),
|
|
2921
|
-
...props,
|
|
2922
|
-
children: [
|
|
2923
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2924
|
-
ScrollAreaPrimitive__namespace.Viewport,
|
|
2925
|
-
{
|
|
2926
|
-
"data-slot": "scroll-area-viewport",
|
|
2927
|
-
className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
|
|
2928
|
-
children
|
|
2929
|
-
}
|
|
2930
|
-
),
|
|
2931
|
-
/* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
|
|
2932
|
-
/* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
|
|
2933
|
-
]
|
|
2934
|
-
}
|
|
2935
|
-
);
|
|
2936
|
-
}
|
|
2937
|
-
function ScrollBar({
|
|
2938
|
-
className,
|
|
2939
|
-
orientation = "vertical",
|
|
2940
|
-
...props
|
|
2941
|
-
}) {
|
|
2942
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2943
|
-
ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
|
|
2944
|
-
{
|
|
2945
|
-
"data-slot": "scroll-area-scrollbar",
|
|
2946
|
-
orientation,
|
|
2947
|
-
className: cn(
|
|
2948
|
-
"flex touch-none p-px transition-colors select-none",
|
|
2949
|
-
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
|
|
2950
|
-
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
|
|
2951
|
-
className
|
|
2952
|
-
),
|
|
2953
|
-
...props,
|
|
2954
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2955
|
-
ScrollAreaPrimitive__namespace.ScrollAreaThumb,
|
|
2956
|
-
{
|
|
2957
|
-
"data-slot": "scroll-area-thumb",
|
|
2958
|
-
className: "bg-border relative flex-1 rounded-full"
|
|
2959
|
-
}
|
|
2960
|
-
)
|
|
2961
|
-
}
|
|
2962
|
-
);
|
|
2963
|
-
}
|
|
2964
|
-
function Select({
|
|
2965
|
-
...props
|
|
2966
|
-
}) {
|
|
2967
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
|
|
2968
|
-
}
|
|
2969
|
-
function SelectGroup({
|
|
2970
|
-
...props
|
|
2971
|
-
}) {
|
|
2972
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
|
|
2973
|
-
}
|
|
2974
|
-
function SelectValue({
|
|
2975
|
-
...props
|
|
2976
|
-
}) {
|
|
2977
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
|
|
2978
|
-
}
|
|
2979
|
-
function SelectTrigger({
|
|
2980
|
-
className,
|
|
2981
|
-
size = "default",
|
|
2982
|
-
children,
|
|
2983
|
-
...props
|
|
2984
|
-
}) {
|
|
2985
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2986
|
-
SelectPrimitive__namespace.Trigger,
|
|
2987
|
-
{
|
|
2988
|
-
"data-slot": "select-trigger",
|
|
2989
|
-
"data-size": size,
|
|
2990
|
-
className: cn(
|
|
2991
|
-
"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2992
|
-
className
|
|
2993
|
-
),
|
|
2994
|
-
...props,
|
|
2995
|
-
children: [
|
|
2996
|
-
children,
|
|
2997
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4 opacity-50" }) })
|
|
2998
|
-
]
|
|
2999
|
-
}
|
|
3000
|
-
);
|
|
3001
|
-
}
|
|
3002
|
-
function SelectContent({
|
|
3003
|
-
className,
|
|
3004
|
-
children,
|
|
3005
|
-
position = "item-aligned",
|
|
3006
|
-
align = "center",
|
|
3007
|
-
...props
|
|
3008
|
-
}) {
|
|
3009
|
-
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3010
|
-
SelectPrimitive__namespace.Content,
|
|
3011
|
-
{
|
|
3012
|
-
"data-slot": "select-content",
|
|
3013
|
-
className: cn(
|
|
3014
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
|
|
3015
|
-
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
3016
|
-
className
|
|
3017
|
-
),
|
|
3018
|
-
position,
|
|
3019
|
-
align,
|
|
3020
|
-
...props,
|
|
3021
|
-
children: [
|
|
3022
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
|
|
3023
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3024
|
-
SelectPrimitive__namespace.Viewport,
|
|
3025
|
-
{
|
|
3026
|
-
className: cn(
|
|
3027
|
-
"p-1",
|
|
3028
|
-
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
|
|
3029
|
-
),
|
|
3030
|
-
children
|
|
3031
|
-
}
|
|
3032
|
-
),
|
|
3033
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
|
|
3034
|
-
]
|
|
3035
|
-
}
|
|
3036
|
-
) });
|
|
3037
|
-
}
|
|
3038
|
-
function SelectLabel({
|
|
3039
|
-
className,
|
|
3040
|
-
...props
|
|
3041
|
-
}) {
|
|
3042
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3043
|
-
SelectPrimitive__namespace.Label,
|
|
3044
|
-
{
|
|
3045
|
-
"data-slot": "select-label",
|
|
3046
|
-
className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
3047
|
-
...props
|
|
3048
|
-
}
|
|
3049
|
-
);
|
|
3050
|
-
}
|
|
3051
|
-
function SelectItem({
|
|
3052
|
-
className,
|
|
3053
|
-
children,
|
|
3054
|
-
...props
|
|
3055
|
-
}) {
|
|
3056
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3057
|
-
SelectPrimitive__namespace.Item,
|
|
3058
|
-
{
|
|
3059
|
-
"data-slot": "select-item",
|
|
3060
|
-
className: cn(
|
|
3061
|
-
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
3062
|
-
className
|
|
3063
|
-
),
|
|
3064
|
-
...props,
|
|
3065
|
-
children: [
|
|
3066
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3067
|
-
"span",
|
|
3068
|
-
{
|
|
3069
|
-
"data-slot": "select-item-indicator",
|
|
3070
|
-
className: "absolute right-2 flex size-3.5 items-center justify-center",
|
|
3071
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) })
|
|
3072
|
-
}
|
|
3073
|
-
),
|
|
3074
|
-
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
3075
|
-
]
|
|
3076
|
-
}
|
|
3077
|
-
);
|
|
3078
|
-
}
|
|
3079
|
-
function SelectSeparator({
|
|
3080
|
-
className,
|
|
3081
|
-
...props
|
|
3082
|
-
}) {
|
|
3083
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3084
|
-
SelectPrimitive__namespace.Separator,
|
|
3085
|
-
{
|
|
3086
|
-
"data-slot": "select-separator",
|
|
3087
|
-
className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
|
|
3088
|
-
...props
|
|
3089
|
-
}
|
|
3090
|
-
);
|
|
3091
|
-
}
|
|
3092
|
-
function SelectScrollUpButton({
|
|
3093
|
-
className,
|
|
3094
|
-
...props
|
|
3095
|
-
}) {
|
|
3096
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3097
|
-
SelectPrimitive__namespace.ScrollUpButton,
|
|
3098
|
-
{
|
|
3099
|
-
"data-slot": "select-scroll-up-button",
|
|
3100
|
-
className: cn(
|
|
3101
|
-
"flex cursor-default items-center justify-center py-1",
|
|
3102
|
-
className
|
|
3103
|
-
),
|
|
3104
|
-
...props,
|
|
3105
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
|
|
3106
|
-
}
|
|
3107
|
-
);
|
|
3108
|
-
}
|
|
3109
|
-
function SelectScrollDownButton({
|
|
3110
|
-
className,
|
|
3111
|
-
...props
|
|
3112
|
-
}) {
|
|
3113
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3114
|
-
SelectPrimitive__namespace.ScrollDownButton,
|
|
3115
|
-
{
|
|
3116
|
-
"data-slot": "select-scroll-down-button",
|
|
3117
|
-
className: cn(
|
|
3118
|
-
"flex cursor-default items-center justify-center py-1",
|
|
3119
|
-
className
|
|
3120
|
-
),
|
|
3121
|
-
...props,
|
|
3122
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
|
|
3123
|
-
}
|
|
3124
|
-
);
|
|
3125
|
-
}
|
|
3126
|
-
function Separator({
|
|
3127
|
-
className,
|
|
3128
|
-
orientation = "horizontal",
|
|
3129
|
-
decorative = true,
|
|
3130
|
-
...props
|
|
3131
|
-
}) {
|
|
3132
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3133
|
-
SeparatorPrimitive__namespace.Root,
|
|
3134
|
-
{
|
|
3135
|
-
"data-slot": "separator",
|
|
3136
|
-
decorative,
|
|
3137
|
-
orientation,
|
|
3138
|
-
className: cn(
|
|
3139
|
-
"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
3140
|
-
className
|
|
3141
|
-
),
|
|
3142
|
-
...props
|
|
3143
|
-
}
|
|
3144
|
-
);
|
|
3145
|
-
}
|
|
3146
|
-
function Sheet({ ...props }) {
|
|
3147
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "sheet", ...props });
|
|
3148
|
-
}
|
|
3149
|
-
function SheetTrigger({
|
|
3150
|
-
...props
|
|
3151
|
-
}) {
|
|
3152
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
3153
|
-
}
|
|
3154
|
-
function SheetClose({
|
|
3155
|
-
...props
|
|
3156
|
-
}) {
|
|
3157
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "sheet-close", ...props });
|
|
3158
|
-
}
|
|
3159
|
-
function SheetPortal({
|
|
3160
|
-
...props
|
|
3161
|
-
}) {
|
|
3162
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
|
|
3163
|
-
}
|
|
3164
|
-
function SheetOverlay({
|
|
3165
|
-
className,
|
|
3166
|
-
...props
|
|
3167
|
-
}) {
|
|
3168
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3169
|
-
DialogPrimitive__namespace.Overlay,
|
|
3170
|
-
{
|
|
3171
|
-
"data-slot": "sheet-overlay",
|
|
3172
|
-
className: cn(
|
|
3173
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
3174
|
-
className
|
|
3175
|
-
),
|
|
3176
|
-
...props
|
|
3177
|
-
}
|
|
3178
|
-
);
|
|
3179
|
-
}
|
|
3180
|
-
function SheetContent({
|
|
3181
|
-
className,
|
|
3182
|
-
children,
|
|
3183
|
-
side = "right",
|
|
3184
|
-
...props
|
|
3185
|
-
}) {
|
|
3186
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
|
|
3187
|
-
/* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
|
|
3188
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3189
|
-
DialogPrimitive__namespace.Content,
|
|
3190
|
-
{
|
|
3191
|
-
"data-slot": "sheet-content",
|
|
3192
|
-
className: cn(
|
|
3193
|
-
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
3194
|
-
side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
|
|
3195
|
-
side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
|
|
3196
|
-
side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
|
|
3197
|
-
side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
|
|
3198
|
-
className
|
|
3199
|
-
),
|
|
3200
|
-
...props,
|
|
3201
|
-
children: [
|
|
3202
|
-
children,
|
|
3203
|
-
/* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
|
|
3204
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-4" }),
|
|
3205
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
3206
|
-
] })
|
|
3207
|
-
]
|
|
3208
|
-
}
|
|
3209
|
-
)
|
|
3210
|
-
] });
|
|
3211
|
-
}
|
|
3212
|
-
function SheetHeader({ className, ...props }) {
|
|
3213
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3214
|
-
"div",
|
|
3215
|
-
{
|
|
3216
|
-
"data-slot": "sheet-header",
|
|
3217
|
-
className: cn("flex flex-col gap-1.5 p-4", className),
|
|
3218
|
-
...props
|
|
3219
|
-
}
|
|
3220
|
-
);
|
|
3221
|
-
}
|
|
3222
|
-
function SheetFooter({ className, ...props }) {
|
|
3223
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3224
|
-
"div",
|
|
3225
|
-
{
|
|
3226
|
-
"data-slot": "sheet-footer",
|
|
3227
|
-
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
3228
|
-
...props
|
|
3229
|
-
}
|
|
3230
|
-
);
|
|
3231
|
-
}
|
|
3232
|
-
function SheetTitle({
|
|
3233
|
-
className,
|
|
3234
|
-
...props
|
|
3235
|
-
}) {
|
|
3236
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3237
|
-
DialogPrimitive__namespace.Title,
|
|
3238
|
-
{
|
|
3239
|
-
"data-slot": "sheet-title",
|
|
3240
|
-
className: cn("text-foreground font-semibold", className),
|
|
3241
|
-
...props
|
|
3242
|
-
}
|
|
3243
|
-
);
|
|
3244
|
-
}
|
|
3245
|
-
function SheetDescription({
|
|
3246
|
-
className,
|
|
3247
|
-
...props
|
|
3248
|
-
}) {
|
|
3249
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3250
|
-
DialogPrimitive__namespace.Description,
|
|
3251
|
-
{
|
|
3252
|
-
"data-slot": "sheet-description",
|
|
3253
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
3254
|
-
...props
|
|
3255
|
-
}
|
|
3256
|
-
);
|
|
3257
|
-
}
|
|
3258
|
-
const MOBILE_BREAKPOINT = 768;
|
|
3259
|
-
function useIsMobile() {
|
|
3260
|
-
const [isMobile, setIsMobile] = React__namespace.useState(
|
|
3261
|
-
void 0
|
|
3262
|
-
);
|
|
3263
|
-
React__namespace.useEffect(() => {
|
|
3264
|
-
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
3265
|
-
const onChange = () => {
|
|
3266
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
3267
|
-
};
|
|
3268
|
-
mql.addEventListener("change", onChange);
|
|
3269
|
-
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
3270
|
-
return () => mql.removeEventListener("change", onChange);
|
|
3271
|
-
}, []);
|
|
3272
|
-
return !!isMobile;
|
|
3273
|
-
}
|
|
3274
|
-
function Skeleton({ className, ...props }) {
|
|
3275
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3276
|
-
"div",
|
|
3277
|
-
{
|
|
3278
|
-
"data-slot": "skeleton",
|
|
3279
|
-
className: cn("bg-accent animate-pulse rounded-md", className),
|
|
3280
|
-
...props
|
|
3281
|
-
}
|
|
3282
|
-
);
|
|
3283
|
-
}
|
|
3284
|
-
function TooltipProvider({
|
|
3285
|
-
delayDuration = 0,
|
|
3286
|
-
...props
|
|
3287
|
-
}) {
|
|
3288
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3289
|
-
TooltipPrimitive__namespace.Provider,
|
|
3290
|
-
{
|
|
3291
|
-
"data-slot": "tooltip-provider",
|
|
3292
|
-
delayDuration,
|
|
3293
|
-
...props
|
|
3294
|
-
}
|
|
3295
|
-
);
|
|
3296
|
-
}
|
|
3297
|
-
function Tooltip({
|
|
3298
|
-
...props
|
|
3299
|
-
}) {
|
|
3300
|
-
return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { "data-slot": "tooltip", ...props }) });
|
|
3301
|
-
}
|
|
3302
|
-
function TooltipTrigger({
|
|
3303
|
-
...props
|
|
3304
|
-
}) {
|
|
3305
|
-
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
3306
|
-
}
|
|
3307
|
-
function TooltipContent({
|
|
3308
|
-
className,
|
|
3309
|
-
sideOffset = 0,
|
|
3310
|
-
children,
|
|
3311
|
-
...props
|
|
3312
|
-
}) {
|
|
3313
|
-
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3314
|
-
TooltipPrimitive__namespace.Content,
|
|
3315
|
-
{
|
|
3316
|
-
"data-slot": "tooltip-content",
|
|
3317
|
-
sideOffset,
|
|
3318
|
-
className: cn(
|
|
3319
|
-
"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
3320
|
-
className
|
|
3321
|
-
),
|
|
3322
|
-
...props,
|
|
3323
|
-
children: [
|
|
3324
|
-
children,
|
|
3325
|
-
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
3326
|
-
]
|
|
3327
|
-
}
|
|
3328
|
-
) });
|
|
3329
|
-
}
|
|
3330
|
-
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
3331
|
-
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
3332
|
-
const SIDEBAR_WIDTH = "16rem";
|
|
3333
|
-
const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
3334
|
-
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
3335
|
-
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
3336
|
-
const SidebarContext = React__namespace.createContext(null);
|
|
3337
|
-
function useSidebar() {
|
|
3338
|
-
const context = React__namespace.useContext(SidebarContext);
|
|
3339
|
-
if (!context) {
|
|
3340
|
-
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
3341
|
-
}
|
|
3342
|
-
return context;
|
|
3343
|
-
}
|
|
3344
|
-
function SidebarProvider({
|
|
3345
|
-
defaultOpen = true,
|
|
3346
|
-
open: openProp,
|
|
3347
|
-
onOpenChange: setOpenProp,
|
|
3348
|
-
className,
|
|
3349
|
-
style,
|
|
3350
|
-
children,
|
|
2386
|
+
style,
|
|
2387
|
+
children,
|
|
3351
2388
|
...props
|
|
3352
2389
|
}) {
|
|
3353
2390
|
const isMobile = useIsMobile();
|
|
@@ -3675,7 +2712,7 @@ function SidebarGroupAction({
|
|
|
3675
2712
|
"data-slot": "sidebar-group-action",
|
|
3676
2713
|
"data-sidebar": "group-action",
|
|
3677
2714
|
className: cn(
|
|
3678
|
-
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-
|
|
2715
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
3679
2716
|
// Increases the hit area of the button on mobile.
|
|
3680
2717
|
"after:absolute after:-inset-2 md:after:hidden",
|
|
3681
2718
|
"group-data-[collapsible=icon]:hidden",
|
|
@@ -3722,12 +2759,12 @@ function SidebarMenuItem({ className, ...props }) {
|
|
|
3722
2759
|
);
|
|
3723
2760
|
}
|
|
3724
2761
|
const sidebarMenuButtonVariants = classVarianceAuthority.cva(
|
|
3725
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-
|
|
2762
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground focus-visible:ring-2 active:bg-sidebar-tertiary active:text-sidebar-tertiary-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-tertiary data-[active=true]:font-medium data-[active=true]:text-sidebar-tertiary-foreground data-[state=open]:hover:bg-sidebar-tertiary data-[state=open]:hover:text-sidebar-tertiary-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
3726
2763
|
{
|
|
3727
2764
|
variants: {
|
|
3728
2765
|
variant: {
|
|
3729
|
-
default: "hover:bg-sidebar-
|
|
3730
|
-
outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-
|
|
2766
|
+
default: "hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground",
|
|
2767
|
+
outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-tertiary))]"
|
|
3731
2768
|
},
|
|
3732
2769
|
size: {
|
|
3733
2770
|
default: "h-8 text-sm",
|
|
@@ -3797,14 +2834,14 @@ function SidebarMenuAction({
|
|
|
3797
2834
|
"data-slot": "sidebar-menu-action",
|
|
3798
2835
|
"data-sidebar": "menu-action",
|
|
3799
2836
|
className: cn(
|
|
3800
|
-
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-
|
|
2837
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground peer-hover/menu-button:text-sidebar-tertiary-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
3801
2838
|
// Increases the hit area of the button on mobile.
|
|
3802
2839
|
"after:absolute after:-inset-2 md:after:hidden",
|
|
3803
2840
|
"peer-data-[size=sm]/menu-button:top-1",
|
|
3804
2841
|
"peer-data-[size=default]/menu-button:top-1.5",
|
|
3805
2842
|
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
3806
2843
|
"group-data-[collapsible=icon]:hidden",
|
|
3807
|
-
showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-
|
|
2844
|
+
showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-tertiary-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
|
|
3808
2845
|
className
|
|
3809
2846
|
),
|
|
3810
2847
|
...props
|
|
@@ -3822,7 +2859,7 @@ function SidebarMenuBadge({
|
|
|
3822
2859
|
"data-sidebar": "menu-badge",
|
|
3823
2860
|
className: cn(
|
|
3824
2861
|
"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none",
|
|
3825
|
-
"peer-hover/menu-button:text-sidebar-
|
|
2862
|
+
"peer-hover/menu-button:text-sidebar-tertiary-foreground peer-data-[active=true]/menu-button:text-sidebar-tertiary-foreground",
|
|
3826
2863
|
"peer-data-[size=sm]/menu-button:top-1",
|
|
3827
2864
|
"peer-data-[size=default]/menu-button:top-1.5",
|
|
3828
2865
|
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
@@ -3838,7 +2875,9 @@ function SidebarMenuSkeleton({
|
|
|
3838
2875
|
showIcon = false,
|
|
3839
2876
|
...props
|
|
3840
2877
|
}) {
|
|
3841
|
-
const
|
|
2878
|
+
const widthRef = React__namespace.useState(
|
|
2879
|
+
() => `${Math.floor(Math.random() * 40) + 50}%`
|
|
2880
|
+
)[0];
|
|
3842
2881
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3843
2882
|
"div",
|
|
3844
2883
|
{
|
|
@@ -3860,7 +2899,7 @@ function SidebarMenuSkeleton({
|
|
|
3860
2899
|
className: "h-4 max-w-(--skeleton-width) flex-1",
|
|
3861
2900
|
"data-sidebar": "menu-skeleton-text",
|
|
3862
2901
|
style: {
|
|
3863
|
-
"--skeleton-width":
|
|
2902
|
+
"--skeleton-width": widthRef
|
|
3864
2903
|
}
|
|
3865
2904
|
}
|
|
3866
2905
|
)
|
|
@@ -3913,8 +2952,8 @@ function SidebarMenuSubButton({
|
|
|
3913
2952
|
"data-size": size,
|
|
3914
2953
|
"data-active": isActive,
|
|
3915
2954
|
className: cn(
|
|
3916
|
-
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-
|
|
3917
|
-
"data-[active=true]:bg-sidebar-
|
|
2955
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground active:bg-sidebar-tertiary active:text-sidebar-tertiary-foreground [&>svg]:text-sidebar-tertiary-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
2956
|
+
"data-[active=true]:bg-sidebar-tertiary data-[active=true]:text-sidebar-tertiary-foreground",
|
|
3918
2957
|
size === "sm" && "text-xs",
|
|
3919
2958
|
size === "md" && "text-sm",
|
|
3920
2959
|
"group-data-[collapsible=icon]:hidden",
|
|
@@ -4000,6 +3039,11 @@ const Toaster = ({ ...props }) => {
|
|
|
4000
3039
|
"--normal-border": "var(--border)",
|
|
4001
3040
|
"--border-radius": "var(--radius)"
|
|
4002
3041
|
},
|
|
3042
|
+
toastOptions: {
|
|
3043
|
+
classNames: {
|
|
3044
|
+
description: "!text-popover-foreground"
|
|
3045
|
+
}
|
|
3046
|
+
},
|
|
4003
3047
|
...props
|
|
4004
3048
|
}
|
|
4005
3049
|
);
|
|
@@ -4149,321 +3193,1052 @@ function StepperHeader({ steps, className }) {
|
|
|
4149
3193
|
] })
|
|
4150
3194
|
] }) });
|
|
4151
3195
|
}
|
|
4152
|
-
function StepperContent({ children, className }) {
|
|
4153
|
-
const { currentStep } = useStepper();
|
|
4154
|
-
const steps = React__namespace.Children.toArray(children);
|
|
4155
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-4", className), children: steps[currentStep] || null });
|
|
3196
|
+
function StepperContent({ children, className }) {
|
|
3197
|
+
const { currentStep } = useStepper();
|
|
3198
|
+
const steps = React__namespace.Children.toArray(children);
|
|
3199
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-4", className), children: steps[currentStep] || null });
|
|
3200
|
+
}
|
|
3201
|
+
function StepperFooter({
|
|
3202
|
+
children,
|
|
3203
|
+
className,
|
|
3204
|
+
showDefaultButtons = true,
|
|
3205
|
+
nextLabel = "Next",
|
|
3206
|
+
previousLabel = "Previous",
|
|
3207
|
+
finishLabel = "Finish",
|
|
3208
|
+
onFinish
|
|
3209
|
+
}) {
|
|
3210
|
+
const { currentStep, totalSteps, nextStep, previousStep } = useStepper();
|
|
3211
|
+
const isFirstStep = currentStep === 0;
|
|
3212
|
+
const isLastStep = currentStep === totalSteps - 1;
|
|
3213
|
+
if (children) {
|
|
3214
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 flex justify-between", className), children });
|
|
3215
|
+
}
|
|
3216
|
+
if (!showDefaultButtons) return null;
|
|
3217
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-8 flex justify-between", className), children: [
|
|
3218
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", onClick: previousStep, disabled: isFirstStep, children: previousLabel }),
|
|
3219
|
+
isLastStep ? /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: onFinish, children: finishLabel }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: nextStep, children: nextLabel })
|
|
3220
|
+
] });
|
|
3221
|
+
}
|
|
3222
|
+
function Switch({
|
|
3223
|
+
className,
|
|
3224
|
+
...props
|
|
3225
|
+
}) {
|
|
3226
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3227
|
+
SwitchPrimitive__namespace.Root,
|
|
3228
|
+
{
|
|
3229
|
+
"data-slot": "switch",
|
|
3230
|
+
className: cn(
|
|
3231
|
+
"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
|
|
3232
|
+
className
|
|
3233
|
+
),
|
|
3234
|
+
...props,
|
|
3235
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3236
|
+
SwitchPrimitive__namespace.Thumb,
|
|
3237
|
+
{
|
|
3238
|
+
"data-slot": "switch-thumb",
|
|
3239
|
+
className: cn(
|
|
3240
|
+
"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
|
|
3241
|
+
)
|
|
3242
|
+
}
|
|
3243
|
+
)
|
|
3244
|
+
}
|
|
3245
|
+
);
|
|
3246
|
+
}
|
|
3247
|
+
function Table({ className, ...props }) {
|
|
3248
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3249
|
+
"div",
|
|
3250
|
+
{
|
|
3251
|
+
"data-slot": "table-container",
|
|
3252
|
+
className: "relative w-full overflow-x-auto",
|
|
3253
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3254
|
+
"table",
|
|
3255
|
+
{
|
|
3256
|
+
"data-slot": "table",
|
|
3257
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
3258
|
+
...props
|
|
3259
|
+
}
|
|
3260
|
+
)
|
|
3261
|
+
}
|
|
3262
|
+
);
|
|
3263
|
+
}
|
|
3264
|
+
function TableHeader({ className, ...props }) {
|
|
3265
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3266
|
+
"thead",
|
|
3267
|
+
{
|
|
3268
|
+
"data-slot": "table-header",
|
|
3269
|
+
className: cn("[&_tr]:border-b", className),
|
|
3270
|
+
...props
|
|
3271
|
+
}
|
|
3272
|
+
);
|
|
3273
|
+
}
|
|
3274
|
+
function TableBody({ className, ...props }) {
|
|
3275
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3276
|
+
"tbody",
|
|
3277
|
+
{
|
|
3278
|
+
"data-slot": "table-body",
|
|
3279
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
3280
|
+
...props
|
|
3281
|
+
}
|
|
3282
|
+
);
|
|
3283
|
+
}
|
|
3284
|
+
function TableFooter({ className, ...props }) {
|
|
3285
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3286
|
+
"tfoot",
|
|
3287
|
+
{
|
|
3288
|
+
"data-slot": "table-footer",
|
|
3289
|
+
className: cn(
|
|
3290
|
+
"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
|
|
3291
|
+
className
|
|
3292
|
+
),
|
|
3293
|
+
...props
|
|
3294
|
+
}
|
|
3295
|
+
);
|
|
3296
|
+
}
|
|
3297
|
+
function TableRow({ className, ...props }) {
|
|
3298
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3299
|
+
"tr",
|
|
3300
|
+
{
|
|
3301
|
+
"data-slot": "table-row",
|
|
3302
|
+
className: cn(
|
|
3303
|
+
"hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
|
|
3304
|
+
className
|
|
3305
|
+
),
|
|
3306
|
+
...props
|
|
3307
|
+
}
|
|
3308
|
+
);
|
|
3309
|
+
}
|
|
3310
|
+
function TableHead({ className, ...props }) {
|
|
3311
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3312
|
+
"th",
|
|
3313
|
+
{
|
|
3314
|
+
"data-slot": "table-head",
|
|
3315
|
+
className: cn(
|
|
3316
|
+
"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
3317
|
+
className
|
|
3318
|
+
),
|
|
3319
|
+
...props
|
|
3320
|
+
}
|
|
3321
|
+
);
|
|
3322
|
+
}
|
|
3323
|
+
function TableCell({ className, ...props }) {
|
|
3324
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3325
|
+
"td",
|
|
3326
|
+
{
|
|
3327
|
+
"data-slot": "table-cell",
|
|
3328
|
+
className: cn(
|
|
3329
|
+
"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
3330
|
+
className
|
|
3331
|
+
),
|
|
3332
|
+
...props
|
|
3333
|
+
}
|
|
3334
|
+
);
|
|
3335
|
+
}
|
|
3336
|
+
function TableCaption({
|
|
3337
|
+
className,
|
|
3338
|
+
...props
|
|
3339
|
+
}) {
|
|
3340
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3341
|
+
"caption",
|
|
3342
|
+
{
|
|
3343
|
+
"data-slot": "table-caption",
|
|
3344
|
+
className: cn("text-muted-foreground mt-4 text-sm", className),
|
|
3345
|
+
...props
|
|
3346
|
+
}
|
|
3347
|
+
);
|
|
3348
|
+
}
|
|
3349
|
+
function Tabs({
|
|
3350
|
+
className,
|
|
3351
|
+
...props
|
|
3352
|
+
}) {
|
|
3353
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3354
|
+
TabsPrimitive__namespace.Root,
|
|
3355
|
+
{
|
|
3356
|
+
"data-slot": "tabs",
|
|
3357
|
+
className: cn("flex flex-col gap-2", className),
|
|
3358
|
+
...props
|
|
3359
|
+
}
|
|
3360
|
+
);
|
|
4156
3361
|
}
|
|
4157
|
-
function
|
|
4158
|
-
children,
|
|
3362
|
+
function TabsList({
|
|
4159
3363
|
className,
|
|
4160
|
-
|
|
4161
|
-
nextLabel = "Next",
|
|
4162
|
-
previousLabel = "Previous",
|
|
4163
|
-
finishLabel = "Finish",
|
|
4164
|
-
onFinish
|
|
3364
|
+
...props
|
|
4165
3365
|
}) {
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
3366
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3367
|
+
TabsPrimitive__namespace.List,
|
|
3368
|
+
{
|
|
3369
|
+
"data-slot": "tabs-list",
|
|
3370
|
+
className: cn(
|
|
3371
|
+
"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
|
|
3372
|
+
className
|
|
3373
|
+
),
|
|
3374
|
+
...props
|
|
3375
|
+
}
|
|
3376
|
+
);
|
|
4177
3377
|
}
|
|
4178
|
-
function
|
|
3378
|
+
function TabsTrigger({
|
|
4179
3379
|
className,
|
|
4180
3380
|
...props
|
|
4181
3381
|
}) {
|
|
4182
3382
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4183
|
-
|
|
3383
|
+
TabsPrimitive__namespace.Trigger,
|
|
4184
3384
|
{
|
|
4185
|
-
"data-slot": "
|
|
3385
|
+
"data-slot": "tabs-trigger",
|
|
4186
3386
|
className: cn(
|
|
4187
|
-
"
|
|
3387
|
+
"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4188
3388
|
className
|
|
4189
3389
|
),
|
|
4190
|
-
...props
|
|
4191
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4192
|
-
SwitchPrimitive__namespace.Thumb,
|
|
4193
|
-
{
|
|
4194
|
-
"data-slot": "switch-thumb",
|
|
4195
|
-
className: cn(
|
|
4196
|
-
"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
|
|
4197
|
-
)
|
|
4198
|
-
}
|
|
4199
|
-
)
|
|
3390
|
+
...props
|
|
4200
3391
|
}
|
|
4201
3392
|
);
|
|
4202
3393
|
}
|
|
4203
|
-
function
|
|
3394
|
+
function TabsContent({
|
|
3395
|
+
className,
|
|
3396
|
+
...props
|
|
3397
|
+
}) {
|
|
4204
3398
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4205
|
-
|
|
3399
|
+
TabsPrimitive__namespace.Content,
|
|
4206
3400
|
{
|
|
4207
|
-
"data-slot": "
|
|
4208
|
-
className: "
|
|
4209
|
-
|
|
4210
|
-
"table",
|
|
4211
|
-
{
|
|
4212
|
-
"data-slot": "table",
|
|
4213
|
-
className: cn("w-full caption-bottom text-sm", className),
|
|
4214
|
-
...props
|
|
4215
|
-
}
|
|
4216
|
-
)
|
|
3401
|
+
"data-slot": "tabs-content",
|
|
3402
|
+
className: cn("flex-1 outline-none", className),
|
|
3403
|
+
...props
|
|
4217
3404
|
}
|
|
4218
3405
|
);
|
|
4219
3406
|
}
|
|
4220
|
-
function
|
|
3407
|
+
function Textarea({ className, ...props }) {
|
|
4221
3408
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4222
|
-
"
|
|
3409
|
+
"textarea",
|
|
4223
3410
|
{
|
|
4224
|
-
"data-slot": "
|
|
4225
|
-
className: cn(
|
|
3411
|
+
"data-slot": "textarea",
|
|
3412
|
+
className: cn(
|
|
3413
|
+
"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
3414
|
+
className
|
|
3415
|
+
),
|
|
4226
3416
|
...props
|
|
4227
3417
|
}
|
|
4228
3418
|
);
|
|
4229
3419
|
}
|
|
4230
|
-
|
|
3420
|
+
const toggleVariants = classVarianceAuthority.cva(
|
|
3421
|
+
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-tertiary data-[state=on]:text-tertiary-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error whitespace-nowrap",
|
|
3422
|
+
{
|
|
3423
|
+
variants: {
|
|
3424
|
+
variant: {
|
|
3425
|
+
default: "bg-transparent",
|
|
3426
|
+
outline: "border border-input bg-transparent shadow-xs hover:bg-tertiary hover:text-tertiary-foreground"
|
|
3427
|
+
},
|
|
3428
|
+
size: {
|
|
3429
|
+
default: "h-9 px-2 min-w-9",
|
|
3430
|
+
sm: "h-8 px-1.5 min-w-8",
|
|
3431
|
+
lg: "h-10 px-2.5 min-w-10"
|
|
3432
|
+
}
|
|
3433
|
+
},
|
|
3434
|
+
defaultVariants: {
|
|
3435
|
+
variant: "default",
|
|
3436
|
+
size: "default"
|
|
3437
|
+
}
|
|
3438
|
+
}
|
|
3439
|
+
);
|
|
3440
|
+
function Toggle({
|
|
3441
|
+
className,
|
|
3442
|
+
variant,
|
|
3443
|
+
size,
|
|
3444
|
+
...props
|
|
3445
|
+
}) {
|
|
4231
3446
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4232
|
-
|
|
3447
|
+
TogglePrimitive__namespace.Root,
|
|
4233
3448
|
{
|
|
4234
|
-
"data-slot": "
|
|
4235
|
-
className: cn(
|
|
3449
|
+
"data-slot": "toggle",
|
|
3450
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
4236
3451
|
...props
|
|
4237
3452
|
}
|
|
4238
3453
|
);
|
|
4239
3454
|
}
|
|
4240
|
-
|
|
3455
|
+
const ToggleGroupContext = React__namespace.createContext({
|
|
3456
|
+
size: "default",
|
|
3457
|
+
variant: "default",
|
|
3458
|
+
spacing: 0
|
|
3459
|
+
});
|
|
3460
|
+
function ToggleGroup({
|
|
3461
|
+
className,
|
|
3462
|
+
variant,
|
|
3463
|
+
size,
|
|
3464
|
+
spacing = 0,
|
|
3465
|
+
children,
|
|
3466
|
+
...props
|
|
3467
|
+
}) {
|
|
4241
3468
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4242
|
-
|
|
3469
|
+
ToggleGroupPrimitive__namespace.Root,
|
|
4243
3470
|
{
|
|
4244
|
-
"data-slot": "
|
|
3471
|
+
"data-slot": "toggle-group",
|
|
3472
|
+
"data-variant": variant,
|
|
3473
|
+
"data-size": size,
|
|
3474
|
+
"data-spacing": spacing,
|
|
3475
|
+
style: { "--gap": spacing },
|
|
4245
3476
|
className: cn(
|
|
4246
|
-
"
|
|
3477
|
+
"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",
|
|
3478
|
+
className
|
|
3479
|
+
),
|
|
3480
|
+
...props,
|
|
3481
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
|
|
3482
|
+
}
|
|
3483
|
+
);
|
|
3484
|
+
}
|
|
3485
|
+
function ToggleGroupItem({
|
|
3486
|
+
className,
|
|
3487
|
+
children,
|
|
3488
|
+
variant,
|
|
3489
|
+
size,
|
|
3490
|
+
...props
|
|
3491
|
+
}) {
|
|
3492
|
+
const context = React__namespace.useContext(ToggleGroupContext);
|
|
3493
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3494
|
+
ToggleGroupPrimitive__namespace.Item,
|
|
3495
|
+
{
|
|
3496
|
+
"data-slot": "toggle-group-item",
|
|
3497
|
+
"data-variant": context.variant || variant,
|
|
3498
|
+
"data-size": context.size || size,
|
|
3499
|
+
"data-spacing": context.spacing,
|
|
3500
|
+
className: cn(
|
|
3501
|
+
toggleVariants({
|
|
3502
|
+
variant: context.variant || variant,
|
|
3503
|
+
size: context.size || size
|
|
3504
|
+
}),
|
|
3505
|
+
"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10",
|
|
3506
|
+
"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",
|
|
3507
|
+
className
|
|
3508
|
+
),
|
|
3509
|
+
...props,
|
|
3510
|
+
children
|
|
3511
|
+
}
|
|
3512
|
+
);
|
|
3513
|
+
}
|
|
3514
|
+
function Panel({ className, ...props }) {
|
|
3515
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3516
|
+
"div",
|
|
3517
|
+
{
|
|
3518
|
+
"data-slot": "panel",
|
|
3519
|
+
className: cn(
|
|
3520
|
+
"bg-panel text-foreground rounded-xl border p-6 shadow-sm",
|
|
4247
3521
|
className
|
|
4248
3522
|
),
|
|
4249
3523
|
...props
|
|
4250
3524
|
}
|
|
4251
3525
|
);
|
|
4252
3526
|
}
|
|
4253
|
-
function
|
|
3527
|
+
function PanelHeader({ className, ...props }) {
|
|
4254
3528
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4255
|
-
"
|
|
3529
|
+
"div",
|
|
4256
3530
|
{
|
|
4257
|
-
"data-slot": "
|
|
3531
|
+
"data-slot": "panel-header",
|
|
4258
3532
|
className: cn(
|
|
4259
|
-
"
|
|
3533
|
+
"@container/panel-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 has-data-[slot=panel-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
4260
3534
|
className
|
|
4261
3535
|
),
|
|
4262
3536
|
...props
|
|
4263
3537
|
}
|
|
4264
3538
|
);
|
|
4265
3539
|
}
|
|
4266
|
-
function
|
|
3540
|
+
function PanelTitle({ className, ...props }) {
|
|
3541
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3542
|
+
"div",
|
|
3543
|
+
{
|
|
3544
|
+
"data-slot": "panel-title",
|
|
3545
|
+
className: cn("text-xl leading-none font-semibold", className),
|
|
3546
|
+
...props
|
|
3547
|
+
}
|
|
3548
|
+
);
|
|
3549
|
+
}
|
|
3550
|
+
function PanelDescription({
|
|
3551
|
+
className,
|
|
3552
|
+
...props
|
|
3553
|
+
}) {
|
|
3554
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3555
|
+
"div",
|
|
3556
|
+
{
|
|
3557
|
+
"data-slot": "panel-description",
|
|
3558
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
3559
|
+
...props
|
|
3560
|
+
}
|
|
3561
|
+
);
|
|
3562
|
+
}
|
|
3563
|
+
function PanelContent({ className, ...props }) {
|
|
3564
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3565
|
+
"div",
|
|
3566
|
+
{
|
|
3567
|
+
"data-slot": "panel-content",
|
|
3568
|
+
className: cn("pt-6 text-base", className),
|
|
3569
|
+
...props
|
|
3570
|
+
}
|
|
3571
|
+
);
|
|
3572
|
+
}
|
|
3573
|
+
function PanelFooter({ className, ...props }) {
|
|
3574
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3575
|
+
"div",
|
|
3576
|
+
{
|
|
3577
|
+
"data-slot": "panel-footer",
|
|
3578
|
+
className: cn("flex items-center pt-6", className),
|
|
3579
|
+
...props
|
|
3580
|
+
}
|
|
3581
|
+
);
|
|
3582
|
+
}
|
|
3583
|
+
const H1 = React__namespace.forwardRef(function H12({ className, ...props }, ref) {
|
|
3584
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3585
|
+
"h1",
|
|
3586
|
+
{
|
|
3587
|
+
ref,
|
|
3588
|
+
className: cn("text-4xl font-bold tracking-tight", className),
|
|
3589
|
+
...props
|
|
3590
|
+
}
|
|
3591
|
+
);
|
|
3592
|
+
});
|
|
3593
|
+
const H2 = React__namespace.forwardRef(function H22({ className, ...props }, ref) {
|
|
3594
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3595
|
+
"h2",
|
|
3596
|
+
{
|
|
3597
|
+
ref,
|
|
3598
|
+
className: cn("text-3xl font-semibold tracking-tight", className),
|
|
3599
|
+
...props
|
|
3600
|
+
}
|
|
3601
|
+
);
|
|
3602
|
+
});
|
|
3603
|
+
function H3({
|
|
3604
|
+
className,
|
|
3605
|
+
...props
|
|
3606
|
+
}) {
|
|
3607
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3608
|
+
"h3",
|
|
3609
|
+
{
|
|
3610
|
+
className: cn("text-2xl font-semibold tracking-tight", className),
|
|
3611
|
+
...props
|
|
3612
|
+
}
|
|
3613
|
+
);
|
|
3614
|
+
}
|
|
3615
|
+
function H4({
|
|
3616
|
+
className,
|
|
3617
|
+
...props
|
|
3618
|
+
}) {
|
|
3619
|
+
return /* @__PURE__ */ jsxRuntime.jsx("h4", { className: cn("text-xl font-semibold", className), ...props });
|
|
3620
|
+
}
|
|
3621
|
+
function P({
|
|
3622
|
+
className,
|
|
3623
|
+
...props
|
|
3624
|
+
}) {
|
|
3625
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base leading-7", className), ...props });
|
|
3626
|
+
}
|
|
3627
|
+
function Lead({
|
|
3628
|
+
className,
|
|
3629
|
+
...props
|
|
3630
|
+
}) {
|
|
4267
3631
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4268
|
-
"
|
|
3632
|
+
"p",
|
|
4269
3633
|
{
|
|
4270
|
-
|
|
4271
|
-
className: cn(
|
|
4272
|
-
"text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
4273
|
-
className
|
|
4274
|
-
),
|
|
3634
|
+
className: cn("text-lg leading-8 text-muted-foreground", className),
|
|
4275
3635
|
...props
|
|
4276
3636
|
}
|
|
4277
3637
|
);
|
|
4278
3638
|
}
|
|
4279
|
-
function
|
|
3639
|
+
function Strong({
|
|
3640
|
+
className,
|
|
3641
|
+
...props
|
|
3642
|
+
}) {
|
|
4280
3643
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4281
|
-
"
|
|
3644
|
+
"p",
|
|
4282
3645
|
{
|
|
4283
|
-
|
|
4284
|
-
className: cn(
|
|
4285
|
-
"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
4286
|
-
className
|
|
4287
|
-
),
|
|
3646
|
+
className: cn("text-base font-semibold leading-7", className),
|
|
4288
3647
|
...props
|
|
4289
3648
|
}
|
|
4290
3649
|
);
|
|
4291
3650
|
}
|
|
4292
|
-
function
|
|
3651
|
+
function Small({
|
|
4293
3652
|
className,
|
|
4294
3653
|
...props
|
|
4295
3654
|
}) {
|
|
4296
3655
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4297
|
-
"
|
|
3656
|
+
"p",
|
|
4298
3657
|
{
|
|
4299
|
-
|
|
4300
|
-
className: cn("text-muted-foreground mt-4 text-sm", className),
|
|
3658
|
+
className: cn("text-sm text-muted-foreground leading-6", className),
|
|
4301
3659
|
...props
|
|
4302
3660
|
}
|
|
4303
3661
|
);
|
|
4304
3662
|
}
|
|
4305
|
-
function
|
|
3663
|
+
function Muted({
|
|
4306
3664
|
className,
|
|
4307
3665
|
...props
|
|
4308
3666
|
}) {
|
|
4309
3667
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4310
|
-
|
|
3668
|
+
"p",
|
|
4311
3669
|
{
|
|
4312
|
-
"
|
|
4313
|
-
className: cn("flex flex-col gap-2", className),
|
|
3670
|
+
className: cn("text-xs text-muted-foreground leading-5", className),
|
|
4314
3671
|
...props
|
|
4315
3672
|
}
|
|
4316
3673
|
);
|
|
4317
3674
|
}
|
|
4318
|
-
function
|
|
3675
|
+
function Code({
|
|
4319
3676
|
className,
|
|
4320
3677
|
...props
|
|
4321
3678
|
}) {
|
|
4322
3679
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4323
|
-
|
|
3680
|
+
"code",
|
|
4324
3681
|
{
|
|
4325
|
-
|
|
4326
|
-
className: cn(
|
|
4327
|
-
"bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
|
|
4328
|
-
className
|
|
4329
|
-
),
|
|
3682
|
+
className: cn("text-sm font-mono bg-muted px-2 py-1 rounded", className),
|
|
4330
3683
|
...props
|
|
4331
3684
|
}
|
|
4332
3685
|
);
|
|
4333
3686
|
}
|
|
4334
|
-
function
|
|
3687
|
+
function Link({
|
|
4335
3688
|
className,
|
|
4336
3689
|
...props
|
|
4337
3690
|
}) {
|
|
4338
3691
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4339
|
-
|
|
3692
|
+
"a",
|
|
4340
3693
|
{
|
|
4341
|
-
|
|
4342
|
-
className: cn(
|
|
4343
|
-
"data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
4344
|
-
className
|
|
4345
|
-
),
|
|
3694
|
+
className: cn("text-primary underline hover:no-underline", className),
|
|
4346
3695
|
...props
|
|
4347
3696
|
}
|
|
4348
3697
|
);
|
|
4349
3698
|
}
|
|
4350
|
-
function
|
|
3699
|
+
function Blockquote({
|
|
4351
3700
|
className,
|
|
4352
3701
|
...props
|
|
4353
3702
|
}) {
|
|
4354
3703
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4355
|
-
|
|
3704
|
+
"blockquote",
|
|
4356
3705
|
{
|
|
4357
|
-
|
|
4358
|
-
className: cn("flex-1 outline-none", className),
|
|
3706
|
+
className: cn("border-l-4 border-primary pl-4 italic", className),
|
|
4359
3707
|
...props
|
|
4360
3708
|
}
|
|
4361
3709
|
);
|
|
4362
3710
|
}
|
|
4363
|
-
function
|
|
3711
|
+
function List({
|
|
3712
|
+
className,
|
|
3713
|
+
...props
|
|
3714
|
+
}) {
|
|
4364
3715
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4365
|
-
"
|
|
3716
|
+
"ul",
|
|
4366
3717
|
{
|
|
4367
|
-
"
|
|
4368
|
-
className: cn(
|
|
4369
|
-
"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
4370
|
-
className
|
|
4371
|
-
),
|
|
3718
|
+
className: cn("list-disc list-inside space-y-2", className),
|
|
4372
3719
|
...props
|
|
4373
3720
|
}
|
|
4374
3721
|
);
|
|
4375
3722
|
}
|
|
4376
|
-
|
|
4377
|
-
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
|
|
4378
|
-
{
|
|
4379
|
-
variants: {
|
|
4380
|
-
variant: {
|
|
4381
|
-
default: "bg-transparent",
|
|
4382
|
-
outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
|
|
4383
|
-
},
|
|
4384
|
-
size: {
|
|
4385
|
-
default: "h-9 px-2 min-w-9",
|
|
4386
|
-
sm: "h-8 px-1.5 min-w-8",
|
|
4387
|
-
lg: "h-10 px-2.5 min-w-10"
|
|
4388
|
-
}
|
|
4389
|
-
},
|
|
4390
|
-
defaultVariants: {
|
|
4391
|
-
variant: "default",
|
|
4392
|
-
size: "default"
|
|
4393
|
-
}
|
|
4394
|
-
}
|
|
4395
|
-
);
|
|
4396
|
-
function Toggle({
|
|
3723
|
+
function OrderedList({
|
|
4397
3724
|
className,
|
|
4398
|
-
variant,
|
|
4399
|
-
size,
|
|
4400
3725
|
...props
|
|
4401
3726
|
}) {
|
|
4402
3727
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4403
|
-
|
|
3728
|
+
"ol",
|
|
4404
3729
|
{
|
|
4405
|
-
"
|
|
4406
|
-
className: cn(toggleVariants({ variant, size, className })),
|
|
3730
|
+
className: cn("list-decimal list-inside space-y-2", className),
|
|
4407
3731
|
...props
|
|
4408
3732
|
}
|
|
4409
3733
|
);
|
|
4410
3734
|
}
|
|
4411
|
-
const
|
|
4412
|
-
|
|
4413
|
-
variant: "default",
|
|
4414
|
-
spacing: 0
|
|
3735
|
+
const ContentContainer = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
|
|
3736
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-8 py-8 px-4", className), ...props, children });
|
|
4415
3737
|
});
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
3738
|
+
ContentContainer.displayName = "Content";
|
|
3739
|
+
const ContentHeading = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
|
|
3740
|
+
return /* @__PURE__ */ jsxRuntime.jsx(H1, { ref, className, ...props, children });
|
|
3741
|
+
});
|
|
3742
|
+
ContentHeading.displayName = "Content.Heading";
|
|
3743
|
+
const ContentSubheading = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
|
|
3744
|
+
return /* @__PURE__ */ jsxRuntime.jsx(H2, { ref, className, ...props, children });
|
|
3745
|
+
});
|
|
3746
|
+
ContentSubheading.displayName = "Content.Subheading";
|
|
3747
|
+
const ContentBody = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
|
|
3748
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-4", className), ...props, children });
|
|
3749
|
+
});
|
|
3750
|
+
ContentBody.displayName = "Content.Body";
|
|
3751
|
+
const Content = Object.assign(ContentContainer, {
|
|
3752
|
+
Heading: ContentHeading,
|
|
3753
|
+
Subheading: ContentSubheading,
|
|
3754
|
+
Body: ContentBody
|
|
3755
|
+
});
|
|
3756
|
+
function ContentExample() {
|
|
3757
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
|
|
3758
|
+
/* @__PURE__ */ jsxRuntime.jsx(Content.Heading, { children: "Welcome to Our Platform" }),
|
|
3759
|
+
/* @__PURE__ */ jsxRuntime.jsx(Content.Subheading, { children: "Getting Started" }),
|
|
3760
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Content.Body, { children: [
|
|
3761
|
+
/* @__PURE__ */ jsxRuntime.jsx(P, { children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." }),
|
|
3762
|
+
/* @__PURE__ */ jsxRuntime.jsx(P, { children: "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." })
|
|
3763
|
+
] }),
|
|
3764
|
+
/* @__PURE__ */ jsxRuntime.jsx(Content.Subheading, { children: "Features Overview" }),
|
|
3765
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Content.Body, { children: [
|
|
3766
|
+
/* @__PURE__ */ jsxRuntime.jsx(P, { children: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo." }),
|
|
3767
|
+
/* @__PURE__ */ jsxRuntime.jsx(P, { children: "Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt." })
|
|
3768
|
+
] })
|
|
3769
|
+
] });
|
|
3770
|
+
}
|
|
3771
|
+
const eInfraLogoDefault = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACPEAAAUeCAYAAAAVIja8AAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nOzdz3HbWLrG4TNTs29nYC2xM24EVgajLVZWR2BNBC1HMOoIWlpxeeUMqAguuONSzkCKwFOYPryX12N36w/AFySfpwqlarfLBg/AlX/1fX/5+vVrAQAAAAAAAAAAcv7q7AEAAAAAAAAAIEvEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAA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gJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQGnbAZodrzfBqpZpAAAAAElFTkSuQmCC";
|
|
3772
|
+
function resolveLogoSrc$1(logo) {
|
|
3773
|
+
return typeof logo === "string" ? logo : logo.src;
|
|
3774
|
+
}
|
|
3775
|
+
function Header({
|
|
4421
3776
|
children,
|
|
4422
|
-
|
|
3777
|
+
className,
|
|
3778
|
+
variant = "navigation",
|
|
3779
|
+
navigationItems = [],
|
|
3780
|
+
logo = eInfraLogoDefault,
|
|
3781
|
+
logoAlt = "e-INFRA Logo"
|
|
4423
3782
|
}) {
|
|
4424
3783
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4425
|
-
|
|
3784
|
+
"header",
|
|
4426
3785
|
{
|
|
4427
|
-
"data-slot": "toggle-group",
|
|
4428
|
-
"data-variant": variant,
|
|
4429
|
-
"data-size": size,
|
|
4430
|
-
"data-spacing": spacing,
|
|
4431
|
-
style: { "--gap": spacing },
|
|
4432
3786
|
className: cn(
|
|
4433
|
-
"
|
|
3787
|
+
"sticky top-0 z-50 w-full bg-background/95 shadow-lg shadow-secondary/20 backdrop-blur supports-backdrop-filter:bg-background/60",
|
|
4434
3788
|
className
|
|
4435
3789
|
),
|
|
4436
|
-
|
|
4437
|
-
|
|
3790
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3791
|
+
"div",
|
|
3792
|
+
{
|
|
3793
|
+
className: cn(
|
|
3794
|
+
"flex h-16 items-center justify-between px-4 mx-auto",
|
|
3795
|
+
variant === "navigation" && "container"
|
|
3796
|
+
),
|
|
3797
|
+
children: [
|
|
3798
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
|
|
3799
|
+
variant === "sidebar" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelRight, {}),
|
|
3800
|
+
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3801
|
+
"img",
|
|
3802
|
+
{
|
|
3803
|
+
src: resolveLogoSrc$1(logo),
|
|
3804
|
+
alt: logoAlt,
|
|
3805
|
+
className: "h-20 w-auto"
|
|
3806
|
+
}
|
|
3807
|
+
) }),
|
|
3808
|
+
variant === "navigation" && navigationItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: navigationItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { href: item.href, children: item.label }) }, item.href)) }) }) })
|
|
3809
|
+
] }),
|
|
3810
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children })
|
|
3811
|
+
]
|
|
3812
|
+
}
|
|
3813
|
+
)
|
|
4438
3814
|
}
|
|
4439
3815
|
);
|
|
4440
3816
|
}
|
|
4441
|
-
|
|
3817
|
+
const Version = Date.now();
|
|
3818
|
+
function resolveLogoSrc(logo) {
|
|
3819
|
+
return typeof logo === "string" ? logo : logo.src;
|
|
3820
|
+
}
|
|
3821
|
+
const RedirectListItem = ({ href, text }) => {
|
|
3822
|
+
return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs("a", { href, className: "text-fd-primary flex items-center gap-2", children: [
|
|
3823
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoveRight, { className: "pt-[3px]" }),
|
|
3824
|
+
text
|
|
3825
|
+
] }) });
|
|
3826
|
+
};
|
|
3827
|
+
const Footer = ({
|
|
3828
|
+
logo = eInfraLogoDefault,
|
|
3829
|
+
logoAlt = "e-INFRA CZ Logo"
|
|
3830
|
+
}) => {
|
|
3831
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "flex flex-col mt-0 items-center px-5 bg-gray-100 border-t border-gray-300 pb-5", children: [
|
|
3832
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center md:items-start max-w-[1100px] w-full mx-auto", children: [
|
|
3833
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
|
|
3834
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-3", children: "e-INFRA CZ" }),
|
|
3835
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { children: /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-fd-muted-foreground", children: [
|
|
3836
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "CERIT-SC" }),
|
|
3837
|
+
",",
|
|
3838
|
+
" ",
|
|
3839
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "CESNET" }),
|
|
3840
|
+
", and",
|
|
3841
|
+
" ",
|
|
3842
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "IT4Innovations" }),
|
|
3843
|
+
" are the three",
|
|
3844
|
+
" ",
|
|
3845
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "e-infrastructures" }),
|
|
3846
|
+
" ",
|
|
3847
|
+
"that constitute the national",
|
|
3848
|
+
" ",
|
|
3849
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "e-INFRA CZ" }),
|
|
3850
|
+
" research infrastructure."
|
|
3851
|
+
] }) }) })
|
|
3852
|
+
] }) }),
|
|
3853
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:block w-px bg-gray-300 self-stretch my-8" }),
|
|
3854
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
|
|
3855
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-2", children: "General information" }),
|
|
3856
|
+
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "inline-flex flex-col items-center md:items-start", children: [
|
|
3857
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3858
|
+
RedirectListItem,
|
|
3859
|
+
{
|
|
3860
|
+
href: "https://blog.e-infra.cz/",
|
|
3861
|
+
text: "e-INFRA CZ Blog"
|
|
3862
|
+
}
|
|
3863
|
+
),
|
|
3864
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3865
|
+
RedirectListItem,
|
|
3866
|
+
{
|
|
3867
|
+
href: "https://e-infra.cz/",
|
|
3868
|
+
text: "e-INFRA CZ Website"
|
|
3869
|
+
}
|
|
3870
|
+
)
|
|
3871
|
+
] })
|
|
3872
|
+
] }) }),
|
|
3873
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:block w-px bg-gray-300 self-stretch my-8" }),
|
|
3874
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
|
|
3875
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-2", children: "e-INFRA CZ Support" }),
|
|
3876
|
+
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "inline-flex flex-col items-center md:items-start", children: [
|
|
3877
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2", children: [
|
|
3878
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "w-4 pt-[2px] h-4 text-fd-primary" }),
|
|
3879
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-fd-muted-foreground", children: "Available non-stop" })
|
|
3880
|
+
] }),
|
|
3881
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex pt-[2px] items-center gap-2", children: [
|
|
3882
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-4 h-4 text-fd-primary" }),
|
|
3883
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3884
|
+
"a",
|
|
3885
|
+
{
|
|
3886
|
+
href: "mailto:support@e-infra.cz",
|
|
3887
|
+
className: "text-fd-primary hover:underline",
|
|
3888
|
+
children: "support@e-infra.cz"
|
|
3889
|
+
}
|
|
3890
|
+
)
|
|
3891
|
+
] }),
|
|
3892
|
+
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex pt-[2px] items-center gap-2", children: [
|
|
3893
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "w-4 h-4 text-fd-primary" }),
|
|
3894
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-fd-muted-foreground", children: "+420 234 680 222" })
|
|
3895
|
+
] })
|
|
3896
|
+
] })
|
|
3897
|
+
] }) })
|
|
3898
|
+
] }),
|
|
3899
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-center mt-4 max-w-[1100px] w-full mx-auto", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: resolveLogoSrc(logo), alt: logoAlt, className: "h-22 w-auto" }) }),
|
|
3900
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row justify-center md:justify-between items-center max-w-[1100px] w-full mx-auto", children: [
|
|
3901
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center md:justify-start gap-1", children: [
|
|
3902
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-fd-muted-foreground", children: "Copyright © 2025 e-INFRA CZ" }),
|
|
3903
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-fd-muted-foreground px-1 pb-[1px]", children: "|" }),
|
|
3904
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3905
|
+
"a",
|
|
3906
|
+
{
|
|
3907
|
+
href: "https://www.e-infra.cz/en/personal-data-processing",
|
|
3908
|
+
className: "text-sm text-fd-primary hover:underline",
|
|
3909
|
+
children: "Privacy Policy"
|
|
3910
|
+
}
|
|
3911
|
+
)
|
|
3912
|
+
] }),
|
|
3913
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center md:justify-end gap-1 pt-4 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-fd-muted-foreground", children: [
|
|
3914
|
+
"Version: ",
|
|
3915
|
+
new Date(Version).toLocaleDateString("cs-CS")
|
|
3916
|
+
] }) })
|
|
3917
|
+
] })
|
|
3918
|
+
] });
|
|
3919
|
+
};
|
|
3920
|
+
function FeedbackButton({
|
|
3921
|
+
onClick,
|
|
3922
|
+
position = "bottom-right"
|
|
3923
|
+
}) {
|
|
3924
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3925
|
+
"button",
|
|
3926
|
+
{
|
|
3927
|
+
onClick,
|
|
3928
|
+
type: "button",
|
|
3929
|
+
className: cn(
|
|
3930
|
+
"group fixed z-50 px-3.5 flex items-center justify-center bg-primary hover:bg-primary-700 text-white rounded-full shadow-lg transition-all duration-300 cursor-pointer w-12 h-12 hover:w-44 overflow-hidden",
|
|
3931
|
+
position === "bottom-right" ? "bottom-6 right-6" : "bottom-6 left-6"
|
|
3932
|
+
),
|
|
3933
|
+
"aria-label": "Leave feedback",
|
|
3934
|
+
children: [
|
|
3935
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-hidden whitespace-nowrap text-sm font-medium opacity-0 group-hover:opacity-100 transition-opacity duration-300", children: "Leave feedback?" }),
|
|
3936
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircle, { className: "ms-auto w-5 h-5 shrink-0" })
|
|
3937
|
+
]
|
|
3938
|
+
}
|
|
3939
|
+
);
|
|
3940
|
+
}
|
|
3941
|
+
function FeedbackModal({
|
|
3942
|
+
isOpen,
|
|
3943
|
+
onClose,
|
|
3944
|
+
onSubmit,
|
|
3945
|
+
title = "Leave us Feedback",
|
|
3946
|
+
description = "Help us improve by sharing your experience.",
|
|
3947
|
+
satisfactionLabel = "Were you satisfied?",
|
|
3948
|
+
recommendationsLabel = "Do you have any recommendations for improving? If you are open to follow-up, please leave your contact details.",
|
|
3949
|
+
recommendationsPlaceholder = "Share your thoughts...",
|
|
3950
|
+
submitButtonText = "Submit Feedback",
|
|
3951
|
+
successMessage = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-success", children: [
|
|
3952
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "w-5 h-5" }),
|
|
3953
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "Thank you for your feedback!" })
|
|
3954
|
+
] }),
|
|
3955
|
+
autoCloseOnSuccess = true,
|
|
3956
|
+
autoCloseDelay = 3e3
|
|
3957
|
+
}) {
|
|
3958
|
+
const [satisfaction, setSatisfaction] = React__namespace.useState(
|
|
3959
|
+
null
|
|
3960
|
+
);
|
|
3961
|
+
const [recommendations, setRecommendations] = React__namespace.useState("");
|
|
3962
|
+
const [isSubmitting, setIsSubmitting] = React__namespace.useState(false);
|
|
3963
|
+
const [submitStatus, setSubmitStatus] = React__namespace.useState("idle");
|
|
3964
|
+
const [errorMessage, setErrorMessage] = React__namespace.useState("");
|
|
3965
|
+
const [progress, setProgress] = React__namespace.useState(0);
|
|
3966
|
+
const progressIntervalRef = React__namespace.useRef(null);
|
|
3967
|
+
React__namespace.useEffect(() => {
|
|
3968
|
+
if (!isOpen) {
|
|
3969
|
+
setSatisfaction(null);
|
|
3970
|
+
setRecommendations("");
|
|
3971
|
+
setSubmitStatus("idle");
|
|
3972
|
+
setErrorMessage("");
|
|
3973
|
+
setProgress(0);
|
|
3974
|
+
if (progressIntervalRef.current) {
|
|
3975
|
+
clearInterval(progressIntervalRef.current);
|
|
3976
|
+
progressIntervalRef.current = null;
|
|
3977
|
+
}
|
|
3978
|
+
}
|
|
3979
|
+
}, [isOpen]);
|
|
3980
|
+
const handleSubmit = async () => {
|
|
3981
|
+
setIsSubmitting(true);
|
|
3982
|
+
setSubmitStatus("idle");
|
|
3983
|
+
setErrorMessage("");
|
|
3984
|
+
try {
|
|
3985
|
+
const result = await onSubmit?.({
|
|
3986
|
+
satisfaction: satisfaction || void 0,
|
|
3987
|
+
recommendations: recommendations || void 0
|
|
3988
|
+
});
|
|
3989
|
+
if (result?.success) {
|
|
3990
|
+
setSubmitStatus("success");
|
|
3991
|
+
if (autoCloseOnSuccess) {
|
|
3992
|
+
setProgress(0);
|
|
3993
|
+
const updateInterval = 50;
|
|
3994
|
+
const progressIncrement = 100 / (autoCloseDelay / updateInterval);
|
|
3995
|
+
progressIntervalRef.current = setInterval(() => {
|
|
3996
|
+
setProgress((prevProgress) => {
|
|
3997
|
+
const newProgress = prevProgress + progressIncrement;
|
|
3998
|
+
if (newProgress >= 100) {
|
|
3999
|
+
clearInterval(progressIntervalRef.current ?? void 0);
|
|
4000
|
+
requestAnimationFrame(() => onClose());
|
|
4001
|
+
return 100;
|
|
4002
|
+
}
|
|
4003
|
+
return newProgress;
|
|
4004
|
+
});
|
|
4005
|
+
}, updateInterval);
|
|
4006
|
+
}
|
|
4007
|
+
} else {
|
|
4008
|
+
setSubmitStatus("error");
|
|
4009
|
+
setErrorMessage(result?.message || "Failed to submit feedback");
|
|
4010
|
+
}
|
|
4011
|
+
} catch (error) {
|
|
4012
|
+
setSubmitStatus("error");
|
|
4013
|
+
setErrorMessage(
|
|
4014
|
+
error instanceof Error ? error.message : "An unexpected error occurred"
|
|
4015
|
+
);
|
|
4016
|
+
} finally {
|
|
4017
|
+
setIsSubmitting(false);
|
|
4018
|
+
}
|
|
4019
|
+
};
|
|
4020
|
+
React__namespace.useEffect(() => {
|
|
4021
|
+
return () => {
|
|
4022
|
+
if (progressIntervalRef.current) {
|
|
4023
|
+
clearInterval(progressIntervalRef.current);
|
|
4024
|
+
}
|
|
4025
|
+
};
|
|
4026
|
+
}, []);
|
|
4027
|
+
if (!isOpen) {
|
|
4028
|
+
return null;
|
|
4029
|
+
}
|
|
4030
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 flex items-end sm:items-center justify-center sm:justify-end sm:bottom-3 sm:right-3 sm:inset-auto", children: [
|
|
4031
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4032
|
+
"div",
|
|
4033
|
+
{
|
|
4034
|
+
className: "fixed inset-0 bg-black/50 sm:hidden",
|
|
4035
|
+
onClick: onClose,
|
|
4036
|
+
"aria-hidden": "true"
|
|
4037
|
+
}
|
|
4038
|
+
),
|
|
4039
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full sm:w-96 bg-card border-t sm:border border-border shadow-lg sm:rounded-2xl overflow-hidden animate-slideUp", children: [
|
|
4040
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4041
|
+
Button,
|
|
4042
|
+
{
|
|
4043
|
+
onClick: onClose,
|
|
4044
|
+
variant: "ghost",
|
|
4045
|
+
size: "icon-sm",
|
|
4046
|
+
className: "absolute top-3 right-3 rounded-full",
|
|
4047
|
+
"aria-label": "Close",
|
|
4048
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
|
|
4049
|
+
}
|
|
4050
|
+
),
|
|
4051
|
+
submitStatus === "success" && autoCloseOnSuccess && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 h-1 bg-muted overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4052
|
+
"div",
|
|
4053
|
+
{
|
|
4054
|
+
className: "h-full bg-primary transition-all duration-50 ease-linear",
|
|
4055
|
+
style: { width: `${progress}%` }
|
|
4056
|
+
}
|
|
4057
|
+
) }),
|
|
4058
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6", children: [
|
|
4059
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-foreground mb-1", children: title }),
|
|
4060
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: description }),
|
|
4061
|
+
submitStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4", children: successMessage }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4062
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4063
|
+
/* @__PURE__ */ jsxRuntime.jsx(Small, { className: "block mb-4", children: satisfactionLabel }),
|
|
4064
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-2", children: [
|
|
4065
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4066
|
+
Button,
|
|
4067
|
+
{
|
|
4068
|
+
type: "button",
|
|
4069
|
+
variant: satisfaction === "yes" ? "default" : "secondary",
|
|
4070
|
+
size: "sm",
|
|
4071
|
+
onClick: () => setSatisfaction("yes"),
|
|
4072
|
+
children: "Yes"
|
|
4073
|
+
}
|
|
4074
|
+
),
|
|
4075
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4076
|
+
Button,
|
|
4077
|
+
{
|
|
4078
|
+
type: "button",
|
|
4079
|
+
variant: satisfaction === "no" ? "default" : "secondary",
|
|
4080
|
+
size: "sm",
|
|
4081
|
+
onClick: () => setSatisfaction("no"),
|
|
4082
|
+
children: "No"
|
|
4083
|
+
}
|
|
4084
|
+
)
|
|
4085
|
+
] })
|
|
4086
|
+
] }),
|
|
4087
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4088
|
+
/* @__PURE__ */ jsxRuntime.jsx(Small, { className: "block mb-4", children: recommendationsLabel }),
|
|
4089
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4090
|
+
Textarea,
|
|
4091
|
+
{
|
|
4092
|
+
value: recommendations,
|
|
4093
|
+
onChange: (e) => setRecommendations(e.target.value),
|
|
4094
|
+
rows: 4,
|
|
4095
|
+
placeholder: recommendationsPlaceholder
|
|
4096
|
+
}
|
|
4097
|
+
)
|
|
4098
|
+
] }),
|
|
4099
|
+
submitStatus === "error" && /* @__PURE__ */ jsxRuntime.jsxs(Alert, { variant: "error", children: [
|
|
4100
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4" }),
|
|
4101
|
+
/* @__PURE__ */ jsxRuntime.jsxs(AlertDescription, { children: [
|
|
4102
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: "Failed to submit feedback" }),
|
|
4103
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: errorMessage })
|
|
4104
|
+
] })
|
|
4105
|
+
] })
|
|
4106
|
+
] }),
|
|
4107
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: submitStatus !== "success" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4108
|
+
Button,
|
|
4109
|
+
{
|
|
4110
|
+
type: "button",
|
|
4111
|
+
onClick: handleSubmit,
|
|
4112
|
+
disabled: isSubmitting,
|
|
4113
|
+
className: "w-full sm:w-auto",
|
|
4114
|
+
children: isSubmitting ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4115
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "w-4 h-4 mr-2 animate-spin" }),
|
|
4116
|
+
"Submitting..."
|
|
4117
|
+
] }) : submitButtonText
|
|
4118
|
+
}
|
|
4119
|
+
) })
|
|
4120
|
+
] })
|
|
4121
|
+
] })
|
|
4122
|
+
] });
|
|
4123
|
+
}
|
|
4124
|
+
function FeedbackForm({
|
|
4125
|
+
isOpen: controlledIsOpen,
|
|
4126
|
+
onOpen,
|
|
4127
|
+
onClose,
|
|
4128
|
+
onSubmit,
|
|
4129
|
+
title,
|
|
4130
|
+
description,
|
|
4131
|
+
satisfactionLabel,
|
|
4132
|
+
recommendationsLabel,
|
|
4133
|
+
recommendationsPlaceholder,
|
|
4134
|
+
submitButtonText,
|
|
4135
|
+
successMessage,
|
|
4136
|
+
showFeedbackButton = true,
|
|
4137
|
+
feedbackButtonPosition = "bottom-right",
|
|
4138
|
+
autoCloseOnSuccess,
|
|
4139
|
+
autoCloseDelay
|
|
4140
|
+
}) {
|
|
4141
|
+
const [internalIsOpen, setInternalIsOpen] = React__namespace.useState(false);
|
|
4142
|
+
const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
|
|
4143
|
+
const handleOpen = () => {
|
|
4144
|
+
if (controlledIsOpen === void 0) {
|
|
4145
|
+
setInternalIsOpen(true);
|
|
4146
|
+
}
|
|
4147
|
+
onOpen?.();
|
|
4148
|
+
};
|
|
4149
|
+
const handleClose = () => {
|
|
4150
|
+
if (controlledIsOpen === void 0) {
|
|
4151
|
+
setInternalIsOpen(false);
|
|
4152
|
+
}
|
|
4153
|
+
onClose?.();
|
|
4154
|
+
};
|
|
4155
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4156
|
+
showFeedbackButton && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4157
|
+
FeedbackButton,
|
|
4158
|
+
{
|
|
4159
|
+
onClick: handleOpen,
|
|
4160
|
+
position: feedbackButtonPosition
|
|
4161
|
+
}
|
|
4162
|
+
),
|
|
4163
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4164
|
+
FeedbackModal,
|
|
4165
|
+
{
|
|
4166
|
+
isOpen,
|
|
4167
|
+
onClose: handleClose,
|
|
4168
|
+
onSubmit,
|
|
4169
|
+
title,
|
|
4170
|
+
description,
|
|
4171
|
+
satisfactionLabel,
|
|
4172
|
+
recommendationsLabel,
|
|
4173
|
+
recommendationsPlaceholder,
|
|
4174
|
+
submitButtonText,
|
|
4175
|
+
successMessage,
|
|
4176
|
+
autoCloseOnSuccess,
|
|
4177
|
+
autoCloseDelay
|
|
4178
|
+
}
|
|
4179
|
+
)
|
|
4180
|
+
] });
|
|
4181
|
+
}
|
|
4182
|
+
const defaultMessage = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4183
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: "We use cookies" }),
|
|
4184
|
+
" to improve your experience and analyze site usage. You can choose which cookies to accept.",
|
|
4185
|
+
" "
|
|
4186
|
+
] });
|
|
4187
|
+
const defaultLearnMoreLink = /* @__PURE__ */ jsxRuntime.jsx(
|
|
4188
|
+
"a",
|
|
4189
|
+
{
|
|
4190
|
+
href: "/cookies",
|
|
4191
|
+
className: "text-primary hover:text-primary-600 underline font-medium transition-colors duration-200",
|
|
4192
|
+
children: "Learn more"
|
|
4193
|
+
}
|
|
4194
|
+
);
|
|
4195
|
+
function CookiesBanner({
|
|
4442
4196
|
className,
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4197
|
+
message = defaultMessage,
|
|
4198
|
+
learnMoreLink = defaultLearnMoreLink,
|
|
4199
|
+
onReject,
|
|
4200
|
+
onFunctional,
|
|
4201
|
+
onAccept,
|
|
4446
4202
|
...props
|
|
4447
4203
|
}) {
|
|
4448
|
-
const context = React__namespace.useContext(ToggleGroupContext);
|
|
4449
4204
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4450
|
-
|
|
4205
|
+
"div",
|
|
4451
4206
|
{
|
|
4452
|
-
"data-slot": "
|
|
4453
|
-
"data-variant": context.variant || variant,
|
|
4454
|
-
"data-size": context.size || size,
|
|
4455
|
-
"data-spacing": context.spacing,
|
|
4207
|
+
"data-slot": "cookies-banner",
|
|
4456
4208
|
className: cn(
|
|
4457
|
-
|
|
4458
|
-
variant: context.variant || variant,
|
|
4459
|
-
size: context.size || size
|
|
4460
|
-
}),
|
|
4461
|
-
"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10",
|
|
4462
|
-
"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",
|
|
4209
|
+
"fixed bottom-0 left-0 right-0 bg-card border-t border-border shadow-lg z-50",
|
|
4463
4210
|
className
|
|
4464
4211
|
),
|
|
4465
4212
|
...props,
|
|
4466
|
-
children
|
|
4213
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto px-4 py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4", children: [
|
|
4214
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(Small, { className: "text-foreground", children: [
|
|
4215
|
+
message,
|
|
4216
|
+
learnMoreLink
|
|
4217
|
+
] }) }),
|
|
4218
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row gap-2 shrink-0", children: [
|
|
4219
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onReject, children: "Reject" }),
|
|
4220
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4221
|
+
Button,
|
|
4222
|
+
{
|
|
4223
|
+
variant: "ghost",
|
|
4224
|
+
size: "sm",
|
|
4225
|
+
type: "button",
|
|
4226
|
+
onClick: onFunctional,
|
|
4227
|
+
children: "Only Functional"
|
|
4228
|
+
}
|
|
4229
|
+
),
|
|
4230
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4231
|
+
Button,
|
|
4232
|
+
{
|
|
4233
|
+
variant: "default",
|
|
4234
|
+
size: "sm",
|
|
4235
|
+
type: "button",
|
|
4236
|
+
onClick: onAccept,
|
|
4237
|
+
children: "Accept All"
|
|
4238
|
+
}
|
|
4239
|
+
)
|
|
4240
|
+
] })
|
|
4241
|
+
] }) })
|
|
4467
4242
|
}
|
|
4468
4243
|
);
|
|
4469
4244
|
}
|
|
@@ -4490,6 +4265,7 @@ exports.Avatar = Avatar;
|
|
|
4490
4265
|
exports.AvatarFallback = AvatarFallback;
|
|
4491
4266
|
exports.AvatarImage = AvatarImage;
|
|
4492
4267
|
exports.Badge = Badge;
|
|
4268
|
+
exports.Blockquote = Blockquote;
|
|
4493
4269
|
exports.Breadcrumb = Breadcrumb;
|
|
4494
4270
|
exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
|
|
4495
4271
|
exports.BreadcrumbItem = BreadcrumbItem;
|
|
@@ -4512,40 +4288,14 @@ exports.CarouselContent = CarouselContent;
|
|
|
4512
4288
|
exports.CarouselItem = CarouselItem;
|
|
4513
4289
|
exports.CarouselNext = CarouselNext;
|
|
4514
4290
|
exports.CarouselPrevious = CarouselPrevious;
|
|
4515
|
-
exports.ChartContainer = ChartContainer;
|
|
4516
|
-
exports.ChartLegend = ChartLegend;
|
|
4517
|
-
exports.ChartLegendContent = ChartLegendContent;
|
|
4518
|
-
exports.ChartStyle = ChartStyle;
|
|
4519
|
-
exports.ChartTooltip = ChartTooltip;
|
|
4520
|
-
exports.ChartTooltipContent = ChartTooltipContent;
|
|
4521
4291
|
exports.Checkbox = Checkbox;
|
|
4292
|
+
exports.Code = Code;
|
|
4522
4293
|
exports.Collapsible = Collapsible;
|
|
4523
4294
|
exports.CollapsibleContent = CollapsibleContent;
|
|
4524
4295
|
exports.CollapsibleTrigger = CollapsibleTrigger;
|
|
4525
|
-
exports.
|
|
4526
|
-
exports.
|
|
4527
|
-
exports.
|
|
4528
|
-
exports.CommandGroup = CommandGroup;
|
|
4529
|
-
exports.CommandInput = CommandInput;
|
|
4530
|
-
exports.CommandItem = CommandItem;
|
|
4531
|
-
exports.CommandList = CommandList;
|
|
4532
|
-
exports.CommandSeparator = CommandSeparator;
|
|
4533
|
-
exports.CommandShortcut = CommandShortcut;
|
|
4534
|
-
exports.ContextMenu = ContextMenu;
|
|
4535
|
-
exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
|
|
4536
|
-
exports.ContextMenuContent = ContextMenuContent;
|
|
4537
|
-
exports.ContextMenuGroup = ContextMenuGroup;
|
|
4538
|
-
exports.ContextMenuItem = ContextMenuItem;
|
|
4539
|
-
exports.ContextMenuLabel = ContextMenuLabel;
|
|
4540
|
-
exports.ContextMenuPortal = ContextMenuPortal;
|
|
4541
|
-
exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
|
|
4542
|
-
exports.ContextMenuRadioItem = ContextMenuRadioItem;
|
|
4543
|
-
exports.ContextMenuSeparator = ContextMenuSeparator;
|
|
4544
|
-
exports.ContextMenuShortcut = ContextMenuShortcut;
|
|
4545
|
-
exports.ContextMenuSub = ContextMenuSub;
|
|
4546
|
-
exports.ContextMenuSubContent = ContextMenuSubContent;
|
|
4547
|
-
exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
|
|
4548
|
-
exports.ContextMenuTrigger = ContextMenuTrigger;
|
|
4296
|
+
exports.Content = Content;
|
|
4297
|
+
exports.ContentExample = ContentExample;
|
|
4298
|
+
exports.CookiesBanner = CookiesBanner;
|
|
4549
4299
|
exports.Dialog = Dialog;
|
|
4550
4300
|
exports.DialogClose = DialogClose;
|
|
4551
4301
|
exports.DialogContent = DialogContent;
|
|
@@ -4556,16 +4306,6 @@ exports.DialogOverlay = DialogOverlay;
|
|
|
4556
4306
|
exports.DialogPortal = DialogPortal;
|
|
4557
4307
|
exports.DialogTitle = DialogTitle;
|
|
4558
4308
|
exports.DialogTrigger = DialogTrigger;
|
|
4559
|
-
exports.Drawer = Drawer;
|
|
4560
|
-
exports.DrawerClose = DrawerClose;
|
|
4561
|
-
exports.DrawerContent = DrawerContent;
|
|
4562
|
-
exports.DrawerDescription = DrawerDescription;
|
|
4563
|
-
exports.DrawerFooter = DrawerFooter;
|
|
4564
|
-
exports.DrawerHeader = DrawerHeader;
|
|
4565
|
-
exports.DrawerOverlay = DrawerOverlay;
|
|
4566
|
-
exports.DrawerPortal = DrawerPortal;
|
|
4567
|
-
exports.DrawerTitle = DrawerTitle;
|
|
4568
|
-
exports.DrawerTrigger = DrawerTrigger;
|
|
4569
4309
|
exports.DropdownMenu = DropdownMenu;
|
|
4570
4310
|
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
4571
4311
|
exports.DropdownMenuContent = DropdownMenuContent;
|
|
@@ -4581,6 +4321,8 @@ exports.DropdownMenuSub = DropdownMenuSub;
|
|
|
4581
4321
|
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
4582
4322
|
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
4583
4323
|
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
4324
|
+
exports.FeedbackForm = FeedbackForm;
|
|
4325
|
+
exports.Footer = Footer;
|
|
4584
4326
|
exports.Form = Form;
|
|
4585
4327
|
exports.FormControl = FormControl;
|
|
4586
4328
|
exports.FormDescription = FormDescription;
|
|
@@ -4588,15 +4330,16 @@ exports.FormField = FormField;
|
|
|
4588
4330
|
exports.FormItem = FormItem;
|
|
4589
4331
|
exports.FormLabel = FormLabel;
|
|
4590
4332
|
exports.FormMessage = FormMessage;
|
|
4591
|
-
exports.
|
|
4592
|
-
exports.
|
|
4593
|
-
exports.
|
|
4333
|
+
exports.H1 = H1;
|
|
4334
|
+
exports.H2 = H2;
|
|
4335
|
+
exports.H3 = H3;
|
|
4336
|
+
exports.H4 = H4;
|
|
4337
|
+
exports.Header = Header;
|
|
4594
4338
|
exports.Input = Input;
|
|
4595
|
-
exports.InputOTP = InputOTP;
|
|
4596
|
-
exports.InputOTPGroup = InputOTPGroup;
|
|
4597
|
-
exports.InputOTPSeparator = InputOTPSeparator;
|
|
4598
|
-
exports.InputOTPSlot = InputOTPSlot;
|
|
4599
4339
|
exports.Label = Label;
|
|
4340
|
+
exports.Lead = Lead;
|
|
4341
|
+
exports.Link = Link;
|
|
4342
|
+
exports.List = List;
|
|
4600
4343
|
exports.Menubar = Menubar;
|
|
4601
4344
|
exports.MenubarCheckboxItem = MenubarCheckboxItem;
|
|
4602
4345
|
exports.MenubarContent = MenubarContent;
|
|
@@ -4613,6 +4356,7 @@ exports.MenubarSub = MenubarSub;
|
|
|
4613
4356
|
exports.MenubarSubContent = MenubarSubContent;
|
|
4614
4357
|
exports.MenubarSubTrigger = MenubarSubTrigger;
|
|
4615
4358
|
exports.MenubarTrigger = MenubarTrigger;
|
|
4359
|
+
exports.Muted = Muted;
|
|
4616
4360
|
exports.NavigationMenu = NavigationMenu;
|
|
4617
4361
|
exports.NavigationMenuContent = NavigationMenuContent;
|
|
4618
4362
|
exports.NavigationMenuIndicator = NavigationMenuIndicator;
|
|
@@ -4621,23 +4365,17 @@ exports.NavigationMenuLink = NavigationMenuLink;
|
|
|
4621
4365
|
exports.NavigationMenuList = NavigationMenuList;
|
|
4622
4366
|
exports.NavigationMenuTrigger = NavigationMenuTrigger;
|
|
4623
4367
|
exports.NavigationMenuViewport = NavigationMenuViewport;
|
|
4624
|
-
exports.
|
|
4625
|
-
exports.
|
|
4626
|
-
exports.
|
|
4627
|
-
exports.
|
|
4628
|
-
exports.
|
|
4629
|
-
exports.
|
|
4630
|
-
exports.
|
|
4631
|
-
exports.
|
|
4632
|
-
exports.PopoverAnchor = PopoverAnchor;
|
|
4633
|
-
exports.PopoverContent = PopoverContent;
|
|
4634
|
-
exports.PopoverTrigger = PopoverTrigger;
|
|
4368
|
+
exports.OrderedList = OrderedList;
|
|
4369
|
+
exports.P = P;
|
|
4370
|
+
exports.Panel = Panel;
|
|
4371
|
+
exports.PanelContent = PanelContent;
|
|
4372
|
+
exports.PanelDescription = PanelDescription;
|
|
4373
|
+
exports.PanelFooter = PanelFooter;
|
|
4374
|
+
exports.PanelHeader = PanelHeader;
|
|
4375
|
+
exports.PanelTitle = PanelTitle;
|
|
4635
4376
|
exports.Progress = Progress;
|
|
4636
4377
|
exports.RadioGroup = RadioGroup;
|
|
4637
4378
|
exports.RadioGroupItem = RadioGroupItem;
|
|
4638
|
-
exports.ResizableHandle = ResizableHandle;
|
|
4639
|
-
exports.ResizablePanel = ResizablePanel;
|
|
4640
|
-
exports.ResizablePanelGroup = ResizablePanelGroup;
|
|
4641
4379
|
exports.ScrollArea = ScrollArea;
|
|
4642
4380
|
exports.ScrollBar = ScrollBar;
|
|
4643
4381
|
exports.Select = Select;
|
|
@@ -4684,10 +4422,12 @@ exports.SidebarSeparator = SidebarSeparator;
|
|
|
4684
4422
|
exports.SidebarTrigger = SidebarTrigger;
|
|
4685
4423
|
exports.Skeleton = Skeleton;
|
|
4686
4424
|
exports.Slider = Slider;
|
|
4425
|
+
exports.Small = Small;
|
|
4687
4426
|
exports.Stepper = Stepper;
|
|
4688
4427
|
exports.StepperContent = StepperContent;
|
|
4689
4428
|
exports.StepperFooter = StepperFooter;
|
|
4690
4429
|
exports.StepperHeader = StepperHeader;
|
|
4430
|
+
exports.Strong = Strong;
|
|
4691
4431
|
exports.Switch = Switch;
|
|
4692
4432
|
exports.Table = Table;
|
|
4693
4433
|
exports.TableBody = TableBody;
|