@kilnonedre/foundation 0.0.3 → 0.0.4

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 (3) hide show
  1. package/dist/index.d.ts +54 -20
  2. package/dist/index.js +979 -680
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,3 +1,630 @@
1
+ // src/render/index.tsx
2
+ import { EyeIcon, EyeOffIcon } from "lucide-react";
3
+
4
+ // src/shadcn/components/button.tsx
5
+ import { cva } from "class-variance-authority";
6
+ import { Slot } from "radix-ui";
7
+
8
+ // src/shadcn/lib/utils.ts
9
+ import { clsx } from "clsx";
10
+ import { twMerge } from "tailwind-merge";
11
+ function cn(...inputs) {
12
+ return twMerge(clsx(inputs));
13
+ }
14
+
15
+ // src/shadcn/components/button.tsx
16
+ import { jsx } from "react/jsx-runtime";
17
+ var buttonVariants = cva(
18
+ "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
19
+ {
20
+ variants: {
21
+ variant: {
22
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
23
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
24
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
25
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
26
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
27
+ link: "text-primary underline-offset-4 hover:underline"
28
+ },
29
+ size: {
30
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
31
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
32
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
33
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
34
+ icon: "size-9",
35
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
36
+ "icon-sm": "size-8",
37
+ "icon-lg": "size-10"
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ variant: "default",
42
+ size: "default"
43
+ }
44
+ }
45
+ );
46
+ function Button({
47
+ className,
48
+ variant = "default",
49
+ size = "default",
50
+ asChild = false,
51
+ ...props
52
+ }) {
53
+ const Comp = asChild ? Slot.Root : "button";
54
+ return /* @__PURE__ */ jsx(
55
+ Comp,
56
+ {
57
+ "data-slot": "button",
58
+ "data-variant": variant,
59
+ "data-size": size,
60
+ className: cn(buttonVariants({ variant, size, className })),
61
+ ...props
62
+ }
63
+ );
64
+ }
65
+
66
+ // src/shadcn/components/dialog.tsx
67
+ import { XIcon } from "lucide-react";
68
+ import { Dialog as DialogPrimitive } from "radix-ui";
69
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
70
+ function Dialog({
71
+ ...props
72
+ }) {
73
+ return /* @__PURE__ */ jsx2(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
74
+ }
75
+ function DialogTrigger({
76
+ ...props
77
+ }) {
78
+ return /* @__PURE__ */ jsx2(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
79
+ }
80
+ function DialogPortal({
81
+ ...props
82
+ }) {
83
+ return /* @__PURE__ */ jsx2(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
84
+ }
85
+ function DialogClose({
86
+ ...props
87
+ }) {
88
+ return /* @__PURE__ */ jsx2(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
89
+ }
90
+ function DialogOverlay({
91
+ className,
92
+ ...props
93
+ }) {
94
+ return /* @__PURE__ */ jsx2(
95
+ DialogPrimitive.Overlay,
96
+ {
97
+ "data-slot": "dialog-overlay",
98
+ className: cn(
99
+ "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
100
+ className
101
+ ),
102
+ ...props
103
+ }
104
+ );
105
+ }
106
+ function DialogContent({
107
+ className,
108
+ children,
109
+ showCloseButton = true,
110
+ ...props
111
+ }) {
112
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
113
+ /* @__PURE__ */ jsx2(DialogOverlay, {}),
114
+ /* @__PURE__ */ jsxs(
115
+ DialogPrimitive.Content,
116
+ {
117
+ "data-slot": "dialog-content",
118
+ className: cn(
119
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
120
+ className
121
+ ),
122
+ ...props,
123
+ children: [
124
+ children,
125
+ showCloseButton && /* @__PURE__ */ jsxs(
126
+ DialogPrimitive.Close,
127
+ {
128
+ "data-slot": "dialog-close",
129
+ className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
130
+ children: [
131
+ /* @__PURE__ */ jsx2(XIcon, {}),
132
+ /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "Close" })
133
+ ]
134
+ }
135
+ )
136
+ ]
137
+ }
138
+ )
139
+ ] });
140
+ }
141
+ function DialogHeader({ className, ...props }) {
142
+ return /* @__PURE__ */ jsx2(
143
+ "div",
144
+ {
145
+ "data-slot": "dialog-header",
146
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
147
+ ...props
148
+ }
149
+ );
150
+ }
151
+ function DialogFooter({
152
+ className,
153
+ showCloseButton = false,
154
+ children,
155
+ ...props
156
+ }) {
157
+ return /* @__PURE__ */ jsxs(
158
+ "div",
159
+ {
160
+ "data-slot": "dialog-footer",
161
+ className: cn(
162
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
163
+ className
164
+ ),
165
+ ...props,
166
+ children: [
167
+ children,
168
+ showCloseButton && /* @__PURE__ */ jsx2(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx2(Button, { variant: "outline", children: "Close" }) })
169
+ ]
170
+ }
171
+ );
172
+ }
173
+ function DialogTitle({
174
+ className,
175
+ ...props
176
+ }) {
177
+ return /* @__PURE__ */ jsx2(
178
+ DialogPrimitive.Title,
179
+ {
180
+ "data-slot": "dialog-title",
181
+ className: cn("text-lg leading-none font-semibold", className),
182
+ ...props
183
+ }
184
+ );
185
+ }
186
+
187
+ // src/shadcn/components/input.tsx
188
+ import { jsx as jsx3 } from "react/jsx-runtime";
189
+ function Input({ className, type, ...props }) {
190
+ return /* @__PURE__ */ jsx3(
191
+ "input",
192
+ {
193
+ type,
194
+ "data-slot": "input",
195
+ className: cn(
196
+ "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
197
+ "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
198
+ "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
199
+ className
200
+ ),
201
+ ...props
202
+ }
203
+ );
204
+ }
205
+
206
+ // src/shadcn/components/input-group.tsx
207
+ import { cva as cva2 } from "class-variance-authority";
208
+
209
+ // src/shadcn/components/textarea.tsx
210
+ import { jsx as jsx4 } from "react/jsx-runtime";
211
+ function Textarea({ className, ...props }) {
212
+ return /* @__PURE__ */ jsx4(
213
+ "textarea",
214
+ {
215
+ "data-slot": "textarea",
216
+ className: cn(
217
+ "flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",
218
+ className
219
+ ),
220
+ ...props
221
+ }
222
+ );
223
+ }
224
+
225
+ // src/shadcn/components/input-group.tsx
226
+ import { jsx as jsx5 } from "react/jsx-runtime";
227
+ function InputGroup({ className, ...props }) {
228
+ return /* @__PURE__ */ jsx5(
229
+ "div",
230
+ {
231
+ "data-slot": "input-group",
232
+ role: "group",
233
+ className: cn(
234
+ "group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30",
235
+ "h-9 min-w-0 has-[>textarea]:h-auto",
236
+ // Variants based on alignment.
237
+ "has-[>[data-align=inline-start]]:[&>input]:pl-2",
238
+ "has-[>[data-align=inline-end]]:[&>input]:pr-2",
239
+ "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
240
+ "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
241
+ // Focus state.
242
+ "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50",
243
+ // Error state.
244
+ "has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",
245
+ className
246
+ ),
247
+ ...props
248
+ }
249
+ );
250
+ }
251
+ var inputGroupAddonVariants = cva2(
252
+ "flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
253
+ {
254
+ variants: {
255
+ align: {
256
+ "inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
257
+ "inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
258
+ "block-start": "order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3",
259
+ "block-end": "order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"
260
+ }
261
+ },
262
+ defaultVariants: {
263
+ align: "inline-start"
264
+ }
265
+ }
266
+ );
267
+ function InputGroupAddon({
268
+ className,
269
+ align = "inline-start",
270
+ ...props
271
+ }) {
272
+ return /* @__PURE__ */ jsx5(
273
+ "div",
274
+ {
275
+ role: "group",
276
+ "data-slot": "input-group-addon",
277
+ "data-align": align,
278
+ className: cn(inputGroupAddonVariants({ align }), className),
279
+ onClick: (e) => {
280
+ if (e.target.closest("button")) {
281
+ return;
282
+ }
283
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
284
+ },
285
+ ...props
286
+ }
287
+ );
288
+ }
289
+ var inputGroupButtonVariants = cva2(
290
+ "flex items-center gap-2 text-sm shadow-none",
291
+ {
292
+ variants: {
293
+ size: {
294
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",
295
+ sm: "h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5",
296
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
297
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
298
+ }
299
+ },
300
+ defaultVariants: {
301
+ size: "xs"
302
+ }
303
+ }
304
+ );
305
+ function InputGroupInput({
306
+ className,
307
+ ...props
308
+ }) {
309
+ return /* @__PURE__ */ jsx5(
310
+ Input,
311
+ {
312
+ "data-slot": "input-group-control",
313
+ className: cn(
314
+ "flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",
315
+ className
316
+ ),
317
+ ...props
318
+ }
319
+ );
320
+ }
321
+
322
+ // src/render/index.tsx
323
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
324
+ var getSuccessMessage = (mode) => {
325
+ switch (mode) {
326
+ case EnumFormMode.CREATE:
327
+ return "\u521B\u5EFA\u6210\u529F";
328
+ case EnumFormMode.UPDATE:
329
+ return "\u66F4\u65B0\u6210\u529F";
330
+ case EnumFormMode.DELETE:
331
+ return "\u5220\u9664\u6210\u529F";
332
+ case EnumFormMode.VIEW:
333
+ return "";
334
+ }
335
+ };
336
+ var renderFooter = (mode) => {
337
+ switch (mode) {
338
+ case EnumFormMode.VIEW:
339
+ return /* @__PURE__ */ jsx6(DialogFooter, { children: /* @__PURE__ */ jsx6(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx6(Button, { variant: "outline", children: "\u5173\u95ED" }) }) });
340
+ case EnumFormMode.DELETE:
341
+ return /* @__PURE__ */ jsxs2(DialogFooter, { children: [
342
+ /* @__PURE__ */ jsx6(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx6(Button, { variant: "outline", children: "\u53D6\u6D88" }) }),
343
+ /* @__PURE__ */ jsx6(Button, { variant: "destructive", type: "submit", children: "\u786E\u8BA4\u5220\u9664" })
344
+ ] });
345
+ default:
346
+ return /* @__PURE__ */ jsxs2(DialogFooter, { children: [
347
+ /* @__PURE__ */ jsx6(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx6(Button, { variant: "outline", children: "\u53D6\u6D88" }) }),
348
+ /* @__PURE__ */ jsx6(Button, { type: "submit", children: "\u4FDD\u5B58" })
349
+ ] });
350
+ }
351
+ };
352
+ var renderConfirmFooter = () => {
353
+ return /* @__PURE__ */ jsxs2(DialogFooter, { children: [
354
+ /* @__PURE__ */ jsx6(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx6(Button, { variant: "outline", children: "\u53D6\u6D88" }) }),
355
+ /* @__PURE__ */ jsx6(Button, { type: "submit", children: "\u786E\u5B9A" })
356
+ ] });
357
+ };
358
+ var renderBody = (mode, formFields, form) => {
359
+ switch (mode) {
360
+ case EnumFormMode.DELETE:
361
+ return /* @__PURE__ */ jsx6(FieldGroup, { children: renderTextarea({
362
+ mode,
363
+ form,
364
+ id: "updatedReason",
365
+ name: "updatedReason",
366
+ label: "\u5220\u9664\u539F\u56E0"
367
+ }) });
368
+ default:
369
+ return formFields();
370
+ }
371
+ };
372
+ var renderTextarea = (props) => {
373
+ return /* @__PURE__ */ jsx6(
374
+ FieldController,
375
+ {
376
+ ...props,
377
+ control: props.form.control,
378
+ required: props.required ?? true,
379
+ children: ({ field, fieldState, id }) => /* @__PURE__ */ jsx6(
380
+ Textarea,
381
+ {
382
+ ...field,
383
+ id,
384
+ rows: 4,
385
+ className: "resize-none",
386
+ "aria-invalid": fieldState.invalid
387
+ }
388
+ )
389
+ }
390
+ );
391
+ };
392
+ var renderInput = (props) => {
393
+ return /* @__PURE__ */ jsx6(
394
+ FieldController,
395
+ {
396
+ ...props,
397
+ control: props.form.control,
398
+ required: props.required ?? true,
399
+ children: ({ field, fieldState, id }) => /* @__PURE__ */ jsx6(Input, { ...field, id, "aria-invalid": fieldState.invalid })
400
+ }
401
+ );
402
+ };
403
+ var renderPasswordInput = (props) => {
404
+ return /* @__PURE__ */ jsx6(
405
+ FieldController,
406
+ {
407
+ ...props,
408
+ control: props.form.control,
409
+ required: props.required ?? true,
410
+ children: ({ field, fieldState, id }) => /* @__PURE__ */ jsxs2(InputGroup, { children: [
411
+ /* @__PURE__ */ jsx6(
412
+ InputGroupInput,
413
+ {
414
+ ...field,
415
+ id,
416
+ type: props.hidden ? "password" : "text",
417
+ "aria-invalid": fieldState.invalid,
418
+ className: "pr-10"
419
+ }
420
+ ),
421
+ /* @__PURE__ */ jsx6(InputGroupAddon, { align: "inline-end", className: "cursor-pointer", children: props.hidden ? /* @__PURE__ */ jsx6(
422
+ EyeOffIcon,
423
+ {
424
+ onClick: (e) => {
425
+ e.stopPropagation();
426
+ props.onHiddenChange(false);
427
+ }
428
+ }
429
+ ) : /* @__PURE__ */ jsx6(
430
+ EyeIcon,
431
+ {
432
+ onClick: (e) => {
433
+ e.stopPropagation();
434
+ props.onHiddenChange(true);
435
+ }
436
+ }
437
+ ) })
438
+ ] })
439
+ }
440
+ );
441
+ };
442
+
443
+ // src/util/bool-to-text.ts
444
+ var boolToText = (bool) => {
445
+ return bool ? "\u662F" : "\u5426";
446
+ };
447
+
448
+ // src/util/cn.ts
449
+ import { clsx as clsx2 } from "clsx";
450
+ import { twMerge as twMerge2 } from "tailwind-merge";
451
+ function cn2(...inputs) {
452
+ return twMerge2(clsx2(inputs));
453
+ }
454
+
455
+ // src/util/date/format-datetime.ts
456
+ import dayjs from "dayjs";
457
+ var formatDateTime = (value, format = "YYYY-MM-DD HH:mm:ss") => {
458
+ if (!value) return "";
459
+ return dayjs(value).format(format);
460
+ };
461
+
462
+ // src/util/enum-to-options.ts
463
+ var enumToOptions = (enumObj, labelMap) => {
464
+ return Object.values(enumObj).map((value) => ({
465
+ value,
466
+ label: labelMap[value]
467
+ }));
468
+ };
469
+
470
+ // src/util/format-decimal.ts
471
+ var formatDecimal = (value, digits = 2) => {
472
+ const num = Number(value);
473
+ if (Number.isNaN(num)) {
474
+ return 0 .toFixed(digits);
475
+ }
476
+ return num.toFixed(digits);
477
+ };
478
+
479
+ // src/util/gen-uuid.ts
480
+ import { v4 as uuidv4 } from "uuid";
481
+ var genUuid = () => {
482
+ return uuidv4();
483
+ };
484
+
485
+ // src/util/is-empty.ts
486
+ var isEmpty = (v) => {
487
+ if (v === void 0 || v === null) return true;
488
+ if (typeof v === "string" && v === "") return true;
489
+ if (Array.isArray(v) && v.length === 0) return true;
490
+ return false;
491
+ };
492
+
493
+ // src/util/is-form-data.ts
494
+ var isFormData = (object) => {
495
+ if (Object.prototype.toString.call(object) !== "[object FormData]")
496
+ return false;
497
+ return true;
498
+ };
499
+
500
+ // src/util/validator/is-valid-email.ts
501
+ var isValidEmail = (string) => {
502
+ const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
503
+ return regex.test(string);
504
+ };
505
+
506
+ // src/util/validator/is-valid-url.ts
507
+ var isValidURL = (string) => {
508
+ const regex = /^(https?:\/\/)?((([a-zA-Z\d]([a-zA-Z\d-]*[a-zA-Z\d])*)\.)+[a-zA-Z]{2,}|\d{1,3}(\.\d{1,3}){3}(:\d+)?)(:\d+)?(\/[-a-zA-Z\d%_.~+]*)*(\?[\d&a-zA-Z_=%.~+-]*)?(#[\d&a-zA-Z_=%.~+-]*)?$/;
509
+ return regex.test(string);
510
+ };
511
+
512
+ // src/util/validator/schema.ts
513
+ import { z } from "zod";
514
+ var emptyToUndefined = (value) => {
515
+ if (typeof value !== "string") return value;
516
+ const v = value.trim();
517
+ return v ? v : void 0;
518
+ };
519
+ var enumValues = (obj) => Object.values(obj);
520
+ var zTextOptional = (label, min = 1, max = 32) => z.preprocess(
521
+ emptyToUndefined,
522
+ z.string().trim().min(min, `${label}\u81F3\u5C11 ${min} \u4E2A\u5B57\u7B26`).max(max, `${label}\u6700\u591A ${max} \u4E2A\u5B57\u7B26`).optional()
523
+ );
524
+ var zTextRequired = (label, min = 1, max = 32) => z.string({
525
+ message: `\u8BF7\u8F93\u5165${label}`
526
+ }).trim().min(min, `${label}\u81F3\u5C11 ${min} \u4E2A\u5B57\u7B26`).max(max, `${label}\u6700\u591A ${max} \u4E2A\u5B57\u7B26`);
527
+ var zIdCard = (label = "\u8EAB\u4EFD\u8BC1\u53F7") => z.string({
528
+ message: `\u8BF7\u8F93\u5165${label}`
529
+ }).trim().regex(/^\d{15}$|^\d{17}(\d|X|x)$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
530
+ var zIdCardOptional = (label = "\u8EAB\u4EFD\u8BC1\u53F7") => z.preprocess(
531
+ emptyToUndefined,
532
+ z.string().trim().regex(/^\d{15}$|^\d{17}(\d|X|x)$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`).optional()
533
+ );
534
+ var zEmail = (max = 32) => z.string({
535
+ message: "\u8BF7\u8F93\u5165\u90AE\u7BB1"
536
+ }).trim().email("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u90AE\u7BB1").max(max, `\u90AE\u7BB1\u6700\u591A ${max} \u4E2A\u5B57\u7B26`);
537
+ var zPhone = (max = 11) => z.string({
538
+ message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7"
539
+ }).trim().regex(/^1[3-9]\d{9}$/, "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7").max(max, `\u624B\u673A\u53F7\u6700\u591A ${max} \u4F4D`);
540
+ var zId = (label = "ID") => z.string({
541
+ message: `\u8BF7\u9009\u62E9${label}`
542
+ }).uuid(`${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
543
+ var zIds = (label = "ID") => z.array(zId(label)).min(1, `\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A${label}`);
544
+ var zTexts = (label = "\u5185\u5BB9") => z.array(z.string()).min(1, `\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A${label}`);
545
+ var zImageId = (label) => z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`);
546
+ var zImageIdRequired = (label) => z.string({
547
+ message: `\u8BF7\u81F3\u5C11\u4E0A\u4F20\u4E00\u5F20${label}`
548
+ }).uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`);
549
+ var zImageIds = (label) => z.array(z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`)).min(1, `\u81F3\u5C11\u4E0A\u4F201\u5F20${label}`);
550
+ var zImageIdsOptional = (label) => z.array(z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`)).optional();
551
+ var zEnumRequired = (enumObj, label) => z.enum(enumValues(enumObj), {
552
+ message: `\u8BF7\u9009\u62E9${label}`
553
+ });
554
+ var zEnumNullable = (enumObj, label) => z.enum(enumValues(enumObj), {
555
+ message: `\u8BF7\u9009\u62E9${label}`
556
+ }).nullable();
557
+ var zEnumNullableRequired = (enumObj, label) => z.enum(enumValues(enumObj), {
558
+ message: `\u8BF7\u9009\u62E9${label}`
559
+ }).nullable().refine((v) => v !== null, {
560
+ message: `\u8BF7\u9009\u62E9${label}`
561
+ });
562
+ var zEnumOptional = (enumObj) => z.enum(enumValues(enumObj)).optional();
563
+ var zEnumNullableOptional = (enumObj) => z.enum(enumValues(enumObj)).nullable().optional();
564
+ var zBool = () => z.boolean();
565
+ var zDate = (label) => z.date({
566
+ message: `\u8BF7\u9009\u62E9${label}`
567
+ });
568
+ var zDateOptional = () => z.date().optional();
569
+ var zNumber = (label, min, max) => {
570
+ let schema = z.number({
571
+ message: `\u8BF7\u8F93\u5165${label}`
572
+ });
573
+ if (min !== void 0) {
574
+ schema = schema.min(min, `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`);
575
+ }
576
+ if (max !== void 0) {
577
+ schema = schema.max(max, `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`);
578
+ }
579
+ return schema;
580
+ };
581
+ var zNumberOptional = (label, min, max) => {
582
+ let schema = z.number({
583
+ message: `\u8BF7\u8F93\u5165${label}`
584
+ }).optional();
585
+ if (min !== void 0) {
586
+ schema = schema.refine((v) => v === void 0 || v >= min, {
587
+ message: `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`
588
+ });
589
+ }
590
+ if (max !== void 0) {
591
+ schema = schema.refine((v) => v === void 0 || v <= max, {
592
+ message: `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`
593
+ });
594
+ }
595
+ return schema;
596
+ };
597
+ var zCoerceNumber = (label, min, max) => {
598
+ let schema = z.coerce.number({
599
+ message: `\u8BF7\u8F93\u5165${label}`
600
+ });
601
+ if (min !== void 0) {
602
+ schema = schema.min(min, `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`);
603
+ }
604
+ if (max !== void 0) {
605
+ schema = schema.max(max, `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`);
606
+ }
607
+ return schema;
608
+ };
609
+ var zCoerceNumberOptional = (label, min, max) => z.preprocess(emptyToUndefined, zCoerceNumber(label, min, max).optional());
610
+ var zDecimal = (label, min, max) => {
611
+ let schema = z.string({
612
+ message: `\u8BF7\u8F93\u5165${label}`
613
+ }).trim().regex(/^\d+(\.\d{1,2})?$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
614
+ if (min !== void 0) {
615
+ schema = schema.refine((v) => Number(v) >= min, {
616
+ message: `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`
617
+ });
618
+ }
619
+ if (max !== void 0) {
620
+ schema = schema.refine((v) => Number(v) <= max, {
621
+ message: `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`
622
+ });
623
+ }
624
+ return schema;
625
+ };
626
+ var zDecimalOptional = (label, min, max) => z.preprocess(emptyToUndefined, zDecimal(label, min, max).optional());
627
+
1
628
  // src/type/enum/approval-status.ts
2
629
  var EnumApprovalStatus = {
3
630
  PENDING: "PENDING",
@@ -11,6 +638,10 @@ var EnumApprovalStatusLabel = {
11
638
  REJECTED: "\u5BA1\u6838\u62D2\u7EDD",
12
639
  CANCELLED: "\u64A4\u56DE"
13
640
  };
641
+ var enumApprovalStatusOptions = enumToOptions(
642
+ EnumApprovalStatus,
643
+ EnumApprovalStatusLabel
644
+ );
14
645
 
15
646
  // src/type/enum/approval-view.ts
16
647
  var EnumApprovalView = {
@@ -26,6 +657,10 @@ var EnumApprovalViewLabel = {
26
657
  SUBMITTED_BY_ME: "\u6211\u63D0\u4EA4\u7684",
27
658
  ASSIGNED_TO_ME: "\u6211\u5BA1\u6279\u7684"
28
659
  };
660
+ var enumApprovalViewOptions = enumToOptions(
661
+ EnumApprovalView,
662
+ EnumApprovalViewLabel
663
+ );
29
664
 
30
665
  // src/type/enum/entity-status.ts
31
666
  var EnumEntityStatus = {
@@ -38,6 +673,10 @@ var EnumEntityStatusLabel = {
38
673
  INACTIVE: "\u505C\u7528",
39
674
  DELETED: "\u5DF2\u5220\u9664"
40
675
  };
676
+ var enumEntityStatusOptions = enumToOptions(
677
+ EnumEntityStatus,
678
+ EnumEntityStatusLabel
679
+ );
41
680
 
42
681
  // src/type/enum/form-mode.ts
43
682
  var EnumFormMode = {
@@ -52,6 +691,10 @@ var EnumFormModeLabel = {
52
691
  UPDATE: "\u66F4\u65B0",
53
692
  DELETE: "\u5220\u9664"
54
693
  };
694
+ var enumFormModeOptions = enumToOptions(
695
+ EnumFormMode,
696
+ EnumFormModeLabel
697
+ );
55
698
 
56
699
  // src/type/enum/gender-type.ts
57
700
  var EnumGenderType = {
@@ -64,6 +707,10 @@ var EnumGenderTypeLabel = {
64
707
  FEMALE: "\u5973\u58EB",
65
708
  UNKNOWN: "\u4FDD\u5BC6"
66
709
  };
710
+ var enumGenderTypeOptions = enumToOptions(
711
+ EnumGenderType,
712
+ EnumGenderTypeLabel
713
+ );
67
714
 
68
715
  // src/type/enum/map-provider.ts
69
716
  var EnumMapProvider = {
@@ -74,6 +721,10 @@ var EnumMapProviderLabel = {
74
721
  AMAP: "\u9AD8\u5FB7\u5730\u56FE",
75
722
  TENCENT: "\u817E\u8BAF\u5730\u56FE"
76
723
  };
724
+ var enumMapProviderOptions = enumToOptions(
725
+ EnumMapProvider,
726
+ EnumMapProviderLabel
727
+ );
77
728
 
78
729
  // src/type/enum/order-status.ts
79
730
  var EnumOrderStatus = {
@@ -101,6 +752,10 @@ var EnumOrderStatusLabel = {
101
752
  REFUNDING: "\u9000\u6B3E\u4E2D",
102
753
  REFUNDED: "\u5DF2\u9000\u6B3E"
103
754
  };
755
+ var enumOrderStatusOptions = enumToOptions(
756
+ EnumOrderStatus,
757
+ EnumOrderStatusLabel
758
+ );
104
759
 
105
760
  // src/type/enum/publish-method.ts
106
761
  var EnumPublishMethod = {
@@ -113,6 +768,10 @@ var EnumPublishMethodLabel = {
113
768
  SCHEDULED: "\u5B9A\u65F6\u4E0A\u67B6",
114
769
  WAREHOUSE: "\u5165\u5E93"
115
770
  };
771
+ var enumPublishMethodOptions = enumToOptions(
772
+ EnumPublishMethod,
773
+ EnumPublishMethodLabel
774
+ );
116
775
 
117
776
  // src/type/enum/semantic-color.ts
118
777
  var EnumSemanticColor = {
@@ -133,6 +792,10 @@ var EnumSemanticColorLabel = {
133
792
  NEUTRAL: "\u4E2D\u6027\uFF08\u7070\uFF09",
134
793
  DARK: "\u6DF1\u8272\uFF08\u9ED1\uFF09"
135
794
  };
795
+ var enumSemanticColorOptions = enumToOptions(
796
+ EnumSemanticColor,
797
+ EnumSemanticColorLabel
798
+ );
136
799
 
137
800
  // src/type/enum/store-method.ts
138
801
  var EnumStorageMethod = {
@@ -145,6 +808,10 @@ var EnumStorageMethodLabel = {
145
808
  FROZEN: "\u51B7\u51BB",
146
809
  NORMAL: "\u5E38\u6E29"
147
810
  };
811
+ var enumStorageMethodOptions = enumToOptions(
812
+ EnumStorageMethod,
813
+ EnumStorageMethodLabel
814
+ );
148
815
 
149
816
  // src/type/enum/variant.ts
150
817
  var EnumVariant = {
@@ -160,6 +827,7 @@ var EnumVariantLabel = {
160
827
  OUTLINE: "\u63CF\u8FB9",
161
828
  SOFT: "\u67D4\u548C"
162
829
  };
830
+ var enumVariantOptions = enumToOptions(EnumVariant, EnumVariantLabel);
163
831
 
164
832
  // src/theme/semantic-color.ts
165
833
  var createColor = (color, solidText = "text-white") => ({
@@ -227,19 +895,10 @@ var getSemanticColor = (semanticColor, variant) => {
227
895
  };
228
896
 
229
897
  // src/shadcn/components/badge.tsx
230
- import { cva } from "class-variance-authority";
231
- import { Slot } from "radix-ui";
232
-
233
- // src/shadcn/lib/utils.ts
234
- import { clsx } from "clsx";
235
- import { twMerge } from "tailwind-merge";
236
- function cn(...inputs) {
237
- return twMerge(clsx(inputs));
238
- }
239
-
240
- // src/shadcn/components/badge.tsx
241
- import { jsx } from "react/jsx-runtime";
242
- var badgeVariants = cva(
898
+ import { cva as cva3 } from "class-variance-authority";
899
+ import { Slot as Slot2 } from "radix-ui";
900
+ import { jsx as jsx7 } from "react/jsx-runtime";
901
+ var badgeVariants = cva3(
243
902
  "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",
244
903
  {
245
904
  variants: {
@@ -263,205 +922,20 @@ function Badge({
263
922
  asChild = false,
264
923
  ...props
265
924
  }) {
266
- const Comp = asChild ? Slot.Root : "span";
267
- return /* @__PURE__ */ jsx(
925
+ const Comp = asChild ? Slot2.Root : "span";
926
+ return /* @__PURE__ */ jsx7(
268
927
  Comp,
269
928
  {
270
929
  "data-slot": "badge",
271
930
  "data-variant": variant,
272
- className: cn(badgeVariants({ variant }), className),
273
- ...props
274
- }
275
- );
276
- }
277
-
278
- // src/util/bool-to-text.ts
279
- var boolToText = (bool) => {
280
- return bool ? "\u662F" : "\u5426";
281
- };
282
-
283
- // src/util/cn.ts
284
- import { clsx as clsx2 } from "clsx";
285
- import { twMerge as twMerge2 } from "tailwind-merge";
286
- function cn2(...inputs) {
287
- return twMerge2(clsx2(inputs));
288
- }
289
-
290
- // src/util/date/format-datetime.ts
291
- import dayjs from "dayjs";
292
- var formatDateTime = (value, format = "YYYY-MM-DD HH:mm:ss") => {
293
- if (!value) return "";
294
- return dayjs(value).format(format);
295
- };
296
-
297
- // src/util/enum-to-options.ts
298
- var enumToOptions = (enumObj, labelMap) => {
299
- return Object.values(enumObj).map((value) => ({
300
- value,
301
- label: labelMap[value]
302
- }));
303
- };
304
-
305
- // src/util/format-decimal.ts
306
- var formatDecimal = (value, digits = 2) => {
307
- const num = Number(value);
308
- if (Number.isNaN(num)) {
309
- return 0 .toFixed(digits);
310
- }
311
- return num.toFixed(digits);
312
- };
313
-
314
- // src/util/gen-uuid.ts
315
- import { v4 as uuidv4 } from "uuid";
316
- var genUuid = () => {
317
- return uuidv4();
318
- };
319
-
320
- // src/util/is-empty.ts
321
- var isEmpty = (v) => {
322
- if (v === void 0 || v === null) return true;
323
- if (typeof v === "string" && v === "") return true;
324
- if (Array.isArray(v) && v.length === 0) return true;
325
- return false;
326
- };
327
-
328
- // src/util/is-form-data.ts
329
- var isFormData = (object) => {
330
- if (Object.prototype.toString.call(object) !== "[object FormData]")
331
- return false;
332
- return true;
333
- };
334
-
335
- // src/util/validator/is-valid-email.ts
336
- var isValidEmail = (string) => {
337
- const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
338
- return regex.test(string);
339
- };
340
-
341
- // src/util/validator/is-valid-url.ts
342
- var isValidURL = (string) => {
343
- const regex = /^(https?:\/\/)?((([a-zA-Z\d]([a-zA-Z\d-]*[a-zA-Z\d])*)\.)+[a-zA-Z]{2,}|\d{1,3}(\.\d{1,3}){3}(:\d+)?)(:\d+)?(\/[-a-zA-Z\d%_.~+]*)*(\?[\d&a-zA-Z_=%.~+-]*)?(#[\d&a-zA-Z_=%.~+-]*)?$/;
344
- return regex.test(string);
345
- };
346
-
347
- // src/util/validator/schema.ts
348
- import { z } from "zod";
349
- var emptyToUndefined = (value) => {
350
- if (typeof value !== "string") return value;
351
- const v = value.trim();
352
- return v ? v : void 0;
353
- };
354
- var enumValues = (obj) => Object.values(obj);
355
- var zTextOptional = (label, min = 1, max = 32) => z.preprocess(
356
- emptyToUndefined,
357
- z.string().trim().min(min, `${label}\u81F3\u5C11 ${min} \u4E2A\u5B57\u7B26`).max(max, `${label}\u6700\u591A ${max} \u4E2A\u5B57\u7B26`).optional()
358
- );
359
- var zTextRequired = (label, min = 1, max = 32) => z.string({
360
- message: `\u8BF7\u8F93\u5165${label}`
361
- }).trim().min(min, `${label}\u81F3\u5C11 ${min} \u4E2A\u5B57\u7B26`).max(max, `${label}\u6700\u591A ${max} \u4E2A\u5B57\u7B26`);
362
- var zIdCard = (label = "\u8EAB\u4EFD\u8BC1\u53F7") => z.string({
363
- message: `\u8BF7\u8F93\u5165${label}`
364
- }).trim().regex(/^\d{15}$|^\d{17}(\d|X|x)$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
365
- var zIdCardOptional = (label = "\u8EAB\u4EFD\u8BC1\u53F7") => z.preprocess(
366
- emptyToUndefined,
367
- z.string().trim().regex(/^\d{15}$|^\d{17}(\d|X|x)$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`).optional()
368
- );
369
- var zEmail = (max = 32) => z.string({
370
- message: "\u8BF7\u8F93\u5165\u90AE\u7BB1"
371
- }).trim().email("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u90AE\u7BB1").max(max, `\u90AE\u7BB1\u6700\u591A ${max} \u4E2A\u5B57\u7B26`);
372
- var zPhone = (max = 11) => z.string({
373
- message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7"
374
- }).trim().regex(/^1[3-9]\d{9}$/, "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7").max(max, `\u624B\u673A\u53F7\u6700\u591A ${max} \u4F4D`);
375
- var zId = (label = "ID") => z.string({
376
- message: `\u8BF7\u9009\u62E9${label}`
377
- }).uuid(`${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
378
- var zIds = (label = "ID") => z.array(zId(label)).min(1, `\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A${label}`);
379
- var zTexts = (label = "\u5185\u5BB9") => z.array(z.string()).min(1, `\u81F3\u5C11\u9009\u62E9\u4E00\u4E2A${label}`);
380
- var zImageId = (label) => z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`);
381
- var zImageIdRequired = (label) => z.string({
382
- message: `\u8BF7\u81F3\u5C11\u4E0A\u4F20\u4E00\u5F20${label}`
383
- }).uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`);
384
- var zImageIds = (label) => z.array(z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`)).min(1, `\u81F3\u5C11\u4E0A\u4F201\u5F20${label}`);
385
- var zImageIdsOptional = (label) => z.array(z.string().uuid(`${label} ID \u683C\u5F0F\u4E0D\u6B63\u786E`)).optional();
386
- var zEnumRequired = (enumObj, label) => z.enum(enumValues(enumObj), {
387
- message: `\u8BF7\u9009\u62E9${label}`
388
- });
389
- var zEnumNullable = (enumObj, label) => z.enum(enumValues(enumObj), {
390
- message: `\u8BF7\u9009\u62E9${label}`
391
- }).nullable();
392
- var zEnumNullableRequired = (enumObj, label) => z.enum(enumValues(enumObj), {
393
- message: `\u8BF7\u9009\u62E9${label}`
394
- }).nullable().refine((v) => v !== null, {
395
- message: `\u8BF7\u9009\u62E9${label}`
396
- });
397
- var zEnumOptional = (enumObj) => z.enum(enumValues(enumObj)).optional();
398
- var zEnumNullableOptional = (enumObj) => z.enum(enumValues(enumObj)).nullable().optional();
399
- var zBool = () => z.boolean();
400
- var zDate = (label) => z.date({
401
- message: `\u8BF7\u9009\u62E9${label}`
402
- });
403
- var zDateOptional = () => z.date().optional();
404
- var zNumber = (label, min, max) => {
405
- let schema = z.number({
406
- message: `\u8BF7\u8F93\u5165${label}`
407
- });
408
- if (min !== void 0) {
409
- schema = schema.min(min, `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`);
410
- }
411
- if (max !== void 0) {
412
- schema = schema.max(max, `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`);
413
- }
414
- return schema;
415
- };
416
- var zNumberOptional = (label, min, max) => {
417
- let schema = z.number({
418
- message: `\u8BF7\u8F93\u5165${label}`
419
- }).optional();
420
- if (min !== void 0) {
421
- schema = schema.refine((v) => v === void 0 || v >= min, {
422
- message: `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`
423
- });
424
- }
425
- if (max !== void 0) {
426
- schema = schema.refine((v) => v === void 0 || v <= max, {
427
- message: `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`
428
- });
429
- }
430
- return schema;
431
- };
432
- var zCoerceNumber = (label, min, max) => {
433
- let schema = z.coerce.number({
434
- message: `\u8BF7\u8F93\u5165${label}`
435
- });
436
- if (min !== void 0) {
437
- schema = schema.min(min, `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`);
438
- }
439
- if (max !== void 0) {
440
- schema = schema.max(max, `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`);
441
- }
442
- return schema;
443
- };
444
- var zCoerceNumberOptional = (label, min, max) => z.preprocess(emptyToUndefined, zCoerceNumber(label, min, max).optional());
445
- var zDecimal = (label, min, max) => {
446
- let schema = z.string({
447
- message: `\u8BF7\u8F93\u5165${label}`
448
- }).trim().regex(/^\d+(\.\d{1,2})?$/, `${label}\u683C\u5F0F\u4E0D\u6B63\u786E`);
449
- if (min !== void 0) {
450
- schema = schema.refine((v) => Number(v) >= min, {
451
- message: `${label}\u4E0D\u80FD\u5C0F\u4E8E ${min}`
452
- });
453
- }
454
- if (max !== void 0) {
455
- schema = schema.refine((v) => Number(v) <= max, {
456
- message: `${label}\u4E0D\u80FD\u5927\u4E8E ${max}`
457
- });
458
- }
459
- return schema;
460
- };
461
- var zDecimalOptional = (label, min, max) => z.preprocess(emptyToUndefined, zDecimal(label, min, max).optional());
931
+ className: cn(badgeVariants({ variant }), className),
932
+ ...props
933
+ }
934
+ );
935
+ }
462
936
 
463
937
  // src/components/badge/index.tsx
464
- import { jsx as jsx2 } from "react/jsx-runtime";
938
+ import { jsx as jsx8 } from "react/jsx-runtime";
465
939
  var Badge2 = ({
466
940
  semanticColor = EnumSemanticColor.PRIMARY,
467
941
  variant = EnumVariant.SOLID,
@@ -469,7 +943,7 @@ var Badge2 = ({
469
943
  className
470
944
  }) => {
471
945
  const color = getSemanticColor(semanticColor, variant);
472
- return /* @__PURE__ */ jsx2(
946
+ return /* @__PURE__ */ jsx8(
473
947
  Badge,
474
948
  {
475
949
  className: cn2(
@@ -484,64 +958,11 @@ var Badge2 = ({
484
958
  );
485
959
  };
486
960
 
487
- // src/shadcn/components/button.tsx
488
- import { cva as cva2 } from "class-variance-authority";
489
- import { Slot as Slot2 } from "radix-ui";
490
- import { jsx as jsx3 } from "react/jsx-runtime";
491
- var buttonVariants = cva2(
492
- "inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
493
- {
494
- variants: {
495
- variant: {
496
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
497
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
498
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
499
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
500
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
501
- link: "text-primary underline-offset-4 hover:underline"
502
- },
503
- size: {
504
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
505
- xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
506
- sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
507
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
508
- icon: "size-9",
509
- "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
510
- "icon-sm": "size-8",
511
- "icon-lg": "size-10"
512
- }
513
- },
514
- defaultVariants: {
515
- variant: "default",
516
- size: "default"
517
- }
518
- }
519
- );
520
- function Button({
521
- className,
522
- variant = "default",
523
- size = "default",
524
- asChild = false,
525
- ...props
526
- }) {
527
- const Comp = asChild ? Slot2.Root : "button";
528
- return /* @__PURE__ */ jsx3(
529
- Comp,
530
- {
531
- "data-slot": "button",
532
- "data-variant": variant,
533
- "data-size": size,
534
- className: cn(buttonVariants({ variant, size, className })),
535
- ...props
536
- }
537
- );
538
- }
539
-
540
961
  // src/shadcn/components/spinner.tsx
541
962
  import { Loader2Icon } from "lucide-react";
542
- import { jsx as jsx4 } from "react/jsx-runtime";
963
+ import { jsx as jsx9 } from "react/jsx-runtime";
543
964
  function Spinner({ className, ...props }) {
544
- return /* @__PURE__ */ jsx4(
965
+ return /* @__PURE__ */ jsx9(
545
966
  Loader2Icon,
546
967
  {
547
968
  role: "status",
@@ -553,7 +974,7 @@ function Spinner({ className, ...props }) {
553
974
  }
554
975
 
555
976
  // src/components/button/index.tsx
556
- import { jsx as jsx5, jsxs } from "react/jsx-runtime";
977
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
557
978
  var Button2 = ({
558
979
  semanticColor = EnumSemanticColor.PRIMARY,
559
980
  variant = EnumVariant.SOLID,
@@ -566,7 +987,7 @@ var Button2 = ({
566
987
  loading
567
988
  }) => {
568
989
  const color = getSemanticColor(semanticColor, variant);
569
- return /* @__PURE__ */ jsxs(
990
+ return /* @__PURE__ */ jsxs3(
570
991
  Button,
571
992
  {
572
993
  type,
@@ -586,7 +1007,7 @@ var Button2 = ({
586
1007
  className
587
1008
  ),
588
1009
  children: [
589
- loading && /* @__PURE__ */ jsx5(Spinner, { "data-icon": "inline-start" }),
1010
+ loading && /* @__PURE__ */ jsx10(Spinner, { "data-icon": "inline-start" }),
590
1011
  children
591
1012
  ]
592
1013
  }
@@ -596,12 +1017,12 @@ var Button2 = ({
596
1017
  // src/shadcn/components/checkbox.tsx
597
1018
  import { CheckIcon } from "lucide-react";
598
1019
  import { Checkbox as CheckboxPrimitive } from "radix-ui";
599
- import { jsx as jsx6 } from "react/jsx-runtime";
1020
+ import { jsx as jsx11 } from "react/jsx-runtime";
600
1021
  function Checkbox({
601
1022
  className,
602
1023
  ...props
603
1024
  }) {
604
- return /* @__PURE__ */ jsx6(
1025
+ return /* @__PURE__ */ jsx11(
605
1026
  CheckboxPrimitive.Root,
606
1027
  {
607
1028
  "data-slot": "checkbox",
@@ -610,12 +1031,12 @@ function Checkbox({
610
1031
  className
611
1032
  ),
612
1033
  ...props,
613
- children: /* @__PURE__ */ jsx6(
1034
+ children: /* @__PURE__ */ jsx11(
614
1035
  CheckboxPrimitive.Indicator,
615
1036
  {
616
1037
  "data-slot": "checkbox-indicator",
617
1038
  className: "grid place-content-center text-current transition-none",
618
- children: /* @__PURE__ */ jsx6(CheckIcon, { className: "size-3.5" })
1039
+ children: /* @__PURE__ */ jsx11(CheckIcon, { className: "size-3.5" })
619
1040
  }
620
1041
  )
621
1042
  }
@@ -623,10 +1044,10 @@ function Checkbox({
623
1044
  }
624
1045
 
625
1046
  // src/components/checkbox-list/single/index.tsx
626
- import { jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
1047
+ import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
627
1048
  var CheckboxSingleList = (props) => {
628
- return /* @__PURE__ */ jsx7("div", { className: "flex gap-4", children: props.options.map((opt) => /* @__PURE__ */ jsxs2("label", { className: "flex items-center gap-2", children: [
629
- /* @__PURE__ */ jsx7(
1049
+ return /* @__PURE__ */ jsx12("div", { className: "flex gap-4", children: props.options.map((opt) => /* @__PURE__ */ jsxs4("label", { className: "flex items-center gap-2", children: [
1050
+ /* @__PURE__ */ jsx12(
630
1051
  Checkbox,
631
1052
  {
632
1053
  checked: props.value === opt.value,
@@ -639,7 +1060,7 @@ var CheckboxSingleList = (props) => {
639
1060
  }
640
1061
  }
641
1062
  ),
642
- /* @__PURE__ */ jsx7("span", { children: opt.label })
1063
+ /* @__PURE__ */ jsx12("span", { children: opt.label })
643
1064
  ] }, opt.value)) });
644
1065
  };
645
1066
 
@@ -665,10 +1086,10 @@ import {
665
1086
  import { FolderOpen } from "lucide-react";
666
1087
 
667
1088
  // src/shadcn/components/empty.tsx
668
- import { cva as cva3 } from "class-variance-authority";
669
- import { jsx as jsx8 } from "react/jsx-runtime";
1089
+ import { cva as cva4 } from "class-variance-authority";
1090
+ import { jsx as jsx13 } from "react/jsx-runtime";
670
1091
  function Empty({ className, ...props }) {
671
- return /* @__PURE__ */ jsx8(
1092
+ return /* @__PURE__ */ jsx13(
672
1093
  "div",
673
1094
  {
674
1095
  "data-slot": "empty",
@@ -681,7 +1102,7 @@ function Empty({ className, ...props }) {
681
1102
  );
682
1103
  }
683
1104
  function EmptyHeader({ className, ...props }) {
684
- return /* @__PURE__ */ jsx8(
1105
+ return /* @__PURE__ */ jsx13(
685
1106
  "div",
686
1107
  {
687
1108
  "data-slot": "empty-header",
@@ -693,7 +1114,7 @@ function EmptyHeader({ className, ...props }) {
693
1114
  }
694
1115
  );
695
1116
  }
696
- var emptyMediaVariants = cva3(
1117
+ var emptyMediaVariants = cva4(
697
1118
  "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
698
1119
  {
699
1120
  variants: {
@@ -712,7 +1133,7 @@ function EmptyMedia({
712
1133
  variant = "default",
713
1134
  ...props
714
1135
  }) {
715
- return /* @__PURE__ */ jsx8(
1136
+ return /* @__PURE__ */ jsx13(
716
1137
  "div",
717
1138
  {
718
1139
  "data-slot": "empty-icon",
@@ -723,7 +1144,7 @@ function EmptyMedia({
723
1144
  );
724
1145
  }
725
1146
  function EmptyDescription({ className, ...props }) {
726
- return /* @__PURE__ */ jsx8(
1147
+ return /* @__PURE__ */ jsx13(
727
1148
  "div",
728
1149
  {
729
1150
  "data-slot": "empty-description",
@@ -737,11 +1158,11 @@ function EmptyDescription({ className, ...props }) {
737
1158
  }
738
1159
 
739
1160
  // src/components/data-table/component/table-empty/index.tsx
740
- import { jsx as jsx9, jsxs as jsxs3 } from "react/jsx-runtime";
1161
+ import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
741
1162
  var TableEmpty = () => {
742
- return /* @__PURE__ */ jsx9(Empty, { children: /* @__PURE__ */ jsxs3(EmptyHeader, { children: [
743
- /* @__PURE__ */ jsx9(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx9(FolderOpen, {}) }),
744
- /* @__PURE__ */ jsx9(EmptyDescription, { children: "\u5C1A\u672A\u521B\u5EFA\u4EFB\u4F55\u5185\u5BB9" })
1163
+ return /* @__PURE__ */ jsx14(Empty, { children: /* @__PURE__ */ jsxs5(EmptyHeader, { children: [
1164
+ /* @__PURE__ */ jsx14(EmptyMedia, { variant: "icon", children: /* @__PURE__ */ jsx14(FolderOpen, {}) }),
1165
+ /* @__PURE__ */ jsx14(EmptyDescription, { children: "\u5C1A\u672A\u521B\u5EFA\u4EFB\u4F55\u5185\u5BB9" })
745
1166
  ] }) });
746
1167
  };
747
1168
  var table_empty_default = TableEmpty;
@@ -755,9 +1176,9 @@ import {
755
1176
  ChevronRightIcon,
756
1177
  MoreHorizontalIcon
757
1178
  } from "lucide-react";
758
- import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
1179
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
759
1180
  function Pagination({ className, ...props }) {
760
- return /* @__PURE__ */ jsx10(
1181
+ return /* @__PURE__ */ jsx15(
761
1182
  "nav",
762
1183
  {
763
1184
  role: "navigation",
@@ -772,7 +1193,7 @@ function PaginationContent({
772
1193
  className,
773
1194
  ...props
774
1195
  }) {
775
- return /* @__PURE__ */ jsx10(
1196
+ return /* @__PURE__ */ jsx15(
776
1197
  "ul",
777
1198
  {
778
1199
  "data-slot": "pagination-content",
@@ -782,7 +1203,7 @@ function PaginationContent({
782
1203
  );
783
1204
  }
784
1205
  function PaginationItem({ ...props }) {
785
- return /* @__PURE__ */ jsx10("li", { "data-slot": "pagination-item", ...props });
1206
+ return /* @__PURE__ */ jsx15("li", { "data-slot": "pagination-item", ...props });
786
1207
  }
787
1208
  function PaginationLink({
788
1209
  className,
@@ -790,7 +1211,7 @@ function PaginationLink({
790
1211
  size = "icon",
791
1212
  ...props
792
1213
  }) {
793
- return /* @__PURE__ */ jsx10(
1214
+ return /* @__PURE__ */ jsx15(
794
1215
  "a",
795
1216
  {
796
1217
  "aria-current": isActive ? "page" : void 0,
@@ -811,7 +1232,7 @@ function PaginationPrevious({
811
1232
  className,
812
1233
  ...props
813
1234
  }) {
814
- return /* @__PURE__ */ jsxs4(
1235
+ return /* @__PURE__ */ jsxs6(
815
1236
  PaginationLink,
816
1237
  {
817
1238
  "aria-label": "Go to previous page",
@@ -819,8 +1240,8 @@ function PaginationPrevious({
819
1240
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
820
1241
  ...props,
821
1242
  children: [
822
- /* @__PURE__ */ jsx10(ChevronLeftIcon, {}),
823
- /* @__PURE__ */ jsx10("span", { className: "hidden sm:block", children: "Previous" })
1243
+ /* @__PURE__ */ jsx15(ChevronLeftIcon, {}),
1244
+ /* @__PURE__ */ jsx15("span", { className: "hidden sm:block", children: "Previous" })
824
1245
  ]
825
1246
  }
826
1247
  );
@@ -829,7 +1250,7 @@ function PaginationNext({
829
1250
  className,
830
1251
  ...props
831
1252
  }) {
832
- return /* @__PURE__ */ jsxs4(
1253
+ return /* @__PURE__ */ jsxs6(
833
1254
  PaginationLink,
834
1255
  {
835
1256
  "aria-label": "Go to next page",
@@ -837,8 +1258,8 @@ function PaginationNext({
837
1258
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
838
1259
  ...props,
839
1260
  children: [
840
- /* @__PURE__ */ jsx10("span", { className: "hidden sm:block", children: "Next" }),
841
- /* @__PURE__ */ jsx10(ChevronRightIcon, {})
1261
+ /* @__PURE__ */ jsx15("span", { className: "hidden sm:block", children: "Next" }),
1262
+ /* @__PURE__ */ jsx15(ChevronRightIcon, {})
842
1263
  ]
843
1264
  }
844
1265
  );
@@ -847,7 +1268,7 @@ function PaginationEllipsis({
847
1268
  className,
848
1269
  ...props
849
1270
  }) {
850
- return /* @__PURE__ */ jsxs4(
1271
+ return /* @__PURE__ */ jsxs6(
851
1272
  "span",
852
1273
  {
853
1274
  "aria-hidden": true,
@@ -855,8 +1276,8 @@ function PaginationEllipsis({
855
1276
  className: cn("flex size-9 items-center justify-center", className),
856
1277
  ...props,
857
1278
  children: [
858
- /* @__PURE__ */ jsx10(MoreHorizontalIcon, { className: "size-4" }),
859
- /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "More pages" })
1279
+ /* @__PURE__ */ jsx15(MoreHorizontalIcon, { className: "size-4" }),
1280
+ /* @__PURE__ */ jsx15("span", { className: "sr-only", children: "More pages" })
860
1281
  ]
861
1282
  }
862
1283
  );
@@ -865,21 +1286,21 @@ function PaginationEllipsis({
865
1286
  // src/shadcn/components/select.tsx
866
1287
  import { CheckIcon as CheckIcon2, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
867
1288
  import { Select as SelectPrimitive } from "radix-ui";
868
- import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
1289
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
869
1290
  function Select({
870
1291
  ...props
871
1292
  }) {
872
- return /* @__PURE__ */ jsx11(SelectPrimitive.Root, { "data-slot": "select", ...props });
1293
+ return /* @__PURE__ */ jsx16(SelectPrimitive.Root, { "data-slot": "select", ...props });
873
1294
  }
874
1295
  function SelectGroup({
875
1296
  ...props
876
1297
  }) {
877
- return /* @__PURE__ */ jsx11(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
1298
+ return /* @__PURE__ */ jsx16(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
878
1299
  }
879
1300
  function SelectValue({
880
1301
  ...props
881
1302
  }) {
882
- return /* @__PURE__ */ jsx11(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
1303
+ return /* @__PURE__ */ jsx16(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
883
1304
  }
884
1305
  function SelectTrigger({
885
1306
  className,
@@ -887,7 +1308,7 @@ function SelectTrigger({
887
1308
  children,
888
1309
  ...props
889
1310
  }) {
890
- return /* @__PURE__ */ jsxs5(
1311
+ return /* @__PURE__ */ jsxs7(
891
1312
  SelectPrimitive.Trigger,
892
1313
  {
893
1314
  "data-slot": "select-trigger",
@@ -899,7 +1320,7 @@ function SelectTrigger({
899
1320
  ...props,
900
1321
  children: [
901
1322
  children,
902
- /* @__PURE__ */ jsx11(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx11(ChevronDownIcon, { className: "size-4 opacity-50" }) })
1323
+ /* @__PURE__ */ jsx16(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx16(ChevronDownIcon, { className: "size-4 opacity-50" }) })
903
1324
  ]
904
1325
  }
905
1326
  );
@@ -911,7 +1332,7 @@ function SelectContent({
911
1332
  align = "center",
912
1333
  ...props
913
1334
  }) {
914
- return /* @__PURE__ */ jsx11(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs5(
1335
+ return /* @__PURE__ */ jsx16(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs7(
915
1336
  SelectPrimitive.Content,
916
1337
  {
917
1338
  "data-slot": "select-content",
@@ -924,8 +1345,8 @@ function SelectContent({
924
1345
  align,
925
1346
  ...props,
926
1347
  children: [
927
- /* @__PURE__ */ jsx11(SelectScrollUpButton, {}),
928
- /* @__PURE__ */ jsx11(
1348
+ /* @__PURE__ */ jsx16(SelectScrollUpButton, {}),
1349
+ /* @__PURE__ */ jsx16(
929
1350
  SelectPrimitive.Viewport,
930
1351
  {
931
1352
  className: cn(
@@ -935,7 +1356,7 @@ function SelectContent({
935
1356
  children
936
1357
  }
937
1358
  ),
938
- /* @__PURE__ */ jsx11(SelectScrollDownButton, {})
1359
+ /* @__PURE__ */ jsx16(SelectScrollDownButton, {})
939
1360
  ]
940
1361
  }
941
1362
  ) });
@@ -945,7 +1366,7 @@ function SelectItem({
945
1366
  children,
946
1367
  ...props
947
1368
  }) {
948
- return /* @__PURE__ */ jsxs5(
1369
+ return /* @__PURE__ */ jsxs7(
949
1370
  SelectPrimitive.Item,
950
1371
  {
951
1372
  "data-slot": "select-item",
@@ -955,15 +1376,15 @@ function SelectItem({
955
1376
  ),
956
1377
  ...props,
957
1378
  children: [
958
- /* @__PURE__ */ jsx11(
1379
+ /* @__PURE__ */ jsx16(
959
1380
  "span",
960
1381
  {
961
1382
  "data-slot": "select-item-indicator",
962
1383
  className: "absolute right-2 flex size-3.5 items-center justify-center",
963
- children: /* @__PURE__ */ jsx11(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(CheckIcon2, { className: "size-4" }) })
1384
+ children: /* @__PURE__ */ jsx16(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(CheckIcon2, { className: "size-4" }) })
964
1385
  }
965
1386
  ),
966
- /* @__PURE__ */ jsx11(SelectPrimitive.ItemText, { children })
1387
+ /* @__PURE__ */ jsx16(SelectPrimitive.ItemText, { children })
967
1388
  ]
968
1389
  }
969
1390
  );
@@ -972,7 +1393,7 @@ function SelectScrollUpButton({
972
1393
  className,
973
1394
  ...props
974
1395
  }) {
975
- return /* @__PURE__ */ jsx11(
1396
+ return /* @__PURE__ */ jsx16(
976
1397
  SelectPrimitive.ScrollUpButton,
977
1398
  {
978
1399
  "data-slot": "select-scroll-up-button",
@@ -981,7 +1402,7 @@ function SelectScrollUpButton({
981
1402
  className
982
1403
  ),
983
1404
  ...props,
984
- children: /* @__PURE__ */ jsx11(ChevronUpIcon, { className: "size-4" })
1405
+ children: /* @__PURE__ */ jsx16(ChevronUpIcon, { className: "size-4" })
985
1406
  }
986
1407
  );
987
1408
  }
@@ -989,7 +1410,7 @@ function SelectScrollDownButton({
989
1410
  className,
990
1411
  ...props
991
1412
  }) {
992
- return /* @__PURE__ */ jsx11(
1413
+ return /* @__PURE__ */ jsx16(
993
1414
  SelectPrimitive.ScrollDownButton,
994
1415
  {
995
1416
  "data-slot": "select-scroll-down-button",
@@ -998,13 +1419,13 @@ function SelectScrollDownButton({
998
1419
  className
999
1420
  ),
1000
1421
  ...props,
1001
- children: /* @__PURE__ */ jsx11(ChevronDownIcon, { className: "size-4" })
1422
+ children: /* @__PURE__ */ jsx16(ChevronDownIcon, { className: "size-4" })
1002
1423
  }
1003
1424
  );
1004
1425
  }
1005
1426
 
1006
1427
  // src/components/data-table/component/table-pagination/index.tsx
1007
- import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
1428
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1008
1429
  var buildPages = (current, total) => {
1009
1430
  if (total <= 0) return [];
1010
1431
  if (total <= 7) {
@@ -1046,9 +1467,9 @@ var TablePagination = (props) => {
1046
1467
  () => buildPages(props.currentPage, props.totalPage),
1047
1468
  [props]
1048
1469
  );
1049
- return /* @__PURE__ */ jsxs6("div", { className: "flex w-full items-center gap-8 lg:w-fit", children: [
1050
- /* @__PURE__ */ jsx12("div", { className: "ml-auto flex items-center gap-2 lg:ml-0", children: /* @__PURE__ */ jsx12(Pagination, { children: /* @__PURE__ */ jsxs6(PaginationContent, { children: [
1051
- /* @__PURE__ */ jsx12(PaginationItem, { children: /* @__PURE__ */ jsx12(
1470
+ return /* @__PURE__ */ jsxs8("div", { className: "flex w-full items-center gap-8 lg:w-fit", children: [
1471
+ /* @__PURE__ */ jsx17("div", { className: "ml-auto flex items-center gap-2 lg:ml-0", children: /* @__PURE__ */ jsx17(Pagination, { children: /* @__PURE__ */ jsxs8(PaginationContent, { children: [
1472
+ /* @__PURE__ */ jsx17(PaginationItem, { children: /* @__PURE__ */ jsx17(
1052
1473
  PaginationPrevious,
1053
1474
  {
1054
1475
  onClick: () => updateCurrentPage(props.currentPage - 1),
@@ -1058,9 +1479,9 @@ var TablePagination = (props) => {
1058
1479
  ) }),
1059
1480
  pageItems.map((item) => {
1060
1481
  if (item.type === "ellipsis") {
1061
- return /* @__PURE__ */ jsx12(PaginationItem, { children: /* @__PURE__ */ jsx12(PaginationEllipsis, {}) }, item.key);
1482
+ return /* @__PURE__ */ jsx17(PaginationItem, { children: /* @__PURE__ */ jsx17(PaginationEllipsis, {}) }, item.key);
1062
1483
  }
1063
- return /* @__PURE__ */ jsx12(PaginationItem, { children: /* @__PURE__ */ jsx12(
1484
+ return /* @__PURE__ */ jsx17(PaginationItem, { children: /* @__PURE__ */ jsx17(
1064
1485
  PaginationLink,
1065
1486
  {
1066
1487
  isActive: props.currentPage === item.page,
@@ -1069,7 +1490,7 @@ var TablePagination = (props) => {
1069
1490
  }
1070
1491
  ) }, item.page);
1071
1492
  }),
1072
- /* @__PURE__ */ jsx12(PaginationItem, { children: /* @__PURE__ */ jsx12(
1493
+ /* @__PURE__ */ jsx17(PaginationItem, { children: /* @__PURE__ */ jsx17(
1073
1494
  PaginationNext,
1074
1495
  {
1075
1496
  onClick: () => updateCurrentPage(props.currentPage + 1),
@@ -1078,7 +1499,7 @@ var TablePagination = (props) => {
1078
1499
  }
1079
1500
  ) })
1080
1501
  ] }) }) }),
1081
- /* @__PURE__ */ jsx12("div", { className: "hidden items-center gap-2 lg:flex", children: /* @__PURE__ */ jsxs6(
1502
+ /* @__PURE__ */ jsx17("div", { className: "hidden items-center gap-2 lg:flex", children: /* @__PURE__ */ jsxs8(
1082
1503
  Select,
1083
1504
  {
1084
1505
  value: String(props.size),
@@ -1086,8 +1507,8 @@ var TablePagination = (props) => {
1086
1507
  props.onUpdateSize(Number(value));
1087
1508
  },
1088
1509
  children: [
1089
- /* @__PURE__ */ jsx12(SelectTrigger, { className: "w-20", id: "rows-per-page", children: /* @__PURE__ */ jsx12(SelectValue, {}) }),
1090
- /* @__PURE__ */ jsx12(SelectContent, { side: "top", children: props.sizeList.map((pageSize) => /* @__PURE__ */ jsxs6(SelectItem, { value: `${pageSize}`, children: [
1510
+ /* @__PURE__ */ jsx17(SelectTrigger, { className: "w-20", id: "rows-per-page", children: /* @__PURE__ */ jsx17(SelectValue, {}) }),
1511
+ /* @__PURE__ */ jsx17(SelectContent, { side: "top", children: props.sizeList.map((pageSize) => /* @__PURE__ */ jsxs8(SelectItem, { value: `${pageSize}`, children: [
1091
1512
  pageSize,
1092
1513
  "/\u9875"
1093
1514
  ] }, pageSize)) })
@@ -1100,21 +1521,21 @@ var TablePagination = (props) => {
1100
1521
  // src/shadcn/components/dropdown-menu.tsx
1101
1522
  import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon2, CircleIcon } from "lucide-react";
1102
1523
  import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
1103
- import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
1524
+ import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
1104
1525
  function DropdownMenu({
1105
1526
  ...props
1106
1527
  }) {
1107
- return /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1528
+ return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1108
1529
  }
1109
1530
  function DropdownMenuPortal({
1110
1531
  ...props
1111
1532
  }) {
1112
- return /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1533
+ return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1113
1534
  }
1114
1535
  function DropdownMenuTrigger({
1115
1536
  ...props
1116
1537
  }) {
1117
- return /* @__PURE__ */ jsx13(
1538
+ return /* @__PURE__ */ jsx18(
1118
1539
  DropdownMenuPrimitive.Trigger,
1119
1540
  {
1120
1541
  "data-slot": "dropdown-menu-trigger",
@@ -1127,7 +1548,7 @@ function DropdownMenuContent({
1127
1548
  sideOffset = 4,
1128
1549
  ...props
1129
1550
  }) {
1130
- return /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx13(
1551
+ return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
1131
1552
  DropdownMenuPrimitive.Content,
1132
1553
  {
1133
1554
  "data-slot": "dropdown-menu-content",
@@ -1146,7 +1567,7 @@ function DropdownMenuItem({
1146
1567
  variant = "default",
1147
1568
  ...props
1148
1569
  }) {
1149
- return /* @__PURE__ */ jsx13(
1570
+ return /* @__PURE__ */ jsx18(
1150
1571
  DropdownMenuPrimitive.Item,
1151
1572
  {
1152
1573
  "data-slot": "dropdown-menu-item",
@@ -1166,7 +1587,7 @@ function DropdownMenuCheckboxItem({
1166
1587
  checked,
1167
1588
  ...props
1168
1589
  }) {
1169
- return /* @__PURE__ */ jsxs7(
1590
+ return /* @__PURE__ */ jsxs9(
1170
1591
  DropdownMenuPrimitive.CheckboxItem,
1171
1592
  {
1172
1593
  "data-slot": "dropdown-menu-checkbox-item",
@@ -1177,7 +1598,7 @@ function DropdownMenuCheckboxItem({
1177
1598
  checked,
1178
1599
  ...props,
1179
1600
  children: [
1180
- /* @__PURE__ */ jsx13("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(CheckIcon3, { className: "size-4" }) }) }),
1601
+ /* @__PURE__ */ jsx18("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(CheckIcon3, { className: "size-4" }) }) }),
1181
1602
  children
1182
1603
  ]
1183
1604
  }
@@ -1186,7 +1607,7 @@ function DropdownMenuCheckboxItem({
1186
1607
  function DropdownMenuSub({
1187
1608
  ...props
1188
1609
  }) {
1189
- return /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1610
+ return /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1190
1611
  }
1191
1612
  function DropdownMenuSubTrigger({
1192
1613
  className,
@@ -1194,7 +1615,7 @@ function DropdownMenuSubTrigger({
1194
1615
  children,
1195
1616
  ...props
1196
1617
  }) {
1197
- return /* @__PURE__ */ jsxs7(
1618
+ return /* @__PURE__ */ jsxs9(
1198
1619
  DropdownMenuPrimitive.SubTrigger,
1199
1620
  {
1200
1621
  "data-slot": "dropdown-menu-sub-trigger",
@@ -1206,7 +1627,7 @@ function DropdownMenuSubTrigger({
1206
1627
  ...props,
1207
1628
  children: [
1208
1629
  children,
1209
- /* @__PURE__ */ jsx13(ChevronRightIcon2, { className: "ml-auto size-4" })
1630
+ /* @__PURE__ */ jsx18(ChevronRightIcon2, { className: "ml-auto size-4" })
1210
1631
  ]
1211
1632
  }
1212
1633
  );
@@ -1215,7 +1636,7 @@ function DropdownMenuSubContent({
1215
1636
  className,
1216
1637
  ...props
1217
1638
  }) {
1218
- return /* @__PURE__ */ jsx13(
1639
+ return /* @__PURE__ */ jsx18(
1219
1640
  DropdownMenuPrimitive.SubContent,
1220
1641
  {
1221
1642
  "data-slot": "dropdown-menu-sub-content",
@@ -1229,22 +1650,22 @@ function DropdownMenuSubContent({
1229
1650
  }
1230
1651
 
1231
1652
  // src/shadcn/components/sheet.tsx
1232
- import { XIcon } from "lucide-react";
1653
+ import { XIcon as XIcon2 } from "lucide-react";
1233
1654
  import { Dialog as SheetPrimitive } from "radix-ui";
1234
- import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
1655
+ import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1235
1656
  function Sheet({ ...props }) {
1236
- return /* @__PURE__ */ jsx14(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
1657
+ return /* @__PURE__ */ jsx19(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
1237
1658
  }
1238
1659
  function SheetPortal({
1239
1660
  ...props
1240
1661
  }) {
1241
- return /* @__PURE__ */ jsx14(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
1662
+ return /* @__PURE__ */ jsx19(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
1242
1663
  }
1243
1664
  function SheetOverlay({
1244
1665
  className,
1245
1666
  ...props
1246
1667
  }) {
1247
- return /* @__PURE__ */ jsx14(
1668
+ return /* @__PURE__ */ jsx19(
1248
1669
  SheetPrimitive.Overlay,
1249
1670
  {
1250
1671
  "data-slot": "sheet-overlay",
@@ -1263,9 +1684,9 @@ function SheetContent({
1263
1684
  showCloseButton = true,
1264
1685
  ...props
1265
1686
  }) {
1266
- return /* @__PURE__ */ jsxs8(SheetPortal, { children: [
1267
- /* @__PURE__ */ jsx14(SheetOverlay, {}),
1268
- /* @__PURE__ */ jsxs8(
1687
+ return /* @__PURE__ */ jsxs10(SheetPortal, { children: [
1688
+ /* @__PURE__ */ jsx19(SheetOverlay, {}),
1689
+ /* @__PURE__ */ jsxs10(
1269
1690
  SheetPrimitive.Content,
1270
1691
  {
1271
1692
  "data-slot": "sheet-content",
@@ -1280,9 +1701,9 @@ function SheetContent({
1280
1701
  ...props,
1281
1702
  children: [
1282
1703
  children,
1283
- showCloseButton && /* @__PURE__ */ jsxs8(SheetPrimitive.Close, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
1284
- /* @__PURE__ */ jsx14(XIcon, { className: "size-4" }),
1285
- /* @__PURE__ */ jsx14("span", { className: "sr-only", children: "Close" })
1704
+ showCloseButton && /* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
1705
+ /* @__PURE__ */ jsx19(XIcon2, { className: "size-4" }),
1706
+ /* @__PURE__ */ jsx19("span", { className: "sr-only", children: "Close" })
1286
1707
  ] })
1287
1708
  ]
1288
1709
  }
@@ -1290,7 +1711,7 @@ function SheetContent({
1290
1711
  ] });
1291
1712
  }
1292
1713
  function SheetHeader({ className, ...props }) {
1293
- return /* @__PURE__ */ jsx14(
1714
+ return /* @__PURE__ */ jsx19(
1294
1715
  "div",
1295
1716
  {
1296
1717
  "data-slot": "sheet-header",
@@ -1300,7 +1721,7 @@ function SheetHeader({ className, ...props }) {
1300
1721
  );
1301
1722
  }
1302
1723
  function SheetFooter({ className, ...props }) {
1303
- return /* @__PURE__ */ jsx14(
1724
+ return /* @__PURE__ */ jsx19(
1304
1725
  "div",
1305
1726
  {
1306
1727
  "data-slot": "sheet-footer",
@@ -1313,7 +1734,7 @@ function SheetTitle({
1313
1734
  className,
1314
1735
  ...props
1315
1736
  }) {
1316
- return /* @__PURE__ */ jsx14(
1737
+ return /* @__PURE__ */ jsx19(
1317
1738
  SheetPrimitive.Title,
1318
1739
  {
1319
1740
  "data-slot": "sheet-title",
@@ -1324,14 +1745,14 @@ function SheetTitle({
1324
1745
  }
1325
1746
 
1326
1747
  // src/shadcn/components/table.tsx
1327
- import { jsx as jsx15 } from "react/jsx-runtime";
1748
+ import { jsx as jsx20 } from "react/jsx-runtime";
1328
1749
  function Table({ className, ...props }) {
1329
- return /* @__PURE__ */ jsx15(
1750
+ return /* @__PURE__ */ jsx20(
1330
1751
  "div",
1331
1752
  {
1332
1753
  "data-slot": "table-container",
1333
1754
  className: "relative w-full overflow-x-auto",
1334
- children: /* @__PURE__ */ jsx15(
1755
+ children: /* @__PURE__ */ jsx20(
1335
1756
  "table",
1336
1757
  {
1337
1758
  "data-slot": "table",
@@ -1343,7 +1764,7 @@ function Table({ className, ...props }) {
1343
1764
  );
1344
1765
  }
1345
1766
  function TableHeader({ className, ...props }) {
1346
- return /* @__PURE__ */ jsx15(
1767
+ return /* @__PURE__ */ jsx20(
1347
1768
  "thead",
1348
1769
  {
1349
1770
  "data-slot": "table-header",
@@ -1353,7 +1774,7 @@ function TableHeader({ className, ...props }) {
1353
1774
  );
1354
1775
  }
1355
1776
  function TableBody({ className, ...props }) {
1356
- return /* @__PURE__ */ jsx15(
1777
+ return /* @__PURE__ */ jsx20(
1357
1778
  "tbody",
1358
1779
  {
1359
1780
  "data-slot": "table-body",
@@ -1363,7 +1784,7 @@ function TableBody({ className, ...props }) {
1363
1784
  );
1364
1785
  }
1365
1786
  function TableRow({ className, ...props }) {
1366
- return /* @__PURE__ */ jsx15(
1787
+ return /* @__PURE__ */ jsx20(
1367
1788
  "tr",
1368
1789
  {
1369
1790
  "data-slot": "table-row",
@@ -1376,7 +1797,7 @@ function TableRow({ className, ...props }) {
1376
1797
  );
1377
1798
  }
1378
1799
  function TableHead({ className, ...props }) {
1379
- return /* @__PURE__ */ jsx15(
1800
+ return /* @__PURE__ */ jsx20(
1380
1801
  "th",
1381
1802
  {
1382
1803
  "data-slot": "table-head",
@@ -1389,7 +1810,7 @@ function TableHead({ className, ...props }) {
1389
1810
  );
1390
1811
  }
1391
1812
  function TableCell({ className, ...props }) {
1392
- return /* @__PURE__ */ jsx15(
1813
+ return /* @__PURE__ */ jsx20(
1393
1814
  "td",
1394
1815
  {
1395
1816
  "data-slot": "table-cell",
@@ -1402,165 +1823,25 @@ function TableCell({ className, ...props }) {
1402
1823
  );
1403
1824
  }
1404
1825
 
1405
- // src/shadcn/components/input.tsx
1406
- import { jsx as jsx16 } from "react/jsx-runtime";
1407
- function Input({ className, type, ...props }) {
1408
- return /* @__PURE__ */ jsx16(
1409
- "input",
1410
- {
1411
- type,
1412
- "data-slot": "input",
1413
- className: cn(
1414
- "h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30",
1415
- "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
1416
- "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
1417
- className
1418
- ),
1419
- ...props
1420
- }
1421
- );
1422
- }
1423
-
1424
1826
  // src/components/data-table/component/keyword-search-bar/index.tsx
1425
- import { Fragment, jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1426
-
1427
- // src/shadcn/components/dialog.tsx
1428
- import { XIcon as XIcon2 } from "lucide-react";
1429
- import { Dialog as DialogPrimitive } from "radix-ui";
1430
- import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1431
- function Dialog({
1432
- ...props
1433
- }) {
1434
- return /* @__PURE__ */ jsx18(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
1435
- }
1436
- function DialogTrigger({
1437
- ...props
1438
- }) {
1439
- return /* @__PURE__ */ jsx18(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
1440
- }
1441
- function DialogPortal({
1442
- ...props
1443
- }) {
1444
- return /* @__PURE__ */ jsx18(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
1445
- }
1446
- function DialogClose({
1447
- ...props
1448
- }) {
1449
- return /* @__PURE__ */ jsx18(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
1450
- }
1451
- function DialogOverlay({
1452
- className,
1453
- ...props
1454
- }) {
1455
- return /* @__PURE__ */ jsx18(
1456
- DialogPrimitive.Overlay,
1457
- {
1458
- "data-slot": "dialog-overlay",
1459
- className: cn(
1460
- "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
1461
- className
1462
- ),
1463
- ...props
1464
- }
1465
- );
1466
- }
1467
- function DialogContent({
1468
- className,
1469
- children,
1470
- showCloseButton = true,
1471
- ...props
1472
- }) {
1473
- return /* @__PURE__ */ jsxs10(DialogPortal, { "data-slot": "dialog-portal", children: [
1474
- /* @__PURE__ */ jsx18(DialogOverlay, {}),
1475
- /* @__PURE__ */ jsxs10(
1476
- DialogPrimitive.Content,
1477
- {
1478
- "data-slot": "dialog-content",
1479
- className: cn(
1480
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg",
1481
- className
1482
- ),
1483
- ...props,
1484
- children: [
1485
- children,
1486
- showCloseButton && /* @__PURE__ */ jsxs10(
1487
- DialogPrimitive.Close,
1488
- {
1489
- "data-slot": "dialog-close",
1490
- className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1491
- children: [
1492
- /* @__PURE__ */ jsx18(XIcon2, {}),
1493
- /* @__PURE__ */ jsx18("span", { className: "sr-only", children: "Close" })
1494
- ]
1495
- }
1496
- )
1497
- ]
1498
- }
1499
- )
1500
- ] });
1501
- }
1502
- function DialogHeader({ className, ...props }) {
1503
- return /* @__PURE__ */ jsx18(
1504
- "div",
1505
- {
1506
- "data-slot": "dialog-header",
1507
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
1508
- ...props
1509
- }
1510
- );
1511
- }
1512
- function DialogFooter({
1513
- className,
1514
- showCloseButton = false,
1515
- children,
1516
- ...props
1517
- }) {
1518
- return /* @__PURE__ */ jsxs10(
1519
- "div",
1520
- {
1521
- "data-slot": "dialog-footer",
1522
- className: cn(
1523
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
1524
- className
1525
- ),
1526
- ...props,
1527
- children: [
1528
- children,
1529
- showCloseButton && /* @__PURE__ */ jsx18(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx18(Button, { variant: "outline", children: "Close" }) })
1530
- ]
1531
- }
1532
- );
1533
- }
1534
- function DialogTitle({
1535
- className,
1536
- ...props
1537
- }) {
1538
- return /* @__PURE__ */ jsx18(
1539
- DialogPrimitive.Title,
1540
- {
1541
- "data-slot": "dialog-title",
1542
- className: cn("text-lg leading-none font-semibold", className),
1543
- ...props
1544
- }
1545
- );
1546
- }
1827
+ import { Fragment, jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1547
1828
 
1548
1829
  // src/shadcn/components/scroll-area.tsx
1549
1830
  import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
1550
- import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
1831
+ import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
1551
1832
  function ScrollArea({
1552
1833
  className,
1553
1834
  children,
1554
1835
  ...props
1555
1836
  }) {
1556
- return /* @__PURE__ */ jsxs11(
1837
+ return /* @__PURE__ */ jsxs12(
1557
1838
  ScrollAreaPrimitive.Root,
1558
1839
  {
1559
1840
  "data-slot": "scroll-area",
1560
1841
  className: cn("relative", className),
1561
1842
  ...props,
1562
1843
  children: [
1563
- /* @__PURE__ */ jsx19(
1844
+ /* @__PURE__ */ jsx22(
1564
1845
  ScrollAreaPrimitive.Viewport,
1565
1846
  {
1566
1847
  "data-slot": "scroll-area-viewport",
@@ -1568,8 +1849,8 @@ function ScrollArea({
1568
1849
  children
1569
1850
  }
1570
1851
  ),
1571
- /* @__PURE__ */ jsx19(ScrollBar, {}),
1572
- /* @__PURE__ */ jsx19(ScrollAreaPrimitive.Corner, {})
1852
+ /* @__PURE__ */ jsx22(ScrollBar, {}),
1853
+ /* @__PURE__ */ jsx22(ScrollAreaPrimitive.Corner, {})
1573
1854
  ]
1574
1855
  }
1575
1856
  );
@@ -1579,7 +1860,7 @@ function ScrollBar({
1579
1860
  orientation = "vertical",
1580
1861
  ...props
1581
1862
  }) {
1582
- return /* @__PURE__ */ jsx19(
1863
+ return /* @__PURE__ */ jsx22(
1583
1864
  ScrollAreaPrimitive.ScrollAreaScrollbar,
1584
1865
  {
1585
1866
  "data-slot": "scroll-area-scrollbar",
@@ -1591,7 +1872,7 @@ function ScrollBar({
1591
1872
  className
1592
1873
  ),
1593
1874
  ...props,
1594
- children: /* @__PURE__ */ jsx19(
1875
+ children: /* @__PURE__ */ jsx22(
1595
1876
  ScrollAreaPrimitive.ScrollAreaThumb,
1596
1877
  {
1597
1878
  "data-slot": "scroll-area-thumb",
@@ -1603,22 +1884,22 @@ function ScrollBar({
1603
1884
  }
1604
1885
 
1605
1886
  // src/components/data-table/component/table-form-dialog/index.tsx
1606
- import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
1887
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
1607
1888
  var TableFormDialog = (props) => {
1608
1889
  const { bodyHeight = "h-100", limitHeight = true } = props;
1609
- return /* @__PURE__ */ jsxs12(Dialog, { open: props.open, onOpenChange: props.onOpenChange, children: [
1610
- /* @__PURE__ */ jsx20(DialogTrigger, { asChild: true, children: props.children }),
1611
- /* @__PURE__ */ jsxs12(DialogContent, { className: "sm:max-w-106.25", children: [
1612
- /* @__PURE__ */ jsx20(DialogHeader, { children: /* @__PURE__ */ jsx20(DialogTitle, { children: EnumFormModeLabel[props.mode] }) }),
1613
- /* @__PURE__ */ jsxs12("form", { onSubmit: props.onSubmit, className: "space-y-4", children: [
1614
- /* @__PURE__ */ jsx20(
1890
+ return /* @__PURE__ */ jsxs13(Dialog, { open: props.open, onOpenChange: props.onOpenChange, children: [
1891
+ /* @__PURE__ */ jsx23(DialogTrigger, { asChild: true, children: props.children }),
1892
+ /* @__PURE__ */ jsxs13(DialogContent, { className: "sm:max-w-106.25", children: [
1893
+ /* @__PURE__ */ jsx23(DialogHeader, { children: /* @__PURE__ */ jsx23(DialogTitle, { children: EnumFormModeLabel[props.mode] }) }),
1894
+ /* @__PURE__ */ jsxs13("form", { onSubmit: props.onSubmit, className: "space-y-4", children: [
1895
+ /* @__PURE__ */ jsx23(
1615
1896
  ScrollArea,
1616
1897
  {
1617
1898
  className: cn2(
1618
1899
  "rounded-md",
1619
1900
  props.mode !== EnumFormMode.DELETE && limitHeight && (typeof bodyHeight === "number" ? `h-[${bodyHeight}px]` : bodyHeight)
1620
1901
  ),
1621
- children: /* @__PURE__ */ jsx20("div", { className: "p-2", children: props.renderBody() })
1902
+ children: /* @__PURE__ */ jsx23("div", { className: "p-2", children: props.renderBody() })
1622
1903
  }
1623
1904
  ),
1624
1905
  props.renderFooter()
@@ -1628,13 +1909,13 @@ var TableFormDialog = (props) => {
1628
1909
  };
1629
1910
 
1630
1911
  // src/components/data-table/component/table-header-text/index.tsx
1631
- import { jsx as jsx21 } from "react/jsx-runtime";
1912
+ import { jsx as jsx24 } from "react/jsx-runtime";
1632
1913
 
1633
1914
  // src/components/data-table/component/table-text/index.tsx
1634
- import { jsx as jsx22 } from "react/jsx-runtime";
1915
+ import { jsx as jsx25 } from "react/jsx-runtime";
1635
1916
 
1636
1917
  // src/components/data-table/index.tsx
1637
- import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
1918
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1638
1919
  var buildParams = (page, size, keyword, filters, sorting) => {
1639
1920
  const result = { page, size };
1640
1921
  if (!isEmpty(keyword)) {
@@ -1772,16 +2053,16 @@ var DataTable = (props) => {
1772
2053
  getFacetedRowModel: getFacetedRowModel(),
1773
2054
  getFacetedUniqueValues: getFacetedUniqueValues()
1774
2055
  });
1775
- return /* @__PURE__ */ jsxs13("div", { className: "flex w-full flex-col gap-6", children: [
1776
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between gap-4 px-4 lg:px-6", children: [
1777
- /* @__PURE__ */ jsxs13("div", { className: "flex flex-1 items-center gap-2", children: [
2056
+ return /* @__PURE__ */ jsxs14("div", { className: "flex w-full flex-col gap-6", children: [
2057
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-between gap-4 px-4 lg:px-6", children: [
2058
+ /* @__PURE__ */ jsxs14("div", { className: "flex flex-1 items-center gap-2", children: [
1778
2059
  props.searchbar?.({
1779
2060
  filters: draftFilters,
1780
2061
  setFilters: (updater) => setDraftFilters((prev) => updater(prev)),
1781
2062
  search: () => syncFilters(draftFilters),
1782
2063
  reset: resetFilters
1783
2064
  }),
1784
- props.advancedFilter && /* @__PURE__ */ jsxs13(
2065
+ props.advancedFilter && /* @__PURE__ */ jsxs14(
1785
2066
  Button,
1786
2067
  {
1787
2068
  variant: "outline",
@@ -1791,25 +2072,25 @@ var DataTable = (props) => {
1791
2072
  setAdvancedOpen(true);
1792
2073
  },
1793
2074
  children: [
1794
- /* @__PURE__ */ jsx23(FilterIcon, {}),
2075
+ /* @__PURE__ */ jsx26(FilterIcon, {}),
1795
2076
  "\u66F4\u591A\u7B5B\u9009"
1796
2077
  ]
1797
2078
  }
1798
2079
  ),
1799
- (props.searchbar || props.advancedFilter) && /* @__PURE__ */ jsxs13(Button, { variant: "ghost", size: "sm", onClick: resetFilters, children: [
1800
- /* @__PURE__ */ jsx23(RotateCcwIcon, {}),
2080
+ (props.searchbar || props.advancedFilter) && /* @__PURE__ */ jsxs14(Button, { variant: "ghost", size: "sm", onClick: resetFilters, children: [
2081
+ /* @__PURE__ */ jsx26(RotateCcwIcon, {}),
1801
2082
  "\u91CD\u7F6E"
1802
2083
  ] })
1803
2084
  ] }),
1804
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
1805
- /* @__PURE__ */ jsxs13(DropdownMenu, { children: [
1806
- /* @__PURE__ */ jsx23(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs13(Button, { variant: "outline", size: "sm", children: [
1807
- /* @__PURE__ */ jsx23(ColumnsIcon, {}),
1808
- /* @__PURE__ */ jsx23(ChevronDownIcon2, {})
2085
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-2", children: [
2086
+ /* @__PURE__ */ jsxs14(DropdownMenu, { children: [
2087
+ /* @__PURE__ */ jsx26(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs14(Button, { variant: "outline", size: "sm", children: [
2088
+ /* @__PURE__ */ jsx26(ColumnsIcon, {}),
2089
+ /* @__PURE__ */ jsx26(ChevronDownIcon2, {})
1809
2090
  ] }) }),
1810
- /* @__PURE__ */ jsx23(DropdownMenuContent, { align: "end", className: "w-56", children: table.getAllColumns().filter(
2091
+ /* @__PURE__ */ jsx26(DropdownMenuContent, { align: "end", className: "w-56", children: table.getAllColumns().filter(
1811
2092
  (column) => typeof column.accessorFn !== "undefined" && column.getCanHide()
1812
- ).map((column) => /* @__PURE__ */ jsx23(
2093
+ ).map((column) => /* @__PURE__ */ jsx26(
1813
2094
  DropdownMenuCheckboxItem,
1814
2095
  {
1815
2096
  checked: column.getIsVisible(),
@@ -1822,25 +2103,25 @@ var DataTable = (props) => {
1822
2103
  props.toolbar?.({ refresh })
1823
2104
  ] })
1824
2105
  ] }),
1825
- /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-4 overflow-auto px-4 pb-0.5 lg:px-6", children: [
1826
- /* @__PURE__ */ jsx23("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs13(Table, { children: [
1827
- /* @__PURE__ */ jsx23(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx23(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx23(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender(
2106
+ /* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-4 overflow-auto px-4 pb-0.5 lg:px-6", children: [
2107
+ /* @__PURE__ */ jsx26("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs14(Table, { children: [
2108
+ /* @__PURE__ */ jsx26(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx26(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx26(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender(
1828
2109
  header.column.columnDef.header,
1829
2110
  header.getContext()
1830
2111
  ) }, header.id)) }, headerGroup.id)) }),
1831
- /* @__PURE__ */ jsx23(TableBody, { children: table.getRowModel().rows.length > 0 ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx23(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx23(TableCell, { children: flexRender(
2112
+ /* @__PURE__ */ jsx26(TableBody, { children: table.getRowModel().rows.length > 0 ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx26(TableRow, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx26(TableCell, { children: flexRender(
1832
2113
  cell.column.columnDef.cell,
1833
2114
  cell.getContext()
1834
- ) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx23(TableRow, { children: /* @__PURE__ */ jsx23(
2115
+ ) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx26(TableRow, { children: /* @__PURE__ */ jsx26(
1835
2116
  TableCell,
1836
2117
  {
1837
2118
  colSpan: props.columns.length,
1838
2119
  className: "h-24 text-center",
1839
- children: /* @__PURE__ */ jsx23(table_empty_default, {})
2120
+ children: /* @__PURE__ */ jsx26(table_empty_default, {})
1840
2121
  }
1841
2122
  ) }) })
1842
2123
  ] }) }),
1843
- /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-end px-4", children: /* @__PURE__ */ jsx23(
2124
+ /* @__PURE__ */ jsx26("div", { className: "flex items-center justify-end px-4", children: /* @__PURE__ */ jsx26(
1844
2125
  TablePagination,
1845
2126
  {
1846
2127
  currentPage,
@@ -1855,14 +2136,14 @@ var DataTable = (props) => {
1855
2136
  }
1856
2137
  ) })
1857
2138
  ] }),
1858
- props.advancedFilter && /* @__PURE__ */ jsx23(Sheet, { open: advancedOpen, onOpenChange: setAdvancedOpen, children: /* @__PURE__ */ jsxs13(SheetContent, { className: "flex w-[420px] flex-col p-0", children: [
1859
- /* @__PURE__ */ jsx23(SheetHeader, { className: "border-b px-6 py-4", children: /* @__PURE__ */ jsx23(SheetTitle, { children: "\u66F4\u591A\u7B5B\u9009" }) }),
1860
- /* @__PURE__ */ jsx23("div", { className: "flex-1 overflow-y-auto px-6 py-4", children: props.advancedFilter({
2139
+ props.advancedFilter && /* @__PURE__ */ jsx26(Sheet, { open: advancedOpen, onOpenChange: setAdvancedOpen, children: /* @__PURE__ */ jsxs14(SheetContent, { className: "flex w-[420px] flex-col p-0", children: [
2140
+ /* @__PURE__ */ jsx26(SheetHeader, { className: "border-b px-6 py-4", children: /* @__PURE__ */ jsx26(SheetTitle, { children: "\u66F4\u591A\u7B5B\u9009" }) }),
2141
+ /* @__PURE__ */ jsx26("div", { className: "flex-1 overflow-y-auto px-6 py-4", children: props.advancedFilter({
1861
2142
  draftFilters,
1862
2143
  setDraftFilters: (updater) => setDraftFilters((prev) => updater(prev))
1863
2144
  }) }),
1864
- /* @__PURE__ */ jsxs13(SheetFooter, { className: "border-t px-6 py-4", children: [
1865
- /* @__PURE__ */ jsx23(
2145
+ /* @__PURE__ */ jsxs14(SheetFooter, { className: "border-t px-6 py-4", children: [
2146
+ /* @__PURE__ */ jsx26(
1866
2147
  Button,
1867
2148
  {
1868
2149
  className: "flex-1",
@@ -1871,7 +2152,7 @@ var DataTable = (props) => {
1871
2152
  children: "\u91CD\u7F6E"
1872
2153
  }
1873
2154
  ),
1874
- /* @__PURE__ */ jsx23(Button, { className: "flex-1", onClick: confirmAdvanced, children: "\u786E\u8BA4\u7B5B\u9009" })
2155
+ /* @__PURE__ */ jsx26(Button, { className: "flex-1", onClick: confirmAdvanced, children: "\u786E\u8BA4\u7B5B\u9009" })
1875
2156
  ] })
1876
2157
  ] }) })
1877
2158
  ] });
@@ -1879,7 +2160,7 @@ var DataTable = (props) => {
1879
2160
 
1880
2161
  // src/components/dialog/index.tsx
1881
2162
  import { useState as useState2 } from "react";
1882
- import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
2163
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
1883
2164
  var Dialog2 = (props) => {
1884
2165
  const [open, setOpen] = useState2(false);
1885
2166
  const [confirmLoading, setConfirmLoading] = useState2(false);
@@ -1896,14 +2177,14 @@ var Dialog2 = (props) => {
1896
2177
  setConfirmLoading(false);
1897
2178
  }
1898
2179
  };
1899
- return /* @__PURE__ */ jsxs14(Dialog, { open, onOpenChange: setOpen, children: [
1900
- /* @__PURE__ */ jsx24(DialogTrigger, { asChild: true, children: props.children }),
1901
- /* @__PURE__ */ jsxs14(DialogContent, { className: "sm:max-w-106.25", children: [
1902
- /* @__PURE__ */ jsx24(DialogHeader, { children: /* @__PURE__ */ jsx24(DialogTitle, { children: props.title ?? "\u63D0\u793A" }) }),
1903
- /* @__PURE__ */ jsx24("div", { className: "py-4", children: typeof props.content === "string" ? /* @__PURE__ */ jsx24("div", { children: props.content }) : props.content }),
1904
- /* @__PURE__ */ jsxs14(DialogFooter, { children: [
1905
- /* @__PURE__ */ jsx24(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx24(Button2, { variant: EnumVariant.OUTLINE, disabled: confirmLoading, children: props.cancelText ?? "\u53D6\u6D88" }) }),
1906
- /* @__PURE__ */ jsx24(
2180
+ return /* @__PURE__ */ jsxs15(Dialog, { open, onOpenChange: setOpen, children: [
2181
+ /* @__PURE__ */ jsx27(DialogTrigger, { asChild: true, children: props.children }),
2182
+ /* @__PURE__ */ jsxs15(DialogContent, { className: "sm:max-w-106.25", children: [
2183
+ /* @__PURE__ */ jsx27(DialogHeader, { children: /* @__PURE__ */ jsx27(DialogTitle, { children: props.title ?? "\u63D0\u793A" }) }),
2184
+ /* @__PURE__ */ jsx27("div", { className: "py-4", children: typeof props.content === "string" ? /* @__PURE__ */ jsx27("div", { children: props.content }) : props.content }),
2185
+ /* @__PURE__ */ jsxs15(DialogFooter, { children: [
2186
+ /* @__PURE__ */ jsx27(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx27(Button2, { variant: EnumVariant.OUTLINE, disabled: confirmLoading, children: props.cancelText ?? "\u53D6\u6D88" }) }),
2187
+ /* @__PURE__ */ jsx27(
1907
2188
  Button2,
1908
2189
  {
1909
2190
  type: "button",
@@ -1929,7 +2210,7 @@ import {
1929
2210
  getSortedRowModel as getSortedRowModel2,
1930
2211
  useReactTable as useReactTable2
1931
2212
  } from "@tanstack/react-table";
1932
- import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
2213
+ import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
1933
2214
  var DisplayTable = (props) => {
1934
2215
  const [rowSelection, setRowSelection] = useState3({});
1935
2216
  const [columnVisibility, setColumnVisibility] = useState3({});
@@ -1960,24 +2241,24 @@ var DisplayTable = (props) => {
1960
2241
  getFacetedRowModel: getFacetedRowModel2(),
1961
2242
  getFacetedUniqueValues: getFacetedUniqueValues2()
1962
2243
  });
1963
- return /* @__PURE__ */ jsx25("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs15(Table, { children: [
1964
- /* @__PURE__ */ jsx25(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx25(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx25(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender2(
2244
+ return /* @__PURE__ */ jsx28("div", { className: "overflow-hidden rounded-lg border", children: /* @__PURE__ */ jsxs16(Table, { children: [
2245
+ /* @__PURE__ */ jsx28(TableHeader, { className: "sticky top-0 z-10 bg-muted", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx28(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx28(TableHead, { colSpan: header.colSpan, children: header.isPlaceholder ? null : flexRender2(
1965
2246
  header.column.columnDef.header,
1966
2247
  header.getContext()
1967
2248
  ) }, header.id)) }, headerGroup.id)) }),
1968
- /* @__PURE__ */ jsx25(TableBody, { className: "**:data-[slot=table-cell]:first:w-8", children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx25(
2249
+ /* @__PURE__ */ jsx28(TableBody, { className: "**:data-[slot=table-cell]:first:w-8", children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx28(
1969
2250
  TableRow,
1970
2251
  {
1971
2252
  "data-state": row.getIsSelected() && "selected",
1972
- children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx25(TableCell, { children: flexRender2(cell.column.columnDef.cell, cell.getContext()) }, cell.id))
2253
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx28(TableCell, { children: flexRender2(cell.column.columnDef.cell, cell.getContext()) }, cell.id))
1973
2254
  },
1974
2255
  row.id
1975
- )) : /* @__PURE__ */ jsx25(TableRow, { children: /* @__PURE__ */ jsx25(
2256
+ )) : /* @__PURE__ */ jsx28(TableRow, { children: /* @__PURE__ */ jsx28(
1976
2257
  TableCell,
1977
2258
  {
1978
2259
  colSpan: props.columns.length,
1979
2260
  className: "h-24 text-center",
1980
- children: /* @__PURE__ */ jsx25(table_empty_default, {})
2261
+ children: /* @__PURE__ */ jsx28(table_empty_default, {})
1981
2262
  }
1982
2263
  ) }) })
1983
2264
  ] }) });
@@ -1989,7 +2270,7 @@ import { ChevronDown, X } from "lucide-react";
1989
2270
 
1990
2271
  // src/components/dropdown-cascader/dropdown-cascader-base.tsx
1991
2272
  import { Check } from "lucide-react";
1992
- import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
2273
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
1993
2274
  var getOptionMap = (options) => {
1994
2275
  const map = /* @__PURE__ */ new Map();
1995
2276
  const walk = (nodes, parent) => {
@@ -2013,10 +2294,10 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
2013
2294
  const isBranch = !!node.children?.length;
2014
2295
  const isSelected = selectedValues.includes(node.value);
2015
2296
  if (isBranch) {
2016
- return /* @__PURE__ */ jsxs16(DropdownMenuSub, { children: [
2017
- /* @__PURE__ */ jsx26(DropdownMenuSubTrigger, { disabled: node.disabled, children: node.label }),
2018
- /* @__PURE__ */ jsx26(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs16(DropdownMenuSubContent, { className: "min-w-56", children: [
2019
- /* @__PURE__ */ jsxs16(
2297
+ return /* @__PURE__ */ jsxs17(DropdownMenuSub, { children: [
2298
+ /* @__PURE__ */ jsx29(DropdownMenuSubTrigger, { disabled: node.disabled, children: node.label }),
2299
+ /* @__PURE__ */ jsx29(DropdownMenuPortal, { children: /* @__PURE__ */ jsxs17(DropdownMenuSubContent, { className: "min-w-56", children: [
2300
+ /* @__PURE__ */ jsxs17(
2020
2301
  DropdownMenuItem,
2021
2302
  {
2022
2303
  disabled: node.disabled,
@@ -2026,8 +2307,8 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
2026
2307
  },
2027
2308
  className: "flex items-center justify-between",
2028
2309
  children: [
2029
- /* @__PURE__ */ jsx26("span", { children: node.label }),
2030
- isSelected && /* @__PURE__ */ jsx26(Check, { className: "size-4" })
2310
+ /* @__PURE__ */ jsx29("span", { children: node.label }),
2311
+ isSelected && /* @__PURE__ */ jsx29(Check, { className: "size-4" })
2031
2312
  ]
2032
2313
  }
2033
2314
  ),
@@ -2040,7 +2321,7 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
2040
2321
  ] }) })
2041
2322
  ] }, node.value);
2042
2323
  }
2043
- return /* @__PURE__ */ jsxs16(
2324
+ return /* @__PURE__ */ jsxs17(
2044
2325
  DropdownMenuItem,
2045
2326
  {
2046
2327
  disabled: node.disabled,
@@ -2050,8 +2331,8 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
2050
2331
  },
2051
2332
  className: "flex items-center justify-between",
2052
2333
  children: [
2053
- /* @__PURE__ */ jsx26("span", { children: node.label }),
2054
- isSelected && /* @__PURE__ */ jsx26(Check, { className: "size-4" })
2334
+ /* @__PURE__ */ jsx29("span", { children: node.label }),
2335
+ isSelected && /* @__PURE__ */ jsx29(Check, { className: "size-4" })
2055
2336
  ]
2056
2337
  },
2057
2338
  node.value
@@ -2060,7 +2341,7 @@ var renderCascaderNodes = (nodes, parentPath, selectedValues, onSelect) => {
2060
2341
  };
2061
2342
 
2062
2343
  // src/components/dropdown-cascader/dropdown-cascader-multi.tsx
2063
- import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
2344
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
2064
2345
  var toggle = (list, value) => {
2065
2346
  if (list.includes(value)) {
2066
2347
  return list.filter((v) => v !== value);
@@ -2099,22 +2380,22 @@ var DropdownCascaderMulti = ({
2099
2380
  value: i.option.value,
2100
2381
  label: i.path.map((p) => p.label).join(" / ")
2101
2382
  }));
2102
- return /* @__PURE__ */ jsxs17(DropdownMenu, { open, onOpenChange: setOpen, children: [
2103
- /* @__PURE__ */ jsx27(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs17(
2383
+ return /* @__PURE__ */ jsxs18(DropdownMenu, { open, onOpenChange: setOpen, children: [
2384
+ /* @__PURE__ */ jsx30(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs18(
2104
2385
  Button,
2105
2386
  {
2106
2387
  variant: "outline",
2107
2388
  className: "h-auto! min-h-9 w-full justify-between px-3",
2108
2389
  children: [
2109
- /* @__PURE__ */ jsxs17("div", { className: "flex flex-wrap gap-1", children: [
2390
+ /* @__PURE__ */ jsxs18("div", { className: "flex flex-wrap gap-1", children: [
2110
2391
  selectedItems.length === 0 && props.placeholder,
2111
- selectedItems.map((item) => /* @__PURE__ */ jsxs17(
2392
+ selectedItems.map((item) => /* @__PURE__ */ jsxs18(
2112
2393
  "span",
2113
2394
  {
2114
2395
  className: "inline-flex items-center gap-1 rounded border px-2 py-0.5 text-xs",
2115
2396
  children: [
2116
2397
  item.label,
2117
- /* @__PURE__ */ jsx27(
2398
+ /* @__PURE__ */ jsx30(
2118
2399
  "span",
2119
2400
  {
2120
2401
  role: "button",
@@ -2136,7 +2417,7 @@ var DropdownCascaderMulti = ({
2136
2417
  remove(item.value);
2137
2418
  }
2138
2419
  },
2139
- children: /* @__PURE__ */ jsx27(X, { className: "size-3" })
2420
+ children: /* @__PURE__ */ jsx30(X, { className: "size-3" })
2140
2421
  }
2141
2422
  )
2142
2423
  ]
@@ -2144,11 +2425,11 @@ var DropdownCascaderMulti = ({
2144
2425
  item.value
2145
2426
  ))
2146
2427
  ] }),
2147
- /* @__PURE__ */ jsx27(ChevronDown, { className: "size-4 opacity-50" })
2428
+ /* @__PURE__ */ jsx30(ChevronDown, { className: "size-4 opacity-50" })
2148
2429
  ]
2149
2430
  }
2150
2431
  ) }),
2151
- /* @__PURE__ */ jsx27(
2432
+ /* @__PURE__ */ jsx30(
2152
2433
  DropdownMenuContent,
2153
2434
  {
2154
2435
  align: "start",
@@ -2162,7 +2443,7 @@ var DropdownCascaderMulti = ({
2162
2443
  // src/components/dropdown-cascader/dropdown-cascader-single.tsx
2163
2444
  import * as React2 from "react";
2164
2445
  import { ChevronDown as ChevronDown2 } from "lucide-react";
2165
- import { jsx as jsx28, jsxs as jsxs18 } from "react/jsx-runtime";
2446
+ import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
2166
2447
  var DropdownCascader = (props) => {
2167
2448
  const optionMap = React2.useMemo(
2168
2449
  () => getOptionMap(props.options),
@@ -2176,19 +2457,19 @@ var DropdownCascader = (props) => {
2176
2457
  setOpen(false);
2177
2458
  };
2178
2459
  const selectedPath = props.value ? optionMap.get(props.value)?.path.map((i) => i.label).join(" / ") : "";
2179
- return /* @__PURE__ */ jsxs18(DropdownMenu, { open, onOpenChange: setOpen, children: [
2180
- /* @__PURE__ */ jsx28(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs18(
2460
+ return /* @__PURE__ */ jsxs19(DropdownMenu, { open, onOpenChange: setOpen, children: [
2461
+ /* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, className: "self-start", children: /* @__PURE__ */ jsxs19(
2181
2462
  Button,
2182
2463
  {
2183
2464
  variant: "outline",
2184
2465
  className: "h-auto! min-h-9 w-full justify-between px-3 leading-none",
2185
2466
  children: [
2186
2467
  selectedPath || props.placeholder,
2187
- /* @__PURE__ */ jsx28(ChevronDown2, { className: "size-4 ml-auto opacity-50" })
2468
+ /* @__PURE__ */ jsx31(ChevronDown2, { className: "size-4 ml-auto opacity-50" })
2188
2469
  ]
2189
2470
  }
2190
2471
  ) }),
2191
- /* @__PURE__ */ jsx28(
2472
+ /* @__PURE__ */ jsx31(
2192
2473
  DropdownMenuContent,
2193
2474
  {
2194
2475
  align: "start",
@@ -2210,16 +2491,16 @@ import { CircleQuestionMark } from "lucide-react";
2210
2491
 
2211
2492
  // src/shadcn/components/field.tsx
2212
2493
  import { useMemo as useMemo5 } from "react";
2213
- import { cva as cva4 } from "class-variance-authority";
2494
+ import { cva as cva5 } from "class-variance-authority";
2214
2495
 
2215
2496
  // src/shadcn/components/label.tsx
2216
2497
  import { Label as LabelPrimitive } from "radix-ui";
2217
- import { jsx as jsx29 } from "react/jsx-runtime";
2498
+ import { jsx as jsx32 } from "react/jsx-runtime";
2218
2499
  function Label({
2219
2500
  className,
2220
2501
  ...props
2221
2502
  }) {
2222
- return /* @__PURE__ */ jsx29(
2503
+ return /* @__PURE__ */ jsx32(
2223
2504
  LabelPrimitive.Root,
2224
2505
  {
2225
2506
  "data-slot": "label",
@@ -2234,12 +2515,12 @@ function Label({
2234
2515
 
2235
2516
  // src/shadcn/components/separator.tsx
2236
2517
  import { Separator as SeparatorPrimitive } from "radix-ui";
2237
- import { jsx as jsx30 } from "react/jsx-runtime";
2518
+ import { jsx as jsx33 } from "react/jsx-runtime";
2238
2519
 
2239
2520
  // src/shadcn/components/field.tsx
2240
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
2241
- function FieldGroup({ className, ...props }) {
2242
- return /* @__PURE__ */ jsx31(
2521
+ import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
2522
+ function FieldGroup2({ className, ...props }) {
2523
+ return /* @__PURE__ */ jsx34(
2243
2524
  "div",
2244
2525
  {
2245
2526
  "data-slot": "field-group",
@@ -2251,7 +2532,7 @@ function FieldGroup({ className, ...props }) {
2251
2532
  }
2252
2533
  );
2253
2534
  }
2254
- var fieldVariants = cva4(
2535
+ var fieldVariants = cva5(
2255
2536
  "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
2256
2537
  {
2257
2538
  variants: {
@@ -2279,7 +2560,7 @@ function Field({
2279
2560
  orientation = "vertical",
2280
2561
  ...props
2281
2562
  }) {
2282
- return /* @__PURE__ */ jsx31(
2563
+ return /* @__PURE__ */ jsx34(
2283
2564
  "div",
2284
2565
  {
2285
2566
  role: "group",
@@ -2296,7 +2577,7 @@ function FieldLabel({
2296
2577
  children,
2297
2578
  ...props
2298
2579
  }) {
2299
- return /* @__PURE__ */ jsx31(
2580
+ return /* @__PURE__ */ jsx34(
2300
2581
  Label,
2301
2582
  {
2302
2583
  "data-slot": "field-label",
@@ -2307,9 +2588,9 @@ function FieldLabel({
2307
2588
  className
2308
2589
  ),
2309
2590
  ...props,
2310
- children: /* @__PURE__ */ jsxs19("span", { className: "flex items-center gap-1", children: [
2591
+ children: /* @__PURE__ */ jsxs20("span", { className: "flex items-center gap-1", children: [
2311
2592
  children,
2312
- required && /* @__PURE__ */ jsx31("span", { className: "text-destructive", children: "*" })
2593
+ required && /* @__PURE__ */ jsx34("span", { className: "text-destructive", children: "*" })
2313
2594
  ] })
2314
2595
  }
2315
2596
  );
@@ -2333,14 +2614,14 @@ function FieldError({
2333
2614
  if (uniqueErrors?.length == 1) {
2334
2615
  return uniqueErrors[0]?.message;
2335
2616
  }
2336
- return /* @__PURE__ */ jsx31("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
2337
- (error, index) => error?.message && /* @__PURE__ */ jsx31("li", { children: error.message }, index)
2617
+ return /* @__PURE__ */ jsx34("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: uniqueErrors.map(
2618
+ (error, index) => error?.message && /* @__PURE__ */ jsx34("li", { children: error.message }, index)
2338
2619
  ) });
2339
2620
  }, [children, errors]);
2340
2621
  if (!content) {
2341
2622
  return null;
2342
2623
  }
2343
- return /* @__PURE__ */ jsx31(
2624
+ return /* @__PURE__ */ jsx34(
2344
2625
  "div",
2345
2626
  {
2346
2627
  role: "alert",
@@ -2354,12 +2635,12 @@ function FieldError({
2354
2635
 
2355
2636
  // src/shadcn/components/tooltip.tsx
2356
2637
  import { Tooltip as TooltipPrimitive } from "radix-ui";
2357
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
2638
+ import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
2358
2639
  function TooltipProvider({
2359
2640
  delayDuration = 0,
2360
2641
  ...props
2361
2642
  }) {
2362
- return /* @__PURE__ */ jsx32(
2643
+ return /* @__PURE__ */ jsx35(
2363
2644
  TooltipPrimitive.Provider,
2364
2645
  {
2365
2646
  "data-slot": "tooltip-provider",
@@ -2371,12 +2652,12 @@ function TooltipProvider({
2371
2652
  function Tooltip({
2372
2653
  ...props
2373
2654
  }) {
2374
- return /* @__PURE__ */ jsx32(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
2655
+ return /* @__PURE__ */ jsx35(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
2375
2656
  }
2376
2657
  function TooltipTrigger({
2377
2658
  ...props
2378
2659
  }) {
2379
- return /* @__PURE__ */ jsx32(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
2660
+ return /* @__PURE__ */ jsx35(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
2380
2661
  }
2381
2662
  function TooltipContent({
2382
2663
  className,
@@ -2384,7 +2665,7 @@ function TooltipContent({
2384
2665
  children,
2385
2666
  ...props
2386
2667
  }) {
2387
- return /* @__PURE__ */ jsx32(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs20(
2668
+ return /* @__PURE__ */ jsx35(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs21(
2388
2669
  TooltipPrimitive.Content,
2389
2670
  {
2390
2671
  "data-slot": "tooltip-content",
@@ -2396,35 +2677,35 @@ function TooltipContent({
2396
2677
  ...props,
2397
2678
  children: [
2398
2679
  children,
2399
- /* @__PURE__ */ jsx32(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" })
2680
+ /* @__PURE__ */ jsx35(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" })
2400
2681
  ]
2401
2682
  }
2402
2683
  ) });
2403
2684
  }
2404
2685
 
2405
2686
  // src/components/field-controller/index.tsx
2406
- import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
2687
+ import { jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
2407
2688
  var FieldController = ({
2408
2689
  required = false,
2409
2690
  ...props
2410
2691
  }) => {
2411
- return /* @__PURE__ */ jsx33(
2692
+ return /* @__PURE__ */ jsx36(
2412
2693
  Controller,
2413
2694
  {
2414
- name: props.id,
2695
+ name: props.name,
2415
2696
  control: props.control,
2416
- render: ({ field, fieldState }) => /* @__PURE__ */ jsxs21(Field, { "data-invalid": fieldState.invalid, children: [
2417
- /* @__PURE__ */ jsxs21("div", { className: "flex items-center gap-spacing-xs", children: [
2418
- /* @__PURE__ */ jsx33(FieldLabel, { htmlFor: props.id, required, children: props.name }),
2419
- props.tip && /* @__PURE__ */ jsxs21(Tooltip, { children: [
2420
- /* @__PURE__ */ jsx33(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx33(
2697
+ render: ({ field, fieldState }) => /* @__PURE__ */ jsxs22(Field, { "data-invalid": fieldState.invalid, children: [
2698
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-spacing-xs", children: [
2699
+ /* @__PURE__ */ jsx36(FieldLabel, { htmlFor: props.id, required, children: props.label }),
2700
+ props.tip && /* @__PURE__ */ jsxs22(Tooltip, { children: [
2701
+ /* @__PURE__ */ jsx36(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx36(
2421
2702
  CircleQuestionMark,
2422
2703
  {
2423
2704
  size: "1rem",
2424
2705
  className: "text-muted-foreground"
2425
2706
  }
2426
2707
  ) }),
2427
- /* @__PURE__ */ jsx33(
2708
+ /* @__PURE__ */ jsx36(
2428
2709
  TooltipContent,
2429
2710
  {
2430
2711
  side: "right",
@@ -2439,16 +2720,16 @@ var FieldController = ({
2439
2720
  fieldState,
2440
2721
  id: props.id
2441
2722
  }),
2442
- fieldState.error && /* @__PURE__ */ jsx33(FieldError, { errors: [fieldState.error] })
2723
+ fieldState.error && /* @__PURE__ */ jsx36(FieldError, { errors: [fieldState.error] })
2443
2724
  ] })
2444
2725
  }
2445
2726
  );
2446
2727
  };
2447
2728
 
2448
2729
  // src/components/field-group/index.tsx
2449
- import { jsx as jsx34 } from "react/jsx-runtime";
2450
- var FieldGroup2 = (props) => {
2451
- return /* @__PURE__ */ jsx34(
2730
+ import { jsx as jsx37 } from "react/jsx-runtime";
2731
+ var FieldGroup = (props) => {
2732
+ return /* @__PURE__ */ jsx37(
2452
2733
  "div",
2453
2734
  {
2454
2735
  className: cn2(
@@ -2461,28 +2742,28 @@ var FieldGroup2 = (props) => {
2461
2742
  };
2462
2743
 
2463
2744
  // src/components/text/index.tsx
2464
- import { jsx as jsx35 } from "react/jsx-runtime";
2745
+ import { jsx as jsx38 } from "react/jsx-runtime";
2465
2746
  var Text = (props) => {
2466
- return /* @__PURE__ */ jsx35("div", { className: cn2("", props.className), children: props.children });
2747
+ return /* @__PURE__ */ jsx38("div", { className: cn2("", props.className), children: props.children });
2467
2748
  };
2468
2749
 
2469
2750
  // src/components/field-plain/index.tsx
2470
- import { Fragment as Fragment2, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
2751
+ import { Fragment as Fragment2, jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
2471
2752
  var FieldPlain = ({
2472
2753
  required = false,
2473
2754
  mode = EnumFormMode.VIEW,
2474
2755
  ...props
2475
2756
  }) => {
2476
2757
  const label = props.label ?? "-";
2477
- return /* @__PURE__ */ jsx36(Fragment2, { children: /* @__PURE__ */ jsxs22(Field, { "data-invalid": props.invalid, children: [
2478
- /* @__PURE__ */ jsx36(FieldLabel, { htmlFor: props.id, required, children: props.name }),
2479
- mode === EnumFormMode.VIEW ? /* @__PURE__ */ jsx36(Text, { children: label }) : props.children,
2480
- props.error && /* @__PURE__ */ jsx36(FieldError, { errors: [{ message: props.error }] })
2758
+ return /* @__PURE__ */ jsx39(Fragment2, { children: /* @__PURE__ */ jsxs23(Field, { "data-invalid": props.invalid, children: [
2759
+ /* @__PURE__ */ jsx39(FieldLabel, { htmlFor: props.id, required, children: props.name }),
2760
+ mode === EnumFormMode.VIEW ? /* @__PURE__ */ jsx39(Text, { children: label }) : props.children,
2761
+ props.error && /* @__PURE__ */ jsx39(FieldError, { errors: [{ message: props.error }] })
2481
2762
  ] }) });
2482
2763
  };
2483
2764
 
2484
2765
  // src/components/field-text/index.tsx
2485
- import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
2766
+ import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
2486
2767
  var FieldText = ({
2487
2768
  id,
2488
2769
  name,
@@ -2492,16 +2773,16 @@ var FieldText = ({
2492
2773
  render
2493
2774
  }) => {
2494
2775
  const isEmpty2 = value === "" || value == null;
2495
- return /* @__PURE__ */ jsxs23(Field, { children: [
2496
- /* @__PURE__ */ jsx37(FieldLabel, { htmlFor: id, required, children: name }),
2497
- /* @__PURE__ */ jsx37("div", { id, className: "text-sm leading-6", children: render ?? (isEmpty2 ? placeholder : value) })
2776
+ return /* @__PURE__ */ jsxs24(Field, { children: [
2777
+ /* @__PURE__ */ jsx40(FieldLabel, { htmlFor: id, required, children: name }),
2778
+ /* @__PURE__ */ jsx40("div", { id, className: "text-sm leading-6", children: render ?? (isEmpty2 ? placeholder : value) })
2498
2779
  ] });
2499
2780
  };
2500
2781
 
2501
2782
  // src/components/form-select/index.tsx
2502
- import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
2783
+ import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
2503
2784
  var FormSelect = (props) => {
2504
- return /* @__PURE__ */ jsxs24(
2785
+ return /* @__PURE__ */ jsxs25(
2505
2786
  Select,
2506
2787
  {
2507
2788
  value: props.value,
@@ -2514,9 +2795,9 @@ var FormSelect = (props) => {
2514
2795
  },
2515
2796
  "aria-invalid": props.invalid,
2516
2797
  children: [
2517
- /* @__PURE__ */ jsx38(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx38(SelectValue, {}) }),
2518
- /* @__PURE__ */ jsx38(SelectContent, { children: /* @__PURE__ */ jsx38(SelectGroup, { children: props.optionList.map((option) => {
2519
- return /* @__PURE__ */ jsx38(SelectItem, { value: option.value, children: option.label }, option.value);
2798
+ /* @__PURE__ */ jsx41(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx41(SelectValue, {}) }),
2799
+ /* @__PURE__ */ jsx41(SelectContent, { children: /* @__PURE__ */ jsx41(SelectGroup, { children: props.optionList.map((option) => {
2800
+ return /* @__PURE__ */ jsx41(SelectItem, { value: option.value, children: option.label }, option.value);
2520
2801
  }) }) })
2521
2802
  ]
2522
2803
  }
@@ -2539,7 +2820,7 @@ import {
2539
2820
  ChevronLeftIcon as ChevronLeftIcon2,
2540
2821
  ChevronRightIcon as ChevronRightIcon3
2541
2822
  } from "lucide-react";
2542
- import { jsx as jsx39 } from "react/jsx-runtime";
2823
+ import { jsx as jsx42 } from "react/jsx-runtime";
2543
2824
  function Calendar({
2544
2825
  className,
2545
2826
  classNames,
@@ -2551,7 +2832,7 @@ function Calendar({
2551
2832
  ...props
2552
2833
  }) {
2553
2834
  const defaultClassNames = getDefaultClassNames();
2554
- return /* @__PURE__ */ jsx39(
2835
+ return /* @__PURE__ */ jsx42(
2555
2836
  DayPicker,
2556
2837
  {
2557
2838
  showOutsideDays,
@@ -2651,7 +2932,7 @@ function Calendar({
2651
2932
  },
2652
2933
  components: {
2653
2934
  Root: ({ className: className2, rootRef, ...props2 }) => {
2654
- return /* @__PURE__ */ jsx39(
2935
+ return /* @__PURE__ */ jsx42(
2655
2936
  "div",
2656
2937
  {
2657
2938
  "data-slot": "calendar",
@@ -2663,10 +2944,10 @@ function Calendar({
2663
2944
  },
2664
2945
  Chevron: ({ className: className2, orientation, ...props2 }) => {
2665
2946
  if (orientation === "left") {
2666
- return /* @__PURE__ */ jsx39(ChevronLeftIcon2, { className: cn("size-4", className2), ...props2 });
2947
+ return /* @__PURE__ */ jsx42(ChevronLeftIcon2, { className: cn("size-4", className2), ...props2 });
2667
2948
  }
2668
2949
  if (orientation === "right") {
2669
- return /* @__PURE__ */ jsx39(
2950
+ return /* @__PURE__ */ jsx42(
2670
2951
  ChevronRightIcon3,
2671
2952
  {
2672
2953
  className: cn("size-4", className2),
@@ -2674,11 +2955,11 @@ function Calendar({
2674
2955
  }
2675
2956
  );
2676
2957
  }
2677
- return /* @__PURE__ */ jsx39(ChevronDownIcon3, { className: cn("size-4", className2), ...props2 });
2958
+ return /* @__PURE__ */ jsx42(ChevronDownIcon3, { className: cn("size-4", className2), ...props2 });
2678
2959
  },
2679
2960
  DayButton: CalendarDayButton,
2680
2961
  WeekNumber: ({ children, ...props2 }) => {
2681
- return /* @__PURE__ */ jsx39("td", { ...props2, children: /* @__PURE__ */ jsx39("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
2962
+ return /* @__PURE__ */ jsx42("td", { ...props2, children: /* @__PURE__ */ jsx42("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
2682
2963
  },
2683
2964
  ...components
2684
2965
  },
@@ -2697,7 +2978,7 @@ function CalendarDayButton({
2697
2978
  React3.useEffect(() => {
2698
2979
  if (modifiers.focused) ref.current?.focus();
2699
2980
  }, [modifiers.focused]);
2700
- return /* @__PURE__ */ jsx39(
2981
+ return /* @__PURE__ */ jsx42(
2701
2982
  Button,
2702
2983
  {
2703
2984
  ref,
@@ -2720,16 +3001,16 @@ function CalendarDayButton({
2720
3001
 
2721
3002
  // src/shadcn/components/popover.tsx
2722
3003
  import { Popover as PopoverPrimitive } from "radix-ui";
2723
- import { jsx as jsx40 } from "react/jsx-runtime";
3004
+ import { jsx as jsx43 } from "react/jsx-runtime";
2724
3005
  function Popover({
2725
3006
  ...props
2726
3007
  }) {
2727
- return /* @__PURE__ */ jsx40(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
3008
+ return /* @__PURE__ */ jsx43(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
2728
3009
  }
2729
3010
  function PopoverTrigger({
2730
3011
  ...props
2731
3012
  }) {
2732
- return /* @__PURE__ */ jsx40(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
3013
+ return /* @__PURE__ */ jsx43(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
2733
3014
  }
2734
3015
  function PopoverContent({
2735
3016
  className,
@@ -2737,7 +3018,7 @@ function PopoverContent({
2737
3018
  sideOffset = 4,
2738
3019
  ...props
2739
3020
  }) {
2740
- return /* @__PURE__ */ jsx40(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx40(
3021
+ return /* @__PURE__ */ jsx43(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx43(
2741
3022
  PopoverPrimitive.Content,
2742
3023
  {
2743
3024
  "data-slot": "popover-content",
@@ -2753,7 +3034,7 @@ function PopoverContent({
2753
3034
  }
2754
3035
 
2755
3036
  // src/components/form-time-picker/index.tsx
2756
- import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
3037
+ import { jsx as jsx44, jsxs as jsxs26 } from "react/jsx-runtime";
2757
3038
  function pad2(n) {
2758
3039
  return String(n).padStart(2, "0");
2759
3040
  }
@@ -2773,9 +3054,9 @@ var FormTimePicker = (props) => {
2773
3054
  const [open, setOpen] = React4.useState(false);
2774
3055
  const dateBtnText = props.value ? formatDateTime(props.value, "YYYY-MM-DD") : props.datePlaceholder;
2775
3056
  const timeValue = formatTimeHHmmss(props.value);
2776
- return /* @__PURE__ */ jsxs25(FieldGroup, { className: "flex-row gap-2.5", children: [
2777
- /* @__PURE__ */ jsx41(Field, { children: /* @__PURE__ */ jsxs25(Popover, { open, onOpenChange: setOpen, children: [
2778
- /* @__PURE__ */ jsx41(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs25(
3057
+ return /* @__PURE__ */ jsxs26(FieldGroup2, { className: "flex-row gap-2.5", children: [
3058
+ /* @__PURE__ */ jsx44(Field, { children: /* @__PURE__ */ jsxs26(Popover, { open, onOpenChange: setOpen, children: [
3059
+ /* @__PURE__ */ jsx44(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs26(
2779
3060
  Button,
2780
3061
  {
2781
3062
  variant: "outline",
@@ -2784,17 +3065,17 @@ var FormTimePicker = (props) => {
2784
3065
  disabled: props.disabled,
2785
3066
  className: "w-32 justify-between font-normal",
2786
3067
  children: [
2787
- /* @__PURE__ */ jsx41("div", { className: "w-full text-left", children: dateBtnText }),
2788
- /* @__PURE__ */ jsx41(ChevronDownIcon4, {})
3068
+ /* @__PURE__ */ jsx44("div", { className: "w-full text-left", children: dateBtnText }),
3069
+ /* @__PURE__ */ jsx44(ChevronDownIcon4, {})
2789
3070
  ]
2790
3071
  }
2791
3072
  ) }),
2792
- /* @__PURE__ */ jsx41(
3073
+ /* @__PURE__ */ jsx44(
2793
3074
  PopoverContent,
2794
3075
  {
2795
3076
  className: "w-(--radix-popover-trigger-width) p-0",
2796
3077
  align: "start",
2797
- children: /* @__PURE__ */ jsx41(
3078
+ children: /* @__PURE__ */ jsx44(
2798
3079
  Calendar,
2799
3080
  {
2800
3081
  mode: "single",
@@ -2818,7 +3099,7 @@ var FormTimePicker = (props) => {
2818
3099
  }
2819
3100
  )
2820
3101
  ] }) }),
2821
- /* @__PURE__ */ jsx41(Field, { className: "w-32", children: /* @__PURE__ */ jsx41(
3102
+ /* @__PURE__ */ jsx44(Field, { className: "w-32", children: /* @__PURE__ */ jsx44(
2822
3103
  Input,
2823
3104
  {
2824
3105
  type: "time",
@@ -2844,9 +3125,9 @@ import { useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2
2844
3125
  import { Eye, Loader2, Plus, Trash2 } from "lucide-react";
2845
3126
 
2846
3127
  // src/shadcn/components/card.tsx
2847
- import { jsx as jsx42 } from "react/jsx-runtime";
3128
+ import { jsx as jsx45 } from "react/jsx-runtime";
2848
3129
  function Card({ className, ...props }) {
2849
- return /* @__PURE__ */ jsx42(
3130
+ return /* @__PURE__ */ jsx45(
2850
3131
  "div",
2851
3132
  {
2852
3133
  "data-slot": "card",
@@ -2860,7 +3141,7 @@ function Card({ className, ...props }) {
2860
3141
  }
2861
3142
 
2862
3143
  // src/components/media-uploader/index.tsx
2863
- import { jsx as jsx43, jsxs as jsxs26 } from "react/jsx-runtime";
3144
+ import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
2864
3145
  var MediaUploader = ({ value = [], ...props }) => {
2865
3146
  const inputRef = useRef2(null);
2866
3147
  const [items, setItems] = useState7([]);
@@ -2986,8 +3267,8 @@ var MediaUploader = ({ value = [], ...props }) => {
2986
3267
  });
2987
3268
  };
2988
3269
  const showUploadButton = canEdit && (!props.multiple && items.length === 0 || props.multiple);
2989
- return /* @__PURE__ */ jsxs26("div", { className: cn2("space-y-3", props.className), children: [
2990
- /* @__PURE__ */ jsx43(
3270
+ return /* @__PURE__ */ jsxs27("div", { className: cn2("space-y-3", props.className), children: [
3271
+ /* @__PURE__ */ jsx46(
2991
3272
  "input",
2992
3273
  {
2993
3274
  ref: inputRef,
@@ -3004,19 +3285,19 @@ var MediaUploader = ({ value = [], ...props }) => {
3004
3285
  }
3005
3286
  }
3006
3287
  ),
3007
- /* @__PURE__ */ jsx43(ScrollArea, { className: "rounded-lg border", children: /* @__PURE__ */ jsxs26("div", { className: "grid grid-cols-2 gap-3 p-3 sm:grid-cols-3 lg:grid-cols-4", children: [
3008
- items.map((it, index) => /* @__PURE__ */ jsx43(Card, { className: "group overflow-hidden", children: /* @__PURE__ */ jsxs26("div", { className: "relative aspect-square bg-muted", children: [
3009
- it.url || it.localUrl ? /* @__PURE__ */ jsx43(
3288
+ /* @__PURE__ */ jsx46(ScrollArea, { className: "rounded-lg border", children: /* @__PURE__ */ jsxs27("div", { className: "grid grid-cols-2 gap-3 p-3 sm:grid-cols-3 lg:grid-cols-4", children: [
3289
+ items.map((it, index) => /* @__PURE__ */ jsx46(Card, { className: "group overflow-hidden", children: /* @__PURE__ */ jsxs27("div", { className: "relative aspect-square bg-muted", children: [
3290
+ it.url || it.localUrl ? /* @__PURE__ */ jsx46(
3010
3291
  "img",
3011
3292
  {
3012
3293
  src: it.url ?? it.localUrl,
3013
3294
  alt: "",
3014
3295
  className: "h-full w-full object-cover"
3015
3296
  }
3016
- ) : /* @__PURE__ */ jsx43("div", { className: "h-full w-full" }),
3017
- it.uploading && /* @__PURE__ */ jsx43("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ jsx43(Loader2, { className: "h-6 w-6 animate-spin text-white" }) }),
3018
- !it.uploading && (it.url || it.localUrl) && /* @__PURE__ */ jsxs26("div", { className: "absolute inset-0 flex items-start justify-end gap-2 p-2 opacity-0 transition group-hover:opacity-100", children: [
3019
- /* @__PURE__ */ jsx43(
3297
+ ) : /* @__PURE__ */ jsx46("div", { className: "h-full w-full" }),
3298
+ it.uploading && /* @__PURE__ */ jsx46("div", { className: "absolute inset-0 flex items-center justify-center bg-black/40", children: /* @__PURE__ */ jsx46(Loader2, { className: "h-6 w-6 animate-spin text-white" }) }),
3299
+ !it.uploading && (it.url || it.localUrl) && /* @__PURE__ */ jsxs27("div", { className: "absolute inset-0 flex items-start justify-end gap-2 p-2 opacity-0 transition group-hover:opacity-100", children: [
3300
+ /* @__PURE__ */ jsx46(
3020
3301
  Button,
3021
3302
  {
3022
3303
  size: "icon",
@@ -3024,10 +3305,10 @@ var MediaUploader = ({ value = [], ...props }) => {
3024
3305
  className: "h-8 w-8",
3025
3306
  onClick: () => setPreview(it),
3026
3307
  type: "button",
3027
- children: /* @__PURE__ */ jsx43(Eye, { className: "h-4 w-4" })
3308
+ children: /* @__PURE__ */ jsx46(Eye, { className: "h-4 w-4" })
3028
3309
  }
3029
3310
  ),
3030
- canEdit && /* @__PURE__ */ jsx43(
3311
+ canEdit && /* @__PURE__ */ jsx46(
3031
3312
  Button,
3032
3313
  {
3033
3314
  size: "icon",
@@ -3035,25 +3316,25 @@ var MediaUploader = ({ value = [], ...props }) => {
3035
3316
  className: "h-8 w-8",
3036
3317
  onClick: () => remove(it.id),
3037
3318
  type: "button",
3038
- children: /* @__PURE__ */ jsx43(Trash2, { className: "h-4 w-4" })
3319
+ children: /* @__PURE__ */ jsx46(Trash2, { className: "h-4 w-4" })
3039
3320
  }
3040
3321
  )
3041
3322
  ] })
3042
3323
  ] }) }, it.id + index)),
3043
- showUploadButton && /* @__PURE__ */ jsx43(
3324
+ showUploadButton && /* @__PURE__ */ jsx46(
3044
3325
  Card,
3045
3326
  {
3046
3327
  className: "flex aspect-square cursor-pointer items-center justify-center hover:bg-muted/50",
3047
3328
  onClick: () => {
3048
3329
  inputRef.current?.click();
3049
3330
  },
3050
- children: /* @__PURE__ */ jsx43(Plus, { className: "h-6 w-6 text-muted-foreground" })
3331
+ children: /* @__PURE__ */ jsx46(Plus, { className: "h-6 w-6 text-muted-foreground" })
3051
3332
  }
3052
3333
  )
3053
3334
  ] }) }),
3054
- /* @__PURE__ */ jsx43(Dialog, { open: !!preview, onOpenChange: () => setPreview(null), children: /* @__PURE__ */ jsxs26(DialogContent, { className: "max-w-3xl", children: [
3055
- /* @__PURE__ */ jsx43(DialogHeader, { children: /* @__PURE__ */ jsx43(DialogTitle, { children: "\u9884\u89C8" }) }),
3056
- preview && /* @__PURE__ */ jsx43("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx43(
3335
+ /* @__PURE__ */ jsx46(Dialog, { open: !!preview, onOpenChange: () => setPreview(null), children: /* @__PURE__ */ jsxs27(DialogContent, { className: "max-w-3xl", children: [
3336
+ /* @__PURE__ */ jsx46(DialogHeader, { children: /* @__PURE__ */ jsx46(DialogTitle, { children: "\u9884\u89C8" }) }),
3337
+ preview && /* @__PURE__ */ jsx46("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx46(
3057
3338
  "img",
3058
3339
  {
3059
3340
  src: preview.url ?? preview.localUrl ?? "",
@@ -3066,9 +3347,9 @@ var MediaUploader = ({ value = [], ...props }) => {
3066
3347
  };
3067
3348
 
3068
3349
  // src/components/provider/index.tsx
3069
- import { jsx as jsx44 } from "react/jsx-runtime";
3350
+ import { jsx as jsx47 } from "react/jsx-runtime";
3070
3351
  var Provider = ({ children }) => {
3071
- return /* @__PURE__ */ jsx44(TooltipProvider, { children });
3352
+ return /* @__PURE__ */ jsx47(TooltipProvider, { children });
3072
3353
  };
3073
3354
  export {
3074
3355
  Badge2 as Badge,
@@ -3102,7 +3383,7 @@ export {
3102
3383
  EnumVariant,
3103
3384
  EnumVariantLabel,
3104
3385
  FieldController,
3105
- FieldGroup2 as FieldGroup,
3386
+ FieldGroup,
3106
3387
  FieldPlain,
3107
3388
  FieldText,
3108
3389
  FormSelect,
@@ -3115,16 +3396,34 @@ export {
3115
3396
  boolToText,
3116
3397
  cn2 as cn,
3117
3398
  emptyToUndefined,
3399
+ enumApprovalStatusOptions,
3400
+ enumApprovalViewOptions,
3401
+ enumEntityStatusOptions,
3402
+ enumFormModeOptions,
3403
+ enumGenderTypeOptions,
3404
+ enumMapProviderOptions,
3405
+ enumOrderStatusOptions,
3406
+ enumPublishMethodOptions,
3407
+ enumSemanticColorOptions,
3408
+ enumStorageMethodOptions,
3118
3409
  enumToOptions,
3119
3410
  enumValues,
3411
+ enumVariantOptions,
3120
3412
  formatDateTime,
3121
3413
  formatDecimal,
3122
3414
  genUuid,
3123
3415
  getSemanticColor,
3416
+ getSuccessMessage,
3124
3417
  isEmpty,
3125
3418
  isFormData,
3126
3419
  isValidEmail,
3127
3420
  isValidURL,
3421
+ renderBody,
3422
+ renderConfirmFooter,
3423
+ renderFooter,
3424
+ renderInput,
3425
+ renderPasswordInput,
3426
+ renderTextarea,
3128
3427
  zBool,
3129
3428
  zCoerceNumber,
3130
3429
  zCoerceNumberOptional,