@dilipod/ui 0.2.15 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/alert-dialog.d.ts +34 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/breadcrumbs.d.ts +30 -0
- package/dist/components/breadcrumbs.d.ts.map +1 -0
- package/dist/components/date-range-picker.d.ts +36 -0
- package/dist/components/date-range-picker.d.ts.map +1 -0
- package/dist/components/pagination.d.ts +29 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/popover.d.ts +10 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/radio-group.d.ts +17 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/settings-nav.d.ts +35 -0
- package/dist/components/settings-nav.d.ts.map +1 -0
- package/dist/components/skeleton.d.ts +28 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/step-progress.d.ts +28 -0
- package/dist/components/step-progress.d.ts.map +1 -0
- package/dist/components/switch.d.ts +15 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +10 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tooltip.d.ts +17 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1263 -87
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1209 -89
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -1
- package/src/components/alert-dialog.tsx +203 -0
- package/src/components/breadcrumbs.tsx +160 -0
- package/src/components/date-range-picker.tsx +183 -0
- package/src/components/pagination.tsx +220 -0
- package/src/components/popover.tsx +53 -0
- package/src/components/radio-group.tsx +125 -0
- package/src/components/settings-nav.tsx +137 -0
- package/src/components/skeleton.tsx +103 -0
- package/src/components/step-progress.tsx +205 -0
- package/src/components/switch.tsx +95 -0
- package/src/components/tabs.tsx +92 -0
- package/src/components/tooltip.tsx +78 -0
- package/src/index.ts +78 -0
package/dist/index.mjs
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React27 from 'react';
|
|
2
2
|
import { Slot, createSlot } from '@radix-ui/react-slot';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import * as SheetPrimitive from '@radix-ui/react-dialog';
|
|
8
8
|
import * as react_star from '@phosphor-icons/react';
|
|
9
|
-
import { X,
|
|
9
|
+
import { X, Circle, CaretLeft, DotsThree, CaretRight, Check, House, Info, WarningCircle } from '@phosphor-icons/react';
|
|
10
10
|
import 'react-dom';
|
|
11
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
12
|
+
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
11
13
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
12
14
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
13
15
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
14
16
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
17
|
+
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
18
|
+
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
19
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
20
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
15
21
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
16
22
|
|
|
17
23
|
var __defProp = Object.defineProperty;
|
|
@@ -40,10 +46,23 @@ __export(index_exports, {
|
|
|
40
46
|
AccordionItem: () => AccordionItem,
|
|
41
47
|
AccordionTrigger: () => AccordionTrigger,
|
|
42
48
|
Alert: () => Alert,
|
|
49
|
+
AlertDialog: () => AlertDialog,
|
|
50
|
+
AlertDialogAction: () => AlertDialogAction,
|
|
51
|
+
AlertDialogCancel: () => AlertDialogCancel,
|
|
52
|
+
AlertDialogContent: () => AlertDialogContent,
|
|
53
|
+
AlertDialogDescription: () => AlertDialogDescription,
|
|
54
|
+
AlertDialogFooter: () => AlertDialogFooter,
|
|
55
|
+
AlertDialogHeader: () => AlertDialogHeader,
|
|
56
|
+
AlertDialogOverlay: () => AlertDialogOverlay,
|
|
57
|
+
AlertDialogPortal: () => AlertDialogPortal,
|
|
58
|
+
AlertDialogTitle: () => AlertDialogTitle,
|
|
59
|
+
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
43
60
|
Avatar: () => Avatar,
|
|
44
61
|
AvatarFallback: () => AvatarFallback,
|
|
45
62
|
AvatarImage: () => AvatarImage,
|
|
46
63
|
Badge: () => Badge,
|
|
64
|
+
BreadcrumbLink: () => BreadcrumbLink,
|
|
65
|
+
Breadcrumbs: () => Breadcrumbs,
|
|
47
66
|
Button: () => Button,
|
|
48
67
|
Card: () => Card,
|
|
49
68
|
CardContent: () => CardContent,
|
|
@@ -53,6 +72,9 @@ __export(index_exports, {
|
|
|
53
72
|
CardTitle: () => CardTitle,
|
|
54
73
|
Checkbox: () => Checkbox,
|
|
55
74
|
CodeBlock: () => CodeBlock,
|
|
75
|
+
ConfirmDialog: () => ConfirmDialog,
|
|
76
|
+
DateRangePicker: () => DateRangePicker,
|
|
77
|
+
DateRangeSelect: () => DateRangeSelect,
|
|
56
78
|
Dialog: () => Dialog,
|
|
57
79
|
DialogClose: () => DialogClose,
|
|
58
80
|
DialogContent: () => DialogContent,
|
|
@@ -84,6 +106,7 @@ __export(index_exports, {
|
|
|
84
106
|
IconBox: () => IconBox,
|
|
85
107
|
Input: () => Input,
|
|
86
108
|
Label: () => Label2,
|
|
109
|
+
LabeledSwitch: () => LabeledSwitch,
|
|
87
110
|
Logo: () => Logo,
|
|
88
111
|
MetricCard: () => MetricCard,
|
|
89
112
|
NavigationMenu: () => NavigationMenu,
|
|
@@ -94,9 +117,22 @@ __export(index_exports, {
|
|
|
94
117
|
NavigationMenuList: () => NavigationMenuList,
|
|
95
118
|
NavigationMenuTrigger: () => NavigationMenuTrigger,
|
|
96
119
|
NavigationMenuViewport: () => NavigationMenuViewport,
|
|
120
|
+
Pagination: () => Pagination,
|
|
121
|
+
Popover: () => Popover,
|
|
122
|
+
PopoverAnchor: () => PopoverAnchor,
|
|
123
|
+
PopoverArrow: () => PopoverArrow,
|
|
124
|
+
PopoverClose: () => PopoverClose,
|
|
125
|
+
PopoverContent: () => PopoverContent,
|
|
126
|
+
PopoverTrigger: () => PopoverTrigger,
|
|
97
127
|
Progress: () => Progress,
|
|
128
|
+
RadioGroup: () => RadioGroup,
|
|
129
|
+
RadioGroupCard: () => RadioGroupCard,
|
|
130
|
+
RadioGroupItem: () => RadioGroupItem,
|
|
131
|
+
RadioGroupOption: () => RadioGroupOption,
|
|
98
132
|
Select: () => Select,
|
|
99
133
|
Separator: () => Separator2,
|
|
134
|
+
SettingsNav: () => SettingsNav,
|
|
135
|
+
SettingsNavLink: () => SettingsNavLink,
|
|
100
136
|
Sheet: () => Sheet,
|
|
101
137
|
SheetClose: () => SheetClose,
|
|
102
138
|
SheetContent: () => SheetContent,
|
|
@@ -109,7 +145,15 @@ __export(index_exports, {
|
|
|
109
145
|
SheetTrigger: () => SheetTrigger,
|
|
110
146
|
Sidebar: () => Sidebar,
|
|
111
147
|
SidebarNavItem: () => SidebarNavItem,
|
|
148
|
+
SimplePagination: () => SimplePagination,
|
|
149
|
+
SimpleTooltip: () => SimpleTooltip,
|
|
150
|
+
Skeleton: () => Skeleton,
|
|
151
|
+
SkeletonCard: () => SkeletonCard,
|
|
152
|
+
SkeletonText: () => SkeletonText,
|
|
112
153
|
Stat: () => Stat,
|
|
154
|
+
StepDots: () => StepDots,
|
|
155
|
+
StepProgress: () => StepProgress,
|
|
156
|
+
Switch: () => Switch,
|
|
113
157
|
Table: () => Table,
|
|
114
158
|
TableBody: () => TableBody,
|
|
115
159
|
TableCaption: () => TableCaption,
|
|
@@ -118,6 +162,12 @@ __export(index_exports, {
|
|
|
118
162
|
TableHead: () => TableHead,
|
|
119
163
|
TableHeader: () => TableHeader,
|
|
120
164
|
TableRow: () => TableRow,
|
|
165
|
+
Tabs: () => Tabs,
|
|
166
|
+
TabsContent: () => TabsContent,
|
|
167
|
+
TabsList: () => TabsList,
|
|
168
|
+
TabsListUnderline: () => TabsListUnderline,
|
|
169
|
+
TabsTrigger: () => TabsTrigger,
|
|
170
|
+
TabsTriggerUnderline: () => TabsTriggerUnderline,
|
|
121
171
|
Tag: () => Tag,
|
|
122
172
|
Textarea: () => Textarea,
|
|
123
173
|
Toast: () => Toast,
|
|
@@ -129,12 +179,18 @@ __export(index_exports, {
|
|
|
129
179
|
ToastTitle: () => ToastTitle,
|
|
130
180
|
ToastViewport: () => ToastViewport,
|
|
131
181
|
Toaster: () => Toaster,
|
|
182
|
+
Tooltip: () => Tooltip,
|
|
183
|
+
TooltipArrow: () => TooltipArrow,
|
|
184
|
+
TooltipContent: () => TooltipContent,
|
|
185
|
+
TooltipProvider: () => TooltipProvider,
|
|
186
|
+
TooltipTrigger: () => TooltipTrigger,
|
|
132
187
|
UsageBar: () => UsageBar,
|
|
133
188
|
UsageChart: () => UsageChart,
|
|
134
189
|
alertVariants: () => alertVariants,
|
|
135
190
|
badgeVariants: () => badgeVariants,
|
|
136
191
|
buttonVariants: () => buttonVariants,
|
|
137
192
|
cn: () => cn,
|
|
193
|
+
getDateRangeFromPreset: () => getDateRangeFromPreset,
|
|
138
194
|
iconBoxVariants: () => iconBoxVariants,
|
|
139
195
|
metricCardVariants: () => metricCardVariants,
|
|
140
196
|
navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
|
|
@@ -175,7 +231,7 @@ var buttonVariants = cva(
|
|
|
175
231
|
}
|
|
176
232
|
}
|
|
177
233
|
);
|
|
178
|
-
var Button =
|
|
234
|
+
var Button = React27.forwardRef(
|
|
179
235
|
({ className, variant, size, asChild = false, loading, loadingText, children, disabled, ...props }, ref) => {
|
|
180
236
|
const Comp = asChild ? Slot : "button";
|
|
181
237
|
const isDisabled = disabled || loading;
|
|
@@ -228,7 +284,7 @@ var Sheet = SheetPrimitive.Root;
|
|
|
228
284
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
229
285
|
var SheetClose = SheetPrimitive.Close;
|
|
230
286
|
var SheetPortal = SheetPrimitive.Portal;
|
|
231
|
-
var SheetOverlay =
|
|
287
|
+
var SheetOverlay = React27.forwardRef(({ className, ...props }, ref) => (
|
|
232
288
|
// @ts-ignore - Radix Dialog Overlay accepts className at runtime
|
|
233
289
|
/* @__PURE__ */ jsx(
|
|
234
290
|
SheetPrimitive.Overlay,
|
|
@@ -259,7 +315,7 @@ var sheetVariants = cva(
|
|
|
259
315
|
}
|
|
260
316
|
}
|
|
261
317
|
);
|
|
262
|
-
var SheetContent =
|
|
318
|
+
var SheetContent = React27.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
263
319
|
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
264
320
|
/* @__PURE__ */ jsxs(
|
|
265
321
|
SheetPrimitive.Content,
|
|
@@ -306,7 +362,7 @@ var SheetFooter = ({
|
|
|
306
362
|
}
|
|
307
363
|
);
|
|
308
364
|
SheetFooter.displayName = "SheetFooter";
|
|
309
|
-
var SheetTitle =
|
|
365
|
+
var SheetTitle = React27.forwardRef(({ className, ...props }, ref) => (
|
|
310
366
|
// @ts-ignore - Radix Dialog Title accepts className at runtime
|
|
311
367
|
/* @__PURE__ */ jsx(
|
|
312
368
|
SheetPrimitive.Title,
|
|
@@ -318,7 +374,7 @@ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => (
|
|
|
318
374
|
)
|
|
319
375
|
));
|
|
320
376
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
321
|
-
var SheetDescription =
|
|
377
|
+
var SheetDescription = React27.forwardRef(({ className, ...props }, ref) => (
|
|
322
378
|
// @ts-ignore - Radix Dialog Description accepts className at runtime
|
|
323
379
|
/* @__PURE__ */ jsx(
|
|
324
380
|
SheetPrimitive.Description,
|
|
@@ -418,7 +474,7 @@ var badgeVariants = cva(
|
|
|
418
474
|
}
|
|
419
475
|
}
|
|
420
476
|
);
|
|
421
|
-
var Badge =
|
|
477
|
+
var Badge = React27.forwardRef(
|
|
422
478
|
({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {
|
|
423
479
|
const getPulseColorClass = () => {
|
|
424
480
|
const color = pulseColorProp || variant || "default";
|
|
@@ -472,7 +528,7 @@ var Badge = React25.forwardRef(
|
|
|
472
528
|
}
|
|
473
529
|
);
|
|
474
530
|
Badge.displayName = "Badge";
|
|
475
|
-
var Card =
|
|
531
|
+
var Card = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
476
532
|
"div",
|
|
477
533
|
{
|
|
478
534
|
ref,
|
|
@@ -484,7 +540,7 @@ var Card = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
484
540
|
}
|
|
485
541
|
));
|
|
486
542
|
Card.displayName = "Card";
|
|
487
|
-
var CardHeader =
|
|
543
|
+
var CardHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
488
544
|
"div",
|
|
489
545
|
{
|
|
490
546
|
ref,
|
|
@@ -493,7 +549,7 @@ var CardHeader = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
493
549
|
}
|
|
494
550
|
));
|
|
495
551
|
CardHeader.displayName = "CardHeader";
|
|
496
|
-
var CardTitle =
|
|
552
|
+
var CardTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
497
553
|
"h3",
|
|
498
554
|
{
|
|
499
555
|
ref,
|
|
@@ -505,7 +561,7 @@ var CardTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
505
561
|
}
|
|
506
562
|
));
|
|
507
563
|
CardTitle.displayName = "CardTitle";
|
|
508
|
-
var CardDescription =
|
|
564
|
+
var CardDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
509
565
|
"p",
|
|
510
566
|
{
|
|
511
567
|
ref,
|
|
@@ -514,9 +570,9 @@ var CardDescription = React25.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
514
570
|
}
|
|
515
571
|
));
|
|
516
572
|
CardDescription.displayName = "CardDescription";
|
|
517
|
-
var CardContent =
|
|
573
|
+
var CardContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
518
574
|
CardContent.displayName = "CardContent";
|
|
519
|
-
var CardFooter =
|
|
575
|
+
var CardFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
520
576
|
"div",
|
|
521
577
|
{
|
|
522
578
|
ref,
|
|
@@ -539,7 +595,7 @@ var progressVariants = cva("h-full rounded-full transition-all duration-300", {
|
|
|
539
595
|
variant: "default"
|
|
540
596
|
}
|
|
541
597
|
});
|
|
542
|
-
var Progress =
|
|
598
|
+
var Progress = React27.forwardRef(
|
|
543
599
|
({ className, value, variant, showLabel, label = "Progress", size = "default", ...props }, ref) => {
|
|
544
600
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
545
601
|
const heightClass = {
|
|
@@ -606,7 +662,7 @@ var iconBoxVariants = cva(
|
|
|
606
662
|
}
|
|
607
663
|
}
|
|
608
664
|
);
|
|
609
|
-
var IconBox =
|
|
665
|
+
var IconBox = React27.forwardRef(
|
|
610
666
|
({ className, variant, size, rounded, children, ...props }, ref) => {
|
|
611
667
|
return /* @__PURE__ */ jsx(
|
|
612
668
|
"div",
|
|
@@ -642,7 +698,7 @@ var tagVariants = cva(
|
|
|
642
698
|
}
|
|
643
699
|
}
|
|
644
700
|
);
|
|
645
|
-
var Tag =
|
|
701
|
+
var Tag = React27.forwardRef(
|
|
646
702
|
({ className, variant, size, icon, children, ...props }, ref) => {
|
|
647
703
|
return /* @__PURE__ */ jsxs(
|
|
648
704
|
"span",
|
|
@@ -696,7 +752,7 @@ var valueVariants = cva("font-bold", {
|
|
|
696
752
|
color: "default"
|
|
697
753
|
}
|
|
698
754
|
});
|
|
699
|
-
var Stat =
|
|
755
|
+
var Stat = React27.forwardRef(
|
|
700
756
|
({
|
|
701
757
|
className,
|
|
702
758
|
variant,
|
|
@@ -778,7 +834,7 @@ var iconVariants = cva("h-5 w-5", {
|
|
|
778
834
|
color: "cyan"
|
|
779
835
|
}
|
|
780
836
|
});
|
|
781
|
-
var MetricCard =
|
|
837
|
+
var MetricCard = React27.forwardRef(
|
|
782
838
|
({
|
|
783
839
|
className,
|
|
784
840
|
variant,
|
|
@@ -837,7 +893,7 @@ var progressColorVariants = cva("", {
|
|
|
837
893
|
color: "cyan"
|
|
838
894
|
}
|
|
839
895
|
});
|
|
840
|
-
var UsageBar =
|
|
896
|
+
var UsageBar = React27.forwardRef(
|
|
841
897
|
({
|
|
842
898
|
className,
|
|
843
899
|
size,
|
|
@@ -909,7 +965,7 @@ var UsageBar = React25.forwardRef(
|
|
|
909
965
|
}
|
|
910
966
|
);
|
|
911
967
|
UsageBar.displayName = "UsageBar";
|
|
912
|
-
var UsageChart =
|
|
968
|
+
var UsageChart = React27.forwardRef(
|
|
913
969
|
({
|
|
914
970
|
className,
|
|
915
971
|
data,
|
|
@@ -920,8 +976,8 @@ var UsageChart = React25.forwardRef(
|
|
|
920
976
|
formatValue = (v) => v.toLocaleString(),
|
|
921
977
|
...props
|
|
922
978
|
}, ref) => {
|
|
923
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
924
|
-
const maxValue =
|
|
979
|
+
const [hoveredIndex, setHoveredIndex] = React27.useState(null);
|
|
980
|
+
const maxValue = React27.useMemo(() => {
|
|
925
981
|
return Math.max(
|
|
926
982
|
...data.map((d) => d.value + (d.secondaryValue || 0)),
|
|
927
983
|
1
|
|
@@ -1048,7 +1104,7 @@ var UsageChart = React25.forwardRef(
|
|
|
1048
1104
|
}
|
|
1049
1105
|
);
|
|
1050
1106
|
UsageChart.displayName = "UsageChart";
|
|
1051
|
-
var Input =
|
|
1107
|
+
var Input = React27.forwardRef(
|
|
1052
1108
|
({ className, type, error, ...props }, ref) => {
|
|
1053
1109
|
return /* @__PURE__ */ jsx(
|
|
1054
1110
|
"input",
|
|
@@ -1088,7 +1144,7 @@ var NODES = [
|
|
|
1088
1144
|
];
|
|
1089
1145
|
var Primitive = NODES.reduce((primitive, node) => {
|
|
1090
1146
|
const Slot2 = createSlot(`Primitive.${node}`);
|
|
1091
|
-
const Node =
|
|
1147
|
+
const Node = React27.forwardRef((props, forwardedRef) => {
|
|
1092
1148
|
const { asChild, ...primitiveProps } = props;
|
|
1093
1149
|
const Comp = asChild ? Slot2 : node;
|
|
1094
1150
|
if (typeof window !== "undefined") {
|
|
@@ -1100,7 +1156,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
1100
1156
|
return { ...primitive, [node]: Node };
|
|
1101
1157
|
}, {});
|
|
1102
1158
|
var NAME = "Label";
|
|
1103
|
-
var Label =
|
|
1159
|
+
var Label = React27.forwardRef((props, forwardedRef) => {
|
|
1104
1160
|
return /* @__PURE__ */ jsx(
|
|
1105
1161
|
Primitive.label,
|
|
1106
1162
|
{
|
|
@@ -1120,7 +1176,7 @@ var Root2 = Label;
|
|
|
1120
1176
|
var labelVariants = cva(
|
|
1121
1177
|
"text-sm font-medium leading-none text-[var(--black)] peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
1122
1178
|
);
|
|
1123
|
-
var Label2 =
|
|
1179
|
+
var Label2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1124
1180
|
Root2,
|
|
1125
1181
|
{
|
|
1126
1182
|
ref,
|
|
@@ -1129,7 +1185,7 @@ var Label2 = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1129
1185
|
}
|
|
1130
1186
|
));
|
|
1131
1187
|
Label2.displayName = Root2.displayName;
|
|
1132
|
-
var Textarea =
|
|
1188
|
+
var Textarea = React27.forwardRef(
|
|
1133
1189
|
({ className, error, ...props }, ref) => {
|
|
1134
1190
|
return /* @__PURE__ */ jsx(
|
|
1135
1191
|
"textarea",
|
|
@@ -1147,7 +1203,7 @@ var Textarea = React25.forwardRef(
|
|
|
1147
1203
|
}
|
|
1148
1204
|
);
|
|
1149
1205
|
Textarea.displayName = "Textarea";
|
|
1150
|
-
var Select =
|
|
1206
|
+
var Select = React27.forwardRef(
|
|
1151
1207
|
({ className, error, children, ...props }, ref) => {
|
|
1152
1208
|
return /* @__PURE__ */ jsx(
|
|
1153
1209
|
"select",
|
|
@@ -1174,7 +1230,7 @@ Select.displayName = "Select";
|
|
|
1174
1230
|
// src/icons.ts
|
|
1175
1231
|
var icons_exports = {};
|
|
1176
1232
|
__reExport(icons_exports, react_star);
|
|
1177
|
-
var Checkbox =
|
|
1233
|
+
var Checkbox = React27.forwardRef(
|
|
1178
1234
|
({ className, checked, onCheckedChange, ...props }, ref) => {
|
|
1179
1235
|
return /* @__PURE__ */ jsxs("label", { className: "relative inline-flex items-center cursor-pointer", children: [
|
|
1180
1236
|
/* @__PURE__ */ jsx(
|
|
@@ -1205,8 +1261,150 @@ var Checkbox = React25.forwardRef(
|
|
|
1205
1261
|
}
|
|
1206
1262
|
);
|
|
1207
1263
|
Checkbox.displayName = "Checkbox";
|
|
1264
|
+
var Switch = React27.forwardRef(({ className, size = "default", ...props }, ref) => {
|
|
1265
|
+
const sizeStyles = {
|
|
1266
|
+
sm: {
|
|
1267
|
+
root: "h-4 w-7",
|
|
1268
|
+
thumb: "h-3 w-3 data-[state=checked]:translate-x-3"
|
|
1269
|
+
},
|
|
1270
|
+
default: {
|
|
1271
|
+
root: "h-5 w-9",
|
|
1272
|
+
thumb: "h-4 w-4 data-[state=checked]:translate-x-4"
|
|
1273
|
+
},
|
|
1274
|
+
lg: {
|
|
1275
|
+
root: "h-6 w-11",
|
|
1276
|
+
thumb: "h-5 w-5 data-[state=checked]:translate-x-5"
|
|
1277
|
+
}
|
|
1278
|
+
};
|
|
1279
|
+
return /* @__PURE__ */ jsx(
|
|
1280
|
+
SwitchPrimitive.Root,
|
|
1281
|
+
{
|
|
1282
|
+
className: cn(
|
|
1283
|
+
"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[var(--cyan)] data-[state=unchecked]:bg-input",
|
|
1284
|
+
sizeStyles[size].root,
|
|
1285
|
+
className
|
|
1286
|
+
),
|
|
1287
|
+
...props,
|
|
1288
|
+
ref,
|
|
1289
|
+
children: /* @__PURE__ */ jsx(
|
|
1290
|
+
SwitchPrimitive.Thumb,
|
|
1291
|
+
{
|
|
1292
|
+
className: cn(
|
|
1293
|
+
"pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=unchecked]:translate-x-0",
|
|
1294
|
+
sizeStyles[size].thumb
|
|
1295
|
+
)
|
|
1296
|
+
}
|
|
1297
|
+
)
|
|
1298
|
+
}
|
|
1299
|
+
);
|
|
1300
|
+
});
|
|
1301
|
+
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
1302
|
+
var LabeledSwitch = React27.forwardRef(({ label, description, labelPosition = "right", className, id, ...props }, ref) => {
|
|
1303
|
+
const switchId = id || React27.useId();
|
|
1304
|
+
const labelContent = /* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
|
|
1305
|
+
/* @__PURE__ */ jsx(
|
|
1306
|
+
"label",
|
|
1307
|
+
{
|
|
1308
|
+
htmlFor: switchId,
|
|
1309
|
+
className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",
|
|
1310
|
+
children: label
|
|
1311
|
+
}
|
|
1312
|
+
),
|
|
1313
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: description })
|
|
1314
|
+
] });
|
|
1315
|
+
return /* @__PURE__ */ jsxs(
|
|
1316
|
+
"div",
|
|
1317
|
+
{
|
|
1318
|
+
className: cn(
|
|
1319
|
+
"flex items-center gap-3",
|
|
1320
|
+
labelPosition === "left" && "flex-row-reverse justify-end",
|
|
1321
|
+
className
|
|
1322
|
+
),
|
|
1323
|
+
children: [
|
|
1324
|
+
/* @__PURE__ */ jsx(Switch, { ref, id: switchId, ...props }),
|
|
1325
|
+
labelContent
|
|
1326
|
+
]
|
|
1327
|
+
}
|
|
1328
|
+
);
|
|
1329
|
+
});
|
|
1330
|
+
LabeledSwitch.displayName = "LabeledSwitch";
|
|
1331
|
+
var RadioGroup = React27.forwardRef(({ className, ...props }, ref) => {
|
|
1332
|
+
return /* @__PURE__ */ jsx(
|
|
1333
|
+
RadioGroupPrimitive.Root,
|
|
1334
|
+
{
|
|
1335
|
+
className: cn("grid gap-2", className),
|
|
1336
|
+
...props,
|
|
1337
|
+
ref
|
|
1338
|
+
}
|
|
1339
|
+
);
|
|
1340
|
+
});
|
|
1341
|
+
RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
|
|
1342
|
+
var RadioGroupItem = React27.forwardRef(({ className, ...props }, ref) => {
|
|
1343
|
+
return /* @__PURE__ */ jsx(
|
|
1344
|
+
RadioGroupPrimitive.Item,
|
|
1345
|
+
{
|
|
1346
|
+
ref,
|
|
1347
|
+
className: cn(
|
|
1348
|
+
"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
1349
|
+
className
|
|
1350
|
+
),
|
|
1351
|
+
...props,
|
|
1352
|
+
children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(Circle, { weight: "fill", className: "h-2.5 w-2.5 fill-current" }) })
|
|
1353
|
+
}
|
|
1354
|
+
);
|
|
1355
|
+
});
|
|
1356
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
1357
|
+
var RadioGroupOption = React27.forwardRef(({ label, description, className, id, ...props }, ref) => {
|
|
1358
|
+
const optionId = id || React27.useId();
|
|
1359
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-3", className), children: [
|
|
1360
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { ref, id: optionId, ...props }),
|
|
1361
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
|
|
1362
|
+
/* @__PURE__ */ jsx(
|
|
1363
|
+
"label",
|
|
1364
|
+
{
|
|
1365
|
+
htmlFor: optionId,
|
|
1366
|
+
className: "text-sm font-medium leading-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
1367
|
+
children: label
|
|
1368
|
+
}
|
|
1369
|
+
),
|
|
1370
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: description })
|
|
1371
|
+
] })
|
|
1372
|
+
] });
|
|
1373
|
+
});
|
|
1374
|
+
RadioGroupOption.displayName = "RadioGroupOption";
|
|
1375
|
+
var RadioGroupCard = React27.forwardRef(({ label, description, children, className, id, ...props }, ref) => {
|
|
1376
|
+
const cardId = id || React27.useId();
|
|
1377
|
+
return /* @__PURE__ */ jsx(
|
|
1378
|
+
RadioGroupPrimitive.Item,
|
|
1379
|
+
{
|
|
1380
|
+
ref,
|
|
1381
|
+
id: cardId,
|
|
1382
|
+
className: cn(
|
|
1383
|
+
"relative flex cursor-pointer rounded-lg border bg-background p-4 transition-all hover:border-[var(--cyan)]/50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=checked]:border-[var(--cyan)] data-[state=checked]:ring-1 data-[state=checked]:ring-[var(--cyan)] disabled:cursor-not-allowed disabled:opacity-50",
|
|
1384
|
+
className
|
|
1385
|
+
),
|
|
1386
|
+
...props,
|
|
1387
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-start gap-3", children: [
|
|
1388
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-5 items-center", children: /* @__PURE__ */ jsx("div", { className: "aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow", children: /* @__PURE__ */ jsx(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsx(Circle, { weight: "fill", className: "h-2.5 w-2.5 fill-[var(--cyan)]" }) }) }) }),
|
|
1389
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
|
|
1390
|
+
/* @__PURE__ */ jsx(
|
|
1391
|
+
"label",
|
|
1392
|
+
{
|
|
1393
|
+
htmlFor: cardId,
|
|
1394
|
+
className: "text-sm font-medium leading-none cursor-pointer",
|
|
1395
|
+
children: label
|
|
1396
|
+
}
|
|
1397
|
+
),
|
|
1398
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: description }),
|
|
1399
|
+
children
|
|
1400
|
+
] })
|
|
1401
|
+
] })
|
|
1402
|
+
}
|
|
1403
|
+
);
|
|
1404
|
+
});
|
|
1405
|
+
RadioGroupCard.displayName = "RadioGroupCard";
|
|
1208
1406
|
var Accordion = AccordionPrimitive.Root;
|
|
1209
|
-
var AccordionItem =
|
|
1407
|
+
var AccordionItem = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1210
1408
|
AccordionPrimitive.Item,
|
|
1211
1409
|
{
|
|
1212
1410
|
ref,
|
|
@@ -1215,7 +1413,7 @@ var AccordionItem = React25.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1215
1413
|
}
|
|
1216
1414
|
));
|
|
1217
1415
|
AccordionItem.displayName = "AccordionItem";
|
|
1218
|
-
var AccordionTrigger =
|
|
1416
|
+
var AccordionTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
1219
1417
|
AccordionPrimitive.Trigger,
|
|
1220
1418
|
{
|
|
1221
1419
|
ref,
|
|
@@ -1231,7 +1429,7 @@ var AccordionTrigger = React25.forwardRef(({ className, children, ...props }, re
|
|
|
1231
1429
|
}
|
|
1232
1430
|
) }));
|
|
1233
1431
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
1234
|
-
var AccordionContent =
|
|
1432
|
+
var AccordionContent = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1235
1433
|
AccordionPrimitive.Content,
|
|
1236
1434
|
{
|
|
1237
1435
|
ref,
|
|
@@ -1262,7 +1460,7 @@ var NODES2 = [
|
|
|
1262
1460
|
];
|
|
1263
1461
|
var Primitive2 = NODES2.reduce((primitive, node) => {
|
|
1264
1462
|
const Slot2 = createSlot(`Primitive.${node}`);
|
|
1265
|
-
const Node =
|
|
1463
|
+
const Node = React27.forwardRef((props, forwardedRef) => {
|
|
1266
1464
|
const { asChild, ...primitiveProps } = props;
|
|
1267
1465
|
const Comp = asChild ? Slot2 : node;
|
|
1268
1466
|
if (typeof window !== "undefined") {
|
|
@@ -1276,7 +1474,7 @@ var Primitive2 = NODES2.reduce((primitive, node) => {
|
|
|
1276
1474
|
var NAME2 = "Separator";
|
|
1277
1475
|
var DEFAULT_ORIENTATION = "horizontal";
|
|
1278
1476
|
var ORIENTATIONS = ["horizontal", "vertical"];
|
|
1279
|
-
var Separator =
|
|
1477
|
+
var Separator = React27.forwardRef((props, forwardedRef) => {
|
|
1280
1478
|
const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;
|
|
1281
1479
|
const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;
|
|
1282
1480
|
const ariaOrientation = orientation === "vertical" ? orientation : void 0;
|
|
@@ -1295,10 +1493,10 @@ Separator.displayName = NAME2;
|
|
|
1295
1493
|
function isValidOrientation(orientation) {
|
|
1296
1494
|
return ORIENTATIONS.includes(orientation);
|
|
1297
1495
|
}
|
|
1298
|
-
var
|
|
1299
|
-
var Separator2 =
|
|
1496
|
+
var Root6 = Separator;
|
|
1497
|
+
var Separator2 = React27.forwardRef(
|
|
1300
1498
|
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1301
|
-
|
|
1499
|
+
Root6,
|
|
1302
1500
|
{
|
|
1303
1501
|
ref,
|
|
1304
1502
|
decorative,
|
|
@@ -1312,8 +1510,8 @@ var Separator2 = React25.forwardRef(
|
|
|
1312
1510
|
}
|
|
1313
1511
|
)
|
|
1314
1512
|
);
|
|
1315
|
-
Separator2.displayName =
|
|
1316
|
-
var NavigationMenu =
|
|
1513
|
+
Separator2.displayName = Root6.displayName;
|
|
1514
|
+
var NavigationMenu = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1317
1515
|
NavigationMenuPrimitive.Root,
|
|
1318
1516
|
{
|
|
1319
1517
|
ref,
|
|
@@ -1329,7 +1527,7 @@ var NavigationMenu = React25.forwardRef(({ className, children, ...props }, ref)
|
|
|
1329
1527
|
}
|
|
1330
1528
|
));
|
|
1331
1529
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
1332
|
-
var NavigationMenuList =
|
|
1530
|
+
var NavigationMenuList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1333
1531
|
NavigationMenuPrimitive.List,
|
|
1334
1532
|
{
|
|
1335
1533
|
ref,
|
|
@@ -1345,7 +1543,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
1345
1543
|
var navigationMenuTriggerStyle = cva(
|
|
1346
1544
|
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium text-[var(--black)] transition-colors hover:bg-gray-100 hover:text-[var(--black)] focus:bg-gray-100 focus:text-[var(--black)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-[var(--black)] data-[state=open]:bg-gray-100/50 data-[state=open]:hover:bg-gray-100 data-[state=open]:focus:bg-gray-100"
|
|
1347
1545
|
);
|
|
1348
|
-
var NavigationMenuTrigger =
|
|
1546
|
+
var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1349
1547
|
NavigationMenuPrimitive.Trigger,
|
|
1350
1548
|
{
|
|
1351
1549
|
ref,
|
|
@@ -1365,7 +1563,7 @@ var NavigationMenuTrigger = React25.forwardRef(({ className, children, ...props
|
|
|
1365
1563
|
}
|
|
1366
1564
|
));
|
|
1367
1565
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
1368
|
-
var NavigationMenuContent =
|
|
1566
|
+
var NavigationMenuContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1369
1567
|
NavigationMenuPrimitive.Content,
|
|
1370
1568
|
{
|
|
1371
1569
|
ref,
|
|
@@ -1378,7 +1576,7 @@ var NavigationMenuContent = React25.forwardRef(({ className, ...props }, ref) =>
|
|
|
1378
1576
|
));
|
|
1379
1577
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
1380
1578
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
1381
|
-
var NavigationMenuViewport =
|
|
1579
|
+
var NavigationMenuViewport = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
|
|
1382
1580
|
NavigationMenuPrimitive.Viewport,
|
|
1383
1581
|
{
|
|
1384
1582
|
className: cn(
|
|
@@ -1390,7 +1588,7 @@ var NavigationMenuViewport = React25.forwardRef(({ className, ...props }, ref) =
|
|
|
1390
1588
|
}
|
|
1391
1589
|
) }));
|
|
1392
1590
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
1393
|
-
var NavigationMenuIndicator =
|
|
1591
|
+
var NavigationMenuIndicator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1394
1592
|
NavigationMenuPrimitive.Indicator,
|
|
1395
1593
|
{
|
|
1396
1594
|
ref,
|
|
@@ -1403,7 +1601,7 @@ var NavigationMenuIndicator = React25.forwardRef(({ className, ...props }, ref)
|
|
|
1403
1601
|
}
|
|
1404
1602
|
));
|
|
1405
1603
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
1406
|
-
var Avatar =
|
|
1604
|
+
var Avatar = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1407
1605
|
AvatarPrimitive.Root,
|
|
1408
1606
|
{
|
|
1409
1607
|
ref,
|
|
@@ -1415,7 +1613,7 @@ var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
1415
1613
|
}
|
|
1416
1614
|
));
|
|
1417
1615
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
1418
|
-
var AvatarImage =
|
|
1616
|
+
var AvatarImage = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1419
1617
|
AvatarPrimitive.Image,
|
|
1420
1618
|
{
|
|
1421
1619
|
ref,
|
|
@@ -1424,7 +1622,7 @@ var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1424
1622
|
}
|
|
1425
1623
|
));
|
|
1426
1624
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1427
|
-
var AvatarFallback =
|
|
1625
|
+
var AvatarFallback = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1428
1626
|
AvatarPrimitive.Fallback,
|
|
1429
1627
|
{
|
|
1430
1628
|
ref,
|
|
@@ -1442,7 +1640,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
1442
1640
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
1443
1641
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1444
1642
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
1445
|
-
var DropdownMenuSubTrigger =
|
|
1643
|
+
var DropdownMenuSubTrigger = React27.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1446
1644
|
DropdownMenuPrimitive.SubTrigger,
|
|
1447
1645
|
{
|
|
1448
1646
|
ref,
|
|
@@ -1459,7 +1657,7 @@ var DropdownMenuSubTrigger = React25.forwardRef(({ className, inset, children, .
|
|
|
1459
1657
|
}
|
|
1460
1658
|
));
|
|
1461
1659
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1462
|
-
var DropdownMenuSubContent =
|
|
1660
|
+
var DropdownMenuSubContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1463
1661
|
DropdownMenuPrimitive.SubContent,
|
|
1464
1662
|
{
|
|
1465
1663
|
ref,
|
|
@@ -1471,7 +1669,7 @@ var DropdownMenuSubContent = React25.forwardRef(({ className, ...props }, ref) =
|
|
|
1471
1669
|
}
|
|
1472
1670
|
));
|
|
1473
1671
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1474
|
-
var DropdownMenuContent =
|
|
1672
|
+
var DropdownMenuContent = React27.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
1475
1673
|
DropdownMenuPrimitive.Content,
|
|
1476
1674
|
{
|
|
1477
1675
|
ref,
|
|
@@ -1484,7 +1682,7 @@ var DropdownMenuContent = React25.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
1484
1682
|
}
|
|
1485
1683
|
) }));
|
|
1486
1684
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1487
|
-
var DropdownMenuItem =
|
|
1685
|
+
var DropdownMenuItem = React27.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1488
1686
|
DropdownMenuPrimitive.Item,
|
|
1489
1687
|
{
|
|
1490
1688
|
ref,
|
|
@@ -1497,7 +1695,7 @@ var DropdownMenuItem = React25.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1497
1695
|
}
|
|
1498
1696
|
));
|
|
1499
1697
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1500
|
-
var DropdownMenuCheckboxItem =
|
|
1698
|
+
var DropdownMenuCheckboxItem = React27.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1501
1699
|
DropdownMenuPrimitive.CheckboxItem,
|
|
1502
1700
|
{
|
|
1503
1701
|
ref,
|
|
@@ -1514,7 +1712,7 @@ var DropdownMenuCheckboxItem = React25.forwardRef(({ className, children, checke
|
|
|
1514
1712
|
}
|
|
1515
1713
|
));
|
|
1516
1714
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1517
|
-
var DropdownMenuRadioItem =
|
|
1715
|
+
var DropdownMenuRadioItem = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
1518
1716
|
DropdownMenuPrimitive.RadioItem,
|
|
1519
1717
|
{
|
|
1520
1718
|
ref,
|
|
@@ -1530,7 +1728,7 @@ var DropdownMenuRadioItem = React25.forwardRef(({ className, children, ...props
|
|
|
1530
1728
|
}
|
|
1531
1729
|
));
|
|
1532
1730
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1533
|
-
var DropdownMenuLabel =
|
|
1731
|
+
var DropdownMenuLabel = React27.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1534
1732
|
DropdownMenuPrimitive.Label,
|
|
1535
1733
|
{
|
|
1536
1734
|
ref,
|
|
@@ -1543,7 +1741,7 @@ var DropdownMenuLabel = React25.forwardRef(({ className, inset, ...props }, ref)
|
|
|
1543
1741
|
}
|
|
1544
1742
|
));
|
|
1545
1743
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1546
|
-
var DropdownMenuSeparator =
|
|
1744
|
+
var DropdownMenuSeparator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1547
1745
|
DropdownMenuPrimitive.Separator,
|
|
1548
1746
|
{
|
|
1549
1747
|
ref,
|
|
@@ -1565,7 +1763,7 @@ var DropdownMenuShortcut = ({
|
|
|
1565
1763
|
);
|
|
1566
1764
|
};
|
|
1567
1765
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1568
|
-
var SidebarNavItem =
|
|
1766
|
+
var SidebarNavItem = React27.forwardRef(
|
|
1569
1767
|
({ item, isActive, className, LinkComponent, ...props }, ref) => {
|
|
1570
1768
|
const Icon = item.icon;
|
|
1571
1769
|
const baseClassName = cn(
|
|
@@ -1605,7 +1803,7 @@ var SidebarNavItem = React25.forwardRef(
|
|
|
1605
1803
|
}
|
|
1606
1804
|
);
|
|
1607
1805
|
SidebarNavItem.displayName = "SidebarNavItem";
|
|
1608
|
-
var Sidebar =
|
|
1806
|
+
var Sidebar = React27.forwardRef(
|
|
1609
1807
|
({
|
|
1610
1808
|
mainNav = [],
|
|
1611
1809
|
bottomNav = [],
|
|
@@ -1715,7 +1913,7 @@ var alertVariants = cva(
|
|
|
1715
1913
|
}
|
|
1716
1914
|
}
|
|
1717
1915
|
);
|
|
1718
|
-
var Alert =
|
|
1916
|
+
var Alert = React27.forwardRef(
|
|
1719
1917
|
({ className, variant, icon, title, action, children, ...props }, ref) => {
|
|
1720
1918
|
return /* @__PURE__ */ jsx(
|
|
1721
1919
|
"div",
|
|
@@ -1738,7 +1936,7 @@ var Alert = React25.forwardRef(
|
|
|
1738
1936
|
}
|
|
1739
1937
|
);
|
|
1740
1938
|
Alert.displayName = "Alert";
|
|
1741
|
-
var EmptyState =
|
|
1939
|
+
var EmptyState = React27.forwardRef(
|
|
1742
1940
|
({ className, icon, title, description, action, size = "default", ...props }, ref) => {
|
|
1743
1941
|
const paddingClass = {
|
|
1744
1942
|
sm: "p-8",
|
|
@@ -1766,7 +1964,7 @@ var EmptyState = React25.forwardRef(
|
|
|
1766
1964
|
}
|
|
1767
1965
|
);
|
|
1768
1966
|
EmptyState.displayName = "EmptyState";
|
|
1769
|
-
var CodeBlock =
|
|
1967
|
+
var CodeBlock = React27.forwardRef(
|
|
1770
1968
|
({ className, children, language, ...props }, ref) => {
|
|
1771
1969
|
return /* @__PURE__ */ jsx(
|
|
1772
1970
|
"pre",
|
|
@@ -1784,15 +1982,15 @@ var CodeBlock = React25.forwardRef(
|
|
|
1784
1982
|
}
|
|
1785
1983
|
);
|
|
1786
1984
|
CodeBlock.displayName = "CodeBlock";
|
|
1787
|
-
var FormField =
|
|
1985
|
+
var FormField = React27.forwardRef(
|
|
1788
1986
|
({ label, error, helperText, hint, required, id, className, children, ...props }, ref) => {
|
|
1789
|
-
const fieldId = id ||
|
|
1987
|
+
const fieldId = id || React27.useId();
|
|
1790
1988
|
const errorId = `${fieldId}-error`;
|
|
1791
1989
|
const helperId = `${fieldId}-helper`;
|
|
1792
|
-
const enhancedChildren =
|
|
1793
|
-
if (
|
|
1990
|
+
const enhancedChildren = React27.Children.map(children, (child) => {
|
|
1991
|
+
if (React27.isValidElement(child)) {
|
|
1794
1992
|
const childProps = child.props;
|
|
1795
|
-
return
|
|
1993
|
+
return React27.cloneElement(child, {
|
|
1796
1994
|
id: fieldId,
|
|
1797
1995
|
"aria-invalid": error ? "true" : void 0,
|
|
1798
1996
|
"aria-describedby": error ? errorId : helperText ? helperId : void 0,
|
|
@@ -1816,7 +2014,7 @@ var FormField = React25.forwardRef(
|
|
|
1816
2014
|
}
|
|
1817
2015
|
);
|
|
1818
2016
|
FormField.displayName = "FormField";
|
|
1819
|
-
var Table =
|
|
2017
|
+
var Table = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx(
|
|
1820
2018
|
"table",
|
|
1821
2019
|
{
|
|
1822
2020
|
ref,
|
|
@@ -1825,11 +2023,11 @@ var Table = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
1825
2023
|
}
|
|
1826
2024
|
) }));
|
|
1827
2025
|
Table.displayName = "Table";
|
|
1828
|
-
var TableHeader =
|
|
2026
|
+
var TableHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("", className), ...props }));
|
|
1829
2027
|
TableHeader.displayName = "TableHeader";
|
|
1830
|
-
var TableBody =
|
|
2028
|
+
var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("tbody", { ref, className: cn("", className), ...props }));
|
|
1831
2029
|
TableBody.displayName = "TableBody";
|
|
1832
|
-
var TableFooter =
|
|
2030
|
+
var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1833
2031
|
"tfoot",
|
|
1834
2032
|
{
|
|
1835
2033
|
ref,
|
|
@@ -1838,7 +2036,7 @@ var TableFooter = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1838
2036
|
}
|
|
1839
2037
|
));
|
|
1840
2038
|
TableFooter.displayName = "TableFooter";
|
|
1841
|
-
var TableRow =
|
|
2039
|
+
var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1842
2040
|
"tr",
|
|
1843
2041
|
{
|
|
1844
2042
|
ref,
|
|
@@ -1847,7 +2045,7 @@ var TableRow = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1847
2045
|
}
|
|
1848
2046
|
));
|
|
1849
2047
|
TableRow.displayName = "TableRow";
|
|
1850
|
-
var TableHead =
|
|
2048
|
+
var TableHead = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1851
2049
|
"th",
|
|
1852
2050
|
{
|
|
1853
2051
|
ref,
|
|
@@ -1859,7 +2057,7 @@ var TableHead = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1859
2057
|
}
|
|
1860
2058
|
));
|
|
1861
2059
|
TableHead.displayName = "TableHead";
|
|
1862
|
-
var TableCell =
|
|
2060
|
+
var TableCell = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1863
2061
|
"td",
|
|
1864
2062
|
{
|
|
1865
2063
|
ref,
|
|
@@ -1868,7 +2066,7 @@ var TableCell = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1868
2066
|
}
|
|
1869
2067
|
));
|
|
1870
2068
|
TableCell.displayName = "TableCell";
|
|
1871
|
-
var TableCaption =
|
|
2069
|
+
var TableCaption = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1872
2070
|
"caption",
|
|
1873
2071
|
{
|
|
1874
2072
|
ref,
|
|
@@ -1877,7 +2075,7 @@ var TableCaption = React25.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
1877
2075
|
}
|
|
1878
2076
|
));
|
|
1879
2077
|
TableCaption.displayName = "TableCaption";
|
|
1880
|
-
var Divider =
|
|
2078
|
+
var Divider = React27.forwardRef(
|
|
1881
2079
|
({ className, text, orientation = "horizontal", ...props }, ref) => {
|
|
1882
2080
|
if (orientation === "vertical") {
|
|
1883
2081
|
return /* @__PURE__ */ jsx(
|
|
@@ -1915,11 +2113,72 @@ var Divider = React25.forwardRef(
|
|
|
1915
2113
|
}
|
|
1916
2114
|
);
|
|
1917
2115
|
Divider.displayName = "Divider";
|
|
2116
|
+
var Tabs = TabsPrimitive.Root;
|
|
2117
|
+
var TabsList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2118
|
+
TabsPrimitive.List,
|
|
2119
|
+
{
|
|
2120
|
+
ref,
|
|
2121
|
+
className: cn(
|
|
2122
|
+
"inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground",
|
|
2123
|
+
className
|
|
2124
|
+
),
|
|
2125
|
+
...props
|
|
2126
|
+
}
|
|
2127
|
+
));
|
|
2128
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
2129
|
+
var TabsTrigger = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2130
|
+
TabsPrimitive.Trigger,
|
|
2131
|
+
{
|
|
2132
|
+
ref,
|
|
2133
|
+
className: cn(
|
|
2134
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
2135
|
+
className
|
|
2136
|
+
),
|
|
2137
|
+
...props
|
|
2138
|
+
}
|
|
2139
|
+
));
|
|
2140
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
2141
|
+
var TabsContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2142
|
+
TabsPrimitive.Content,
|
|
2143
|
+
{
|
|
2144
|
+
ref,
|
|
2145
|
+
className: cn(
|
|
2146
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
2147
|
+
className
|
|
2148
|
+
),
|
|
2149
|
+
...props
|
|
2150
|
+
}
|
|
2151
|
+
));
|
|
2152
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
2153
|
+
var TabsListUnderline = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2154
|
+
TabsPrimitive.List,
|
|
2155
|
+
{
|
|
2156
|
+
ref,
|
|
2157
|
+
className: cn(
|
|
2158
|
+
"inline-flex items-center justify-start border-b border-border",
|
|
2159
|
+
className
|
|
2160
|
+
),
|
|
2161
|
+
...props
|
|
2162
|
+
}
|
|
2163
|
+
));
|
|
2164
|
+
TabsListUnderline.displayName = "TabsListUnderline";
|
|
2165
|
+
var TabsTriggerUnderline = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2166
|
+
TabsPrimitive.Trigger,
|
|
2167
|
+
{
|
|
2168
|
+
ref,
|
|
2169
|
+
className: cn(
|
|
2170
|
+
"inline-flex items-center justify-center whitespace-nowrap px-4 py-2 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground border-b-2 border-transparent -mb-px data-[state=active]:text-foreground data-[state=active]:border-[var(--cyan)] disabled:pointer-events-none disabled:opacity-50",
|
|
2171
|
+
className
|
|
2172
|
+
),
|
|
2173
|
+
...props
|
|
2174
|
+
}
|
|
2175
|
+
));
|
|
2176
|
+
TabsTriggerUnderline.displayName = "TabsTriggerUnderline";
|
|
1918
2177
|
var Dialog = SheetPrimitive.Root;
|
|
1919
2178
|
var DialogTrigger = SheetPrimitive.Trigger;
|
|
1920
2179
|
var DialogPortal = SheetPrimitive.Portal;
|
|
1921
2180
|
var DialogClose = SheetPrimitive.Close;
|
|
1922
|
-
var DialogOverlay =
|
|
2181
|
+
var DialogOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1923
2182
|
SheetPrimitive.Overlay,
|
|
1924
2183
|
{
|
|
1925
2184
|
ref,
|
|
@@ -1931,7 +2190,7 @@ var DialogOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
1931
2190
|
}
|
|
1932
2191
|
));
|
|
1933
2192
|
DialogOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
1934
|
-
var DialogContent =
|
|
2193
|
+
var DialogContent = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
1935
2194
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
1936
2195
|
/* @__PURE__ */ jsxs(
|
|
1937
2196
|
SheetPrimitive.Content,
|
|
@@ -1981,7 +2240,7 @@ var DialogFooter = ({
|
|
|
1981
2240
|
}
|
|
1982
2241
|
);
|
|
1983
2242
|
DialogFooter.displayName = "DialogFooter";
|
|
1984
|
-
var DialogTitle =
|
|
2243
|
+
var DialogTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1985
2244
|
SheetPrimitive.Title,
|
|
1986
2245
|
{
|
|
1987
2246
|
ref,
|
|
@@ -1993,7 +2252,7 @@ var DialogTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1993
2252
|
}
|
|
1994
2253
|
));
|
|
1995
2254
|
DialogTitle.displayName = SheetPrimitive.Title.displayName;
|
|
1996
|
-
var DialogDescription =
|
|
2255
|
+
var DialogDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1997
2256
|
SheetPrimitive.Description,
|
|
1998
2257
|
{
|
|
1999
2258
|
ref,
|
|
@@ -2002,8 +2261,214 @@ var DialogDescription = React25.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2002
2261
|
}
|
|
2003
2262
|
));
|
|
2004
2263
|
DialogDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2264
|
+
var AlertDialog = AlertDialogPrimitive.Root;
|
|
2265
|
+
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
2266
|
+
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
2267
|
+
var AlertDialogOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2268
|
+
AlertDialogPrimitive.Overlay,
|
|
2269
|
+
{
|
|
2270
|
+
className: cn(
|
|
2271
|
+
"fixed inset-0 z-50 bg-black/60 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
2272
|
+
className
|
|
2273
|
+
),
|
|
2274
|
+
...props,
|
|
2275
|
+
ref
|
|
2276
|
+
}
|
|
2277
|
+
));
|
|
2278
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
2279
|
+
var AlertDialogContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
2280
|
+
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
2281
|
+
/* @__PURE__ */ jsx(
|
|
2282
|
+
AlertDialogPrimitive.Content,
|
|
2283
|
+
{
|
|
2284
|
+
ref,
|
|
2285
|
+
className: cn(
|
|
2286
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] rounded-sm",
|
|
2287
|
+
className
|
|
2288
|
+
),
|
|
2289
|
+
...props
|
|
2290
|
+
}
|
|
2291
|
+
)
|
|
2292
|
+
] }));
|
|
2293
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
2294
|
+
var AlertDialogHeader = ({
|
|
2295
|
+
className,
|
|
2296
|
+
...props
|
|
2297
|
+
}) => /* @__PURE__ */ jsx(
|
|
2298
|
+
"div",
|
|
2299
|
+
{
|
|
2300
|
+
className: cn(
|
|
2301
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
2302
|
+
className
|
|
2303
|
+
),
|
|
2304
|
+
...props
|
|
2305
|
+
}
|
|
2306
|
+
);
|
|
2307
|
+
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
2308
|
+
var AlertDialogFooter = ({
|
|
2309
|
+
className,
|
|
2310
|
+
...props
|
|
2311
|
+
}) => /* @__PURE__ */ jsx(
|
|
2312
|
+
"div",
|
|
2313
|
+
{
|
|
2314
|
+
className: cn(
|
|
2315
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
2316
|
+
className
|
|
2317
|
+
),
|
|
2318
|
+
...props
|
|
2319
|
+
}
|
|
2320
|
+
);
|
|
2321
|
+
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
2322
|
+
var AlertDialogTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2323
|
+
AlertDialogPrimitive.Title,
|
|
2324
|
+
{
|
|
2325
|
+
ref,
|
|
2326
|
+
className: cn("text-lg font-semibold text-[var(--black)]", className),
|
|
2327
|
+
...props
|
|
2328
|
+
}
|
|
2329
|
+
));
|
|
2330
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
2331
|
+
var AlertDialogDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2332
|
+
AlertDialogPrimitive.Description,
|
|
2333
|
+
{
|
|
2334
|
+
ref,
|
|
2335
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
2336
|
+
...props
|
|
2337
|
+
}
|
|
2338
|
+
));
|
|
2339
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
2340
|
+
var AlertDialogAction = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2341
|
+
AlertDialogPrimitive.Action,
|
|
2342
|
+
{
|
|
2343
|
+
ref,
|
|
2344
|
+
className: cn(buttonVariants(), className),
|
|
2345
|
+
...props
|
|
2346
|
+
}
|
|
2347
|
+
));
|
|
2348
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
2349
|
+
var AlertDialogCancel = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2350
|
+
AlertDialogPrimitive.Cancel,
|
|
2351
|
+
{
|
|
2352
|
+
ref,
|
|
2353
|
+
className: cn(
|
|
2354
|
+
buttonVariants({ variant: "outline" }),
|
|
2355
|
+
"mt-2 sm:mt-0",
|
|
2356
|
+
className
|
|
2357
|
+
),
|
|
2358
|
+
...props
|
|
2359
|
+
}
|
|
2360
|
+
));
|
|
2361
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
2362
|
+
function ConfirmDialog({
|
|
2363
|
+
open,
|
|
2364
|
+
onOpenChange,
|
|
2365
|
+
title,
|
|
2366
|
+
description,
|
|
2367
|
+
confirmText = "Confirm",
|
|
2368
|
+
cancelText = "Cancel",
|
|
2369
|
+
onConfirm,
|
|
2370
|
+
onCancel,
|
|
2371
|
+
variant = "default",
|
|
2372
|
+
loading = false
|
|
2373
|
+
}) {
|
|
2374
|
+
return /* @__PURE__ */ jsx(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(AlertDialogContent, { children: [
|
|
2375
|
+
/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [
|
|
2376
|
+
/* @__PURE__ */ jsx(AlertDialogTitle, { children: title }),
|
|
2377
|
+
description && /* @__PURE__ */ jsx(AlertDialogDescription, { children: description })
|
|
2378
|
+
] }),
|
|
2379
|
+
/* @__PURE__ */ jsxs(AlertDialogFooter, { children: [
|
|
2380
|
+
/* @__PURE__ */ jsx(
|
|
2381
|
+
AlertDialogCancel,
|
|
2382
|
+
{
|
|
2383
|
+
onClick: () => {
|
|
2384
|
+
onCancel?.();
|
|
2385
|
+
onOpenChange(false);
|
|
2386
|
+
},
|
|
2387
|
+
children: cancelText
|
|
2388
|
+
}
|
|
2389
|
+
),
|
|
2390
|
+
/* @__PURE__ */ jsx(
|
|
2391
|
+
AlertDialogAction,
|
|
2392
|
+
{
|
|
2393
|
+
onClick: () => {
|
|
2394
|
+
onConfirm();
|
|
2395
|
+
},
|
|
2396
|
+
className: cn(
|
|
2397
|
+
variant === "destructive" && "bg-destructive text-destructive-foreground hover:bg-destructive/90"
|
|
2398
|
+
),
|
|
2399
|
+
disabled: loading,
|
|
2400
|
+
children: loading ? "Loading..." : confirmText
|
|
2401
|
+
}
|
|
2402
|
+
)
|
|
2403
|
+
] })
|
|
2404
|
+
] }) });
|
|
2405
|
+
}
|
|
2406
|
+
var Popover = PopoverPrimitive.Root;
|
|
2407
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
2408
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
2409
|
+
var PopoverClose = PopoverPrimitive.Close;
|
|
2410
|
+
var PopoverContent = React27.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2411
|
+
PopoverPrimitive.Content,
|
|
2412
|
+
{
|
|
2413
|
+
ref,
|
|
2414
|
+
align,
|
|
2415
|
+
sideOffset,
|
|
2416
|
+
className: cn(
|
|
2417
|
+
"z-50 w-72 rounded-sm border bg-popover p-4 text-popover-foreground shadow-md outline-none 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",
|
|
2418
|
+
className
|
|
2419
|
+
),
|
|
2420
|
+
...props
|
|
2421
|
+
}
|
|
2422
|
+
) }));
|
|
2423
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
2424
|
+
var PopoverArrow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2425
|
+
PopoverPrimitive.Arrow,
|
|
2426
|
+
{
|
|
2427
|
+
ref,
|
|
2428
|
+
className: cn("fill-popover", className),
|
|
2429
|
+
...props
|
|
2430
|
+
}
|
|
2431
|
+
));
|
|
2432
|
+
PopoverArrow.displayName = PopoverPrimitive.Arrow.displayName;
|
|
2433
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
2434
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
2435
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
2436
|
+
var TooltipContent = React27.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
2437
|
+
TooltipPrimitive.Content,
|
|
2438
|
+
{
|
|
2439
|
+
ref,
|
|
2440
|
+
sideOffset,
|
|
2441
|
+
className: cn(
|
|
2442
|
+
"z-50 overflow-hidden rounded-sm bg-[var(--black)] px-3 py-1.5 text-xs text-white 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",
|
|
2443
|
+
className
|
|
2444
|
+
),
|
|
2445
|
+
...props
|
|
2446
|
+
}
|
|
2447
|
+
) }));
|
|
2448
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
2449
|
+
var TooltipArrow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2450
|
+
TooltipPrimitive.Arrow,
|
|
2451
|
+
{
|
|
2452
|
+
ref,
|
|
2453
|
+
className: cn("fill-[var(--black)]", className),
|
|
2454
|
+
...props
|
|
2455
|
+
}
|
|
2456
|
+
));
|
|
2457
|
+
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
|
2458
|
+
function SimpleTooltip({
|
|
2459
|
+
content,
|
|
2460
|
+
children,
|
|
2461
|
+
side = "top",
|
|
2462
|
+
align = "center",
|
|
2463
|
+
delayDuration = 200
|
|
2464
|
+
}) {
|
|
2465
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration, children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
2466
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children }),
|
|
2467
|
+
/* @__PURE__ */ jsx(TooltipContent, { side, align, children: content })
|
|
2468
|
+
] }) });
|
|
2469
|
+
}
|
|
2005
2470
|
var ToastProvider = ToastPrimitives.Provider;
|
|
2006
|
-
var ToastViewport =
|
|
2471
|
+
var ToastViewport = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2007
2472
|
ToastPrimitives.Viewport,
|
|
2008
2473
|
{
|
|
2009
2474
|
ref,
|
|
@@ -2032,7 +2497,7 @@ var toastVariants = cva(
|
|
|
2032
2497
|
}
|
|
2033
2498
|
}
|
|
2034
2499
|
);
|
|
2035
|
-
var Toast =
|
|
2500
|
+
var Toast = React27.forwardRef(({ className, variant, ...props }, ref) => {
|
|
2036
2501
|
return /* @__PURE__ */ jsx(
|
|
2037
2502
|
ToastPrimitives.Root,
|
|
2038
2503
|
{
|
|
@@ -2043,7 +2508,7 @@ var Toast = React25.forwardRef(({ className, variant, ...props }, ref) => {
|
|
|
2043
2508
|
);
|
|
2044
2509
|
});
|
|
2045
2510
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
2046
|
-
var ToastAction =
|
|
2511
|
+
var ToastAction = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2047
2512
|
ToastPrimitives.Action,
|
|
2048
2513
|
{
|
|
2049
2514
|
ref,
|
|
@@ -2055,7 +2520,7 @@ var ToastAction = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2055
2520
|
}
|
|
2056
2521
|
));
|
|
2057
2522
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
2058
|
-
var ToastClose =
|
|
2523
|
+
var ToastClose = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2059
2524
|
ToastPrimitives.Close,
|
|
2060
2525
|
{
|
|
2061
2526
|
ref,
|
|
@@ -2069,7 +2534,7 @@ var ToastClose = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2069
2534
|
}
|
|
2070
2535
|
));
|
|
2071
2536
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
2072
|
-
var ToastTitle =
|
|
2537
|
+
var ToastTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2073
2538
|
ToastPrimitives.Title,
|
|
2074
2539
|
{
|
|
2075
2540
|
ref,
|
|
@@ -2078,7 +2543,7 @@ var ToastTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
2078
2543
|
}
|
|
2079
2544
|
));
|
|
2080
2545
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
2081
|
-
var ToastDescription =
|
|
2546
|
+
var ToastDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
2082
2547
|
ToastPrimitives.Description,
|
|
2083
2548
|
{
|
|
2084
2549
|
ref,
|
|
@@ -2217,8 +2682,8 @@ function toast({ ...props }) {
|
|
|
2217
2682
|
};
|
|
2218
2683
|
}
|
|
2219
2684
|
function useToast() {
|
|
2220
|
-
const [state, setState] =
|
|
2221
|
-
|
|
2685
|
+
const [state, setState] = React27.useState(memoryState);
|
|
2686
|
+
React27.useEffect(() => {
|
|
2222
2687
|
listeners.push(setState);
|
|
2223
2688
|
return () => {
|
|
2224
2689
|
const index = listeners.indexOf(setState);
|
|
@@ -2253,10 +2718,665 @@ function Toaster() {
|
|
|
2253
2718
|
/* @__PURE__ */ jsx(ToastViewport, {})
|
|
2254
2719
|
] });
|
|
2255
2720
|
}
|
|
2721
|
+
var Skeleton = React27.forwardRef(
|
|
2722
|
+
({ className, variant = "default", width, height, animate = true, style, ...props }, ref) => {
|
|
2723
|
+
const variantStyles = {
|
|
2724
|
+
default: "rounded-sm",
|
|
2725
|
+
circular: "rounded-full",
|
|
2726
|
+
rounded: "rounded-md"
|
|
2727
|
+
};
|
|
2728
|
+
return /* @__PURE__ */ jsx(
|
|
2729
|
+
"div",
|
|
2730
|
+
{
|
|
2731
|
+
ref,
|
|
2732
|
+
className: cn(
|
|
2733
|
+
"bg-muted",
|
|
2734
|
+
animate && "animate-pulse",
|
|
2735
|
+
variantStyles[variant],
|
|
2736
|
+
className
|
|
2737
|
+
),
|
|
2738
|
+
style: {
|
|
2739
|
+
width: typeof width === "number" ? `${width}px` : width,
|
|
2740
|
+
height: typeof height === "number" ? `${height}px` : height,
|
|
2741
|
+
...style
|
|
2742
|
+
},
|
|
2743
|
+
...props
|
|
2744
|
+
}
|
|
2745
|
+
);
|
|
2746
|
+
}
|
|
2747
|
+
);
|
|
2748
|
+
Skeleton.displayName = "Skeleton";
|
|
2749
|
+
var SkeletonText = React27.forwardRef(
|
|
2750
|
+
({ lines = 3, gap = 8, className, ...props }, ref) => {
|
|
2751
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-2", className), style: { gap }, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx(
|
|
2752
|
+
Skeleton,
|
|
2753
|
+
{
|
|
2754
|
+
height: 16,
|
|
2755
|
+
width: i === lines - 1 ? "70%" : "100%",
|
|
2756
|
+
...props
|
|
2757
|
+
},
|
|
2758
|
+
i
|
|
2759
|
+
)) });
|
|
2760
|
+
}
|
|
2761
|
+
);
|
|
2762
|
+
SkeletonText.displayName = "SkeletonText";
|
|
2763
|
+
var SkeletonCard = React27.forwardRef(
|
|
2764
|
+
({ hasHeader = true, hasAvatar = false, className, ...props }, ref) => {
|
|
2765
|
+
return /* @__PURE__ */ jsxs(
|
|
2766
|
+
"div",
|
|
2767
|
+
{
|
|
2768
|
+
ref,
|
|
2769
|
+
className: cn("rounded-lg border p-6 space-y-4", className),
|
|
2770
|
+
...props,
|
|
2771
|
+
children: [
|
|
2772
|
+
hasHeader && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
2773
|
+
hasAvatar && /* @__PURE__ */ jsx(Skeleton, { variant: "circular", width: 40, height: 40 }),
|
|
2774
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2 flex-1", children: [
|
|
2775
|
+
/* @__PURE__ */ jsx(Skeleton, { height: 20, width: "50%" }),
|
|
2776
|
+
/* @__PURE__ */ jsx(Skeleton, { height: 14, width: "30%" })
|
|
2777
|
+
] })
|
|
2778
|
+
] }),
|
|
2779
|
+
/* @__PURE__ */ jsx(SkeletonText, { lines: 3 })
|
|
2780
|
+
]
|
|
2781
|
+
}
|
|
2782
|
+
);
|
|
2783
|
+
}
|
|
2784
|
+
);
|
|
2785
|
+
SkeletonCard.displayName = "SkeletonCard";
|
|
2786
|
+
function generatePagination(currentPage, totalPages, siblingCount) {
|
|
2787
|
+
const totalPageNumbers = siblingCount * 2 + 5;
|
|
2788
|
+
if (totalPageNumbers >= totalPages) {
|
|
2789
|
+
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
2790
|
+
}
|
|
2791
|
+
const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
|
|
2792
|
+
const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);
|
|
2793
|
+
const showLeftDots = leftSiblingIndex > 2;
|
|
2794
|
+
const showRightDots = rightSiblingIndex < totalPages - 1;
|
|
2795
|
+
if (!showLeftDots && showRightDots) {
|
|
2796
|
+
const leftRange = Array.from(
|
|
2797
|
+
{ length: 3 + siblingCount * 2 },
|
|
2798
|
+
(_, i) => i + 1
|
|
2799
|
+
);
|
|
2800
|
+
return [...leftRange, "ellipsis", totalPages];
|
|
2801
|
+
}
|
|
2802
|
+
if (showLeftDots && !showRightDots) {
|
|
2803
|
+
const rightRange = Array.from(
|
|
2804
|
+
{ length: 3 + siblingCount * 2 },
|
|
2805
|
+
(_, i) => totalPages - (3 + siblingCount * 2) + i + 1
|
|
2806
|
+
);
|
|
2807
|
+
return [1, "ellipsis", ...rightRange];
|
|
2808
|
+
}
|
|
2809
|
+
const middleRange = Array.from(
|
|
2810
|
+
{ length: siblingCount * 2 + 1 },
|
|
2811
|
+
(_, i) => leftSiblingIndex + i
|
|
2812
|
+
);
|
|
2813
|
+
return [1, "ellipsis", ...middleRange, "ellipsis", totalPages];
|
|
2814
|
+
}
|
|
2815
|
+
var Pagination = React27.forwardRef(
|
|
2816
|
+
({
|
|
2817
|
+
currentPage,
|
|
2818
|
+
totalPages,
|
|
2819
|
+
onPageChange,
|
|
2820
|
+
siblingCount = 1,
|
|
2821
|
+
showBoundaryPages = true,
|
|
2822
|
+
size = "default",
|
|
2823
|
+
className
|
|
2824
|
+
}, ref) => {
|
|
2825
|
+
const pages = generatePagination(currentPage, totalPages, siblingCount);
|
|
2826
|
+
const buttonSize = size === "sm" ? "sm" : size === "lg" ? "lg" : "default";
|
|
2827
|
+
const iconSize = size === "sm" ? 14 : size === "lg" ? 20 : 16;
|
|
2828
|
+
if (totalPages <= 1) {
|
|
2829
|
+
return null;
|
|
2830
|
+
}
|
|
2831
|
+
return /* @__PURE__ */ jsxs(
|
|
2832
|
+
"nav",
|
|
2833
|
+
{
|
|
2834
|
+
ref,
|
|
2835
|
+
role: "navigation",
|
|
2836
|
+
"aria-label": "Pagination",
|
|
2837
|
+
className: cn("flex items-center gap-1", className),
|
|
2838
|
+
children: [
|
|
2839
|
+
/* @__PURE__ */ jsx(
|
|
2840
|
+
Button,
|
|
2841
|
+
{
|
|
2842
|
+
variant: "outline",
|
|
2843
|
+
size: buttonSize,
|
|
2844
|
+
onClick: () => onPageChange(currentPage - 1),
|
|
2845
|
+
disabled: currentPage <= 1,
|
|
2846
|
+
"aria-label": "Go to previous page",
|
|
2847
|
+
children: /* @__PURE__ */ jsx(CaretLeft, { size: iconSize })
|
|
2848
|
+
}
|
|
2849
|
+
),
|
|
2850
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: pages.map((page, index) => {
|
|
2851
|
+
if (page === "ellipsis") {
|
|
2852
|
+
return /* @__PURE__ */ jsx(
|
|
2853
|
+
"span",
|
|
2854
|
+
{
|
|
2855
|
+
className: "flex h-9 w-9 items-center justify-center text-muted-foreground",
|
|
2856
|
+
children: /* @__PURE__ */ jsx(DotsThree, { size: iconSize })
|
|
2857
|
+
},
|
|
2858
|
+
`ellipsis-${index}`
|
|
2859
|
+
);
|
|
2860
|
+
}
|
|
2861
|
+
const isCurrentPage = page === currentPage;
|
|
2862
|
+
return /* @__PURE__ */ jsx(
|
|
2863
|
+
Button,
|
|
2864
|
+
{
|
|
2865
|
+
variant: isCurrentPage ? "default" : "outline",
|
|
2866
|
+
size: buttonSize,
|
|
2867
|
+
onClick: () => onPageChange(page),
|
|
2868
|
+
"aria-label": `Go to page ${page}`,
|
|
2869
|
+
"aria-current": isCurrentPage ? "page" : void 0,
|
|
2870
|
+
children: page
|
|
2871
|
+
},
|
|
2872
|
+
page
|
|
2873
|
+
);
|
|
2874
|
+
}) }),
|
|
2875
|
+
/* @__PURE__ */ jsx(
|
|
2876
|
+
Button,
|
|
2877
|
+
{
|
|
2878
|
+
variant: "outline",
|
|
2879
|
+
size: buttonSize,
|
|
2880
|
+
onClick: () => onPageChange(currentPage + 1),
|
|
2881
|
+
disabled: currentPage >= totalPages,
|
|
2882
|
+
"aria-label": "Go to next page",
|
|
2883
|
+
children: /* @__PURE__ */ jsx(CaretRight, { size: iconSize })
|
|
2884
|
+
}
|
|
2885
|
+
)
|
|
2886
|
+
]
|
|
2887
|
+
}
|
|
2888
|
+
);
|
|
2889
|
+
}
|
|
2890
|
+
);
|
|
2891
|
+
Pagination.displayName = "Pagination";
|
|
2892
|
+
var SimplePagination = React27.forwardRef(
|
|
2893
|
+
({
|
|
2894
|
+
currentPage,
|
|
2895
|
+
totalPages,
|
|
2896
|
+
onPageChange,
|
|
2897
|
+
size = "default",
|
|
2898
|
+
className,
|
|
2899
|
+
showPageInfo = true
|
|
2900
|
+
}, ref) => {
|
|
2901
|
+
const buttonSize = size === "sm" ? "sm" : size === "lg" ? "lg" : "default";
|
|
2902
|
+
const iconSize = size === "sm" ? 14 : size === "lg" ? 20 : 16;
|
|
2903
|
+
if (totalPages <= 1) {
|
|
2904
|
+
return null;
|
|
2905
|
+
}
|
|
2906
|
+
return /* @__PURE__ */ jsxs(
|
|
2907
|
+
"nav",
|
|
2908
|
+
{
|
|
2909
|
+
ref,
|
|
2910
|
+
role: "navigation",
|
|
2911
|
+
"aria-label": "Pagination",
|
|
2912
|
+
className: cn("flex items-center gap-2", className),
|
|
2913
|
+
children: [
|
|
2914
|
+
/* @__PURE__ */ jsxs(
|
|
2915
|
+
Button,
|
|
2916
|
+
{
|
|
2917
|
+
variant: "outline",
|
|
2918
|
+
size: buttonSize,
|
|
2919
|
+
onClick: () => onPageChange(currentPage - 1),
|
|
2920
|
+
disabled: currentPage <= 1,
|
|
2921
|
+
"aria-label": "Go to previous page",
|
|
2922
|
+
children: [
|
|
2923
|
+
/* @__PURE__ */ jsx(CaretLeft, { size: iconSize }),
|
|
2924
|
+
/* @__PURE__ */ jsx("span", { className: "ml-1", children: "Previous" })
|
|
2925
|
+
]
|
|
2926
|
+
}
|
|
2927
|
+
),
|
|
2928
|
+
showPageInfo && /* @__PURE__ */ jsxs("span", { className: "text-sm text-muted-foreground px-2", children: [
|
|
2929
|
+
"Page ",
|
|
2930
|
+
currentPage,
|
|
2931
|
+
" of ",
|
|
2932
|
+
totalPages
|
|
2933
|
+
] }),
|
|
2934
|
+
/* @__PURE__ */ jsxs(
|
|
2935
|
+
Button,
|
|
2936
|
+
{
|
|
2937
|
+
variant: "outline",
|
|
2938
|
+
size: buttonSize,
|
|
2939
|
+
onClick: () => onPageChange(currentPage + 1),
|
|
2940
|
+
disabled: currentPage >= totalPages,
|
|
2941
|
+
"aria-label": "Go to next page",
|
|
2942
|
+
children: [
|
|
2943
|
+
/* @__PURE__ */ jsx("span", { className: "mr-1", children: "Next" }),
|
|
2944
|
+
/* @__PURE__ */ jsx(CaretRight, { size: iconSize })
|
|
2945
|
+
]
|
|
2946
|
+
}
|
|
2947
|
+
)
|
|
2948
|
+
]
|
|
2949
|
+
}
|
|
2950
|
+
);
|
|
2951
|
+
}
|
|
2952
|
+
);
|
|
2953
|
+
SimplePagination.displayName = "SimplePagination";
|
|
2954
|
+
var StepProgress = React27.forwardRef(
|
|
2955
|
+
({
|
|
2956
|
+
steps,
|
|
2957
|
+
currentStep,
|
|
2958
|
+
onStepClick,
|
|
2959
|
+
orientation = "horizontal",
|
|
2960
|
+
size = "default",
|
|
2961
|
+
showLabels = true,
|
|
2962
|
+
className
|
|
2963
|
+
}, ref) => {
|
|
2964
|
+
const sizeStyles = {
|
|
2965
|
+
sm: {
|
|
2966
|
+
indicator: "w-6 h-6 text-xs",
|
|
2967
|
+
icon: 12,
|
|
2968
|
+
label: "text-xs",
|
|
2969
|
+
connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
|
|
2970
|
+
connectorLength: orientation === "horizontal" ? "w-4 sm:w-8" : "h-6"
|
|
2971
|
+
},
|
|
2972
|
+
default: {
|
|
2973
|
+
indicator: "w-7 h-7 text-xs",
|
|
2974
|
+
icon: 14,
|
|
2975
|
+
label: "text-sm",
|
|
2976
|
+
connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
|
|
2977
|
+
connectorLength: orientation === "horizontal" ? "w-6 sm:w-10 md:w-14" : "h-8"
|
|
2978
|
+
},
|
|
2979
|
+
lg: {
|
|
2980
|
+
indicator: "w-8 h-8 text-sm",
|
|
2981
|
+
icon: 16,
|
|
2982
|
+
label: "text-sm",
|
|
2983
|
+
connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
|
|
2984
|
+
connectorLength: orientation === "horizontal" ? "w-8 sm:w-12 md:w-16" : "h-10"
|
|
2985
|
+
}
|
|
2986
|
+
};
|
|
2987
|
+
const styles = sizeStyles[size];
|
|
2988
|
+
return /* @__PURE__ */ jsx(
|
|
2989
|
+
"div",
|
|
2990
|
+
{
|
|
2991
|
+
ref,
|
|
2992
|
+
className: cn(
|
|
2993
|
+
"flex",
|
|
2994
|
+
orientation === "horizontal" ? "flex-row items-center" : "flex-col",
|
|
2995
|
+
className
|
|
2996
|
+
),
|
|
2997
|
+
children: steps.map((step, index) => {
|
|
2998
|
+
const isCompleted = step.id < currentStep;
|
|
2999
|
+
const isCurrent = step.id === currentStep;
|
|
3000
|
+
const isClickable = onStepClick && step.id < currentStep;
|
|
3001
|
+
return /* @__PURE__ */ jsxs(
|
|
3002
|
+
"div",
|
|
3003
|
+
{
|
|
3004
|
+
className: cn(
|
|
3005
|
+
"flex",
|
|
3006
|
+
orientation === "horizontal" ? "flex-row items-center" : "flex-col items-start"
|
|
3007
|
+
),
|
|
3008
|
+
children: [
|
|
3009
|
+
/* @__PURE__ */ jsxs(
|
|
3010
|
+
"button",
|
|
3011
|
+
{
|
|
3012
|
+
type: "button",
|
|
3013
|
+
onClick: () => isClickable && onStepClick(step.id),
|
|
3014
|
+
disabled: !isClickable,
|
|
3015
|
+
className: cn(
|
|
3016
|
+
"flex items-center gap-2 px-2 py-1.5 rounded-sm transition-colors",
|
|
3017
|
+
isClickable ? "cursor-pointer hover:bg-gray-50" : "cursor-default",
|
|
3018
|
+
orientation === "vertical" && "flex-row"
|
|
3019
|
+
),
|
|
3020
|
+
children: [
|
|
3021
|
+
/* @__PURE__ */ jsx(
|
|
3022
|
+
"span",
|
|
3023
|
+
{
|
|
3024
|
+
className: cn(
|
|
3025
|
+
"rounded-sm flex items-center justify-center font-bold transition-colors",
|
|
3026
|
+
styles.indicator,
|
|
3027
|
+
isCompleted ? "bg-[var(--cyan)] text-white" : isCurrent ? "bg-[var(--black)] text-white" : "bg-gray-100 text-gray-400"
|
|
3028
|
+
),
|
|
3029
|
+
children: isCompleted ? /* @__PURE__ */ jsx(Check, { size: styles.icon, weight: "bold" }) : step.id
|
|
3030
|
+
}
|
|
3031
|
+
),
|
|
3032
|
+
showLabels && /* @__PURE__ */ jsxs("div", { className: cn(
|
|
3033
|
+
orientation === "horizontal" && "hidden sm:block",
|
|
3034
|
+
"text-left"
|
|
3035
|
+
), children: [
|
|
3036
|
+
/* @__PURE__ */ jsx(
|
|
3037
|
+
"span",
|
|
3038
|
+
{
|
|
3039
|
+
className: cn(
|
|
3040
|
+
"font-medium transition-colors whitespace-nowrap",
|
|
3041
|
+
styles.label,
|
|
3042
|
+
isCompleted ? "text-[var(--cyan)]" : isCurrent ? "text-[var(--black)]" : "text-gray-400"
|
|
3043
|
+
),
|
|
3044
|
+
children: step.label
|
|
3045
|
+
}
|
|
3046
|
+
),
|
|
3047
|
+
step.description && orientation === "vertical" && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground mt-0.5", children: step.description })
|
|
3048
|
+
] })
|
|
3049
|
+
]
|
|
3050
|
+
}
|
|
3051
|
+
),
|
|
3052
|
+
index < steps.length - 1 && /* @__PURE__ */ jsx(
|
|
3053
|
+
"div",
|
|
3054
|
+
{
|
|
3055
|
+
className: cn(
|
|
3056
|
+
"transition-colors",
|
|
3057
|
+
styles.connector,
|
|
3058
|
+
styles.connectorLength,
|
|
3059
|
+
isCompleted ? "bg-[var(--cyan)]" : "bg-gray-200",
|
|
3060
|
+
orientation === "vertical" && "ml-[13px] my-1"
|
|
3061
|
+
)
|
|
3062
|
+
}
|
|
3063
|
+
)
|
|
3064
|
+
]
|
|
3065
|
+
},
|
|
3066
|
+
step.id
|
|
3067
|
+
);
|
|
3068
|
+
})
|
|
3069
|
+
}
|
|
3070
|
+
);
|
|
3071
|
+
}
|
|
3072
|
+
);
|
|
3073
|
+
StepProgress.displayName = "StepProgress";
|
|
3074
|
+
var StepDots = React27.forwardRef(
|
|
3075
|
+
({ totalSteps, currentStep, onStepClick, className }, ref) => {
|
|
3076
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2", className), children: Array.from({ length: totalSteps }, (_, i) => i + 1).map((step) => {
|
|
3077
|
+
const isCompleted = step < currentStep;
|
|
3078
|
+
const isCurrent = step === currentStep;
|
|
3079
|
+
const isClickable = onStepClick && step < currentStep;
|
|
3080
|
+
return /* @__PURE__ */ jsx(
|
|
3081
|
+
"button",
|
|
3082
|
+
{
|
|
3083
|
+
type: "button",
|
|
3084
|
+
onClick: () => isClickable && onStepClick(step),
|
|
3085
|
+
disabled: !isClickable,
|
|
3086
|
+
className: cn(
|
|
3087
|
+
"w-2 h-2 rounded-full transition-colors",
|
|
3088
|
+
isClickable && "cursor-pointer",
|
|
3089
|
+
!isClickable && "cursor-default",
|
|
3090
|
+
isCompleted || isCurrent ? "bg-[var(--cyan)]" : "bg-gray-200"
|
|
3091
|
+
),
|
|
3092
|
+
"aria-label": `Step ${step}`
|
|
3093
|
+
},
|
|
3094
|
+
step
|
|
3095
|
+
);
|
|
3096
|
+
}) });
|
|
3097
|
+
}
|
|
3098
|
+
);
|
|
3099
|
+
StepDots.displayName = "StepDots";
|
|
3100
|
+
var Breadcrumbs = React27.forwardRef(
|
|
3101
|
+
({
|
|
3102
|
+
items,
|
|
3103
|
+
LinkComponent,
|
|
3104
|
+
separator,
|
|
3105
|
+
showHomeIcon = false,
|
|
3106
|
+
maxItems,
|
|
3107
|
+
size = "default",
|
|
3108
|
+
className,
|
|
3109
|
+
...props
|
|
3110
|
+
}, ref) => {
|
|
3111
|
+
const sizeStyles = {
|
|
3112
|
+
sm: "text-xs gap-1",
|
|
3113
|
+
default: "text-sm gap-1.5"
|
|
3114
|
+
};
|
|
3115
|
+
const iconSize = size === "sm" ? 10 : 12;
|
|
3116
|
+
let displayItems = items;
|
|
3117
|
+
if (maxItems && items.length > maxItems) {
|
|
3118
|
+
displayItems = [
|
|
3119
|
+
items[0],
|
|
3120
|
+
{ label: "...", href: void 0 },
|
|
3121
|
+
...items.slice(-(maxItems - 2))
|
|
3122
|
+
];
|
|
3123
|
+
}
|
|
3124
|
+
const defaultSeparator = /* @__PURE__ */ jsx(CaretRight, { size: iconSize, className: "text-gray-400" });
|
|
3125
|
+
return /* @__PURE__ */ jsx(
|
|
3126
|
+
"nav",
|
|
3127
|
+
{
|
|
3128
|
+
ref,
|
|
3129
|
+
"aria-label": "Breadcrumb",
|
|
3130
|
+
className: cn("flex items-center text-gray-500", sizeStyles[size], className),
|
|
3131
|
+
...props,
|
|
3132
|
+
children: /* @__PURE__ */ jsx("ol", { className: cn("flex items-center", sizeStyles[size]), children: displayItems.map((item, index) => {
|
|
3133
|
+
const isFirst = index === 0;
|
|
3134
|
+
const isLast = index === displayItems.length - 1;
|
|
3135
|
+
const isEllipsis = item.label === "...";
|
|
3136
|
+
return /* @__PURE__ */ jsxs("li", { className: cn("flex items-center", sizeStyles[size]), children: [
|
|
3137
|
+
index > 0 && /* @__PURE__ */ jsx("span", { className: "mx-1 text-gray-400", children: separator || defaultSeparator }),
|
|
3138
|
+
isEllipsis ? /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: item.label }) : item.href && !isLast ? LinkComponent ? /* @__PURE__ */ jsxs(
|
|
3139
|
+
LinkComponent,
|
|
3140
|
+
{
|
|
3141
|
+
href: item.href,
|
|
3142
|
+
className: "flex items-center gap-1 hover:text-[var(--black)] transition-colors",
|
|
3143
|
+
children: [
|
|
3144
|
+
isFirst && showHomeIcon && /* @__PURE__ */ jsx(House, { size: iconSize + 2, weight: "fill" }),
|
|
3145
|
+
item.icon,
|
|
3146
|
+
/* @__PURE__ */ jsx("span", { children: item.label })
|
|
3147
|
+
]
|
|
3148
|
+
}
|
|
3149
|
+
) : /* @__PURE__ */ jsxs(
|
|
3150
|
+
"a",
|
|
3151
|
+
{
|
|
3152
|
+
href: item.href,
|
|
3153
|
+
className: "flex items-center gap-1 hover:text-[var(--black)] transition-colors",
|
|
3154
|
+
children: [
|
|
3155
|
+
isFirst && showHomeIcon && /* @__PURE__ */ jsx(House, { size: iconSize + 2, weight: "fill" }),
|
|
3156
|
+
item.icon,
|
|
3157
|
+
/* @__PURE__ */ jsx("span", { children: item.label })
|
|
3158
|
+
]
|
|
3159
|
+
}
|
|
3160
|
+
) : /* @__PURE__ */ jsxs(
|
|
3161
|
+
"span",
|
|
3162
|
+
{
|
|
3163
|
+
className: cn(
|
|
3164
|
+
"flex items-center gap-1",
|
|
3165
|
+
isLast && "text-[var(--black)] font-medium"
|
|
3166
|
+
),
|
|
3167
|
+
"aria-current": isLast ? "page" : void 0,
|
|
3168
|
+
children: [
|
|
3169
|
+
isFirst && showHomeIcon && /* @__PURE__ */ jsx(House, { size: iconSize + 2, weight: "fill" }),
|
|
3170
|
+
item.icon,
|
|
3171
|
+
/* @__PURE__ */ jsx("span", { children: item.label })
|
|
3172
|
+
]
|
|
3173
|
+
}
|
|
3174
|
+
)
|
|
3175
|
+
] }, index);
|
|
3176
|
+
}) })
|
|
3177
|
+
}
|
|
3178
|
+
);
|
|
3179
|
+
}
|
|
3180
|
+
);
|
|
3181
|
+
Breadcrumbs.displayName = "Breadcrumbs";
|
|
3182
|
+
var BreadcrumbLink = React27.forwardRef(
|
|
3183
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
3184
|
+
"a",
|
|
3185
|
+
{
|
|
3186
|
+
ref,
|
|
3187
|
+
className: cn(
|
|
3188
|
+
"hover:text-[var(--black)] transition-colors",
|
|
3189
|
+
className
|
|
3190
|
+
),
|
|
3191
|
+
...props
|
|
3192
|
+
}
|
|
3193
|
+
)
|
|
3194
|
+
);
|
|
3195
|
+
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
3196
|
+
var presetLabels = {
|
|
3197
|
+
"today": "Today",
|
|
3198
|
+
"yesterday": "Yesterday",
|
|
3199
|
+
"7d": "Last 7 days",
|
|
3200
|
+
"30d": "Last 30 days",
|
|
3201
|
+
"90d": "Last 90 days",
|
|
3202
|
+
"this-week": "This week",
|
|
3203
|
+
"this-month": "This month",
|
|
3204
|
+
"this-year": "This year",
|
|
3205
|
+
"custom": "Custom"
|
|
3206
|
+
};
|
|
3207
|
+
var DateRangePicker = React27.forwardRef(
|
|
3208
|
+
({
|
|
3209
|
+
value,
|
|
3210
|
+
onChange,
|
|
3211
|
+
customStart = "",
|
|
3212
|
+
customEnd = "",
|
|
3213
|
+
onCustomChange,
|
|
3214
|
+
presets = ["7d", "30d", "90d", "custom"],
|
|
3215
|
+
size = "default",
|
|
3216
|
+
className,
|
|
3217
|
+
inlineCustom = true
|
|
3218
|
+
}, ref) => {
|
|
3219
|
+
const buttonSize = size === "sm" ? "sm" : "default";
|
|
3220
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-wrap items-center gap-2", className), children: [
|
|
3221
|
+
presets.map((preset) => /* @__PURE__ */ jsx(
|
|
3222
|
+
Button,
|
|
3223
|
+
{
|
|
3224
|
+
variant: value === preset ? "default" : "outline",
|
|
3225
|
+
size: buttonSize,
|
|
3226
|
+
onClick: () => onChange(preset),
|
|
3227
|
+
children: presetLabels[preset]
|
|
3228
|
+
},
|
|
3229
|
+
preset
|
|
3230
|
+
)),
|
|
3231
|
+
value === "custom" && inlineCustom && onCustomChange && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3232
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
3233
|
+
/* @__PURE__ */ jsx(Label2, { htmlFor: "start-date", className: "text-xs sr-only", children: "Start" }),
|
|
3234
|
+
/* @__PURE__ */ jsx(
|
|
3235
|
+
Input,
|
|
3236
|
+
{
|
|
3237
|
+
id: "start-date",
|
|
3238
|
+
type: "date",
|
|
3239
|
+
value: customStart,
|
|
3240
|
+
onChange: (e) => onCustomChange(e.target.value, customEnd),
|
|
3241
|
+
className: cn(size === "sm" ? "h-8 text-xs" : "h-9"),
|
|
3242
|
+
"aria-label": "Start date"
|
|
3243
|
+
}
|
|
3244
|
+
)
|
|
3245
|
+
] }),
|
|
3246
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "to" }),
|
|
3247
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
3248
|
+
/* @__PURE__ */ jsx(Label2, { htmlFor: "end-date", className: "text-xs sr-only", children: "End" }),
|
|
3249
|
+
/* @__PURE__ */ jsx(
|
|
3250
|
+
Input,
|
|
3251
|
+
{
|
|
3252
|
+
id: "end-date",
|
|
3253
|
+
type: "date",
|
|
3254
|
+
value: customEnd,
|
|
3255
|
+
onChange: (e) => onCustomChange(customStart, e.target.value),
|
|
3256
|
+
className: cn(size === "sm" ? "h-8 text-xs" : "h-9"),
|
|
3257
|
+
"aria-label": "End date"
|
|
3258
|
+
}
|
|
3259
|
+
)
|
|
3260
|
+
] })
|
|
3261
|
+
] })
|
|
3262
|
+
] });
|
|
3263
|
+
}
|
|
3264
|
+
);
|
|
3265
|
+
DateRangePicker.displayName = "DateRangePicker";
|
|
3266
|
+
var DateRangeSelect = React27.forwardRef(
|
|
3267
|
+
({ value, onChange, presets = ["7d", "30d", "90d"], className }, ref) => {
|
|
3268
|
+
return /* @__PURE__ */ jsx(
|
|
3269
|
+
"select",
|
|
3270
|
+
{
|
|
3271
|
+
ref,
|
|
3272
|
+
value,
|
|
3273
|
+
onChange: (e) => onChange(e.target.value),
|
|
3274
|
+
className: cn(
|
|
3275
|
+
"h-9 rounded-sm border border-input bg-background px-3 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
3276
|
+
className
|
|
3277
|
+
),
|
|
3278
|
+
children: presets.map((preset) => /* @__PURE__ */ jsx("option", { value: preset, children: presetLabels[preset] }, preset))
|
|
3279
|
+
}
|
|
3280
|
+
);
|
|
3281
|
+
}
|
|
3282
|
+
);
|
|
3283
|
+
DateRangeSelect.displayName = "DateRangeSelect";
|
|
3284
|
+
function getDateRangeFromPreset(preset) {
|
|
3285
|
+
const now = /* @__PURE__ */ new Date();
|
|
3286
|
+
const end = new Date(now);
|
|
3287
|
+
end.setHours(23, 59, 59, 999);
|
|
3288
|
+
let start = new Date(now);
|
|
3289
|
+
start.setHours(0, 0, 0, 0);
|
|
3290
|
+
switch (preset) {
|
|
3291
|
+
case "today":
|
|
3292
|
+
break;
|
|
3293
|
+
case "yesterday":
|
|
3294
|
+
start.setDate(start.getDate() - 1);
|
|
3295
|
+
end.setDate(end.getDate() - 1);
|
|
3296
|
+
break;
|
|
3297
|
+
case "7d":
|
|
3298
|
+
start.setDate(start.getDate() - 7);
|
|
3299
|
+
break;
|
|
3300
|
+
case "30d":
|
|
3301
|
+
start.setDate(start.getDate() - 30);
|
|
3302
|
+
break;
|
|
3303
|
+
case "90d":
|
|
3304
|
+
start.setDate(start.getDate() - 90);
|
|
3305
|
+
break;
|
|
3306
|
+
case "this-week":
|
|
3307
|
+
start.setDate(start.getDate() - start.getDay());
|
|
3308
|
+
break;
|
|
3309
|
+
case "this-month":
|
|
3310
|
+
start.setDate(1);
|
|
3311
|
+
break;
|
|
3312
|
+
case "this-year":
|
|
3313
|
+
start.setMonth(0, 1);
|
|
3314
|
+
break;
|
|
3315
|
+
}
|
|
3316
|
+
return { start, end };
|
|
3317
|
+
}
|
|
3318
|
+
var SettingsNav = React27.forwardRef(
|
|
3319
|
+
({ groups, LinkComponent, className, ...props }, ref) => {
|
|
3320
|
+
const Link2 = LinkComponent || "a";
|
|
3321
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-8", className), ...props, children: groups.map((group) => /* @__PURE__ */ jsxs("div", { children: [
|
|
3322
|
+
/* @__PURE__ */ jsx("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide mb-3 px-1", children: group.title }),
|
|
3323
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-1", children: group.items.map((item) => /* @__PURE__ */ jsxs(
|
|
3324
|
+
Link2,
|
|
3325
|
+
{
|
|
3326
|
+
href: item.href,
|
|
3327
|
+
className: "group flex items-center gap-4 p-4 rounded-sm transition-all hover:bg-gray-50 border border-transparent hover:border-gray-200",
|
|
3328
|
+
children: [
|
|
3329
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-10 h-10 rounded-sm bg-gray-100 group-hover:bg-[var(--cyan)]/10 transition-colors", children: /* @__PURE__ */ jsx("span", { className: "text-gray-600 group-hover:text-[var(--cyan)] transition-colors [&>svg]:w-5 [&>svg]:h-5", children: item.icon }) }),
|
|
3330
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3331
|
+
/* @__PURE__ */ jsx("h3", { className: "font-medium text-[var(--black)] group-hover:text-[var(--cyan)] transition-colors", children: item.title }),
|
|
3332
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: item.description })
|
|
3333
|
+
] }),
|
|
3334
|
+
/* @__PURE__ */ jsx(
|
|
3335
|
+
CaretRight,
|
|
3336
|
+
{
|
|
3337
|
+
size: 18,
|
|
3338
|
+
className: "text-gray-300 group-hover:text-[var(--cyan)] group-hover:translate-x-0.5 transition-all shrink-0"
|
|
3339
|
+
}
|
|
3340
|
+
)
|
|
3341
|
+
]
|
|
3342
|
+
},
|
|
3343
|
+
item.href
|
|
3344
|
+
)) })
|
|
3345
|
+
] }, group.title)) });
|
|
3346
|
+
}
|
|
3347
|
+
);
|
|
3348
|
+
SettingsNav.displayName = "SettingsNav";
|
|
3349
|
+
var SettingsNavLink = React27.forwardRef(
|
|
3350
|
+
({ title, description, icon, href, LinkComponent, className, ...props }, ref) => {
|
|
3351
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3352
|
+
icon && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center w-10 h-10 rounded-sm bg-gray-100 group-hover:bg-[var(--cyan)]/10 transition-colors", children: /* @__PURE__ */ jsx("span", { className: "text-gray-600 group-hover:text-[var(--cyan)] transition-colors [&>svg]:w-5 [&>svg]:h-5", children: icon }) }),
|
|
3353
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3354
|
+
/* @__PURE__ */ jsx("h3", { className: "font-medium text-[var(--black)] group-hover:text-[var(--cyan)] transition-colors", children: title }),
|
|
3355
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
|
|
3356
|
+
] }),
|
|
3357
|
+
/* @__PURE__ */ jsx(
|
|
3358
|
+
CaretRight,
|
|
3359
|
+
{
|
|
3360
|
+
size: 18,
|
|
3361
|
+
className: "text-gray-300 group-hover:text-[var(--cyan)] group-hover:translate-x-0.5 transition-all shrink-0"
|
|
3362
|
+
}
|
|
3363
|
+
)
|
|
3364
|
+
] });
|
|
3365
|
+
const linkClassName = cn(
|
|
3366
|
+
"group flex items-center gap-4 p-4 rounded-sm transition-all hover:bg-gray-50 border border-transparent hover:border-gray-200",
|
|
3367
|
+
className
|
|
3368
|
+
);
|
|
3369
|
+
if (LinkComponent && href) {
|
|
3370
|
+
return /* @__PURE__ */ jsx(LinkComponent, { href, className: linkClassName, children: content });
|
|
3371
|
+
}
|
|
3372
|
+
return /* @__PURE__ */ jsx("a", { ref, href, className: linkClassName, ...props, children: content });
|
|
3373
|
+
}
|
|
3374
|
+
);
|
|
3375
|
+
SettingsNavLink.displayName = "SettingsNavLink";
|
|
2256
3376
|
|
|
2257
3377
|
// src/index.ts
|
|
2258
3378
|
__reExport(index_exports, icons_exports);
|
|
2259
3379
|
|
|
2260
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, Avatar, AvatarFallback, AvatarImage, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FormField, IconBox, Input, Label2 as Label, Logo, MetricCard, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Progress, Select, Separator2 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarNavItem, Stat, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tag, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, ToastProvider, ToastTitle, ToastViewport, Toaster, UsageBar, UsageChart, alertVariants, badgeVariants, buttonVariants, cn, iconBoxVariants, metricCardVariants, navigationMenuTriggerStyle, progressVariants, statVariants, tagVariants, toast, usageBarVariants, useToast, valueVariants };
|
|
3380
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Avatar, AvatarFallback, AvatarImage, Badge, BreadcrumbLink, Breadcrumbs, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, ConfirmDialog, DateRangePicker, DateRangeSelect, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Divider, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, FormField, IconBox, Input, Label2 as Label, LabeledSwitch, Logo, MetricCard, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupCard, RadioGroupItem, RadioGroupOption, Select, Separator2 as Separator, SettingsNav, SettingsNavLink, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarNavItem, SimplePagination, SimpleTooltip, Skeleton, SkeletonCard, SkeletonText, Stat, StepDots, StepProgress, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsListUnderline, TabsTrigger, TabsTriggerUnderline, Tag, Textarea, Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipTrigger, UsageBar, UsageChart, alertVariants, badgeVariants, buttonVariants, cn, getDateRangeFromPreset, iconBoxVariants, metricCardVariants, navigationMenuTriggerStyle, progressVariants, statVariants, tagVariants, toast, usageBarVariants, useToast, valueVariants };
|
|
2261
3381
|
//# sourceMappingURL=index.mjs.map
|
|
2262
3382
|
//# sourceMappingURL=index.mjs.map
|