@windrun-huaiin/base-ui 3.3.0 → 3.4.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 (60) hide show
  1. package/dist/index.d.mts +2 -38
  2. package/dist/index.d.ts +2 -38
  3. package/dist/index.js +187 -4263
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +184 -4037
  6. package/dist/index.mjs.map +1 -1
  7. package/dist/ui/index.d.mts +37 -711
  8. package/dist/ui/index.d.ts +37 -711
  9. package/dist/ui/index.js +172 -4248
  10. package/dist/ui/index.js.map +1 -1
  11. package/dist/ui/index.mjs +171 -4024
  12. package/dist/ui/index.mjs.map +1 -1
  13. package/package.json +1 -33
  14. package/src/ui/index.ts +2 -48
  15. package/src/ui/accordion.tsx +0 -58
  16. package/src/ui/alert.tsx +0 -59
  17. package/src/ui/aspect-ratio.tsx +0 -7
  18. package/src/ui/avatar.tsx +0 -50
  19. package/src/ui/badge.tsx +0 -36
  20. package/src/ui/breadcrumb.tsx +0 -115
  21. package/src/ui/calendar.tsx +0 -66
  22. package/src/ui/card.tsx +0 -79
  23. package/src/ui/carousel.tsx +0 -262
  24. package/src/ui/chart.tsx +0 -365
  25. package/src/ui/checkbox.tsx +0 -30
  26. package/src/ui/collapsible.tsx +0 -11
  27. package/src/ui/command.tsx +0 -153
  28. package/src/ui/context-menu.tsx +0 -200
  29. package/src/ui/dialog.tsx +0 -122
  30. package/src/ui/drawer.tsx +0 -118
  31. package/src/ui/form.tsx +0 -178
  32. package/src/ui/hover-card.tsx +0 -29
  33. package/src/ui/input-otp.tsx +0 -71
  34. package/src/ui/input.tsx +0 -22
  35. package/src/ui/menubar.tsx +0 -236
  36. package/src/ui/navigation-menu.tsx +0 -128
  37. package/src/ui/pagination.tsx +0 -117
  38. package/src/ui/popover.tsx +0 -31
  39. package/src/ui/progress.tsx +0 -28
  40. package/src/ui/radio-group.tsx +0 -44
  41. package/src/ui/resizable.tsx +0 -45
  42. package/src/ui/scroll-area.tsx +0 -48
  43. package/src/ui/select.tsx +0 -160
  44. package/src/ui/separator.tsx +0 -31
  45. package/src/ui/sheet.tsx +0 -140
  46. package/src/ui/sidebar.tsx +0 -763
  47. package/src/ui/skeleton.tsx +0 -15
  48. package/src/ui/slider.tsx +0 -28
  49. package/src/ui/sonner.tsx +0 -31
  50. package/src/ui/switch.tsx +0 -29
  51. package/src/ui/table.tsx +0 -117
  52. package/src/ui/tabs.tsx +0 -55
  53. package/src/ui/textarea.tsx +0 -22
  54. package/src/ui/toast.tsx +0 -129
  55. package/src/ui/toaster.tsx +0 -35
  56. package/src/ui/toggle-group.tsx +0 -61
  57. package/src/ui/toggle.tsx +0 -45
  58. package/src/ui/tooltip.tsx +0 -30
  59. package/src/ui/use-mobile.tsx +0 -19
  60. package/src/ui/use-toast.ts +0 -194
package/dist/index.js CHANGED
@@ -59,12 +59,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
59
59
  // src/index.ts
60
60
  var index_exports = {};
61
61
  __export(index_exports, {
62
- Accordion: () => Accordion,
63
- AccordionContent: () => AccordionContent,
64
- AccordionItem: () => AccordionItem,
65
- AccordionTrigger: () => AccordionTrigger,
66
- Alert: () => Alert,
67
- AlertDescription: () => AlertDescription,
68
62
  AlertDialog: () => AlertDialog,
69
63
  AlertDialogAction: () => AlertDialogAction,
70
64
  AlertDialogCancel: () => AlertDialogCancel,
@@ -76,87 +70,8 @@ __export(index_exports, {
76
70
  AlertDialogPortal: () => AlertDialogPortal,
77
71
  AlertDialogTitle: () => AlertDialogTitle,
78
72
  AlertDialogTrigger: () => AlertDialogTrigger,
79
- AlertTitle: () => AlertTitle,
80
- AspectRatio: () => AspectRatio,
81
- Avatar: () => Avatar,
82
- AvatarFallback: () => AvatarFallback,
83
- AvatarImage: () => AvatarImage,
84
- Badge: () => Badge,
85
- Breadcrumb: () => Breadcrumb,
86
- BreadcrumbEllipsis: () => BreadcrumbEllipsis,
87
- BreadcrumbItem: () => BreadcrumbItem,
88
- BreadcrumbLink: () => BreadcrumbLink,
89
- BreadcrumbList: () => BreadcrumbList,
90
- BreadcrumbPage: () => BreadcrumbPage,
91
- BreadcrumbSeparator: () => BreadcrumbSeparator,
92
73
  Button: () => Button,
93
- Calendar: () => Calendar,
94
- Card: () => Card,
95
- CardContent: () => CardContent,
96
- CardDescription: () => CardDescription,
97
- CardFooter: () => CardFooter,
98
- CardHeader: () => CardHeader,
99
- CardTitle: () => CardTitle,
100
- Carousel: () => Carousel,
101
- CarouselContent: () => CarouselContent,
102
- CarouselItem: () => CarouselItem,
103
- CarouselNext: () => CarouselNext,
104
- CarouselPrevious: () => CarouselPrevious,
105
- ChartContainer: () => ChartContainer,
106
- ChartLegend: () => ChartLegend,
107
- ChartLegendContent: () => ChartLegendContent,
108
- ChartStyle: () => ChartStyle,
109
- ChartTooltip: () => ChartTooltip,
110
- ChartTooltipContent: () => ChartTooltipContent,
111
- Checkbox: () => Checkbox,
112
- Collapsible: () => Collapsible,
113
- CollapsibleContent: () => CollapsibleContent2,
114
- CollapsibleTrigger: () => CollapsibleTrigger2,
115
- Command: () => Command,
116
- CommandDialog: () => CommandDialog,
117
- CommandEmpty: () => CommandEmpty,
118
- CommandGroup: () => CommandGroup,
119
- CommandInput: () => CommandInput,
120
- CommandItem: () => CommandItem,
121
- CommandList: () => CommandList,
122
- CommandSeparator: () => CommandSeparator,
123
- CommandShortcut: () => CommandShortcut,
124
- ContextMenu: () => ContextMenu,
125
- ContextMenuCheckboxItem: () => ContextMenuCheckboxItem,
126
- ContextMenuContent: () => ContextMenuContent,
127
- ContextMenuGroup: () => ContextMenuGroup,
128
- ContextMenuItem: () => ContextMenuItem,
129
- ContextMenuLabel: () => ContextMenuLabel,
130
- ContextMenuPortal: () => ContextMenuPortal,
131
- ContextMenuRadioGroup: () => ContextMenuRadioGroup,
132
- ContextMenuRadioItem: () => ContextMenuRadioItem,
133
- ContextMenuSeparator: () => ContextMenuSeparator,
134
- ContextMenuShortcut: () => ContextMenuShortcut,
135
- ContextMenuSub: () => ContextMenuSub,
136
- ContextMenuSubContent: () => ContextMenuSubContent,
137
- ContextMenuSubTrigger: () => ContextMenuSubTrigger,
138
- ContextMenuTrigger: () => ContextMenuTrigger,
139
74
  DefaultSiteIcon: () => DefaultSiteIcon,
140
- Dialog: () => Dialog,
141
- DialogClose: () => DialogClose,
142
- DialogContent: () => DialogContent,
143
- DialogDescription: () => DialogDescription,
144
- DialogFooter: () => DialogFooter,
145
- DialogHeader: () => DialogHeader,
146
- DialogOverlay: () => DialogOverlay,
147
- DialogPortal: () => DialogPortal,
148
- DialogTitle: () => DialogTitle,
149
- DialogTrigger: () => DialogTrigger,
150
- Drawer: () => Drawer,
151
- DrawerClose: () => DrawerClose,
152
- DrawerContent: () => DrawerContent,
153
- DrawerDescription: () => DrawerDescription,
154
- DrawerFooter: () => DrawerFooter,
155
- DrawerHeader: () => DrawerHeader,
156
- DrawerOverlay: () => DrawerOverlay,
157
- DrawerPortal: () => DrawerPortal,
158
- DrawerTitle: () => DrawerTitle,
159
- DrawerTrigger: () => DrawerTrigger,
160
75
  DropdownMenu: () => DropdownMenu,
161
76
  DropdownMenuCheckboxItem: () => DropdownMenuCheckboxItem,
162
77
  DropdownMenuContent: () => DropdownMenuContent,
@@ -172,163 +87,33 @@ __export(index_exports, {
172
87
  DropdownMenuSubContent: () => DropdownMenuSubContent,
173
88
  DropdownMenuSubTrigger: () => DropdownMenuSubTrigger,
174
89
  DropdownMenuTrigger: () => DropdownMenuTrigger,
175
- Form: () => Form,
176
- FormControl: () => FormControl,
177
- FormDescription: () => FormDescription,
178
- FormField: () => FormField,
179
- FormItem: () => FormItem,
180
- FormLabel: () => FormLabel,
181
- FormMessage: () => FormMessage,
182
- HoverCard: () => HoverCard,
183
- HoverCardContent: () => HoverCardContent,
184
- HoverCardTrigger: () => HoverCardTrigger,
185
90
  IconConfigProvider: () => IconConfigProvider,
186
- Input: () => Input,
187
- InputOTP: () => InputOTP,
188
- InputOTPGroup: () => InputOTPGroup,
189
- InputOTPSeparator: () => InputOTPSeparator,
190
- InputOTPSlot: () => InputOTPSlot,
191
- Label: () => Label3,
91
+ Label: () => Label2,
192
92
  LanguageButton: () => LanguageButton,
193
- Menubar: () => Menubar,
194
- MenubarCheckboxItem: () => MenubarCheckboxItem,
195
- MenubarContent: () => MenubarContent,
196
- MenubarGroup: () => MenubarGroup,
197
- MenubarItem: () => MenubarItem,
198
- MenubarLabel: () => MenubarLabel,
199
- MenubarMenu: () => MenubarMenu,
200
- MenubarPortal: () => MenubarPortal,
201
- MenubarRadioGroup: () => MenubarRadioGroup,
202
- MenubarRadioItem: () => MenubarRadioItem,
203
- MenubarSeparator: () => MenubarSeparator,
204
- MenubarShortcut: () => MenubarShortcut,
205
- MenubarSub: () => MenubarSub,
206
- MenubarSubContent: () => MenubarSubContent,
207
- MenubarSubTrigger: () => MenubarSubTrigger,
208
- MenubarTrigger: () => MenubarTrigger,
209
- NavigationMenu: () => NavigationMenu,
210
- NavigationMenuContent: () => NavigationMenuContent,
211
- NavigationMenuIndicator: () => NavigationMenuIndicator,
212
- NavigationMenuItem: () => NavigationMenuItem,
213
- NavigationMenuLink: () => NavigationMenuLink,
214
- NavigationMenuList: () => NavigationMenuList,
215
- NavigationMenuTrigger: () => NavigationMenuTrigger,
216
- NavigationMenuViewport: () => NavigationMenuViewport,
217
93
  NotFoundIcon: () => NotFoundIcon,
218
- Pagination: () => Pagination,
219
- PaginationContent: () => PaginationContent,
220
- PaginationEllipsis: () => PaginationEllipsis,
221
- PaginationItem: () => PaginationItem,
222
- PaginationLink: () => PaginationLink,
223
- PaginationNext: () => PaginationNext,
224
- PaginationPrevious: () => PaginationPrevious,
225
- Popover: () => Popover,
226
- PopoverContent: () => PopoverContent,
227
- PopoverTrigger: () => PopoverTrigger,
228
- Progress: () => Progress,
229
- RadioGroup: () => RadioGroup4,
230
- RadioGroupItem: () => RadioGroupItem,
231
- ResizableHandle: () => ResizableHandle,
232
- ResizablePanel: () => ResizablePanel,
233
- ResizablePanelGroup: () => ResizablePanelGroup,
234
- ScrollArea: () => ScrollArea,
235
- ScrollBar: () => ScrollBar,
236
- Select: () => Select,
237
- SelectContent: () => SelectContent,
238
- SelectGroup: () => SelectGroup,
239
- SelectItem: () => SelectItem,
240
- SelectLabel: () => SelectLabel,
241
- SelectScrollDownButton: () => SelectScrollDownButton,
242
- SelectScrollUpButton: () => SelectScrollUpButton,
243
- SelectSeparator: () => SelectSeparator,
244
- SelectTrigger: () => SelectTrigger,
245
- SelectValue: () => SelectValue,
246
- Separator: () => Separator5,
247
- Sheet: () => Sheet,
248
- SheetClose: () => SheetClose,
249
- SheetContent: () => SheetContent,
250
- SheetDescription: () => SheetDescription,
251
- SheetFooter: () => SheetFooter,
252
- SheetHeader: () => SheetHeader,
253
- SheetOverlay: () => SheetOverlay,
254
- SheetPortal: () => SheetPortal,
255
- SheetTitle: () => SheetTitle,
256
- SheetTrigger: () => SheetTrigger,
257
- Sidebar: () => Sidebar,
258
- SidebarContent: () => SidebarContent,
259
- SidebarFooter: () => SidebarFooter,
260
- SidebarGroup: () => SidebarGroup,
261
- SidebarGroupAction: () => SidebarGroupAction,
262
- SidebarGroupContent: () => SidebarGroupContent,
263
- SidebarGroupLabel: () => SidebarGroupLabel,
264
- SidebarHeader: () => SidebarHeader,
265
- SidebarInput: () => SidebarInput,
266
- SidebarInset: () => SidebarInset,
267
- SidebarMenu: () => SidebarMenu,
268
- SidebarMenuAction: () => SidebarMenuAction,
269
- SidebarMenuBadge: () => SidebarMenuBadge,
270
- SidebarMenuButton: () => SidebarMenuButton,
271
- SidebarMenuItem: () => SidebarMenuItem,
272
- SidebarMenuSkeleton: () => SidebarMenuSkeleton,
273
- SidebarMenuSub: () => SidebarMenuSub,
274
- SidebarMenuSubButton: () => SidebarMenuSubButton,
275
- SidebarMenuSubItem: () => SidebarMenuSubItem,
276
- SidebarProvider: () => SidebarProvider,
277
- SidebarRail: () => SidebarRail,
278
- SidebarSeparator: () => SidebarSeparator,
279
- SidebarTrigger: () => SidebarTrigger,
280
94
  SiteIcon: () => SiteIcon,
281
- Skeleton: () => Skeleton,
282
- Slider: () => Slider,
283
- SonnerToaster: () => Toaster,
284
- Switch: () => Switch,
285
- Table: () => Table,
286
- TableBody: () => TableBody,
287
- TableCaption: () => TableCaption,
288
- TableCell: () => TableCell,
289
- TableFooter: () => TableFooter,
290
- TableHead: () => TableHead,
291
- TableHeader: () => TableHeader,
292
- TableRow: () => TableRow,
293
- Tabs: () => Tabs,
294
- TabsContent: () => TabsContent,
295
- TabsList: () => TabsList,
296
- TabsTrigger: () => TabsTrigger,
297
- Textarea: () => Textarea,
298
- Toast: () => Toast,
299
- ToastAction: () => ToastAction,
300
- ToastClose: () => ToastClose,
301
- ToastDescription: () => ToastDescription,
302
- ToastProvider: () => ToastProvider,
303
- ToastTitle: () => ToastTitle,
304
- ToastToaster: () => Toaster2,
305
- ToastViewport: () => ToastViewport,
306
- Toggle: () => Toggle,
307
- ToggleGroup: () => ToggleGroup,
308
- ToggleGroupItem: () => ToggleGroupItem,
309
- Tooltip: () => Tooltip2,
310
- TooltipContent: () => TooltipContent,
311
- TooltipProvider: () => TooltipProvider,
312
- TooltipTrigger: () => TooltipTrigger,
313
- badgeVariants: () => badgeVariants,
314
95
  buttonVariants: () => buttonVariants,
315
96
  getGlobalIcon: () => getGlobalIcon,
316
97
  getIconElement: () => getIconElement,
317
- globalLucideIcons: () => globalLucideIcons,
318
- navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
319
- reducer: () => reducer,
320
- toast: () => toast,
321
- toggleVariants: () => toggleVariants,
322
- useFormField: () => useFormField,
323
- useIsMobile: () => useIsMobile,
324
- useSidebar: () => useSidebar,
325
- useToast: () => useToast
98
+ globalLucideIcons: () => globalLucideIcons
326
99
  });
327
100
  module.exports = __toCommonJS(index_exports);
328
101
 
329
- // src/ui/accordion.tsx
102
+ // src/ui/alert-dialog.tsx
103
+ var React31 = __toESM(require("react"));
104
+ var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"));
105
+
106
+ // ../lib/src/utils.ts
107
+ var import_clsx = require("clsx");
108
+ var import_tailwind_merge = require("tailwind-merge");
109
+ function cn(...inputs) {
110
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
111
+ }
112
+
113
+ // src/ui/button.tsx
330
114
  var React30 = __toESM(require("react"));
331
- var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"));
115
+ var import_react_slot = require("@radix-ui/react-slot");
116
+ var import_class_variance_authority = require("class-variance-authority");
332
117
 
333
118
  // src/assets/github.tsx
334
119
  var import_react = __toESM(require("react"));
@@ -1524,8 +1309,8 @@ function getGlobalIcon(iconKey, createElement) {
1524
1309
  }
1525
1310
  return globalLucideIcons[DEFAULT_FALLBACK_ICON];
1526
1311
  }
1527
- const Icon2 = globalLucideIcons[iconKey];
1528
- if (!Icon2) {
1312
+ const Icon = globalLucideIcons[iconKey];
1313
+ if (!Icon) {
1529
1314
  if (typeof process !== "undefined" && ((_a = process.env) == null ? void 0 : _a.NODE_ENV) !== "production") {
1530
1315
  console.warn(
1531
1316
  `[global-icon] iconKey "${iconKey}" is not defined in globalIcons, will use default "${String(DEFAULT_FALLBACK_ICON)}" icon, please check!`
@@ -1538,9 +1323,9 @@ function getGlobalIcon(iconKey, createElement) {
1538
1323
  return FallbackIcon;
1539
1324
  }
1540
1325
  if (createElement) {
1541
- return import_react29.default.createElement(Icon2);
1326
+ return import_react29.default.createElement(Icon);
1542
1327
  }
1543
- return Icon2;
1328
+ return Icon;
1544
1329
  }
1545
1330
  function getIconElement(icon) {
1546
1331
  return getGlobalIcon(icon, true);
@@ -1548,69 +1333,8 @@ function getIconElement(icon) {
1548
1333
  var DefaultSiteIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(globalLucideIcons.Zap, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1549
1334
  var NotFoundIcon = () => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(globalLucideIcons.SquareTerminal, { className: `h-8 w-8 rounded-full p-1 shadow-lg ring-0.5 border border-purple-500 ring-purple-500/20 ${themeIconColor}` });
1550
1335
 
1551
- // ../lib/src/utils.ts
1552
- var import_clsx = require("clsx");
1553
- var import_tailwind_merge = require("tailwind-merge");
1554
- function cn(...inputs) {
1555
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
1556
- }
1557
-
1558
- // src/ui/accordion.tsx
1559
- var import_jsx_runtime30 = require("react/jsx-runtime");
1560
- var Accordion = AccordionPrimitive.Root;
1561
- var AccordionItem = React30.forwardRef((_a, ref) => {
1562
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1563
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1564
- AccordionPrimitive.Item,
1565
- __spreadValues({
1566
- ref,
1567
- className: cn("border-b", className)
1568
- }, props)
1569
- );
1570
- });
1571
- AccordionItem.displayName = "AccordionItem";
1572
- var AccordionTrigger = React30.forwardRef((_a, ref) => {
1573
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1574
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
1575
- AccordionPrimitive.Trigger,
1576
- __spreadProps(__spreadValues({
1577
- ref,
1578
- className: cn(
1579
- "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
1580
- className
1581
- )
1582
- }, props), {
1583
- children: [
1584
- children,
1585
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(globalLucideIcons.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
1586
- ]
1587
- })
1588
- ) });
1589
- });
1590
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
1591
- var AccordionContent = React30.forwardRef((_a, ref) => {
1592
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1593
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1594
- AccordionPrimitive.Content,
1595
- __spreadProps(__spreadValues({
1596
- ref,
1597
- className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
1598
- }, props), {
1599
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: cn("pb-4 pt-0", className), children })
1600
- })
1601
- );
1602
- });
1603
- AccordionContent.displayName = AccordionPrimitive.Content.displayName;
1604
-
1605
- // src/ui/alert-dialog.tsx
1606
- var React32 = __toESM(require("react"));
1607
- var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"));
1608
-
1609
1336
  // src/ui/button.tsx
1610
- var React31 = __toESM(require("react"));
1611
- var import_react_slot = require("@radix-ui/react-slot");
1612
- var import_class_variance_authority = require("class-variance-authority");
1613
- var import_jsx_runtime31 = require("react/jsx-runtime");
1337
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1614
1338
  var buttonVariants = (0, import_class_variance_authority.cva)(
1615
1339
  "inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1616
1340
  {
@@ -1636,12 +1360,12 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
1636
1360
  }
1637
1361
  }
1638
1362
  );
1639
- var Button = React31.forwardRef(
1363
+ var Button = React30.forwardRef(
1640
1364
  (_a, ref) => {
1641
1365
  var _b = _a, { className, variant, size, asChild = false, loading = false, children } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild", "loading", "children"]);
1642
1366
  const Comp = asChild ? import_react_slot.Slot : "button";
1643
1367
  if (asChild) {
1644
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1368
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1645
1369
  Comp,
1646
1370
  __spreadProps(__spreadValues({
1647
1371
  className: cn(buttonVariants({ variant, size, className })),
@@ -1652,7 +1376,7 @@ var Button = React31.forwardRef(
1652
1376
  })
1653
1377
  );
1654
1378
  }
1655
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
1379
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
1656
1380
  Comp,
1657
1381
  __spreadProps(__spreadValues({
1658
1382
  className: cn(buttonVariants({ variant, size, className })),
@@ -1661,7 +1385,7 @@ var Button = React31.forwardRef(
1661
1385
  }, props), {
1662
1386
  children: [
1663
1387
  children,
1664
- loading && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
1388
+ loading && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(globalLucideIcons.Loader2, { className: "ml-2 h-4 w-4 animate-spin" })
1665
1389
  ]
1666
1390
  })
1667
1391
  );
@@ -1670,13 +1394,13 @@ var Button = React31.forwardRef(
1670
1394
  Button.displayName = "Button";
1671
1395
 
1672
1396
  // src/ui/alert-dialog.tsx
1673
- var import_jsx_runtime32 = require("react/jsx-runtime");
1397
+ var import_jsx_runtime31 = require("react/jsx-runtime");
1674
1398
  var AlertDialog = AlertDialogPrimitive.Root;
1675
1399
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
1676
1400
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
1677
- var AlertDialogOverlay = React32.forwardRef((_a, ref) => {
1401
+ var AlertDialogOverlay = React31.forwardRef((_a, ref) => {
1678
1402
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1679
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1403
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1680
1404
  AlertDialogPrimitive.Overlay,
1681
1405
  __spreadProps(__spreadValues({
1682
1406
  className: cn(
@@ -1689,11 +1413,11 @@ var AlertDialogOverlay = React32.forwardRef((_a, ref) => {
1689
1413
  );
1690
1414
  });
1691
1415
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
1692
- var AlertDialogContent = React32.forwardRef((_a, ref) => {
1416
+ var AlertDialogContent = React31.forwardRef((_a, ref) => {
1693
1417
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1694
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(AlertDialogPortal, { children: [
1695
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(AlertDialogOverlay, {}),
1696
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1418
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(AlertDialogPortal, { children: [
1419
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(AlertDialogOverlay, {}),
1420
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1697
1421
  AlertDialogPrimitive.Content,
1698
1422
  __spreadValues({
1699
1423
  ref,
@@ -1712,7 +1436,7 @@ var AlertDialogHeader = (_a) => {
1712
1436
  } = _b, props = __objRest(_b, [
1713
1437
  "className"
1714
1438
  ]);
1715
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1439
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1716
1440
  "div",
1717
1441
  __spreadValues({
1718
1442
  className: cn(
@@ -1729,7 +1453,7 @@ var AlertDialogFooter = (_a) => {
1729
1453
  } = _b, props = __objRest(_b, [
1730
1454
  "className"
1731
1455
  ]);
1732
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1456
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1733
1457
  "div",
1734
1458
  __spreadValues({
1735
1459
  className: cn(
@@ -1740,9 +1464,9 @@ var AlertDialogFooter = (_a) => {
1740
1464
  );
1741
1465
  };
1742
1466
  AlertDialogFooter.displayName = "AlertDialogFooter";
1743
- var AlertDialogTitle = React32.forwardRef((_a, ref) => {
1467
+ var AlertDialogTitle = React31.forwardRef((_a, ref) => {
1744
1468
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1745
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1469
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1746
1470
  AlertDialogPrimitive.Title,
1747
1471
  __spreadValues({
1748
1472
  ref,
@@ -1751,9 +1475,9 @@ var AlertDialogTitle = React32.forwardRef((_a, ref) => {
1751
1475
  );
1752
1476
  });
1753
1477
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
1754
- var AlertDialogDescription = React32.forwardRef((_a, ref) => {
1478
+ var AlertDialogDescription = React31.forwardRef((_a, ref) => {
1755
1479
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1756
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1480
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1757
1481
  AlertDialogPrimitive.Description,
1758
1482
  __spreadValues({
1759
1483
  ref,
@@ -1762,9 +1486,9 @@ var AlertDialogDescription = React32.forwardRef((_a, ref) => {
1762
1486
  );
1763
1487
  });
1764
1488
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
1765
- var AlertDialogAction = React32.forwardRef((_a, ref) => {
1489
+ var AlertDialogAction = React31.forwardRef((_a, ref) => {
1766
1490
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1767
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1491
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1768
1492
  AlertDialogPrimitive.Action,
1769
1493
  __spreadValues({
1770
1494
  ref,
@@ -1773,9 +1497,9 @@ var AlertDialogAction = React32.forwardRef((_a, ref) => {
1773
1497
  );
1774
1498
  });
1775
1499
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
1776
- var AlertDialogCancel = React32.forwardRef((_a, ref) => {
1500
+ var AlertDialogCancel = React31.forwardRef((_a, ref) => {
1777
1501
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1778
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1502
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1779
1503
  AlertDialogPrimitive.Cancel,
1780
1504
  __spreadValues({
1781
1505
  ref,
@@ -1789,3787 +1513,214 @@ var AlertDialogCancel = React32.forwardRef((_a, ref) => {
1789
1513
  });
1790
1514
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
1791
1515
 
1792
- // src/ui/alert.tsx
1793
- var React33 = __toESM(require("react"));
1794
- var import_class_variance_authority2 = require("class-variance-authority");
1795
- var import_jsx_runtime33 = require("react/jsx-runtime");
1796
- var alertVariants = (0, import_class_variance_authority2.cva)(
1797
- "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
1798
- {
1799
- variants: {
1800
- variant: {
1801
- default: "bg-background text-foreground",
1802
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
1803
- }
1804
- },
1805
- defaultVariants: {
1806
- variant: "default"
1807
- }
1808
- }
1809
- );
1810
- var Alert = React33.forwardRef((_a, ref) => {
1811
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
1812
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1813
- "div",
1814
- __spreadValues({
1516
+ // src/ui/dropdown-menu.tsx
1517
+ var React32 = __toESM(require("react"));
1518
+ var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
1519
+ var import_jsx_runtime32 = require("react/jsx-runtime");
1520
+ var DropdownMenu = DropdownMenuPrimitive.Root;
1521
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1522
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
1523
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
1524
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
1525
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
1526
+ var DropdownMenuSubTrigger = React32.forwardRef((_a, ref) => {
1527
+ var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
1528
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1529
+ DropdownMenuPrimitive.SubTrigger,
1530
+ __spreadProps(__spreadValues({
1815
1531
  ref,
1816
- role: "alert",
1817
- className: cn(alertVariants({ variant }), className)
1818
- }, props)
1532
+ className: cn(
1533
+ "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1534
+ inset && "pl-8",
1535
+ className
1536
+ )
1537
+ }, props), {
1538
+ children: [
1539
+ children,
1540
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(globalLucideIcons.ChevronRight, { className: "ml-auto" })
1541
+ ]
1542
+ })
1819
1543
  );
1820
1544
  });
1821
- Alert.displayName = "Alert";
1822
- var AlertTitle = React33.forwardRef((_a, ref) => {
1545
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1546
+ var DropdownMenuSubContent = React32.forwardRef((_a, ref) => {
1823
1547
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1824
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1825
- "h5",
1548
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1549
+ DropdownMenuPrimitive.SubContent,
1826
1550
  __spreadValues({
1827
1551
  ref,
1828
- className: cn("mb-1 font-medium leading-none tracking-tight", className)
1552
+ className: cn(
1553
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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",
1554
+ className
1555
+ )
1829
1556
  }, props)
1830
1557
  );
1831
1558
  });
1832
- AlertTitle.displayName = "AlertTitle";
1833
- var AlertDescription = React33.forwardRef((_a, ref) => {
1834
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1835
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1836
- "div",
1559
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1560
+ var DropdownMenuContent = React32.forwardRef((_a, ref) => {
1561
+ var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
1562
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1563
+ DropdownMenuPrimitive.Content,
1837
1564
  __spreadValues({
1838
1565
  ref,
1839
- className: cn("text-sm [&_p]:leading-relaxed", className)
1566
+ sideOffset,
1567
+ className: cn(
1568
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
1569
+ className
1570
+ )
1840
1571
  }, props)
1841
- );
1572
+ ) });
1842
1573
  });
1843
- AlertDescription.displayName = "AlertDescription";
1844
-
1845
- // src/ui/aspect-ratio.tsx
1846
- var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"));
1847
- var AspectRatio = AspectRatioPrimitive.Root;
1848
-
1849
- // src/ui/avatar.tsx
1850
- var React34 = __toESM(require("react"));
1851
- var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
1852
- var import_jsx_runtime34 = require("react/jsx-runtime");
1853
- var Avatar = React34.forwardRef((_a, ref) => {
1854
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1855
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1856
- AvatarPrimitive.Root,
1574
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1575
+ var DropdownMenuItem = React32.forwardRef((_a, ref) => {
1576
+ var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1577
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1578
+ DropdownMenuPrimitive.Item,
1857
1579
  __spreadValues({
1858
1580
  ref,
1859
1581
  className: cn(
1860
- "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
1582
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1583
+ inset && "pl-8",
1861
1584
  className
1862
1585
  )
1863
1586
  }, props)
1864
1587
  );
1865
1588
  });
1866
- Avatar.displayName = AvatarPrimitive.Root.displayName;
1867
- var AvatarImage = React34.forwardRef((_a, ref) => {
1868
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1869
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1870
- AvatarPrimitive.Image,
1871
- __spreadValues({
1589
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1590
+ var DropdownMenuCheckboxItem = React32.forwardRef((_a, ref) => {
1591
+ var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
1592
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1593
+ DropdownMenuPrimitive.CheckboxItem,
1594
+ __spreadProps(__spreadValues({
1872
1595
  ref,
1873
- className: cn("aspect-square h-full w-full", className)
1874
- }, props)
1596
+ className: cn(
1597
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1598
+ className
1599
+ ),
1600
+ checked
1601
+ }, props), {
1602
+ children: [
1603
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
1604
+ children
1605
+ ]
1606
+ })
1875
1607
  );
1876
1608
  });
1877
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1878
- var AvatarFallback = React34.forwardRef((_a, ref) => {
1879
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1880
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1881
- AvatarPrimitive.Fallback,
1882
- __spreadValues({
1609
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1610
+ var DropdownMenuRadioItem = React32.forwardRef((_a, ref) => {
1611
+ var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
1612
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
1613
+ DropdownMenuPrimitive.RadioItem,
1614
+ __spreadProps(__spreadValues({
1883
1615
  ref,
1884
1616
  className: cn(
1885
- "flex h-full w-full items-center justify-center rounded-full bg-muted",
1617
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1886
1618
  className
1887
1619
  )
1888
- }, props)
1620
+ }, props), {
1621
+ children: [
1622
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
1623
+ children
1624
+ ]
1625
+ })
1889
1626
  );
1890
1627
  });
1891
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1892
-
1893
- // src/ui/badge.tsx
1894
- var import_class_variance_authority3 = require("class-variance-authority");
1895
- var import_jsx_runtime35 = require("react/jsx-runtime");
1896
- var badgeVariants = (0, import_class_variance_authority3.cva)(
1897
- "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
1898
- {
1899
- variants: {
1900
- variant: {
1901
- default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
1902
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
1903
- destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
1904
- outline: "text-foreground"
1905
- }
1906
- },
1907
- defaultVariants: {
1908
- variant: "default"
1909
- }
1910
- }
1911
- );
1912
- function Badge(_a) {
1913
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
1914
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", __spreadValues({ className: cn(badgeVariants({ variant }), className) }, props));
1915
- }
1916
-
1917
- // src/ui/breadcrumb.tsx
1918
- var React35 = __toESM(require("react"));
1919
- var import_react_slot2 = require("@radix-ui/react-slot");
1920
- var import_jsx_runtime36 = require("react/jsx-runtime");
1921
- var Breadcrumb = React35.forwardRef((_a, ref) => {
1922
- var props = __objRest(_a, []);
1923
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("nav", __spreadValues({ ref, "aria-label": "breadcrumb" }, props));
1924
- });
1925
- Breadcrumb.displayName = "Breadcrumb";
1926
- var BreadcrumbList = React35.forwardRef((_a, ref) => {
1927
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1928
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1929
- "ol",
1628
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1629
+ var DropdownMenuLabel = React32.forwardRef((_a, ref) => {
1630
+ var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
1631
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1632
+ DropdownMenuPrimitive.Label,
1930
1633
  __spreadValues({
1931
1634
  ref,
1932
1635
  className: cn(
1933
- "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
1636
+ "px-2 py-1.5 text-sm font-semibold",
1637
+ inset && "pl-8",
1934
1638
  className
1935
1639
  )
1936
1640
  }, props)
1937
1641
  );
1938
1642
  });
1939
- BreadcrumbList.displayName = "BreadcrumbList";
1940
- var BreadcrumbItem = React35.forwardRef((_a, ref) => {
1941
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1942
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1943
- "li",
1944
- __spreadValues({
1945
- ref,
1946
- className: cn("inline-flex items-center gap-1.5", className)
1947
- }, props)
1948
- );
1949
- });
1950
- BreadcrumbItem.displayName = "BreadcrumbItem";
1951
- var BreadcrumbLink = React35.forwardRef((_a, ref) => {
1952
- var _b = _a, { asChild, className } = _b, props = __objRest(_b, ["asChild", "className"]);
1953
- const Comp = asChild ? import_react_slot2.Slot : "a";
1954
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1955
- Comp,
1956
- __spreadValues({
1957
- ref,
1958
- className: cn("transition-colors hover:text-foreground", className)
1959
- }, props)
1960
- );
1961
- });
1962
- BreadcrumbLink.displayName = "BreadcrumbLink";
1963
- var BreadcrumbPage = React35.forwardRef((_a, ref) => {
1643
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1644
+ var DropdownMenuSeparator = React32.forwardRef((_a, ref) => {
1964
1645
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
1965
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1966
- "span",
1646
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
1647
+ DropdownMenuPrimitive.Separator,
1967
1648
  __spreadValues({
1968
1649
  ref,
1969
- role: "link",
1970
- "aria-disabled": "true",
1971
- "aria-current": "page",
1972
- className: cn("font-normal text-foreground", className)
1650
+ className: cn("-mx-1 my-1 h-px bg-muted", className)
1973
1651
  }, props)
1974
1652
  );
1975
1653
  });
1976
- BreadcrumbPage.displayName = "BreadcrumbPage";
1977
- var BreadcrumbSeparator = (_a) => {
1978
- var _b = _a, {
1979
- children,
1980
- className
1981
- } = _b, props = __objRest(_b, [
1982
- "children",
1983
- "className"
1984
- ]);
1985
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
1986
- "li",
1987
- __spreadProps(__spreadValues({
1988
- role: "presentation",
1989
- "aria-hidden": "true",
1990
- className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className)
1991
- }, props), {
1992
- children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(globalLucideIcons.ChevronRight, {})
1993
- })
1994
- );
1995
- };
1996
- BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
1997
- var BreadcrumbEllipsis = (_a) => {
1654
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
1655
+ var DropdownMenuShortcut = (_a) => {
1998
1656
  var _b = _a, {
1999
1657
  className
2000
1658
  } = _b, props = __objRest(_b, [
2001
1659
  "className"
2002
1660
  ]);
2003
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
1661
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2004
1662
  "span",
2005
- __spreadProps(__spreadValues({
2006
- role: "presentation",
2007
- "aria-hidden": "true",
2008
- className: cn("flex h-9 w-9 items-center justify-center", className)
2009
- }, props), {
2010
- children: [
2011
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(globalLucideIcons.MoreHorizontal, { className: "h-4 w-4" }),
2012
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "sr-only", children: "More" })
2013
- ]
2014
- })
2015
- );
2016
- };
2017
- BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
2018
-
2019
- // src/ui/calendar.tsx
2020
- var import_react_day_picker = require("react-day-picker");
2021
- var import_jsx_runtime37 = require("react/jsx-runtime");
2022
- function Calendar(_a) {
2023
- var _b = _a, {
2024
- className,
2025
- classNames,
2026
- showOutsideDays = true
2027
- } = _b, props = __objRest(_b, [
2028
- "className",
2029
- "classNames",
2030
- "showOutsideDays"
2031
- ]);
2032
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2033
- import_react_day_picker.DayPicker,
2034
1663
  __spreadValues({
2035
- showOutsideDays,
2036
- className: cn("p-3", className),
2037
- classNames: __spreadValues({
2038
- months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
2039
- month: "space-y-4",
2040
- caption: "flex justify-center pt-1 relative items-center",
2041
- caption_label: "text-sm font-medium",
2042
- nav: "space-x-1 flex items-center",
2043
- nav_button: cn(
2044
- buttonVariants({ variant: "outline" }),
2045
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
2046
- ),
2047
- nav_button_previous: "absolute left-1",
2048
- nav_button_next: "absolute right-1",
2049
- table: "w-full border-collapse space-y-1",
2050
- head_row: "flex",
2051
- head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
2052
- row: "flex w-full mt-2",
2053
- cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
2054
- day: cn(
2055
- buttonVariants({ variant: "ghost" }),
2056
- "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
2057
- ),
2058
- day_range_end: "day-range-end",
2059
- day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
2060
- day_today: "bg-accent text-accent-foreground",
2061
- day_outside: "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
2062
- day_disabled: "text-muted-foreground opacity-50",
2063
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
2064
- day_hidden: "invisible"
2065
- }, classNames),
2066
- components: {
2067
- IconLeft: (_a2) => {
2068
- var _props = __objRest(_a2, []);
2069
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(globalLucideIcons.ChevronLeft, { className: "h-4 w-4" });
2070
- },
2071
- IconRight: (_b2) => {
2072
- var _props = __objRest(_b2, []);
2073
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(globalLucideIcons.ChevronRight, { className: "h-4 w-4" });
2074
- }
2075
- }
1664
+ className: cn("ml-auto text-xs tracking-widest opacity-60", className)
2076
1665
  }, props)
2077
1666
  );
2078
- }
2079
- Calendar.displayName = "Calendar";
1667
+ };
1668
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2080
1669
 
2081
- // src/ui/card.tsx
2082
- var React36 = __toESM(require("react"));
2083
- var import_jsx_runtime38 = require("react/jsx-runtime");
2084
- var Card = React36.forwardRef((_a, ref) => {
1670
+ // src/ui/label.tsx
1671
+ var React33 = __toESM(require("react"));
1672
+ var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
1673
+ var import_class_variance_authority2 = require("class-variance-authority");
1674
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1675
+ var labelVariants = (0, import_class_variance_authority2.cva)(
1676
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1677
+ );
1678
+ var Label2 = React33.forwardRef((_a, ref) => {
2085
1679
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2086
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2087
- "div",
1680
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1681
+ LabelPrimitive.Root,
2088
1682
  __spreadValues({
2089
1683
  ref,
2090
- className: cn(
2091
- "rounded-lg border bg-card text-card-foreground shadow-xs",
2092
- className
2093
- )
1684
+ className: cn(labelVariants(), className)
2094
1685
  }, props)
2095
1686
  );
2096
1687
  });
2097
- Card.displayName = "Card";
2098
- var CardHeader = React36.forwardRef((_a, ref) => {
2099
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2100
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2101
- "div",
2102
- __spreadValues({
2103
- ref,
2104
- className: cn("flex flex-col space-y-1.5 p-6", className)
2105
- }, props)
2106
- );
2107
- });
2108
- CardHeader.displayName = "CardHeader";
2109
- var CardTitle = React36.forwardRef((_a, ref) => {
2110
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2111
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2112
- "div",
2113
- __spreadValues({
2114
- ref,
2115
- className: cn(
2116
- "text-2xl font-semibold leading-none tracking-tight",
2117
- className
2118
- )
2119
- }, props)
2120
- );
2121
- });
2122
- CardTitle.displayName = "CardTitle";
2123
- var CardDescription = React36.forwardRef((_a, ref) => {
2124
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2125
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2126
- "div",
2127
- __spreadValues({
2128
- ref,
2129
- className: cn("text-sm text-muted-foreground", className)
2130
- }, props)
2131
- );
2132
- });
2133
- CardDescription.displayName = "CardDescription";
2134
- var CardContent = React36.forwardRef((_a, ref) => {
2135
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2136
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", __spreadValues({ ref, className: cn("p-6 pt-0", className) }, props));
2137
- });
2138
- CardContent.displayName = "CardContent";
2139
- var CardFooter = React36.forwardRef((_a, ref) => {
2140
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2141
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2142
- "div",
2143
- __spreadValues({
2144
- ref,
2145
- className: cn("flex items-center p-6 pt-0", className)
2146
- }, props)
2147
- );
2148
- });
2149
- CardFooter.displayName = "CardFooter";
2150
-
2151
- // src/ui/carousel.tsx
2152
- var React37 = __toESM(require("react"));
2153
- var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
2154
- var import_jsx_runtime39 = require("react/jsx-runtime");
2155
- var CarouselContext = React37.createContext(null);
2156
- function useCarousel() {
2157
- const context = React37.useContext(CarouselContext);
2158
- if (!context) {
2159
- throw new Error("useCarousel must be used within a <Carousel />");
2160
- }
2161
- return context;
2162
- }
2163
- var Carousel = React37.forwardRef(
2164
- (_a, ref) => {
2165
- var _b = _a, {
2166
- orientation = "horizontal",
2167
- opts,
2168
- setApi,
2169
- plugins,
2170
- className,
2171
- children
2172
- } = _b, props = __objRest(_b, [
2173
- "orientation",
2174
- "opts",
2175
- "setApi",
2176
- "plugins",
2177
- "className",
2178
- "children"
2179
- ]);
2180
- const [carouselRef, api] = (0, import_embla_carousel_react.default)(
2181
- __spreadProps(__spreadValues({}, opts), {
2182
- axis: orientation === "horizontal" ? "x" : "y"
2183
- }),
2184
- plugins
2185
- );
2186
- const [canScrollPrev, setCanScrollPrev] = React37.useState(false);
2187
- const [canScrollNext, setCanScrollNext] = React37.useState(false);
2188
- const onSelect = React37.useCallback((api2) => {
2189
- if (!api2) {
2190
- return;
2191
- }
2192
- setCanScrollPrev(api2.canScrollPrev());
2193
- setCanScrollNext(api2.canScrollNext());
2194
- }, []);
2195
- const scrollPrev = React37.useCallback(() => {
2196
- api == null ? void 0 : api.scrollPrev();
2197
- }, [api]);
2198
- const scrollNext = React37.useCallback(() => {
2199
- api == null ? void 0 : api.scrollNext();
2200
- }, [api]);
2201
- const handleKeyDown = React37.useCallback(
2202
- (event) => {
2203
- if (event.key === "ArrowLeft") {
2204
- event.preventDefault();
2205
- scrollPrev();
2206
- } else if (event.key === "ArrowRight") {
2207
- event.preventDefault();
2208
- scrollNext();
2209
- }
2210
- },
2211
- [scrollPrev, scrollNext]
2212
- );
2213
- React37.useEffect(() => {
2214
- if (!api || !setApi) {
2215
- return;
2216
- }
2217
- setApi(api);
2218
- }, [api, setApi]);
2219
- React37.useEffect(() => {
2220
- if (!api) {
2221
- return;
2222
- }
2223
- onSelect(api);
2224
- api.on("reInit", onSelect);
2225
- api.on("select", onSelect);
2226
- return () => {
2227
- api == null ? void 0 : api.off("select", onSelect);
2228
- };
2229
- }, [api, onSelect]);
2230
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2231
- CarouselContext.Provider,
2232
- {
2233
- value: {
2234
- carouselRef,
2235
- api,
2236
- opts,
2237
- orientation: orientation || ((opts == null ? void 0 : opts.axis) === "y" ? "vertical" : "horizontal"),
2238
- scrollPrev,
2239
- scrollNext,
2240
- canScrollPrev,
2241
- canScrollNext
2242
- },
2243
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2244
- "div",
2245
- __spreadProps(__spreadValues({
2246
- ref,
2247
- onKeyDownCapture: handleKeyDown,
2248
- className: cn("relative", className),
2249
- role: "region",
2250
- "aria-roledescription": "carousel"
2251
- }, props), {
2252
- children
2253
- })
2254
- )
2255
- }
2256
- );
2257
- }
2258
- );
2259
- Carousel.displayName = "Carousel";
2260
- var CarouselContent = React37.forwardRef((_a, ref) => {
2261
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2262
- const { carouselRef, orientation } = useCarousel();
2263
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2264
- "div",
2265
- __spreadValues({
2266
- ref,
2267
- className: cn(
2268
- "flex",
2269
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
2270
- className
2271
- )
2272
- }, props)
2273
- ) });
2274
- });
2275
- CarouselContent.displayName = "CarouselContent";
2276
- var CarouselItem = React37.forwardRef((_a, ref) => {
2277
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2278
- const { orientation } = useCarousel();
2279
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2280
- "div",
2281
- __spreadValues({
2282
- ref,
2283
- role: "group",
2284
- "aria-roledescription": "slide",
2285
- className: cn(
2286
- "min-w-0 shrink-0 grow-0 basis-full",
2287
- orientation === "horizontal" ? "pl-4" : "pt-4",
2288
- className
2289
- )
2290
- }, props)
2291
- );
2292
- });
2293
- CarouselItem.displayName = "CarouselItem";
2294
- var CarouselPrevious = React37.forwardRef((_a, ref) => {
2295
- var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
2296
- const { orientation, scrollPrev, canScrollPrev } = useCarousel();
2297
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2298
- Button,
2299
- __spreadProps(__spreadValues({
2300
- ref,
2301
- variant,
2302
- size,
2303
- className: cn(
2304
- "absolute h-8 w-8 rounded-full",
2305
- orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
2306
- className
2307
- ),
2308
- disabled: !canScrollPrev,
2309
- onClick: scrollPrev
2310
- }, props), {
2311
- children: [
2312
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(globalLucideIcons.ArrowLeft, { className: "h-4 w-4" }),
2313
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "sr-only", children: "Previous slide" })
2314
- ]
2315
- })
2316
- );
2317
- });
2318
- CarouselPrevious.displayName = "CarouselPrevious";
2319
- var CarouselNext = React37.forwardRef((_a, ref) => {
2320
- var _b = _a, { className, variant = "outline", size = "icon" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
2321
- const { orientation, scrollNext, canScrollNext } = useCarousel();
2322
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2323
- Button,
2324
- __spreadProps(__spreadValues({
2325
- ref,
2326
- variant,
2327
- size,
2328
- className: cn(
2329
- "absolute h-8 w-8 rounded-full",
2330
- orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
2331
- className
2332
- ),
2333
- disabled: !canScrollNext,
2334
- onClick: scrollNext
2335
- }, props), {
2336
- children: [
2337
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(globalLucideIcons.ArrowRight, { className: "h-4 w-4" }),
2338
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "sr-only", children: "Next slide" })
2339
- ]
2340
- })
2341
- );
2342
- });
2343
- CarouselNext.displayName = "CarouselNext";
2344
-
2345
- // src/ui/chart.tsx
2346
- var React38 = __toESM(require("react"));
2347
- var RechartsPrimitive = __toESM(require("recharts"));
2348
- var import_jsx_runtime40 = require("react/jsx-runtime");
2349
- var THEMES = { light: "", dark: ".dark" };
2350
- var ChartContext = React38.createContext(null);
2351
- function useChart() {
2352
- const context = React38.useContext(ChartContext);
2353
- if (!context) {
2354
- throw new Error("useChart must be used within a <ChartContainer />");
2355
- }
2356
- return context;
2357
- }
2358
- var ChartContainer = React38.forwardRef((_a, ref) => {
2359
- var _b = _a, { id, className, children, config } = _b, props = __objRest(_b, ["id", "className", "children", "config"]);
2360
- const uniqueId = React38.useId();
2361
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
2362
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2363
- "div",
2364
- __spreadProps(__spreadValues({
2365
- "data-chart": chartId,
2366
- ref,
2367
- className: cn(
2368
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden",
2369
- className
2370
- )
2371
- }, props), {
2372
- children: [
2373
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(ChartStyle, { id: chartId, config }),
2374
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
2375
- ]
2376
- })
2377
- ) });
2378
- });
2379
- ChartContainer.displayName = "Chart";
2380
- var ChartStyle = ({ id, config }) => {
2381
- const colorConfig = Object.entries(config).filter(
2382
- ([_, config2]) => config2.theme || config2.color
2383
- );
2384
- if (!colorConfig.length) {
2385
- return null;
2386
- }
2387
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2388
- "style",
2389
- {
2390
- dangerouslySetInnerHTML: {
2391
- __html: Object.entries(THEMES).map(
2392
- ([theme, prefix]) => `
2393
- ${prefix} [data-chart=${id}] {
2394
- ${colorConfig.map(([key, itemConfig]) => {
2395
- var _a;
2396
- const color = ((_a = itemConfig.theme) == null ? void 0 : _a[theme]) || itemConfig.color;
2397
- return color ? ` --color-${key}: ${color};` : null;
2398
- }).join("\n")}
2399
- }
2400
- `
2401
- ).join("\n")
2402
- }
2403
- }
2404
- );
2405
- };
2406
- var ChartTooltip = RechartsPrimitive.Tooltip;
2407
- var ChartTooltipContent = React38.forwardRef(
2408
- ({
2409
- active,
2410
- payload,
2411
- className,
2412
- indicator = "dot",
2413
- hideLabel = false,
2414
- hideIndicator = false,
2415
- label,
2416
- labelFormatter,
2417
- labelClassName,
2418
- formatter,
2419
- color,
2420
- nameKey,
2421
- labelKey
2422
- }, ref) => {
2423
- const { config } = useChart();
2424
- const tooltipLabel = React38.useMemo(() => {
2425
- var _a;
2426
- if (hideLabel || !(payload == null ? void 0 : payload.length)) {
2427
- return null;
2428
- }
2429
- const [item] = payload;
2430
- const key = `${labelKey || item.dataKey || item.name || "value"}`;
2431
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2432
- const value = !labelKey && typeof label === "string" ? ((_a = config[label]) == null ? void 0 : _a.label) || label : itemConfig == null ? void 0 : itemConfig.label;
2433
- if (labelFormatter) {
2434
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
2435
- }
2436
- if (!value) {
2437
- return null;
2438
- }
2439
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("font-medium", labelClassName), children: value });
2440
- }, [
2441
- label,
2442
- labelFormatter,
2443
- payload,
2444
- hideLabel,
2445
- labelClassName,
2446
- config,
2447
- labelKey
2448
- ]);
2449
- if (!active || !(payload == null ? void 0 : payload.length)) {
2450
- return null;
2451
- }
2452
- const nestLabel = payload.length === 1 && indicator !== "dot";
2453
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2454
- "div",
2455
- {
2456
- ref,
2457
- className: cn(
2458
- "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
2459
- className
2460
- ),
2461
- children: [
2462
- !nestLabel ? tooltipLabel : null,
2463
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
2464
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
2465
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2466
- const indicatorColor = color || item.payload.fill || item.color;
2467
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2468
- "div",
2469
- {
2470
- className: cn(
2471
- "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
2472
- indicator === "dot" && "items-center"
2473
- ),
2474
- children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2475
- (itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2476
- "div",
2477
- {
2478
- className: cn(
2479
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
2480
- {
2481
- "h-2.5 w-2.5": indicator === "dot",
2482
- "w-1": indicator === "line",
2483
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
2484
- "my-0.5": nestLabel && indicator === "dashed"
2485
- }
2486
- ),
2487
- style: {
2488
- "--color-bg": indicatorColor,
2489
- "--color-border": indicatorColor
2490
- }
2491
- }
2492
- ),
2493
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2494
- "div",
2495
- {
2496
- className: cn(
2497
- "flex flex-1 justify-between leading-none",
2498
- nestLabel ? "items-end" : "items-center"
2499
- ),
2500
- children: [
2501
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "grid gap-1.5", children: [
2502
- nestLabel ? tooltipLabel : null,
2503
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
2504
- ] }),
2505
- item.value && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
2506
- ]
2507
- }
2508
- )
2509
- ] })
2510
- },
2511
- item.dataKey
2512
- );
2513
- }) })
2514
- ]
2515
- }
2516
- );
2517
- }
2518
- );
2519
- ChartTooltipContent.displayName = "ChartTooltip";
2520
- var ChartLegend = RechartsPrimitive.Legend;
2521
- var ChartLegendContent = React38.forwardRef(
2522
- ({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
2523
- const { config } = useChart();
2524
- if (!(payload == null ? void 0 : payload.length)) {
2525
- return null;
2526
- }
2527
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2528
- "div",
2529
- {
2530
- ref,
2531
- className: cn(
2532
- "flex items-center justify-center gap-4",
2533
- verticalAlign === "top" ? "pb-3" : "pt-3",
2534
- className
2535
- ),
2536
- children: payload.map((item) => {
2537
- const key = `${nameKey || item.dataKey || "value"}`;
2538
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
2539
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2540
- "div",
2541
- {
2542
- className: cn(
2543
- "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
2544
- ),
2545
- children: [
2546
- (itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(itemConfig.icon, {}) : /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2547
- "div",
2548
- {
2549
- className: "h-2 w-2 shrink-0 rounded-[2px]",
2550
- style: {
2551
- backgroundColor: item.color
2552
- }
2553
- }
2554
- ),
2555
- itemConfig == null ? void 0 : itemConfig.label
2556
- ]
2557
- },
2558
- item.value
2559
- );
2560
- })
2561
- }
2562
- );
2563
- }
2564
- );
2565
- ChartLegendContent.displayName = "ChartLegend";
2566
- function getPayloadConfigFromPayload(config, payload, key) {
2567
- if (typeof payload !== "object" || payload === null) {
2568
- return void 0;
2569
- }
2570
- const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
2571
- let configLabelKey = key;
2572
- if (key in payload && typeof payload[key] === "string") {
2573
- configLabelKey = payload[key];
2574
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
2575
- configLabelKey = payloadPayload[key];
2576
- }
2577
- return configLabelKey in config ? config[configLabelKey] : config[key];
2578
- }
2579
-
2580
- // src/ui/checkbox.tsx
2581
- var React39 = __toESM(require("react"));
2582
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
2583
- var import_jsx_runtime41 = require("react/jsx-runtime");
2584
- var Checkbox = React39.forwardRef((_a, ref) => {
2585
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2586
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2587
- CheckboxPrimitive.Root,
2588
- __spreadProps(__spreadValues({
2589
- ref,
2590
- className: cn(
2591
- "peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
2592
- className
2593
- )
2594
- }, props), {
2595
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2596
- CheckboxPrimitive.Indicator,
2597
- {
2598
- className: cn("flex items-center justify-center text-current"),
2599
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" })
2600
- }
2601
- )
2602
- })
2603
- );
2604
- });
2605
- Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2606
-
2607
- // src/ui/collapsible.tsx
2608
- var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"));
2609
- var Collapsible = CollapsiblePrimitive.Root;
2610
- var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
2611
- var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
2612
-
2613
- // src/ui/command.tsx
2614
- var React41 = __toESM(require("react"));
2615
- var import_cmdk = require("cmdk");
2616
-
2617
- // src/ui/dialog.tsx
2618
- var React40 = __toESM(require("react"));
2619
- var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
2620
- var import_jsx_runtime42 = require("react/jsx-runtime");
2621
- var Dialog = DialogPrimitive.Root;
2622
- var DialogTrigger = DialogPrimitive.Trigger;
2623
- var DialogPortal = DialogPrimitive.Portal;
2624
- var DialogClose = DialogPrimitive.Close;
2625
- var DialogOverlay = React40.forwardRef((_a, ref) => {
2626
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2627
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2628
- DialogPrimitive.Overlay,
2629
- __spreadValues({
2630
- ref,
2631
- className: cn(
2632
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2633
- className
2634
- )
2635
- }, props)
2636
- );
2637
- });
2638
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
2639
- var DialogContent = React40.forwardRef((_a, ref) => {
2640
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2641
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(DialogPortal, { children: [
2642
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DialogOverlay, {}),
2643
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
2644
- DialogPrimitive.Content,
2645
- __spreadProps(__spreadValues({
2646
- ref,
2647
- className: cn(
2648
- "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%] sm:rounded-lg",
2649
- className
2650
- )
2651
- }, props), {
2652
- children: [
2653
- children,
2654
- /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
2655
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(globalLucideIcons.X, { className: "h-4 w-4" }),
2656
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "Close" })
2657
- ] })
2658
- ]
2659
- })
2660
- )
2661
- ] });
2662
- });
2663
- DialogContent.displayName = DialogPrimitive.Content.displayName;
2664
- var DialogHeader = (_a) => {
2665
- var _b = _a, {
2666
- className
2667
- } = _b, props = __objRest(_b, [
2668
- "className"
2669
- ]);
2670
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2671
- "div",
2672
- __spreadValues({
2673
- className: cn(
2674
- "flex flex-col space-y-1.5 text-center sm:text-left",
2675
- className
2676
- )
2677
- }, props)
2678
- );
2679
- };
2680
- DialogHeader.displayName = "DialogHeader";
2681
- var DialogFooter = (_a) => {
2682
- var _b = _a, {
2683
- className
2684
- } = _b, props = __objRest(_b, [
2685
- "className"
2686
- ]);
2687
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2688
- "div",
2689
- __spreadValues({
2690
- className: cn(
2691
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2692
- className
2693
- )
2694
- }, props)
2695
- );
2696
- };
2697
- DialogFooter.displayName = "DialogFooter";
2698
- var DialogTitle = React40.forwardRef((_a, ref) => {
2699
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2700
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2701
- DialogPrimitive.Title,
2702
- __spreadValues({
2703
- ref,
2704
- className: cn(
2705
- "text-lg font-semibold leading-none tracking-tight",
2706
- className
2707
- )
2708
- }, props)
2709
- );
2710
- });
2711
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
2712
- var DialogDescription = React40.forwardRef((_a, ref) => {
2713
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2714
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2715
- DialogPrimitive.Description,
2716
- __spreadValues({
2717
- ref,
2718
- className: cn("text-sm text-muted-foreground", className)
2719
- }, props)
2720
- );
2721
- });
2722
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
2723
-
2724
- // src/ui/command.tsx
2725
- var import_jsx_runtime43 = require("react/jsx-runtime");
2726
- var Command = React41.forwardRef((_a, ref) => {
2727
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2728
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2729
- import_cmdk.Command,
2730
- __spreadValues({
2731
- ref,
2732
- className: cn(
2733
- "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
2734
- className
2735
- )
2736
- }, props)
2737
- );
2738
- });
2739
- Command.displayName = import_cmdk.Command.displayName;
2740
- var CommandDialog = (_a) => {
2741
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
2742
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) }));
2743
- };
2744
- var CommandInput = React41.forwardRef((_a, ref) => {
2745
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2746
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
2747
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(globalLucideIcons.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
2748
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2749
- import_cmdk.Command.Input,
2750
- __spreadValues({
2751
- ref,
2752
- className: cn(
2753
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
2754
- className
2755
- )
2756
- }, props)
2757
- )
2758
- ] });
2759
- });
2760
- CommandInput.displayName = import_cmdk.Command.Input.displayName;
2761
- var CommandList = React41.forwardRef((_a, ref) => {
2762
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2763
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2764
- import_cmdk.Command.List,
2765
- __spreadValues({
2766
- ref,
2767
- className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)
2768
- }, props)
2769
- );
2770
- });
2771
- CommandList.displayName = import_cmdk.Command.List.displayName;
2772
- var CommandEmpty = React41.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2773
- import_cmdk.Command.Empty,
2774
- __spreadValues({
2775
- ref,
2776
- className: "py-6 text-center text-sm"
2777
- }, props)
2778
- ));
2779
- CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
2780
- var CommandGroup = React41.forwardRef((_a, ref) => {
2781
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2782
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2783
- import_cmdk.Command.Group,
2784
- __spreadValues({
2785
- ref,
2786
- className: cn(
2787
- "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
2788
- className
2789
- )
2790
- }, props)
2791
- );
2792
- });
2793
- CommandGroup.displayName = import_cmdk.Command.Group.displayName;
2794
- var CommandSeparator = React41.forwardRef((_a, ref) => {
2795
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2796
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2797
- import_cmdk.Command.Separator,
2798
- __spreadValues({
2799
- ref,
2800
- className: cn("-mx-1 h-px bg-border", className)
2801
- }, props)
2802
- );
2803
- });
2804
- CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
2805
- var CommandItem = React41.forwardRef((_a, ref) => {
2806
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2807
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2808
- import_cmdk.Command.Item,
2809
- __spreadValues({
2810
- ref,
2811
- className: cn(
2812
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2813
- className
2814
- )
2815
- }, props)
2816
- );
2817
- });
2818
- CommandItem.displayName = import_cmdk.Command.Item.displayName;
2819
- var CommandShortcut = (_a) => {
2820
- var _b = _a, {
2821
- className
2822
- } = _b, props = __objRest(_b, [
2823
- "className"
2824
- ]);
2825
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2826
- "span",
2827
- __spreadValues({
2828
- className: cn(
2829
- "ml-auto text-xs tracking-widest text-muted-foreground",
2830
- className
2831
- )
2832
- }, props)
2833
- );
2834
- };
2835
- CommandShortcut.displayName = "CommandShortcut";
2836
-
2837
- // src/ui/context-menu.tsx
2838
- var React42 = __toESM(require("react"));
2839
- var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"));
2840
- var import_jsx_runtime44 = require("react/jsx-runtime");
2841
- var ContextMenu = ContextMenuPrimitive.Root;
2842
- var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
2843
- var ContextMenuGroup = ContextMenuPrimitive.Group;
2844
- var ContextMenuPortal = ContextMenuPrimitive.Portal;
2845
- var ContextMenuSub = ContextMenuPrimitive.Sub;
2846
- var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
2847
- var ContextMenuSubTrigger = React42.forwardRef((_a, ref) => {
2848
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
2849
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2850
- ContextMenuPrimitive.SubTrigger,
2851
- __spreadProps(__spreadValues({
2852
- ref,
2853
- className: cn(
2854
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2855
- inset && "pl-8",
2856
- className
2857
- )
2858
- }, props), {
2859
- children: [
2860
- children,
2861
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.ChevronRight, { className: "ml-auto h-4 w-4" })
2862
- ]
2863
- })
2864
- );
2865
- });
2866
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
2867
- var ContextMenuSubContent = React42.forwardRef((_a, ref) => {
2868
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2869
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2870
- ContextMenuPrimitive.SubContent,
2871
- __spreadValues({
2872
- ref,
2873
- className: cn(
2874
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
2875
- className
2876
- )
2877
- }, props)
2878
- );
2879
- });
2880
- ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
2881
- var ContextMenuContent = React42.forwardRef((_a, ref) => {
2882
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2883
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2884
- ContextMenuPrimitive.Content,
2885
- __spreadValues({
2886
- ref,
2887
- className: cn(
2888
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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",
2889
- className
2890
- )
2891
- }, props)
2892
- ) });
2893
- });
2894
- ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
2895
- var ContextMenuItem = React42.forwardRef((_a, ref) => {
2896
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
2897
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2898
- ContextMenuPrimitive.Item,
2899
- __spreadValues({
2900
- ref,
2901
- className: cn(
2902
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2903
- inset && "pl-8",
2904
- className
2905
- )
2906
- }, props)
2907
- );
2908
- });
2909
- ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
2910
- var ContextMenuCheckboxItem = React42.forwardRef((_a, ref) => {
2911
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
2912
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2913
- ContextMenuPrimitive.CheckboxItem,
2914
- __spreadProps(__spreadValues({
2915
- ref,
2916
- className: cn(
2917
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2918
- className
2919
- ),
2920
- checked
2921
- }, props), {
2922
- children: [
2923
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
2924
- children
2925
- ]
2926
- })
2927
- );
2928
- });
2929
- ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
2930
- var ContextMenuRadioItem = React42.forwardRef((_a, ref) => {
2931
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
2932
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2933
- ContextMenuPrimitive.RadioItem,
2934
- __spreadProps(__spreadValues({
2935
- ref,
2936
- className: cn(
2937
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2938
- className
2939
- )
2940
- }, props), {
2941
- children: [
2942
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
2943
- children
2944
- ]
2945
- })
2946
- );
2947
- });
2948
- ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
2949
- var ContextMenuLabel = React42.forwardRef((_a, ref) => {
2950
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
2951
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2952
- ContextMenuPrimitive.Label,
2953
- __spreadValues({
2954
- ref,
2955
- className: cn(
2956
- "px-2 py-1.5 text-sm font-semibold text-foreground",
2957
- inset && "pl-8",
2958
- className
2959
- )
2960
- }, props)
2961
- );
2962
- });
2963
- ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
2964
- var ContextMenuSeparator = React42.forwardRef((_a, ref) => {
2965
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
2966
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2967
- ContextMenuPrimitive.Separator,
2968
- __spreadValues({
2969
- ref,
2970
- className: cn("-mx-1 my-1 h-px bg-border", className)
2971
- }, props)
2972
- );
2973
- });
2974
- ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
2975
- var ContextMenuShortcut = (_a) => {
2976
- var _b = _a, {
2977
- className
2978
- } = _b, props = __objRest(_b, [
2979
- "className"
2980
- ]);
2981
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2982
- "span",
2983
- __spreadValues({
2984
- className: cn(
2985
- "ml-auto text-xs tracking-widest text-muted-foreground",
2986
- className
2987
- )
2988
- }, props)
2989
- );
2990
- };
2991
- ContextMenuShortcut.displayName = "ContextMenuShortcut";
2992
-
2993
- // src/ui/drawer.tsx
2994
- var React43 = __toESM(require("react"));
2995
- var import_vaul = require("vaul");
2996
- var import_jsx_runtime45 = require("react/jsx-runtime");
2997
- var Drawer = (_a) => {
2998
- var _b = _a, {
2999
- shouldScaleBackground = true
3000
- } = _b, props = __objRest(_b, [
3001
- "shouldScaleBackground"
3002
- ]);
3003
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3004
- import_vaul.Drawer.Root,
3005
- __spreadValues({
3006
- shouldScaleBackground
3007
- }, props)
3008
- );
3009
- };
3010
- Drawer.displayName = "Drawer";
3011
- var DrawerTrigger = import_vaul.Drawer.Trigger;
3012
- var DrawerPortal = import_vaul.Drawer.Portal;
3013
- var DrawerClose = import_vaul.Drawer.Close;
3014
- var DrawerOverlay = React43.forwardRef((_a, ref) => {
3015
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3016
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3017
- import_vaul.Drawer.Overlay,
3018
- __spreadValues({
3019
- ref,
3020
- className: cn("fixed inset-0 z-50 bg-black/80", className)
3021
- }, props)
3022
- );
3023
- });
3024
- DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
3025
- var DrawerContent = React43.forwardRef((_a, ref) => {
3026
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3027
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DrawerPortal, { children: [
3028
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DrawerOverlay, {}),
3029
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3030
- import_vaul.Drawer.Content,
3031
- __spreadProps(__spreadValues({
3032
- ref,
3033
- className: cn(
3034
- "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
3035
- className
3036
- )
3037
- }, props), {
3038
- children: [
3039
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
3040
- children
3041
- ]
3042
- })
3043
- )
3044
- ] });
3045
- });
3046
- DrawerContent.displayName = "DrawerContent";
3047
- var DrawerHeader = (_a) => {
3048
- var _b = _a, {
3049
- className
3050
- } = _b, props = __objRest(_b, [
3051
- "className"
3052
- ]);
3053
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3054
- "div",
3055
- __spreadValues({
3056
- className: cn("grid gap-1.5 p-4 text-center sm:text-left", className)
3057
- }, props)
3058
- );
3059
- };
3060
- DrawerHeader.displayName = "DrawerHeader";
3061
- var DrawerFooter = (_a) => {
3062
- var _b = _a, {
3063
- className
3064
- } = _b, props = __objRest(_b, [
3065
- "className"
3066
- ]);
3067
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3068
- "div",
3069
- __spreadValues({
3070
- className: cn("mt-auto flex flex-col gap-2 p-4", className)
3071
- }, props)
3072
- );
3073
- };
3074
- DrawerFooter.displayName = "DrawerFooter";
3075
- var DrawerTitle = React43.forwardRef((_a, ref) => {
3076
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3077
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3078
- import_vaul.Drawer.Title,
3079
- __spreadValues({
3080
- ref,
3081
- className: cn(
3082
- "text-lg font-semibold leading-none tracking-tight",
3083
- className
3084
- )
3085
- }, props)
3086
- );
3087
- });
3088
- DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
3089
- var DrawerDescription = React43.forwardRef((_a, ref) => {
3090
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3091
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3092
- import_vaul.Drawer.Description,
3093
- __spreadValues({
3094
- ref,
3095
- className: cn("text-sm text-muted-foreground", className)
3096
- }, props)
3097
- );
3098
- });
3099
- DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
3100
-
3101
- // src/ui/dropdown-menu.tsx
3102
- var React44 = __toESM(require("react"));
3103
- var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
3104
- var import_jsx_runtime46 = require("react/jsx-runtime");
3105
- var DropdownMenu = DropdownMenuPrimitive.Root;
3106
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
3107
- var DropdownMenuGroup = DropdownMenuPrimitive.Group;
3108
- var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
3109
- var DropdownMenuSub = DropdownMenuPrimitive.Sub;
3110
- var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
3111
- var DropdownMenuSubTrigger = React44.forwardRef((_a, ref) => {
3112
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
3113
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3114
- DropdownMenuPrimitive.SubTrigger,
3115
- __spreadProps(__spreadValues({
3116
- ref,
3117
- className: cn(
3118
- "flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3119
- inset && "pl-8",
3120
- className
3121
- )
3122
- }, props), {
3123
- children: [
3124
- children,
3125
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(globalLucideIcons.ChevronRight, { className: "ml-auto" })
3126
- ]
3127
- })
3128
- );
3129
- });
3130
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3131
- var DropdownMenuSubContent = React44.forwardRef((_a, ref) => {
3132
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3133
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3134
- DropdownMenuPrimitive.SubContent,
3135
- __spreadValues({
3136
- ref,
3137
- className: cn(
3138
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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",
3139
- className
3140
- )
3141
- }, props)
3142
- );
3143
- });
3144
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3145
- var DropdownMenuContent = React44.forwardRef((_a, ref) => {
3146
- var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
3147
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3148
- DropdownMenuPrimitive.Content,
3149
- __spreadValues({
3150
- ref,
3151
- sideOffset,
3152
- className: cn(
3153
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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",
3154
- className
3155
- )
3156
- }, props)
3157
- ) });
3158
- });
3159
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3160
- var DropdownMenuItem = React44.forwardRef((_a, ref) => {
3161
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3162
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3163
- DropdownMenuPrimitive.Item,
3164
- __spreadValues({
3165
- ref,
3166
- className: cn(
3167
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3168
- inset && "pl-8",
3169
- className
3170
- )
3171
- }, props)
3172
- );
3173
- });
3174
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3175
- var DropdownMenuCheckboxItem = React44.forwardRef((_a, ref) => {
3176
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
3177
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3178
- DropdownMenuPrimitive.CheckboxItem,
3179
- __spreadProps(__spreadValues({
3180
- ref,
3181
- className: cn(
3182
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3183
- className
3184
- ),
3185
- checked
3186
- }, props), {
3187
- children: [
3188
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
3189
- children
3190
- ]
3191
- })
3192
- );
3193
- });
3194
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3195
- var DropdownMenuRadioItem = React44.forwardRef((_a, ref) => {
3196
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3197
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3198
- DropdownMenuPrimitive.RadioItem,
3199
- __spreadProps(__spreadValues({
3200
- ref,
3201
- className: cn(
3202
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3203
- className
3204
- )
3205
- }, props), {
3206
- children: [
3207
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
3208
- children
3209
- ]
3210
- })
3211
- );
3212
- });
3213
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3214
- var DropdownMenuLabel = React44.forwardRef((_a, ref) => {
3215
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3216
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3217
- DropdownMenuPrimitive.Label,
3218
- __spreadValues({
3219
- ref,
3220
- className: cn(
3221
- "px-2 py-1.5 text-sm font-semibold",
3222
- inset && "pl-8",
3223
- className
3224
- )
3225
- }, props)
3226
- );
3227
- });
3228
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3229
- var DropdownMenuSeparator = React44.forwardRef((_a, ref) => {
3230
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3231
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3232
- DropdownMenuPrimitive.Separator,
3233
- __spreadValues({
3234
- ref,
3235
- className: cn("-mx-1 my-1 h-px bg-muted", className)
3236
- }, props)
3237
- );
3238
- });
3239
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
3240
- var DropdownMenuShortcut = (_a) => {
3241
- var _b = _a, {
3242
- className
3243
- } = _b, props = __objRest(_b, [
3244
- "className"
3245
- ]);
3246
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3247
- "span",
3248
- __spreadValues({
3249
- className: cn("ml-auto text-xs tracking-widest opacity-60", className)
3250
- }, props)
3251
- );
3252
- };
3253
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
3254
-
3255
- // src/ui/form.tsx
3256
- var React46 = __toESM(require("react"));
3257
- var import_react_slot3 = require("@radix-ui/react-slot");
3258
- var import_react_hook_form = require("react-hook-form");
3259
-
3260
- // src/ui/label.tsx
3261
- var React45 = __toESM(require("react"));
3262
- var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
3263
- var import_class_variance_authority4 = require("class-variance-authority");
3264
- var import_jsx_runtime47 = require("react/jsx-runtime");
3265
- var labelVariants = (0, import_class_variance_authority4.cva)(
3266
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
3267
- );
3268
- var Label3 = React45.forwardRef((_a, ref) => {
3269
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3270
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3271
- LabelPrimitive.Root,
3272
- __spreadValues({
3273
- ref,
3274
- className: cn(labelVariants(), className)
3275
- }, props)
3276
- );
3277
- });
3278
- Label3.displayName = LabelPrimitive.Root.displayName;
3279
-
3280
- // src/ui/form.tsx
3281
- var import_jsx_runtime48 = require("react/jsx-runtime");
3282
- var Form = import_react_hook_form.FormProvider;
3283
- var FormFieldContext = React46.createContext(
3284
- {}
3285
- );
3286
- var FormField = (_a) => {
3287
- var props = __objRest(_a, []);
3288
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_react_hook_form.Controller, __spreadValues({}, props)) });
3289
- };
3290
- var useFormField = () => {
3291
- const fieldContext = React46.useContext(FormFieldContext);
3292
- const itemContext = React46.useContext(FormItemContext);
3293
- const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
3294
- const fieldState = getFieldState(fieldContext.name, formState);
3295
- if (!fieldContext) {
3296
- throw new Error("useFormField should be used within <FormField>");
3297
- }
3298
- const { id } = itemContext;
3299
- return __spreadValues({
3300
- id,
3301
- name: fieldContext.name,
3302
- formItemId: `${id}-form-item`,
3303
- formDescriptionId: `${id}-form-item-description`,
3304
- formMessageId: `${id}-form-item-message`
3305
- }, fieldState);
3306
- };
3307
- var FormItemContext = React46.createContext(
3308
- {}
3309
- );
3310
- var FormItem = React46.forwardRef((_a, ref) => {
3311
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3312
- const id = React46.useId();
3313
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", __spreadValues({ ref, className: cn("space-y-2", className) }, props)) });
3314
- });
3315
- FormItem.displayName = "FormItem";
3316
- var FormLabel = React46.forwardRef((_a, ref) => {
3317
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3318
- const { error, formItemId } = useFormField();
3319
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3320
- Label3,
3321
- __spreadValues({
3322
- ref,
3323
- className: cn(error && "text-destructive", className),
3324
- htmlFor: formItemId
3325
- }, props)
3326
- );
3327
- });
3328
- FormLabel.displayName = "FormLabel";
3329
- var FormControl = React46.forwardRef((_a, ref) => {
3330
- var props = __objRest(_a, []);
3331
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
3332
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3333
- import_react_slot3.Slot,
3334
- __spreadValues({
3335
- ref,
3336
- id: formItemId,
3337
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
3338
- "aria-invalid": !!error
3339
- }, props)
3340
- );
3341
- });
3342
- FormControl.displayName = "FormControl";
3343
- var FormDescription = React46.forwardRef((_a, ref) => {
3344
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3345
- const { formDescriptionId } = useFormField();
3346
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3347
- "p",
3348
- __spreadValues({
3349
- ref,
3350
- id: formDescriptionId,
3351
- className: cn("text-sm text-muted-foreground", className)
3352
- }, props)
3353
- );
3354
- });
3355
- FormDescription.displayName = "FormDescription";
3356
- var FormMessage = React46.forwardRef((_a, ref) => {
3357
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3358
- const { error, formMessageId } = useFormField();
3359
- const body = error ? String(error == null ? void 0 : error.message) : children;
3360
- if (!body) {
3361
- return null;
3362
- }
3363
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3364
- "p",
3365
- __spreadProps(__spreadValues({
3366
- ref,
3367
- id: formMessageId,
3368
- className: cn("text-sm font-medium text-destructive", className)
3369
- }, props), {
3370
- children: body
3371
- })
3372
- );
3373
- });
3374
- FormMessage.displayName = "FormMessage";
3375
-
3376
- // src/ui/hover-card.tsx
3377
- var React47 = __toESM(require("react"));
3378
- var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"));
3379
- var import_jsx_runtime49 = require("react/jsx-runtime");
3380
- var HoverCard = HoverCardPrimitive.Root;
3381
- var HoverCardTrigger = HoverCardPrimitive.Trigger;
3382
- var HoverCardContent = React47.forwardRef((_a, ref) => {
3383
- var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
3384
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3385
- HoverCardPrimitive.Content,
3386
- __spreadValues({
3387
- ref,
3388
- align,
3389
- sideOffset,
3390
- className: cn(
3391
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
3392
- className
3393
- )
3394
- }, props)
3395
- );
3396
- });
3397
- HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3398
-
3399
- // src/ui/input-otp.tsx
3400
- var React48 = __toESM(require("react"));
3401
- var import_input_otp = require("input-otp");
3402
- var import_jsx_runtime50 = require("react/jsx-runtime");
3403
- var InputOTP = React48.forwardRef((_a, ref) => {
3404
- var _b = _a, { className, containerClassName } = _b, props = __objRest(_b, ["className", "containerClassName"]);
3405
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3406
- import_input_otp.OTPInput,
3407
- __spreadValues({
3408
- ref,
3409
- containerClassName: cn(
3410
- "flex items-center gap-2 has-disabled:opacity-50",
3411
- containerClassName
3412
- ),
3413
- className: cn("disabled:cursor-not-allowed", className)
3414
- }, props)
3415
- );
3416
- });
3417
- InputOTP.displayName = "InputOTP";
3418
- var InputOTPGroup = React48.forwardRef((_a, ref) => {
3419
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3420
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", __spreadValues({ ref, className: cn("flex items-center", className) }, props));
3421
- });
3422
- InputOTPGroup.displayName = "InputOTPGroup";
3423
- var InputOTPSlot = React48.forwardRef((_a, ref) => {
3424
- var _b = _a, { index, className } = _b, props = __objRest(_b, ["index", "className"]);
3425
- const inputOTPContext = React48.useContext(import_input_otp.OTPInputContext);
3426
- const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
3427
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
3428
- "div",
3429
- __spreadProps(__spreadValues({
3430
- ref,
3431
- className: cn(
3432
- "relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
3433
- isActive && "z-10 ring-2 ring-ring ring-offset-background",
3434
- className
3435
- )
3436
- }, props), {
3437
- children: [
3438
- char,
3439
- hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
3440
- ]
3441
- })
3442
- );
3443
- });
3444
- InputOTPSlot.displayName = "InputOTPSlot";
3445
- var InputOTPSeparator = React48.forwardRef((_a, ref) => {
3446
- var props = __objRest(_a, []);
3447
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", __spreadProps(__spreadValues({ ref, role: "separator" }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(globalLucideIcons.Dot, {}) }));
3448
- });
3449
- InputOTPSeparator.displayName = "InputOTPSeparator";
3450
-
3451
- // src/ui/input.tsx
3452
- var React49 = __toESM(require("react"));
3453
- var import_jsx_runtime51 = require("react/jsx-runtime");
3454
- var Input = React49.forwardRef(
3455
- (_a, ref) => {
3456
- var _b = _a, { className, type } = _b, props = __objRest(_b, ["className", "type"]);
3457
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3458
- "input",
3459
- __spreadValues({
3460
- type,
3461
- className: cn(
3462
- "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3463
- className
3464
- ),
3465
- ref
3466
- }, props)
3467
- );
3468
- }
3469
- );
3470
- Input.displayName = "Input";
3471
-
3472
- // src/ui/language-button.tsx
3473
- var React50 = __toESM(require("react"));
3474
- var import_jsx_runtime52 = require("react/jsx-runtime");
3475
- var LanguageButton = React50.forwardRef(
3476
- (_a, ref) => {
3477
- var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
3478
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3479
- "button",
3480
- __spreadValues({
3481
- className: cn(
3482
- "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background",
3483
- {
3484
- "bg-primary text-primary-foreground hover:bg-primary/90": variant === "default",
3485
- "hover:bg-accent hover:text-accent-foreground": variant === "ghost",
3486
- "h-10 px-4 py-2": size === "default",
3487
- "h-9 px-3": size === "sm",
3488
- "h-11 px-8": size === "lg",
3489
- "h-10 w-10": size === "icon"
3490
- },
3491
- className
3492
- ),
3493
- ref
3494
- }, props)
3495
- );
3496
- }
3497
- );
3498
- LanguageButton.displayName = "Button";
3499
-
3500
- // src/ui/menubar.tsx
3501
- var React51 = __toESM(require("react"));
3502
- var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"));
3503
- var import_jsx_runtime53 = require("react/jsx-runtime");
3504
- var MenubarMenu = MenubarPrimitive.Menu;
3505
- var MenubarGroup = MenubarPrimitive.Group;
3506
- var MenubarPortal = MenubarPrimitive.Portal;
3507
- var MenubarSub = MenubarPrimitive.Sub;
3508
- var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
3509
- var Menubar = React51.forwardRef((_a, ref) => {
3510
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3511
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3512
- MenubarPrimitive.Root,
3513
- __spreadValues({
3514
- ref,
3515
- className: cn(
3516
- "flex h-10 items-center space-x-1 rounded-md border bg-background p-1",
3517
- className
3518
- )
3519
- }, props)
3520
- );
3521
- });
3522
- Menubar.displayName = MenubarPrimitive.Root.displayName;
3523
- var MenubarTrigger = React51.forwardRef((_a, ref) => {
3524
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3525
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3526
- MenubarPrimitive.Trigger,
3527
- __spreadValues({
3528
- ref,
3529
- className: cn(
3530
- "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
3531
- className
3532
- )
3533
- }, props)
3534
- );
3535
- });
3536
- MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
3537
- var MenubarSubTrigger = React51.forwardRef((_a, ref) => {
3538
- var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
3539
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
3540
- MenubarPrimitive.SubTrigger,
3541
- __spreadProps(__spreadValues({
3542
- ref,
3543
- className: cn(
3544
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
3545
- inset && "pl-8",
3546
- className
3547
- )
3548
- }, props), {
3549
- children: [
3550
- children,
3551
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(globalLucideIcons.ChevronRight, { className: "ml-auto h-4 w-4" })
3552
- ]
3553
- })
3554
- );
3555
- });
3556
- MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
3557
- var MenubarSubContent = React51.forwardRef((_a, ref) => {
3558
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3559
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3560
- MenubarPrimitive.SubContent,
3561
- __spreadValues({
3562
- ref,
3563
- className: cn(
3564
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3565
- className
3566
- )
3567
- }, props)
3568
- );
3569
- });
3570
- MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
3571
- var MenubarContent = React51.forwardRef(
3572
- (_a, ref) => {
3573
- var _b = _a, { className, align = "start", alignOffset = -4, sideOffset = 8 } = _b, props = __objRest(_b, ["className", "align", "alignOffset", "sideOffset"]);
3574
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3575
- MenubarPrimitive.Content,
3576
- __spreadValues({
3577
- ref,
3578
- align,
3579
- alignOffset,
3580
- sideOffset,
3581
- className: cn(
3582
- "z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
3583
- className
3584
- )
3585
- }, props)
3586
- ) });
3587
- }
3588
- );
3589
- MenubarContent.displayName = MenubarPrimitive.Content.displayName;
3590
- var MenubarItem = React51.forwardRef((_a, ref) => {
3591
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3592
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3593
- MenubarPrimitive.Item,
3594
- __spreadValues({
3595
- ref,
3596
- className: cn(
3597
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3598
- inset && "pl-8",
3599
- className
3600
- )
3601
- }, props)
3602
- );
3603
- });
3604
- MenubarItem.displayName = MenubarPrimitive.Item.displayName;
3605
- var MenubarCheckboxItem = React51.forwardRef((_a, ref) => {
3606
- var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
3607
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
3608
- MenubarPrimitive.CheckboxItem,
3609
- __spreadProps(__spreadValues({
3610
- ref,
3611
- className: cn(
3612
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3613
- className
3614
- ),
3615
- checked
3616
- }, props), {
3617
- children: [
3618
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
3619
- children
3620
- ]
3621
- })
3622
- );
3623
- });
3624
- MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
3625
- var MenubarRadioItem = React51.forwardRef((_a, ref) => {
3626
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3627
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
3628
- MenubarPrimitive.RadioItem,
3629
- __spreadProps(__spreadValues({
3630
- ref,
3631
- className: cn(
3632
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
3633
- className
3634
- )
3635
- }, props), {
3636
- children: [
3637
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(globalLucideIcons.Circle, { className: "h-2 w-2 fill-current" }) }) }),
3638
- children
3639
- ]
3640
- })
3641
- );
3642
- });
3643
- MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
3644
- var MenubarLabel = React51.forwardRef((_a, ref) => {
3645
- var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
3646
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3647
- MenubarPrimitive.Label,
3648
- __spreadValues({
3649
- ref,
3650
- className: cn(
3651
- "px-2 py-1.5 text-sm font-semibold",
3652
- inset && "pl-8",
3653
- className
3654
- )
3655
- }, props)
3656
- );
3657
- });
3658
- MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
3659
- var MenubarSeparator = React51.forwardRef((_a, ref) => {
3660
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3661
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3662
- MenubarPrimitive.Separator,
3663
- __spreadValues({
3664
- ref,
3665
- className: cn("-mx-1 my-1 h-px bg-muted", className)
3666
- }, props)
3667
- );
3668
- });
3669
- MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
3670
- var MenubarShortcut = (_a) => {
3671
- var _b = _a, {
3672
- className
3673
- } = _b, props = __objRest(_b, [
3674
- "className"
3675
- ]);
3676
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3677
- "span",
3678
- __spreadValues({
3679
- className: cn(
3680
- "ml-auto text-xs tracking-widest text-muted-foreground",
3681
- className
3682
- )
3683
- }, props)
3684
- );
3685
- };
3686
- MenubarShortcut.displayName = "MenubarShortcut";
3687
-
3688
- // src/ui/navigation-menu.tsx
3689
- var React52 = __toESM(require("react"));
3690
- var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"));
3691
- var import_class_variance_authority5 = require("class-variance-authority");
3692
- var import_jsx_runtime54 = require("react/jsx-runtime");
3693
- var NavigationMenu = React52.forwardRef((_a, ref) => {
3694
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3695
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
3696
- NavigationMenuPrimitive.Root,
3697
- __spreadProps(__spreadValues({
3698
- ref,
3699
- className: cn(
3700
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
3701
- className
3702
- )
3703
- }, props), {
3704
- children: [
3705
- children,
3706
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(NavigationMenuViewport, {})
3707
- ]
3708
- })
3709
- );
3710
- });
3711
- NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
3712
- var NavigationMenuList = React52.forwardRef((_a, ref) => {
3713
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3714
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3715
- NavigationMenuPrimitive.List,
3716
- __spreadValues({
3717
- ref,
3718
- className: cn(
3719
- "group flex flex-1 list-none items-center justify-center space-x-1",
3720
- className
3721
- )
3722
- }, props)
3723
- );
3724
- });
3725
- NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
3726
- var NavigationMenuItem = NavigationMenuPrimitive.Item;
3727
- var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)(
3728
- "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50"
3729
- );
3730
- var NavigationMenuTrigger = React52.forwardRef((_a, ref) => {
3731
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
3732
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
3733
- NavigationMenuPrimitive.Trigger,
3734
- __spreadProps(__spreadValues({
3735
- ref,
3736
- className: cn(navigationMenuTriggerStyle(), "group", className)
3737
- }, props), {
3738
- children: [
3739
- children,
3740
- " ",
3741
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3742
- globalLucideIcons.ChevronDown,
3743
- {
3744
- className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
3745
- "aria-hidden": "true"
3746
- }
3747
- )
3748
- ]
3749
- })
3750
- );
3751
- });
3752
- NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
3753
- var NavigationMenuContent = React52.forwardRef((_a, ref) => {
3754
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3755
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3756
- NavigationMenuPrimitive.Content,
3757
- __spreadValues({
3758
- ref,
3759
- className: cn(
3760
- "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
3761
- className
3762
- )
3763
- }, props)
3764
- );
3765
- });
3766
- NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
3767
- var NavigationMenuLink = NavigationMenuPrimitive.Link;
3768
- var NavigationMenuViewport = React52.forwardRef((_a, ref) => {
3769
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3770
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3771
- NavigationMenuPrimitive.Viewport,
3772
- __spreadValues({
3773
- className: cn(
3774
- "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
3775
- className
3776
- ),
3777
- ref
3778
- }, props)
3779
- ) });
3780
- });
3781
- NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
3782
- var NavigationMenuIndicator = React52.forwardRef((_a, ref) => {
3783
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3784
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3785
- NavigationMenuPrimitive.Indicator,
3786
- __spreadProps(__spreadValues({
3787
- ref,
3788
- className: cn(
3789
- "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
3790
- className
3791
- )
3792
- }, props), {
3793
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
3794
- })
3795
- );
3796
- });
3797
- NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
3798
-
3799
- // src/ui/pagination.tsx
3800
- var React53 = __toESM(require("react"));
3801
- var import_jsx_runtime55 = require("react/jsx-runtime");
3802
- var Pagination = (_a) => {
3803
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3804
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3805
- "nav",
3806
- __spreadValues({
3807
- role: "navigation",
3808
- "aria-label": "pagination",
3809
- className: cn("mx-auto flex w-full justify-center", className)
3810
- }, props)
3811
- );
3812
- };
3813
- Pagination.displayName = "Pagination";
3814
- var PaginationContent = React53.forwardRef((_a, ref) => {
3815
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3816
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3817
- "ul",
3818
- __spreadValues({
3819
- ref,
3820
- className: cn("flex flex-row items-center gap-1", className)
3821
- }, props)
3822
- );
3823
- });
3824
- PaginationContent.displayName = "PaginationContent";
3825
- var PaginationItem = React53.forwardRef((_a, ref) => {
3826
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3827
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("li", __spreadValues({ ref, className: cn("", className) }, props));
3828
- });
3829
- PaginationItem.displayName = "PaginationItem";
3830
- var PaginationLink = (_a) => {
3831
- var _b = _a, {
3832
- className,
3833
- isActive,
3834
- size = "icon"
3835
- } = _b, props = __objRest(_b, [
3836
- "className",
3837
- "isActive",
3838
- "size"
3839
- ]);
3840
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3841
- "a",
3842
- __spreadValues({
3843
- "aria-current": isActive ? "page" : void 0,
3844
- className: cn(
3845
- buttonVariants({
3846
- variant: isActive ? "outline" : "ghost",
3847
- size
3848
- }),
3849
- className
3850
- )
3851
- }, props)
3852
- );
3853
- };
3854
- PaginationLink.displayName = "PaginationLink";
3855
- var PaginationPrevious = (_a) => {
3856
- var _b = _a, {
3857
- className
3858
- } = _b, props = __objRest(_b, [
3859
- "className"
3860
- ]);
3861
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
3862
- PaginationLink,
3863
- __spreadProps(__spreadValues({
3864
- "aria-label": "Go to previous page",
3865
- size: "default",
3866
- className: cn("gap-1 pl-2.5", className)
3867
- }, props), {
3868
- children: [
3869
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(globalLucideIcons.ChevronLeft, { className: "h-4 w-4" }),
3870
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "Previous" })
3871
- ]
3872
- })
3873
- );
3874
- };
3875
- PaginationPrevious.displayName = "PaginationPrevious";
3876
- var PaginationNext = (_a) => {
3877
- var _b = _a, {
3878
- className
3879
- } = _b, props = __objRest(_b, [
3880
- "className"
3881
- ]);
3882
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
3883
- PaginationLink,
3884
- __spreadProps(__spreadValues({
3885
- "aria-label": "Go to next page",
3886
- size: "default",
3887
- className: cn("gap-1 pr-2.5", className)
3888
- }, props), {
3889
- children: [
3890
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { children: "Next" }),
3891
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(globalLucideIcons.ChevronRight, { className: "h-4 w-4" })
3892
- ]
3893
- })
3894
- );
3895
- };
3896
- PaginationNext.displayName = "PaginationNext";
3897
- var PaginationEllipsis = (_a) => {
3898
- var _b = _a, {
3899
- className
3900
- } = _b, props = __objRest(_b, [
3901
- "className"
3902
- ]);
3903
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
3904
- "span",
3905
- __spreadProps(__spreadValues({
3906
- "aria-hidden": true,
3907
- className: cn("flex h-9 w-9 items-center justify-center", className)
3908
- }, props), {
3909
- children: [
3910
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(globalLucideIcons.MoreHorizontal, { className: "h-4 w-4" }),
3911
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "sr-only", children: "More pages" })
3912
- ]
3913
- })
3914
- );
3915
- };
3916
- PaginationEllipsis.displayName = "PaginationEllipsis";
3917
-
3918
- // src/ui/popover.tsx
3919
- var React54 = __toESM(require("react"));
3920
- var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
3921
- var import_jsx_runtime56 = require("react/jsx-runtime");
3922
- var Popover = PopoverPrimitive.Root;
3923
- var PopoverTrigger = PopoverPrimitive.Trigger;
3924
- var PopoverContent = React54.forwardRef((_a, ref) => {
3925
- var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
3926
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3927
- PopoverPrimitive.Content,
3928
- __spreadValues({
3929
- ref,
3930
- align,
3931
- sideOffset,
3932
- className: cn(
3933
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden 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",
3934
- className
3935
- )
3936
- }, props)
3937
- ) });
3938
- });
3939
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3940
-
3941
- // src/ui/progress.tsx
3942
- var React55 = __toESM(require("react"));
3943
- var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
3944
- var import_jsx_runtime57 = require("react/jsx-runtime");
3945
- var Progress = React55.forwardRef((_a, ref) => {
3946
- var _b = _a, { className, value } = _b, props = __objRest(_b, ["className", "value"]);
3947
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3948
- ProgressPrimitive.Root,
3949
- __spreadProps(__spreadValues({
3950
- ref,
3951
- className: cn(
3952
- "relative h-4 w-full overflow-hidden rounded-full bg-secondary",
3953
- className
3954
- )
3955
- }, props), {
3956
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3957
- ProgressPrimitive.Indicator,
3958
- {
3959
- className: "h-full w-full flex-1 bg-primary transition-all",
3960
- style: { transform: `translateX(-${100 - (value || 0)}%)` }
3961
- }
3962
- )
3963
- })
3964
- );
3965
- });
3966
- Progress.displayName = ProgressPrimitive.Root.displayName;
3967
-
3968
- // src/ui/radio-group.tsx
3969
- var React56 = __toESM(require("react"));
3970
- var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"));
3971
- var import_jsx_runtime58 = require("react/jsx-runtime");
3972
- var RadioGroup4 = React56.forwardRef((_a, ref) => {
3973
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3974
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3975
- RadioGroupPrimitive.Root,
3976
- __spreadProps(__spreadValues({
3977
- className: cn("grid gap-2", className)
3978
- }, props), {
3979
- ref
3980
- })
3981
- );
3982
- });
3983
- RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
3984
- var RadioGroupItem = React56.forwardRef((_a, ref) => {
3985
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
3986
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
3987
- RadioGroupPrimitive.Item,
3988
- __spreadProps(__spreadValues({
3989
- ref,
3990
- className: cn(
3991
- "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
3992
- className
3993
- )
3994
- }, props), {
3995
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(globalLucideIcons.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
3996
- })
3997
- );
3998
- });
3999
- RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
4000
-
4001
- // src/ui/resizable.tsx
4002
- var ResizablePrimitive = __toESM(require("react-resizable-panels"));
4003
- var import_jsx_runtime59 = require("react/jsx-runtime");
4004
- var ResizablePanelGroup = (_a) => {
4005
- var _b = _a, {
4006
- className
4007
- } = _b, props = __objRest(_b, [
4008
- "className"
4009
- ]);
4010
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4011
- ResizablePrimitive.PanelGroup,
4012
- __spreadValues({
4013
- className: cn(
4014
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
4015
- className
4016
- )
4017
- }, props)
4018
- );
4019
- };
4020
- var ResizablePanel = ResizablePrimitive.Panel;
4021
- var ResizableHandle = (_a) => {
4022
- var _b = _a, {
4023
- withHandle,
4024
- className
4025
- } = _b, props = __objRest(_b, [
4026
- "withHandle",
4027
- "className"
4028
- ]);
4029
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4030
- ResizablePrimitive.PanelResizeHandle,
4031
- __spreadProps(__spreadValues({
4032
- className: cn(
4033
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
4034
- className
4035
- )
4036
- }, props), {
4037
- children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(globalLucideIcons.GripVertical, { className: "h-2.5 w-2.5" }) })
4038
- })
4039
- );
4040
- };
4041
-
4042
- // src/ui/scroll-area.tsx
4043
- var React57 = __toESM(require("react"));
4044
- var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"));
4045
- var import_jsx_runtime60 = require("react/jsx-runtime");
4046
- var ScrollArea = React57.forwardRef((_a, ref) => {
4047
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
4048
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
4049
- ScrollAreaPrimitive.Root,
4050
- __spreadProps(__spreadValues({
4051
- ref,
4052
- className: cn("relative overflow-hidden", className)
4053
- }, props), {
4054
- children: [
4055
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
4056
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ScrollBar, {}),
4057
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ScrollAreaPrimitive.Corner, {})
4058
- ]
4059
- })
4060
- );
4061
- });
4062
- ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
4063
- var ScrollBar = React57.forwardRef((_a, ref) => {
4064
- var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
4065
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
4066
- ScrollAreaPrimitive.ScrollAreaScrollbar,
4067
- __spreadProps(__spreadValues({
4068
- ref,
4069
- orientation,
4070
- className: cn(
4071
- "flex touch-none select-none transition-colors",
4072
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
4073
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
4074
- className
4075
- )
4076
- }, props), {
4077
- children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
4078
- })
4079
- );
4080
- });
4081
- ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
4082
-
4083
- // src/ui/select.tsx
4084
- var React58 = __toESM(require("react"));
4085
- var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
4086
- var import_jsx_runtime61 = require("react/jsx-runtime");
4087
- var Select = SelectPrimitive.Root;
4088
- var SelectGroup = SelectPrimitive.Group;
4089
- var SelectValue = SelectPrimitive.Value;
4090
- var SelectTrigger = React58.forwardRef((_a, ref) => {
4091
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
4092
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
4093
- SelectPrimitive.Trigger,
4094
- __spreadProps(__spreadValues({
4095
- ref,
4096
- className: cn(
4097
- "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
4098
- className
4099
- )
4100
- }, props), {
4101
- children: [
4102
- children,
4103
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(globalLucideIcons.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
4104
- ]
4105
- })
4106
- );
4107
- });
4108
- SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
4109
- var SelectScrollUpButton = React58.forwardRef((_a, ref) => {
4110
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4111
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4112
- SelectPrimitive.ScrollUpButton,
4113
- __spreadProps(__spreadValues({
4114
- ref,
4115
- className: cn(
4116
- "flex cursor-default items-center justify-center py-1",
4117
- className
4118
- )
4119
- }, props), {
4120
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(globalLucideIcons.ChevronUp, { className: "h-4 w-4" })
4121
- })
4122
- );
4123
- });
4124
- SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
4125
- var SelectScrollDownButton = React58.forwardRef((_a, ref) => {
4126
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4127
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4128
- SelectPrimitive.ScrollDownButton,
4129
- __spreadProps(__spreadValues({
4130
- ref,
4131
- className: cn(
4132
- "flex cursor-default items-center justify-center py-1",
4133
- className
4134
- )
4135
- }, props), {
4136
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(globalLucideIcons.ChevronDown, { className: "h-4 w-4" })
4137
- })
4138
- );
4139
- });
4140
- SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
4141
- var SelectContent = React58.forwardRef((_a, ref) => {
4142
- var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
4143
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
4144
- SelectPrimitive.Content,
4145
- __spreadProps(__spreadValues({
4146
- ref,
4147
- className: cn(
4148
- "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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",
4149
- position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
4150
- className
4151
- ),
4152
- position
4153
- }, props), {
4154
- children: [
4155
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectScrollUpButton, {}),
4156
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4157
- SelectPrimitive.Viewport,
4158
- {
4159
- className: cn(
4160
- "p-1",
4161
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
4162
- ),
4163
- children
4164
- }
4165
- ),
4166
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectScrollDownButton, {})
4167
- ]
4168
- })
4169
- ) });
4170
- });
4171
- SelectContent.displayName = SelectPrimitive.Content.displayName;
4172
- var SelectLabel = React58.forwardRef((_a, ref) => {
4173
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4174
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4175
- SelectPrimitive.Label,
4176
- __spreadValues({
4177
- ref,
4178
- className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)
4179
- }, props)
4180
- );
4181
- });
4182
- SelectLabel.displayName = SelectPrimitive.Label.displayName;
4183
- var SelectItem = React58.forwardRef((_a, ref) => {
4184
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
4185
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
4186
- SelectPrimitive.Item,
4187
- __spreadProps(__spreadValues({
4188
- ref,
4189
- className: cn(
4190
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
4191
- className
4192
- )
4193
- }, props), {
4194
- children: [
4195
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(globalLucideIcons.Check, { className: "h-4 w-4" }) }) }),
4196
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(SelectPrimitive.ItemText, { children })
4197
- ]
4198
- })
4199
- );
4200
- });
4201
- SelectItem.displayName = SelectPrimitive.Item.displayName;
4202
- var SelectSeparator = React58.forwardRef((_a, ref) => {
4203
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4204
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4205
- SelectPrimitive.Separator,
4206
- __spreadValues({
4207
- ref,
4208
- className: cn("-mx-1 my-1 h-px bg-muted", className)
4209
- }, props)
4210
- );
4211
- });
4212
- SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4213
-
4214
- // src/ui/separator.tsx
4215
- var React59 = __toESM(require("react"));
4216
- var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
4217
- var import_jsx_runtime62 = require("react/jsx-runtime");
4218
- var Separator5 = React59.forwardRef(
4219
- (_a, ref) => {
4220
- var _b = _a, { className, orientation = "horizontal", decorative = true } = _b, props = __objRest(_b, ["className", "orientation", "decorative"]);
4221
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4222
- SeparatorPrimitive.Root,
4223
- __spreadValues({
4224
- ref,
4225
- decorative,
4226
- orientation,
4227
- className: cn(
4228
- "shrink-0 bg-border",
4229
- orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
4230
- className
4231
- )
4232
- }, props)
4233
- );
4234
- }
4235
- );
4236
- Separator5.displayName = SeparatorPrimitive.Root.displayName;
4237
-
4238
- // src/ui/sheet.tsx
4239
- var React60 = __toESM(require("react"));
4240
- var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"));
4241
- var import_class_variance_authority6 = require("class-variance-authority");
4242
- var import_jsx_runtime63 = require("react/jsx-runtime");
4243
- var Sheet = SheetPrimitive.Root;
4244
- var SheetTrigger = SheetPrimitive.Trigger;
4245
- var SheetClose = SheetPrimitive.Close;
4246
- var SheetPortal = SheetPrimitive.Portal;
4247
- var SheetOverlay = React60.forwardRef((_a, ref) => {
4248
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4249
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4250
- SheetPrimitive.Overlay,
4251
- __spreadProps(__spreadValues({
4252
- className: cn(
4253
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
4254
- className
4255
- )
4256
- }, props), {
4257
- ref
4258
- })
4259
- );
4260
- });
4261
- SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
4262
- var sheetVariants = (0, import_class_variance_authority6.cva)(
4263
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
4264
- {
4265
- variants: {
4266
- side: {
4267
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
4268
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
4269
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
4270
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
4271
- }
4272
- },
4273
- defaultVariants: {
4274
- side: "right"
4275
- }
4276
- }
4277
- );
4278
- var SheetContent = React60.forwardRef((_a, ref) => {
4279
- var _b = _a, { side = "right", className, children } = _b, props = __objRest(_b, ["side", "className", "children"]);
4280
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(SheetPortal, { children: [
4281
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SheetOverlay, {}),
4282
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
4283
- SheetPrimitive.Content,
4284
- __spreadProps(__spreadValues({
4285
- ref,
4286
- className: cn(sheetVariants({ side }), className)
4287
- }, props), {
4288
- children: [
4289
- children,
4290
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
4291
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(globalLucideIcons.X, { className: "h-4 w-4" }),
4292
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "sr-only", children: "Close" })
4293
- ] })
4294
- ]
4295
- })
4296
- )
4297
- ] });
4298
- });
4299
- SheetContent.displayName = SheetPrimitive.Content.displayName;
4300
- var SheetHeader = (_a) => {
4301
- var _b = _a, {
4302
- className
4303
- } = _b, props = __objRest(_b, [
4304
- "className"
4305
- ]);
4306
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4307
- "div",
4308
- __spreadValues({
4309
- className: cn(
4310
- "flex flex-col space-y-2 text-center sm:text-left",
4311
- className
4312
- )
4313
- }, props)
4314
- );
4315
- };
4316
- SheetHeader.displayName = "SheetHeader";
4317
- var SheetFooter = (_a) => {
4318
- var _b = _a, {
4319
- className
4320
- } = _b, props = __objRest(_b, [
4321
- "className"
4322
- ]);
4323
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4324
- "div",
4325
- __spreadValues({
4326
- className: cn(
4327
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
4328
- className
4329
- )
4330
- }, props)
4331
- );
4332
- };
4333
- SheetFooter.displayName = "SheetFooter";
4334
- var SheetTitle = React60.forwardRef((_a, ref) => {
4335
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4336
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4337
- SheetPrimitive.Title,
4338
- __spreadValues({
4339
- ref,
4340
- className: cn("text-lg font-semibold text-foreground", className)
4341
- }, props)
4342
- );
4343
- });
4344
- SheetTitle.displayName = SheetPrimitive.Title.displayName;
4345
- var SheetDescription = React60.forwardRef((_a, ref) => {
4346
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4347
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4348
- SheetPrimitive.Description,
4349
- __spreadValues({
4350
- ref,
4351
- className: cn("text-sm text-muted-foreground", className)
4352
- }, props)
4353
- );
4354
- });
4355
- SheetDescription.displayName = SheetPrimitive.Description.displayName;
4356
-
4357
- // src/ui/sidebar.tsx
4358
- var React63 = __toESM(require("react"));
4359
- var import_react_slot4 = require("@radix-ui/react-slot");
4360
- var import_class_variance_authority7 = require("class-variance-authority");
4361
-
4362
- // src/ui/use-mobile.tsx
4363
- var React61 = __toESM(require("react"));
4364
- var MOBILE_BREAKPOINT = 768;
4365
- function useIsMobile() {
4366
- const [isMobile, setIsMobile] = React61.useState(void 0);
4367
- React61.useEffect(() => {
4368
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
4369
- const onChange = () => {
4370
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
4371
- };
4372
- mql.addEventListener("change", onChange);
4373
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
4374
- return () => mql.removeEventListener("change", onChange);
4375
- }, []);
4376
- return !!isMobile;
4377
- }
4378
-
4379
- // src/ui/skeleton.tsx
4380
- var import_jsx_runtime64 = require("react/jsx-runtime");
4381
- function Skeleton(_a) {
4382
- var _b = _a, {
4383
- className
4384
- } = _b, props = __objRest(_b, [
4385
- "className"
4386
- ]);
4387
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
4388
- "div",
4389
- __spreadValues({
4390
- className: cn("animate-pulse rounded-md bg-muted", className)
4391
- }, props)
4392
- );
4393
- }
4394
-
4395
- // src/ui/tooltip.tsx
4396
- var React62 = __toESM(require("react"));
4397
- var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
4398
- var import_jsx_runtime65 = require("react/jsx-runtime");
4399
- var TooltipProvider = TooltipPrimitive.Provider;
4400
- var Tooltip2 = TooltipPrimitive.Root;
4401
- var TooltipTrigger = TooltipPrimitive.Trigger;
4402
- var TooltipContent = React62.forwardRef((_a, ref) => {
4403
- var _b = _a, { className, sideOffset = 4 } = _b, props = __objRest(_b, ["className", "sideOffset"]);
4404
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
4405
- TooltipPrimitive.Content,
4406
- __spreadValues({
4407
- ref,
4408
- sideOffset,
4409
- className: cn(
4410
- "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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",
4411
- className
4412
- )
4413
- }, props)
4414
- );
4415
- });
4416
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4417
-
4418
- // src/ui/sidebar.tsx
4419
- var import_jsx_runtime66 = require("react/jsx-runtime");
4420
- var SIDEBAR_COOKIE_NAME = "sidebar:state";
4421
- var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
4422
- var SIDEBAR_WIDTH = "16rem";
4423
- var SIDEBAR_WIDTH_MOBILE = "18rem";
4424
- var SIDEBAR_WIDTH_ICON = "3rem";
4425
- var SIDEBAR_KEYBOARD_SHORTCUT = "b";
4426
- var SidebarContext = React63.createContext(null);
4427
- function useSidebar() {
4428
- const context = React63.useContext(SidebarContext);
4429
- if (!context) {
4430
- throw new Error("useSidebar must be used within a SidebarProvider.");
4431
- }
4432
- return context;
4433
- }
4434
- var SidebarProvider = React63.forwardRef(
4435
- (_a, ref) => {
4436
- var _b = _a, {
4437
- defaultOpen = true,
4438
- open: openProp,
4439
- onOpenChange: setOpenProp,
4440
- className,
4441
- style,
4442
- children
4443
- } = _b, props = __objRest(_b, [
4444
- "defaultOpen",
4445
- "open",
4446
- "onOpenChange",
4447
- "className",
4448
- "style",
4449
- "children"
4450
- ]);
4451
- const isMobile = useIsMobile();
4452
- const [openMobile, setOpenMobile] = React63.useState(false);
4453
- const [_open, _setOpen] = React63.useState(defaultOpen);
4454
- const open = openProp != null ? openProp : _open;
4455
- const setOpen = React63.useCallback(
4456
- (value) => {
4457
- const openState = typeof value === "function" ? value(open) : value;
4458
- if (setOpenProp) {
4459
- setOpenProp(openState);
4460
- } else {
4461
- _setOpen(openState);
4462
- }
4463
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
4464
- },
4465
- [setOpenProp, open]
4466
- );
4467
- const toggleSidebar = React63.useCallback(() => {
4468
- return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
4469
- }, [isMobile, setOpen, setOpenMobile]);
4470
- React63.useEffect(() => {
4471
- const handleKeyDown = (event) => {
4472
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
4473
- event.preventDefault();
4474
- toggleSidebar();
4475
- }
4476
- };
4477
- window.addEventListener("keydown", handleKeyDown);
4478
- return () => window.removeEventListener("keydown", handleKeyDown);
4479
- }, [toggleSidebar]);
4480
- const state = open ? "expanded" : "collapsed";
4481
- const contextValue = React63.useMemo(
4482
- () => ({
4483
- state,
4484
- open,
4485
- setOpen,
4486
- isMobile,
4487
- openMobile,
4488
- setOpenMobile,
4489
- toggleSidebar
4490
- }),
4491
- [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
4492
- );
4493
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4494
- "div",
4495
- __spreadProps(__spreadValues({
4496
- style: __spreadValues({
4497
- "--sidebar-width": SIDEBAR_WIDTH,
4498
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON
4499
- }, style),
4500
- className: cn(
4501
- "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
4502
- className
4503
- ),
4504
- ref
4505
- }, props), {
4506
- children
4507
- })
4508
- ) }) });
4509
- }
4510
- );
4511
- SidebarProvider.displayName = "SidebarProvider";
4512
- var Sidebar = React63.forwardRef(
4513
- (_a, ref) => {
4514
- var _b = _a, {
4515
- side = "left",
4516
- variant = "sidebar",
4517
- collapsible = "offcanvas",
4518
- className,
4519
- children
4520
- } = _b, props = __objRest(_b, [
4521
- "side",
4522
- "variant",
4523
- "collapsible",
4524
- "className",
4525
- "children"
4526
- ]);
4527
- const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
4528
- if (collapsible === "none") {
4529
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4530
- "div",
4531
- __spreadProps(__spreadValues({
4532
- className: cn(
4533
- "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
4534
- className
4535
- ),
4536
- ref
4537
- }, props), {
4538
- children
4539
- })
4540
- );
4541
- }
4542
- if (isMobile) {
4543
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Sheet, __spreadProps(__spreadValues({ open: openMobile, onOpenChange: setOpenMobile }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4544
- SheetContent,
4545
- {
4546
- "data-sidebar": "sidebar",
4547
- "data-mobile": "true",
4548
- className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
4549
- style: {
4550
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
4551
- },
4552
- side,
4553
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "flex h-full w-full flex-col", children })
4554
- }
4555
- ) }));
4556
- }
4557
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
4558
- "div",
4559
- {
4560
- ref,
4561
- className: "group peer hidden md:block text-sidebar-foreground",
4562
- "data-state": state,
4563
- "data-collapsible": state === "collapsed" ? collapsible : "",
4564
- "data-variant": variant,
4565
- "data-side": side,
4566
- children: [
4567
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4568
- "div",
4569
- {
4570
- className: cn(
4571
- "duration-200 relative h-svh w-(--sidebar-width) bg-transparent transition-[width] ease-linear",
4572
- "group-data-[collapsible=offcanvas]:w-0",
4573
- "group-data-[side=right]:rotate-180",
4574
- variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
4575
- )
4576
- }
4577
- ),
4578
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4579
- "div",
4580
- __spreadProps(__spreadValues({
4581
- className: cn(
4582
- "duration-200 fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] ease-linear md:flex",
4583
- side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
4584
- // Adjust the padding for floating and inset variants.
4585
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
4586
- className
4587
- )
4588
- }, props), {
4589
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4590
- "div",
4591
- {
4592
- "data-sidebar": "sidebar",
4593
- className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
4594
- children
4595
- }
4596
- )
4597
- })
4598
- )
4599
- ]
4600
- }
4601
- );
4602
- }
4603
- );
4604
- Sidebar.displayName = "Sidebar";
4605
- var SidebarTrigger = React63.forwardRef((_a, ref) => {
4606
- var _b = _a, { className, onClick } = _b, props = __objRest(_b, ["className", "onClick"]);
4607
- const { toggleSidebar } = useSidebar();
4608
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
4609
- Button,
4610
- __spreadProps(__spreadValues({
4611
- ref,
4612
- "data-sidebar": "trigger",
4613
- variant: "ghost",
4614
- size: "icon",
4615
- className: cn("h-7 w-7", className),
4616
- onClick: (event) => {
4617
- onClick == null ? void 0 : onClick(event);
4618
- toggleSidebar();
4619
- }
4620
- }, props), {
4621
- children: [
4622
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(globalLucideIcons.PanelLeft, {}),
4623
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
4624
- ]
4625
- })
4626
- );
4627
- });
4628
- SidebarTrigger.displayName = "SidebarTrigger";
4629
- var SidebarRail = React63.forwardRef((_a, ref) => {
4630
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4631
- const { toggleSidebar } = useSidebar();
4632
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4633
- "button",
4634
- __spreadValues({
4635
- ref,
4636
- "data-sidebar": "rail",
4637
- "aria-label": "Toggle Sidebar",
4638
- tabIndex: -1,
4639
- onClick: toggleSidebar,
4640
- title: "Toggle Sidebar",
4641
- className: cn(
4642
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
4643
- "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
4644
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
4645
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
4646
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
4647
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
4648
- className
4649
- )
4650
- }, props)
4651
- );
4652
- });
4653
- SidebarRail.displayName = "SidebarRail";
4654
- var SidebarInset = React63.forwardRef((_a, ref) => {
4655
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4656
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4657
- "main",
4658
- __spreadValues({
4659
- ref,
4660
- className: cn(
4661
- "relative flex min-h-svh flex-1 flex-col bg-background",
4662
- "peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
4663
- className
4664
- )
4665
- }, props)
4666
- );
4667
- });
4668
- SidebarInset.displayName = "SidebarInset";
4669
- var SidebarInput = React63.forwardRef((_a, ref) => {
4670
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4671
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4672
- Input,
4673
- __spreadValues({
4674
- ref,
4675
- "data-sidebar": "input",
4676
- className: cn(
4677
- "h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
4678
- className
4679
- )
4680
- }, props)
4681
- );
4682
- });
4683
- SidebarInput.displayName = "SidebarInput";
4684
- var SidebarHeader = React63.forwardRef((_a, ref) => {
4685
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4686
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4687
- "div",
4688
- __spreadValues({
4689
- ref,
4690
- "data-sidebar": "header",
4691
- className: cn("flex flex-col gap-2 p-2", className)
4692
- }, props)
4693
- );
4694
- });
4695
- SidebarHeader.displayName = "SidebarHeader";
4696
- var SidebarFooter = React63.forwardRef((_a, ref) => {
4697
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4698
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4699
- "div",
4700
- __spreadValues({
4701
- ref,
4702
- "data-sidebar": "footer",
4703
- className: cn("flex flex-col gap-2 p-2", className)
4704
- }, props)
4705
- );
4706
- });
4707
- SidebarFooter.displayName = "SidebarFooter";
4708
- var SidebarSeparator = React63.forwardRef((_a, ref) => {
4709
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4710
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4711
- Separator5,
4712
- __spreadValues({
4713
- ref,
4714
- "data-sidebar": "separator",
4715
- className: cn("mx-2 w-auto bg-sidebar-border", className)
4716
- }, props)
4717
- );
4718
- });
4719
- SidebarSeparator.displayName = "SidebarSeparator";
4720
- var SidebarContent = React63.forwardRef((_a, ref) => {
4721
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4722
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4723
- "div",
4724
- __spreadValues({
4725
- ref,
4726
- "data-sidebar": "content",
4727
- className: cn(
4728
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
4729
- className
4730
- )
4731
- }, props)
4732
- );
4733
- });
4734
- SidebarContent.displayName = "SidebarContent";
4735
- var SidebarGroup = React63.forwardRef((_a, ref) => {
4736
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4737
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4738
- "div",
4739
- __spreadValues({
4740
- ref,
4741
- "data-sidebar": "group",
4742
- className: cn("relative flex w-full min-w-0 flex-col p-2", className)
4743
- }, props)
4744
- );
4745
- });
4746
- SidebarGroup.displayName = "SidebarGroup";
4747
- var SidebarGroupLabel = React63.forwardRef((_a, ref) => {
4748
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
4749
- const Comp = asChild ? import_react_slot4.Slot : "div";
4750
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4751
- Comp,
4752
- __spreadValues({
4753
- ref,
4754
- "data-sidebar": "group-label",
4755
- className: cn(
4756
- "duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4757
- "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
4758
- className
4759
- )
4760
- }, props)
4761
- );
4762
- });
4763
- SidebarGroupLabel.displayName = "SidebarGroupLabel";
4764
- var SidebarGroupAction = React63.forwardRef((_a, ref) => {
4765
- var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
4766
- const Comp = asChild ? import_react_slot4.Slot : "button";
4767
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4768
- Comp,
4769
- __spreadValues({
4770
- ref,
4771
- "data-sidebar": "group-action",
4772
- className: cn(
4773
- "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4774
- // Increases the hit area of the button on mobile.
4775
- "after:absolute after:-inset-2 md:after:hidden",
4776
- "group-data-[collapsible=icon]:hidden",
4777
- className
4778
- )
4779
- }, props)
4780
- );
4781
- });
4782
- SidebarGroupAction.displayName = "SidebarGroupAction";
4783
- var SidebarGroupContent = React63.forwardRef((_a, ref) => {
4784
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4785
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4786
- "div",
4787
- __spreadValues({
4788
- ref,
4789
- "data-sidebar": "group-content",
4790
- className: cn("w-full text-sm", className)
4791
- }, props)
4792
- );
4793
- });
4794
- SidebarGroupContent.displayName = "SidebarGroupContent";
4795
- var SidebarMenu = React63.forwardRef((_a, ref) => {
4796
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4797
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4798
- "ul",
4799
- __spreadValues({
4800
- ref,
4801
- "data-sidebar": "menu",
4802
- className: cn("flex w-full min-w-0 flex-col gap-1", className)
4803
- }, props)
4804
- );
4805
- });
4806
- SidebarMenu.displayName = "SidebarMenu";
4807
- var SidebarMenuItem = React63.forwardRef((_a, ref) => {
4808
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4809
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4810
- "li",
4811
- __spreadValues({
4812
- ref,
4813
- "data-sidebar": "menu-item",
4814
- className: cn("group/menu-item relative", className)
4815
- }, props)
4816
- );
4817
- });
4818
- SidebarMenuItem.displayName = "SidebarMenuItem";
4819
- var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
4820
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
4821
- {
4822
- variants: {
4823
- variant: {
4824
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
4825
- outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
4826
- },
4827
- size: {
4828
- default: "h-8 text-sm",
4829
- sm: "h-7 text-xs",
4830
- lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
4831
- }
4832
- },
4833
- defaultVariants: {
4834
- variant: "default",
4835
- size: "default"
4836
- }
4837
- }
4838
- );
4839
- var SidebarMenuButton = React63.forwardRef(
4840
- (_a, ref) => {
4841
- var _b = _a, {
4842
- asChild = false,
4843
- isActive = false,
4844
- variant = "default",
4845
- size = "default",
4846
- tooltip,
4847
- className
4848
- } = _b, props = __objRest(_b, [
4849
- "asChild",
4850
- "isActive",
4851
- "variant",
4852
- "size",
4853
- "tooltip",
4854
- "className"
4855
- ]);
4856
- const Comp = asChild ? import_react_slot4.Slot : "button";
4857
- const { isMobile, state } = useSidebar();
4858
- const button = /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4859
- Comp,
4860
- __spreadValues({
4861
- ref,
4862
- "data-sidebar": "menu-button",
4863
- "data-size": size,
4864
- "data-active": isActive,
4865
- className: cn(sidebarMenuButtonVariants({ variant, size }), className)
4866
- }, props)
4867
- );
4868
- if (!tooltip) {
4869
- return button;
4870
- }
4871
- if (typeof tooltip === "string") {
4872
- tooltip = {
4873
- children: tooltip
4874
- };
4875
- }
4876
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(Tooltip2, { children: [
4877
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(TooltipTrigger, { asChild: true, children: button }),
4878
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4879
- TooltipContent,
4880
- __spreadValues({
4881
- side: "right",
4882
- align: "center",
4883
- hidden: state !== "collapsed" || isMobile
4884
- }, tooltip)
4885
- )
4886
- ] });
4887
- }
4888
- );
4889
- SidebarMenuButton.displayName = "SidebarMenuButton";
4890
- var SidebarMenuAction = React63.forwardRef((_a, ref) => {
4891
- var _b = _a, { className, asChild = false, showOnHover = false } = _b, props = __objRest(_b, ["className", "asChild", "showOnHover"]);
4892
- const Comp = asChild ? import_react_slot4.Slot : "button";
4893
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4894
- Comp,
4895
- __spreadValues({
4896
- ref,
4897
- "data-sidebar": "menu-action",
4898
- className: cn(
4899
- "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
4900
- // Increases the hit area of the button on mobile.
4901
- "after:absolute after:-inset-2 md:after:hidden",
4902
- "peer-data-[size=sm]/menu-button:top-1",
4903
- "peer-data-[size=default]/menu-button:top-1.5",
4904
- "peer-data-[size=lg]/menu-button:top-2.5",
4905
- "group-data-[collapsible=icon]:hidden",
4906
- showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
4907
- className
4908
- )
4909
- }, props)
4910
- );
4911
- });
4912
- SidebarMenuAction.displayName = "SidebarMenuAction";
4913
- var SidebarMenuBadge = React63.forwardRef((_a, ref) => {
4914
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4915
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4916
- "div",
4917
- __spreadValues({
4918
- ref,
4919
- "data-sidebar": "menu-badge",
4920
- className: cn(
4921
- "absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none",
4922
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
4923
- "peer-data-[size=sm]/menu-button:top-1",
4924
- "peer-data-[size=default]/menu-button:top-1.5",
4925
- "peer-data-[size=lg]/menu-button:top-2.5",
4926
- "group-data-[collapsible=icon]:hidden",
4927
- className
4928
- )
4929
- }, props)
4930
- );
4931
- });
4932
- SidebarMenuBadge.displayName = "SidebarMenuBadge";
4933
- var SidebarMenuSkeleton = React63.forwardRef((_a, ref) => {
4934
- var _b = _a, { className, showIcon = false } = _b, props = __objRest(_b, ["className", "showIcon"]);
4935
- const width = React63.useMemo(() => {
4936
- return `${Math.floor(Math.random() * 40) + 50}%`;
4937
- }, []);
4938
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
4939
- "div",
4940
- __spreadProps(__spreadValues({
4941
- ref,
4942
- "data-sidebar": "menu-skeleton",
4943
- className: cn("rounded-md h-8 flex gap-2 px-2 items-center", className)
4944
- }, props), {
4945
- children: [
4946
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4947
- Skeleton,
4948
- {
4949
- className: "size-4 rounded-md",
4950
- "data-sidebar": "menu-skeleton-icon"
4951
- }
4952
- ),
4953
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4954
- Skeleton,
4955
- {
4956
- className: "h-4 flex-1 max-w-(--skeleton-width)",
4957
- "data-sidebar": "menu-skeleton-text",
4958
- style: {
4959
- "--skeleton-width": width
4960
- }
4961
- }
4962
- )
4963
- ]
4964
- })
4965
- );
4966
- });
4967
- SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
4968
- var SidebarMenuSub = React63.forwardRef((_a, ref) => {
4969
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
4970
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4971
- "ul",
4972
- __spreadValues({
4973
- ref,
4974
- "data-sidebar": "menu-sub",
4975
- className: cn(
4976
- "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
4977
- "group-data-[collapsible=icon]:hidden",
4978
- className
4979
- )
4980
- }, props)
4981
- );
4982
- });
4983
- SidebarMenuSub.displayName = "SidebarMenuSub";
4984
- var SidebarMenuSubItem = React63.forwardRef((_a, ref) => {
4985
- var props = __objRest(_a, []);
4986
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", __spreadValues({ ref }, props));
4987
- });
4988
- SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
4989
- var SidebarMenuSubButton = React63.forwardRef((_a, ref) => {
4990
- var _b = _a, { asChild = false, size = "md", isActive, className } = _b, props = __objRest(_b, ["asChild", "size", "isActive", "className"]);
4991
- const Comp = asChild ? import_react_slot4.Slot : "a";
4992
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4993
- Comp,
4994
- __spreadValues({
4995
- ref,
4996
- "data-sidebar": "menu-sub-button",
4997
- "data-size": size,
4998
- "data-active": isActive,
4999
- className: cn(
5000
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
5001
- "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
5002
- size === "sm" && "text-xs",
5003
- size === "md" && "text-sm",
5004
- "group-data-[collapsible=icon]:hidden",
5005
- className
5006
- )
5007
- }, props)
5008
- );
5009
- });
5010
- SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
5011
-
5012
- // src/ui/slider.tsx
5013
- var React64 = __toESM(require("react"));
5014
- var SliderPrimitive = __toESM(require("@radix-ui/react-slider"));
5015
- var import_jsx_runtime67 = require("react/jsx-runtime");
5016
- var Slider = React64.forwardRef((_a, ref) => {
5017
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5018
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
5019
- SliderPrimitive.Root,
5020
- __spreadProps(__spreadValues({
5021
- ref,
5022
- className: cn(
5023
- "relative flex w-full touch-none select-none items-center",
5024
- className
5025
- )
5026
- }, props), {
5027
- children: [
5028
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
5029
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" })
5030
- ]
5031
- })
5032
- );
5033
- });
5034
- Slider.displayName = SliderPrimitive.Root.displayName;
5035
-
5036
- // src/ui/sonner.tsx
5037
- var import_next_themes = require("next-themes");
5038
- var import_sonner = require("sonner");
5039
- var import_jsx_runtime68 = require("react/jsx-runtime");
5040
- var Toaster = (_a) => {
5041
- var props = __objRest(_a, []);
5042
- const { theme = "system" } = (0, import_next_themes.useTheme)();
5043
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
5044
- import_sonner.Toaster,
5045
- __spreadValues({
5046
- theme,
5047
- className: "toaster group",
5048
- toastOptions: {
5049
- classNames: {
5050
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
5051
- description: "group-[.toast]:text-muted-foreground",
5052
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
5053
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
5054
- }
5055
- }
5056
- }, props)
5057
- );
5058
- };
5059
-
5060
- // src/ui/switch.tsx
5061
- var React65 = __toESM(require("react"));
5062
- var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"));
5063
- var import_jsx_runtime69 = require("react/jsx-runtime");
5064
- var Switch = React65.forwardRef((_a, ref) => {
5065
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5066
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
5067
- SwitchPrimitives.Root,
5068
- __spreadProps(__spreadValues({
5069
- className: cn(
5070
- "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden 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-primary data-[state=unchecked]:bg-input",
5071
- className
5072
- )
5073
- }, props), {
5074
- ref,
5075
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
5076
- SwitchPrimitives.Thumb,
5077
- {
5078
- className: cn(
5079
- "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
5080
- )
5081
- }
5082
- )
5083
- })
5084
- );
5085
- });
5086
- Switch.displayName = SwitchPrimitives.Root.displayName;
5087
-
5088
- // src/ui/table.tsx
5089
- var React66 = __toESM(require("react"));
5090
- var import_jsx_runtime70 = require("react/jsx-runtime");
5091
- var Table = React66.forwardRef((_a, ref) => {
5092
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5093
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5094
- "table",
5095
- __spreadValues({
5096
- ref,
5097
- className: cn("w-full caption-bottom text-sm", className)
5098
- }, props)
5099
- ) });
5100
- });
5101
- Table.displayName = "Table";
5102
- var TableHeader = React66.forwardRef((_a, ref) => {
5103
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5104
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("thead", __spreadValues({ ref, className: cn("[&_tr]:border-b", className) }, props));
5105
- });
5106
- TableHeader.displayName = "TableHeader";
5107
- var TableBody = React66.forwardRef((_a, ref) => {
5108
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5109
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5110
- "tbody",
5111
- __spreadValues({
5112
- ref,
5113
- className: cn("[&_tr:last-child]:border-0", className)
5114
- }, props)
5115
- );
5116
- });
5117
- TableBody.displayName = "TableBody";
5118
- var TableFooter = React66.forwardRef((_a, ref) => {
5119
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5120
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5121
- "tfoot",
5122
- __spreadValues({
5123
- ref,
5124
- className: cn(
5125
- "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0",
5126
- className
5127
- )
5128
- }, props)
5129
- );
5130
- });
5131
- TableFooter.displayName = "TableFooter";
5132
- var TableRow = React66.forwardRef((_a, ref) => {
5133
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5134
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5135
- "tr",
5136
- __spreadValues({
5137
- ref,
5138
- className: cn(
5139
- "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
5140
- className
5141
- )
5142
- }, props)
5143
- );
5144
- });
5145
- TableRow.displayName = "TableRow";
5146
- var TableHead = React66.forwardRef((_a, ref) => {
5147
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5148
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5149
- "th",
5150
- __spreadValues({
5151
- ref,
5152
- className: cn(
5153
- "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
5154
- className
5155
- )
5156
- }, props)
5157
- );
5158
- });
5159
- TableHead.displayName = "TableHead";
5160
- var TableCell = React66.forwardRef((_a, ref) => {
5161
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5162
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5163
- "td",
5164
- __spreadValues({
5165
- ref,
5166
- className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)
5167
- }, props)
5168
- );
5169
- });
5170
- TableCell.displayName = "TableCell";
5171
- var TableCaption = React66.forwardRef((_a, ref) => {
5172
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5173
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
5174
- "caption",
5175
- __spreadValues({
5176
- ref,
5177
- className: cn("mt-4 text-sm text-muted-foreground", className)
5178
- }, props)
5179
- );
5180
- });
5181
- TableCaption.displayName = "TableCaption";
5182
-
5183
- // src/ui/tabs.tsx
5184
- var React67 = __toESM(require("react"));
5185
- var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"));
5186
- var import_jsx_runtime71 = require("react/jsx-runtime");
5187
- var Tabs = TabsPrimitive.Root;
5188
- var TabsList = React67.forwardRef((_a, ref) => {
5189
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5190
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5191
- TabsPrimitive.List,
5192
- __spreadValues({
5193
- ref,
5194
- className: cn(
5195
- "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
5196
- className
5197
- )
5198
- }, props)
5199
- );
5200
- });
5201
- TabsList.displayName = TabsPrimitive.List.displayName;
5202
- var TabsTrigger = React67.forwardRef((_a, ref) => {
5203
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5204
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5205
- TabsPrimitive.Trigger,
5206
- __spreadValues({
5207
- ref,
5208
- className: cn(
5209
- "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-hidden 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-xs",
5210
- className
5211
- )
5212
- }, props)
5213
- );
5214
- });
5215
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
5216
- var TabsContent = React67.forwardRef((_a, ref) => {
5217
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5218
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
5219
- TabsPrimitive.Content,
5220
- __spreadValues({
5221
- ref,
5222
- className: cn(
5223
- "mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
5224
- className
5225
- )
5226
- }, props)
5227
- );
5228
- });
5229
- TabsContent.displayName = TabsPrimitive.Content.displayName;
5230
-
5231
- // src/ui/textarea.tsx
5232
- var React68 = __toESM(require("react"));
5233
- var import_jsx_runtime72 = require("react/jsx-runtime");
5234
- var Textarea = React68.forwardRef((_a, ref) => {
5235
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5236
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
5237
- "textarea",
5238
- __spreadValues({
5239
- className: cn(
5240
- "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
5241
- className
5242
- ),
5243
- ref
5244
- }, props)
5245
- );
5246
- });
5247
- Textarea.displayName = "Textarea";
5248
-
5249
- // src/ui/toast.tsx
5250
- var React69 = __toESM(require("react"));
5251
- var ToastPrimitives = __toESM(require("@radix-ui/react-toast"));
5252
- var import_class_variance_authority8 = require("class-variance-authority");
5253
- var import_jsx_runtime73 = require("react/jsx-runtime");
5254
- var ToastProvider = ToastPrimitives.Provider;
5255
- var ToastViewport = React69.forwardRef((_a, ref) => {
5256
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5257
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5258
- ToastPrimitives.Viewport,
5259
- __spreadValues({
5260
- ref,
5261
- className: cn(
5262
- "fixed top-0 z-100 flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
5263
- className
5264
- )
5265
- }, props)
5266
- );
5267
- });
5268
- ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
5269
- var toastVariants = (0, import_class_variance_authority8.cva)(
5270
- "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full sm:data-[state=open]:slide-in-from-bottom-full",
5271
- {
5272
- variants: {
5273
- variant: {
5274
- default: "border bg-background text-foreground",
5275
- destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
5276
- }
5277
- },
5278
- defaultVariants: {
5279
- variant: "default"
5280
- }
5281
- }
5282
- );
5283
- var Toast = React69.forwardRef((_a, ref) => {
5284
- var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
5285
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5286
- ToastPrimitives.Root,
5287
- __spreadValues({
5288
- ref,
5289
- className: cn(toastVariants({ variant }), className)
5290
- }, props)
5291
- );
5292
- });
5293
- Toast.displayName = ToastPrimitives.Root.displayName;
5294
- var ToastAction = React69.forwardRef((_a, ref) => {
5295
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5296
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5297
- ToastPrimitives.Action,
5298
- __spreadValues({
5299
- ref,
5300
- className: cn(
5301
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 hover:group-[.destructive]:border-destructive/30 hover:group-[.destructive]:bg-destructive hover:group-[.destructive]:text-destructive-foreground focus:group-[.destructive]:ring-destructive",
5302
- className
5303
- )
5304
- }, props)
5305
- );
5306
- });
5307
- ToastAction.displayName = ToastPrimitives.Action.displayName;
5308
- var ToastClose = React69.forwardRef((_a, ref) => {
5309
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5310
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5311
- ToastPrimitives.Close,
5312
- __spreadProps(__spreadValues({
5313
- ref,
5314
- className: cn(
5315
- "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-hidden focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 hover:group-[.destructive]:text-red-50 focus:group-[.destructive]:ring-red-400 focus:group-[.destructive]:ring-offset-red-600",
5316
- className
5317
- ),
5318
- "toast-close": ""
5319
- }, props), {
5320
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(globalLucideIcons.X, { className: "h-4 w-4" })
5321
- })
5322
- );
5323
- });
5324
- ToastClose.displayName = ToastPrimitives.Close.displayName;
5325
- var ToastTitle = React69.forwardRef((_a, ref) => {
5326
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5327
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5328
- ToastPrimitives.Title,
5329
- __spreadValues({
5330
- ref,
5331
- className: cn("text-sm font-semibold", className)
5332
- }, props)
5333
- );
5334
- });
5335
- ToastTitle.displayName = ToastPrimitives.Title.displayName;
5336
- var ToastDescription = React69.forwardRef((_a, ref) => {
5337
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5338
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
5339
- ToastPrimitives.Description,
5340
- __spreadValues({
5341
- ref,
5342
- className: cn("text-sm opacity-90", className)
5343
- }, props)
5344
- );
5345
- });
5346
- ToastDescription.displayName = ToastPrimitives.Description.displayName;
5347
-
5348
- // src/ui/use-toast.ts
5349
- var React70 = __toESM(require("react"));
5350
- var TOAST_LIMIT = 1;
5351
- var TOAST_REMOVE_DELAY = 1e6;
5352
- var ACTIONS = {
5353
- ADD_TOAST: "ADD_TOAST",
5354
- UPDATE_TOAST: "UPDATE_TOAST",
5355
- DISMISS_TOAST: "DISMISS_TOAST",
5356
- REMOVE_TOAST: "REMOVE_TOAST"
5357
- };
5358
- var count = 0;
5359
- function genId() {
5360
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
5361
- return count.toString();
5362
- }
5363
- var toastTimeouts = /* @__PURE__ */ new Map();
5364
- var addToRemoveQueue = (toastId) => {
5365
- if (toastTimeouts.has(toastId)) {
5366
- return;
5367
- }
5368
- const timeout = setTimeout(() => {
5369
- toastTimeouts.delete(toastId);
5370
- dispatch({
5371
- type: ACTIONS.REMOVE_TOAST,
5372
- toastId
5373
- });
5374
- }, TOAST_REMOVE_DELAY);
5375
- toastTimeouts.set(toastId, timeout);
5376
- };
5377
- var reducer = (state, action) => {
5378
- switch (action.type) {
5379
- case "ADD_TOAST":
5380
- return __spreadProps(__spreadValues({}, state), {
5381
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
5382
- });
5383
- case "UPDATE_TOAST":
5384
- return __spreadProps(__spreadValues({}, state), {
5385
- toasts: state.toasts.map(
5386
- (t) => t.id === action.toast.id ? __spreadValues(__spreadValues({}, t), action.toast) : t
5387
- )
5388
- });
5389
- case "DISMISS_TOAST": {
5390
- const { toastId } = action;
5391
- if (toastId) {
5392
- addToRemoveQueue(toastId);
5393
- } else {
5394
- state.toasts.forEach((toast2) => {
5395
- addToRemoveQueue(toast2.id);
5396
- });
5397
- }
5398
- return __spreadProps(__spreadValues({}, state), {
5399
- toasts: state.toasts.map(
5400
- (t) => t.id === toastId || toastId === void 0 ? __spreadProps(__spreadValues({}, t), {
5401
- open: false
5402
- }) : t
5403
- )
5404
- });
5405
- }
5406
- case "REMOVE_TOAST":
5407
- if (action.toastId === void 0) {
5408
- return __spreadProps(__spreadValues({}, state), {
5409
- toasts: []
5410
- });
5411
- }
5412
- return __spreadProps(__spreadValues({}, state), {
5413
- toasts: state.toasts.filter((t) => t.id !== action.toastId)
5414
- });
5415
- }
5416
- };
5417
- var listeners = [];
5418
- var memoryState = { toasts: [] };
5419
- function dispatch(action) {
5420
- memoryState = reducer(memoryState, action);
5421
- listeners.forEach((listener) => {
5422
- listener(memoryState);
5423
- });
5424
- }
5425
- function toast(_a) {
5426
- var props = __objRest(_a, []);
5427
- const id = genId();
5428
- const update = (props2) => dispatch({
5429
- type: "UPDATE_TOAST",
5430
- toast: __spreadProps(__spreadValues({}, props2), { id })
5431
- });
5432
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
5433
- dispatch({
5434
- type: "ADD_TOAST",
5435
- toast: __spreadProps(__spreadValues({}, props), {
5436
- id,
5437
- open: true,
5438
- onOpenChange: (open) => {
5439
- if (!open) dismiss();
5440
- }
5441
- })
5442
- });
5443
- return {
5444
- id,
5445
- dismiss,
5446
- update
5447
- };
5448
- }
5449
- function useToast() {
5450
- const [state, setState] = React70.useState(memoryState);
5451
- React70.useEffect(() => {
5452
- listeners.push(setState);
5453
- return () => {
5454
- const index = listeners.indexOf(setState);
5455
- if (index > -1) {
5456
- listeners.splice(index, 1);
5457
- }
5458
- };
5459
- }, [state]);
5460
- return __spreadProps(__spreadValues({}, state), {
5461
- toast,
5462
- dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
5463
- });
5464
- }
5465
-
5466
- // src/ui/toaster.tsx
5467
- var import_jsx_runtime74 = require("react/jsx-runtime");
5468
- function Toaster2() {
5469
- const { toasts } = useToast();
5470
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(ToastProvider, { children: [
5471
- toasts.map(function(_a) {
5472
- var _b = _a, { id, title, description, action } = _b, props = __objRest(_b, ["id", "title", "description", "action"]);
5473
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Toast, __spreadProps(__spreadValues({}, props), { children: [
5474
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "grid gap-1", children: [
5475
- title && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ToastTitle, { children: title }),
5476
- description && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ToastDescription, { children: description })
5477
- ] }),
5478
- action,
5479
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ToastClose, {})
5480
- ] }), id);
5481
- }),
5482
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(ToastViewport, {})
5483
- ] });
5484
- }
5485
-
5486
- // src/ui/toggle-group.tsx
5487
- var React72 = __toESM(require("react"));
5488
- var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
1688
+ Label2.displayName = LabelPrimitive.Root.displayName;
5489
1689
 
5490
- // src/ui/toggle.tsx
5491
- var React71 = __toESM(require("react"));
5492
- var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"));
5493
- var import_class_variance_authority9 = require("class-variance-authority");
5494
- var import_jsx_runtime75 = require("react/jsx-runtime");
5495
- var toggleVariants = (0, import_class_variance_authority9.cva)(
5496
- "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
5497
- {
5498
- variants: {
5499
- variant: {
5500
- default: "bg-transparent",
5501
- outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
5502
- },
5503
- size: {
5504
- default: "h-10 px-3 min-w-10",
5505
- sm: "h-9 px-2.5 min-w-9",
5506
- lg: "h-11 px-5 min-w-11"
5507
- }
5508
- },
5509
- defaultVariants: {
5510
- variant: "default",
5511
- size: "default"
5512
- }
1690
+ // src/ui/language-button.tsx
1691
+ var React34 = __toESM(require("react"));
1692
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1693
+ var LanguageButton = React34.forwardRef(
1694
+ (_a, ref) => {
1695
+ var _b = _a, { className, variant = "default", size = "default" } = _b, props = __objRest(_b, ["className", "variant", "size"]);
1696
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
1697
+ "button",
1698
+ __spreadValues({
1699
+ className: cn(
1700
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background",
1701
+ {
1702
+ "bg-primary text-primary-foreground hover:bg-primary/90": variant === "default",
1703
+ "hover:bg-accent hover:text-accent-foreground": variant === "ghost",
1704
+ "h-10 px-4 py-2": size === "default",
1705
+ "h-9 px-3": size === "sm",
1706
+ "h-11 px-8": size === "lg",
1707
+ "h-10 w-10": size === "icon"
1708
+ },
1709
+ className
1710
+ ),
1711
+ ref
1712
+ }, props)
1713
+ );
5513
1714
  }
5514
1715
  );
5515
- var Toggle = React71.forwardRef((_a, ref) => {
5516
- var _b = _a, { className, variant, size } = _b, props = __objRest(_b, ["className", "variant", "size"]);
5517
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
5518
- TogglePrimitive.Root,
5519
- __spreadValues({
5520
- ref,
5521
- className: cn(toggleVariants({ variant, size, className }))
5522
- }, props)
5523
- );
5524
- });
5525
- Toggle.displayName = TogglePrimitive.Root.displayName;
5526
-
5527
- // src/ui/toggle-group.tsx
5528
- var import_jsx_runtime76 = require("react/jsx-runtime");
5529
- var ToggleGroupContext = React72.createContext({
5530
- size: "default",
5531
- variant: "default"
5532
- });
5533
- var ToggleGroup = React72.forwardRef((_a, ref) => {
5534
- var _b = _a, { className, variant, size, children } = _b, props = __objRest(_b, ["className", "variant", "size", "children"]);
5535
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5536
- ToggleGroupPrimitive.Root,
5537
- __spreadProps(__spreadValues({
5538
- ref,
5539
- className: cn("flex items-center justify-center gap-1", className)
5540
- }, props), {
5541
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
5542
- })
5543
- );
5544
- });
5545
- ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
5546
- var ToggleGroupItem = React72.forwardRef((_a, ref) => {
5547
- var _b = _a, { className, children, variant, size } = _b, props = __objRest(_b, ["className", "children", "variant", "size"]);
5548
- const context = React72.useContext(ToggleGroupContext);
5549
- return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
5550
- ToggleGroupPrimitive.Item,
5551
- __spreadProps(__spreadValues({
5552
- ref,
5553
- className: cn(
5554
- toggleVariants({
5555
- variant: context.variant || variant,
5556
- size: context.size || size
5557
- }),
5558
- className
5559
- )
5560
- }, props), {
5561
- children
5562
- })
5563
- );
5564
- });
5565
- ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
1716
+ LanguageButton.displayName = "Button";
5566
1717
 
5567
1718
  // src/lib/icon-context.tsx
5568
1719
  var import_react30 = require("react");
5569
- var import_jsx_runtime77 = require("react/jsx-runtime");
1720
+ var import_jsx_runtime35 = require("react/jsx-runtime");
5570
1721
  var IconConfigContext = (0, import_react30.createContext)(null);
5571
1722
  function IconConfigProvider({ config, children }) {
5572
- return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(IconConfigContext.Provider, { value: config, children });
1723
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(IconConfigContext.Provider, { value: config, children });
5573
1724
  }
5574
1725
  function useIconConfig() {
5575
1726
  const config = (0, import_react30.useContext)(IconConfigContext);
@@ -5590,7 +1741,7 @@ function useIconConfigSafe(iconKey) {
5590
1741
  }
5591
1742
 
5592
1743
  // src/lib/site-icon.tsx
5593
- var import_jsx_runtime78 = require("react/jsx-runtime");
1744
+ var import_jsx_runtime36 = require("react/jsx-runtime");
5594
1745
  function SiteIcon(_a) {
5595
1746
  var _b = _a, {
5596
1747
  size = 24,
@@ -5608,28 +1759,22 @@ function SiteIcon(_a) {
5608
1759
  if (typeof configuredIcon === "string") {
5609
1760
  if (configuredIcon === "") {
5610
1761
  const DefaultIcon = globalLucideIcons["Download"];
5611
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
1762
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DefaultIcon, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
5612
1763
  }
5613
1764
  const IconComponent = globalLucideIcons[configuredIcon];
5614
1765
  if (!IconComponent) {
5615
1766
  throw new Error(`[SiteIcon] Icon key "${configuredIcon}" not found in globalLucideIcons.`);
5616
1767
  }
5617
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
1768
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(IconComponent, __spreadValues({ size, className: cn(themeIconColor, className) }, props));
5618
1769
  } else {
5619
1770
  const CustomIcon = configuredIcon;
5620
1771
  const hasColorClass = className && /text-\w+/.test(className);
5621
1772
  const finalClassName = hasColorClass ? className : cn(themeIconColor, className);
5622
- return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
1773
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(CustomIcon, __spreadValues({ size, className: finalClassName }, props));
5623
1774
  }
5624
1775
  }
5625
1776
  // Annotate the CommonJS export names for ESM import in node:
5626
1777
  0 && (module.exports = {
5627
- Accordion,
5628
- AccordionContent,
5629
- AccordionItem,
5630
- AccordionTrigger,
5631
- Alert,
5632
- AlertDescription,
5633
1778
  AlertDialog,
5634
1779
  AlertDialogAction,
5635
1780
  AlertDialogCancel,
@@ -5641,87 +1786,8 @@ function SiteIcon(_a) {
5641
1786
  AlertDialogPortal,
5642
1787
  AlertDialogTitle,
5643
1788
  AlertDialogTrigger,
5644
- AlertTitle,
5645
- AspectRatio,
5646
- Avatar,
5647
- AvatarFallback,
5648
- AvatarImage,
5649
- Badge,
5650
- Breadcrumb,
5651
- BreadcrumbEllipsis,
5652
- BreadcrumbItem,
5653
- BreadcrumbLink,
5654
- BreadcrumbList,
5655
- BreadcrumbPage,
5656
- BreadcrumbSeparator,
5657
1789
  Button,
5658
- Calendar,
5659
- Card,
5660
- CardContent,
5661
- CardDescription,
5662
- CardFooter,
5663
- CardHeader,
5664
- CardTitle,
5665
- Carousel,
5666
- CarouselContent,
5667
- CarouselItem,
5668
- CarouselNext,
5669
- CarouselPrevious,
5670
- ChartContainer,
5671
- ChartLegend,
5672
- ChartLegendContent,
5673
- ChartStyle,
5674
- ChartTooltip,
5675
- ChartTooltipContent,
5676
- Checkbox,
5677
- Collapsible,
5678
- CollapsibleContent,
5679
- CollapsibleTrigger,
5680
- Command,
5681
- CommandDialog,
5682
- CommandEmpty,
5683
- CommandGroup,
5684
- CommandInput,
5685
- CommandItem,
5686
- CommandList,
5687
- CommandSeparator,
5688
- CommandShortcut,
5689
- ContextMenu,
5690
- ContextMenuCheckboxItem,
5691
- ContextMenuContent,
5692
- ContextMenuGroup,
5693
- ContextMenuItem,
5694
- ContextMenuLabel,
5695
- ContextMenuPortal,
5696
- ContextMenuRadioGroup,
5697
- ContextMenuRadioItem,
5698
- ContextMenuSeparator,
5699
- ContextMenuShortcut,
5700
- ContextMenuSub,
5701
- ContextMenuSubContent,
5702
- ContextMenuSubTrigger,
5703
- ContextMenuTrigger,
5704
1790
  DefaultSiteIcon,
5705
- Dialog,
5706
- DialogClose,
5707
- DialogContent,
5708
- DialogDescription,
5709
- DialogFooter,
5710
- DialogHeader,
5711
- DialogOverlay,
5712
- DialogPortal,
5713
- DialogTitle,
5714
- DialogTrigger,
5715
- Drawer,
5716
- DrawerClose,
5717
- DrawerContent,
5718
- DrawerDescription,
5719
- DrawerFooter,
5720
- DrawerHeader,
5721
- DrawerOverlay,
5722
- DrawerPortal,
5723
- DrawerTitle,
5724
- DrawerTrigger,
5725
1791
  DropdownMenu,
5726
1792
  DropdownMenuCheckboxItem,
5727
1793
  DropdownMenuContent,
@@ -5737,157 +1803,15 @@ function SiteIcon(_a) {
5737
1803
  DropdownMenuSubContent,
5738
1804
  DropdownMenuSubTrigger,
5739
1805
  DropdownMenuTrigger,
5740
- Form,
5741
- FormControl,
5742
- FormDescription,
5743
- FormField,
5744
- FormItem,
5745
- FormLabel,
5746
- FormMessage,
5747
- HoverCard,
5748
- HoverCardContent,
5749
- HoverCardTrigger,
5750
1806
  IconConfigProvider,
5751
- Input,
5752
- InputOTP,
5753
- InputOTPGroup,
5754
- InputOTPSeparator,
5755
- InputOTPSlot,
5756
1807
  Label,
5757
1808
  LanguageButton,
5758
- Menubar,
5759
- MenubarCheckboxItem,
5760
- MenubarContent,
5761
- MenubarGroup,
5762
- MenubarItem,
5763
- MenubarLabel,
5764
- MenubarMenu,
5765
- MenubarPortal,
5766
- MenubarRadioGroup,
5767
- MenubarRadioItem,
5768
- MenubarSeparator,
5769
- MenubarShortcut,
5770
- MenubarSub,
5771
- MenubarSubContent,
5772
- MenubarSubTrigger,
5773
- MenubarTrigger,
5774
- NavigationMenu,
5775
- NavigationMenuContent,
5776
- NavigationMenuIndicator,
5777
- NavigationMenuItem,
5778
- NavigationMenuLink,
5779
- NavigationMenuList,
5780
- NavigationMenuTrigger,
5781
- NavigationMenuViewport,
5782
1809
  NotFoundIcon,
5783
- Pagination,
5784
- PaginationContent,
5785
- PaginationEllipsis,
5786
- PaginationItem,
5787
- PaginationLink,
5788
- PaginationNext,
5789
- PaginationPrevious,
5790
- Popover,
5791
- PopoverContent,
5792
- PopoverTrigger,
5793
- Progress,
5794
- RadioGroup,
5795
- RadioGroupItem,
5796
- ResizableHandle,
5797
- ResizablePanel,
5798
- ResizablePanelGroup,
5799
- ScrollArea,
5800
- ScrollBar,
5801
- Select,
5802
- SelectContent,
5803
- SelectGroup,
5804
- SelectItem,
5805
- SelectLabel,
5806
- SelectScrollDownButton,
5807
- SelectScrollUpButton,
5808
- SelectSeparator,
5809
- SelectTrigger,
5810
- SelectValue,
5811
- Separator,
5812
- Sheet,
5813
- SheetClose,
5814
- SheetContent,
5815
- SheetDescription,
5816
- SheetFooter,
5817
- SheetHeader,
5818
- SheetOverlay,
5819
- SheetPortal,
5820
- SheetTitle,
5821
- SheetTrigger,
5822
- Sidebar,
5823
- SidebarContent,
5824
- SidebarFooter,
5825
- SidebarGroup,
5826
- SidebarGroupAction,
5827
- SidebarGroupContent,
5828
- SidebarGroupLabel,
5829
- SidebarHeader,
5830
- SidebarInput,
5831
- SidebarInset,
5832
- SidebarMenu,
5833
- SidebarMenuAction,
5834
- SidebarMenuBadge,
5835
- SidebarMenuButton,
5836
- SidebarMenuItem,
5837
- SidebarMenuSkeleton,
5838
- SidebarMenuSub,
5839
- SidebarMenuSubButton,
5840
- SidebarMenuSubItem,
5841
- SidebarProvider,
5842
- SidebarRail,
5843
- SidebarSeparator,
5844
- SidebarTrigger,
5845
1810
  SiteIcon,
5846
- Skeleton,
5847
- Slider,
5848
- SonnerToaster,
5849
- Switch,
5850
- Table,
5851
- TableBody,
5852
- TableCaption,
5853
- TableCell,
5854
- TableFooter,
5855
- TableHead,
5856
- TableHeader,
5857
- TableRow,
5858
- Tabs,
5859
- TabsContent,
5860
- TabsList,
5861
- TabsTrigger,
5862
- Textarea,
5863
- Toast,
5864
- ToastAction,
5865
- ToastClose,
5866
- ToastDescription,
5867
- ToastProvider,
5868
- ToastTitle,
5869
- ToastToaster,
5870
- ToastViewport,
5871
- Toggle,
5872
- ToggleGroup,
5873
- ToggleGroupItem,
5874
- Tooltip,
5875
- TooltipContent,
5876
- TooltipProvider,
5877
- TooltipTrigger,
5878
- badgeVariants,
5879
1811
  buttonVariants,
5880
1812
  getGlobalIcon,
5881
1813
  getIconElement,
5882
- globalLucideIcons,
5883
- navigationMenuTriggerStyle,
5884
- reducer,
5885
- toast,
5886
- toggleVariants,
5887
- useFormField,
5888
- useIsMobile,
5889
- useSidebar,
5890
- useToast
1814
+ globalLucideIcons
5891
1815
  });
5892
1816
  /**
5893
1817
  * @license