@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.
- package/dist/components/alert-dialog.js +14 -14
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/app-breadcrumbs-context.d.ts +19 -0
- package/dist/components/app-breadcrumbs-context.js +19 -0
- package/dist/components/app-breadcrumbs-context.js.map +1 -0
- package/dist/components/app-breadcrumbs.d.ts +5 -14
- package/dist/components/app-breadcrumbs.js +5 -7
- package/dist/components/app-breadcrumbs.js.map +1 -1
- package/dist/components/app-header-actions.js +70 -70
- package/dist/components/app-header-actions.js.map +1 -1
- package/dist/components/app-sidebar.js +57 -59
- package/dist/components/app-sidebar.js.map +1 -1
- package/dist/components/button.js +4 -4
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +12 -12
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/carousel.js +14 -14
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/data-table/index.js +57 -57
- package/dist/components/data-table/index.js.map +1 -1
- package/dist/components/entity/index.js +177 -177
- package/dist/components/entity/index.js.map +1 -1
- package/dist/components/input-group.js +15 -15
- package/dist/components/input-group.js.map +1 -1
- package/dist/components/page/index.js +21 -21
- package/dist/components/page/index.js.map +1 -1
- package/dist/components/pagination.js +12 -12
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/section/index.js +15 -15
- package/dist/components/section/index.js.map +1 -1
- package/dist/components/shell.js +37 -42
- package/dist/components/shell.js.map +1 -1
- package/dist/components/sidebar-context.d.ts +19 -0
- package/dist/components/sidebar-context.js +17 -0
- package/dist/components/sidebar-context.js.map +1 -0
- package/dist/components/sidebar.d.ts +2 -15
- package/dist/components/sidebar.js +67 -70
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/spotlight-search.js +38 -38
- package/dist/components/spotlight-search.js.map +1 -1
- package/dist/components/theme-toggle.js +8 -8
- package/dist/components/theme-toggle.js.map +1 -1
- 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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
109
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
205
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
206
206
|
function DropdownMenu({
|
|
207
207
|
...props
|
|
208
208
|
}) {
|
|
209
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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(
|
|
302
|
+
return /* @__PURE__ */ jsxs4(Fragment2, { children: [
|
|
303
303
|
/* @__PURE__ */ jsxs4(DropdownMenu, { children: [
|
|
304
|
-
/* @__PURE__ */
|
|
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__ */
|
|
313
|
+
/* @__PURE__ */ jsx4(IconChevronDown, { className: "ml-2 h-4 w-4" })
|
|
314
314
|
]
|
|
315
315
|
}
|
|
316
316
|
) }),
|
|
317
|
-
/* @__PURE__ */
|
|
318
|
-
action.variant === "destructive" && index > 0 && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
349
|
-
/* @__PURE__ */
|
|
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
|
|
371
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
372
372
|
function Card({ className, ...props }) {
|
|
373
|
-
return /* @__PURE__ */
|
|
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
|
|
389
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
390
390
|
function Select({
|
|
391
391
|
...props
|
|
392
392
|
}) {
|
|
393
|
-
return /* @__PURE__ */
|
|
393
|
+
return /* @__PURE__ */ jsx6(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
394
394
|
}
|
|
395
395
|
function SelectValue({
|
|
396
396
|
...props
|
|
397
397
|
}) {
|
|
398
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
444
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
475
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
700
|
+
/* @__PURE__ */ jsx7("span", { className: "text-lg font-semibold", children: title })
|
|
701
701
|
] }),
|
|
702
|
-
actions && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
708
|
-
/* @__PURE__ */
|
|
707
|
+
/* @__PURE__ */ jsx7(IconMenu2, { className: "size-4 text-muted-foreground" }),
|
|
708
|
+
/* @__PURE__ */ jsx7(SelectValue, {})
|
|
709
709
|
] }),
|
|
710
|
-
/* @__PURE__ */
|
|
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__ */
|
|
736
|
+
/* @__PURE__ */ jsx7(IconChevronDown3, { className: "h-4 w-4" })
|
|
737
737
|
]
|
|
738
738
|
}
|
|
739
739
|
),
|
|
740
|
-
/* @__PURE__ */
|
|
740
|
+
/* @__PURE__ */ jsx7(DropdownMenuContent, { align: "start", className: "min-w-40", children: overflowTabs.map(renderDropdownItem) })
|
|
741
741
|
] }),
|
|
742
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
772
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
773
773
|
function Sheet({ ...props }) {
|
|
774
|
-
return /* @__PURE__ */
|
|
774
|
+
return /* @__PURE__ */ jsx8(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
775
775
|
}
|
|
776
776
|
function SheetPortal({
|
|
777
777
|
...props
|
|
778
778
|
}) {
|
|
779
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
822
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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(
|
|
883
|
-
/* @__PURE__ */
|
|
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__ */
|
|
901
|
-
/* @__PURE__ */
|
|
902
|
-
/* @__PURE__ */
|
|
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__ */
|
|
906
|
+
/* @__PURE__ */ jsx9(AlertDialog, { open: showConfirm, onOpenChange: setShowConfirm, children: /* @__PURE__ */ jsxs8(AlertDialogContent, { children: [
|
|
907
907
|
/* @__PURE__ */ jsxs8(AlertDialogHeader, { children: [
|
|
908
|
-
/* @__PURE__ */
|
|
909
|
-
/* @__PURE__ */
|
|
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__ */
|
|
913
|
-
/* @__PURE__ */
|
|
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
|
|
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(
|
|
960
|
-
mode === "edit" && variant === "icon" && /* @__PURE__ */
|
|
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__ */
|
|
968
|
+
children: /* @__PURE__ */ jsx10(IconChevronRight2, { className: "size-4" })
|
|
969
969
|
}
|
|
970
970
|
),
|
|
971
|
-
mode === "edit" && variant !== "icon" && /* @__PURE__ */
|
|
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__ */
|
|
979
|
+
leftIcon: /* @__PURE__ */ jsx10(IconPencil, { className: "size-4" }),
|
|
980
980
|
children: buttonLabel
|
|
981
981
|
}
|
|
982
982
|
),
|
|
983
|
-
mode === "new" && /* @__PURE__ */
|
|
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__ */
|
|
995
|
-
children: /* @__PURE__ */
|
|
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
|
|
1007
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1008
1008
|
function Empty({ className, ...props }) {
|
|
1009
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1118
|
-
/* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1152
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1156
|
-
validOptions.map((option) => /* @__PURE__ */
|
|
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
|
|
1171
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1172
1172
|
function Spinner({
|
|
1173
1173
|
className,
|
|
1174
1174
|
...props
|
|
1175
1175
|
}) {
|
|
1176
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1250
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1333
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1334
1334
|
function Skeleton({ className, ...props }) {
|
|
1335
|
-
return /* @__PURE__ */
|
|
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
|
|
1346
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1347
1347
|
function Table({ className, ...props }) {
|
|
1348
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1435
|
-
/* @__PURE__ */
|
|
1436
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1453
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1457
|
-
/* @__PURE__ */
|
|
1456
|
+
/* @__PURE__ */ jsx19(Skeleton, { className: "h-5 w-16" }),
|
|
1457
|
+
/* @__PURE__ */ jsx19(Skeleton, { className: "h-5 w-16" })
|
|
1458
1458
|
] }),
|
|
1459
|
-
/* @__PURE__ */
|
|
1460
|
-
/* @__PURE__ */
|
|
1461
|
-
/* @__PURE__ */
|
|
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
|
|
1477
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1478
1478
|
function Input({ className, type, ...props }) {
|
|
1479
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
1521
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1575
|
-
/* @__PURE__ */
|
|
1576
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1685
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1686
1686
|
var viewIcons = {
|
|
1687
|
-
table: /* @__PURE__ */
|
|
1688
|
-
card: /* @__PURE__ */
|
|
1689
|
-
list: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1706
|
+
children: views.map((v) => /* @__PURE__ */ jsx25(
|
|
1707
1707
|
ToggleGroupItem,
|
|
1708
1708
|
{
|
|
1709
1709
|
value: v,
|