@mesob/ui 0.2.1 → 0.2.3

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 (43) hide show
  1. package/dist/components/alert-dialog.js +14 -14
  2. package/dist/components/alert-dialog.js.map +1 -1
  3. package/dist/components/app-breadcrumbs-context.d.ts +19 -0
  4. package/dist/components/app-breadcrumbs-context.js +19 -0
  5. package/dist/components/app-breadcrumbs-context.js.map +1 -0
  6. package/dist/components/app-breadcrumbs.d.ts +5 -14
  7. package/dist/components/app-breadcrumbs.js +5 -7
  8. package/dist/components/app-breadcrumbs.js.map +1 -1
  9. package/dist/components/app-header-actions.js +70 -70
  10. package/dist/components/app-header-actions.js.map +1 -1
  11. package/dist/components/app-sidebar.js +57 -59
  12. package/dist/components/app-sidebar.js.map +1 -1
  13. package/dist/components/button.js +4 -4
  14. package/dist/components/button.js.map +1 -1
  15. package/dist/components/calendar.js +12 -12
  16. package/dist/components/calendar.js.map +1 -1
  17. package/dist/components/carousel.js +14 -14
  18. package/dist/components/carousel.js.map +1 -1
  19. package/dist/components/data-table/index.js +57 -57
  20. package/dist/components/data-table/index.js.map +1 -1
  21. package/dist/components/entity/index.js +177 -177
  22. package/dist/components/entity/index.js.map +1 -1
  23. package/dist/components/input-group.js +15 -15
  24. package/dist/components/input-group.js.map +1 -1
  25. package/dist/components/page/index.js +21 -21
  26. package/dist/components/page/index.js.map +1 -1
  27. package/dist/components/pagination.js +12 -12
  28. package/dist/components/pagination.js.map +1 -1
  29. package/dist/components/section/index.js +15 -15
  30. package/dist/components/section/index.js.map +1 -1
  31. package/dist/components/shell.js +37 -42
  32. package/dist/components/shell.js.map +1 -1
  33. package/dist/components/sidebar-context.d.ts +19 -0
  34. package/dist/components/sidebar-context.js +17 -0
  35. package/dist/components/sidebar-context.js.map +1 -0
  36. package/dist/components/sidebar.d.ts +2 -15
  37. package/dist/components/sidebar.js +67 -70
  38. package/dist/components/sidebar.js.map +1 -1
  39. package/dist/components/spotlight-search.js +38 -38
  40. package/dist/components/spotlight-search.js.map +1 -1
  41. package/dist/components/theme-toggle.js +8 -8
  42. package/dist/components/theme-toggle.js.map +1 -1
  43. package/package.json +1 -1
@@ -12,7 +12,7 @@ function cn(...inputs) {
12
12
  // src/components/button.tsx
13
13
  import { Slot } from "@radix-ui/react-slot";
14
14
  import { cva } from "class-variance-authority";
15
- import { jsxs } from "react/jsx-runtime";
15
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
16
  var buttonVariants = cva(
17
17
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
18
18
  {
@@ -51,44 +51,44 @@ function Button({
51
51
  ...props
52
52
  }) {
53
53
  const Comp = asChild ? Slot : "button";
54
- return /* @__PURE__ */ jsxs(
54
+ return /* @__PURE__ */ jsx(
55
55
  Comp,
56
56
  {
57
57
  "data-slot": "button",
58
58
  className: cn(buttonVariants({ variant, size, className })),
59
59
  ...props,
60
- children: [
60
+ children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
61
61
  leftIcon,
62
62
  children,
63
63
  rightIcon
64
- ]
64
+ ] })
65
65
  }
66
66
  );
67
67
  }
68
68
 
69
69
  // src/components/alert-dialog.tsx
70
70
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
71
- import { jsx, jsxs as jsxs2 } from "react/jsx-runtime";
71
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
72
72
  function AlertDialog({
73
73
  ...props
74
74
  }) {
75
- return /* @__PURE__ */ jsx(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
75
+ return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
76
76
  }
77
77
  function AlertDialogTrigger({
78
78
  ...props
79
79
  }) {
80
- return /* @__PURE__ */ jsx(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
80
+ return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
81
81
  }
82
82
  function AlertDialogPortal({
83
83
  ...props
84
84
  }) {
85
- return /* @__PURE__ */ jsx(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props });
85
+ return /* @__PURE__ */ jsx2(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props });
86
86
  }
87
87
  function AlertDialogOverlay({
88
88
  className,
89
89
  ...props
90
90
  }) {
91
- return /* @__PURE__ */ jsx(
91
+ return /* @__PURE__ */ jsx2(
92
92
  AlertDialogPrimitive.Overlay,
93
93
  {
94
94
  "data-slot": "alert-dialog-overlay",
@@ -105,8 +105,8 @@ function AlertDialogContent({
105
105
  ...props
106
106
  }) {
107
107
  return /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
108
- /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
109
- /* @__PURE__ */ jsx(
108
+ /* @__PURE__ */ jsx2(AlertDialogOverlay, {}),
109
+ /* @__PURE__ */ jsx2(
110
110
  AlertDialogPrimitive.Content,
111
111
  {
112
112
  "data-slot": "alert-dialog-content",
@@ -123,7 +123,7 @@ function AlertDialogHeader({
123
123
  className,
124
124
  ...props
125
125
  }) {
126
- return /* @__PURE__ */ jsx(
126
+ return /* @__PURE__ */ jsx2(
127
127
  "div",
128
128
  {
129
129
  "data-slot": "alert-dialog-header",
@@ -136,7 +136,7 @@ function AlertDialogFooter({
136
136
  className,
137
137
  ...props
138
138
  }) {
139
- return /* @__PURE__ */ jsx(
139
+ return /* @__PURE__ */ jsx2(
140
140
  "div",
141
141
  {
142
142
  "data-slot": "alert-dialog-footer",
@@ -152,7 +152,7 @@ function AlertDialogTitle({
152
152
  className,
153
153
  ...props
154
154
  }) {
155
- return /* @__PURE__ */ jsx(
155
+ return /* @__PURE__ */ jsx2(
156
156
  AlertDialogPrimitive.Title,
157
157
  {
158
158
  "data-slot": "alert-dialog-title",
@@ -165,7 +165,7 @@ function AlertDialogDescription({
165
165
  className,
166
166
  ...props
167
167
  }) {
168
- return /* @__PURE__ */ jsx(
168
+ return /* @__PURE__ */ jsx2(
169
169
  AlertDialogPrimitive.Description,
170
170
  {
171
171
  "data-slot": "alert-dialog-description",
@@ -178,7 +178,7 @@ function AlertDialogAction({
178
178
  className,
179
179
  ...props
180
180
  }) {
181
- return /* @__PURE__ */ jsx(
181
+ return /* @__PURE__ */ jsx2(
182
182
  AlertDialogPrimitive.Action,
183
183
  {
184
184
  className: cn(buttonVariants(), className),
@@ -190,7 +190,7 @@ function AlertDialogCancel({
190
190
  className,
191
191
  ...props
192
192
  }) {
193
- return /* @__PURE__ */ jsx(
193
+ return /* @__PURE__ */ jsx2(
194
194
  AlertDialogPrimitive.Cancel,
195
195
  {
196
196
  className: cn(buttonVariants({ variant: "outline" }), className),
@@ -202,16 +202,16 @@ function AlertDialogCancel({
202
202
  // src/components/dropdown-menu.tsx
203
203
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
204
204
  import { IconCheck, IconChevronRight, IconCircle } from "@tabler/icons-react";
205
- import { jsx as jsx2, jsxs as jsxs3 } from "react/jsx-runtime";
205
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
206
206
  function DropdownMenu({
207
207
  ...props
208
208
  }) {
209
- return /* @__PURE__ */ jsx2(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
209
+ return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
210
210
  }
211
211
  function DropdownMenuTrigger({
212
212
  ...props
213
213
  }) {
214
- return /* @__PURE__ */ jsx2(
214
+ return /* @__PURE__ */ jsx3(
215
215
  DropdownMenuPrimitive.Trigger,
216
216
  {
217
217
  "data-slot": "dropdown-menu-trigger",
@@ -224,7 +224,7 @@ function DropdownMenuContent({
224
224
  sideOffset = 4,
225
225
  ...props
226
226
  }) {
227
- return /* @__PURE__ */ jsx2(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx2(
227
+ return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx3(
228
228
  DropdownMenuPrimitive.Content,
229
229
  {
230
230
  "data-slot": "dropdown-menu-content",
@@ -243,7 +243,7 @@ function DropdownMenuItem({
243
243
  variant = "default",
244
244
  ...props
245
245
  }) {
246
- return /* @__PURE__ */ jsx2(
246
+ return /* @__PURE__ */ jsx3(
247
247
  DropdownMenuPrimitive.Item,
248
248
  {
249
249
  "data-slot": "dropdown-menu-item",
@@ -261,7 +261,7 @@ function DropdownMenuSeparator({
261
261
  className,
262
262
  ...props
263
263
  }) {
264
- return /* @__PURE__ */ jsx2(
264
+ return /* @__PURE__ */ jsx3(
265
265
  DropdownMenuPrimitive.Separator,
266
266
  {
267
267
  "data-slot": "dropdown-menu-separator",
@@ -272,7 +272,7 @@ function DropdownMenuSeparator({
272
272
  }
273
273
 
274
274
  // src/components/entity/entity-bulk-actions.tsx
275
- import { Fragment, jsx as jsx3, jsxs as jsxs4 } from "react/jsx-runtime";
275
+ import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
276
276
  function EntityBulkActions({
277
277
  selectedCount,
278
278
  actions,
@@ -286,22 +286,22 @@ function EntityBulkActions({
286
286
  if (onExport) {
287
287
  defaultActions.push({
288
288
  label: "Export",
289
- icon: /* @__PURE__ */ jsx3(IconDownload, { className: "mr-2 h-4 w-4" }),
289
+ icon: /* @__PURE__ */ jsx4(IconDownload, { className: "mr-2 h-4 w-4" }),
290
290
  onClick: onExport
291
291
  });
292
292
  }
293
293
  if (onDelete) {
294
294
  defaultActions.push({
295
295
  label: "Delete",
296
- icon: /* @__PURE__ */ jsx3(IconTrash, { className: "mr-2 h-4 w-4" }),
296
+ icon: /* @__PURE__ */ jsx4(IconTrash, { className: "mr-2 h-4 w-4" }),
297
297
  onClick: () => setShowDeleteConfirm(true),
298
298
  variant: "destructive"
299
299
  });
300
300
  }
301
301
  const allActions = actions ? [...actions, ...defaultActions] : defaultActions;
302
- return /* @__PURE__ */ jsxs4(Fragment, { children: [
302
+ return /* @__PURE__ */ jsxs4(Fragment2, { children: [
303
303
  /* @__PURE__ */ jsxs4(DropdownMenu, { children: [
304
- /* @__PURE__ */ jsx3(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs4(
304
+ /* @__PURE__ */ jsx4(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs4(
305
305
  Button,
306
306
  {
307
307
  variant: "outline",
@@ -310,12 +310,12 @@ function EntityBulkActions({
310
310
  className: "min-w-[140px]",
311
311
  children: [
312
312
  hasSelection ? `${selectedCount} selected` : "Bulk Actions",
313
- /* @__PURE__ */ jsx3(IconChevronDown, { className: "ml-2 h-4 w-4" })
313
+ /* @__PURE__ */ jsx4(IconChevronDown, { className: "ml-2 h-4 w-4" })
314
314
  ]
315
315
  }
316
316
  ) }),
317
- /* @__PURE__ */ jsx3(DropdownMenuContent, { align: "end", children: allActions.map((action, index) => /* @__PURE__ */ jsxs4("div", { children: [
318
- action.variant === "destructive" && index > 0 && /* @__PURE__ */ jsx3(DropdownMenuSeparator, {}),
317
+ /* @__PURE__ */ jsx4(DropdownMenuContent, { align: "end", children: allActions.map((action, index) => /* @__PURE__ */ jsxs4("div", { children: [
318
+ action.variant === "destructive" && index > 0 && /* @__PURE__ */ jsx4(DropdownMenuSeparator, {}),
319
319
  /* @__PURE__ */ jsxs4(
320
320
  DropdownMenuItem,
321
321
  {
@@ -329,7 +329,7 @@ function EntityBulkActions({
329
329
  )
330
330
  ] }, action.label)) })
331
331
  ] }),
332
- /* @__PURE__ */ jsx3(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs4(AlertDialogContent, { children: [
332
+ /* @__PURE__ */ jsx4(AlertDialog, { open: showDeleteConfirm, onOpenChange: setShowDeleteConfirm, children: /* @__PURE__ */ jsxs4(AlertDialogContent, { children: [
333
333
  /* @__PURE__ */ jsxs4(AlertDialogHeader, { children: [
334
334
  /* @__PURE__ */ jsxs4(AlertDialogTitle, { children: [
335
335
  "Delete ",
@@ -345,8 +345,8 @@ function EntityBulkActions({
345
345
  ] })
346
346
  ] }),
347
347
  /* @__PURE__ */ jsxs4(AlertDialogFooter, { children: [
348
- /* @__PURE__ */ jsx3(AlertDialogCancel, { children: "Cancel" }),
349
- /* @__PURE__ */ jsx3(
348
+ /* @__PURE__ */ jsx4(AlertDialogCancel, { children: "Cancel" }),
349
+ /* @__PURE__ */ jsx4(
350
350
  AlertDialogAction,
351
351
  {
352
352
  onClick: () => {
@@ -368,9 +368,9 @@ import { motion } from "motion/react";
368
368
  import { useLayoutEffect, useMemo, useRef, useState as useState2 } from "react";
369
369
 
370
370
  // src/components/card.tsx
371
- import { jsx as jsx4 } from "react/jsx-runtime";
371
+ import { jsx as jsx5 } from "react/jsx-runtime";
372
372
  function Card({ className, ...props }) {
373
- return /* @__PURE__ */ jsx4(
373
+ return /* @__PURE__ */ jsx5(
374
374
  "div",
375
375
  {
376
376
  "data-slot": "card",
@@ -386,16 +386,16 @@ function Card({ className, ...props }) {
386
386
  // src/components/select.tsx
387
387
  import * as SelectPrimitive from "@radix-ui/react-select";
388
388
  import { IconCheck as IconCheck2, IconChevronDown as IconChevronDown2, IconChevronUp } from "@tabler/icons-react";
389
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
389
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
390
390
  function Select({
391
391
  ...props
392
392
  }) {
393
- return /* @__PURE__ */ jsx5(SelectPrimitive.Root, { "data-slot": "select", ...props });
393
+ return /* @__PURE__ */ jsx6(SelectPrimitive.Root, { "data-slot": "select", ...props });
394
394
  }
395
395
  function SelectValue({
396
396
  ...props
397
397
  }) {
398
- return /* @__PURE__ */ jsx5(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
398
+ return /* @__PURE__ */ jsx6(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
399
399
  }
400
400
  function SelectTrigger({
401
401
  className,
@@ -415,7 +415,7 @@ function SelectTrigger({
415
415
  ...props,
416
416
  children: [
417
417
  children,
418
- /* @__PURE__ */ jsx5(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx5(IconChevronDown2, { className: "size-4 opacity-50" }) })
418
+ /* @__PURE__ */ jsx6(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx6(IconChevronDown2, { className: "size-4 opacity-50" }) })
419
419
  ]
420
420
  }
421
421
  );
@@ -427,7 +427,7 @@ function SelectContent({
427
427
  align = "center",
428
428
  ...props
429
429
  }) {
430
- return /* @__PURE__ */ jsx5(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
430
+ return /* @__PURE__ */ jsx6(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
431
431
  SelectPrimitive.Content,
432
432
  {
433
433
  "data-slot": "select-content",
@@ -440,8 +440,8 @@ function SelectContent({
440
440
  align,
441
441
  ...props,
442
442
  children: [
443
- /* @__PURE__ */ jsx5(SelectScrollUpButton, {}),
444
- /* @__PURE__ */ jsx5(
443
+ /* @__PURE__ */ jsx6(SelectScrollUpButton, {}),
444
+ /* @__PURE__ */ jsx6(
445
445
  SelectPrimitive.Viewport,
446
446
  {
447
447
  className: cn(
@@ -451,7 +451,7 @@ function SelectContent({
451
451
  children
452
452
  }
453
453
  ),
454
- /* @__PURE__ */ jsx5(SelectScrollDownButton, {})
454
+ /* @__PURE__ */ jsx6(SelectScrollDownButton, {})
455
455
  ]
456
456
  }
457
457
  ) });
@@ -471,8 +471,8 @@ function SelectItem({
471
471
  ),
472
472
  ...props,
473
473
  children: [
474
- /* @__PURE__ */ jsx5("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx5(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx5(IconCheck2, { className: "size-4" }) }) }),
475
- /* @__PURE__ */ jsx5(SelectPrimitive.ItemText, { children })
474
+ /* @__PURE__ */ jsx6("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx6(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx6(IconCheck2, { className: "size-4" }) }) }),
475
+ /* @__PURE__ */ jsx6(SelectPrimitive.ItemText, { children })
476
476
  ]
477
477
  }
478
478
  );
@@ -481,7 +481,7 @@ function SelectScrollUpButton({
481
481
  className,
482
482
  ...props
483
483
  }) {
484
- return /* @__PURE__ */ jsx5(
484
+ return /* @__PURE__ */ jsx6(
485
485
  SelectPrimitive.ScrollUpButton,
486
486
  {
487
487
  "data-slot": "select-scroll-up-button",
@@ -490,7 +490,7 @@ function SelectScrollUpButton({
490
490
  className
491
491
  ),
492
492
  ...props,
493
- children: /* @__PURE__ */ jsx5(IconChevronUp, { className: "size-4" })
493
+ children: /* @__PURE__ */ jsx6(IconChevronUp, { className: "size-4" })
494
494
  }
495
495
  );
496
496
  }
@@ -498,7 +498,7 @@ function SelectScrollDownButton({
498
498
  className,
499
499
  ...props
500
500
  }) {
501
- return /* @__PURE__ */ jsx5(
501
+ return /* @__PURE__ */ jsx6(
502
502
  SelectPrimitive.ScrollDownButton,
503
503
  {
504
504
  "data-slot": "select-scroll-down-button",
@@ -507,13 +507,13 @@ function SelectScrollDownButton({
507
507
  className
508
508
  ),
509
509
  ...props,
510
- children: /* @__PURE__ */ jsx5(IconChevronDown2, { className: "size-4" })
510
+ children: /* @__PURE__ */ jsx6(IconChevronDown2, { className: "size-4" })
511
511
  }
512
512
  );
513
513
  }
514
514
 
515
515
  // src/components/entity/entity-detail-header.tsx
516
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
516
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
517
517
  function EntityDetailHeader({
518
518
  title,
519
519
  icon,
@@ -649,7 +649,7 @@ function EntityDetailHeader({
649
649
  }
650
650
  };
651
651
  if (tab.href && LinkComponent) {
652
- return /* @__PURE__ */ jsx6(
652
+ return /* @__PURE__ */ jsx7(
653
653
  LinkComponent,
654
654
  {
655
655
  href: tab.href,
@@ -660,7 +660,7 @@ function EntityDetailHeader({
660
660
  tab.value
661
661
  );
662
662
  }
663
- return /* @__PURE__ */ jsx6(
663
+ return /* @__PURE__ */ jsx7(
664
664
  "button",
665
665
  {
666
666
  type: "button",
@@ -679,9 +679,9 @@ function EntityDetailHeader({
679
679
  isActive && "bg-accent font-medium"
680
680
  );
681
681
  if (tab.href && LinkComponent) {
682
- return /* @__PURE__ */ jsx6(DropdownMenuItem, { asChild: true, className: itemClassName, children: /* @__PURE__ */ jsx6(LinkComponent, { href: tab.href, children: tab.name }) }, tab.value);
682
+ return /* @__PURE__ */ jsx7(DropdownMenuItem, { asChild: true, className: itemClassName, children: /* @__PURE__ */ jsx7(LinkComponent, { href: tab.href, children: tab.name }) }, tab.value);
683
683
  }
684
- return /* @__PURE__ */ jsx6(
684
+ return /* @__PURE__ */ jsx7(
685
685
  DropdownMenuItem,
686
686
  {
687
687
  onClick: () => handleTabChange(tab.value),
@@ -697,17 +697,17 @@ function EntityDetailHeader({
697
697
  /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2", children: [
698
698
  backButton,
699
699
  icon,
700
- /* @__PURE__ */ jsx6("span", { className: "text-lg font-semibold", children: title })
700
+ /* @__PURE__ */ jsx7("span", { className: "text-lg font-semibold", children: title })
701
701
  ] }),
702
- actions && /* @__PURE__ */ jsx6("div", { className: "flex items-center gap-2", children: actions })
702
+ actions && /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-2", children: actions })
703
703
  ] }),
704
704
  /* @__PURE__ */ jsxs6("div", { ref: containerRef, className: "w-full px-4", children: [
705
- /* @__PURE__ */ jsx6("div", { className: "mb-3 w-full sm:hidden", children: /* @__PURE__ */ jsxs6(Select, { value: activeTab, onValueChange: handleTabChange, children: [
705
+ /* @__PURE__ */ jsx7("div", { className: "mb-3 w-full sm:hidden", children: /* @__PURE__ */ jsxs6(Select, { value: activeTab, onValueChange: handleTabChange, children: [
706
706
  /* @__PURE__ */ jsxs6(SelectTrigger, { className: "h-9 w-full gap-2 [&>svg:first-child]:shrink-0", children: [
707
- /* @__PURE__ */ jsx6(IconMenu2, { className: "size-4 text-muted-foreground" }),
708
- /* @__PURE__ */ jsx6(SelectValue, {})
707
+ /* @__PURE__ */ jsx7(IconMenu2, { className: "size-4 text-muted-foreground" }),
708
+ /* @__PURE__ */ jsx7(SelectValue, {})
709
709
  ] }),
710
- /* @__PURE__ */ jsx6(SelectContent, { children: tabs.map((tab) => /* @__PURE__ */ jsx6(SelectItem, { value: tab.value, children: tab.name }, tab.value)) })
710
+ /* @__PURE__ */ jsx7(SelectContent, { children: tabs.map((tab) => /* @__PURE__ */ jsx7(SelectItem, { value: tab.value, children: tab.name }, tab.value)) })
711
711
  ] }) }),
712
712
  /* @__PURE__ */ jsxs6(
713
713
  "div",
@@ -733,13 +733,13 @@ function EntityDetailHeader({
733
733
  ),
734
734
  children: [
735
735
  "More",
736
- /* @__PURE__ */ jsx6(IconChevronDown3, { className: "h-4 w-4" })
736
+ /* @__PURE__ */ jsx7(IconChevronDown3, { className: "h-4 w-4" })
737
737
  ]
738
738
  }
739
739
  ),
740
- /* @__PURE__ */ jsx6(DropdownMenuContent, { align: "start", className: "min-w-40", children: overflowTabs.map(renderDropdownItem) })
740
+ /* @__PURE__ */ jsx7(DropdownMenuContent, { align: "start", className: "min-w-40", children: overflowTabs.map(renderDropdownItem) })
741
741
  ] }),
742
- /* @__PURE__ */ jsx6(
742
+ /* @__PURE__ */ jsx7(
743
743
  motion.div,
744
744
  {
745
745
  className: "absolute bottom-0 left-0 z-20 h-0.5 bg-primary",
@@ -759,7 +759,7 @@ function EntityDetailHeader({
759
759
  )
760
760
  ] })
761
761
  ] }),
762
- activeTabData?.content && /* @__PURE__ */ jsx6("div", { className: "flex-1", children: activeTabData.content })
762
+ activeTabData?.content && /* @__PURE__ */ jsx7("div", { className: "flex-1", children: activeTabData.content })
763
763
  ] });
764
764
  }
765
765
 
@@ -769,20 +769,20 @@ import { useState as useState3 } from "react";
769
769
  // src/components/sheet.tsx
770
770
  import * as SheetPrimitive from "@radix-ui/react-dialog";
771
771
  import { IconX } from "@tabler/icons-react";
772
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
772
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
773
773
  function Sheet({ ...props }) {
774
- return /* @__PURE__ */ jsx7(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
774
+ return /* @__PURE__ */ jsx8(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
775
775
  }
776
776
  function SheetPortal({
777
777
  ...props
778
778
  }) {
779
- return /* @__PURE__ */ jsx7(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
779
+ return /* @__PURE__ */ jsx8(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
780
780
  }
781
781
  function SheetOverlay({
782
782
  className,
783
783
  ...props
784
784
  }) {
785
- return /* @__PURE__ */ jsx7(
785
+ return /* @__PURE__ */ jsx8(
786
786
  SheetPrimitive.Overlay,
787
787
  {
788
788
  "data-slot": "sheet-overlay",
@@ -801,7 +801,7 @@ function SheetContent({
801
801
  ...props
802
802
  }) {
803
803
  return /* @__PURE__ */ jsxs7(SheetPortal, { children: [
804
- /* @__PURE__ */ jsx7(SheetOverlay, {}),
804
+ /* @__PURE__ */ jsx8(SheetOverlay, {}),
805
805
  /* @__PURE__ */ jsxs7(
806
806
  SheetPrimitive.Content,
807
807
  {
@@ -818,8 +818,8 @@ function SheetContent({
818
818
  children: [
819
819
  children,
820
820
  /* @__PURE__ */ jsxs7(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
821
- /* @__PURE__ */ jsx7(IconX, { className: "size-4" }),
822
- /* @__PURE__ */ jsx7("span", { className: "sr-only", children: "Close" })
821
+ /* @__PURE__ */ jsx8(IconX, { className: "size-4" }),
822
+ /* @__PURE__ */ jsx8("span", { className: "sr-only", children: "Close" })
823
823
  ] })
824
824
  ]
825
825
  }
@@ -827,7 +827,7 @@ function SheetContent({
827
827
  ] });
828
828
  }
829
829
  function SheetHeader({ className, ...props }) {
830
- return /* @__PURE__ */ jsx7(
830
+ return /* @__PURE__ */ jsx8(
831
831
  "div",
832
832
  {
833
833
  "data-slot": "sheet-header",
@@ -840,7 +840,7 @@ function SheetTitle({
840
840
  className,
841
841
  ...props
842
842
  }) {
843
- return /* @__PURE__ */ jsx7(
843
+ return /* @__PURE__ */ jsx8(
844
844
  SheetPrimitive.Title,
845
845
  {
846
846
  "data-slot": "sheet-title",
@@ -851,7 +851,7 @@ function SheetTitle({
851
851
  }
852
852
 
853
853
  // src/components/entity/entity-drawer.tsx
854
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
854
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
855
855
  var sizeClasses = {
856
856
  sm: "w-full min-w-0 sm:!max-w-[24rem]",
857
857
  md: "w-full min-w-0 sm:!max-w-[28rem]",
@@ -879,8 +879,8 @@ function EntityDrawer({
879
879
  setShowConfirm(false);
880
880
  onClose();
881
881
  };
882
- return /* @__PURE__ */ jsxs8(Fragment2, { children: [
883
- /* @__PURE__ */ jsx8(Sheet, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxs8(
882
+ return /* @__PURE__ */ jsxs8(Fragment3, { children: [
883
+ /* @__PURE__ */ jsx9(Sheet, { open, onOpenChange: (isOpen) => !isOpen && handleClose(), children: /* @__PURE__ */ jsxs8(
884
884
  SheetContent,
885
885
  {
886
886
  className: `${sizeClasses[size]} flex min-h-0 flex-col overflow-hidden p-0`,
@@ -897,20 +897,20 @@ function EntityDrawer({
897
897
  }
898
898
  },
899
899
  children: [
900
- /* @__PURE__ */ jsx8(SheetHeader, { className: "border-border bg-background border-b px-6 py-4", children: /* @__PURE__ */ jsx8(SheetTitle, { children: title }) }),
901
- /* @__PURE__ */ jsx8("div", { className: "bg-background flex-1 overflow-y-auto px-6 py-4", children: form }),
902
- /* @__PURE__ */ jsx8("div", { className: "border-border bg-background border-t px-6 py-4", children: actions })
900
+ /* @__PURE__ */ jsx9(SheetHeader, { className: "border-border bg-background border-b px-6 py-4", children: /* @__PURE__ */ jsx9(SheetTitle, { children: title }) }),
901
+ /* @__PURE__ */ jsx9("div", { className: "bg-background flex-1 overflow-y-auto px-6 py-4", children: form }),
902
+ /* @__PURE__ */ jsx9("div", { className: "border-border bg-background border-t px-6 py-4", children: actions })
903
903
  ]
904
904
  }
905
905
  ) }),
906
- /* @__PURE__ */ jsx8(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */ jsxs8(AlertDialogContent, { children: [
906
+ /* @__PURE__ */ jsx9(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */ jsxs8(AlertDialogContent, { children: [
907
907
  /* @__PURE__ */ jsxs8(AlertDialogHeader, { children: [
908
- /* @__PURE__ */ jsx8(AlertDialogTitle, { children: "Discard changes?" }),
909
- /* @__PURE__ */ jsx8(AlertDialogDescription, { children: "You have unsaved changes. Are you sure you want to discard them?" })
908
+ /* @__PURE__ */ jsx9(AlertDialogTitle, { children: "Discard changes?" }),
909
+ /* @__PURE__ */ jsx9(AlertDialogDescription, { children: "You have unsaved changes. Are you sure you want to discard them?" })
910
910
  ] }),
911
911
  /* @__PURE__ */ jsxs8(AlertDialogFooter, { children: [
912
- /* @__PURE__ */ jsx8(AlertDialogCancel, { children: "Cancel" }),
913
- /* @__PURE__ */ jsx8(
912
+ /* @__PURE__ */ jsx9(AlertDialogCancel, { children: "Cancel" }),
913
+ /* @__PURE__ */ jsx9(
914
914
  AlertDialogAction,
915
915
  {
916
916
  onClick: handleConfirmDiscard,
@@ -926,7 +926,7 @@ function EntityDrawer({
926
926
  // src/components/entity/entity-drawer-trigger.tsx
927
927
  import { IconChevronRight as IconChevronRight2, IconPencil, IconPlus } from "@tabler/icons-react";
928
928
  import { useState as useState4 } from "react";
929
- import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
929
+ import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
930
930
  function EntityDrawerTrigger({
931
931
  mode,
932
932
  entity,
@@ -956,8 +956,8 @@ function EntityDrawerTrigger({
956
956
  }
957
957
  };
958
958
  const buttonLabel = label || (mode === "new" ? `New ${entity}` : `Edit ${entity}`);
959
- return /* @__PURE__ */ jsxs9(Fragment3, { children: [
960
- mode === "edit" && variant === "icon" && /* @__PURE__ */ jsx9(
959
+ return /* @__PURE__ */ jsxs9(Fragment4, { children: [
960
+ mode === "edit" && variant === "icon" && /* @__PURE__ */ jsx10(
961
961
  Button,
962
962
  {
963
963
  variant: "ghost",
@@ -965,10 +965,10 @@ function EntityDrawerTrigger({
965
965
  className: `size-8 opacity-0 group-hover:opacity-100 transition-opacity ${className}`,
966
966
  onClick: handleOpen,
967
967
  disabled,
968
- children: /* @__PURE__ */ jsx9(IconChevronRight2, { className: "size-4" })
968
+ children: /* @__PURE__ */ jsx10(IconChevronRight2, { className: "size-4" })
969
969
  }
970
970
  ),
971
- mode === "edit" && variant !== "icon" && /* @__PURE__ */ jsx9(
971
+ mode === "edit" && variant !== "icon" && /* @__PURE__ */ jsx10(
972
972
  Button,
973
973
  {
974
974
  variant: variant === "outline" ? "outline" : "default",
@@ -976,11 +976,11 @@ function EntityDrawerTrigger({
976
976
  onClick: handleOpen,
977
977
  disabled,
978
978
  className,
979
- leftIcon: /* @__PURE__ */ jsx9(IconPencil, { className: "size-4" }),
979
+ leftIcon: /* @__PURE__ */ jsx10(IconPencil, { className: "size-4" }),
980
980
  children: buttonLabel
981
981
  }
982
982
  ),
983
- mode === "new" && /* @__PURE__ */ jsx9(
983
+ mode === "new" && /* @__PURE__ */ jsx10(
984
984
  Button,
985
985
  {
986
986
  variant: variant === "outline" ? "outline" : "default",
@@ -991,8 +991,8 @@ function EntityDrawerTrigger({
991
991
  "max-sm:h-8 max-sm:w-8 max-sm:shrink-0 max-sm:justify-center max-sm:p-0",
992
992
  className
993
993
  ),
994
- leftIcon: /* @__PURE__ */ jsx9(IconPlus, { className: "size-4" }),
995
- children: /* @__PURE__ */ jsx9("span", { className: "hidden sm:inline", children: buttonLabel })
994
+ leftIcon: /* @__PURE__ */ jsx10(IconPlus, { className: "size-4" }),
995
+ children: /* @__PURE__ */ jsx10("span", { className: "hidden sm:inline", children: buttonLabel })
996
996
  }
997
997
  ),
998
998
  open && children(open, handleClose)
@@ -1004,9 +1004,9 @@ import { IconPackage } from "@tabler/icons-react";
1004
1004
 
1005
1005
  // src/components/empty.tsx
1006
1006
  import { cva as cva2 } from "class-variance-authority";
1007
- import { jsx as jsx10 } from "react/jsx-runtime";
1007
+ import { jsx as jsx11 } from "react/jsx-runtime";
1008
1008
  function Empty({ className, ...props }) {
1009
- return /* @__PURE__ */ jsx10(
1009
+ return /* @__PURE__ */ jsx11(
1010
1010
  "div",
1011
1011
  {
1012
1012
  "data-slot": "empty",
@@ -1019,7 +1019,7 @@ function Empty({ className, ...props }) {
1019
1019
  );
1020
1020
  }
1021
1021
  function EmptyHeader({ className, ...props }) {
1022
- return /* @__PURE__ */ jsx10(
1022
+ return /* @__PURE__ */ jsx11(
1023
1023
  "div",
1024
1024
  {
1025
1025
  "data-slot": "empty-header",
@@ -1050,7 +1050,7 @@ function EmptyMedia({
1050
1050
  variant = "default",
1051
1051
  ...props
1052
1052
  }) {
1053
- return /* @__PURE__ */ jsx10(
1053
+ return /* @__PURE__ */ jsx11(
1054
1054
  "div",
1055
1055
  {
1056
1056
  "data-slot": "empty-icon",
@@ -1061,7 +1061,7 @@ function EmptyMedia({
1061
1061
  );
1062
1062
  }
1063
1063
  function EmptyTitle({ className, ...props }) {
1064
- return /* @__PURE__ */ jsx10(
1064
+ return /* @__PURE__ */ jsx11(
1065
1065
  "div",
1066
1066
  {
1067
1067
  "data-slot": "empty-title",
@@ -1071,7 +1071,7 @@ function EmptyTitle({ className, ...props }) {
1071
1071
  );
1072
1072
  }
1073
1073
  function EmptyDescription({ className, ...props }) {
1074
- return /* @__PURE__ */ jsx10(
1074
+ return /* @__PURE__ */ jsx11(
1075
1075
  "div",
1076
1076
  {
1077
1077
  "data-slot": "empty-description",
@@ -1084,7 +1084,7 @@ function EmptyDescription({ className, ...props }) {
1084
1084
  );
1085
1085
  }
1086
1086
  function EmptyContent({ className, ...props }) {
1087
- return /* @__PURE__ */ jsx10(
1087
+ return /* @__PURE__ */ jsx11(
1088
1088
  "div",
1089
1089
  {
1090
1090
  "data-slot": "empty-content",
@@ -1098,7 +1098,7 @@ function EmptyContent({ className, ...props }) {
1098
1098
  }
1099
1099
 
1100
1100
  // src/components/entity/entity-empty-state.tsx
1101
- import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1101
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
1102
1102
  function EntityEmptyState({
1103
1103
  icon: Icon2 = IconPackage,
1104
1104
  title,
@@ -1114,18 +1114,18 @@ function EntityEmptyState({
1114
1114
  const defaultActionLabel = `Create ${entityName}`;
1115
1115
  return /* @__PURE__ */ jsxs10(Empty, { className: cn("border py-12", className), children: [
1116
1116
  /* @__PURE__ */ jsxs10(EmptyHeader, { children: [
1117
- /* @__PURE__ */ jsx11(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx11(Icon2, { className: "size-5" }) }),
1118
- /* @__PURE__ */ jsx11(EmptyTitle, { children: title ?? defaultTitle }),
1119
- /* @__PURE__ */ jsx11(EmptyDescription, { children: description ?? defaultDescription })
1117
+ /* @__PURE__ */ jsx12(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx12(Icon2, { className: "size-5" }) }),
1118
+ /* @__PURE__ */ jsx12(EmptyTitle, { children: title ?? defaultTitle }),
1119
+ /* @__PURE__ */ jsx12(EmptyDescription, { children: description ?? defaultDescription })
1120
1120
  ] }),
1121
- /* @__PURE__ */ jsx11(EmptyContent, { children: children ?? (onAction && /* @__PURE__ */ jsx11(Button, { onClick: onAction, children: actionLabel ?? defaultActionLabel })) })
1121
+ /* @__PURE__ */ jsx12(EmptyContent, { children: children ?? (onAction && /* @__PURE__ */ jsx12(Button, { onClick: onAction, children: actionLabel ?? defaultActionLabel })) })
1122
1122
  ] });
1123
1123
  }
1124
1124
 
1125
1125
  // src/components/entity/entity-filter.tsx
1126
1126
  import { IconFilter } from "@tabler/icons-react";
1127
1127
  import { parseAsInteger, parseAsString, useQueryState } from "nuqs";
1128
- import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
1128
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
1129
1129
  function EntityFilter({
1130
1130
  options,
1131
1131
  placeholder = "Filter",
@@ -1145,15 +1145,15 @@ function EntityFilter({
1145
1145
  const validOptions = options.filter((opt) => opt.value !== "");
1146
1146
  const displayValue = value || (options.some((opt) => opt.value === "") ? "__all__" : void 0);
1147
1147
  return /* @__PURE__ */ jsxs11("div", { className: cn("flex w-full items-center gap-2", className), children: [
1148
- label && /* @__PURE__ */ jsx12("span", { className: "shrink-0 text-sm text-muted-foreground", children: label }),
1149
- /* @__PURE__ */ jsx12("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs11(Select, { value: displayValue, onValueChange: handleChange, children: [
1148
+ label && /* @__PURE__ */ jsx13("span", { className: "shrink-0 text-sm text-muted-foreground", children: label }),
1149
+ /* @__PURE__ */ jsx13("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs11(Select, { value: displayValue, onValueChange: handleChange, children: [
1150
1150
  /* @__PURE__ */ jsxs11(SelectTrigger, { className: "h-9 w-full min-w-[150px]", children: [
1151
- /* @__PURE__ */ jsx12(IconFilter, { className: "size-4" }),
1152
- /* @__PURE__ */ jsx12(SelectValue, { placeholder })
1151
+ /* @__PURE__ */ jsx13(IconFilter, { className: "size-4" }),
1152
+ /* @__PURE__ */ jsx13(SelectValue, { placeholder })
1153
1153
  ] }),
1154
1154
  /* @__PURE__ */ jsxs11(SelectContent, { children: [
1155
- options.some((opt) => opt.value === "") && /* @__PURE__ */ jsx12(SelectItem, { value: "__all__", children: options.find((opt) => opt.value === "")?.label || "All" }, "__all__"),
1156
- validOptions.map((option) => /* @__PURE__ */ jsx12(SelectItem, { value: option.value, children: option.label }, option.value))
1155
+ options.some((opt) => opt.value === "") && /* @__PURE__ */ jsx13(SelectItem, { value: "__all__", children: options.find((opt) => opt.value === "")?.label || "All" }, "__all__"),
1156
+ validOptions.map((option) => /* @__PURE__ */ jsx13(SelectItem, { value: option.value, children: option.label }, option.value))
1157
1157
  ] })
1158
1158
  ] }) })
1159
1159
  ] });
@@ -1168,12 +1168,12 @@ import {
1168
1168
 
1169
1169
  // src/components/spinner.tsx
1170
1170
  import { IconLoader2 } from "@tabler/icons-react";
1171
- import { jsx as jsx13 } from "react/jsx-runtime";
1171
+ import { jsx as jsx14 } from "react/jsx-runtime";
1172
1172
  function Spinner({
1173
1173
  className,
1174
1174
  ...props
1175
1175
  }) {
1176
- return /* @__PURE__ */ jsx13(
1176
+ return /* @__PURE__ */ jsx14(
1177
1177
  IconLoader2,
1178
1178
  {
1179
1179
  role: "status",
@@ -1185,7 +1185,7 @@ function Spinner({
1185
1185
  }
1186
1186
 
1187
1187
  // src/components/entity/entity-form-actions.tsx
1188
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
1188
+ import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
1189
1189
  function EntityFormActions({
1190
1190
  mode,
1191
1191
  onSubmit,
@@ -1202,13 +1202,13 @@ function EntityFormActions({
1202
1202
  const defaultSubmitLabel = mode === "new" ? "Create" : "Update";
1203
1203
  const label = submitLabel || defaultSubmitLabel;
1204
1204
  return /* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-3", children: [
1205
- onSubmit && /* @__PURE__ */ jsx14(
1205
+ onSubmit && /* @__PURE__ */ jsx15(
1206
1206
  Button,
1207
1207
  {
1208
1208
  onClick: onSubmit,
1209
1209
  disabled: disabled || isSubmitting,
1210
1210
  className: "cursor-pointer",
1211
- leftIcon: isSubmitting ? /* @__PURE__ */ jsx14(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsx14(IconDeviceFloppy, { className: "size-4" }),
1211
+ leftIcon: isSubmitting ? /* @__PURE__ */ jsx15(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsx15(IconDeviceFloppy, { className: "size-4" }),
1212
1212
  children: label
1213
1213
  }
1214
1214
  ),
@@ -1220,25 +1220,25 @@ function EntityFormActions({
1220
1220
  disabled,
1221
1221
  className: "cursor-pointer",
1222
1222
  children: [
1223
- /* @__PURE__ */ jsx14(IconRotateClockwise, { className: " h-4 w-4" }),
1223
+ /* @__PURE__ */ jsx15(IconRotateClockwise, { className: " h-4 w-4" }),
1224
1224
  "Reset"
1225
1225
  ]
1226
1226
  }
1227
1227
  ),
1228
1228
  mode === "edit" && onDelete && /* @__PURE__ */ jsxs12(AlertDialog, { children: [
1229
- /* @__PURE__ */ jsx14(AlertDialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx14(
1229
+ /* @__PURE__ */ jsx15(AlertDialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx15(
1230
1230
  Button,
1231
1231
  {
1232
1232
  variant: "destructive",
1233
1233
  disabled: disabled || isDeleting,
1234
1234
  className: "cursor-pointer",
1235
- leftIcon: isDeleting ? /* @__PURE__ */ jsx14(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsx14(IconTrash2, { className: "size-4" }),
1235
+ leftIcon: isDeleting ? /* @__PURE__ */ jsx15(Spinner, { className: "size-4" }) : /* @__PURE__ */ jsx15(IconTrash2, { className: "size-4" }),
1236
1236
  children: deleteLabel
1237
1237
  }
1238
1238
  ) }),
1239
1239
  /* @__PURE__ */ jsxs12(AlertDialogContent, { children: [
1240
1240
  /* @__PURE__ */ jsxs12(AlertDialogHeader, { children: [
1241
- /* @__PURE__ */ jsx14(AlertDialogTitle, { children: "Are you sure?" }),
1241
+ /* @__PURE__ */ jsx15(AlertDialogTitle, { children: "Are you sure?" }),
1242
1242
  /* @__PURE__ */ jsxs12(AlertDialogDescription, { children: [
1243
1243
  "This will permanently delete this ",
1244
1244
  itemName,
@@ -1246,8 +1246,8 @@ function EntityFormActions({
1246
1246
  ] })
1247
1247
  ] }),
1248
1248
  /* @__PURE__ */ jsxs12(AlertDialogFooter, { children: [
1249
- /* @__PURE__ */ jsx14(AlertDialogCancel, { children: "Cancel" }),
1250
- /* @__PURE__ */ jsx14(
1249
+ /* @__PURE__ */ jsx15(AlertDialogCancel, { children: "Cancel" }),
1250
+ /* @__PURE__ */ jsx15(
1251
1251
  AlertDialogAction,
1252
1252
  {
1253
1253
  onClick: onDelete,
@@ -1258,7 +1258,7 @@ function EntityFormActions({
1258
1258
  ] })
1259
1259
  ] })
1260
1260
  ] }),
1261
- onCancel && /* @__PURE__ */ jsx14(
1261
+ onCancel && /* @__PURE__ */ jsx15(
1262
1262
  Button,
1263
1263
  {
1264
1264
  variant: "ghost",
@@ -1274,7 +1274,7 @@ function EntityFormActions({
1274
1274
  // src/components/entity/entity-header.tsx
1275
1275
  import { IconChevronDown as IconChevronDown4, IconChevronUp as IconChevronUp2 } from "@tabler/icons-react";
1276
1276
  import { useState as useState5 } from "react";
1277
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
1277
+ import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
1278
1278
  function EntityHeader({
1279
1279
  title,
1280
1280
  icon,
@@ -1286,15 +1286,15 @@ function EntityHeader({
1286
1286
  }) {
1287
1287
  const [toolbarOpen, setToolbarOpen] = useState5(false);
1288
1288
  const hasToolbar = [search, filter, sort, view].some(Boolean);
1289
- return /* @__PURE__ */ jsx15(Card, { className: "p-4", children: /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-4", children: [
1289
+ return /* @__PURE__ */ jsx16(Card, { className: "p-4", children: /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-4", children: [
1290
1290
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between", children: [
1291
1291
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
1292
1292
  icon,
1293
- /* @__PURE__ */ jsx15("span", { className: "text-lg font-semibold", children: title })
1293
+ /* @__PURE__ */ jsx16("span", { className: "text-lg font-semibold", children: title })
1294
1294
  ] }),
1295
1295
  /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-3", children: [
1296
1296
  actions,
1297
- hasToolbar && /* @__PURE__ */ jsx15(
1297
+ hasToolbar && /* @__PURE__ */ jsx16(
1298
1298
  Button,
1299
1299
  {
1300
1300
  variant: "secondary",
@@ -1303,7 +1303,7 @@ function EntityHeader({
1303
1303
  onClick: () => setToolbarOpen((o) => !o),
1304
1304
  "aria-expanded": toolbarOpen,
1305
1305
  "aria-label": toolbarOpen ? "Hide filters" : "Show filters",
1306
- children: toolbarOpen ? /* @__PURE__ */ jsx15(IconChevronUp2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx15(IconChevronDown4, { className: "h-4 w-4" })
1306
+ children: toolbarOpen ? /* @__PURE__ */ jsx16(IconChevronUp2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx16(IconChevronDown4, { className: "h-4 w-4" })
1307
1307
  }
1308
1308
  )
1309
1309
  ] })
@@ -1317,7 +1317,7 @@ function EntityHeader({
1317
1317
  "md:flex"
1318
1318
  ),
1319
1319
  children: [
1320
- /* @__PURE__ */ jsx15("div", { className: "w-full min-w-0 flex-1 md:min-w-[12rem]", children: search }),
1320
+ /* @__PURE__ */ jsx16("div", { className: "w-full min-w-0 flex-1 md:min-w-[12rem]", children: search }),
1321
1321
  /* @__PURE__ */ jsxs13("div", { className: "flex w-full shrink-0 flex-col gap-2 *:w-full md:w-auto md:flex-row md:items-center md:gap-2 md:*:w-auto", children: [
1322
1322
  filter,
1323
1323
  sort,
@@ -1330,9 +1330,9 @@ function EntityHeader({
1330
1330
  }
1331
1331
 
1332
1332
  // src/components/skeleton.tsx
1333
- import { jsx as jsx16 } from "react/jsx-runtime";
1333
+ import { jsx as jsx17 } from "react/jsx-runtime";
1334
1334
  function Skeleton({ className, ...props }) {
1335
- return /* @__PURE__ */ jsx16(
1335
+ return /* @__PURE__ */ jsx17(
1336
1336
  "div",
1337
1337
  {
1338
1338
  "data-slot": "skeleton",
@@ -1343,14 +1343,14 @@ function Skeleton({ className, ...props }) {
1343
1343
  }
1344
1344
 
1345
1345
  // src/components/table.tsx
1346
- import { jsx as jsx17 } from "react/jsx-runtime";
1346
+ import { jsx as jsx18 } from "react/jsx-runtime";
1347
1347
  function Table({ className, ...props }) {
1348
- return /* @__PURE__ */ jsx17(
1348
+ return /* @__PURE__ */ jsx18(
1349
1349
  "div",
1350
1350
  {
1351
1351
  "data-slot": "table-container",
1352
1352
  className: "relative w-full overflow-x-auto",
1353
- children: /* @__PURE__ */ jsx17(
1353
+ children: /* @__PURE__ */ jsx18(
1354
1354
  "table",
1355
1355
  {
1356
1356
  "data-slot": "table",
@@ -1362,7 +1362,7 @@ function Table({ className, ...props }) {
1362
1362
  );
1363
1363
  }
1364
1364
  function TableHeader({ className, ...props }) {
1365
- return /* @__PURE__ */ jsx17(
1365
+ return /* @__PURE__ */ jsx18(
1366
1366
  "thead",
1367
1367
  {
1368
1368
  "data-slot": "table-header",
@@ -1372,7 +1372,7 @@ function TableHeader({ className, ...props }) {
1372
1372
  );
1373
1373
  }
1374
1374
  function TableBody({ className, ...props }) {
1375
- return /* @__PURE__ */ jsx17(
1375
+ return /* @__PURE__ */ jsx18(
1376
1376
  "tbody",
1377
1377
  {
1378
1378
  "data-slot": "table-body",
@@ -1382,7 +1382,7 @@ function TableBody({ className, ...props }) {
1382
1382
  );
1383
1383
  }
1384
1384
  function TableRow({ className, ...props }) {
1385
- return /* @__PURE__ */ jsx17(
1385
+ return /* @__PURE__ */ jsx18(
1386
1386
  "tr",
1387
1387
  {
1388
1388
  "data-slot": "table-row",
@@ -1395,7 +1395,7 @@ function TableRow({ className, ...props }) {
1395
1395
  );
1396
1396
  }
1397
1397
  function TableHead({ className, ...props }) {
1398
- return /* @__PURE__ */ jsx17(
1398
+ return /* @__PURE__ */ jsx18(
1399
1399
  "th",
1400
1400
  {
1401
1401
  "data-slot": "table-head",
@@ -1408,7 +1408,7 @@ function TableHead({ className, ...props }) {
1408
1408
  );
1409
1409
  }
1410
1410
  function TableCell({ className, ...props }) {
1411
- return /* @__PURE__ */ jsx17(
1411
+ return /* @__PURE__ */ jsx18(
1412
1412
  "td",
1413
1413
  {
1414
1414
  "data-slot": "table-cell",
@@ -1422,7 +1422,7 @@ function TableCell({ className, ...props }) {
1422
1422
  }
1423
1423
 
1424
1424
  // src/components/entity/entity-loading-state.tsx
1425
- import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
1425
+ import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
1426
1426
  function EntityLoadingState({
1427
1427
  view,
1428
1428
  rowCount = 5,
@@ -1431,12 +1431,12 @@ function EntityLoadingState({
1431
1431
  className
1432
1432
  }) {
1433
1433
  if (view === "table") {
1434
- return /* @__PURE__ */ jsx18("div", { className: cn("rounded-md border", className), children: /* @__PURE__ */ jsxs14(Table, { children: [
1435
- /* @__PURE__ */ jsx18(TableHeader, { children: /* @__PURE__ */ jsx18(TableRow, { children: Array.from({ length: columnCount }).map((_, i) => /* @__PURE__ */ jsx18(TableHead, { children: /* @__PURE__ */ jsx18(Skeleton, { className: "h-4 w-24" }) }, `header-${i}`)) }) }),
1436
- /* @__PURE__ */ jsx18(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx18(TableRow, { children: Array.from({ length: columnCount }).map((_2, colIndex) => /* @__PURE__ */ jsx18(TableCell, { children: /* @__PURE__ */ jsx18(Skeleton, { className: "h-4 w-full" }) }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`)) })
1434
+ return /* @__PURE__ */ jsx19("div", { className: cn("rounded-md border", className), children: /* @__PURE__ */ jsxs14(Table, { children: [
1435
+ /* @__PURE__ */ jsx19(TableHeader, { children: /* @__PURE__ */ jsx19(TableRow, { children: Array.from({ length: columnCount }).map((_, i) => /* @__PURE__ */ jsx19(TableHead, { children: /* @__PURE__ */ jsx19(Skeleton, { className: "h-4 w-24" }) }, `header-${i}`)) }) }),
1436
+ /* @__PURE__ */ jsx19(TableBody, { children: Array.from({ length: rowCount }).map((_, rowIndex) => /* @__PURE__ */ jsx19(TableRow, { children: Array.from({ length: columnCount }).map((_2, colIndex) => /* @__PURE__ */ jsx19(TableCell, { children: /* @__PURE__ */ jsx19(Skeleton, { className: "h-4 w-full" }) }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`)) })
1437
1437
  ] }) });
1438
1438
  }
1439
- return /* @__PURE__ */ jsx18(
1439
+ return /* @__PURE__ */ jsx19(
1440
1440
  "div",
1441
1441
  {
1442
1442
  className: cn(
@@ -1449,16 +1449,16 @@ function EntityLoadingState({
1449
1449
  className: "border-border space-y-3 rounded-lg border p-4",
1450
1450
  children: [
1451
1451
  /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2", children: [
1452
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-4 w-4 rounded-full" }),
1453
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-5 w-32" })
1452
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-4 w-4 rounded-full" }),
1453
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-5 w-32" })
1454
1454
  ] }),
1455
1455
  /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
1456
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-5 w-16" }),
1457
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-5 w-16" })
1456
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-5 w-16" }),
1457
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-5 w-16" })
1458
1458
  ] }),
1459
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-4 w-full" }),
1460
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-4 w-3/4" }),
1461
- /* @__PURE__ */ jsx18(Skeleton, { className: "h-3 w-24" })
1459
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-4 w-full" }),
1460
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-4 w-3/4" }),
1461
+ /* @__PURE__ */ jsx19(Skeleton, { className: "h-3 w-24" })
1462
1462
  ]
1463
1463
  },
1464
1464
  `card-${i}`
@@ -1474,9 +1474,9 @@ import { useRef as useRef2 } from "react";
1474
1474
  import { useDebouncedCallback } from "use-debounce";
1475
1475
 
1476
1476
  // src/components/input.tsx
1477
- import { jsx as jsx19 } from "react/jsx-runtime";
1477
+ import { jsx as jsx20 } from "react/jsx-runtime";
1478
1478
  function Input({ className, type, ...props }) {
1479
- return /* @__PURE__ */ jsx19(
1479
+ return /* @__PURE__ */ jsx20(
1480
1480
  "input",
1481
1481
  {
1482
1482
  type,
@@ -1493,7 +1493,7 @@ function Input({ className, type, ...props }) {
1493
1493
  }
1494
1494
 
1495
1495
  // src/components/entity/entity-search.tsx
1496
- import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
1496
+ import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
1497
1497
  function EntitySearch({
1498
1498
  paramKey = "search",
1499
1499
  placeholder = "Search...",
@@ -1517,8 +1517,8 @@ function EntitySearch({
1517
1517
  }
1518
1518
  };
1519
1519
  return /* @__PURE__ */ jsxs15("div", { className: cn("relative w-full min-w-0", className), children: [
1520
- /* @__PURE__ */ jsx20(IconSearch, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
1521
- /* @__PURE__ */ jsx20(
1520
+ /* @__PURE__ */ jsx21(IconSearch, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
1521
+ /* @__PURE__ */ jsx21(
1522
1522
  Input,
1523
1523
  {
1524
1524
  ref,
@@ -1528,13 +1528,13 @@ function EntitySearch({
1528
1528
  className: "w-full min-w-0 pl-9 pr-9"
1529
1529
  }
1530
1530
  ),
1531
- value && /* @__PURE__ */ jsx20(
1531
+ value && /* @__PURE__ */ jsx21(
1532
1532
  "button",
1533
1533
  {
1534
1534
  type: "button",
1535
1535
  onClick: handleClear,
1536
1536
  className: "absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",
1537
- children: /* @__PURE__ */ jsx20(IconX2, { className: "h-4 w-4" })
1537
+ children: /* @__PURE__ */ jsx21(IconX2, { className: "h-4 w-4" })
1538
1538
  }
1539
1539
  )
1540
1540
  ] });
@@ -1546,7 +1546,7 @@ import {
1546
1546
  IconSortDescendingLetters
1547
1547
  } from "@tabler/icons-react";
1548
1548
  import { parseAsInteger as parseAsInteger3, parseAsString as parseAsString3, useQueryState as useQueryState3 } from "nuqs";
1549
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
1549
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
1550
1550
  function EntitySort({
1551
1551
  options,
1552
1552
  defaultSort = "createdAt",
@@ -1571,18 +1571,18 @@ function EntitySort({
1571
1571
  setPage(1);
1572
1572
  };
1573
1573
  return /* @__PURE__ */ jsxs16("div", { className: cn("flex w-full items-center gap-0", className), children: [
1574
- /* @__PURE__ */ jsx21("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs16(Select, { value: sort, onValueChange: handleSortChange, children: [
1575
- /* @__PURE__ */ jsx21(SelectTrigger, { className: "h-9 w-full min-w-[150px] rounded-r-none border-r-0", children: /* @__PURE__ */ jsx21(SelectValue, { placeholder: "Sort by" }) }),
1576
- /* @__PURE__ */ jsx21(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx21(SelectItem, { value: option.value, children: option.label }, option.value)) })
1574
+ /* @__PURE__ */ jsx22("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs16(Select, { value: sort, onValueChange: handleSortChange, children: [
1575
+ /* @__PURE__ */ jsx22(SelectTrigger, { className: "h-9 w-full min-w-[150px] rounded-r-none border-r-0", children: /* @__PURE__ */ jsx22(SelectValue, { placeholder: "Sort by" }) }),
1576
+ /* @__PURE__ */ jsx22(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx22(SelectItem, { value: option.value, children: option.label }, option.value)) })
1577
1577
  ] }) }),
1578
- /* @__PURE__ */ jsx21(
1578
+ /* @__PURE__ */ jsx22(
1579
1579
  Button,
1580
1580
  {
1581
1581
  variant: "outline",
1582
1582
  size: "icon",
1583
1583
  className: "h-9 shrink-0 rounded-l-none",
1584
1584
  onClick: toggleOrder,
1585
- children: order === "asc" ? /* @__PURE__ */ jsx21(IconSortAscendingLetters, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx21(IconSortDescendingLetters, { className: "h-4 w-4" })
1585
+ children: order === "asc" ? /* @__PURE__ */ jsx22(IconSortAscendingLetters, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx22(IconSortDescendingLetters, { className: "h-4 w-4" })
1586
1586
  }
1587
1587
  )
1588
1588
  ] });
@@ -1595,7 +1595,7 @@ import { parseAsString as parseAsString4, useQueryState as useQueryState4 } from
1595
1595
  // src/components/toggle.tsx
1596
1596
  import * as TogglePrimitive from "@radix-ui/react-toggle";
1597
1597
  import { cva as cva3 } from "class-variance-authority";
1598
- import { jsx as jsx22 } from "react/jsx-runtime";
1598
+ import { jsx as jsx23 } from "react/jsx-runtime";
1599
1599
  var toggleVariants = cva3(
1600
1600
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
1601
1601
  {
@@ -1620,7 +1620,7 @@ var toggleVariants = cva3(
1620
1620
  // src/components/toggle-group.tsx
1621
1621
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
1622
1622
  import * as React from "react";
1623
- import { jsx as jsx23 } from "react/jsx-runtime";
1623
+ import { jsx as jsx24 } from "react/jsx-runtime";
1624
1624
  var ToggleGroupContext = React.createContext({
1625
1625
  size: "default",
1626
1626
  variant: "default",
@@ -1634,7 +1634,7 @@ function ToggleGroup({
1634
1634
  children,
1635
1635
  ...props
1636
1636
  }) {
1637
- return /* @__PURE__ */ jsx23(
1637
+ return /* @__PURE__ */ jsx24(
1638
1638
  ToggleGroupPrimitive.Root,
1639
1639
  {
1640
1640
  "data-slot": "toggle-group",
@@ -1647,7 +1647,7 @@ function ToggleGroup({
1647
1647
  className
1648
1648
  ),
1649
1649
  ...props,
1650
- children: /* @__PURE__ */ jsx23(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
1650
+ children: /* @__PURE__ */ jsx24(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
1651
1651
  }
1652
1652
  );
1653
1653
  }
@@ -1659,7 +1659,7 @@ function ToggleGroupItem({
1659
1659
  ...props
1660
1660
  }) {
1661
1661
  const context = React.useContext(ToggleGroupContext);
1662
- return /* @__PURE__ */ jsx23(
1662
+ return /* @__PURE__ */ jsx24(
1663
1663
  ToggleGroupPrimitive.Item,
1664
1664
  {
1665
1665
  "data-slot": "toggle-group-item",
@@ -1682,11 +1682,11 @@ function ToggleGroupItem({
1682
1682
  }
1683
1683
 
1684
1684
  // src/components/entity/entity-view-toggle.tsx
1685
- import { jsx as jsx24 } from "react/jsx-runtime";
1685
+ import { jsx as jsx25 } from "react/jsx-runtime";
1686
1686
  var viewIcons = {
1687
- table: /* @__PURE__ */ jsx24(IconTable, { className: "h-4 w-4" }),
1688
- card: /* @__PURE__ */ jsx24(IconGridDots, { className: "h-4 w-4" }),
1689
- list: /* @__PURE__ */ jsx24(IconList, { className: "h-4 w-4" })
1687
+ table: /* @__PURE__ */ jsx25(IconTable, { className: "h-4 w-4" }),
1688
+ card: /* @__PURE__ */ jsx25(IconGridDots, { className: "h-4 w-4" }),
1689
+ list: /* @__PURE__ */ jsx25(IconList, { className: "h-4 w-4" })
1690
1690
  };
1691
1691
  function EntityViewToggle({
1692
1692
  views = ["table", "card"],
@@ -1696,14 +1696,14 @@ function EntityViewToggle({
1696
1696
  "view",
1697
1697
  parseAsString4.withDefault("table")
1698
1698
  );
1699
- return /* @__PURE__ */ jsx24(
1699
+ return /* @__PURE__ */ jsx25(
1700
1700
  ToggleGroup,
1701
1701
  {
1702
1702
  type: "single",
1703
1703
  value,
1704
1704
  onValueChange: (v) => v && setValue(v),
1705
1705
  className: cn("w-full! border rounded-md md:w-auto!", className),
1706
- children: views.map((v) => /* @__PURE__ */ jsx24(
1706
+ children: views.map((v) => /* @__PURE__ */ jsx25(
1707
1707
  ToggleGroupItem,
1708
1708
  {
1709
1709
  value: v,