@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.
Files changed (44) hide show
  1. package/dist/components/alert-dialog.d.ts +34 -0
  2. package/dist/components/alert-dialog.d.ts.map +1 -0
  3. package/dist/components/breadcrumbs.d.ts +30 -0
  4. package/dist/components/breadcrumbs.d.ts.map +1 -0
  5. package/dist/components/date-range-picker.d.ts +36 -0
  6. package/dist/components/date-range-picker.d.ts.map +1 -0
  7. package/dist/components/pagination.d.ts +29 -0
  8. package/dist/components/pagination.d.ts.map +1 -0
  9. package/dist/components/popover.d.ts +10 -0
  10. package/dist/components/popover.d.ts.map +1 -0
  11. package/dist/components/radio-group.d.ts +17 -0
  12. package/dist/components/radio-group.d.ts.map +1 -0
  13. package/dist/components/settings-nav.d.ts +35 -0
  14. package/dist/components/settings-nav.d.ts.map +1 -0
  15. package/dist/components/skeleton.d.ts +28 -0
  16. package/dist/components/skeleton.d.ts.map +1 -0
  17. package/dist/components/step-progress.d.ts +28 -0
  18. package/dist/components/step-progress.d.ts.map +1 -0
  19. package/dist/components/switch.d.ts +15 -0
  20. package/dist/components/switch.d.ts.map +1 -0
  21. package/dist/components/tabs.d.ts +10 -0
  22. package/dist/components/tabs.d.ts.map +1 -0
  23. package/dist/components/tooltip.d.ts +17 -0
  24. package/dist/components/tooltip.d.ts.map +1 -0
  25. package/dist/index.d.ts +22 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1263 -87
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.mjs +1209 -89
  30. package/dist/index.mjs.map +1 -1
  31. package/package.json +7 -1
  32. package/src/components/alert-dialog.tsx +203 -0
  33. package/src/components/breadcrumbs.tsx +160 -0
  34. package/src/components/date-range-picker.tsx +183 -0
  35. package/src/components/pagination.tsx +220 -0
  36. package/src/components/popover.tsx +53 -0
  37. package/src/components/radio-group.tsx +125 -0
  38. package/src/components/settings-nav.tsx +137 -0
  39. package/src/components/skeleton.tsx +103 -0
  40. package/src/components/step-progress.tsx +205 -0
  41. package/src/components/switch.tsx +95 -0
  42. package/src/components/tabs.tsx +92 -0
  43. package/src/components/tooltip.tsx +78 -0
  44. package/src/index.ts +78 -0
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var React25 = require('react');
3
+ var React27 = require('react');
4
4
  var reactSlot = require('@radix-ui/react-slot');
5
5
  var classVarianceAuthority = require('class-variance-authority');
6
6
  var clsx = require('clsx');
@@ -9,10 +9,16 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
  var SheetPrimitive = require('@radix-ui/react-dialog');
10
10
  var react_star = require('@phosphor-icons/react');
11
11
  require('react-dom');
12
+ var SwitchPrimitive = require('@radix-ui/react-switch');
13
+ var RadioGroupPrimitive = require('@radix-ui/react-radio-group');
12
14
  var AccordionPrimitive = require('@radix-ui/react-accordion');
13
15
  var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
14
16
  var AvatarPrimitive = require('@radix-ui/react-avatar');
15
17
  var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
18
+ var TabsPrimitive = require('@radix-ui/react-tabs');
19
+ var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
20
+ var PopoverPrimitive = require('@radix-ui/react-popover');
21
+ var TooltipPrimitive = require('@radix-ui/react-tooltip');
16
22
  var ToastPrimitives = require('@radix-ui/react-toast');
17
23
 
18
24
  function _interopNamespace(e) {
@@ -33,13 +39,19 @@ function _interopNamespace(e) {
33
39
  return Object.freeze(n);
34
40
  }
35
41
 
36
- var React25__namespace = /*#__PURE__*/_interopNamespace(React25);
42
+ var React27__namespace = /*#__PURE__*/_interopNamespace(React27);
37
43
  var SheetPrimitive__namespace = /*#__PURE__*/_interopNamespace(SheetPrimitive);
38
44
  var react_star__namespace = /*#__PURE__*/_interopNamespace(react_star);
45
+ var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
46
+ var RadioGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(RadioGroupPrimitive);
39
47
  var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
40
48
  var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
41
49
  var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
42
50
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
51
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
52
+ var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
53
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
54
+ var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
43
55
  var ToastPrimitives__namespace = /*#__PURE__*/_interopNamespace(ToastPrimitives);
44
56
 
45
57
  var __defProp = Object.defineProperty;
@@ -68,10 +80,23 @@ __export(index_exports, {
68
80
  AccordionItem: () => AccordionItem,
69
81
  AccordionTrigger: () => AccordionTrigger,
70
82
  Alert: () => Alert,
83
+ AlertDialog: () => AlertDialog,
84
+ AlertDialogAction: () => AlertDialogAction,
85
+ AlertDialogCancel: () => AlertDialogCancel,
86
+ AlertDialogContent: () => AlertDialogContent,
87
+ AlertDialogDescription: () => AlertDialogDescription,
88
+ AlertDialogFooter: () => AlertDialogFooter,
89
+ AlertDialogHeader: () => AlertDialogHeader,
90
+ AlertDialogOverlay: () => AlertDialogOverlay,
91
+ AlertDialogPortal: () => AlertDialogPortal,
92
+ AlertDialogTitle: () => AlertDialogTitle,
93
+ AlertDialogTrigger: () => AlertDialogTrigger,
71
94
  Avatar: () => Avatar,
72
95
  AvatarFallback: () => AvatarFallback,
73
96
  AvatarImage: () => AvatarImage,
74
97
  Badge: () => Badge,
98
+ BreadcrumbLink: () => BreadcrumbLink,
99
+ Breadcrumbs: () => Breadcrumbs,
75
100
  Button: () => Button,
76
101
  Card: () => Card,
77
102
  CardContent: () => CardContent,
@@ -81,6 +106,9 @@ __export(index_exports, {
81
106
  CardTitle: () => CardTitle,
82
107
  Checkbox: () => Checkbox,
83
108
  CodeBlock: () => CodeBlock,
109
+ ConfirmDialog: () => ConfirmDialog,
110
+ DateRangePicker: () => DateRangePicker,
111
+ DateRangeSelect: () => DateRangeSelect,
84
112
  Dialog: () => Dialog,
85
113
  DialogClose: () => DialogClose,
86
114
  DialogContent: () => DialogContent,
@@ -112,6 +140,7 @@ __export(index_exports, {
112
140
  IconBox: () => IconBox,
113
141
  Input: () => Input,
114
142
  Label: () => Label2,
143
+ LabeledSwitch: () => LabeledSwitch,
115
144
  Logo: () => Logo,
116
145
  MetricCard: () => MetricCard,
117
146
  NavigationMenu: () => NavigationMenu,
@@ -122,9 +151,22 @@ __export(index_exports, {
122
151
  NavigationMenuList: () => NavigationMenuList,
123
152
  NavigationMenuTrigger: () => NavigationMenuTrigger,
124
153
  NavigationMenuViewport: () => NavigationMenuViewport,
154
+ Pagination: () => Pagination,
155
+ Popover: () => Popover,
156
+ PopoverAnchor: () => PopoverAnchor,
157
+ PopoverArrow: () => PopoverArrow,
158
+ PopoverClose: () => PopoverClose,
159
+ PopoverContent: () => PopoverContent,
160
+ PopoverTrigger: () => PopoverTrigger,
125
161
  Progress: () => Progress,
162
+ RadioGroup: () => RadioGroup,
163
+ RadioGroupCard: () => RadioGroupCard,
164
+ RadioGroupItem: () => RadioGroupItem,
165
+ RadioGroupOption: () => RadioGroupOption,
126
166
  Select: () => Select,
127
167
  Separator: () => Separator2,
168
+ SettingsNav: () => SettingsNav,
169
+ SettingsNavLink: () => SettingsNavLink,
128
170
  Sheet: () => Sheet,
129
171
  SheetClose: () => SheetClose,
130
172
  SheetContent: () => SheetContent,
@@ -137,7 +179,15 @@ __export(index_exports, {
137
179
  SheetTrigger: () => SheetTrigger,
138
180
  Sidebar: () => Sidebar,
139
181
  SidebarNavItem: () => SidebarNavItem,
182
+ SimplePagination: () => SimplePagination,
183
+ SimpleTooltip: () => SimpleTooltip,
184
+ Skeleton: () => Skeleton,
185
+ SkeletonCard: () => SkeletonCard,
186
+ SkeletonText: () => SkeletonText,
140
187
  Stat: () => Stat,
188
+ StepDots: () => StepDots,
189
+ StepProgress: () => StepProgress,
190
+ Switch: () => Switch,
141
191
  Table: () => Table,
142
192
  TableBody: () => TableBody,
143
193
  TableCaption: () => TableCaption,
@@ -146,6 +196,12 @@ __export(index_exports, {
146
196
  TableHead: () => TableHead,
147
197
  TableHeader: () => TableHeader,
148
198
  TableRow: () => TableRow,
199
+ Tabs: () => Tabs,
200
+ TabsContent: () => TabsContent,
201
+ TabsList: () => TabsList,
202
+ TabsListUnderline: () => TabsListUnderline,
203
+ TabsTrigger: () => TabsTrigger,
204
+ TabsTriggerUnderline: () => TabsTriggerUnderline,
149
205
  Tag: () => Tag,
150
206
  Textarea: () => Textarea,
151
207
  Toast: () => Toast,
@@ -157,12 +213,18 @@ __export(index_exports, {
157
213
  ToastTitle: () => ToastTitle,
158
214
  ToastViewport: () => ToastViewport,
159
215
  Toaster: () => Toaster,
216
+ Tooltip: () => Tooltip,
217
+ TooltipArrow: () => TooltipArrow,
218
+ TooltipContent: () => TooltipContent,
219
+ TooltipProvider: () => TooltipProvider,
220
+ TooltipTrigger: () => TooltipTrigger,
160
221
  UsageBar: () => UsageBar,
161
222
  UsageChart: () => UsageChart,
162
223
  alertVariants: () => alertVariants,
163
224
  badgeVariants: () => badgeVariants,
164
225
  buttonVariants: () => buttonVariants,
165
226
  cn: () => cn,
227
+ getDateRangeFromPreset: () => getDateRangeFromPreset,
166
228
  iconBoxVariants: () => iconBoxVariants,
167
229
  metricCardVariants: () => metricCardVariants,
168
230
  navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
@@ -203,7 +265,7 @@ var buttonVariants = classVarianceAuthority.cva(
203
265
  }
204
266
  }
205
267
  );
206
- var Button = React25__namespace.forwardRef(
268
+ var Button = React27__namespace.forwardRef(
207
269
  ({ className, variant, size, asChild = false, loading, loadingText, children, disabled, ...props }, ref) => {
208
270
  const Comp = asChild ? reactSlot.Slot : "button";
209
271
  const isDisabled = disabled || loading;
@@ -256,7 +318,7 @@ var Sheet = SheetPrimitive__namespace.Root;
256
318
  var SheetTrigger = SheetPrimitive__namespace.Trigger;
257
319
  var SheetClose = SheetPrimitive__namespace.Close;
258
320
  var SheetPortal = SheetPrimitive__namespace.Portal;
259
- var SheetOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => (
321
+ var SheetOverlay = React27__namespace.forwardRef(({ className, ...props }, ref) => (
260
322
  // @ts-ignore - Radix Dialog Overlay accepts className at runtime
261
323
  /* @__PURE__ */ jsxRuntime.jsx(
262
324
  SheetPrimitive__namespace.Overlay,
@@ -287,7 +349,7 @@ var sheetVariants = classVarianceAuthority.cva(
287
349
  }
288
350
  }
289
351
  );
290
- var SheetContent = React25__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
352
+ var SheetContent = React27__namespace.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
291
353
  /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
292
354
  /* @__PURE__ */ jsxRuntime.jsxs(
293
355
  SheetPrimitive__namespace.Content,
@@ -334,7 +396,7 @@ var SheetFooter = ({
334
396
  }
335
397
  );
336
398
  SheetFooter.displayName = "SheetFooter";
337
- var SheetTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => (
399
+ var SheetTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => (
338
400
  // @ts-ignore - Radix Dialog Title accepts className at runtime
339
401
  /* @__PURE__ */ jsxRuntime.jsx(
340
402
  SheetPrimitive__namespace.Title,
@@ -346,7 +408,7 @@ var SheetTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =>
346
408
  )
347
409
  ));
348
410
  SheetTitle.displayName = SheetPrimitive__namespace.Title.displayName;
349
- var SheetDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => (
411
+ var SheetDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => (
350
412
  // @ts-ignore - Radix Dialog Description accepts className at runtime
351
413
  /* @__PURE__ */ jsxRuntime.jsx(
352
414
  SheetPrimitive__namespace.Description,
@@ -446,7 +508,7 @@ var badgeVariants = classVarianceAuthority.cva(
446
508
  }
447
509
  }
448
510
  );
449
- var Badge = React25__namespace.forwardRef(
511
+ var Badge = React27__namespace.forwardRef(
450
512
  ({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {
451
513
  const getPulseColorClass = () => {
452
514
  const color = pulseColorProp || variant || "default";
@@ -500,7 +562,7 @@ var Badge = React25__namespace.forwardRef(
500
562
  }
501
563
  );
502
564
  Badge.displayName = "Badge";
503
- var Card = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
565
+ var Card = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
504
566
  "div",
505
567
  {
506
568
  ref,
@@ -512,7 +574,7 @@ var Card = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @_
512
574
  }
513
575
  ));
514
576
  Card.displayName = "Card";
515
- var CardHeader = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
577
+ var CardHeader = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
516
578
  "div",
517
579
  {
518
580
  ref,
@@ -521,7 +583,7 @@ var CardHeader = React25__namespace.forwardRef(({ className, ...props }, ref) =>
521
583
  }
522
584
  ));
523
585
  CardHeader.displayName = "CardHeader";
524
- var CardTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
586
+ var CardTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
525
587
  "h3",
526
588
  {
527
589
  ref,
@@ -533,7 +595,7 @@ var CardTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =>
533
595
  }
534
596
  ));
535
597
  CardTitle.displayName = "CardTitle";
536
- var CardDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
598
+ var CardDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
537
599
  "p",
538
600
  {
539
601
  ref,
@@ -542,9 +604,9 @@ var CardDescription = React25__namespace.forwardRef(({ className, ...props }, re
542
604
  }
543
605
  ));
544
606
  CardDescription.displayName = "CardDescription";
545
- var CardContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
607
+ var CardContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
546
608
  CardContent.displayName = "CardContent";
547
- var CardFooter = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
609
+ var CardFooter = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
548
610
  "div",
549
611
  {
550
612
  ref,
@@ -567,7 +629,7 @@ var progressVariants = classVarianceAuthority.cva("h-full rounded-full transitio
567
629
  variant: "default"
568
630
  }
569
631
  });
570
- var Progress = React25__namespace.forwardRef(
632
+ var Progress = React27__namespace.forwardRef(
571
633
  ({ className, value, variant, showLabel, label = "Progress", size = "default", ...props }, ref) => {
572
634
  const clampedValue = Math.min(100, Math.max(0, value));
573
635
  const heightClass = {
@@ -634,7 +696,7 @@ var iconBoxVariants = classVarianceAuthority.cva(
634
696
  }
635
697
  }
636
698
  );
637
- var IconBox = React25__namespace.forwardRef(
699
+ var IconBox = React27__namespace.forwardRef(
638
700
  ({ className, variant, size, rounded, children, ...props }, ref) => {
639
701
  return /* @__PURE__ */ jsxRuntime.jsx(
640
702
  "div",
@@ -670,7 +732,7 @@ var tagVariants = classVarianceAuthority.cva(
670
732
  }
671
733
  }
672
734
  );
673
- var Tag = React25__namespace.forwardRef(
735
+ var Tag = React27__namespace.forwardRef(
674
736
  ({ className, variant, size, icon, children, ...props }, ref) => {
675
737
  return /* @__PURE__ */ jsxRuntime.jsxs(
676
738
  "span",
@@ -724,7 +786,7 @@ var valueVariants = classVarianceAuthority.cva("font-bold", {
724
786
  color: "default"
725
787
  }
726
788
  });
727
- var Stat = React25__namespace.forwardRef(
789
+ var Stat = React27__namespace.forwardRef(
728
790
  ({
729
791
  className,
730
792
  variant,
@@ -806,7 +868,7 @@ var iconVariants = classVarianceAuthority.cva("h-5 w-5", {
806
868
  color: "cyan"
807
869
  }
808
870
  });
809
- var MetricCard = React25__namespace.forwardRef(
871
+ var MetricCard = React27__namespace.forwardRef(
810
872
  ({
811
873
  className,
812
874
  variant,
@@ -865,7 +927,7 @@ var progressColorVariants = classVarianceAuthority.cva("", {
865
927
  color: "cyan"
866
928
  }
867
929
  });
868
- var UsageBar = React25__namespace.forwardRef(
930
+ var UsageBar = React27__namespace.forwardRef(
869
931
  ({
870
932
  className,
871
933
  size,
@@ -937,7 +999,7 @@ var UsageBar = React25__namespace.forwardRef(
937
999
  }
938
1000
  );
939
1001
  UsageBar.displayName = "UsageBar";
940
- var UsageChart = React25__namespace.forwardRef(
1002
+ var UsageChart = React27__namespace.forwardRef(
941
1003
  ({
942
1004
  className,
943
1005
  data,
@@ -948,8 +1010,8 @@ var UsageChart = React25__namespace.forwardRef(
948
1010
  formatValue = (v) => v.toLocaleString(),
949
1011
  ...props
950
1012
  }, ref) => {
951
- const [hoveredIndex, setHoveredIndex] = React25__namespace.useState(null);
952
- const maxValue = React25__namespace.useMemo(() => {
1013
+ const [hoveredIndex, setHoveredIndex] = React27__namespace.useState(null);
1014
+ const maxValue = React27__namespace.useMemo(() => {
953
1015
  return Math.max(
954
1016
  ...data.map((d) => d.value + (d.secondaryValue || 0)),
955
1017
  1
@@ -1076,7 +1138,7 @@ var UsageChart = React25__namespace.forwardRef(
1076
1138
  }
1077
1139
  );
1078
1140
  UsageChart.displayName = "UsageChart";
1079
- var Input = React25__namespace.forwardRef(
1141
+ var Input = React27__namespace.forwardRef(
1080
1142
  ({ className, type, error, ...props }, ref) => {
1081
1143
  return /* @__PURE__ */ jsxRuntime.jsx(
1082
1144
  "input",
@@ -1116,7 +1178,7 @@ var NODES = [
1116
1178
  ];
1117
1179
  var Primitive = NODES.reduce((primitive, node) => {
1118
1180
  const Slot2 = reactSlot.createSlot(`Primitive.${node}`);
1119
- const Node = React25__namespace.forwardRef((props, forwardedRef) => {
1181
+ const Node = React27__namespace.forwardRef((props, forwardedRef) => {
1120
1182
  const { asChild, ...primitiveProps } = props;
1121
1183
  const Comp = asChild ? Slot2 : node;
1122
1184
  if (typeof window !== "undefined") {
@@ -1128,7 +1190,7 @@ var Primitive = NODES.reduce((primitive, node) => {
1128
1190
  return { ...primitive, [node]: Node };
1129
1191
  }, {});
1130
1192
  var NAME = "Label";
1131
- var Label = React25__namespace.forwardRef((props, forwardedRef) => {
1193
+ var Label = React27__namespace.forwardRef((props, forwardedRef) => {
1132
1194
  return /* @__PURE__ */ jsxRuntime.jsx(
1133
1195
  Primitive.label,
1134
1196
  {
@@ -1148,7 +1210,7 @@ var Root2 = Label;
1148
1210
  var labelVariants = classVarianceAuthority.cva(
1149
1211
  "text-sm font-medium leading-none text-[var(--black)] peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1150
1212
  );
1151
- var Label2 = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1213
+ var Label2 = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1152
1214
  Root2,
1153
1215
  {
1154
1216
  ref,
@@ -1157,7 +1219,7 @@ var Label2 = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
1157
1219
  }
1158
1220
  ));
1159
1221
  Label2.displayName = Root2.displayName;
1160
- var Textarea = React25__namespace.forwardRef(
1222
+ var Textarea = React27__namespace.forwardRef(
1161
1223
  ({ className, error, ...props }, ref) => {
1162
1224
  return /* @__PURE__ */ jsxRuntime.jsx(
1163
1225
  "textarea",
@@ -1175,7 +1237,7 @@ var Textarea = React25__namespace.forwardRef(
1175
1237
  }
1176
1238
  );
1177
1239
  Textarea.displayName = "Textarea";
1178
- var Select = React25__namespace.forwardRef(
1240
+ var Select = React27__namespace.forwardRef(
1179
1241
  ({ className, error, children, ...props }, ref) => {
1180
1242
  return /* @__PURE__ */ jsxRuntime.jsx(
1181
1243
  "select",
@@ -1202,7 +1264,7 @@ Select.displayName = "Select";
1202
1264
  // src/icons.ts
1203
1265
  var icons_exports = {};
1204
1266
  __reExport(icons_exports, react_star__namespace);
1205
- var Checkbox = React25__namespace.forwardRef(
1267
+ var Checkbox = React27__namespace.forwardRef(
1206
1268
  ({ className, checked, onCheckedChange, ...props }, ref) => {
1207
1269
  return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "relative inline-flex items-center cursor-pointer", children: [
1208
1270
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1233,8 +1295,150 @@ var Checkbox = React25__namespace.forwardRef(
1233
1295
  }
1234
1296
  );
1235
1297
  Checkbox.displayName = "Checkbox";
1298
+ var Switch = React27__namespace.forwardRef(({ className, size = "default", ...props }, ref) => {
1299
+ const sizeStyles = {
1300
+ sm: {
1301
+ root: "h-4 w-7",
1302
+ thumb: "h-3 w-3 data-[state=checked]:translate-x-3"
1303
+ },
1304
+ default: {
1305
+ root: "h-5 w-9",
1306
+ thumb: "h-4 w-4 data-[state=checked]:translate-x-4"
1307
+ },
1308
+ lg: {
1309
+ root: "h-6 w-11",
1310
+ thumb: "h-5 w-5 data-[state=checked]:translate-x-5"
1311
+ }
1312
+ };
1313
+ return /* @__PURE__ */ jsxRuntime.jsx(
1314
+ SwitchPrimitive__namespace.Root,
1315
+ {
1316
+ className: cn(
1317
+ "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",
1318
+ sizeStyles[size].root,
1319
+ className
1320
+ ),
1321
+ ...props,
1322
+ ref,
1323
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1324
+ SwitchPrimitive__namespace.Thumb,
1325
+ {
1326
+ className: cn(
1327
+ "pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=unchecked]:translate-x-0",
1328
+ sizeStyles[size].thumb
1329
+ )
1330
+ }
1331
+ )
1332
+ }
1333
+ );
1334
+ });
1335
+ Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
1336
+ var LabeledSwitch = React27__namespace.forwardRef(({ label, description, labelPosition = "right", className, id, ...props }, ref) => {
1337
+ const switchId = id || React27__namespace.useId();
1338
+ const labelContent = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0.5", children: [
1339
+ /* @__PURE__ */ jsxRuntime.jsx(
1340
+ "label",
1341
+ {
1342
+ htmlFor: switchId,
1343
+ className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",
1344
+ children: label
1345
+ }
1346
+ ),
1347
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: description })
1348
+ ] });
1349
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1350
+ "div",
1351
+ {
1352
+ className: cn(
1353
+ "flex items-center gap-3",
1354
+ labelPosition === "left" && "flex-row-reverse justify-end",
1355
+ className
1356
+ ),
1357
+ children: [
1358
+ /* @__PURE__ */ jsxRuntime.jsx(Switch, { ref, id: switchId, ...props }),
1359
+ labelContent
1360
+ ]
1361
+ }
1362
+ );
1363
+ });
1364
+ LabeledSwitch.displayName = "LabeledSwitch";
1365
+ var RadioGroup = React27__namespace.forwardRef(({ className, ...props }, ref) => {
1366
+ return /* @__PURE__ */ jsxRuntime.jsx(
1367
+ RadioGroupPrimitive__namespace.Root,
1368
+ {
1369
+ className: cn("grid gap-2", className),
1370
+ ...props,
1371
+ ref
1372
+ }
1373
+ );
1374
+ });
1375
+ RadioGroup.displayName = RadioGroupPrimitive__namespace.Root.displayName;
1376
+ var RadioGroupItem = React27__namespace.forwardRef(({ className, ...props }, ref) => {
1377
+ return /* @__PURE__ */ jsxRuntime.jsx(
1378
+ RadioGroupPrimitive__namespace.Item,
1379
+ {
1380
+ ref,
1381
+ className: cn(
1382
+ "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",
1383
+ className
1384
+ ),
1385
+ ...props,
1386
+ children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(react_star.Circle, { weight: "fill", className: "h-2.5 w-2.5 fill-current" }) })
1387
+ }
1388
+ );
1389
+ });
1390
+ RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
1391
+ var RadioGroupOption = React27__namespace.forwardRef(({ label, description, className, id, ...props }, ref) => {
1392
+ const optionId = id || React27__namespace.useId();
1393
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-3", className), children: [
1394
+ /* @__PURE__ */ jsxRuntime.jsx(RadioGroupItem, { ref, id: optionId, ...props }),
1395
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0.5", children: [
1396
+ /* @__PURE__ */ jsxRuntime.jsx(
1397
+ "label",
1398
+ {
1399
+ htmlFor: optionId,
1400
+ className: "text-sm font-medium leading-none cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
1401
+ children: label
1402
+ }
1403
+ ),
1404
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: description })
1405
+ ] })
1406
+ ] });
1407
+ });
1408
+ RadioGroupOption.displayName = "RadioGroupOption";
1409
+ var RadioGroupCard = React27__namespace.forwardRef(({ label, description, children, className, id, ...props }, ref) => {
1410
+ const cardId = id || React27__namespace.useId();
1411
+ return /* @__PURE__ */ jsxRuntime.jsx(
1412
+ RadioGroupPrimitive__namespace.Item,
1413
+ {
1414
+ ref,
1415
+ id: cardId,
1416
+ className: cn(
1417
+ "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",
1418
+ className
1419
+ ),
1420
+ ...props,
1421
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-start gap-3", children: [
1422
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-5 items-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow", children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroupPrimitive__namespace.Indicator, { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsxRuntime.jsx(react_star.Circle, { weight: "fill", className: "h-2.5 w-2.5 fill-[var(--cyan)]" }) }) }) }),
1423
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 space-y-1", children: [
1424
+ /* @__PURE__ */ jsxRuntime.jsx(
1425
+ "label",
1426
+ {
1427
+ htmlFor: cardId,
1428
+ className: "text-sm font-medium leading-none cursor-pointer",
1429
+ children: label
1430
+ }
1431
+ ),
1432
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: description }),
1433
+ children
1434
+ ] })
1435
+ ] })
1436
+ }
1437
+ );
1438
+ });
1439
+ RadioGroupCard.displayName = "RadioGroupCard";
1236
1440
  var Accordion = AccordionPrimitive__namespace.Root;
1237
- var AccordionItem = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1441
+ var AccordionItem = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1238
1442
  AccordionPrimitive__namespace.Item,
1239
1443
  {
1240
1444
  ref,
@@ -1243,7 +1447,7 @@ var AccordionItem = React25__namespace.forwardRef(({ className, ...props }, ref)
1243
1447
  }
1244
1448
  ));
1245
1449
  AccordionItem.displayName = "AccordionItem";
1246
- var AccordionTrigger = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
1450
+ var AccordionTrigger = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { className: "flex", children: /* @__PURE__ */ jsxRuntime.jsxs(
1247
1451
  AccordionPrimitive__namespace.Trigger,
1248
1452
  {
1249
1453
  ref,
@@ -1259,7 +1463,7 @@ var AccordionTrigger = React25__namespace.forwardRef(({ className, children, ...
1259
1463
  }
1260
1464
  ) }));
1261
1465
  AccordionTrigger.displayName = AccordionPrimitive__namespace.Trigger.displayName;
1262
- var AccordionContent = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1466
+ var AccordionContent = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1263
1467
  AccordionPrimitive__namespace.Content,
1264
1468
  {
1265
1469
  ref,
@@ -1290,7 +1494,7 @@ var NODES2 = [
1290
1494
  ];
1291
1495
  var Primitive2 = NODES2.reduce((primitive, node) => {
1292
1496
  const Slot2 = reactSlot.createSlot(`Primitive.${node}`);
1293
- const Node = React25__namespace.forwardRef((props, forwardedRef) => {
1497
+ const Node = React27__namespace.forwardRef((props, forwardedRef) => {
1294
1498
  const { asChild, ...primitiveProps } = props;
1295
1499
  const Comp = asChild ? Slot2 : node;
1296
1500
  if (typeof window !== "undefined") {
@@ -1304,7 +1508,7 @@ var Primitive2 = NODES2.reduce((primitive, node) => {
1304
1508
  var NAME2 = "Separator";
1305
1509
  var DEFAULT_ORIENTATION = "horizontal";
1306
1510
  var ORIENTATIONS = ["horizontal", "vertical"];
1307
- var Separator = React25__namespace.forwardRef((props, forwardedRef) => {
1511
+ var Separator = React27__namespace.forwardRef((props, forwardedRef) => {
1308
1512
  const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;
1309
1513
  const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;
1310
1514
  const ariaOrientation = orientation === "vertical" ? orientation : void 0;
@@ -1323,10 +1527,10 @@ Separator.displayName = NAME2;
1323
1527
  function isValidOrientation(orientation) {
1324
1528
  return ORIENTATIONS.includes(orientation);
1325
1529
  }
1326
- var Root4 = Separator;
1327
- var Separator2 = React25__namespace.forwardRef(
1530
+ var Root6 = Separator;
1531
+ var Separator2 = React27__namespace.forwardRef(
1328
1532
  ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1329
- Root4,
1533
+ Root6,
1330
1534
  {
1331
1535
  ref,
1332
1536
  decorative,
@@ -1340,8 +1544,8 @@ var Separator2 = React25__namespace.forwardRef(
1340
1544
  }
1341
1545
  )
1342
1546
  );
1343
- Separator2.displayName = Root4.displayName;
1344
- var NavigationMenu = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1547
+ Separator2.displayName = Root6.displayName;
1548
+ var NavigationMenu = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1345
1549
  NavigationMenuPrimitive__namespace.Root,
1346
1550
  {
1347
1551
  ref,
@@ -1357,7 +1561,7 @@ var NavigationMenu = React25__namespace.forwardRef(({ className, children, ...pr
1357
1561
  }
1358
1562
  ));
1359
1563
  NavigationMenu.displayName = NavigationMenuPrimitive__namespace.Root.displayName;
1360
- var NavigationMenuList = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1564
+ var NavigationMenuList = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1361
1565
  NavigationMenuPrimitive__namespace.List,
1362
1566
  {
1363
1567
  ref,
@@ -1373,7 +1577,7 @@ var NavigationMenuItem = NavigationMenuPrimitive__namespace.Item;
1373
1577
  var navigationMenuTriggerStyle = classVarianceAuthority.cva(
1374
1578
  "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"
1375
1579
  );
1376
- var NavigationMenuTrigger = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1580
+ var NavigationMenuTrigger = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1377
1581
  NavigationMenuPrimitive__namespace.Trigger,
1378
1582
  {
1379
1583
  ref,
@@ -1393,7 +1597,7 @@ var NavigationMenuTrigger = React25__namespace.forwardRef(({ className, children
1393
1597
  }
1394
1598
  ));
1395
1599
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive__namespace.Trigger.displayName;
1396
- var NavigationMenuContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1600
+ var NavigationMenuContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1397
1601
  NavigationMenuPrimitive__namespace.Content,
1398
1602
  {
1399
1603
  ref,
@@ -1406,7 +1610,7 @@ var NavigationMenuContent = React25__namespace.forwardRef(({ className, ...props
1406
1610
  ));
1407
1611
  NavigationMenuContent.displayName = NavigationMenuPrimitive__namespace.Content.displayName;
1408
1612
  var NavigationMenuLink = NavigationMenuPrimitive__namespace.Link;
1409
- var NavigationMenuViewport = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(
1613
+ var NavigationMenuViewport = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsxRuntime.jsx(
1410
1614
  NavigationMenuPrimitive__namespace.Viewport,
1411
1615
  {
1412
1616
  className: cn(
@@ -1418,7 +1622,7 @@ var NavigationMenuViewport = React25__namespace.forwardRef(({ className, ...prop
1418
1622
  }
1419
1623
  ) }));
1420
1624
  NavigationMenuViewport.displayName = NavigationMenuPrimitive__namespace.Viewport.displayName;
1421
- var NavigationMenuIndicator = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1625
+ var NavigationMenuIndicator = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1422
1626
  NavigationMenuPrimitive__namespace.Indicator,
1423
1627
  {
1424
1628
  ref,
@@ -1431,7 +1635,7 @@ var NavigationMenuIndicator = React25__namespace.forwardRef(({ className, ...pro
1431
1635
  }
1432
1636
  ));
1433
1637
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive__namespace.Indicator.displayName;
1434
- var Avatar = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1638
+ var Avatar = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1435
1639
  AvatarPrimitive__namespace.Root,
1436
1640
  {
1437
1641
  ref,
@@ -1443,7 +1647,7 @@ var Avatar = React25__namespace.forwardRef(({ className, ...props }, ref) => /*
1443
1647
  }
1444
1648
  ));
1445
1649
  Avatar.displayName = AvatarPrimitive__namespace.Root.displayName;
1446
- var AvatarImage = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1650
+ var AvatarImage = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1447
1651
  AvatarPrimitive__namespace.Image,
1448
1652
  {
1449
1653
  ref,
@@ -1452,7 +1656,7 @@ var AvatarImage = React25__namespace.forwardRef(({ className, ...props }, ref) =
1452
1656
  }
1453
1657
  ));
1454
1658
  AvatarImage.displayName = AvatarPrimitive__namespace.Image.displayName;
1455
- var AvatarFallback = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1659
+ var AvatarFallback = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1456
1660
  AvatarPrimitive__namespace.Fallback,
1457
1661
  {
1458
1662
  ref,
@@ -1470,7 +1674,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive__namespace.Group;
1470
1674
  var DropdownMenuPortal = DropdownMenuPrimitive__namespace.Portal;
1471
1675
  var DropdownMenuSub = DropdownMenuPrimitive__namespace.Sub;
1472
1676
  var DropdownMenuRadioGroup = DropdownMenuPrimitive__namespace.RadioGroup;
1473
- var DropdownMenuSubTrigger = React25__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1677
+ var DropdownMenuSubTrigger = React27__namespace.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1474
1678
  DropdownMenuPrimitive__namespace.SubTrigger,
1475
1679
  {
1476
1680
  ref,
@@ -1487,7 +1691,7 @@ var DropdownMenuSubTrigger = React25__namespace.forwardRef(({ className, inset,
1487
1691
  }
1488
1692
  ));
1489
1693
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive__namespace.SubTrigger.displayName;
1490
- var DropdownMenuSubContent = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1694
+ var DropdownMenuSubContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1491
1695
  DropdownMenuPrimitive__namespace.SubContent,
1492
1696
  {
1493
1697
  ref,
@@ -1499,7 +1703,7 @@ var DropdownMenuSubContent = React25__namespace.forwardRef(({ className, ...prop
1499
1703
  }
1500
1704
  ));
1501
1705
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive__namespace.SubContent.displayName;
1502
- var DropdownMenuContent = React25__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1706
+ var DropdownMenuContent = React27__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1503
1707
  DropdownMenuPrimitive__namespace.Content,
1504
1708
  {
1505
1709
  ref,
@@ -1512,7 +1716,7 @@ var DropdownMenuContent = React25__namespace.forwardRef(({ className, sideOffset
1512
1716
  }
1513
1717
  ) }));
1514
1718
  DropdownMenuContent.displayName = DropdownMenuPrimitive__namespace.Content.displayName;
1515
- var DropdownMenuItem = React25__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1719
+ var DropdownMenuItem = React27__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1516
1720
  DropdownMenuPrimitive__namespace.Item,
1517
1721
  {
1518
1722
  ref,
@@ -1525,7 +1729,7 @@ var DropdownMenuItem = React25__namespace.forwardRef(({ className, inset, ...pro
1525
1729
  }
1526
1730
  ));
1527
1731
  DropdownMenuItem.displayName = DropdownMenuPrimitive__namespace.Item.displayName;
1528
- var DropdownMenuCheckboxItem = React25__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1732
+ var DropdownMenuCheckboxItem = React27__namespace.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1529
1733
  DropdownMenuPrimitive__namespace.CheckboxItem,
1530
1734
  {
1531
1735
  ref,
@@ -1542,7 +1746,7 @@ var DropdownMenuCheckboxItem = React25__namespace.forwardRef(({ className, child
1542
1746
  }
1543
1747
  ));
1544
1748
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive__namespace.CheckboxItem.displayName;
1545
- var DropdownMenuRadioItem = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1749
+ var DropdownMenuRadioItem = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
1546
1750
  DropdownMenuPrimitive__namespace.RadioItem,
1547
1751
  {
1548
1752
  ref,
@@ -1558,7 +1762,7 @@ var DropdownMenuRadioItem = React25__namespace.forwardRef(({ className, children
1558
1762
  }
1559
1763
  ));
1560
1764
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive__namespace.RadioItem.displayName;
1561
- var DropdownMenuLabel = React25__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1765
+ var DropdownMenuLabel = React27__namespace.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1562
1766
  DropdownMenuPrimitive__namespace.Label,
1563
1767
  {
1564
1768
  ref,
@@ -1571,7 +1775,7 @@ var DropdownMenuLabel = React25__namespace.forwardRef(({ className, inset, ...pr
1571
1775
  }
1572
1776
  ));
1573
1777
  DropdownMenuLabel.displayName = DropdownMenuPrimitive__namespace.Label.displayName;
1574
- var DropdownMenuSeparator = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1778
+ var DropdownMenuSeparator = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1575
1779
  DropdownMenuPrimitive__namespace.Separator,
1576
1780
  {
1577
1781
  ref,
@@ -1593,7 +1797,7 @@ var DropdownMenuShortcut = ({
1593
1797
  );
1594
1798
  };
1595
1799
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1596
- var SidebarNavItem = React25__namespace.forwardRef(
1800
+ var SidebarNavItem = React27__namespace.forwardRef(
1597
1801
  ({ item, isActive, className, LinkComponent, ...props }, ref) => {
1598
1802
  const Icon = item.icon;
1599
1803
  const baseClassName = cn(
@@ -1633,7 +1837,7 @@ var SidebarNavItem = React25__namespace.forwardRef(
1633
1837
  }
1634
1838
  );
1635
1839
  SidebarNavItem.displayName = "SidebarNavItem";
1636
- var Sidebar = React25__namespace.forwardRef(
1840
+ var Sidebar = React27__namespace.forwardRef(
1637
1841
  ({
1638
1842
  mainNav = [],
1639
1843
  bottomNav = [],
@@ -1743,7 +1947,7 @@ var alertVariants = classVarianceAuthority.cva(
1743
1947
  }
1744
1948
  }
1745
1949
  );
1746
- var Alert = React25__namespace.forwardRef(
1950
+ var Alert = React27__namespace.forwardRef(
1747
1951
  ({ className, variant, icon, title, action, children, ...props }, ref) => {
1748
1952
  return /* @__PURE__ */ jsxRuntime.jsx(
1749
1953
  "div",
@@ -1766,7 +1970,7 @@ var Alert = React25__namespace.forwardRef(
1766
1970
  }
1767
1971
  );
1768
1972
  Alert.displayName = "Alert";
1769
- var EmptyState = React25__namespace.forwardRef(
1973
+ var EmptyState = React27__namespace.forwardRef(
1770
1974
  ({ className, icon, title, description, action, size = "default", ...props }, ref) => {
1771
1975
  const paddingClass = {
1772
1976
  sm: "p-8",
@@ -1794,7 +1998,7 @@ var EmptyState = React25__namespace.forwardRef(
1794
1998
  }
1795
1999
  );
1796
2000
  EmptyState.displayName = "EmptyState";
1797
- var CodeBlock = React25__namespace.forwardRef(
2001
+ var CodeBlock = React27__namespace.forwardRef(
1798
2002
  ({ className, children, language, ...props }, ref) => {
1799
2003
  return /* @__PURE__ */ jsxRuntime.jsx(
1800
2004
  "pre",
@@ -1812,15 +2016,15 @@ var CodeBlock = React25__namespace.forwardRef(
1812
2016
  }
1813
2017
  );
1814
2018
  CodeBlock.displayName = "CodeBlock";
1815
- var FormField = React25__namespace.forwardRef(
2019
+ var FormField = React27__namespace.forwardRef(
1816
2020
  ({ label, error, helperText, hint, required, id, className, children, ...props }, ref) => {
1817
- const fieldId = id || React25__namespace.useId();
2021
+ const fieldId = id || React27__namespace.useId();
1818
2022
  const errorId = `${fieldId}-error`;
1819
2023
  const helperId = `${fieldId}-helper`;
1820
- const enhancedChildren = React25__namespace.Children.map(children, (child) => {
1821
- if (React25__namespace.isValidElement(child)) {
2024
+ const enhancedChildren = React27__namespace.Children.map(children, (child) => {
2025
+ if (React27__namespace.isValidElement(child)) {
1822
2026
  const childProps = child.props;
1823
- return React25__namespace.cloneElement(child, {
2027
+ return React27__namespace.cloneElement(child, {
1824
2028
  id: fieldId,
1825
2029
  "aria-invalid": error ? "true" : void 0,
1826
2030
  "aria-describedby": error ? errorId : helperText ? helperId : void 0,
@@ -1844,7 +2048,7 @@ var FormField = React25__namespace.forwardRef(
1844
2048
  }
1845
2049
  );
1846
2050
  FormField.displayName = "FormField";
1847
- var Table = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
2051
+ var Table = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxRuntime.jsx(
1848
2052
  "table",
1849
2053
  {
1850
2054
  ref,
@@ -1853,11 +2057,11 @@ var Table = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @
1853
2057
  }
1854
2058
  ) }));
1855
2059
  Table.displayName = "Table";
1856
- var TableHeader = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn("", className), ...props }));
2060
+ var TableHeader = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("thead", { ref, className: cn("", className), ...props }));
1857
2061
  TableHeader.displayName = "TableHeader";
1858
- var TableBody = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: cn("", className), ...props }));
2062
+ var TableBody = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("tbody", { ref, className: cn("", className), ...props }));
1859
2063
  TableBody.displayName = "TableBody";
1860
- var TableFooter = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2064
+ var TableFooter = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1861
2065
  "tfoot",
1862
2066
  {
1863
2067
  ref,
@@ -1866,7 +2070,7 @@ var TableFooter = React25__namespace.forwardRef(({ className, ...props }, ref) =
1866
2070
  }
1867
2071
  ));
1868
2072
  TableFooter.displayName = "TableFooter";
1869
- var TableRow = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2073
+ var TableRow = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1870
2074
  "tr",
1871
2075
  {
1872
2076
  ref,
@@ -1875,7 +2079,7 @@ var TableRow = React25__namespace.forwardRef(({ className, ...props }, ref) => /
1875
2079
  }
1876
2080
  ));
1877
2081
  TableRow.displayName = "TableRow";
1878
- var TableHead = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2082
+ var TableHead = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1879
2083
  "th",
1880
2084
  {
1881
2085
  ref,
@@ -1887,7 +2091,7 @@ var TableHead = React25__namespace.forwardRef(({ className, ...props }, ref) =>
1887
2091
  }
1888
2092
  ));
1889
2093
  TableHead.displayName = "TableHead";
1890
- var TableCell = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2094
+ var TableCell = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1891
2095
  "td",
1892
2096
  {
1893
2097
  ref,
@@ -1896,7 +2100,7 @@ var TableCell = React25__namespace.forwardRef(({ className, ...props }, ref) =>
1896
2100
  }
1897
2101
  ));
1898
2102
  TableCell.displayName = "TableCell";
1899
- var TableCaption = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2103
+ var TableCaption = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1900
2104
  "caption",
1901
2105
  {
1902
2106
  ref,
@@ -1905,7 +2109,7 @@ var TableCaption = React25__namespace.forwardRef(({ className, ...props }, ref)
1905
2109
  }
1906
2110
  ));
1907
2111
  TableCaption.displayName = "TableCaption";
1908
- var Divider = React25__namespace.forwardRef(
2112
+ var Divider = React27__namespace.forwardRef(
1909
2113
  ({ className, text, orientation = "horizontal", ...props }, ref) => {
1910
2114
  if (orientation === "vertical") {
1911
2115
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1943,11 +2147,72 @@ var Divider = React25__namespace.forwardRef(
1943
2147
  }
1944
2148
  );
1945
2149
  Divider.displayName = "Divider";
2150
+ var Tabs = TabsPrimitive__namespace.Root;
2151
+ var TabsList = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2152
+ TabsPrimitive__namespace.List,
2153
+ {
2154
+ ref,
2155
+ className: cn(
2156
+ "inline-flex h-10 items-center justify-center rounded-sm bg-muted p-1 text-muted-foreground",
2157
+ className
2158
+ ),
2159
+ ...props
2160
+ }
2161
+ ));
2162
+ TabsList.displayName = TabsPrimitive__namespace.List.displayName;
2163
+ var TabsTrigger = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2164
+ TabsPrimitive__namespace.Trigger,
2165
+ {
2166
+ ref,
2167
+ className: cn(
2168
+ "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",
2169
+ className
2170
+ ),
2171
+ ...props
2172
+ }
2173
+ ));
2174
+ TabsTrigger.displayName = TabsPrimitive__namespace.Trigger.displayName;
2175
+ var TabsContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2176
+ TabsPrimitive__namespace.Content,
2177
+ {
2178
+ ref,
2179
+ className: cn(
2180
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
2181
+ className
2182
+ ),
2183
+ ...props
2184
+ }
2185
+ ));
2186
+ TabsContent.displayName = TabsPrimitive__namespace.Content.displayName;
2187
+ var TabsListUnderline = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2188
+ TabsPrimitive__namespace.List,
2189
+ {
2190
+ ref,
2191
+ className: cn(
2192
+ "inline-flex items-center justify-start border-b border-border",
2193
+ className
2194
+ ),
2195
+ ...props
2196
+ }
2197
+ ));
2198
+ TabsListUnderline.displayName = "TabsListUnderline";
2199
+ var TabsTriggerUnderline = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2200
+ TabsPrimitive__namespace.Trigger,
2201
+ {
2202
+ ref,
2203
+ className: cn(
2204
+ "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",
2205
+ className
2206
+ ),
2207
+ ...props
2208
+ }
2209
+ ));
2210
+ TabsTriggerUnderline.displayName = "TabsTriggerUnderline";
1946
2211
  var Dialog = SheetPrimitive__namespace.Root;
1947
2212
  var DialogTrigger = SheetPrimitive__namespace.Trigger;
1948
2213
  var DialogPortal = SheetPrimitive__namespace.Portal;
1949
2214
  var DialogClose = SheetPrimitive__namespace.Close;
1950
- var DialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2215
+ var DialogOverlay = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1951
2216
  SheetPrimitive__namespace.Overlay,
1952
2217
  {
1953
2218
  ref,
@@ -1959,7 +2224,7 @@ var DialogOverlay = React25__namespace.forwardRef(({ className, ...props }, ref)
1959
2224
  }
1960
2225
  ));
1961
2226
  DialogOverlay.displayName = SheetPrimitive__namespace.Overlay.displayName;
1962
- var DialogContent = React25__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
2227
+ var DialogContent = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DialogPortal, { children: [
1963
2228
  /* @__PURE__ */ jsxRuntime.jsx(DialogOverlay, {}),
1964
2229
  /* @__PURE__ */ jsxRuntime.jsxs(
1965
2230
  SheetPrimitive__namespace.Content,
@@ -2009,7 +2274,7 @@ var DialogFooter = ({
2009
2274
  }
2010
2275
  );
2011
2276
  DialogFooter.displayName = "DialogFooter";
2012
- var DialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2277
+ var DialogTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2013
2278
  SheetPrimitive__namespace.Title,
2014
2279
  {
2015
2280
  ref,
@@ -2021,7 +2286,7 @@ var DialogTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =
2021
2286
  }
2022
2287
  ));
2023
2288
  DialogTitle.displayName = SheetPrimitive__namespace.Title.displayName;
2024
- var DialogDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2289
+ var DialogDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2025
2290
  SheetPrimitive__namespace.Description,
2026
2291
  {
2027
2292
  ref,
@@ -2030,8 +2295,214 @@ var DialogDescription = React25__namespace.forwardRef(({ className, ...props },
2030
2295
  }
2031
2296
  ));
2032
2297
  DialogDescription.displayName = SheetPrimitive__namespace.Description.displayName;
2298
+ var AlertDialog = AlertDialogPrimitive__namespace.Root;
2299
+ var AlertDialogTrigger = AlertDialogPrimitive__namespace.Trigger;
2300
+ var AlertDialogPortal = AlertDialogPrimitive__namespace.Portal;
2301
+ var AlertDialogOverlay = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2302
+ AlertDialogPrimitive__namespace.Overlay,
2303
+ {
2304
+ className: cn(
2305
+ "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",
2306
+ className
2307
+ ),
2308
+ ...props,
2309
+ ref
2310
+ }
2311
+ ));
2312
+ AlertDialogOverlay.displayName = AlertDialogPrimitive__namespace.Overlay.displayName;
2313
+ var AlertDialogContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
2314
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
2315
+ /* @__PURE__ */ jsxRuntime.jsx(
2316
+ AlertDialogPrimitive__namespace.Content,
2317
+ {
2318
+ ref,
2319
+ className: cn(
2320
+ "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",
2321
+ className
2322
+ ),
2323
+ ...props
2324
+ }
2325
+ )
2326
+ ] }));
2327
+ AlertDialogContent.displayName = AlertDialogPrimitive__namespace.Content.displayName;
2328
+ var AlertDialogHeader = ({
2329
+ className,
2330
+ ...props
2331
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
2332
+ "div",
2333
+ {
2334
+ className: cn(
2335
+ "flex flex-col space-y-2 text-center sm:text-left",
2336
+ className
2337
+ ),
2338
+ ...props
2339
+ }
2340
+ );
2341
+ AlertDialogHeader.displayName = "AlertDialogHeader";
2342
+ var AlertDialogFooter = ({
2343
+ className,
2344
+ ...props
2345
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
2346
+ "div",
2347
+ {
2348
+ className: cn(
2349
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2350
+ className
2351
+ ),
2352
+ ...props
2353
+ }
2354
+ );
2355
+ AlertDialogFooter.displayName = "AlertDialogFooter";
2356
+ var AlertDialogTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2357
+ AlertDialogPrimitive__namespace.Title,
2358
+ {
2359
+ ref,
2360
+ className: cn("text-lg font-semibold text-[var(--black)]", className),
2361
+ ...props
2362
+ }
2363
+ ));
2364
+ AlertDialogTitle.displayName = AlertDialogPrimitive__namespace.Title.displayName;
2365
+ var AlertDialogDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2366
+ AlertDialogPrimitive__namespace.Description,
2367
+ {
2368
+ ref,
2369
+ className: cn("text-sm text-muted-foreground", className),
2370
+ ...props
2371
+ }
2372
+ ));
2373
+ AlertDialogDescription.displayName = AlertDialogPrimitive__namespace.Description.displayName;
2374
+ var AlertDialogAction = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2375
+ AlertDialogPrimitive__namespace.Action,
2376
+ {
2377
+ ref,
2378
+ className: cn(buttonVariants(), className),
2379
+ ...props
2380
+ }
2381
+ ));
2382
+ AlertDialogAction.displayName = AlertDialogPrimitive__namespace.Action.displayName;
2383
+ var AlertDialogCancel = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2384
+ AlertDialogPrimitive__namespace.Cancel,
2385
+ {
2386
+ ref,
2387
+ className: cn(
2388
+ buttonVariants({ variant: "outline" }),
2389
+ "mt-2 sm:mt-0",
2390
+ className
2391
+ ),
2392
+ ...props
2393
+ }
2394
+ ));
2395
+ AlertDialogCancel.displayName = AlertDialogPrimitive__namespace.Cancel.displayName;
2396
+ function ConfirmDialog({
2397
+ open,
2398
+ onOpenChange,
2399
+ title,
2400
+ description,
2401
+ confirmText = "Confirm",
2402
+ cancelText = "Cancel",
2403
+ onConfirm,
2404
+ onCancel,
2405
+ variant = "default",
2406
+ loading = false
2407
+ }) {
2408
+ return /* @__PURE__ */ jsxRuntime.jsx(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogContent, { children: [
2409
+ /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogHeader, { children: [
2410
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogTitle, { children: title }),
2411
+ description && /* @__PURE__ */ jsxRuntime.jsx(AlertDialogDescription, { children: description })
2412
+ ] }),
2413
+ /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogFooter, { children: [
2414
+ /* @__PURE__ */ jsxRuntime.jsx(
2415
+ AlertDialogCancel,
2416
+ {
2417
+ onClick: () => {
2418
+ onCancel?.();
2419
+ onOpenChange(false);
2420
+ },
2421
+ children: cancelText
2422
+ }
2423
+ ),
2424
+ /* @__PURE__ */ jsxRuntime.jsx(
2425
+ AlertDialogAction,
2426
+ {
2427
+ onClick: () => {
2428
+ onConfirm();
2429
+ },
2430
+ className: cn(
2431
+ variant === "destructive" && "bg-destructive text-destructive-foreground hover:bg-destructive/90"
2432
+ ),
2433
+ disabled: loading,
2434
+ children: loading ? "Loading..." : confirmText
2435
+ }
2436
+ )
2437
+ ] })
2438
+ ] }) });
2439
+ }
2440
+ var Popover = PopoverPrimitive__namespace.Root;
2441
+ var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
2442
+ var PopoverAnchor = PopoverPrimitive__namespace.Anchor;
2443
+ var PopoverClose = PopoverPrimitive__namespace.Close;
2444
+ var PopoverContent = React27__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2445
+ PopoverPrimitive__namespace.Content,
2446
+ {
2447
+ ref,
2448
+ align,
2449
+ sideOffset,
2450
+ className: cn(
2451
+ "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",
2452
+ className
2453
+ ),
2454
+ ...props
2455
+ }
2456
+ ) }));
2457
+ PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
2458
+ var PopoverArrow = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2459
+ PopoverPrimitive__namespace.Arrow,
2460
+ {
2461
+ ref,
2462
+ className: cn("fill-popover", className),
2463
+ ...props
2464
+ }
2465
+ ));
2466
+ PopoverArrow.displayName = PopoverPrimitive__namespace.Arrow.displayName;
2467
+ var TooltipProvider = TooltipPrimitive__namespace.Provider;
2468
+ var Tooltip = TooltipPrimitive__namespace.Root;
2469
+ var TooltipTrigger = TooltipPrimitive__namespace.Trigger;
2470
+ var TooltipContent = React27__namespace.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2471
+ TooltipPrimitive__namespace.Content,
2472
+ {
2473
+ ref,
2474
+ sideOffset,
2475
+ className: cn(
2476
+ "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",
2477
+ className
2478
+ ),
2479
+ ...props
2480
+ }
2481
+ ) }));
2482
+ TooltipContent.displayName = TooltipPrimitive__namespace.Content.displayName;
2483
+ var TooltipArrow = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2484
+ TooltipPrimitive__namespace.Arrow,
2485
+ {
2486
+ ref,
2487
+ className: cn("fill-[var(--black)]", className),
2488
+ ...props
2489
+ }
2490
+ ));
2491
+ TooltipArrow.displayName = TooltipPrimitive__namespace.Arrow.displayName;
2492
+ function SimpleTooltip({
2493
+ content,
2494
+ children,
2495
+ side = "top",
2496
+ align = "center",
2497
+ delayDuration = 200
2498
+ }) {
2499
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration, children: /* @__PURE__ */ jsxRuntime.jsxs(Tooltip, { children: [
2500
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children }),
2501
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { side, align, children: content })
2502
+ ] }) });
2503
+ }
2033
2504
  var ToastProvider = ToastPrimitives__namespace.Provider;
2034
- var ToastViewport = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2505
+ var ToastViewport = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2035
2506
  ToastPrimitives__namespace.Viewport,
2036
2507
  {
2037
2508
  ref,
@@ -2060,7 +2531,7 @@ var toastVariants = classVarianceAuthority.cva(
2060
2531
  }
2061
2532
  }
2062
2533
  );
2063
- var Toast = React25__namespace.forwardRef(({ className, variant, ...props }, ref) => {
2534
+ var Toast = React27__namespace.forwardRef(({ className, variant, ...props }, ref) => {
2064
2535
  return /* @__PURE__ */ jsxRuntime.jsx(
2065
2536
  ToastPrimitives__namespace.Root,
2066
2537
  {
@@ -2071,7 +2542,7 @@ var Toast = React25__namespace.forwardRef(({ className, variant, ...props }, ref
2071
2542
  );
2072
2543
  });
2073
2544
  Toast.displayName = ToastPrimitives__namespace.Root.displayName;
2074
- var ToastAction = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2545
+ var ToastAction = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2075
2546
  ToastPrimitives__namespace.Action,
2076
2547
  {
2077
2548
  ref,
@@ -2083,7 +2554,7 @@ var ToastAction = React25__namespace.forwardRef(({ className, ...props }, ref) =
2083
2554
  }
2084
2555
  ));
2085
2556
  ToastAction.displayName = ToastPrimitives__namespace.Action.displayName;
2086
- var ToastClose = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2557
+ var ToastClose = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2087
2558
  ToastPrimitives__namespace.Close,
2088
2559
  {
2089
2560
  ref,
@@ -2097,7 +2568,7 @@ var ToastClose = React25__namespace.forwardRef(({ className, ...props }, ref) =>
2097
2568
  }
2098
2569
  ));
2099
2570
  ToastClose.displayName = ToastPrimitives__namespace.Close.displayName;
2100
- var ToastTitle = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2571
+ var ToastTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2101
2572
  ToastPrimitives__namespace.Title,
2102
2573
  {
2103
2574
  ref,
@@ -2106,7 +2577,7 @@ var ToastTitle = React25__namespace.forwardRef(({ className, ...props }, ref) =>
2106
2577
  }
2107
2578
  ));
2108
2579
  ToastTitle.displayName = ToastPrimitives__namespace.Title.displayName;
2109
- var ToastDescription = React25__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2580
+ var ToastDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
2110
2581
  ToastPrimitives__namespace.Description,
2111
2582
  {
2112
2583
  ref,
@@ -2245,8 +2716,8 @@ function toast({ ...props }) {
2245
2716
  };
2246
2717
  }
2247
2718
  function useToast() {
2248
- const [state, setState] = React25__namespace.useState(memoryState);
2249
- React25__namespace.useEffect(() => {
2719
+ const [state, setState] = React27__namespace.useState(memoryState);
2720
+ React27__namespace.useEffect(() => {
2250
2721
  listeners.push(setState);
2251
2722
  return () => {
2252
2723
  const index = listeners.indexOf(setState);
@@ -2281,6 +2752,661 @@ function Toaster() {
2281
2752
  /* @__PURE__ */ jsxRuntime.jsx(ToastViewport, {})
2282
2753
  ] });
2283
2754
  }
2755
+ var Skeleton = React27__namespace.forwardRef(
2756
+ ({ className, variant = "default", width, height, animate = true, style, ...props }, ref) => {
2757
+ const variantStyles = {
2758
+ default: "rounded-sm",
2759
+ circular: "rounded-full",
2760
+ rounded: "rounded-md"
2761
+ };
2762
+ return /* @__PURE__ */ jsxRuntime.jsx(
2763
+ "div",
2764
+ {
2765
+ ref,
2766
+ className: cn(
2767
+ "bg-muted",
2768
+ animate && "animate-pulse",
2769
+ variantStyles[variant],
2770
+ className
2771
+ ),
2772
+ style: {
2773
+ width: typeof width === "number" ? `${width}px` : width,
2774
+ height: typeof height === "number" ? `${height}px` : height,
2775
+ ...style
2776
+ },
2777
+ ...props
2778
+ }
2779
+ );
2780
+ }
2781
+ );
2782
+ Skeleton.displayName = "Skeleton";
2783
+ var SkeletonText = React27__namespace.forwardRef(
2784
+ ({ lines = 3, gap = 8, className, ...props }, ref) => {
2785
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-2", className), style: { gap }, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsxRuntime.jsx(
2786
+ Skeleton,
2787
+ {
2788
+ height: 16,
2789
+ width: i === lines - 1 ? "70%" : "100%",
2790
+ ...props
2791
+ },
2792
+ i
2793
+ )) });
2794
+ }
2795
+ );
2796
+ SkeletonText.displayName = "SkeletonText";
2797
+ var SkeletonCard = React27__namespace.forwardRef(
2798
+ ({ hasHeader = true, hasAvatar = false, className, ...props }, ref) => {
2799
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2800
+ "div",
2801
+ {
2802
+ ref,
2803
+ className: cn("rounded-lg border p-6 space-y-4", className),
2804
+ ...props,
2805
+ children: [
2806
+ hasHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
2807
+ hasAvatar && /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { variant: "circular", width: 40, height: 40 }),
2808
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 flex-1", children: [
2809
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { height: 20, width: "50%" }),
2810
+ /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { height: 14, width: "30%" })
2811
+ ] })
2812
+ ] }),
2813
+ /* @__PURE__ */ jsxRuntime.jsx(SkeletonText, { lines: 3 })
2814
+ ]
2815
+ }
2816
+ );
2817
+ }
2818
+ );
2819
+ SkeletonCard.displayName = "SkeletonCard";
2820
+ function generatePagination(currentPage, totalPages, siblingCount) {
2821
+ const totalPageNumbers = siblingCount * 2 + 5;
2822
+ if (totalPageNumbers >= totalPages) {
2823
+ return Array.from({ length: totalPages }, (_, i) => i + 1);
2824
+ }
2825
+ const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
2826
+ const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);
2827
+ const showLeftDots = leftSiblingIndex > 2;
2828
+ const showRightDots = rightSiblingIndex < totalPages - 1;
2829
+ if (!showLeftDots && showRightDots) {
2830
+ const leftRange = Array.from(
2831
+ { length: 3 + siblingCount * 2 },
2832
+ (_, i) => i + 1
2833
+ );
2834
+ return [...leftRange, "ellipsis", totalPages];
2835
+ }
2836
+ if (showLeftDots && !showRightDots) {
2837
+ const rightRange = Array.from(
2838
+ { length: 3 + siblingCount * 2 },
2839
+ (_, i) => totalPages - (3 + siblingCount * 2) + i + 1
2840
+ );
2841
+ return [1, "ellipsis", ...rightRange];
2842
+ }
2843
+ const middleRange = Array.from(
2844
+ { length: siblingCount * 2 + 1 },
2845
+ (_, i) => leftSiblingIndex + i
2846
+ );
2847
+ return [1, "ellipsis", ...middleRange, "ellipsis", totalPages];
2848
+ }
2849
+ var Pagination = React27__namespace.forwardRef(
2850
+ ({
2851
+ currentPage,
2852
+ totalPages,
2853
+ onPageChange,
2854
+ siblingCount = 1,
2855
+ showBoundaryPages = true,
2856
+ size = "default",
2857
+ className
2858
+ }, ref) => {
2859
+ const pages = generatePagination(currentPage, totalPages, siblingCount);
2860
+ const buttonSize = size === "sm" ? "sm" : size === "lg" ? "lg" : "default";
2861
+ const iconSize = size === "sm" ? 14 : size === "lg" ? 20 : 16;
2862
+ if (totalPages <= 1) {
2863
+ return null;
2864
+ }
2865
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2866
+ "nav",
2867
+ {
2868
+ ref,
2869
+ role: "navigation",
2870
+ "aria-label": "Pagination",
2871
+ className: cn("flex items-center gap-1", className),
2872
+ children: [
2873
+ /* @__PURE__ */ jsxRuntime.jsx(
2874
+ Button,
2875
+ {
2876
+ variant: "outline",
2877
+ size: buttonSize,
2878
+ onClick: () => onPageChange(currentPage - 1),
2879
+ disabled: currentPage <= 1,
2880
+ "aria-label": "Go to previous page",
2881
+ children: /* @__PURE__ */ jsxRuntime.jsx(react_star.CaretLeft, { size: iconSize })
2882
+ }
2883
+ ),
2884
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: pages.map((page, index) => {
2885
+ if (page === "ellipsis") {
2886
+ return /* @__PURE__ */ jsxRuntime.jsx(
2887
+ "span",
2888
+ {
2889
+ className: "flex h-9 w-9 items-center justify-center text-muted-foreground",
2890
+ children: /* @__PURE__ */ jsxRuntime.jsx(react_star.DotsThree, { size: iconSize })
2891
+ },
2892
+ `ellipsis-${index}`
2893
+ );
2894
+ }
2895
+ const isCurrentPage = page === currentPage;
2896
+ return /* @__PURE__ */ jsxRuntime.jsx(
2897
+ Button,
2898
+ {
2899
+ variant: isCurrentPage ? "default" : "outline",
2900
+ size: buttonSize,
2901
+ onClick: () => onPageChange(page),
2902
+ "aria-label": `Go to page ${page}`,
2903
+ "aria-current": isCurrentPage ? "page" : void 0,
2904
+ children: page
2905
+ },
2906
+ page
2907
+ );
2908
+ }) }),
2909
+ /* @__PURE__ */ jsxRuntime.jsx(
2910
+ Button,
2911
+ {
2912
+ variant: "outline",
2913
+ size: buttonSize,
2914
+ onClick: () => onPageChange(currentPage + 1),
2915
+ disabled: currentPage >= totalPages,
2916
+ "aria-label": "Go to next page",
2917
+ children: /* @__PURE__ */ jsxRuntime.jsx(react_star.CaretRight, { size: iconSize })
2918
+ }
2919
+ )
2920
+ ]
2921
+ }
2922
+ );
2923
+ }
2924
+ );
2925
+ Pagination.displayName = "Pagination";
2926
+ var SimplePagination = React27__namespace.forwardRef(
2927
+ ({
2928
+ currentPage,
2929
+ totalPages,
2930
+ onPageChange,
2931
+ size = "default",
2932
+ className,
2933
+ showPageInfo = true
2934
+ }, ref) => {
2935
+ const buttonSize = size === "sm" ? "sm" : size === "lg" ? "lg" : "default";
2936
+ const iconSize = size === "sm" ? 14 : size === "lg" ? 20 : 16;
2937
+ if (totalPages <= 1) {
2938
+ return null;
2939
+ }
2940
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2941
+ "nav",
2942
+ {
2943
+ ref,
2944
+ role: "navigation",
2945
+ "aria-label": "Pagination",
2946
+ className: cn("flex items-center gap-2", className),
2947
+ children: [
2948
+ /* @__PURE__ */ jsxRuntime.jsxs(
2949
+ Button,
2950
+ {
2951
+ variant: "outline",
2952
+ size: buttonSize,
2953
+ onClick: () => onPageChange(currentPage - 1),
2954
+ disabled: currentPage <= 1,
2955
+ "aria-label": "Go to previous page",
2956
+ children: [
2957
+ /* @__PURE__ */ jsxRuntime.jsx(react_star.CaretLeft, { size: iconSize }),
2958
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1", children: "Previous" })
2959
+ ]
2960
+ }
2961
+ ),
2962
+ showPageInfo && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm text-muted-foreground px-2", children: [
2963
+ "Page ",
2964
+ currentPage,
2965
+ " of ",
2966
+ totalPages
2967
+ ] }),
2968
+ /* @__PURE__ */ jsxRuntime.jsxs(
2969
+ Button,
2970
+ {
2971
+ variant: "outline",
2972
+ size: buttonSize,
2973
+ onClick: () => onPageChange(currentPage + 1),
2974
+ disabled: currentPage >= totalPages,
2975
+ "aria-label": "Go to next page",
2976
+ children: [
2977
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1", children: "Next" }),
2978
+ /* @__PURE__ */ jsxRuntime.jsx(react_star.CaretRight, { size: iconSize })
2979
+ ]
2980
+ }
2981
+ )
2982
+ ]
2983
+ }
2984
+ );
2985
+ }
2986
+ );
2987
+ SimplePagination.displayName = "SimplePagination";
2988
+ var StepProgress = React27__namespace.forwardRef(
2989
+ ({
2990
+ steps,
2991
+ currentStep,
2992
+ onStepClick,
2993
+ orientation = "horizontal",
2994
+ size = "default",
2995
+ showLabels = true,
2996
+ className
2997
+ }, ref) => {
2998
+ const sizeStyles = {
2999
+ sm: {
3000
+ indicator: "w-6 h-6 text-xs",
3001
+ icon: 12,
3002
+ label: "text-xs",
3003
+ connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
3004
+ connectorLength: orientation === "horizontal" ? "w-4 sm:w-8" : "h-6"
3005
+ },
3006
+ default: {
3007
+ indicator: "w-7 h-7 text-xs",
3008
+ icon: 14,
3009
+ label: "text-sm",
3010
+ connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
3011
+ connectorLength: orientation === "horizontal" ? "w-6 sm:w-10 md:w-14" : "h-8"
3012
+ },
3013
+ lg: {
3014
+ indicator: "w-8 h-8 text-sm",
3015
+ icon: 16,
3016
+ label: "text-sm",
3017
+ connector: orientation === "horizontal" ? "h-0.5" : "w-0.5",
3018
+ connectorLength: orientation === "horizontal" ? "w-8 sm:w-12 md:w-16" : "h-10"
3019
+ }
3020
+ };
3021
+ const styles = sizeStyles[size];
3022
+ return /* @__PURE__ */ jsxRuntime.jsx(
3023
+ "div",
3024
+ {
3025
+ ref,
3026
+ className: cn(
3027
+ "flex",
3028
+ orientation === "horizontal" ? "flex-row items-center" : "flex-col",
3029
+ className
3030
+ ),
3031
+ children: steps.map((step, index) => {
3032
+ const isCompleted = step.id < currentStep;
3033
+ const isCurrent = step.id === currentStep;
3034
+ const isClickable = onStepClick && step.id < currentStep;
3035
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3036
+ "div",
3037
+ {
3038
+ className: cn(
3039
+ "flex",
3040
+ orientation === "horizontal" ? "flex-row items-center" : "flex-col items-start"
3041
+ ),
3042
+ children: [
3043
+ /* @__PURE__ */ jsxRuntime.jsxs(
3044
+ "button",
3045
+ {
3046
+ type: "button",
3047
+ onClick: () => isClickable && onStepClick(step.id),
3048
+ disabled: !isClickable,
3049
+ className: cn(
3050
+ "flex items-center gap-2 px-2 py-1.5 rounded-sm transition-colors",
3051
+ isClickable ? "cursor-pointer hover:bg-gray-50" : "cursor-default",
3052
+ orientation === "vertical" && "flex-row"
3053
+ ),
3054
+ children: [
3055
+ /* @__PURE__ */ jsxRuntime.jsx(
3056
+ "span",
3057
+ {
3058
+ className: cn(
3059
+ "rounded-sm flex items-center justify-center font-bold transition-colors",
3060
+ styles.indicator,
3061
+ isCompleted ? "bg-[var(--cyan)] text-white" : isCurrent ? "bg-[var(--black)] text-white" : "bg-gray-100 text-gray-400"
3062
+ ),
3063
+ children: isCompleted ? /* @__PURE__ */ jsxRuntime.jsx(react_star.Check, { size: styles.icon, weight: "bold" }) : step.id
3064
+ }
3065
+ ),
3066
+ showLabels && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
3067
+ orientation === "horizontal" && "hidden sm:block",
3068
+ "text-left"
3069
+ ), children: [
3070
+ /* @__PURE__ */ jsxRuntime.jsx(
3071
+ "span",
3072
+ {
3073
+ className: cn(
3074
+ "font-medium transition-colors whitespace-nowrap",
3075
+ styles.label,
3076
+ isCompleted ? "text-[var(--cyan)]" : isCurrent ? "text-[var(--black)]" : "text-gray-400"
3077
+ ),
3078
+ children: step.label
3079
+ }
3080
+ ),
3081
+ step.description && orientation === "vertical" && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground mt-0.5", children: step.description })
3082
+ ] })
3083
+ ]
3084
+ }
3085
+ ),
3086
+ index < steps.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(
3087
+ "div",
3088
+ {
3089
+ className: cn(
3090
+ "transition-colors",
3091
+ styles.connector,
3092
+ styles.connectorLength,
3093
+ isCompleted ? "bg-[var(--cyan)]" : "bg-gray-200",
3094
+ orientation === "vertical" && "ml-[13px] my-1"
3095
+ )
3096
+ }
3097
+ )
3098
+ ]
3099
+ },
3100
+ step.id
3101
+ );
3102
+ })
3103
+ }
3104
+ );
3105
+ }
3106
+ );
3107
+ StepProgress.displayName = "StepProgress";
3108
+ var StepDots = React27__namespace.forwardRef(
3109
+ ({ totalSteps, currentStep, onStepClick, className }, ref) => {
3110
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center gap-2", className), children: Array.from({ length: totalSteps }, (_, i) => i + 1).map((step) => {
3111
+ const isCompleted = step < currentStep;
3112
+ const isCurrent = step === currentStep;
3113
+ const isClickable = onStepClick && step < currentStep;
3114
+ return /* @__PURE__ */ jsxRuntime.jsx(
3115
+ "button",
3116
+ {
3117
+ type: "button",
3118
+ onClick: () => isClickable && onStepClick(step),
3119
+ disabled: !isClickable,
3120
+ className: cn(
3121
+ "w-2 h-2 rounded-full transition-colors",
3122
+ isClickable && "cursor-pointer",
3123
+ !isClickable && "cursor-default",
3124
+ isCompleted || isCurrent ? "bg-[var(--cyan)]" : "bg-gray-200"
3125
+ ),
3126
+ "aria-label": `Step ${step}`
3127
+ },
3128
+ step
3129
+ );
3130
+ }) });
3131
+ }
3132
+ );
3133
+ StepDots.displayName = "StepDots";
3134
+ var Breadcrumbs = React27__namespace.forwardRef(
3135
+ ({
3136
+ items,
3137
+ LinkComponent,
3138
+ separator,
3139
+ showHomeIcon = false,
3140
+ maxItems,
3141
+ size = "default",
3142
+ className,
3143
+ ...props
3144
+ }, ref) => {
3145
+ const sizeStyles = {
3146
+ sm: "text-xs gap-1",
3147
+ default: "text-sm gap-1.5"
3148
+ };
3149
+ const iconSize = size === "sm" ? 10 : 12;
3150
+ let displayItems = items;
3151
+ if (maxItems && items.length > maxItems) {
3152
+ displayItems = [
3153
+ items[0],
3154
+ { label: "...", href: void 0 },
3155
+ ...items.slice(-(maxItems - 2))
3156
+ ];
3157
+ }
3158
+ const defaultSeparator = /* @__PURE__ */ jsxRuntime.jsx(react_star.CaretRight, { size: iconSize, className: "text-gray-400" });
3159
+ return /* @__PURE__ */ jsxRuntime.jsx(
3160
+ "nav",
3161
+ {
3162
+ ref,
3163
+ "aria-label": "Breadcrumb",
3164
+ className: cn("flex items-center text-gray-500", sizeStyles[size], className),
3165
+ ...props,
3166
+ children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: cn("flex items-center", sizeStyles[size]), children: displayItems.map((item, index) => {
3167
+ const isFirst = index === 0;
3168
+ const isLast = index === displayItems.length - 1;
3169
+ const isEllipsis = item.label === "...";
3170
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex items-center", sizeStyles[size]), children: [
3171
+ index > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mx-1 text-gray-400", children: separator || defaultSeparator }),
3172
+ isEllipsis ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-gray-400", children: item.label }) : item.href && !isLast ? LinkComponent ? /* @__PURE__ */ jsxRuntime.jsxs(
3173
+ LinkComponent,
3174
+ {
3175
+ href: item.href,
3176
+ className: "flex items-center gap-1 hover:text-[var(--black)] transition-colors",
3177
+ children: [
3178
+ isFirst && showHomeIcon && /* @__PURE__ */ jsxRuntime.jsx(react_star.House, { size: iconSize + 2, weight: "fill" }),
3179
+ item.icon,
3180
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
3181
+ ]
3182
+ }
3183
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(
3184
+ "a",
3185
+ {
3186
+ href: item.href,
3187
+ className: "flex items-center gap-1 hover:text-[var(--black)] transition-colors",
3188
+ children: [
3189
+ isFirst && showHomeIcon && /* @__PURE__ */ jsxRuntime.jsx(react_star.House, { size: iconSize + 2, weight: "fill" }),
3190
+ item.icon,
3191
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
3192
+ ]
3193
+ }
3194
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(
3195
+ "span",
3196
+ {
3197
+ className: cn(
3198
+ "flex items-center gap-1",
3199
+ isLast && "text-[var(--black)] font-medium"
3200
+ ),
3201
+ "aria-current": isLast ? "page" : void 0,
3202
+ children: [
3203
+ isFirst && showHomeIcon && /* @__PURE__ */ jsxRuntime.jsx(react_star.House, { size: iconSize + 2, weight: "fill" }),
3204
+ item.icon,
3205
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: item.label })
3206
+ ]
3207
+ }
3208
+ )
3209
+ ] }, index);
3210
+ }) })
3211
+ }
3212
+ );
3213
+ }
3214
+ );
3215
+ Breadcrumbs.displayName = "Breadcrumbs";
3216
+ var BreadcrumbLink = React27__namespace.forwardRef(
3217
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
3218
+ "a",
3219
+ {
3220
+ ref,
3221
+ className: cn(
3222
+ "hover:text-[var(--black)] transition-colors",
3223
+ className
3224
+ ),
3225
+ ...props
3226
+ }
3227
+ )
3228
+ );
3229
+ BreadcrumbLink.displayName = "BreadcrumbLink";
3230
+ var presetLabels = {
3231
+ "today": "Today",
3232
+ "yesterday": "Yesterday",
3233
+ "7d": "Last 7 days",
3234
+ "30d": "Last 30 days",
3235
+ "90d": "Last 90 days",
3236
+ "this-week": "This week",
3237
+ "this-month": "This month",
3238
+ "this-year": "This year",
3239
+ "custom": "Custom"
3240
+ };
3241
+ var DateRangePicker = React27__namespace.forwardRef(
3242
+ ({
3243
+ value,
3244
+ onChange,
3245
+ customStart = "",
3246
+ customEnd = "",
3247
+ onCustomChange,
3248
+ presets = ["7d", "30d", "90d", "custom"],
3249
+ size = "default",
3250
+ className,
3251
+ inlineCustom = true
3252
+ }, ref) => {
3253
+ const buttonSize = size === "sm" ? "sm" : "default";
3254
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("flex flex-wrap items-center gap-2", className), children: [
3255
+ presets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
3256
+ Button,
3257
+ {
3258
+ variant: value === preset ? "default" : "outline",
3259
+ size: buttonSize,
3260
+ onClick: () => onChange(preset),
3261
+ children: presetLabels[preset]
3262
+ },
3263
+ preset
3264
+ )),
3265
+ value === "custom" && inlineCustom && onCustomChange && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3266
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
3267
+ /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "start-date", className: "text-xs sr-only", children: "Start" }),
3268
+ /* @__PURE__ */ jsxRuntime.jsx(
3269
+ Input,
3270
+ {
3271
+ id: "start-date",
3272
+ type: "date",
3273
+ value: customStart,
3274
+ onChange: (e) => onCustomChange(e.target.value, customEnd),
3275
+ className: cn(size === "sm" ? "h-8 text-xs" : "h-9"),
3276
+ "aria-label": "Start date"
3277
+ }
3278
+ )
3279
+ ] }),
3280
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "to" }),
3281
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
3282
+ /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: "end-date", className: "text-xs sr-only", children: "End" }),
3283
+ /* @__PURE__ */ jsxRuntime.jsx(
3284
+ Input,
3285
+ {
3286
+ id: "end-date",
3287
+ type: "date",
3288
+ value: customEnd,
3289
+ onChange: (e) => onCustomChange(customStart, e.target.value),
3290
+ className: cn(size === "sm" ? "h-8 text-xs" : "h-9"),
3291
+ "aria-label": "End date"
3292
+ }
3293
+ )
3294
+ ] })
3295
+ ] })
3296
+ ] });
3297
+ }
3298
+ );
3299
+ DateRangePicker.displayName = "DateRangePicker";
3300
+ var DateRangeSelect = React27__namespace.forwardRef(
3301
+ ({ value, onChange, presets = ["7d", "30d", "90d"], className }, ref) => {
3302
+ return /* @__PURE__ */ jsxRuntime.jsx(
3303
+ "select",
3304
+ {
3305
+ ref,
3306
+ value,
3307
+ onChange: (e) => onChange(e.target.value),
3308
+ className: cn(
3309
+ "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",
3310
+ className
3311
+ ),
3312
+ children: presets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: preset, children: presetLabels[preset] }, preset))
3313
+ }
3314
+ );
3315
+ }
3316
+ );
3317
+ DateRangeSelect.displayName = "DateRangeSelect";
3318
+ function getDateRangeFromPreset(preset) {
3319
+ const now = /* @__PURE__ */ new Date();
3320
+ const end = new Date(now);
3321
+ end.setHours(23, 59, 59, 999);
3322
+ let start = new Date(now);
3323
+ start.setHours(0, 0, 0, 0);
3324
+ switch (preset) {
3325
+ case "today":
3326
+ break;
3327
+ case "yesterday":
3328
+ start.setDate(start.getDate() - 1);
3329
+ end.setDate(end.getDate() - 1);
3330
+ break;
3331
+ case "7d":
3332
+ start.setDate(start.getDate() - 7);
3333
+ break;
3334
+ case "30d":
3335
+ start.setDate(start.getDate() - 30);
3336
+ break;
3337
+ case "90d":
3338
+ start.setDate(start.getDate() - 90);
3339
+ break;
3340
+ case "this-week":
3341
+ start.setDate(start.getDate() - start.getDay());
3342
+ break;
3343
+ case "this-month":
3344
+ start.setDate(1);
3345
+ break;
3346
+ case "this-year":
3347
+ start.setMonth(0, 1);
3348
+ break;
3349
+ }
3350
+ return { start, end };
3351
+ }
3352
+ var SettingsNav = React27__namespace.forwardRef(
3353
+ ({ groups, LinkComponent, className, ...props }, ref) => {
3354
+ const Link2 = LinkComponent || "a";
3355
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-8", className), ...props, children: groups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3356
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-medium text-muted-foreground uppercase tracking-wide mb-3 px-1", children: group.title }),
3357
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: group.items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
3358
+ Link2,
3359
+ {
3360
+ href: item.href,
3361
+ className: "group flex items-center gap-4 p-4 rounded-sm transition-all hover:bg-gray-50 border border-transparent hover:border-gray-200",
3362
+ children: [
3363
+ /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx("span", { className: "text-gray-600 group-hover:text-[var(--cyan)] transition-colors [&>svg]:w-5 [&>svg]:h-5", children: item.icon }) }),
3364
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
3365
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium text-[var(--black)] group-hover:text-[var(--cyan)] transition-colors", children: item.title }),
3366
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: item.description })
3367
+ ] }),
3368
+ /* @__PURE__ */ jsxRuntime.jsx(
3369
+ react_star.CaretRight,
3370
+ {
3371
+ size: 18,
3372
+ className: "text-gray-300 group-hover:text-[var(--cyan)] group-hover:translate-x-0.5 transition-all shrink-0"
3373
+ }
3374
+ )
3375
+ ]
3376
+ },
3377
+ item.href
3378
+ )) })
3379
+ ] }, group.title)) });
3380
+ }
3381
+ );
3382
+ SettingsNav.displayName = "SettingsNav";
3383
+ var SettingsNavLink = React27__namespace.forwardRef(
3384
+ ({ title, description, icon, href, LinkComponent, className, ...props }, ref) => {
3385
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3386
+ icon && /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx("span", { className: "text-gray-600 group-hover:text-[var(--cyan)] transition-colors [&>svg]:w-5 [&>svg]:h-5", children: icon }) }),
3387
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
3388
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium text-[var(--black)] group-hover:text-[var(--cyan)] transition-colors", children: title }),
3389
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: description })
3390
+ ] }),
3391
+ /* @__PURE__ */ jsxRuntime.jsx(
3392
+ react_star.CaretRight,
3393
+ {
3394
+ size: 18,
3395
+ className: "text-gray-300 group-hover:text-[var(--cyan)] group-hover:translate-x-0.5 transition-all shrink-0"
3396
+ }
3397
+ )
3398
+ ] });
3399
+ const linkClassName = cn(
3400
+ "group flex items-center gap-4 p-4 rounded-sm transition-all hover:bg-gray-50 border border-transparent hover:border-gray-200",
3401
+ className
3402
+ );
3403
+ if (LinkComponent && href) {
3404
+ return /* @__PURE__ */ jsxRuntime.jsx(LinkComponent, { href, className: linkClassName, children: content });
3405
+ }
3406
+ return /* @__PURE__ */ jsxRuntime.jsx("a", { ref, href, className: linkClassName, ...props, children: content });
3407
+ }
3408
+ );
3409
+ SettingsNavLink.displayName = "SettingsNavLink";
2284
3410
 
2285
3411
  // src/index.ts
2286
3412
  __reExport(index_exports, icons_exports);
@@ -2290,10 +3416,23 @@ exports.AccordionContent = AccordionContent;
2290
3416
  exports.AccordionItem = AccordionItem;
2291
3417
  exports.AccordionTrigger = AccordionTrigger;
2292
3418
  exports.Alert = Alert;
3419
+ exports.AlertDialog = AlertDialog;
3420
+ exports.AlertDialogAction = AlertDialogAction;
3421
+ exports.AlertDialogCancel = AlertDialogCancel;
3422
+ exports.AlertDialogContent = AlertDialogContent;
3423
+ exports.AlertDialogDescription = AlertDialogDescription;
3424
+ exports.AlertDialogFooter = AlertDialogFooter;
3425
+ exports.AlertDialogHeader = AlertDialogHeader;
3426
+ exports.AlertDialogOverlay = AlertDialogOverlay;
3427
+ exports.AlertDialogPortal = AlertDialogPortal;
3428
+ exports.AlertDialogTitle = AlertDialogTitle;
3429
+ exports.AlertDialogTrigger = AlertDialogTrigger;
2293
3430
  exports.Avatar = Avatar;
2294
3431
  exports.AvatarFallback = AvatarFallback;
2295
3432
  exports.AvatarImage = AvatarImage;
2296
3433
  exports.Badge = Badge;
3434
+ exports.BreadcrumbLink = BreadcrumbLink;
3435
+ exports.Breadcrumbs = Breadcrumbs;
2297
3436
  exports.Button = Button;
2298
3437
  exports.Card = Card;
2299
3438
  exports.CardContent = CardContent;
@@ -2303,6 +3442,9 @@ exports.CardHeader = CardHeader;
2303
3442
  exports.CardTitle = CardTitle;
2304
3443
  exports.Checkbox = Checkbox;
2305
3444
  exports.CodeBlock = CodeBlock;
3445
+ exports.ConfirmDialog = ConfirmDialog;
3446
+ exports.DateRangePicker = DateRangePicker;
3447
+ exports.DateRangeSelect = DateRangeSelect;
2306
3448
  exports.Dialog = Dialog;
2307
3449
  exports.DialogClose = DialogClose;
2308
3450
  exports.DialogContent = DialogContent;
@@ -2334,6 +3476,7 @@ exports.FormField = FormField;
2334
3476
  exports.IconBox = IconBox;
2335
3477
  exports.Input = Input;
2336
3478
  exports.Label = Label2;
3479
+ exports.LabeledSwitch = LabeledSwitch;
2337
3480
  exports.Logo = Logo;
2338
3481
  exports.MetricCard = MetricCard;
2339
3482
  exports.NavigationMenu = NavigationMenu;
@@ -2344,9 +3487,22 @@ exports.NavigationMenuLink = NavigationMenuLink;
2344
3487
  exports.NavigationMenuList = NavigationMenuList;
2345
3488
  exports.NavigationMenuTrigger = NavigationMenuTrigger;
2346
3489
  exports.NavigationMenuViewport = NavigationMenuViewport;
3490
+ exports.Pagination = Pagination;
3491
+ exports.Popover = Popover;
3492
+ exports.PopoverAnchor = PopoverAnchor;
3493
+ exports.PopoverArrow = PopoverArrow;
3494
+ exports.PopoverClose = PopoverClose;
3495
+ exports.PopoverContent = PopoverContent;
3496
+ exports.PopoverTrigger = PopoverTrigger;
2347
3497
  exports.Progress = Progress;
3498
+ exports.RadioGroup = RadioGroup;
3499
+ exports.RadioGroupCard = RadioGroupCard;
3500
+ exports.RadioGroupItem = RadioGroupItem;
3501
+ exports.RadioGroupOption = RadioGroupOption;
2348
3502
  exports.Select = Select;
2349
3503
  exports.Separator = Separator2;
3504
+ exports.SettingsNav = SettingsNav;
3505
+ exports.SettingsNavLink = SettingsNavLink;
2350
3506
  exports.Sheet = Sheet;
2351
3507
  exports.SheetClose = SheetClose;
2352
3508
  exports.SheetContent = SheetContent;
@@ -2359,7 +3515,15 @@ exports.SheetTitle = SheetTitle;
2359
3515
  exports.SheetTrigger = SheetTrigger;
2360
3516
  exports.Sidebar = Sidebar;
2361
3517
  exports.SidebarNavItem = SidebarNavItem;
3518
+ exports.SimplePagination = SimplePagination;
3519
+ exports.SimpleTooltip = SimpleTooltip;
3520
+ exports.Skeleton = Skeleton;
3521
+ exports.SkeletonCard = SkeletonCard;
3522
+ exports.SkeletonText = SkeletonText;
2362
3523
  exports.Stat = Stat;
3524
+ exports.StepDots = StepDots;
3525
+ exports.StepProgress = StepProgress;
3526
+ exports.Switch = Switch;
2363
3527
  exports.Table = Table;
2364
3528
  exports.TableBody = TableBody;
2365
3529
  exports.TableCaption = TableCaption;
@@ -2368,6 +3532,12 @@ exports.TableFooter = TableFooter;
2368
3532
  exports.TableHead = TableHead;
2369
3533
  exports.TableHeader = TableHeader;
2370
3534
  exports.TableRow = TableRow;
3535
+ exports.Tabs = Tabs;
3536
+ exports.TabsContent = TabsContent;
3537
+ exports.TabsList = TabsList;
3538
+ exports.TabsListUnderline = TabsListUnderline;
3539
+ exports.TabsTrigger = TabsTrigger;
3540
+ exports.TabsTriggerUnderline = TabsTriggerUnderline;
2371
3541
  exports.Tag = Tag;
2372
3542
  exports.Textarea = Textarea;
2373
3543
  exports.Toast = Toast;
@@ -2379,12 +3549,18 @@ exports.ToastProvider = ToastProvider;
2379
3549
  exports.ToastTitle = ToastTitle;
2380
3550
  exports.ToastViewport = ToastViewport;
2381
3551
  exports.Toaster = Toaster;
3552
+ exports.Tooltip = Tooltip;
3553
+ exports.TooltipArrow = TooltipArrow;
3554
+ exports.TooltipContent = TooltipContent;
3555
+ exports.TooltipProvider = TooltipProvider;
3556
+ exports.TooltipTrigger = TooltipTrigger;
2382
3557
  exports.UsageBar = UsageBar;
2383
3558
  exports.UsageChart = UsageChart;
2384
3559
  exports.alertVariants = alertVariants;
2385
3560
  exports.badgeVariants = badgeVariants;
2386
3561
  exports.buttonVariants = buttonVariants;
2387
3562
  exports.cn = cn;
3563
+ exports.getDateRangeFromPreset = getDateRangeFromPreset;
2388
3564
  exports.iconBoxVariants = iconBoxVariants;
2389
3565
  exports.metricCardVariants = metricCardVariants;
2390
3566
  exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;