@akira-io/ui 1.3.0 → 2.0.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 (76) hide show
  1. package/README.md +2 -2
  2. package/dist/blocks.d.ts +100 -10
  3. package/dist/blocks.js +547 -270
  4. package/dist/blocks.js.map +1 -1
  5. package/dist/{chunk-IE6VWUSB.js → chunk-2V6HUWST.js} +19 -6
  6. package/dist/chunk-2V6HUWST.js.map +1 -0
  7. package/dist/{chunk-UTSTTTH5.js → chunk-3Z2VGVPI.js} +18 -8
  8. package/dist/chunk-3Z2VGVPI.js.map +1 -0
  9. package/dist/{chunk-PSJGAZIS.js → chunk-B3L6PRLX.js} +208 -100
  10. package/dist/chunk-B3L6PRLX.js.map +1 -0
  11. package/dist/chunk-DE2AJ54R.js +458 -0
  12. package/dist/chunk-DE2AJ54R.js.map +1 -0
  13. package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
  14. package/dist/chunk-E26KKMGS.js.map +1 -0
  15. package/dist/{chunk-O5DZTX7D.js → chunk-EYPM6IMS.js} +30 -34
  16. package/dist/chunk-EYPM6IMS.js.map +1 -0
  17. package/dist/chunk-IQMRJXEO.js +5 -4
  18. package/dist/chunk-IQMRJXEO.js.map +1 -1
  19. package/dist/{chunk-I5UZAJB4.js → chunk-KHOA4TEI.js} +85 -30
  20. package/dist/chunk-KHOA4TEI.js.map +1 -0
  21. package/dist/chunk-L2H5GIF7.js +5 -4
  22. package/dist/chunk-L2H5GIF7.js.map +1 -1
  23. package/dist/{chunk-NA33PNQO.js → chunk-SZUXATOF.js} +170 -76
  24. package/dist/chunk-SZUXATOF.js.map +1 -0
  25. package/dist/chunk-TM5MN3MI.js +29 -0
  26. package/dist/chunk-TM5MN3MI.js.map +1 -0
  27. package/dist/{chunk-7LBWPBVE.js → chunk-UCJTM3UM.js} +259 -248
  28. package/dist/chunk-UCJTM3UM.js.map +1 -0
  29. package/dist/{chunk-MCMBS2SB.js → chunk-UXVI326F.js} +15 -8
  30. package/dist/chunk-UXVI326F.js.map +1 -0
  31. package/dist/chunk-VA6A4HZ2.js +394 -0
  32. package/dist/chunk-VA6A4HZ2.js.map +1 -0
  33. package/dist/{chunk-SBLZ6T3D.js → chunk-YBXRJSR3.js} +15 -7
  34. package/dist/chunk-YBXRJSR3.js.map +1 -0
  35. package/dist/code.d.ts +2 -2
  36. package/dist/code.js +96 -52
  37. package/dist/code.js.map +1 -1
  38. package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
  39. package/dist/editor.d.ts +1 -1
  40. package/dist/editor.js +135 -52
  41. package/dist/editor.js.map +1 -1
  42. package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
  43. package/dist/index.d.ts +14 -11
  44. package/dist/index.js +1107 -635
  45. package/dist/index.js.map +1 -1
  46. package/dist/inertia.d.ts +11 -3
  47. package/dist/inertia.js +66 -12
  48. package/dist/inertia.js.map +1 -1
  49. package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
  50. package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
  51. package/dist/locales/pt.d.ts +9 -8
  52. package/dist/locales/pt.js +40 -3
  53. package/dist/locales/pt.js.map +1 -1
  54. package/dist/shells.d.ts +46 -5
  55. package/dist/shells.js +211 -71
  56. package/dist/shells.js.map +1 -1
  57. package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
  58. package/dist/types-1LUmNJf_.d.ts +41 -0
  59. package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
  60. package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
  61. package/package.json +4 -2
  62. package/theme.css +3 -0
  63. package/themes/nosferry.css +2 -2
  64. package/dist/chunk-7LBWPBVE.js.map +0 -1
  65. package/dist/chunk-I5UZAJB4.js.map +0 -1
  66. package/dist/chunk-IE6VWUSB.js.map +0 -1
  67. package/dist/chunk-MCMBS2SB.js.map +0 -1
  68. package/dist/chunk-NA33PNQO.js.map +0 -1
  69. package/dist/chunk-NGMG2UWX.js +0 -172
  70. package/dist/chunk-NGMG2UWX.js.map +0 -1
  71. package/dist/chunk-O5DZTX7D.js.map +0 -1
  72. package/dist/chunk-PSJGAZIS.js.map +0 -1
  73. package/dist/chunk-QNF4LJVT.js.map +0 -1
  74. package/dist/chunk-SBLZ6T3D.js.map +0 -1
  75. package/dist/chunk-UTSTTTH5.js.map +0 -1
  76. package/dist/types-u1qfmJQi.d.ts +0 -28
package/dist/index.js CHANGED
@@ -1,42 +1,203 @@
1
- import { Popover, PopoverTrigger, PopoverContent, Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, Select, SelectTrigger, SelectContent, SelectItem, Calendar, FieldContext, FieldError, useField, ConfirmDialog } from './chunk-7LBWPBVE.js';
2
- export { Alert, AlertDescription, AlertTitle, Calendar, CalendarDayButton, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, FieldError, FloatingSheet, FloatingSheetBody, FloatingSheetFooter, FloatingSheetStack, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, alertDefaultLabels, confirmDialogDefaultLabels, floatingSheetDefaultLabels, useField } from './chunk-7LBWPBVE.js';
3
- export { CopyButton, copyButtonLabels } from './chunk-MCMBS2SB.js';
4
- import { toggleVariants } from './chunk-SBLZ6T3D.js';
5
- export { Toggle, toggleVariants } from './chunk-SBLZ6T3D.js';
6
- import { Label } from './chunk-O5DZTX7D.js';
7
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Label } from './chunk-O5DZTX7D.js';
8
- import { useAppearance } from './chunk-IQMRJXEO.js';
9
- export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants } from './chunk-IE6VWUSB.js';
10
- import { useUiLabels } from './chunk-QNF4LJVT.js';
11
- export { UiLocaleProvider, useUiLabels, useUiLocale } from './chunk-QNF4LJVT.js';
12
- import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItem } from './chunk-PSJGAZIS.js';
13
- export { Avatar, AvatarFallback, AvatarImage, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Collapsible, CollapsibleContent, CollapsibleTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Icon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, useSidebar } from './chunk-PSJGAZIS.js';
14
- import { Input } from './chunk-UTSTTTH5.js';
15
- export { Input, Separator } from './chunk-UTSTTTH5.js';
16
- import { cn, focusRing, nestedRadius, nestedSurfaceReset, nestedEdgeToEdge, elevatedSurface, modalSurface, Button, menuSurface, fieldFocus, fieldSurface, floatingSurface, panelSurface, buttonVariants, Spinner } from './chunk-I5UZAJB4.js';
17
- export { Button, Spinner, buttonVariants, cn, controlFill, elevatedSurface, focusRing, menuHighlight, nestedEdgeToEdge, nestedRadius, nestedSurfaceReset, recessedSurface, spinnerVariants, surface } from './chunk-I5UZAJB4.js';
18
- import * as React3 from 'react';
19
- import { useState, useRef, useCallback, useEffect, useMemo, useId } from 'react';
20
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
- import * as AccordionPrimitive from '@radix-ui/react-accordion';
22
- import { ChevronDown, SunIcon, MoonIcon, MonitorIcon, ArrowLeft, ArrowRight, CheckIcon, ChevronsUpDown, Check, ChevronRightIcon, CircleIcon, MoreVertical, SearchX, Search, X, Plus, ArrowUpDown, ChevronLeft, ChevronRight, CalendarIcon, CalendarRange, ChevronDownIcon, ChevronLeftIcon, MoreHorizontalIcon, EyeOff, Eye, TriangleAlert, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, PlusCircle } from 'lucide-react';
23
- import { AlertDialog as AlertDialog$1, AspectRatio as AspectRatio$1, ContextMenu as ContextMenu$1, HoverCard as HoverCard$1, Menubar as Menubar$1, Progress as Progress$1, RadioGroup as RadioGroup$1, Slider as Slider$1 } from 'radix-ui';
24
- import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
25
- import { Slot } from '@radix-ui/react-slot';
26
- import { cva } from 'class-variance-authority';
27
- import useEmblaCarousel from 'embla-carousel-react';
28
- import * as RechartsPrimitive from 'recharts';
29
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
30
- import { useReactTable, getPaginationRowModel, getFilteredRowModel, getSortedRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
31
- import { format } from 'date-fns';
32
- import { Drawer as Drawer$1 } from 'vaul';
33
- import { useFormContext, FormProvider, Controller } from 'react-hook-form';
34
- import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
35
- import * as ResizablePrimitive from 'react-resizable-panels';
36
- import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
37
- import { Toaster as Toaster$1 } from 'sonner';
38
- export { toast } from 'sonner';
1
+ 'use client';
39
2
 
3
+ "use client";
4
+ import {
5
+ Calendar,
6
+ CalendarDayButton,
7
+ Command,
8
+ CommandDialog,
9
+ CommandEmpty,
10
+ CommandGroup,
11
+ CommandInput,
12
+ CommandItem,
13
+ CommandList,
14
+ CommandSeparator,
15
+ CommandShortcut,
16
+ ConfirmDialog,
17
+ FloatingSheet,
18
+ FloatingSheetBody,
19
+ FloatingSheetFooter,
20
+ FloatingSheetStack,
21
+ InputOTP,
22
+ InputOTPGroup,
23
+ InputOTPSeparator,
24
+ InputOTPSlot,
25
+ Popover,
26
+ PopoverAnchor,
27
+ PopoverContent,
28
+ PopoverTrigger,
29
+ Select,
30
+ SelectContent,
31
+ SelectGroup,
32
+ SelectItem,
33
+ SelectLabel,
34
+ SelectScrollDownButton,
35
+ SelectScrollUpButton,
36
+ SelectSeparator,
37
+ SelectTrigger,
38
+ SelectValue,
39
+ Switch,
40
+ Tabs,
41
+ TabsContent,
42
+ TabsList,
43
+ TabsTrigger,
44
+ Textarea,
45
+ confirmDialogDefaultLabels,
46
+ floatingSheetDefaultLabels
47
+ } from "./chunk-UCJTM3UM.js";
48
+ import {
49
+ CopyButton,
50
+ copyButtonLabels
51
+ } from "./chunk-UXVI326F.js";
52
+ import {
53
+ Toggle,
54
+ toggleVariants
55
+ } from "./chunk-YBXRJSR3.js";
56
+ import {
57
+ Dialog,
58
+ DialogClose,
59
+ DialogContent,
60
+ DialogDescription,
61
+ DialogFooter,
62
+ DialogHeader,
63
+ DialogOverlay,
64
+ DialogPortal,
65
+ DialogTitle,
66
+ DialogTrigger
67
+ } from "./chunk-EYPM6IMS.js";
68
+ import {
69
+ useAppearance
70
+ } from "./chunk-IQMRJXEO.js";
71
+ import {
72
+ Card,
73
+ CardContent,
74
+ CardDescription,
75
+ CardFooter,
76
+ CardHeader,
77
+ CardTitle,
78
+ cardVariants
79
+ } from "./chunk-2V6HUWST.js";
80
+ import {
81
+ Alert,
82
+ AlertDescription,
83
+ AlertTitle,
84
+ Checkbox,
85
+ Field,
86
+ FieldControl,
87
+ FieldDescription,
88
+ FieldError,
89
+ FieldGroup,
90
+ FieldLabel,
91
+ PasswordInput,
92
+ alertDefaultLabels,
93
+ passwordInputDefaultLabels,
94
+ useField
95
+ } from "./chunk-VA6A4HZ2.js";
96
+ import {
97
+ UiLocaleProvider,
98
+ useUiLabels,
99
+ useUiLocale
100
+ } from "./chunk-E26KKMGS.js";
101
+ import {
102
+ Label
103
+ } from "./chunk-TM5MN3MI.js";
104
+ import {
105
+ Avatar,
106
+ AvatarFallback,
107
+ AvatarImage,
108
+ Breadcrumb,
109
+ BreadcrumbEllipsis,
110
+ BreadcrumbItem,
111
+ BreadcrumbLink,
112
+ BreadcrumbList,
113
+ BreadcrumbPage,
114
+ BreadcrumbSeparator,
115
+ Collapsible,
116
+ CollapsibleContent,
117
+ CollapsibleTrigger,
118
+ DropdownMenu,
119
+ DropdownMenuCheckboxItem,
120
+ DropdownMenuContent,
121
+ DropdownMenuGroup,
122
+ DropdownMenuItem,
123
+ DropdownMenuLabel,
124
+ DropdownMenuPortal,
125
+ DropdownMenuRadioGroup,
126
+ DropdownMenuRadioItem,
127
+ DropdownMenuSeparator,
128
+ DropdownMenuShortcut,
129
+ DropdownMenuSub,
130
+ DropdownMenuSubContent,
131
+ DropdownMenuSubTrigger,
132
+ DropdownMenuTrigger,
133
+ Icon,
134
+ Sheet,
135
+ SheetClose,
136
+ SheetContent,
137
+ SheetDescription,
138
+ SheetFooter,
139
+ SheetHeader,
140
+ SheetTitle,
141
+ SheetTrigger,
142
+ Sidebar,
143
+ SidebarContent,
144
+ SidebarFooter,
145
+ SidebarGroup,
146
+ SidebarGroupAction,
147
+ SidebarGroupContent,
148
+ SidebarGroupLabel,
149
+ SidebarHeader,
150
+ SidebarInput,
151
+ SidebarInset,
152
+ SidebarMenu,
153
+ SidebarMenuAction,
154
+ SidebarMenuBadge,
155
+ SidebarMenuButton,
156
+ SidebarMenuItem,
157
+ SidebarMenuSkeleton,
158
+ SidebarMenuSub,
159
+ SidebarMenuSubButton,
160
+ SidebarMenuSubItem,
161
+ SidebarProvider,
162
+ SidebarRail,
163
+ SidebarSeparator,
164
+ SidebarTrigger,
165
+ Skeleton,
166
+ Tooltip,
167
+ TooltipContent,
168
+ TooltipProvider,
169
+ TooltipTrigger,
170
+ useSidebar
171
+ } from "./chunk-B3L6PRLX.js";
172
+ import {
173
+ Input,
174
+ Separator
175
+ } from "./chunk-3Z2VGVPI.js";
176
+ import {
177
+ Button,
178
+ Spinner,
179
+ buttonVariants,
180
+ cn,
181
+ controlFill,
182
+ elevatedSurface,
183
+ fieldFocus,
184
+ fieldSurface,
185
+ floatingSurface,
186
+ focusRing,
187
+ menuHighlight,
188
+ menuSurface,
189
+ modalSurface,
190
+ nestedEdgeToEdge,
191
+ nestedRadius,
192
+ nestedSurfaceReset,
193
+ panelSurface,
194
+ recessedSurface,
195
+ spinnerVariants,
196
+ surface
197
+ } from "./chunk-KHOA4TEI.js";
198
+
199
+ // src/hooks/use-autosave.ts
200
+ import { useCallback, useEffect, useRef, useState } from "react";
40
201
  var AUTOSAVE_DELAY = 700;
41
202
  function shallowEqual(a, b) {
42
203
  if (Object.is(a, b)) {
@@ -126,11 +287,15 @@ function useAutosave(values, onSave, options = {}) {
126
287
  }, [values, delay, enabled, run]);
127
288
  return { status, error, flush, reset };
128
289
  }
290
+
291
+ // src/hooks/use-confirm-dialog.tsx
292
+ import { useState as useState2 } from "react";
293
+ import { jsx } from "react/jsx-runtime";
129
294
  function useConfirmDialog() {
130
- const [isOpen, setIsOpen] = useState(false);
131
- const [options, setOptions] = useState({});
132
- const [onConfirmCallback, setOnConfirmCallback] = useState(null);
133
- const [onCancelCallback, setOnCancelCallback] = useState(null);
295
+ const [isOpen, setIsOpen] = useState2(false);
296
+ const [options, setOptions] = useState2({});
297
+ const [onConfirmCallback, setOnConfirmCallback] = useState2(null);
298
+ const [onCancelCallback, setOnCancelCallback] = useState2(null);
134
299
  const confirm = (onConfirm, confirmOptions, onCancel) => {
135
300
  setOptions(confirmOptions || {});
136
301
  setOnConfirmCallback(() => onConfirm);
@@ -157,12 +322,18 @@ function useConfirmDialog() {
157
322
  );
158
323
  return { confirm, ConfirmDialog: ConfirmDialogComponent };
159
324
  }
325
+
326
+ // src/components/ui/accordion.tsx
327
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
328
+ import { ChevronDown } from "lucide-react";
329
+ import * as React from "react";
330
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
160
331
  function Accordion({
161
332
  className,
162
333
  slotName = "accordion",
163
334
  ...props
164
335
  }) {
165
- return /* @__PURE__ */ jsx(
336
+ return /* @__PURE__ */ jsx2(
166
337
  AccordionPrimitive.Root,
167
338
  {
168
339
  className: cn(elevatedSurface, "px-5 bg-card", className),
@@ -171,7 +342,7 @@ function Accordion({
171
342
  }
172
343
  );
173
344
  }
174
- var AccordionItem = React3.forwardRef(({ className, slotName = "accordion-item", ...props }, ref) => /* @__PURE__ */ jsx(
345
+ var AccordionItem = React.forwardRef(({ className, slotName = "accordion-item", ...props }, ref) => /* @__PURE__ */ jsx2(
175
346
  AccordionPrimitive.Item,
176
347
  {
177
348
  ref,
@@ -181,7 +352,7 @@ var AccordionItem = React3.forwardRef(({ className, slotName = "accordion-item",
181
352
  }
182
353
  ));
183
354
  AccordionItem.displayName = "AccordionItem";
184
- var AccordionTrigger = React3.forwardRef(({ className, children, slotName = "accordion-trigger", ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
355
+ var AccordionTrigger = React.forwardRef(({ className, children, slotName = "accordion-trigger", ...props }, ref) => /* @__PURE__ */ jsx2(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
185
356
  AccordionPrimitive.Trigger,
186
357
  {
187
358
  ref,
@@ -193,47 +364,77 @@ var AccordionTrigger = React3.forwardRef(({ className, children, slotName = "acc
193
364
  "data-slot": slotName,
194
365
  children: [
195
366
  children,
196
- /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
367
+ /* @__PURE__ */ jsx2(ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
197
368
  ]
198
369
  }
199
370
  ) }));
200
371
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
201
- var AccordionContent = React3.forwardRef(({ className, children, slotName = "accordion-content", ...props }, ref) => /* @__PURE__ */ jsx(
372
+ var AccordionContent = React.forwardRef(({ className, children, slotName = "accordion-content", ...props }, ref) => /* @__PURE__ */ jsx2(
202
373
  AccordionPrimitive.Content,
203
374
  {
204
375
  ref,
205
376
  className: "text-md data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden transition-all",
206
377
  ...props,
207
378
  "data-slot": slotName,
208
- children: /* @__PURE__ */ jsx("div", { className: cn("pb-4 pt-0", className), children })
379
+ children: /* @__PURE__ */ jsx2("div", { className: cn("pb-4 pt-0", className), children })
209
380
  }
210
381
  ));
211
382
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
383
+
384
+ // src/components/ui/akira-mark.tsx
385
+ import { jsx as jsx3 } from "react/jsx-runtime";
386
+ function AkiraMark({
387
+ slotName = "akira-mark",
388
+ "aria-label": ariaLabel,
389
+ "aria-labelledby": ariaLabelledBy,
390
+ ...props
391
+ }) {
392
+ const isLabelled = ariaLabel !== void 0 || ariaLabelledBy !== void 0;
393
+ return /* @__PURE__ */ jsx3(
394
+ "svg",
395
+ {
396
+ viewBox: "0 0 32.06 30.95",
397
+ fill: "currentColor",
398
+ xmlns: "http://www.w3.org/2000/svg",
399
+ ...props,
400
+ "aria-label": ariaLabel,
401
+ "aria-labelledby": ariaLabelledBy,
402
+ "aria-hidden": isLabelled ? void 0 : true,
403
+ role: isLabelled ? "img" : void 0,
404
+ "data-slot": slotName,
405
+ children: /* @__PURE__ */ jsx3("path", { d: "M30.5,17.75,21.6,2.25h0a4.42,4.42,0,0,0-7.7,0L.4,25.85a3.29,3.29,0,0,0-.4,1.7A3.35,3.35,0,0,0,3.3,31a3.24,3.24,0,0,0,2.9-1.7l10.7-18.7a1,1,0,0,1,1.8,0l3.4,5.9a.88.88,0,0,1-.8,1.3H17.5a3.35,3.35,0,0,0-3.3,3.4h0a3.35,3.35,0,0,0,3.3,3.4H28.8a3.24,3.24,0,0,0,2.8-4.9Z" })
406
+ }
407
+ );
408
+ }
409
+
410
+ // src/components/ui/alert-dialog.tsx
411
+ import { AlertDialog as AlertDialogPrimitive } from "radix-ui";
412
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
212
413
  function AlertDialog({
213
414
  slotName = "alert-dialog",
214
415
  ...props
215
416
  }) {
216
- return /* @__PURE__ */ jsx(AlertDialog$1.Root, { ...props, "data-slot": slotName });
417
+ return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Root, { ...props, "data-slot": slotName });
217
418
  }
218
419
  function AlertDialogTrigger({
219
420
  slotName = "alert-dialog-trigger",
220
421
  ...props
221
422
  }) {
222
- return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, { ...props, "data-slot": slotName });
423
+ return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Trigger, { ...props, "data-slot": slotName });
223
424
  }
224
425
  function AlertDialogPortal({
225
426
  slotName = "alert-dialog-portal",
226
427
  ...props
227
428
  }) {
228
- return /* @__PURE__ */ jsx(AlertDialog$1.Portal, { ...props, "data-slot": slotName });
429
+ return /* @__PURE__ */ jsx4(AlertDialogPrimitive.Portal, { ...props, "data-slot": slotName });
229
430
  }
230
431
  function AlertDialogOverlay({
231
432
  className,
232
433
  slotName = "alert-dialog-overlay",
233
434
  ...props
234
435
  }) {
235
- return /* @__PURE__ */ jsx(
236
- AlertDialog$1.Overlay,
436
+ return /* @__PURE__ */ jsx4(
437
+ AlertDialogPrimitive.Overlay,
237
438
  {
238
439
  className: cn(
239
440
  "inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
@@ -250,10 +451,10 @@ function AlertDialogContent({
250
451
  slotName = "alert-dialog-content",
251
452
  ...props
252
453
  }) {
253
- return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
254
- /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
255
- /* @__PURE__ */ jsx(
256
- AlertDialog$1.Content,
454
+ return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
455
+ /* @__PURE__ */ jsx4(AlertDialogOverlay, {}),
456
+ /* @__PURE__ */ jsx4(
457
+ AlertDialogPrimitive.Content,
257
458
  {
258
459
  "data-size": size,
259
460
  className: cn(
@@ -271,7 +472,7 @@ function AlertDialogHeader({
271
472
  slotName = "alert-dialog-header",
272
473
  ...props
273
474
  }) {
274
- return /* @__PURE__ */ jsx(
475
+ return /* @__PURE__ */ jsx4(
275
476
  "div",
276
477
  {
277
478
  className: cn(
@@ -288,7 +489,7 @@ function AlertDialogFooter({
288
489
  slotName = "alert-dialog-footer",
289
490
  ...props
290
491
  }) {
291
- return /* @__PURE__ */ jsx(
492
+ return /* @__PURE__ */ jsx4(
292
493
  "div",
293
494
  {
294
495
  className: cn(
@@ -305,8 +506,8 @@ function AlertDialogTitle({
305
506
  slotName = "alert-dialog-title",
306
507
  ...props
307
508
  }) {
308
- return /* @__PURE__ */ jsx(
309
- AlertDialog$1.Title,
509
+ return /* @__PURE__ */ jsx4(
510
+ AlertDialogPrimitive.Title,
310
511
  {
311
512
  className: cn(
312
513
  "text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
@@ -322,8 +523,8 @@ function AlertDialogDescription({
322
523
  slotName = "alert-dialog-description",
323
524
  ...props
324
525
  }) {
325
- return /* @__PURE__ */ jsx(
326
- AlertDialog$1.Description,
526
+ return /* @__PURE__ */ jsx4(
527
+ AlertDialogPrimitive.Description,
327
528
  {
328
529
  className: cn("text-sm text-muted-foreground", className),
329
530
  ...props,
@@ -336,7 +537,7 @@ function AlertDialogMedia({
336
537
  slotName = "alert-dialog-media",
337
538
  ...props
338
539
  }) {
339
- return /* @__PURE__ */ jsx(
540
+ return /* @__PURE__ */ jsx4(
340
541
  "div",
341
542
  {
342
543
  className: cn(
@@ -355,8 +556,8 @@ function AlertDialogAction({
355
556
  slotName = "alert-dialog-action",
356
557
  ...props
357
558
  }) {
358
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
359
- AlertDialog$1.Action,
559
+ return /* @__PURE__ */ jsx4(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx4(
560
+ AlertDialogPrimitive.Action,
360
561
  {
361
562
  className: cn(className),
362
563
  ...props,
@@ -371,8 +572,8 @@ function AlertDialogCancel({
371
572
  slotName = "alert-dialog-cancel",
372
573
  ...props
373
574
  }) {
374
- return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
375
- AlertDialog$1.Cancel,
575
+ return /* @__PURE__ */ jsx4(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx4(
576
+ AlertDialogPrimitive.Cancel,
376
577
  {
377
578
  className: cn(className),
378
579
  ...props,
@@ -380,7 +581,15 @@ function AlertDialogCancel({
380
581
  }
381
582
  ) });
382
583
  }
383
- var ToggleGroupContext = React3.createContext({
584
+
585
+ // src/components/ui/appearance-toggle.tsx
586
+ import { MonitorIcon, MoonIcon, SunIcon } from "lucide-react";
587
+
588
+ // src/components/ui/toggle-group.tsx
589
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
590
+ import * as React2 from "react";
591
+ import { jsx as jsx5 } from "react/jsx-runtime";
592
+ var ToggleGroupContext = React2.createContext({
384
593
  size: "default",
385
594
  variant: "default"
386
595
  });
@@ -392,7 +601,7 @@ function ToggleGroup({
392
601
  slotName = "toggle-group",
393
602
  ...props
394
603
  }) {
395
- return /* @__PURE__ */ jsx(
604
+ return /* @__PURE__ */ jsx5(
396
605
  ToggleGroupPrimitive.Root,
397
606
  {
398
607
  "data-variant": variant,
@@ -403,7 +612,7 @@ function ToggleGroup({
403
612
  ),
404
613
  ...props,
405
614
  "data-slot": slotName,
406
- children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, { value: { variant, size }, children })
615
+ children: /* @__PURE__ */ jsx5(ToggleGroupContext.Provider, { value: { variant, size }, children })
407
616
  }
408
617
  );
409
618
  }
@@ -415,8 +624,8 @@ function ToggleGroupItem({
415
624
  slotName = "toggle-group-item",
416
625
  ...props
417
626
  }) {
418
- const context = React3.useContext(ToggleGroupContext);
419
- return /* @__PURE__ */ jsx(
627
+ const context = React2.useContext(ToggleGroupContext);
628
+ return /* @__PURE__ */ jsx5(
420
629
  ToggleGroupPrimitive.Item,
421
630
  {
422
631
  "data-variant": context.variant || variant,
@@ -435,6 +644,9 @@ function ToggleGroupItem({
435
644
  }
436
645
  );
437
646
  }
647
+
648
+ // src/components/ui/appearance-toggle.tsx
649
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
438
650
  var appearanceToggleDefaultLabels = {
439
651
  groupLabel: "Appearance",
440
652
  lightLabel: "Light",
@@ -466,36 +678,36 @@ function AppearanceToggle({
466
678
  const current = OPTIONS.find((option) => option.value === appearance);
467
679
  const CurrentIcon = current?.icon ?? MonitorIcon;
468
680
  if (variant === "menu") {
469
- return /* @__PURE__ */ jsx(
681
+ return /* @__PURE__ */ jsx6(
470
682
  "div",
471
683
  {
472
684
  "data-variant": "menu",
473
685
  className: cn("inline-flex", className),
474
686
  ...props,
475
687
  "data-slot": slotName,
476
- children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
477
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
688
+ children: /* @__PURE__ */ jsxs3(DropdownMenu, { children: [
689
+ /* @__PURE__ */ jsx6(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx6(
478
690
  Button,
479
691
  {
480
692
  slotName: "appearance-toggle-trigger",
481
693
  variant: "ghost",
482
694
  size: "icon-sm",
483
695
  "aria-label": labels.groupLabel,
484
- children: /* @__PURE__ */ jsx(CurrentIcon, { "aria-hidden": "true" })
696
+ children: /* @__PURE__ */ jsx6(CurrentIcon, { "aria-hidden": "true" })
485
697
  }
486
698
  ) }),
487
- /* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ jsx(
699
+ /* @__PURE__ */ jsx6(DropdownMenuContent, { align: "end", children: /* @__PURE__ */ jsx6(
488
700
  DropdownMenuRadioGroup,
489
701
  {
490
702
  value: appearance,
491
703
  onValueChange: (value) => updateAppearance(value),
492
- children: OPTIONS.map((option) => /* @__PURE__ */ jsxs(
704
+ children: OPTIONS.map((option) => /* @__PURE__ */ jsxs3(
493
705
  DropdownMenuRadioItem,
494
706
  {
495
707
  slotName: "appearance-toggle-item",
496
708
  value: option.value,
497
709
  children: [
498
- /* @__PURE__ */ jsx(option.icon, { "aria-hidden": "true" }),
710
+ /* @__PURE__ */ jsx6(option.icon, { "aria-hidden": "true" }),
499
711
  option.label(labels)
500
712
  ]
501
713
  },
@@ -507,14 +719,14 @@ function AppearanceToggle({
507
719
  }
508
720
  );
509
721
  }
510
- return /* @__PURE__ */ jsx(
722
+ return /* @__PURE__ */ jsx6(
511
723
  "div",
512
724
  {
513
725
  "data-variant": "segmented",
514
726
  className: cn("inline-flex", className),
515
727
  ...props,
516
728
  "data-slot": slotName,
517
- children: /* @__PURE__ */ jsx(
729
+ children: /* @__PURE__ */ jsx6(
518
730
  ToggleGroup,
519
731
  {
520
732
  type: "single",
@@ -526,15 +738,15 @@ function AppearanceToggle({
526
738
  updateAppearance(value);
527
739
  }
528
740
  },
529
- children: OPTIONS.map((option) => /* @__PURE__ */ jsxs(
741
+ children: OPTIONS.map((option) => /* @__PURE__ */ jsxs3(
530
742
  ToggleGroupItem,
531
743
  {
532
744
  slotName: "appearance-toggle-item",
533
745
  value: option.value,
534
746
  "aria-label": option.label(labels),
535
747
  children: [
536
- /* @__PURE__ */ jsx(option.icon, { "aria-hidden": "true" }),
537
- /* @__PURE__ */ jsx("span", { children: option.label(labels) })
748
+ /* @__PURE__ */ jsx6(option.icon, { "aria-hidden": "true" }),
749
+ /* @__PURE__ */ jsx6("span", { children: option.label(labels) })
538
750
  ]
539
751
  },
540
752
  option.value
@@ -544,12 +756,21 @@ function AppearanceToggle({
544
756
  }
545
757
  );
546
758
  }
759
+
760
+ // src/components/ui/aspect-ratio.tsx
761
+ import { AspectRatio as AspectRatioPrimitive } from "radix-ui";
762
+ import { jsx as jsx7 } from "react/jsx-runtime";
547
763
  function AspectRatio({
548
764
  slotName = "aspect-ratio",
549
765
  ...props
550
766
  }) {
551
- return /* @__PURE__ */ jsx(AspectRatio$1.Root, { ...props, "data-slot": slotName });
767
+ return /* @__PURE__ */ jsx7(AspectRatioPrimitive.Root, { ...props, "data-slot": slotName });
552
768
  }
769
+
770
+ // src/components/ui/badge.tsx
771
+ import { Slot } from "@radix-ui/react-slot";
772
+ import { cva } from "class-variance-authority";
773
+ import { jsx as jsx8 } from "react/jsx-runtime";
553
774
  var badgeVariants = cva(
554
775
  "inline-flex items-center justify-center rounded-full border px-2.5 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
555
776
  {
@@ -574,7 +795,7 @@ function Badge({
574
795
  ...props
575
796
  }) {
576
797
  const Comp = asChild ? Slot : "span";
577
- return /* @__PURE__ */ jsx(
798
+ return /* @__PURE__ */ jsx8(
578
799
  Comp,
579
800
  {
580
801
  className: cn(badgeVariants({ variant }), className),
@@ -583,6 +804,12 @@ function Badge({
583
804
  }
584
805
  );
585
806
  }
807
+
808
+ // src/components/ui/carousel.tsx
809
+ import useEmblaCarousel from "embla-carousel-react";
810
+ import { ArrowLeft, ArrowRight } from "lucide-react";
811
+ import * as React3 from "react";
812
+ import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
586
813
  var CarouselContext = React3.createContext(null);
587
814
  function useCarousel() {
588
815
  const context = React3.useContext(CarouselContext);
@@ -648,7 +875,7 @@ function Carousel({
648
875
  api?.off("select", onSelect);
649
876
  };
650
877
  }, [api, onSelect]);
651
- return /* @__PURE__ */ jsx(
878
+ return /* @__PURE__ */ jsx9(
652
879
  CarouselContext.Provider,
653
880
  {
654
881
  value: {
@@ -661,7 +888,7 @@ function Carousel({
661
888
  canScrollPrev,
662
889
  canScrollNext
663
890
  },
664
- children: /* @__PURE__ */ jsx(
891
+ children: /* @__PURE__ */ jsx9(
665
892
  "div",
666
893
  {
667
894
  onKeyDownCapture: handleKeyDown,
@@ -687,13 +914,13 @@ function CarouselContent({
687
914
  ...props
688
915
  }) {
689
916
  const { carouselRef, orientation } = useCarousel();
690
- return /* @__PURE__ */ jsx(
917
+ return /* @__PURE__ */ jsx9(
691
918
  "div",
692
919
  {
693
920
  ref: carouselRef,
694
921
  className: cn(nestedRadius, "overflow-hidden"),
695
922
  "data-slot": slotName,
696
- children: /* @__PURE__ */ jsx(
923
+ children: /* @__PURE__ */ jsx9(
697
924
  "div",
698
925
  {
699
926
  className: cn(
@@ -713,7 +940,7 @@ function CarouselItem({
713
940
  ...props
714
941
  }) {
715
942
  const { orientation } = useCarousel();
716
- return /* @__PURE__ */ jsx(
943
+ return /* @__PURE__ */ jsx9(
717
944
  "div",
718
945
  {
719
946
  role: "group",
@@ -736,7 +963,7 @@ function CarouselPrevious({
736
963
  ...props
737
964
  }) {
738
965
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
739
- return /* @__PURE__ */ jsxs(
966
+ return /* @__PURE__ */ jsxs4(
740
967
  Button,
741
968
  {
742
969
  variant,
@@ -751,8 +978,8 @@ function CarouselPrevious({
751
978
  ...props,
752
979
  slotName,
753
980
  children: [
754
- /* @__PURE__ */ jsx(ArrowLeft, {}),
755
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Previous slide" })
981
+ /* @__PURE__ */ jsx9(ArrowLeft, {}),
982
+ /* @__PURE__ */ jsx9("span", { className: "sr-only", children: "Previous slide" })
756
983
  ]
757
984
  }
758
985
  );
@@ -765,7 +992,7 @@ function CarouselNext({
765
992
  ...props
766
993
  }) {
767
994
  const { orientation, scrollNext, canScrollNext } = useCarousel();
768
- return /* @__PURE__ */ jsxs(
995
+ return /* @__PURE__ */ jsxs4(
769
996
  Button,
770
997
  {
771
998
  variant,
@@ -780,17 +1007,22 @@ function CarouselNext({
780
1007
  ...props,
781
1008
  slotName,
782
1009
  children: [
783
- /* @__PURE__ */ jsx(ArrowRight, {}),
784
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Next slide" })
1010
+ /* @__PURE__ */ jsx9(ArrowRight, {}),
1011
+ /* @__PURE__ */ jsx9("span", { className: "sr-only", children: "Next slide" })
785
1012
  ]
786
1013
  }
787
1014
  );
788
1015
  }
1016
+
1017
+ // src/components/ui/chart.tsx
1018
+ import * as React4 from "react";
1019
+ import * as RechartsPrimitive from "recharts";
1020
+ import { Fragment, jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
789
1021
  var THEMES = { light: "", dark: ".dark" };
790
1022
  var INITIAL_DIMENSION = { width: 320, height: 200 };
791
- var ChartContext = React3.createContext(null);
1023
+ var ChartContext = React4.createContext(null);
792
1024
  function useChart() {
793
- const context = React3.useContext(ChartContext);
1025
+ const context = React4.useContext(ChartContext);
794
1026
  if (!context) {
795
1027
  throw new Error("useChart must be used within a <ChartContainer />");
796
1028
  }
@@ -805,9 +1037,9 @@ function ChartContainer({
805
1037
  slotName = "chart",
806
1038
  ...props
807
1039
  }) {
808
- const uniqueId = React3.useId();
1040
+ const uniqueId = React4.useId();
809
1041
  const chartId = `chart-${id ?? uniqueId.replace(/:/g, "")}`;
810
- return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
1042
+ return /* @__PURE__ */ jsx10(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
811
1043
  "div",
812
1044
  {
813
1045
  "data-chart": chartId,
@@ -821,8 +1053,8 @@ function ChartContainer({
821
1053
  ...props,
822
1054
  "data-slot": slotName,
823
1055
  children: [
824
- /* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
825
- /* @__PURE__ */ jsx(
1056
+ /* @__PURE__ */ jsx10(ChartStyle, { id: chartId, config }),
1057
+ /* @__PURE__ */ jsx10(
826
1058
  RechartsPrimitive.ResponsiveContainer,
827
1059
  {
828
1060
  initialDimension,
@@ -840,7 +1072,7 @@ var ChartStyle = ({ id, config }) => {
840
1072
  if (!colorConfig.length) {
841
1073
  return null;
842
1074
  }
843
- return /* @__PURE__ */ jsx(
1075
+ return /* @__PURE__ */ jsx10(
844
1076
  "style",
845
1077
  {
846
1078
  dangerouslySetInnerHTML: {
@@ -875,7 +1107,7 @@ function ChartTooltipContent({
875
1107
  labelKey
876
1108
  }) {
877
1109
  const { config } = useChart();
878
- const tooltipLabel = React3.useMemo(() => {
1110
+ const tooltipLabel = React4.useMemo(() => {
879
1111
  if (hideLabel || !payload?.length) {
880
1112
  return null;
881
1113
  }
@@ -884,12 +1116,12 @@ function ChartTooltipContent({
884
1116
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
885
1117
  const value = !labelKey && typeof label === "string" ? config[label]?.label ?? label : itemConfig?.label;
886
1118
  if (labelFormatter) {
887
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1119
+ return /* @__PURE__ */ jsx10("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
888
1120
  }
889
1121
  if (!value) {
890
1122
  return null;
891
1123
  }
892
- return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
1124
+ return /* @__PURE__ */ jsx10("div", { className: cn("font-medium", labelClassName), children: value });
893
1125
  }, [
894
1126
  label,
895
1127
  labelFormatter,
@@ -903,7 +1135,7 @@ function ChartTooltipContent({
903
1135
  return null;
904
1136
  }
905
1137
  const nestLabel = payload.length === 1 && indicator !== "dot";
906
- return /* @__PURE__ */ jsxs(
1138
+ return /* @__PURE__ */ jsxs5(
907
1139
  "div",
908
1140
  {
909
1141
  className: cn(
@@ -912,7 +1144,7 @@ function ChartTooltipContent({
912
1144
  ),
913
1145
  children: [
914
1146
  !nestLabel ? tooltipLabel : null,
915
- /* @__PURE__ */ jsx("div", { className: "gap-1.5 grid", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1147
+ /* @__PURE__ */ jsx10("div", { className: "gap-1.5 grid", children: payload.filter((item) => item.type !== "none").map((item, index) => {
916
1148
  const key = `${nameKey ?? item.name ?? item.dataKey ?? "value"}`;
917
1149
  const itemConfig = getPayloadConfigFromPayload(
918
1150
  config,
@@ -920,7 +1152,7 @@ function ChartTooltipContent({
920
1152
  key
921
1153
  );
922
1154
  const indicatorColor = color ?? item.payload?.fill ?? item.color;
923
- return /* @__PURE__ */ jsx(
1155
+ return /* @__PURE__ */ jsx10(
924
1156
  "div",
925
1157
  {
926
1158
  className: cn(
@@ -933,8 +1165,8 @@ function ChartTooltipContent({
933
1165
  item,
934
1166
  index,
935
1167
  item.payload
936
- ) : /* @__PURE__ */ jsxs(Fragment, { children: [
937
- itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
1168
+ ) : /* @__PURE__ */ jsxs5(Fragment, { children: [
1169
+ itemConfig?.icon ? /* @__PURE__ */ jsx10(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx10(
938
1170
  "div",
939
1171
  {
940
1172
  className: cn(
@@ -952,7 +1184,7 @@ function ChartTooltipContent({
952
1184
  }
953
1185
  }
954
1186
  ),
955
- /* @__PURE__ */ jsxs(
1187
+ /* @__PURE__ */ jsxs5(
956
1188
  "div",
957
1189
  {
958
1190
  className: cn(
@@ -960,11 +1192,11 @@ function ChartTooltipContent({
960
1192
  nestLabel ? "items-end" : "items-center"
961
1193
  ),
962
1194
  children: [
963
- /* @__PURE__ */ jsxs("div", { className: "gap-1.5 grid", children: [
1195
+ /* @__PURE__ */ jsxs5("div", { className: "gap-1.5 grid", children: [
964
1196
  nestLabel ? tooltipLabel : null,
965
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
1197
+ /* @__PURE__ */ jsx10("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })
966
1198
  ] }),
967
- item.value != null && /* @__PURE__ */ jsx("span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
1199
+ item.value != null && /* @__PURE__ */ jsx10("span", { className: "font-mono font-medium text-foreground tabular-nums", children: typeof item.value === "number" ? item.value.toLocaleString() : String(item.value) })
968
1200
  ]
969
1201
  }
970
1202
  )
@@ -989,7 +1221,7 @@ function ChartLegendContent({
989
1221
  if (!payload?.length) {
990
1222
  return null;
991
1223
  }
992
- return /* @__PURE__ */ jsx(
1224
+ return /* @__PURE__ */ jsx10(
993
1225
  "div",
994
1226
  {
995
1227
  className: cn(
@@ -1004,14 +1236,14 @@ function ChartLegendContent({
1004
1236
  item,
1005
1237
  key
1006
1238
  );
1007
- return /* @__PURE__ */ jsxs(
1239
+ return /* @__PURE__ */ jsxs5(
1008
1240
  "div",
1009
1241
  {
1010
1242
  className: cn(
1011
1243
  "gap-1.5 [&>svg]:h-3 [&>svg]:w-3 flex items-center [&>svg]:text-muted-foreground"
1012
1244
  ),
1013
1245
  children: [
1014
- itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
1246
+ itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx10(itemConfig.icon, {}) : /* @__PURE__ */ jsx10(
1015
1247
  "div",
1016
1248
  {
1017
1249
  className: "h-2 w-2 shrink-0 rounded-[2px]",
@@ -1044,31 +1276,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
1044
1276
  }
1045
1277
  return config[key];
1046
1278
  }
1047
- function Checkbox({
1048
- className,
1049
- slotName = "checkbox",
1050
- ...props
1051
- }) {
1052
- return /* @__PURE__ */ jsx(
1053
- CheckboxPrimitive.Root,
1054
- {
1055
- className: cn(
1056
- `peer size-5 shadow-xs shrink-0 rounded-md border border-border transition-all disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground ${focusRing}`,
1057
- className
1058
- ),
1059
- ...props,
1060
- "data-slot": slotName,
1061
- children: /* @__PURE__ */ jsx(
1062
- CheckboxPrimitive.Indicator,
1063
- {
1064
- "data-slot": "checkbox-indicator",
1065
- className: "flex items-center justify-center text-current transition-none",
1066
- children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
1067
- }
1068
- )
1069
- }
1070
- );
1071
- }
1279
+
1280
+ // src/components/ui/combobox.tsx
1281
+ import { Check, ChevronsUpDown } from "lucide-react";
1282
+ import { useState as useState4 } from "react";
1283
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
1072
1284
  var comboboxDefaultLabels = {
1073
1285
  placeholder: "Select an option",
1074
1286
  searchPlaceholder: "Search...",
@@ -1094,10 +1306,10 @@ function Combobox({
1094
1306
  searchPlaceholder,
1095
1307
  emptyText
1096
1308
  });
1097
- const [open, setOpen] = useState(false);
1309
+ const [open, setOpen] = useState4(false);
1098
1310
  const selected = options.find((option) => option.value === value);
1099
- return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
1100
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1311
+ return /* @__PURE__ */ jsxs6(Popover, { open, onOpenChange: setOpen, children: [
1312
+ /* @__PURE__ */ jsx11(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs6(
1101
1313
  Button,
1102
1314
  {
1103
1315
  variant: "outline",
@@ -1117,26 +1329,26 @@ function Combobox({
1117
1329
  slotName,
1118
1330
  children: [
1119
1331
  selected ? selected.label : labels.placeholder,
1120
- /* @__PURE__ */ jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
1332
+ /* @__PURE__ */ jsx11(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
1121
1333
  ]
1122
1334
  }
1123
1335
  ) }),
1124
- /* @__PURE__ */ jsx(
1336
+ /* @__PURE__ */ jsx11(
1125
1337
  PopoverContent,
1126
1338
  {
1127
1339
  className: "p-0 w-[var(--radix-popover-trigger-width)]",
1128
1340
  align: "start",
1129
- children: /* @__PURE__ */ jsxs(Command, { children: [
1130
- /* @__PURE__ */ jsx(
1341
+ children: /* @__PURE__ */ jsxs6(Command, { children: [
1342
+ /* @__PURE__ */ jsx11(
1131
1343
  CommandInput,
1132
1344
  {
1133
1345
  placeholder: labels.searchPlaceholder,
1134
1346
  className: "h-11"
1135
1347
  }
1136
1348
  ),
1137
- /* @__PURE__ */ jsxs(CommandList, { children: [
1138
- /* @__PURE__ */ jsx(CommandEmpty, { children: labels.emptyText }),
1139
- /* @__PURE__ */ jsx(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs(
1349
+ /* @__PURE__ */ jsxs6(CommandList, { children: [
1350
+ /* @__PURE__ */ jsx11(CommandEmpty, { children: labels.emptyText }),
1351
+ /* @__PURE__ */ jsx11(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs6(
1140
1352
  CommandItem,
1141
1353
  {
1142
1354
  value: option.label,
@@ -1146,7 +1358,7 @@ function Combobox({
1146
1358
  },
1147
1359
  className: "h-11 rounded-xl",
1148
1360
  children: [
1149
- /* @__PURE__ */ jsx(
1361
+ /* @__PURE__ */ jsx11(
1150
1362
  Check,
1151
1363
  {
1152
1364
  className: cn(
@@ -1166,41 +1378,46 @@ function Combobox({
1166
1378
  )
1167
1379
  ] });
1168
1380
  }
1381
+
1382
+ // src/components/ui/context-menu.tsx
1383
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
1384
+ import { ContextMenu as ContextMenuPrimitive } from "radix-ui";
1385
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1169
1386
  function ContextMenu({
1170
1387
  slotName = "context-menu",
1171
1388
  ...props
1172
1389
  }) {
1173
- return /* @__PURE__ */ jsx(ContextMenu$1.Root, { ...props, "data-slot": slotName });
1390
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Root, { ...props, "data-slot": slotName });
1174
1391
  }
1175
1392
  function ContextMenuTrigger({
1176
1393
  slotName = "context-menu-trigger",
1177
1394
  ...props
1178
1395
  }) {
1179
- return /* @__PURE__ */ jsx(ContextMenu$1.Trigger, { ...props, "data-slot": slotName });
1396
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Trigger, { ...props, "data-slot": slotName });
1180
1397
  }
1181
1398
  function ContextMenuGroup({
1182
1399
  slotName = "context-menu-group",
1183
1400
  ...props
1184
1401
  }) {
1185
- return /* @__PURE__ */ jsx(ContextMenu$1.Group, { ...props, "data-slot": slotName });
1402
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Group, { ...props, "data-slot": slotName });
1186
1403
  }
1187
1404
  function ContextMenuPortal({
1188
1405
  slotName = "context-menu-portal",
1189
1406
  ...props
1190
1407
  }) {
1191
- return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { ...props, "data-slot": slotName });
1408
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { ...props, "data-slot": slotName });
1192
1409
  }
1193
1410
  function ContextMenuSub({
1194
1411
  slotName = "context-menu-sub",
1195
1412
  ...props
1196
1413
  }) {
1197
- return /* @__PURE__ */ jsx(ContextMenu$1.Sub, { ...props, "data-slot": slotName });
1414
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Sub, { ...props, "data-slot": slotName });
1198
1415
  }
1199
1416
  function ContextMenuRadioGroup({
1200
1417
  slotName = "context-menu-radio-group",
1201
1418
  ...props
1202
1419
  }) {
1203
- return /* @__PURE__ */ jsx(ContextMenu$1.RadioGroup, { ...props, "data-slot": slotName });
1420
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.RadioGroup, { ...props, "data-slot": slotName });
1204
1421
  }
1205
1422
  function ContextMenuSubTrigger({
1206
1423
  className,
@@ -1209,8 +1426,8 @@ function ContextMenuSubTrigger({
1209
1426
  slotName = "context-menu-sub-trigger",
1210
1427
  ...props
1211
1428
  }) {
1212
- return /* @__PURE__ */ jsxs(
1213
- ContextMenu$1.SubTrigger,
1429
+ return /* @__PURE__ */ jsxs7(
1430
+ ContextMenuPrimitive.SubTrigger,
1214
1431
  {
1215
1432
  "data-inset": inset,
1216
1433
  className: cn(
@@ -1221,7 +1438,7 @@ function ContextMenuSubTrigger({
1221
1438
  "data-slot": slotName,
1222
1439
  children: [
1223
1440
  children,
1224
- /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto" })
1441
+ /* @__PURE__ */ jsx12(ChevronRightIcon, { className: "ml-auto" })
1225
1442
  ]
1226
1443
  }
1227
1444
  );
@@ -1231,8 +1448,8 @@ function ContextMenuSubContent({
1231
1448
  slotName = "context-menu-sub-content",
1232
1449
  ...props
1233
1450
  }) {
1234
- return /* @__PURE__ */ jsx(
1235
- ContextMenu$1.SubContent,
1451
+ return /* @__PURE__ */ jsx12(
1452
+ ContextMenuPrimitive.SubContent,
1236
1453
  {
1237
1454
  className: cn(
1238
1455
  `${menuSurface} p-1.5 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden`,
@@ -1248,8 +1465,8 @@ function ContextMenuContent({
1248
1465
  slotName = "context-menu-content",
1249
1466
  ...props
1250
1467
  }) {
1251
- return /* @__PURE__ */ jsx(ContextMenu$1.Portal, { children: /* @__PURE__ */ jsx(
1252
- ContextMenu$1.Content,
1468
+ return /* @__PURE__ */ jsx12(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
1469
+ ContextMenuPrimitive.Content,
1253
1470
  {
1254
1471
  className: cn(
1255
1472
  `${menuSurface} p-1.5 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto`,
@@ -1267,8 +1484,8 @@ function ContextMenuItem({
1267
1484
  slotName = "context-menu-item",
1268
1485
  ...props
1269
1486
  }) {
1270
- return /* @__PURE__ */ jsx(
1271
- ContextMenu$1.Item,
1487
+ return /* @__PURE__ */ jsx12(
1488
+ ContextMenuPrimitive.Item,
1272
1489
  {
1273
1490
  "data-inset": inset,
1274
1491
  "data-variant": variant,
@@ -1288,8 +1505,8 @@ function ContextMenuCheckboxItem({
1288
1505
  slotName = "context-menu-checkbox-item",
1289
1506
  ...props
1290
1507
  }) {
1291
- return /* @__PURE__ */ jsxs(
1292
- ContextMenu$1.CheckboxItem,
1508
+ return /* @__PURE__ */ jsxs7(
1509
+ ContextMenuPrimitive.CheckboxItem,
1293
1510
  {
1294
1511
  className: cn(
1295
1512
  "gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -1299,7 +1516,7 @@ function ContextMenuCheckboxItem({
1299
1516
  ...props,
1300
1517
  "data-slot": slotName,
1301
1518
  children: [
1302
- /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
1519
+ /* @__PURE__ */ jsx12("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(CheckIcon, { className: "size-4" }) }) }),
1303
1520
  children
1304
1521
  ]
1305
1522
  }
@@ -1311,8 +1528,8 @@ function ContextMenuRadioItem({
1311
1528
  slotName = "context-menu-radio-item",
1312
1529
  ...props
1313
1530
  }) {
1314
- return /* @__PURE__ */ jsxs(
1315
- ContextMenu$1.RadioItem,
1531
+ return /* @__PURE__ */ jsxs7(
1532
+ ContextMenuPrimitive.RadioItem,
1316
1533
  {
1317
1534
  className: cn(
1318
1535
  "gap-2 py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 rounded-xl relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -1321,7 +1538,7 @@ function ContextMenuRadioItem({
1321
1538
  ...props,
1322
1539
  "data-slot": slotName,
1323
1540
  children: [
1324
- /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenu$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
1541
+ /* @__PURE__ */ jsx12("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx12(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx12(CircleIcon, { className: "size-2 fill-current" }) }) }),
1325
1542
  children
1326
1543
  ]
1327
1544
  }
@@ -1333,8 +1550,8 @@ function ContextMenuLabel({
1333
1550
  slotName = "context-menu-label",
1334
1551
  ...props
1335
1552
  }) {
1336
- return /* @__PURE__ */ jsx(
1337
- ContextMenu$1.Label,
1553
+ return /* @__PURE__ */ jsx12(
1554
+ ContextMenuPrimitive.Label,
1338
1555
  {
1339
1556
  "data-inset": inset,
1340
1557
  className: cn(
@@ -1351,8 +1568,8 @@ function ContextMenuSeparator({
1351
1568
  slotName = "context-menu-separator",
1352
1569
  ...props
1353
1570
  }) {
1354
- return /* @__PURE__ */ jsx(
1355
- ContextMenu$1.Separator,
1571
+ return /* @__PURE__ */ jsx12(
1572
+ ContextMenuPrimitive.Separator,
1356
1573
  {
1357
1574
  className: cn("-mx-1 my-1 h-px bg-border", className),
1358
1575
  ...props,
@@ -1365,7 +1582,7 @@ function ContextMenuShortcut({
1365
1582
  slotName = "context-menu-shortcut",
1366
1583
  ...props
1367
1584
  }) {
1368
- return /* @__PURE__ */ jsx(
1585
+ return /* @__PURE__ */ jsx12(
1369
1586
  "span",
1370
1587
  {
1371
1588
  className: cn(
@@ -1377,6 +1594,10 @@ function ContextMenuShortcut({
1377
1594
  }
1378
1595
  );
1379
1596
  }
1597
+
1598
+ // src/components/ui/data-table-faceted-filter.tsx
1599
+ import { Check as Check2, PlusCircle } from "lucide-react";
1600
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
1380
1601
  var dataTableFacetedFilterDefaultLabels = {
1381
1602
  noOptionsLabel: "No options."
1382
1603
  };
@@ -1389,17 +1610,17 @@ function FilterPopover({
1389
1610
  noOptionsLabel,
1390
1611
  slotName = "data-table-faceted-filter"
1391
1612
  }) {
1392
- return /* @__PURE__ */ jsxs(Popover, { children: [
1393
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
1613
+ return /* @__PURE__ */ jsxs8(Popover, { children: [
1614
+ /* @__PURE__ */ jsx13(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs8(
1394
1615
  Button,
1395
1616
  {
1396
1617
  variant: "outline",
1397
- className: "h-11 pr-5 rounded-2xl border-dashed border-border",
1618
+ className: "h-11 gap-3 has-[>svg]:px-3 rounded-2xl border-dashed border-border",
1398
1619
  slotName,
1399
1620
  children: [
1400
- /* @__PURE__ */ jsx(PlusCircle, { className: "mr-2 size-4" }),
1621
+ /* @__PURE__ */ jsx13(PlusCircle, { className: "size-4" }),
1401
1622
  label,
1402
- selected.size > 0 && /* @__PURE__ */ jsx(
1623
+ selected.size > 0 && /* @__PURE__ */ jsx13(
1403
1624
  Badge,
1404
1625
  {
1405
1626
  variant: "secondary",
@@ -1410,23 +1631,23 @@ function FilterPopover({
1410
1631
  ]
1411
1632
  }
1412
1633
  ) }),
1413
- /* @__PURE__ */ jsx(PopoverContent, { className: cn("p-0", width), align: "start", children: /* @__PURE__ */ jsx(Command, { children: /* @__PURE__ */ jsxs(CommandList, { children: [
1414
- /* @__PURE__ */ jsx(CommandEmpty, { children: noOptionsLabel }),
1415
- /* @__PURE__ */ jsx(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs(
1634
+ /* @__PURE__ */ jsx13(PopoverContent, { className: cn("p-0", width), align: "start", children: /* @__PURE__ */ jsx13(Command, { children: /* @__PURE__ */ jsxs8(CommandList, { children: [
1635
+ /* @__PURE__ */ jsx13(CommandEmpty, { children: noOptionsLabel }),
1636
+ /* @__PURE__ */ jsx13(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs8(
1416
1637
  CommandItem,
1417
1638
  {
1418
1639
  value: option.label,
1419
1640
  onSelect: () => onToggle(option.value),
1420
1641
  className: "h-10 rounded-xl",
1421
1642
  children: [
1422
- /* @__PURE__ */ jsx(
1643
+ /* @__PURE__ */ jsx13(
1423
1644
  "div",
1424
1645
  {
1425
1646
  className: cn(
1426
1647
  "mr-2 size-4 flex items-center justify-center rounded-md border border-border",
1427
1648
  selected.has(option.value) ? "bg-primary text-primary-foreground" : "opacity-50"
1428
1649
  ),
1429
- children: selected.has(option.value) && /* @__PURE__ */ jsx(Check, { className: "size-3" })
1650
+ children: selected.has(option.value) && /* @__PURE__ */ jsx13(Check2, { className: "size-3" })
1430
1651
  }
1431
1652
  ),
1432
1653
  option.label
@@ -1458,7 +1679,7 @@ function FacetedFilter({
1458
1679
  const arr = Array.from(next);
1459
1680
  column?.setFilterValue(arr.length ? arr : void 0);
1460
1681
  };
1461
- return /* @__PURE__ */ jsx(
1682
+ return /* @__PURE__ */ jsx13(
1462
1683
  FilterPopover,
1463
1684
  {
1464
1685
  label: filter.label,
@@ -1491,7 +1712,7 @@ function ServerFacetedFilter({
1491
1712
  }
1492
1713
  onChange(Array.from(next));
1493
1714
  };
1494
- return /* @__PURE__ */ jsx(
1715
+ return /* @__PURE__ */ jsx13(
1495
1716
  FilterPopover,
1496
1717
  {
1497
1718
  label: filter.label,
@@ -1503,34 +1724,38 @@ function ServerFacetedFilter({
1503
1724
  }
1504
1725
  );
1505
1726
  }
1727
+
1728
+ // src/components/ui/data-table-row-actions.tsx
1729
+ import { MoreVertical } from "lucide-react";
1730
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
1506
1731
  function RowActionsMenu({
1507
1732
  row,
1508
1733
  actions,
1509
1734
  slotName = "data-table-row-actions"
1510
1735
  }) {
1511
- return /* @__PURE__ */ jsx(
1736
+ return /* @__PURE__ */ jsx14(
1512
1737
  "div",
1513
1738
  {
1514
1739
  className: "flex justify-end",
1515
1740
  onClick: (event) => event.stopPropagation(),
1516
1741
  "data-slot": slotName,
1517
- children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
1518
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1742
+ children: /* @__PURE__ */ jsxs9(DropdownMenu, { children: [
1743
+ /* @__PURE__ */ jsx14(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
1519
1744
  Button,
1520
1745
  {
1521
1746
  variant: "ghost",
1522
1747
  size: "icon",
1523
1748
  className: "size-8 rounded-xl text-muted-foreground hover:text-foreground",
1524
- children: /* @__PURE__ */ jsx(MoreVertical, { className: "size-4" })
1749
+ children: /* @__PURE__ */ jsx14(MoreVertical, { className: "size-4" })
1525
1750
  }
1526
1751
  ) }),
1527
- /* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", className: "rounded-2xl", children: actions.map((action) => /* @__PURE__ */ jsxs(
1752
+ /* @__PURE__ */ jsx14(DropdownMenuContent, { align: "end", className: "rounded-2xl", children: actions.map((action) => /* @__PURE__ */ jsxs9(
1528
1753
  DropdownMenuItem,
1529
1754
  {
1530
1755
  onClick: () => action.onClick(row),
1531
1756
  className: action.variant === "destructive" ? "rounded-xl text-destructive focus:text-destructive" : "rounded-xl",
1532
1757
  children: [
1533
- action.icon && /* @__PURE__ */ jsx(action.icon, { className: "size-4" }),
1758
+ action.icon && /* @__PURE__ */ jsx14(action.icon, { className: "size-4" }),
1534
1759
  action.label
1535
1760
  ]
1536
1761
  },
@@ -1540,6 +1765,10 @@ function RowActionsMenu({
1540
1765
  }
1541
1766
  );
1542
1767
  }
1768
+
1769
+ // src/components/ui/empty-state.tsx
1770
+ import { SearchX } from "lucide-react";
1771
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
1543
1772
  var emptyStateLabels = {
1544
1773
  title: "Nothing to show"
1545
1774
  };
@@ -1552,7 +1781,7 @@ function EmptyState({
1552
1781
  className,
1553
1782
  slotName = "empty-state"
1554
1783
  }) {
1555
- return /* @__PURE__ */ jsxs(
1784
+ return /* @__PURE__ */ jsxs10(
1556
1785
  "div",
1557
1786
  {
1558
1787
  "data-compact": compact || void 0,
@@ -1563,7 +1792,7 @@ function EmptyState({
1563
1792
  ),
1564
1793
  "data-slot": slotName,
1565
1794
  children: [
1566
- /* @__PURE__ */ jsx(
1795
+ /* @__PURE__ */ jsx15(
1567
1796
  "span",
1568
1797
  {
1569
1798
  "data-slot": "empty-state-icon",
@@ -1571,10 +1800,10 @@ function EmptyState({
1571
1800
  "flex shrink-0 items-center justify-center rounded-full bg-surface-recessed text-muted-foreground",
1572
1801
  compact ? "size-8" : "size-10"
1573
1802
  ),
1574
- children: /* @__PURE__ */ jsx(Icon2, { className: compact ? "size-4" : "size-5" })
1803
+ children: /* @__PURE__ */ jsx15(Icon2, { className: compact ? "size-4" : "size-5" })
1575
1804
  }
1576
1805
  ),
1577
- /* @__PURE__ */ jsxs(
1806
+ /* @__PURE__ */ jsxs10(
1578
1807
  "div",
1579
1808
  {
1580
1809
  className: cn(
@@ -1582,7 +1811,7 @@ function EmptyState({
1582
1811
  compact ? "gap-0.5" : "gap-1"
1583
1812
  ),
1584
1813
  children: [
1585
- /* @__PURE__ */ jsx(
1814
+ /* @__PURE__ */ jsx15(
1586
1815
  "p",
1587
1816
  {
1588
1817
  "data-slot": "empty-state-title",
@@ -1593,7 +1822,7 @@ function EmptyState({
1593
1822
  children: title
1594
1823
  }
1595
1824
  ),
1596
- description && /* @__PURE__ */ jsx(
1825
+ description && /* @__PURE__ */ jsx15(
1597
1826
  "p",
1598
1827
  {
1599
1828
  "data-slot": "empty-state-description",
@@ -1604,7 +1833,7 @@ function EmptyState({
1604
1833
  ]
1605
1834
  }
1606
1835
  ),
1607
- actions && /* @__PURE__ */ jsx(
1836
+ actions && /* @__PURE__ */ jsx15(
1608
1837
  "div",
1609
1838
  {
1610
1839
  "data-slot": "empty-state-actions",
@@ -1619,7 +1848,11 @@ function EmptyState({
1619
1848
  }
1620
1849
  );
1621
1850
  }
1622
- var Table = React3.forwardRef(({ className, slotName = "table-container", ...props }, ref) => /* @__PURE__ */ jsx(
1851
+
1852
+ // src/components/ui/table.tsx
1853
+ import * as React5 from "react";
1854
+ import { jsx as jsx16 } from "react/jsx-runtime";
1855
+ var Table = React5.forwardRef(({ className, slotName = "table-container", ...props }, ref) => /* @__PURE__ */ jsx16(
1623
1856
  "div",
1624
1857
  {
1625
1858
  className: cn(
@@ -1629,7 +1862,7 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
1629
1862
  "relative w-full overflow-hidden bg-card"
1630
1863
  ),
1631
1864
  "data-slot": slotName,
1632
- children: /* @__PURE__ */ jsx(
1865
+ children: /* @__PURE__ */ jsx16(
1633
1866
  "div",
1634
1867
  {
1635
1868
  className: cn(
@@ -1638,7 +1871,7 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
1638
1871
  nestedEdgeToEdge,
1639
1872
  "w-full overflow-x-auto"
1640
1873
  ),
1641
- children: /* @__PURE__ */ jsx(
1874
+ children: /* @__PURE__ */ jsx16(
1642
1875
  "table",
1643
1876
  {
1644
1877
  ref,
@@ -1651,9 +1884,9 @@ var Table = React3.forwardRef(({ className, slotName = "table-container", ...pro
1651
1884
  }
1652
1885
  ));
1653
1886
  Table.displayName = "Table";
1654
- var TableHeader = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
1887
+ var TableHeader = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
1655
1888
  TableHeader.displayName = "TableHeader";
1656
- var TableBody = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1889
+ var TableBody = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1657
1890
  "tbody",
1658
1891
  {
1659
1892
  ref,
@@ -1662,7 +1895,7 @@ var TableBody = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1662
1895
  }
1663
1896
  ));
1664
1897
  TableBody.displayName = "TableBody";
1665
- var TableFooter = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1898
+ var TableFooter = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1666
1899
  "tfoot",
1667
1900
  {
1668
1901
  ref,
@@ -1674,7 +1907,7 @@ var TableFooter = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
1674
1907
  }
1675
1908
  ));
1676
1909
  TableFooter.displayName = "TableFooter";
1677
- var TableRow = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1910
+ var TableRow = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1678
1911
  "tr",
1679
1912
  {
1680
1913
  ref,
@@ -1686,7 +1919,7 @@ var TableRow = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1686
1919
  }
1687
1920
  ));
1688
1921
  TableRow.displayName = "TableRow";
1689
- var TableHead = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1922
+ var TableHead = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1690
1923
  "th",
1691
1924
  {
1692
1925
  ref,
@@ -1698,7 +1931,7 @@ var TableHead = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1698
1931
  }
1699
1932
  ));
1700
1933
  TableHead.displayName = "TableHead";
1701
- var TableCell = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1934
+ var TableCell = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1702
1935
  "td",
1703
1936
  {
1704
1937
  ref,
@@ -1710,7 +1943,7 @@ var TableCell = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1710
1943
  }
1711
1944
  ));
1712
1945
  TableCell.displayName = "TableCell";
1713
- var TableCaption = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1946
+ var TableCaption = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1714
1947
  "caption",
1715
1948
  {
1716
1949
  ref,
@@ -1722,6 +1955,26 @@ var TableCaption = React3.forwardRef(({ className, ...props }, ref) => /* @__PUR
1722
1955
  }
1723
1956
  ));
1724
1957
  TableCaption.displayName = "TableCaption";
1958
+
1959
+ // src/components/ui/data-table.tsx
1960
+ import {
1961
+ flexRender,
1962
+ getCoreRowModel,
1963
+ getFilteredRowModel,
1964
+ getPaginationRowModel,
1965
+ getSortedRowModel,
1966
+ useReactTable
1967
+ } from "@tanstack/react-table";
1968
+ import {
1969
+ ArrowUpDown,
1970
+ ChevronLeft,
1971
+ ChevronRight,
1972
+ Plus,
1973
+ Search,
1974
+ X
1975
+ } from "lucide-react";
1976
+ import { useMemo as useMemo2, useState as useState5 } from "react";
1977
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
1725
1978
  function pageRange(current, last) {
1726
1979
  if (last <= 7) {
1727
1980
  return Array.from({ length: last }, (_, i) => i + 1);
@@ -1789,11 +2042,11 @@ function DataTable({
1789
2042
  noOptionsLabel,
1790
2043
  totalLabel
1791
2044
  });
1792
- const [sorting, setSorting] = useState([]);
1793
- const [globalFilter, setGlobalFilter] = useState("");
1794
- const [columnFilters, setColumnFilters] = useState([]);
2045
+ const [sorting, setSorting] = useState5([]);
2046
+ const [globalFilter, setGlobalFilter] = useState5("");
2047
+ const [columnFilters, setColumnFilters] = useState5([]);
1795
2048
  const serverSearch = onSearchChange !== void 0;
1796
- const tableColumns = useMemo(() => {
2049
+ const tableColumns = useMemo2(() => {
1797
2050
  if (!rowActions || rowActions.length === 0) {
1798
2051
  return columns;
1799
2052
  }
@@ -1803,7 +2056,7 @@ function DataTable({
1803
2056
  id: "__actions",
1804
2057
  header: "",
1805
2058
  enableSorting: false,
1806
- cell: ({ row }) => /* @__PURE__ */ jsx(RowActionsMenu, { row: row.original, actions: rowActions })
2059
+ cell: ({ row }) => /* @__PURE__ */ jsx17(RowActionsMenu, { row: row.original, actions: rowActions })
1807
2060
  }
1808
2061
  ];
1809
2062
  }, [columns, rowActions]);
@@ -1841,16 +2094,16 @@ function DataTable({
1841
2094
  const sizeChoices = [.../* @__PURE__ */ new Set([...pageSizeOptions, activePageSize])].sort(
1842
2095
  (a, b) => a - b
1843
2096
  );
1844
- return /* @__PURE__ */ jsxs(
2097
+ return /* @__PURE__ */ jsxs11(
1845
2098
  "div",
1846
2099
  {
1847
2100
  className: cn(elevatedSurface, "space-y-4 p-5 bg-card"),
1848
2101
  "data-slot": slotName,
1849
2102
  children: [
1850
- hasToolbar && /* @__PURE__ */ jsxs("div", { className: "gap-2 flex flex-wrap items-center", children: [
1851
- searchKey !== void 0 && /* @__PURE__ */ jsxs("div", { className: "relative min-w-[200px] flex-1", children: [
1852
- /* @__PURE__ */ jsx(Search, { className: "left-4 size-4 pointer-events-none absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground" }),
1853
- /* @__PURE__ */ jsx(
2103
+ hasToolbar && /* @__PURE__ */ jsxs11("div", { className: "gap-2 flex flex-wrap items-center", children: [
2104
+ searchKey !== void 0 && /* @__PURE__ */ jsxs11("div", { className: "relative min-w-[200px] flex-1", children: [
2105
+ /* @__PURE__ */ jsx17(Search, { className: "left-4 size-4 pointer-events-none absolute top-1/2 z-10 -translate-y-1/2 text-muted-foreground" }),
2106
+ /* @__PURE__ */ jsx17(
1854
2107
  Input,
1855
2108
  {
1856
2109
  value: serverSearch ? searchValue ?? "" : globalFilter,
@@ -1860,7 +2113,7 @@ function DataTable({
1860
2113
  }
1861
2114
  )
1862
2115
  ] }),
1863
- filters?.map((filter) => /* @__PURE__ */ jsx(
2116
+ filters?.map((filter) => /* @__PURE__ */ jsx17(
1864
2117
  FacetedFilter,
1865
2118
  {
1866
2119
  column: table.getColumn(filter.columnId),
@@ -1869,7 +2122,7 @@ function DataTable({
1869
2122
  },
1870
2123
  filter.columnId
1871
2124
  )),
1872
- serverFilters?.map((filter) => /* @__PURE__ */ jsx(
2125
+ serverFilters?.map((filter) => /* @__PURE__ */ jsx17(
1873
2126
  ServerFacetedFilter,
1874
2127
  {
1875
2128
  filter,
@@ -1880,7 +2133,7 @@ function DataTable({
1880
2133
  filter.paramKey
1881
2134
  )),
1882
2135
  toolbarExtra,
1883
- (columnFilters.length > 0 || hasServerSelection || canClearFilters && onClearFilters) && /* @__PURE__ */ jsxs(
2136
+ (columnFilters.length > 0 || hasServerSelection || canClearFilters && onClearFilters) && /* @__PURE__ */ jsxs11(
1884
2137
  Button,
1885
2138
  {
1886
2139
  variant: "ghost",
@@ -1895,32 +2148,32 @@ function DataTable({
1895
2148
  className: "h-11 rounded-2xl",
1896
2149
  children: [
1897
2150
  labels.clearFiltersLabel,
1898
- /* @__PURE__ */ jsx(X, { className: "ml-1 size-4" })
2151
+ /* @__PURE__ */ jsx17(X, { className: "ml-1 size-4" })
1899
2152
  ]
1900
2153
  }
1901
2154
  ),
1902
- onCreate && /* @__PURE__ */ jsx(
2155
+ onCreate && /* @__PURE__ */ jsx17(
1903
2156
  Button,
1904
2157
  {
1905
2158
  onClick: onCreate,
1906
2159
  "aria-label": labels.createLabel,
1907
2160
  size: "icon",
1908
2161
  className: "size-11 rounded-2xl shrink-0 cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90",
1909
- children: /* @__PURE__ */ jsx(Plus, { className: "size-5" })
2162
+ children: /* @__PURE__ */ jsx17(Plus, { className: "size-5" })
1910
2163
  }
1911
2164
  ),
1912
- toolbarAction && /* @__PURE__ */ jsx("div", { className: "ml-auto", children: toolbarAction })
2165
+ toolbarAction && /* @__PURE__ */ jsx17("div", { className: "ml-auto", children: toolbarAction })
1913
2166
  ] }),
1914
- /* @__PURE__ */ jsxs(Table, { children: [
1915
- /* @__PURE__ */ jsx(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
2167
+ /* @__PURE__ */ jsxs11(Table, { children: [
2168
+ /* @__PURE__ */ jsx17(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx17(
1916
2169
  TableRow,
1917
2170
  {
1918
2171
  className: "hover:bg-transparent",
1919
- children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
2172
+ children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx17(
1920
2173
  TableHead,
1921
2174
  {
1922
2175
  className: "h-11 px-4 font-medium tracking-wider text-[11px] text-muted-foreground uppercase",
1923
- children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs(
2176
+ children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs11(
1924
2177
  "button",
1925
2178
  {
1926
2179
  type: "button",
@@ -1931,7 +2184,7 @@ function DataTable({
1931
2184
  header.column.columnDef.header,
1932
2185
  header.getContext()
1933
2186
  ),
1934
- /* @__PURE__ */ jsx(ArrowUpDown, { className: "size-3 opacity-50" })
2187
+ /* @__PURE__ */ jsx17(ArrowUpDown, { className: "size-3 opacity-50" })
1935
2188
  ]
1936
2189
  }
1937
2190
  ) : flexRender(
@@ -1944,8 +2197,8 @@ function DataTable({
1944
2197
  },
1945
2198
  headerGroup.id
1946
2199
  )) }),
1947
- /* @__PURE__ */ jsx(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map(
1948
- (row) => renderRow ? renderRow(row) : /* @__PURE__ */ jsx(
2200
+ /* @__PURE__ */ jsx17(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map(
2201
+ (row) => renderRow ? renderRow(row) : /* @__PURE__ */ jsx17(
1949
2202
  TableRow,
1950
2203
  {
1951
2204
  onClick: onRowClick ? () => onRowClick(row.original) : void 0,
@@ -1955,7 +2208,7 @@ function DataTable({
1955
2208
  onRowClick && "cursor-pointer",
1956
2209
  "data-[active=true]:bg-primary/5"
1957
2210
  ),
1958
- children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
2211
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx17(
1959
2212
  TableCell,
1960
2213
  {
1961
2214
  className: "px-4 py-3",
@@ -1969,25 +2222,25 @@ function DataTable({
1969
2222
  },
1970
2223
  row.id
1971
2224
  )
1972
- ) : /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(
2225
+ ) : /* @__PURE__ */ jsx17(TableRow, { children: /* @__PURE__ */ jsx17(
1973
2226
  TableCell,
1974
2227
  {
1975
2228
  colSpan: tableColumns.length,
1976
2229
  className: "h-24 p-0",
1977
- children: /* @__PURE__ */ jsx(EmptyState, { compact: true, title: labels.emptyLabel })
2230
+ children: /* @__PURE__ */ jsx17(EmptyState, { compact: true, title: labels.emptyLabel })
1978
2231
  }
1979
2232
  ) }) })
1980
2233
  ] }),
1981
- showFooter && /* @__PURE__ */ jsxs("div", { className: "gap-3 pt-4 flex flex-wrap items-center justify-between border-t border-border", children: [
1982
- /* @__PURE__ */ jsxs("div", { className: "gap-3 flex items-center", children: [
1983
- /* @__PURE__ */ jsxs(
2234
+ showFooter && /* @__PURE__ */ jsxs11("div", { className: "gap-3 pt-4 flex flex-wrap items-center justify-between border-t border-border", children: [
2235
+ /* @__PURE__ */ jsxs11("div", { className: "gap-3 flex items-center", children: [
2236
+ /* @__PURE__ */ jsxs11(
1984
2237
  Select,
1985
2238
  {
1986
2239
  value: String(activePageSize),
1987
2240
  onValueChange: (value) => changePageSize(Number(value)),
1988
2241
  children: [
1989
- /* @__PURE__ */ jsx(SelectTrigger, { className: "h-9 rounded-xl w-[74px]", children: /* @__PURE__ */ jsx("span", { children: activePageSize }) }),
1990
- /* @__PURE__ */ jsx(SelectContent, { className: "rounded-xl", children: sizeChoices.map((size) => /* @__PURE__ */ jsx(
2242
+ /* @__PURE__ */ jsx17(SelectTrigger, { className: "h-9 rounded-xl w-[74px]", children: /* @__PURE__ */ jsx17("span", { children: activePageSize }) }),
2243
+ /* @__PURE__ */ jsx17(SelectContent, { className: "rounded-xl", children: sizeChoices.map((size) => /* @__PURE__ */ jsx17(
1991
2244
  SelectItem,
1992
2245
  {
1993
2246
  value: String(size),
@@ -1999,13 +2252,13 @@ function DataTable({
1999
2252
  ]
2000
2253
  }
2001
2254
  ),
2002
- /* @__PURE__ */ jsxs("span", { className: "text-xs font-medium text-muted-foreground", children: [
2255
+ /* @__PURE__ */ jsxs11("span", { className: "text-xs font-medium text-muted-foreground", children: [
2003
2256
  labels.paginationLabel(currentPage, lastPage),
2004
2257
  total !== void 0 && ` \xB7 ${labels.totalLabel(total)}`
2005
2258
  ] })
2006
2259
  ] }),
2007
- /* @__PURE__ */ jsxs("div", { className: "gap-1.5 flex items-center", children: [
2008
- /* @__PURE__ */ jsx(
2260
+ /* @__PURE__ */ jsxs11("div", { className: "gap-1.5 flex items-center", children: [
2261
+ /* @__PURE__ */ jsx17(
2009
2262
  Button,
2010
2263
  {
2011
2264
  variant: "outline",
@@ -2013,18 +2266,18 @@ function DataTable({
2013
2266
  className: "size-9 rounded-xl",
2014
2267
  onClick: prev,
2015
2268
  disabled: !canPrev,
2016
- children: /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" })
2269
+ children: /* @__PURE__ */ jsx17(ChevronLeft, { className: "size-4" })
2017
2270
  }
2018
2271
  ),
2019
2272
  pageRange(currentPage, lastPage).map(
2020
- (page, index) => page === "ellipsis" ? /* @__PURE__ */ jsx(
2273
+ (page, index) => page === "ellipsis" ? /* @__PURE__ */ jsx17(
2021
2274
  "span",
2022
2275
  {
2023
2276
  className: "px-1 text-sm font-medium text-muted-foreground",
2024
2277
  children: "\u2026"
2025
2278
  },
2026
2279
  `ellipsis-${index}`
2027
- ) : /* @__PURE__ */ jsx(
2280
+ ) : /* @__PURE__ */ jsx17(
2028
2281
  Button,
2029
2282
  {
2030
2283
  variant: "outline",
@@ -2038,7 +2291,7 @@ function DataTable({
2038
2291
  page
2039
2292
  )
2040
2293
  ),
2041
- /* @__PURE__ */ jsx(
2294
+ /* @__PURE__ */ jsx17(
2042
2295
  Button,
2043
2296
  {
2044
2297
  variant: "outline",
@@ -2046,7 +2299,7 @@ function DataTable({
2046
2299
  className: "size-9 rounded-xl",
2047
2300
  onClick: next,
2048
2301
  disabled: !canNext,
2049
- children: /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
2302
+ children: /* @__PURE__ */ jsx17(ChevronRight, { className: "size-4" })
2050
2303
  }
2051
2304
  )
2052
2305
  ] })
@@ -2055,6 +2308,9 @@ function DataTable({
2055
2308
  }
2056
2309
  );
2057
2310
  }
2311
+
2312
+ // src/components/ui/calendar-popover.tsx
2313
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
2058
2314
  function CalendarPopover({
2059
2315
  open,
2060
2316
  onOpenChange,
@@ -2064,9 +2320,9 @@ function CalendarPopover({
2064
2320
  children,
2065
2321
  slotName = "calendar-popover"
2066
2322
  }) {
2067
- return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange, children: [
2068
- /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: trigger }),
2069
- /* @__PURE__ */ jsx(
2323
+ return /* @__PURE__ */ jsxs12(Popover, { open, onOpenChange, children: [
2324
+ /* @__PURE__ */ jsx18(PopoverTrigger, { asChild: true, children: trigger }),
2325
+ /* @__PURE__ */ jsx18(
2070
2326
  PopoverContent,
2071
2327
  {
2072
2328
  className: cn("p-2 w-auto", className),
@@ -2079,12 +2335,18 @@ function CalendarPopover({
2079
2335
  )
2080
2336
  ] });
2081
2337
  }
2338
+
2339
+ // src/components/ui/date-picker.tsx
2340
+ import { format } from "date-fns";
2341
+ import { CalendarIcon, X as X2 } from "lucide-react";
2342
+ import { useState as useState6 } from "react";
2343
+ import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
2082
2344
  var datePickerDefaultLabels = {
2083
2345
  placeholder: "Pick a date",
2084
2346
  dateFormat: "dd MMM yy",
2085
2347
  clearLabel: "Clear date"
2086
2348
  };
2087
- var triggerClasses = `h-11 px-4 text-sm font-medium flex w-full cursor-pointer items-center gap-2 text-left transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${fieldFocus}`;
2349
+ var triggerClasses = `h-11 px-4 font-medium flex w-full cursor-pointer items-center gap-2 text-left transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${fieldSurface} ${fieldFocus}`;
2088
2350
  function boundaries(minDate, maxDate, disabledDays) {
2089
2351
  const matchers = [];
2090
2352
  if (minDate) {
@@ -2124,8 +2386,8 @@ function DatePicker(props) {
2124
2386
  dateFormat,
2125
2387
  clearLabel
2126
2388
  });
2127
- const [open, setOpen] = useState(false);
2128
- const [ownValue, setOwnValue] = useState(defaultValue);
2389
+ const [open, setOpen] = useState6(false);
2390
+ const [ownValue, setOwnValue] = useState6(defaultValue);
2129
2391
  const isControlled = "value" in props;
2130
2392
  const selected = isControlled ? value : ownValue;
2131
2393
  const showClear = clearable && !disabled && selected !== void 0;
@@ -2136,13 +2398,13 @@ function DatePicker(props) {
2136
2398
  }
2137
2399
  onChange?.(next);
2138
2400
  }
2139
- return /* @__PURE__ */ jsxs("div", { className: cn("relative w-full", className), "data-slot": slotName, children: [
2140
- /* @__PURE__ */ jsx(
2401
+ return /* @__PURE__ */ jsxs13("div", { className: cn("relative w-full", className), "data-slot": slotName, children: [
2402
+ /* @__PURE__ */ jsx19(
2141
2403
  CalendarPopover,
2142
2404
  {
2143
2405
  open,
2144
2406
  onOpenChange: setOpen,
2145
- trigger: /* @__PURE__ */ jsxs(
2407
+ trigger: /* @__PURE__ */ jsxs13(
2146
2408
  "button",
2147
2409
  {
2148
2410
  ...trigger,
@@ -2153,8 +2415,8 @@ function DatePicker(props) {
2153
2415
  "aria-invalid": ariaInvalid ?? (invalid || void 0),
2154
2416
  className: cn(triggerClasses, showClear && "pr-11"),
2155
2417
  children: [
2156
- /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4 shrink-0 opacity-60" }),
2157
- /* @__PURE__ */ jsx(
2418
+ /* @__PURE__ */ jsx19(CalendarIcon, { className: "size-4 shrink-0 opacity-60" }),
2419
+ /* @__PURE__ */ jsx19(
2158
2420
  "span",
2159
2421
  {
2160
2422
  className: cn(
@@ -2167,7 +2429,7 @@ function DatePicker(props) {
2167
2429
  ]
2168
2430
  }
2169
2431
  ),
2170
- children: /* @__PURE__ */ jsx(
2432
+ children: /* @__PURE__ */ jsx19(
2171
2433
  Calendar,
2172
2434
  {
2173
2435
  mode: "single",
@@ -2189,7 +2451,7 @@ function DatePicker(props) {
2189
2451
  )
2190
2452
  }
2191
2453
  ),
2192
- showClear && /* @__PURE__ */ jsx(
2454
+ showClear && /* @__PURE__ */ jsx19(
2193
2455
  "button",
2194
2456
  {
2195
2457
  type: "button",
@@ -2197,11 +2459,17 @@ function DatePicker(props) {
2197
2459
  "aria-label": labels.clearLabel,
2198
2460
  onClick: () => commit(void 0),
2199
2461
  className: `size-7 rounded-xl right-2 absolute top-1/2 inline-flex -translate-y-1/2 cursor-pointer items-center justify-center text-muted-foreground hover:text-foreground ${focusRing}`,
2200
- children: /* @__PURE__ */ jsx(X, { className: "size-3.5" })
2462
+ children: /* @__PURE__ */ jsx19(X2, { className: "size-3.5" })
2201
2463
  }
2202
2464
  )
2203
2465
  ] });
2204
2466
  }
2467
+
2468
+ // src/components/ui/date-range-filter.tsx
2469
+ import { format as format2 } from "date-fns";
2470
+ import { CalendarRange, X as X3 } from "lucide-react";
2471
+ import { useState as useState7 } from "react";
2472
+ import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
2205
2473
  function parse(value) {
2206
2474
  return value ? /* @__PURE__ */ new Date(`${value}T00:00:00`) : void 0;
2207
2475
  }
@@ -2224,16 +2492,16 @@ function DateRangeFilter({
2224
2492
  dateRangeFilterDefaultLabels,
2225
2493
  { emptyLabel, dateFormat }
2226
2494
  );
2227
- const [open, setOpen] = useState(false);
2495
+ const [open, setOpen] = useState7(false);
2228
2496
  const selected = from || to ? { from: parse(from), to: parse(to) } : void 0;
2229
- const label = from ? to && to !== from ? `${format(parse(from), labels.dateFormat)} - ${format(parse(to), labels.dateFormat)}` : format(parse(from), labels.dateFormat) : labels.emptyLabel;
2230
- return /* @__PURE__ */ jsx(
2497
+ const label = from ? to && to !== from ? `${format2(parse(from), labels.dateFormat)} - ${format2(parse(to), labels.dateFormat)}` : format2(parse(from), labels.dateFormat) : labels.emptyLabel;
2498
+ return /* @__PURE__ */ jsx20(
2231
2499
  CalendarPopover,
2232
2500
  {
2233
2501
  open,
2234
2502
  onOpenChange: setOpen,
2235
2503
  align: "end",
2236
- trigger: /* @__PURE__ */ jsxs(
2504
+ trigger: /* @__PURE__ */ jsxs14(
2237
2505
  Button,
2238
2506
  {
2239
2507
  variant: "outline",
@@ -2244,9 +2512,9 @@ function DateRangeFilter({
2244
2512
  ),
2245
2513
  slotName,
2246
2514
  children: [
2247
- /* @__PURE__ */ jsx(CalendarRange, { className: "mr-2 size-4" }),
2515
+ /* @__PURE__ */ jsx20(CalendarRange, { className: "mr-2 size-4" }),
2248
2516
  label,
2249
- (from || to) && /* @__PURE__ */ jsx(
2517
+ (from || to) && /* @__PURE__ */ jsx20(
2250
2518
  "span",
2251
2519
  {
2252
2520
  role: "button",
@@ -2256,13 +2524,13 @@ function DateRangeFilter({
2256
2524
  onChange({ from: void 0, to: void 0 });
2257
2525
  },
2258
2526
  className: "ml-2 inline-flex",
2259
- children: /* @__PURE__ */ jsx(X, { className: "size-3.5 opacity-60 hover:opacity-100" })
2527
+ children: /* @__PURE__ */ jsx20(X3, { className: "size-3.5 opacity-60 hover:opacity-100" })
2260
2528
  }
2261
2529
  )
2262
2530
  ]
2263
2531
  }
2264
2532
  ),
2265
- children: /* @__PURE__ */ jsx(
2533
+ children: /* @__PURE__ */ jsx20(
2266
2534
  Calendar,
2267
2535
  {
2268
2536
  mode: "range",
@@ -2270,8 +2538,8 @@ function DateRangeFilter({
2270
2538
  defaultMonth: parse(from),
2271
2539
  selected,
2272
2540
  onSelect: (range) => onChange({
2273
- from: range?.from ? format(range.from, "yyyy-MM-dd") : void 0,
2274
- to: range?.to ? format(range.to, "yyyy-MM-dd") : void 0
2541
+ from: range?.from ? format2(range.from, "yyyy-MM-dd") : void 0,
2542
+ to: range?.to ? format2(range.to, "yyyy-MM-dd") : void 0
2275
2543
  }),
2276
2544
  className: "rounded-2xl bg-transparent"
2277
2545
  }
@@ -2279,37 +2547,41 @@ function DateRangeFilter({
2279
2547
  }
2280
2548
  );
2281
2549
  }
2550
+
2551
+ // src/components/ui/drawer.tsx
2552
+ import { Drawer as DrawerPrimitive } from "vaul";
2553
+ import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
2282
2554
  function Drawer({
2283
2555
  slotName = "drawer",
2284
2556
  ...props
2285
2557
  }) {
2286
- return /* @__PURE__ */ jsx(Drawer$1.Root, { ...props, "data-slot": slotName });
2558
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Root, { ...props, "data-slot": slotName });
2287
2559
  }
2288
2560
  function DrawerTrigger({
2289
2561
  slotName = "drawer-trigger",
2290
2562
  ...props
2291
2563
  }) {
2292
- return /* @__PURE__ */ jsx(Drawer$1.Trigger, { ...props, "data-slot": slotName });
2564
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Trigger, { ...props, "data-slot": slotName });
2293
2565
  }
2294
2566
  function DrawerPortal({
2295
2567
  slotName = "drawer-portal",
2296
2568
  ...props
2297
2569
  }) {
2298
- return /* @__PURE__ */ jsx(Drawer$1.Portal, { ...props, "data-slot": slotName });
2570
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Portal, { ...props, "data-slot": slotName });
2299
2571
  }
2300
2572
  function DrawerClose({
2301
2573
  slotName = "drawer-close",
2302
2574
  ...props
2303
2575
  }) {
2304
- return /* @__PURE__ */ jsx(Drawer$1.Close, { ...props, "data-slot": slotName });
2576
+ return /* @__PURE__ */ jsx21(DrawerPrimitive.Close, { ...props, "data-slot": slotName });
2305
2577
  }
2306
2578
  function DrawerOverlay({
2307
2579
  className,
2308
2580
  slotName = "drawer-overlay",
2309
2581
  ...props
2310
2582
  }) {
2311
- return /* @__PURE__ */ jsx(
2312
- Drawer$1.Overlay,
2583
+ return /* @__PURE__ */ jsx21(
2584
+ DrawerPrimitive.Overlay,
2313
2585
  {
2314
2586
  className: cn(
2315
2587
  "inset-0 bg-black/60 backdrop-blur-sm data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed z-50",
@@ -2326,10 +2598,10 @@ function DrawerContent({
2326
2598
  slotName = "drawer-content",
2327
2599
  ...props
2328
2600
  }) {
2329
- return /* @__PURE__ */ jsxs(DrawerPortal, { slotName: "drawer-portal", children: [
2330
- /* @__PURE__ */ jsx(DrawerOverlay, {}),
2331
- /* @__PURE__ */ jsxs(
2332
- Drawer$1.Content,
2601
+ return /* @__PURE__ */ jsxs15(DrawerPortal, { slotName: "drawer-portal", children: [
2602
+ /* @__PURE__ */ jsx21(DrawerOverlay, {}),
2603
+ /* @__PURE__ */ jsxs15(
2604
+ DrawerPrimitive.Content,
2333
2605
  {
2334
2606
  className: cn(
2335
2607
  `${floatingSurface} group/drawer-content fixed z-50 flex h-auto flex-col border-border`,
@@ -2342,7 +2614,7 @@ function DrawerContent({
2342
2614
  ...props,
2343
2615
  "data-slot": slotName,
2344
2616
  children: [
2345
- /* @__PURE__ */ jsx("div", { className: "mt-4 h-2 mx-auto hidden w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
2617
+ /* @__PURE__ */ jsx21("div", { className: "mt-4 h-2 mx-auto hidden w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
2346
2618
  children
2347
2619
  ]
2348
2620
  }
@@ -2354,7 +2626,7 @@ function DrawerHeader({
2354
2626
  slotName = "drawer-header",
2355
2627
  ...props
2356
2628
  }) {
2357
- return /* @__PURE__ */ jsx(
2629
+ return /* @__PURE__ */ jsx21(
2358
2630
  "div",
2359
2631
  {
2360
2632
  className: cn(
@@ -2371,7 +2643,7 @@ function DrawerFooter({
2371
2643
  slotName = "drawer-footer",
2372
2644
  ...props
2373
2645
  }) {
2374
- return /* @__PURE__ */ jsx(
2646
+ return /* @__PURE__ */ jsx21(
2375
2647
  "div",
2376
2648
  {
2377
2649
  className: cn("gap-2 p-4 mt-auto flex flex-col", className),
@@ -2385,8 +2657,8 @@ function DrawerTitle({
2385
2657
  slotName = "drawer-title",
2386
2658
  ...props
2387
2659
  }) {
2388
- return /* @__PURE__ */ jsx(
2389
- Drawer$1.Title,
2660
+ return /* @__PURE__ */ jsx21(
2661
+ DrawerPrimitive.Title,
2390
2662
  {
2391
2663
  className: cn("font-semibold text-foreground", className),
2392
2664
  ...props,
@@ -2399,8 +2671,8 @@ function DrawerDescription({
2399
2671
  slotName = "drawer-description",
2400
2672
  ...props
2401
2673
  }) {
2402
- return /* @__PURE__ */ jsx(
2403
- Drawer$1.Description,
2674
+ return /* @__PURE__ */ jsx21(
2675
+ DrawerPrimitive.Description,
2404
2676
  {
2405
2677
  className: cn("text-sm text-muted-foreground", className),
2406
2678
  ...props,
@@ -2408,172 +2680,28 @@ function DrawerDescription({
2408
2680
  }
2409
2681
  );
2410
2682
  }
2411
- function Field({
2412
- className,
2413
- children,
2414
- id,
2415
- orientation = "vertical",
2416
- error,
2417
- invalid,
2418
- required = false,
2419
- slotName = "field",
2420
- ...props
2421
- }) {
2422
- const generatedId = React3.useId();
2423
- const fieldId = id ?? generatedId;
2424
- const [hasDescription, setHasDescription] = React3.useState(false);
2425
- const isInvalid = invalid ?? Boolean(error);
2426
- const field = React3.useMemo(
2427
- () => ({
2428
- controlId: fieldId,
2429
- descriptionId: `${fieldId}-description`,
2430
- errorId: `${fieldId}-error`,
2431
- orientation,
2432
- invalid: isInvalid,
2433
- required,
2434
- hasDescription,
2435
- setHasDescription
2436
- }),
2437
- [fieldId, orientation, isInvalid, required, hasDescription]
2438
- );
2439
- return /* @__PURE__ */ jsx(FieldContext.Provider, { value: field, children: /* @__PURE__ */ jsxs(
2440
- "div",
2441
- {
2442
- "data-orientation": orientation,
2443
- "data-invalid": isInvalid ? "true" : void 0,
2444
- className: cn(
2445
- "group/field",
2446
- orientation === "horizontal" ? "gap-x-4 gap-y-1 grid grid-cols-[1fr_auto] items-center" : "gap-2 flex flex-col",
2447
- className
2448
- ),
2449
- ...props,
2450
- "data-slot": slotName,
2451
- children: [
2452
- children,
2453
- /* @__PURE__ */ jsx(FieldError, { message: error })
2454
- ]
2455
- }
2456
- ) });
2457
- }
2458
- function FieldGroup({
2459
- className,
2460
- slotName = "field-group",
2461
- ...props
2462
- }) {
2463
- return /* @__PURE__ */ jsx(
2464
- "div",
2465
- {
2466
- className: cn("gap-6 flex w-full flex-col", className),
2467
- ...props,
2468
- "data-slot": slotName
2469
- }
2470
- );
2471
- }
2472
- function FieldLabel({
2473
- className,
2474
- children,
2475
- requiredLabel = "Required",
2476
- slotName = "field-label",
2477
- ...props
2478
- }) {
2479
- const { controlId, invalid, required } = useField();
2480
- return /* @__PURE__ */ jsxs(
2481
- Label,
2482
- {
2483
- htmlFor: controlId,
2484
- className: cn(
2485
- "gap-1 flex items-center group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-1",
2486
- invalid && "text-destructive",
2487
- className
2488
- ),
2489
- ...props,
2490
- slotName,
2491
- children: [
2492
- children,
2493
- required ? /* @__PURE__ */ jsxs(Fragment, { children: [
2494
- /* @__PURE__ */ jsx(
2495
- "span",
2496
- {
2497
- "data-slot": "field-required",
2498
- "aria-hidden": "true",
2499
- className: "text-destructive",
2500
- children: "*"
2501
- }
2502
- ),
2503
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: requiredLabel })
2504
- ] }) : null
2505
- ]
2506
- }
2507
- );
2508
- }
2509
- function FieldDescription({
2510
- className,
2511
- slotName = "field-description",
2512
- ...props
2513
- }) {
2514
- const { descriptionId, setHasDescription } = useField();
2515
- React3.useEffect(() => {
2516
- setHasDescription(true);
2517
- return () => setHasDescription(false);
2518
- }, [setHasDescription]);
2519
- return /* @__PURE__ */ jsx(
2520
- "p",
2521
- {
2522
- id: descriptionId,
2523
- className: cn(
2524
- "ml-1 text-xs font-medium text-muted-foreground group-data-[orientation=horizontal]/field:col-start-1 group-data-[orientation=horizontal]/field:row-start-2",
2525
- className
2526
- ),
2527
- ...props,
2528
- "data-slot": slotName
2529
- }
2530
- );
2531
- }
2532
- function FieldControl({
2533
- className,
2534
- ...props
2535
- }) {
2536
- const {
2537
- controlId,
2538
- descriptionId,
2539
- errorId,
2540
- invalid,
2541
- required,
2542
- hasDescription
2543
- } = useField();
2544
- const requiredProps = required ? { required: true } : {};
2545
- const describedBy = [
2546
- hasDescription ? descriptionId : null,
2547
- invalid ? errorId : null
2548
- ].filter(Boolean).join(" ");
2549
- return /* @__PURE__ */ jsx(
2550
- Slot,
2551
- {
2552
- "data-field-control": "true",
2553
- id: controlId,
2554
- "aria-describedby": describedBy || void 0,
2555
- "aria-invalid": invalid ? true : void 0,
2556
- ...requiredProps,
2557
- className: cn(
2558
- "group-data-[orientation=horizontal]/field:col-start-2 group-data-[orientation=horizontal]/field:row-span-2 group-data-[orientation=horizontal]/field:row-start-1 group-data-[orientation=horizontal]/field:justify-self-end",
2559
- className
2560
- ),
2561
- ...props
2562
- }
2563
- );
2564
- }
2683
+
2684
+ // src/components/ui/form.tsx
2685
+ import { Slot as Slot2 } from "@radix-ui/react-slot";
2686
+ import * as React6 from "react";
2687
+ import {
2688
+ Controller,
2689
+ FormProvider,
2690
+ useFormContext
2691
+ } from "react-hook-form";
2692
+ import { jsx as jsx22 } from "react/jsx-runtime";
2565
2693
  var Form = FormProvider;
2566
- var FormFieldContext = React3.createContext(
2694
+ var FormFieldContext = React6.createContext(
2567
2695
  {}
2568
2696
  );
2569
2697
  var FormField = ({
2570
2698
  ...props
2571
2699
  }) => {
2572
- return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
2700
+ return /* @__PURE__ */ jsx22(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx22(Controller, { ...props }) });
2573
2701
  };
2574
2702
  var useFormField = () => {
2575
- const fieldContext = React3.useContext(FormFieldContext);
2576
- const itemContext = React3.useContext(FormItemContext);
2703
+ const fieldContext = React6.useContext(FormFieldContext);
2704
+ const itemContext = React6.useContext(FormItemContext);
2577
2705
  const { getFieldState, formState } = useFormContext();
2578
2706
  const fieldState = getFieldState(fieldContext.name, formState);
2579
2707
  if (!fieldContext) {
@@ -2589,12 +2717,12 @@ var useFormField = () => {
2589
2717
  ...fieldState
2590
2718
  };
2591
2719
  };
2592
- var FormItemContext = React3.createContext(
2720
+ var FormItemContext = React6.createContext(
2593
2721
  {}
2594
2722
  );
2595
- var FormItem = React3.forwardRef(({ className, slotName = "form-item", ...props }, ref) => {
2596
- const id = React3.useId();
2597
- return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx(
2723
+ var FormItem = React6.forwardRef(({ className, slotName = "form-item", ...props }, ref) => {
2724
+ const id = React6.useId();
2725
+ return /* @__PURE__ */ jsx22(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx22(
2598
2726
  "div",
2599
2727
  {
2600
2728
  ref,
@@ -2605,9 +2733,9 @@ var FormItem = React3.forwardRef(({ className, slotName = "form-item", ...props
2605
2733
  ) });
2606
2734
  });
2607
2735
  FormItem.displayName = "FormItem";
2608
- var FormLabel = React3.forwardRef(({ className, ...props }, ref) => {
2736
+ var FormLabel = React6.forwardRef(({ className, ...props }, ref) => {
2609
2737
  const { error, formItemId } = useFormField();
2610
- return /* @__PURE__ */ jsx(
2738
+ return /* @__PURE__ */ jsx22(
2611
2739
  Label,
2612
2740
  {
2613
2741
  ref,
@@ -2618,10 +2746,10 @@ var FormLabel = React3.forwardRef(({ className, ...props }, ref) => {
2618
2746
  );
2619
2747
  });
2620
2748
  FormLabel.displayName = "FormLabel";
2621
- var FormControl = React3.forwardRef(({ ...props }, ref) => {
2749
+ var FormControl = React6.forwardRef(({ ...props }, ref) => {
2622
2750
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2623
- return /* @__PURE__ */ jsx(
2624
- Slot,
2751
+ return /* @__PURE__ */ jsx22(
2752
+ Slot2,
2625
2753
  {
2626
2754
  ref,
2627
2755
  id: formItemId,
@@ -2632,9 +2760,9 @@ var FormControl = React3.forwardRef(({ ...props }, ref) => {
2632
2760
  );
2633
2761
  });
2634
2762
  FormControl.displayName = "FormControl";
2635
- var FormDescription = React3.forwardRef(({ className, ...props }, ref) => {
2763
+ var FormDescription = React6.forwardRef(({ className, ...props }, ref) => {
2636
2764
  const { formDescriptionId } = useFormField();
2637
- return /* @__PURE__ */ jsx(
2765
+ return /* @__PURE__ */ jsx22(
2638
2766
  "p",
2639
2767
  {
2640
2768
  ref,
@@ -2645,13 +2773,13 @@ var FormDescription = React3.forwardRef(({ className, ...props }, ref) => {
2645
2773
  );
2646
2774
  });
2647
2775
  FormDescription.displayName = "FormDescription";
2648
- var FormMessage = React3.forwardRef(({ className, children, ...props }, ref) => {
2776
+ var FormMessage = React6.forwardRef(({ className, children, ...props }, ref) => {
2649
2777
  const { error, formMessageId } = useFormField();
2650
2778
  const body = error ? String(error?.message ?? "") : children;
2651
2779
  if (!body) {
2652
2780
  return null;
2653
2781
  }
2654
- return /* @__PURE__ */ jsx(
2782
+ return /* @__PURE__ */ jsx22(
2655
2783
  "p",
2656
2784
  {
2657
2785
  ref,
@@ -2666,17 +2794,21 @@ var FormMessage = React3.forwardRef(({ className, children, ...props }, ref) =>
2666
2794
  );
2667
2795
  });
2668
2796
  FormMessage.displayName = "FormMessage";
2797
+
2798
+ // src/components/ui/hover-card.tsx
2799
+ import { HoverCard as HoverCardPrimitive } from "radix-ui";
2800
+ import { jsx as jsx23 } from "react/jsx-runtime";
2669
2801
  function HoverCard({
2670
2802
  slotName = "hover-card",
2671
2803
  ...props
2672
2804
  }) {
2673
- return /* @__PURE__ */ jsx(HoverCard$1.Root, { ...props, "data-slot": slotName });
2805
+ return /* @__PURE__ */ jsx23(HoverCardPrimitive.Root, { ...props, "data-slot": slotName });
2674
2806
  }
2675
2807
  function HoverCardTrigger({
2676
2808
  slotName = "hover-card-trigger",
2677
2809
  ...props
2678
2810
  }) {
2679
- return /* @__PURE__ */ jsx(HoverCard$1.Trigger, { ...props, "data-slot": slotName });
2811
+ return /* @__PURE__ */ jsx23(HoverCardPrimitive.Trigger, { ...props, "data-slot": slotName });
2680
2812
  }
2681
2813
  function HoverCardContent({
2682
2814
  className,
@@ -2685,8 +2817,8 @@ function HoverCardContent({
2685
2817
  slotName = "hover-card-content",
2686
2818
  ...props
2687
2819
  }) {
2688
- return /* @__PURE__ */ jsx(HoverCard$1.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx(
2689
- HoverCard$1.Content,
2820
+ return /* @__PURE__ */ jsx23(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx23(
2821
+ HoverCardPrimitive.Content,
2690
2822
  {
2691
2823
  align,
2692
2824
  sideOffset,
@@ -2699,13 +2831,18 @@ function HoverCardContent({
2699
2831
  }
2700
2832
  ) });
2701
2833
  }
2834
+
2835
+ // src/components/ui/menubar.tsx
2836
+ import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon2, CircleIcon as CircleIcon2 } from "lucide-react";
2837
+ import { Menubar as MenubarPrimitive } from "radix-ui";
2838
+ import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
2702
2839
  function Menubar({
2703
2840
  className,
2704
2841
  slotName = "menubar",
2705
2842
  ...props
2706
2843
  }) {
2707
- return /* @__PURE__ */ jsx(
2708
- Menubar$1.Root,
2844
+ return /* @__PURE__ */ jsx24(
2845
+ MenubarPrimitive.Root,
2709
2846
  {
2710
2847
  className: cn(
2711
2848
  "h-9 gap-1 p-1 shadow-sm backdrop-blur-xl rounded-2xl flex items-center border border-border bg-card",
@@ -2720,33 +2857,33 @@ function MenubarMenu({
2720
2857
  slotName = "menubar-menu",
2721
2858
  ...props
2722
2859
  }) {
2723
- return /* @__PURE__ */ jsx(Menubar$1.Menu, { ...props, "data-slot": slotName });
2860
+ return /* @__PURE__ */ jsx24(MenubarPrimitive.Menu, { ...props, "data-slot": slotName });
2724
2861
  }
2725
2862
  function MenubarGroup({
2726
2863
  slotName = "menubar-group",
2727
2864
  ...props
2728
2865
  }) {
2729
- return /* @__PURE__ */ jsx(Menubar$1.Group, { ...props, "data-slot": slotName });
2866
+ return /* @__PURE__ */ jsx24(MenubarPrimitive.Group, { ...props, "data-slot": slotName });
2730
2867
  }
2731
2868
  function MenubarPortal({
2732
2869
  slotName = "menubar-portal",
2733
2870
  ...props
2734
2871
  }) {
2735
- return /* @__PURE__ */ jsx(Menubar$1.Portal, { ...props, "data-slot": slotName });
2872
+ return /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { ...props, "data-slot": slotName });
2736
2873
  }
2737
2874
  function MenubarRadioGroup({
2738
2875
  slotName = "menubar-radio-group",
2739
2876
  ...props
2740
2877
  }) {
2741
- return /* @__PURE__ */ jsx(Menubar$1.RadioGroup, { ...props, "data-slot": slotName });
2878
+ return /* @__PURE__ */ jsx24(MenubarPrimitive.RadioGroup, { ...props, "data-slot": slotName });
2742
2879
  }
2743
2880
  function MenubarTrigger({
2744
2881
  className,
2745
2882
  slotName = "menubar-trigger",
2746
2883
  ...props
2747
2884
  }) {
2748
- return /* @__PURE__ */ jsx(
2749
- Menubar$1.Trigger,
2885
+ return /* @__PURE__ */ jsx24(
2886
+ MenubarPrimitive.Trigger,
2750
2887
  {
2751
2888
  className: cn(
2752
2889
  "px-2 py-1 text-sm font-medium rounded-xl flex items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
@@ -2765,8 +2902,8 @@ function MenubarContent({
2765
2902
  slotName = "menubar-content",
2766
2903
  ...props
2767
2904
  }) {
2768
- return /* @__PURE__ */ jsx(MenubarPortal, { children: /* @__PURE__ */ jsx(
2769
- Menubar$1.Content,
2905
+ return /* @__PURE__ */ jsx24(MenubarPortal, { children: /* @__PURE__ */ jsx24(
2906
+ MenubarPrimitive.Content,
2770
2907
  {
2771
2908
  align,
2772
2909
  alignOffset,
@@ -2787,8 +2924,8 @@ function MenubarItem({
2787
2924
  slotName = "menubar-item",
2788
2925
  ...props
2789
2926
  }) {
2790
- return /* @__PURE__ */ jsx(
2791
- Menubar$1.Item,
2927
+ return /* @__PURE__ */ jsx24(
2928
+ MenubarPrimitive.Item,
2792
2929
  {
2793
2930
  "data-inset": inset,
2794
2931
  "data-variant": variant,
@@ -2808,8 +2945,8 @@ function MenubarCheckboxItem({
2808
2945
  slotName = "menubar-checkbox-item",
2809
2946
  ...props
2810
2947
  }) {
2811
- return /* @__PURE__ */ jsxs(
2812
- Menubar$1.CheckboxItem,
2948
+ return /* @__PURE__ */ jsxs16(
2949
+ MenubarPrimitive.CheckboxItem,
2813
2950
  {
2814
2951
  className: cn(
2815
2952
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -2819,7 +2956,7 @@ function MenubarCheckboxItem({
2819
2956
  ...props,
2820
2957
  "data-slot": slotName,
2821
2958
  children: [
2822
- /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
2959
+ /* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon2, { className: "size-4" }) }) }),
2823
2960
  children
2824
2961
  ]
2825
2962
  }
@@ -2831,8 +2968,8 @@ function MenubarRadioItem({
2831
2968
  slotName = "menubar-radio-item",
2832
2969
  ...props
2833
2970
  }) {
2834
- return /* @__PURE__ */ jsxs(
2835
- Menubar$1.RadioItem,
2971
+ return /* @__PURE__ */ jsxs16(
2972
+ MenubarPrimitive.RadioItem,
2836
2973
  {
2837
2974
  className: cn(
2838
2975
  "gap-2 rounded-xl py-1.5 pr-2 pl-8 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
@@ -2841,7 +2978,7 @@ function MenubarRadioItem({
2841
2978
  ...props,
2842
2979
  "data-slot": slotName,
2843
2980
  children: [
2844
- /* @__PURE__ */ jsx("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx(Menubar$1.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) }) }),
2981
+ /* @__PURE__ */ jsx24("span", { className: "left-2 size-3.5 pointer-events-none absolute flex items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CircleIcon2, { className: "size-2 fill-current" }) }) }),
2845
2982
  children
2846
2983
  ]
2847
2984
  }
@@ -2853,8 +2990,8 @@ function MenubarLabel({
2853
2990
  slotName = "menubar-label",
2854
2991
  ...props
2855
2992
  }) {
2856
- return /* @__PURE__ */ jsx(
2857
- Menubar$1.Label,
2993
+ return /* @__PURE__ */ jsx24(
2994
+ MenubarPrimitive.Label,
2858
2995
  {
2859
2996
  "data-inset": inset,
2860
2997
  className: cn(
@@ -2871,8 +3008,8 @@ function MenubarSeparator({
2871
3008
  slotName = "menubar-separator",
2872
3009
  ...props
2873
3010
  }) {
2874
- return /* @__PURE__ */ jsx(
2875
- Menubar$1.Separator,
3011
+ return /* @__PURE__ */ jsx24(
3012
+ MenubarPrimitive.Separator,
2876
3013
  {
2877
3014
  className: cn("-mx-1 my-1 h-px bg-border", className),
2878
3015
  ...props,
@@ -2885,7 +3022,7 @@ function MenubarShortcut({
2885
3022
  slotName = "menubar-shortcut",
2886
3023
  ...props
2887
3024
  }) {
2888
- return /* @__PURE__ */ jsx(
3025
+ return /* @__PURE__ */ jsx24(
2889
3026
  "span",
2890
3027
  {
2891
3028
  className: cn(
@@ -2901,7 +3038,7 @@ function MenubarSub({
2901
3038
  slotName = "menubar-sub",
2902
3039
  ...props
2903
3040
  }) {
2904
- return /* @__PURE__ */ jsx(Menubar$1.Sub, { ...props, "data-slot": slotName });
3041
+ return /* @__PURE__ */ jsx24(MenubarPrimitive.Sub, { ...props, "data-slot": slotName });
2905
3042
  }
2906
3043
  function MenubarSubTrigger({
2907
3044
  className,
@@ -2910,8 +3047,8 @@ function MenubarSubTrigger({
2910
3047
  slotName = "menubar-sub-trigger",
2911
3048
  ...props
2912
3049
  }) {
2913
- return /* @__PURE__ */ jsxs(
2914
- Menubar$1.SubTrigger,
3050
+ return /* @__PURE__ */ jsxs16(
3051
+ MenubarPrimitive.SubTrigger,
2915
3052
  {
2916
3053
  "data-inset": inset,
2917
3054
  className: cn(
@@ -2922,7 +3059,7 @@ function MenubarSubTrigger({
2922
3059
  "data-slot": slotName,
2923
3060
  children: [
2924
3061
  children,
2925
- /* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-4 w-4 ml-auto" })
3062
+ /* @__PURE__ */ jsx24(ChevronRightIcon2, { className: "h-4 w-4 ml-auto" })
2926
3063
  ]
2927
3064
  }
2928
3065
  );
@@ -2932,8 +3069,8 @@ function MenubarSubContent({
2932
3069
  slotName = "menubar-sub-content",
2933
3070
  ...props
2934
3071
  }) {
2935
- return /* @__PURE__ */ jsx(
2936
- Menubar$1.SubContent,
3072
+ return /* @__PURE__ */ jsx24(
3073
+ MenubarPrimitive.SubContent,
2937
3074
  {
2938
3075
  className: cn(
2939
3076
  `${menuSurface} p-1.5 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 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden`,
@@ -2944,6 +3081,12 @@ function MenubarSubContent({
2944
3081
  }
2945
3082
  );
2946
3083
  }
3084
+
3085
+ // src/components/ui/navigation-menu.tsx
3086
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
3087
+ import { cva as cva2 } from "class-variance-authority";
3088
+ import { ChevronDownIcon } from "lucide-react";
3089
+ import { jsx as jsx25, jsxs as jsxs17 } from "react/jsx-runtime";
2947
3090
  function NavigationMenu({
2948
3091
  className,
2949
3092
  children,
@@ -2951,7 +3094,7 @@ function NavigationMenu({
2951
3094
  slotName = "navigation-menu",
2952
3095
  ...props
2953
3096
  }) {
2954
- return /* @__PURE__ */ jsxs(
3097
+ return /* @__PURE__ */ jsxs17(
2955
3098
  NavigationMenuPrimitive.Root,
2956
3099
  {
2957
3100
  "data-viewport": viewport,
@@ -2963,7 +3106,7 @@ function NavigationMenu({
2963
3106
  "data-slot": slotName,
2964
3107
  children: [
2965
3108
  children,
2966
- viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})
3109
+ viewport && /* @__PURE__ */ jsx25(NavigationMenuViewport, {})
2967
3110
  ]
2968
3111
  }
2969
3112
  );
@@ -2973,7 +3116,7 @@ function NavigationMenuList({
2973
3116
  slotName = "navigation-menu-list",
2974
3117
  ...props
2975
3118
  }) {
2976
- return /* @__PURE__ */ jsx(
3119
+ return /* @__PURE__ */ jsx25(
2977
3120
  NavigationMenuPrimitive.List,
2978
3121
  {
2979
3122
  className: cn(
@@ -2990,7 +3133,7 @@ function NavigationMenuItem({
2990
3133
  slotName = "navigation-menu-item",
2991
3134
  ...props
2992
3135
  }) {
2993
- return /* @__PURE__ */ jsx(
3136
+ return /* @__PURE__ */ jsx25(
2994
3137
  NavigationMenuPrimitive.Item,
2995
3138
  {
2996
3139
  className: cn("relative", className),
@@ -2999,7 +3142,7 @@ function NavigationMenuItem({
2999
3142
  }
3000
3143
  );
3001
3144
  }
3002
- var navigationMenuTriggerStyle = cva(
3145
+ var navigationMenuTriggerStyle = cva2(
3003
3146
  "group inline-flex h-11 w-max items-center justify-center rounded-xl bg-background px-4 text-sm font-medium data-[state=open]:font-semibold hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[active=true]:bg-accent/50 data-[state=open]:bg-accent/50 data-[active=true]:text-accent-foreground transition-[color,box-shadow] outline-none focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring"
3004
3147
  );
3005
3148
  function NavigationMenuTrigger({
@@ -3008,7 +3151,7 @@ function NavigationMenuTrigger({
3008
3151
  slotName = "navigation-menu-trigger",
3009
3152
  ...props
3010
3153
  }) {
3011
- return /* @__PURE__ */ jsxs(
3154
+ return /* @__PURE__ */ jsxs17(
3012
3155
  NavigationMenuPrimitive.Trigger,
3013
3156
  {
3014
3157
  className: cn(navigationMenuTriggerStyle(), "group", className),
@@ -3017,7 +3160,7 @@ function NavigationMenuTrigger({
3017
3160
  children: [
3018
3161
  children,
3019
3162
  " ",
3020
- /* @__PURE__ */ jsx(
3163
+ /* @__PURE__ */ jsx25(
3021
3164
  ChevronDownIcon,
3022
3165
  {
3023
3166
  className: "ml-1 size-3 relative top-[1px] transition duration-300 group-data-[state=open]:rotate-180",
@@ -3033,7 +3176,7 @@ function NavigationMenuContent({
3033
3176
  slotName = "navigation-menu-content",
3034
3177
  ...props
3035
3178
  }) {
3036
- return /* @__PURE__ */ jsx(
3179
+ return /* @__PURE__ */ jsx25(
3037
3180
  NavigationMenuPrimitive.Content,
3038
3181
  {
3039
3182
  className: cn(
@@ -3051,13 +3194,13 @@ function NavigationMenuViewport({
3051
3194
  slotName = "navigation-menu-viewport",
3052
3195
  ...props
3053
3196
  }) {
3054
- return /* @__PURE__ */ jsx(
3197
+ return /* @__PURE__ */ jsx25(
3055
3198
  "div",
3056
3199
  {
3057
3200
  className: cn(
3058
3201
  "left-0 absolute top-full isolate z-50 flex justify-center"
3059
3202
  ),
3060
- children: /* @__PURE__ */ jsx(
3203
+ children: /* @__PURE__ */ jsx25(
3061
3204
  NavigationMenuPrimitive.Viewport,
3062
3205
  {
3063
3206
  className: cn(
@@ -3076,7 +3219,7 @@ function NavigationMenuLink({
3076
3219
  slotName = "navigation-menu-link",
3077
3220
  ...props
3078
3221
  }) {
3079
- return /* @__PURE__ */ jsx(
3222
+ return /* @__PURE__ */ jsx25(
3080
3223
  NavigationMenuPrimitive.Link,
3081
3224
  {
3082
3225
  className: cn(
@@ -3093,7 +3236,7 @@ function NavigationMenuIndicator({
3093
3236
  slotName = "navigation-menu-indicator",
3094
3237
  ...props
3095
3238
  }) {
3096
- return /* @__PURE__ */ jsx(
3239
+ return /* @__PURE__ */ jsx25(
3097
3240
  NavigationMenuPrimitive.Indicator,
3098
3241
  {
3099
3242
  className: cn(
@@ -3102,16 +3245,24 @@ function NavigationMenuIndicator({
3102
3245
  ),
3103
3246
  ...props,
3104
3247
  "data-slot": slotName,
3105
- children: /* @__PURE__ */ jsx("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
3248
+ children: /* @__PURE__ */ jsx25("div", { className: "h-2 w-2 shadow-md rounded-tl-xs relative top-[60%] rotate-45 bg-border" })
3106
3249
  }
3107
3250
  );
3108
3251
  }
3252
+
3253
+ // src/components/ui/pagination.tsx
3254
+ import {
3255
+ ChevronLeftIcon,
3256
+ ChevronRightIcon as ChevronRightIcon3,
3257
+ MoreHorizontalIcon
3258
+ } from "lucide-react";
3259
+ import { jsx as jsx26, jsxs as jsxs18 } from "react/jsx-runtime";
3109
3260
  function Pagination({
3110
3261
  className,
3111
3262
  slotName = "pagination",
3112
3263
  ...props
3113
3264
  }) {
3114
- return /* @__PURE__ */ jsx(
3265
+ return /* @__PURE__ */ jsx26(
3115
3266
  "nav",
3116
3267
  {
3117
3268
  role: "navigation",
@@ -3127,7 +3278,7 @@ function PaginationContent({
3127
3278
  slotName = "pagination-content",
3128
3279
  ...props
3129
3280
  }) {
3130
- return /* @__PURE__ */ jsx(
3281
+ return /* @__PURE__ */ jsx26(
3131
3282
  "ul",
3132
3283
  {
3133
3284
  className: cn("gap-1 flex flex-row items-center", className),
@@ -3140,7 +3291,7 @@ function PaginationItem({
3140
3291
  slotName = "pagination-item",
3141
3292
  ...props
3142
3293
  }) {
3143
- return /* @__PURE__ */ jsx("li", { ...props, "data-slot": slotName });
3294
+ return /* @__PURE__ */ jsx26("li", { ...props, "data-slot": slotName });
3144
3295
  }
3145
3296
  function PaginationLink({
3146
3297
  className,
@@ -3149,7 +3300,7 @@ function PaginationLink({
3149
3300
  slotName = "pagination-link",
3150
3301
  ...props
3151
3302
  }) {
3152
- return /* @__PURE__ */ jsx(
3303
+ return /* @__PURE__ */ jsx26(
3153
3304
  "a",
3154
3305
  {
3155
3306
  "aria-current": isActive ? "page" : void 0,
@@ -3170,7 +3321,7 @@ function PaginationPrevious({
3170
3321
  className,
3171
3322
  ...props
3172
3323
  }) {
3173
- return /* @__PURE__ */ jsxs(
3324
+ return /* @__PURE__ */ jsxs18(
3174
3325
  PaginationLink,
3175
3326
  {
3176
3327
  "aria-label": "Go to previous page",
@@ -3178,8 +3329,8 @@ function PaginationPrevious({
3178
3329
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
3179
3330
  ...props,
3180
3331
  children: [
3181
- /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
3182
- /* @__PURE__ */ jsx("span", { className: "sm:block hidden", children: "Previous" })
3332
+ /* @__PURE__ */ jsx26(ChevronLeftIcon, {}),
3333
+ /* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Previous" })
3183
3334
  ]
3184
3335
  }
3185
3336
  );
@@ -3188,7 +3339,7 @@ function PaginationNext({
3188
3339
  className,
3189
3340
  ...props
3190
3341
  }) {
3191
- return /* @__PURE__ */ jsxs(
3342
+ return /* @__PURE__ */ jsxs18(
3192
3343
  PaginationLink,
3193
3344
  {
3194
3345
  "aria-label": "Go to next page",
@@ -3196,8 +3347,8 @@ function PaginationNext({
3196
3347
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
3197
3348
  ...props,
3198
3349
  children: [
3199
- /* @__PURE__ */ jsx("span", { className: "sm:block hidden", children: "Next" }),
3200
- /* @__PURE__ */ jsx(ChevronRightIcon, {})
3350
+ /* @__PURE__ */ jsx26("span", { className: "sm:block hidden", children: "Next" }),
3351
+ /* @__PURE__ */ jsx26(ChevronRightIcon3, {})
3201
3352
  ]
3202
3353
  }
3203
3354
  );
@@ -3207,7 +3358,7 @@ function PaginationEllipsis({
3207
3358
  slotName = "pagination-ellipsis",
3208
3359
  ...props
3209
3360
  }) {
3210
- return /* @__PURE__ */ jsxs(
3361
+ return /* @__PURE__ */ jsxs18(
3211
3362
  "span",
3212
3363
  {
3213
3364
  "aria-hidden": true,
@@ -3218,63 +3369,23 @@ function PaginationEllipsis({
3218
3369
  ...props,
3219
3370
  "data-slot": slotName,
3220
3371
  children: [
3221
- /* @__PURE__ */ jsx(MoreHorizontalIcon, { className: "size-4" }),
3222
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
3372
+ /* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "size-4" }),
3373
+ /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "More pages" })
3223
3374
  ]
3224
3375
  }
3225
3376
  );
3226
3377
  }
3227
- var passwordInputDefaultLabels = {
3228
- showLabel: "Show password",
3229
- hideLabel: "Hide password"
3230
- };
3231
- function PasswordInput({
3232
- className,
3233
- revealable = true,
3234
- showLabel,
3235
- hideLabel,
3236
- slotName = "password-input",
3237
- ...props
3238
- }) {
3239
- const labels = useUiLabels("passwordInput", passwordInputDefaultLabels, {
3240
- showLabel,
3241
- hideLabel
3242
- });
3243
- const [visible, setVisible] = React3.useState(false);
3244
- return /* @__PURE__ */ jsxs("div", { className: "relative w-full", "data-slot": slotName, children: [
3245
- /* @__PURE__ */ jsx(
3246
- Input,
3247
- {
3248
- type: visible ? "text" : "password",
3249
- className: cn(revealable && "pr-12", className),
3250
- ...props
3251
- }
3252
- ),
3253
- revealable ? /* @__PURE__ */ jsx(
3254
- Button,
3255
- {
3256
- type: "button",
3257
- variant: "ghost",
3258
- size: "icon-sm",
3259
- slotName: "password-input-toggle",
3260
- "aria-label": visible ? labels.hideLabel : labels.showLabel,
3261
- "aria-pressed": visible,
3262
- disabled: props.disabled,
3263
- onMouseDown: (event) => event.preventDefault(),
3264
- onClick: () => setVisible((current) => !current),
3265
- className: "right-1 absolute top-1/2 -translate-y-1/2",
3266
- children: visible ? /* @__PURE__ */ jsx(EyeOff, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Eye, { "aria-hidden": "true" })
3267
- }
3268
- ) : null
3269
- ] });
3270
- }
3378
+
3379
+ // src/components/ui/placeholder-pattern.tsx
3380
+ import { useId as useId3 } from "react";
3381
+ import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
3271
3382
  function PlaceholderPattern({
3272
3383
  className,
3273
3384
  slotName = "placeholder-pattern"
3274
3385
  }) {
3275
- const patternId = useId();
3276
- return /* @__PURE__ */ jsxs("svg", { className, fill: "none", "data-slot": slotName, children: [
3277
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
3386
+ const patternId = useId3();
3387
+ return /* @__PURE__ */ jsxs19("svg", { className, fill: "none", "data-slot": slotName, children: [
3388
+ /* @__PURE__ */ jsx27("defs", { children: /* @__PURE__ */ jsx27(
3278
3389
  "pattern",
3279
3390
  {
3280
3391
  id: patternId,
@@ -3283,7 +3394,7 @@ function PlaceholderPattern({
3283
3394
  width: "10",
3284
3395
  height: "10",
3285
3396
  patternUnits: "userSpaceOnUse",
3286
- children: /* @__PURE__ */ jsx(
3397
+ children: /* @__PURE__ */ jsx27(
3287
3398
  "path",
3288
3399
  {
3289
3400
  d: "M-3 13 15-5M-5 5l18-18M-1 21 17 3",
@@ -3292,7 +3403,7 @@ function PlaceholderPattern({
3292
3403
  )
3293
3404
  }
3294
3405
  ) }),
3295
- /* @__PURE__ */ jsx(
3406
+ /* @__PURE__ */ jsx27(
3296
3407
  "rect",
3297
3408
  {
3298
3409
  stroke: "none",
@@ -3303,14 +3414,18 @@ function PlaceholderPattern({
3303
3414
  )
3304
3415
  ] });
3305
3416
  }
3417
+
3418
+ // src/components/ui/progress.tsx
3419
+ import { Progress as ProgressPrimitive } from "radix-ui";
3420
+ import { jsx as jsx28 } from "react/jsx-runtime";
3306
3421
  function Progress({
3307
3422
  className,
3308
3423
  value,
3309
3424
  slotName = "progress",
3310
3425
  ...props
3311
3426
  }) {
3312
- return /* @__PURE__ */ jsx(
3313
- Progress$1.Root,
3427
+ return /* @__PURE__ */ jsx28(
3428
+ ProgressPrimitive.Root,
3314
3429
  {
3315
3430
  className: cn(
3316
3431
  "h-2 relative w-full overflow-hidden rounded-full bg-primary/20",
@@ -3318,8 +3433,8 @@ function Progress({
3318
3433
  ),
3319
3434
  ...props,
3320
3435
  "data-slot": slotName,
3321
- children: /* @__PURE__ */ jsx(
3322
- Progress$1.Indicator,
3436
+ children: /* @__PURE__ */ jsx28(
3437
+ ProgressPrimitive.Indicator,
3323
3438
  {
3324
3439
  "data-slot": "progress-indicator",
3325
3440
  className: "h-full w-full flex-1 bg-primary transition-all",
@@ -3329,13 +3444,18 @@ function Progress({
3329
3444
  }
3330
3445
  );
3331
3446
  }
3447
+
3448
+ // src/components/ui/radio-group.tsx
3449
+ import { CircleIcon as CircleIcon3 } from "lucide-react";
3450
+ import { RadioGroup as RadioGroupPrimitive } from "radix-ui";
3451
+ import { jsx as jsx29 } from "react/jsx-runtime";
3332
3452
  function RadioGroup({
3333
3453
  className,
3334
3454
  slotName = "radio-group",
3335
3455
  ...props
3336
3456
  }) {
3337
- return /* @__PURE__ */ jsx(
3338
- RadioGroup$1.Root,
3457
+ return /* @__PURE__ */ jsx29(
3458
+ RadioGroupPrimitive.Root,
3339
3459
  {
3340
3460
  className: cn("gap-3 grid", className),
3341
3461
  ...props,
@@ -3348,8 +3468,8 @@ function RadioGroupItem({
3348
3468
  slotName = "radio-group-item",
3349
3469
  ...props
3350
3470
  }) {
3351
- return /* @__PURE__ */ jsx(
3352
- RadioGroup$1.Item,
3471
+ return /* @__PURE__ */ jsx29(
3472
+ RadioGroupPrimitive.Item,
3353
3473
  {
3354
3474
  className: cn(
3355
3475
  `size-5 shadow-xs aspect-square shrink-0 rounded-full border border-border text-primary transition-[color,box-shadow] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 ${focusRing}`,
@@ -3357,23 +3477,27 @@ function RadioGroupItem({
3357
3477
  ),
3358
3478
  ...props,
3359
3479
  "data-slot": slotName,
3360
- children: /* @__PURE__ */ jsx(
3361
- RadioGroup$1.Indicator,
3480
+ children: /* @__PURE__ */ jsx29(
3481
+ RadioGroupPrimitive.Indicator,
3362
3482
  {
3363
3483
  "data-slot": "radio-group-indicator",
3364
3484
  className: "relative flex items-center justify-center",
3365
- children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
3485
+ children: /* @__PURE__ */ jsx29(CircleIcon3, { className: "size-2.5 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 fill-primary" })
3366
3486
  }
3367
3487
  )
3368
3488
  }
3369
3489
  );
3370
3490
  }
3491
+
3492
+ // src/components/ui/resizable.tsx
3493
+ import * as ResizablePrimitive from "react-resizable-panels";
3494
+ import { jsx as jsx30 } from "react/jsx-runtime";
3371
3495
  function ResizablePanelGroup({
3372
3496
  className,
3373
3497
  slotName = "resizable-panel-group",
3374
3498
  ...props
3375
3499
  }) {
3376
- return /* @__PURE__ */ jsx(
3500
+ return /* @__PURE__ */ jsx30(
3377
3501
  ResizablePrimitive.Group,
3378
3502
  {
3379
3503
  className: cn(
@@ -3391,7 +3515,7 @@ function ResizablePanel({
3391
3515
  slotName = "resizable-panel",
3392
3516
  ...props
3393
3517
  }) {
3394
- return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
3518
+ return /* @__PURE__ */ jsx30(ResizablePrimitive.Panel, { ...props, "data-slot": slotName });
3395
3519
  }
3396
3520
  function ResizableHandle({
3397
3521
  withHandle,
@@ -3399,7 +3523,7 @@ function ResizableHandle({
3399
3523
  slotName = "resizable-handle",
3400
3524
  ...props
3401
3525
  }) {
3402
- return /* @__PURE__ */ jsx(
3526
+ return /* @__PURE__ */ jsx30(
3403
3527
  ResizablePrimitive.Separator,
3404
3528
  {
3405
3529
  className: cn(
@@ -3408,10 +3532,15 @@ function ResizableHandle({
3408
3532
  ),
3409
3533
  ...props,
3410
3534
  "data-slot": slotName,
3411
- children: withHandle && /* @__PURE__ */ jsx("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
3535
+ children: withHandle && /* @__PURE__ */ jsx30("div", { className: "h-8 w-1.5 z-10 rounded-full bg-muted-foreground/40 transition-colors group-hover:bg-muted-foreground/60" })
3412
3536
  }
3413
3537
  );
3414
3538
  }
3539
+
3540
+ // src/components/ui/save-status.tsx
3541
+ import { Check as Check3, TriangleAlert } from "lucide-react";
3542
+ import * as React7 from "react";
3543
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
3415
3544
  var saveStatusLabels = {
3416
3545
  error: "Your changes could not be saved",
3417
3546
  idle: "Changes are saved automatically",
@@ -3430,8 +3559,8 @@ function SaveStatus({
3430
3559
  ...props
3431
3560
  }) {
3432
3561
  const text = useUiLabels("saveStatus", saveStatusLabels, labels);
3433
- const [faded, setFaded] = React3.useState(false);
3434
- React3.useEffect(() => {
3562
+ const [faded, setFaded] = React7.useState(false);
3563
+ React7.useEffect(() => {
3435
3564
  if (status !== "saved" || savedDuration <= 0) {
3436
3565
  setFaded(false);
3437
3566
  return;
@@ -3441,7 +3570,7 @@ function SaveStatus({
3441
3570
  return () => clearTimeout(timer);
3442
3571
  }, [status, savedDuration, message]);
3443
3572
  const hidden = status === "saved" && faded;
3444
- return /* @__PURE__ */ jsxs(
3573
+ return /* @__PURE__ */ jsxs20(
3445
3574
  "div",
3446
3575
  {
3447
3576
  ...props,
@@ -3457,7 +3586,7 @@ function SaveStatus({
3457
3586
  ),
3458
3587
  "data-slot": slotName,
3459
3588
  children: [
3460
- status === "idle" && showIdle && /* @__PURE__ */ jsx(
3589
+ status === "idle" && showIdle && /* @__PURE__ */ jsx31(
3461
3590
  "span",
3462
3591
  {
3463
3592
  "data-slot": "save-status-idle",
@@ -3465,35 +3594,35 @@ function SaveStatus({
3465
3594
  children: text.idle
3466
3595
  }
3467
3596
  ),
3468
- status === "saving" && /* @__PURE__ */ jsxs(
3597
+ status === "saving" && /* @__PURE__ */ jsxs20(
3469
3598
  "span",
3470
3599
  {
3471
3600
  "data-slot": "save-status-saving",
3472
3601
  className: "gap-2 flex items-center text-muted-foreground",
3473
3602
  children: [
3474
- /* @__PURE__ */ jsx(Spinner, { size: "sm", label: "", "aria-hidden": "true" }),
3603
+ /* @__PURE__ */ jsx31(Spinner, { size: "sm", label: "", "aria-hidden": "true" }),
3475
3604
  text.saving
3476
3605
  ]
3477
3606
  }
3478
3607
  ),
3479
- status === "saved" && /* @__PURE__ */ jsxs(
3608
+ status === "saved" && /* @__PURE__ */ jsxs20(
3480
3609
  "span",
3481
3610
  {
3482
3611
  "data-slot": "save-status-saved",
3483
3612
  className: "gap-2 flex items-center text-success",
3484
3613
  children: [
3485
- /* @__PURE__ */ jsx(Check, { "aria-hidden": "true", className: "size-3.5" }),
3614
+ /* @__PURE__ */ jsx31(Check3, { "aria-hidden": "true", className: "size-3.5" }),
3486
3615
  text.saved
3487
3616
  ]
3488
3617
  }
3489
3618
  ),
3490
- status === "error" && /* @__PURE__ */ jsxs(
3619
+ status === "error" && /* @__PURE__ */ jsxs20(
3491
3620
  "span",
3492
3621
  {
3493
3622
  "data-slot": "save-status-error",
3494
3623
  className: "gap-2 flex items-center text-destructive",
3495
3624
  children: [
3496
- /* @__PURE__ */ jsx(TriangleAlert, { "aria-hidden": "true", className: "size-3.5" }),
3625
+ /* @__PURE__ */ jsx31(TriangleAlert, { "aria-hidden": "true", className: "size-3.5" }),
3497
3626
  message ?? text.error
3498
3627
  ]
3499
3628
  }
@@ -3502,7 +3631,12 @@ function SaveStatus({
3502
3631
  }
3503
3632
  );
3504
3633
  }
3505
- var ScrollArea = React3.forwardRef(({ className, children, slotName = "scroll-area", ...props }, ref) => /* @__PURE__ */ jsxs(
3634
+
3635
+ // src/components/ui/scroll-area.tsx
3636
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3637
+ import * as React8 from "react";
3638
+ import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
3639
+ var ScrollArea = React8.forwardRef(({ className, children, slotName = "scroll-area", ...props }, ref) => /* @__PURE__ */ jsxs21(
3506
3640
  ScrollAreaPrimitive.Root,
3507
3641
  {
3508
3642
  ref,
@@ -3516,20 +3650,20 @@ var ScrollArea = React3.forwardRef(({ className, children, slotName = "scroll-ar
3516
3650
  ...props,
3517
3651
  "data-slot": slotName,
3518
3652
  children: [
3519
- /* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3520
- /* @__PURE__ */ jsx(ScrollBar, {}),
3521
- /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
3653
+ /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
3654
+ /* @__PURE__ */ jsx32(ScrollBar, {}),
3655
+ /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Corner, {})
3522
3656
  ]
3523
3657
  }
3524
3658
  ));
3525
3659
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3526
- var ScrollBar = React3.forwardRef(
3660
+ var ScrollBar = React8.forwardRef(
3527
3661
  ({
3528
3662
  className,
3529
3663
  orientation = "vertical",
3530
3664
  slotName = "scroll-area-scrollbar",
3531
3665
  ...props
3532
- }, ref) => /* @__PURE__ */ jsx(
3666
+ }, ref) => /* @__PURE__ */ jsx32(
3533
3667
  ScrollAreaPrimitive.ScrollAreaScrollbar,
3534
3668
  {
3535
3669
  ref,
@@ -3542,11 +3676,16 @@ var ScrollBar = React3.forwardRef(
3542
3676
  ),
3543
3677
  ...props,
3544
3678
  "data-slot": slotName,
3545
- children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3679
+ children: /* @__PURE__ */ jsx32(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
3546
3680
  }
3547
3681
  )
3548
3682
  );
3549
3683
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3684
+
3685
+ // src/components/ui/slider.tsx
3686
+ import { Slider as SliderPrimitive } from "radix-ui";
3687
+ import * as React9 from "react";
3688
+ import { jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
3550
3689
  function Slider({
3551
3690
  className,
3552
3691
  defaultValue,
@@ -3556,12 +3695,12 @@ function Slider({
3556
3695
  slotName = "slider",
3557
3696
  ...props
3558
3697
  }) {
3559
- const _values = React3.useMemo(
3698
+ const _values = React9.useMemo(
3560
3699
  () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
3561
3700
  [value, defaultValue, min, max]
3562
3701
  );
3563
- return /* @__PURE__ */ jsxs(
3564
- Slider$1.Root,
3702
+ return /* @__PURE__ */ jsxs22(
3703
+ SliderPrimitive.Root,
3565
3704
  {
3566
3705
  defaultValue,
3567
3706
  value,
@@ -3574,15 +3713,15 @@ function Slider({
3574
3713
  ...props,
3575
3714
  "data-slot": slotName,
3576
3715
  children: [
3577
- /* @__PURE__ */ jsx(
3578
- Slider$1.Track,
3716
+ /* @__PURE__ */ jsx33(
3717
+ SliderPrimitive.Track,
3579
3718
  {
3580
3719
  "data-slot": "slider-track",
3581
3720
  className: cn(
3582
3721
  "data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full"
3583
3722
  ),
3584
- children: /* @__PURE__ */ jsx(
3585
- Slider$1.Range,
3723
+ children: /* @__PURE__ */ jsx33(
3724
+ SliderPrimitive.Range,
3586
3725
  {
3587
3726
  "data-slot": "slider-range",
3588
3727
  className: cn(
@@ -3592,8 +3731,8 @@ function Slider({
3592
3731
  )
3593
3732
  }
3594
3733
  ),
3595
- Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(
3596
- Slider$1.Thumb,
3734
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx33(
3735
+ SliderPrimitive.Thumb,
3597
3736
  {
3598
3737
  "data-slot": "slider-thumb",
3599
3738
  className: cn(
@@ -3607,9 +3746,21 @@ function Slider({
3607
3746
  }
3608
3747
  );
3609
3748
  }
3749
+
3750
+ // src/components/ui/sonner.tsx
3751
+ import {
3752
+ CircleCheckIcon,
3753
+ InfoIcon,
3754
+ Loader2Icon,
3755
+ OctagonXIcon,
3756
+ TriangleAlertIcon
3757
+ } from "lucide-react";
3758
+ import { useEffect as useEffect4, useState as useState9 } from "react";
3759
+ import { Toaster as Sonner } from "sonner";
3760
+ import { jsx as jsx34 } from "react/jsx-runtime";
3610
3761
  function useDocumentScheme() {
3611
- const [scheme, setScheme] = useState("light");
3612
- useEffect(() => {
3762
+ const [scheme, setScheme] = useState9("light");
3763
+ useEffect4(() => {
3613
3764
  const root = document.documentElement;
3614
3765
  const read = () => setScheme(root.classList.contains("dark") ? "dark" : "light");
3615
3766
  read();
@@ -3624,17 +3775,17 @@ function useDocumentScheme() {
3624
3775
  }
3625
3776
  var Toaster = ({ theme, ...props }) => {
3626
3777
  const scheme = useDocumentScheme();
3627
- return /* @__PURE__ */ jsx(
3628
- Toaster$1,
3778
+ return /* @__PURE__ */ jsx34(
3779
+ Sonner,
3629
3780
  {
3630
3781
  theme: theme ?? scheme,
3631
3782
  className: "toaster group [&_[data-sonner-toast]]:shadow-2xl [&_[data-sonner-toast]]:backdrop-blur-xl",
3632
3783
  icons: {
3633
- success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
3634
- info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
3635
- warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
3636
- error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
3637
- loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
3784
+ success: /* @__PURE__ */ jsx34(CircleCheckIcon, { className: "size-4" }),
3785
+ info: /* @__PURE__ */ jsx34(InfoIcon, { className: "size-4" }),
3786
+ warning: /* @__PURE__ */ jsx34(TriangleAlertIcon, { className: "size-4" }),
3787
+ error: /* @__PURE__ */ jsx34(OctagonXIcon, { className: "size-4" }),
3788
+ loading: /* @__PURE__ */ jsx34(Loader2Icon, { className: "size-4 animate-spin" })
3638
3789
  },
3639
3790
  style: {
3640
3791
  "--normal-bg": "color-mix(in oklab, var(--popover) 90%, transparent)",
@@ -3646,7 +3797,11 @@ var Toaster = ({ theme, ...props }) => {
3646
3797
  }
3647
3798
  );
3648
3799
  };
3649
- var statusBadgeVariants = cva("", {
3800
+
3801
+ // src/components/ui/status-badge.tsx
3802
+ import { cva as cva3 } from "class-variance-authority";
3803
+ import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
3804
+ var statusBadgeVariants = cva3("", {
3650
3805
  variants: {
3651
3806
  status: {
3652
3807
  neutral: "border-border bg-muted text-muted-foreground",
@@ -3669,7 +3824,7 @@ function StatusBadge({
3669
3824
  ...props
3670
3825
  }) {
3671
3826
  const resolvedStatus = status ?? "neutral";
3672
- return /* @__PURE__ */ jsxs(
3827
+ return /* @__PURE__ */ jsxs23(
3673
3828
  Badge,
3674
3829
  {
3675
3830
  variant: "outline",
@@ -3681,7 +3836,7 @@ function StatusBadge({
3681
3836
  ...props,
3682
3837
  slotName,
3683
3838
  children: [
3684
- dot && /* @__PURE__ */ jsx(
3839
+ dot && /* @__PURE__ */ jsx35(
3685
3840
  "span",
3686
3841
  {
3687
3842
  "aria-hidden": "true",
@@ -3694,7 +3849,12 @@ function StatusBadge({
3694
3849
  }
3695
3850
  );
3696
3851
  }
3697
- var textLinkVariants = cva(
3852
+
3853
+ // src/components/ui/text-link.tsx
3854
+ import { Slot as Slot3 } from "@radix-ui/react-slot";
3855
+ import { cva as cva4 } from "class-variance-authority";
3856
+ import { jsx as jsx36 } from "react/jsx-runtime";
3857
+ var textLinkVariants = cva4(
3698
3858
  `cursor-pointer rounded-xl underline decoration-border underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current ${focusRing}`,
3699
3859
  {
3700
3860
  variants: {
@@ -3715,8 +3875,8 @@ function TextLink({
3715
3875
  slotName = "text-link",
3716
3876
  ...props
3717
3877
  }) {
3718
- const Comp = asChild ? Slot : "a";
3719
- return /* @__PURE__ */ jsx(
3878
+ const Comp = asChild ? Slot3 : "a";
3879
+ return /* @__PURE__ */ jsx36(
3720
3880
  Comp,
3721
3881
  {
3722
3882
  "data-variant": variant,
@@ -3727,6 +3887,318 @@ function TextLink({
3727
3887
  );
3728
3888
  }
3729
3889
 
3730
- export { AUTOSAVE_DELAY, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AppearanceToggle, AspectRatio, Badge, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Combobox, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataTable, DatePicker, DateRangeFilter, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, EmptyState, FacetedFilter, Field, FieldControl, FieldDescription, FieldGroup, FieldLabel, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PasswordInput, PlaceholderPattern, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RowActionsMenu, SAVED_DURATION, SaveStatus, ScrollArea, ScrollBar, ServerFacetedFilter, Slider, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TextLink, Toaster, ToggleGroup, ToggleGroupItem, appearanceToggleDefaultLabels, badgeVariants, comboboxDefaultLabels, dataTableDefaultLabels, dataTableFacetedFilterDefaultLabels, datePickerDefaultLabels, dateRangeFilterDefaultLabels, emptyStateLabels, navigationMenuTriggerStyle, passwordInputDefaultLabels, saveStatusLabels, statusBadgeVariants, textLinkVariants, useAutosave, useConfirmDialog, useFormField };
3731
- //# sourceMappingURL=index.js.map
3890
+ // src/index.ts
3891
+ import { toast } from "sonner";
3892
+ export {
3893
+ AUTOSAVE_DELAY,
3894
+ Accordion,
3895
+ AccordionContent,
3896
+ AccordionItem,
3897
+ AccordionTrigger,
3898
+ AkiraMark,
3899
+ Alert,
3900
+ AlertDescription,
3901
+ AlertDialog,
3902
+ AlertDialogAction,
3903
+ AlertDialogCancel,
3904
+ AlertDialogContent,
3905
+ AlertDialogDescription,
3906
+ AlertDialogFooter,
3907
+ AlertDialogHeader,
3908
+ AlertDialogMedia,
3909
+ AlertDialogOverlay,
3910
+ AlertDialogPortal,
3911
+ AlertDialogTitle,
3912
+ AlertDialogTrigger,
3913
+ AlertTitle,
3914
+ AppearanceToggle,
3915
+ AspectRatio,
3916
+ Avatar,
3917
+ AvatarFallback,
3918
+ AvatarImage,
3919
+ Badge,
3920
+ Breadcrumb,
3921
+ BreadcrumbEllipsis,
3922
+ BreadcrumbItem,
3923
+ BreadcrumbLink,
3924
+ BreadcrumbList,
3925
+ BreadcrumbPage,
3926
+ BreadcrumbSeparator,
3927
+ Button,
3928
+ Calendar,
3929
+ CalendarDayButton,
3930
+ Card,
3931
+ CardContent,
3932
+ CardDescription,
3933
+ CardFooter,
3934
+ CardHeader,
3935
+ CardTitle,
3936
+ Carousel,
3937
+ CarouselContent,
3938
+ CarouselItem,
3939
+ CarouselNext,
3940
+ CarouselPrevious,
3941
+ ChartContainer,
3942
+ ChartLegend,
3943
+ ChartLegendContent,
3944
+ ChartStyle,
3945
+ ChartTooltip,
3946
+ ChartTooltipContent,
3947
+ Checkbox,
3948
+ Collapsible,
3949
+ CollapsibleContent,
3950
+ CollapsibleTrigger,
3951
+ Combobox,
3952
+ Command,
3953
+ CommandDialog,
3954
+ CommandEmpty,
3955
+ CommandGroup,
3956
+ CommandInput,
3957
+ CommandItem,
3958
+ CommandList,
3959
+ CommandSeparator,
3960
+ CommandShortcut,
3961
+ ConfirmDialog,
3962
+ ContextMenu,
3963
+ ContextMenuCheckboxItem,
3964
+ ContextMenuContent,
3965
+ ContextMenuGroup,
3966
+ ContextMenuItem,
3967
+ ContextMenuLabel,
3968
+ ContextMenuPortal,
3969
+ ContextMenuRadioGroup,
3970
+ ContextMenuRadioItem,
3971
+ ContextMenuSeparator,
3972
+ ContextMenuShortcut,
3973
+ ContextMenuSub,
3974
+ ContextMenuSubContent,
3975
+ ContextMenuSubTrigger,
3976
+ ContextMenuTrigger,
3977
+ CopyButton,
3978
+ DataTable,
3979
+ DatePicker,
3980
+ DateRangeFilter,
3981
+ Dialog,
3982
+ DialogClose,
3983
+ DialogContent,
3984
+ DialogDescription,
3985
+ DialogFooter,
3986
+ DialogHeader,
3987
+ DialogOverlay,
3988
+ DialogPortal,
3989
+ DialogTitle,
3990
+ DialogTrigger,
3991
+ Drawer,
3992
+ DrawerClose,
3993
+ DrawerContent,
3994
+ DrawerDescription,
3995
+ DrawerFooter,
3996
+ DrawerHeader,
3997
+ DrawerOverlay,
3998
+ DrawerPortal,
3999
+ DrawerTitle,
4000
+ DrawerTrigger,
4001
+ DropdownMenu,
4002
+ DropdownMenuCheckboxItem,
4003
+ DropdownMenuContent,
4004
+ DropdownMenuGroup,
4005
+ DropdownMenuItem,
4006
+ DropdownMenuLabel,
4007
+ DropdownMenuPortal,
4008
+ DropdownMenuRadioGroup,
4009
+ DropdownMenuRadioItem,
4010
+ DropdownMenuSeparator,
4011
+ DropdownMenuShortcut,
4012
+ DropdownMenuSub,
4013
+ DropdownMenuSubContent,
4014
+ DropdownMenuSubTrigger,
4015
+ DropdownMenuTrigger,
4016
+ EmptyState,
4017
+ FacetedFilter,
4018
+ Field,
4019
+ FieldControl,
4020
+ FieldDescription,
4021
+ FieldError,
4022
+ FieldGroup,
4023
+ FieldLabel,
4024
+ FloatingSheet,
4025
+ FloatingSheetBody,
4026
+ FloatingSheetFooter,
4027
+ FloatingSheetStack,
4028
+ Form,
4029
+ FormControl,
4030
+ FormDescription,
4031
+ FormField,
4032
+ FormItem,
4033
+ FormLabel,
4034
+ FormMessage,
4035
+ HoverCard,
4036
+ HoverCardContent,
4037
+ HoverCardTrigger,
4038
+ Icon,
4039
+ Input,
4040
+ InputOTP,
4041
+ InputOTPGroup,
4042
+ InputOTPSeparator,
4043
+ InputOTPSlot,
4044
+ Label,
4045
+ Menubar,
4046
+ MenubarCheckboxItem,
4047
+ MenubarContent,
4048
+ MenubarGroup,
4049
+ MenubarItem,
4050
+ MenubarLabel,
4051
+ MenubarMenu,
4052
+ MenubarPortal,
4053
+ MenubarRadioGroup,
4054
+ MenubarRadioItem,
4055
+ MenubarSeparator,
4056
+ MenubarShortcut,
4057
+ MenubarSub,
4058
+ MenubarSubContent,
4059
+ MenubarSubTrigger,
4060
+ MenubarTrigger,
4061
+ NavigationMenu,
4062
+ NavigationMenuContent,
4063
+ NavigationMenuIndicator,
4064
+ NavigationMenuItem,
4065
+ NavigationMenuLink,
4066
+ NavigationMenuList,
4067
+ NavigationMenuTrigger,
4068
+ NavigationMenuViewport,
4069
+ Pagination,
4070
+ PaginationContent,
4071
+ PaginationEllipsis,
4072
+ PaginationItem,
4073
+ PaginationLink,
4074
+ PaginationNext,
4075
+ PaginationPrevious,
4076
+ PasswordInput,
4077
+ PlaceholderPattern,
4078
+ Popover,
4079
+ PopoverAnchor,
4080
+ PopoverContent,
4081
+ PopoverTrigger,
4082
+ Progress,
4083
+ RadioGroup,
4084
+ RadioGroupItem,
4085
+ ResizableHandle,
4086
+ ResizablePanel,
4087
+ ResizablePanelGroup,
4088
+ RowActionsMenu,
4089
+ SAVED_DURATION,
4090
+ SaveStatus,
4091
+ ScrollArea,
4092
+ ScrollBar,
4093
+ Select,
4094
+ SelectContent,
4095
+ SelectGroup,
4096
+ SelectItem,
4097
+ SelectLabel,
4098
+ SelectScrollDownButton,
4099
+ SelectScrollUpButton,
4100
+ SelectSeparator,
4101
+ SelectTrigger,
4102
+ SelectValue,
4103
+ Separator,
4104
+ ServerFacetedFilter,
4105
+ Sheet,
4106
+ SheetClose,
4107
+ SheetContent,
4108
+ SheetDescription,
4109
+ SheetFooter,
4110
+ SheetHeader,
4111
+ SheetTitle,
4112
+ SheetTrigger,
4113
+ Sidebar,
4114
+ SidebarContent,
4115
+ SidebarFooter,
4116
+ SidebarGroup,
4117
+ SidebarGroupAction,
4118
+ SidebarGroupContent,
4119
+ SidebarGroupLabel,
4120
+ SidebarHeader,
4121
+ SidebarInput,
4122
+ SidebarInset,
4123
+ SidebarMenu,
4124
+ SidebarMenuAction,
4125
+ SidebarMenuBadge,
4126
+ SidebarMenuButton,
4127
+ SidebarMenuItem,
4128
+ SidebarMenuSkeleton,
4129
+ SidebarMenuSub,
4130
+ SidebarMenuSubButton,
4131
+ SidebarMenuSubItem,
4132
+ SidebarProvider,
4133
+ SidebarRail,
4134
+ SidebarSeparator,
4135
+ SidebarTrigger,
4136
+ Skeleton,
4137
+ Slider,
4138
+ Spinner,
4139
+ StatusBadge,
4140
+ Switch,
4141
+ Table,
4142
+ TableBody,
4143
+ TableCaption,
4144
+ TableCell,
4145
+ TableFooter,
4146
+ TableHead,
4147
+ TableHeader,
4148
+ TableRow,
4149
+ Tabs,
4150
+ TabsContent,
4151
+ TabsList,
4152
+ TabsTrigger,
4153
+ TextLink,
4154
+ Textarea,
4155
+ Toaster,
4156
+ Toggle,
4157
+ ToggleGroup,
4158
+ ToggleGroupItem,
4159
+ Tooltip,
4160
+ TooltipContent,
4161
+ TooltipProvider,
4162
+ TooltipTrigger,
4163
+ UiLocaleProvider,
4164
+ alertDefaultLabels,
4165
+ appearanceToggleDefaultLabels,
4166
+ badgeVariants,
4167
+ buttonVariants,
4168
+ cardVariants,
4169
+ cn,
4170
+ comboboxDefaultLabels,
4171
+ confirmDialogDefaultLabels,
4172
+ controlFill,
4173
+ copyButtonLabels,
4174
+ dataTableDefaultLabels,
4175
+ dataTableFacetedFilterDefaultLabels,
4176
+ datePickerDefaultLabels,
4177
+ dateRangeFilterDefaultLabels,
4178
+ elevatedSurface,
4179
+ emptyStateLabels,
4180
+ floatingSheetDefaultLabels,
4181
+ focusRing,
4182
+ menuHighlight,
4183
+ navigationMenuTriggerStyle,
4184
+ nestedEdgeToEdge,
4185
+ nestedRadius,
4186
+ nestedSurfaceReset,
4187
+ passwordInputDefaultLabels,
4188
+ recessedSurface,
4189
+ saveStatusLabels,
4190
+ spinnerVariants,
4191
+ statusBadgeVariants,
4192
+ surface,
4193
+ textLinkVariants,
4194
+ toast,
4195
+ toggleVariants,
4196
+ useAutosave,
4197
+ useConfirmDialog,
4198
+ useField,
4199
+ useFormField,
4200
+ useSidebar,
4201
+ useUiLabels,
4202
+ useUiLocale
4203
+ };
3732
4204
  //# sourceMappingURL=index.js.map