@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.
- package/dist/index.d.ts +54 -20
- package/dist/index.js +979 -680
- 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
|
-
|
|
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 ?
|
|
267
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
963
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
543
964
|
function Spinner({ className, ...props }) {
|
|
544
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1020
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
600
1021
|
function Checkbox({
|
|
601
1022
|
className,
|
|
602
1023
|
...props
|
|
603
1024
|
}) {
|
|
604
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1047
|
+
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
627
1048
|
var CheckboxSingleList = (props) => {
|
|
628
|
-
return /* @__PURE__ */
|
|
629
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
669
|
-
import { jsx as
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1161
|
+
import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
741
1162
|
var TableEmpty = () => {
|
|
742
|
-
return /* @__PURE__ */
|
|
743
|
-
/* @__PURE__ */
|
|
744
|
-
/* @__PURE__ */
|
|
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
|
|
1179
|
+
import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
759
1180
|
function Pagination({ className, ...props }) {
|
|
760
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
823
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
841
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
859
|
-
/* @__PURE__ */
|
|
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
|
|
1289
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
869
1290
|
function Select({
|
|
870
1291
|
...props
|
|
871
1292
|
}) {
|
|
872
|
-
return /* @__PURE__ */
|
|
1293
|
+
return /* @__PURE__ */ jsx16(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
873
1294
|
}
|
|
874
1295
|
function SelectGroup({
|
|
875
1296
|
...props
|
|
876
1297
|
}) {
|
|
877
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
928
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1384
|
+
children: /* @__PURE__ */ jsx16(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(CheckIcon2, { className: "size-4" }) })
|
|
964
1385
|
}
|
|
965
1386
|
),
|
|
966
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1050
|
-
/* @__PURE__ */
|
|
1051
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1482
|
+
return /* @__PURE__ */ jsx17(PaginationItem, { children: /* @__PURE__ */ jsx17(PaginationEllipsis, {}) }, item.key);
|
|
1062
1483
|
}
|
|
1063
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1090
|
-
/* @__PURE__ */
|
|
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
|
|
1524
|
+
import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1104
1525
|
function DropdownMenu({
|
|
1105
1526
|
...props
|
|
1106
1527
|
}) {
|
|
1107
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1655
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1235
1656
|
function Sheet({ ...props }) {
|
|
1236
|
-
return /* @__PURE__ */
|
|
1657
|
+
return /* @__PURE__ */ jsx19(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
1237
1658
|
}
|
|
1238
1659
|
function SheetPortal({
|
|
1239
1660
|
...props
|
|
1240
1661
|
}) {
|
|
1241
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1267
|
-
/* @__PURE__ */
|
|
1268
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1284
|
-
/* @__PURE__ */
|
|
1285
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1748
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
1328
1749
|
function Table({ className, ...props }) {
|
|
1329
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1572
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1610
|
-
/* @__PURE__ */
|
|
1611
|
-
/* @__PURE__ */
|
|
1612
|
-
/* @__PURE__ */
|
|
1613
|
-
/* @__PURE__ */
|
|
1614
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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
|
|
1915
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1635
1916
|
|
|
1636
1917
|
// src/components/data-table/index.tsx
|
|
1637
|
-
import { jsx as
|
|
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__ */
|
|
1776
|
-
/* @__PURE__ */
|
|
1777
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2075
|
+
/* @__PURE__ */ jsx26(FilterIcon, {}),
|
|
1795
2076
|
"\u66F4\u591A\u7B5B\u9009"
|
|
1796
2077
|
]
|
|
1797
2078
|
}
|
|
1798
2079
|
),
|
|
1799
|
-
(props.searchbar || props.advancedFilter) && /* @__PURE__ */
|
|
1800
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
1806
|
-
/* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1826
|
-
/* @__PURE__ */
|
|
1827
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2120
|
+
children: /* @__PURE__ */ jsx26(table_empty_default, {})
|
|
1840
2121
|
}
|
|
1841
2122
|
) }) })
|
|
1842
2123
|
] }) }),
|
|
1843
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1859
|
-
/* @__PURE__ */
|
|
1860
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1865
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1900
|
-
/* @__PURE__ */
|
|
1901
|
-
/* @__PURE__ */
|
|
1902
|
-
/* @__PURE__ */
|
|
1903
|
-
/* @__PURE__ */
|
|
1904
|
-
/* @__PURE__ */
|
|
1905
|
-
/* @__PURE__ */
|
|
1906
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
1964
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2017
|
-
/* @__PURE__ */
|
|
2018
|
-
/* @__PURE__ */
|
|
2019
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2030
|
-
isSelected && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2054
|
-
isSelected && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2103
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2390
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex flex-wrap gap-1", children: [
|
|
2110
2391
|
selectedItems.length === 0 && props.placeholder,
|
|
2111
|
-
selectedItems.map((item) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2428
|
+
/* @__PURE__ */ jsx30(ChevronDown, { className: "size-4 opacity-50" })
|
|
2148
2429
|
]
|
|
2149
2430
|
}
|
|
2150
2431
|
) }),
|
|
2151
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2180
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2468
|
+
/* @__PURE__ */ jsx31(ChevronDown2, { className: "size-4 ml-auto opacity-50" })
|
|
2188
2469
|
]
|
|
2189
2470
|
}
|
|
2190
2471
|
) }),
|
|
2191
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
2498
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
2218
2499
|
function Label({
|
|
2219
2500
|
className,
|
|
2220
2501
|
...props
|
|
2221
2502
|
}) {
|
|
2222
|
-
return /* @__PURE__ */
|
|
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
|
|
2518
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
2238
2519
|
|
|
2239
2520
|
// src/shadcn/components/field.tsx
|
|
2240
|
-
import { jsx as
|
|
2241
|
-
function
|
|
2242
|
-
return /* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2591
|
+
children: /* @__PURE__ */ jsxs20("span", { className: "flex items-center gap-1", children: [
|
|
2311
2592
|
children,
|
|
2312
|
-
required && /* @__PURE__ */
|
|
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__ */
|
|
2337
|
-
(error, index) => error?.message && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
2655
|
+
return /* @__PURE__ */ jsx35(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
|
|
2375
2656
|
}
|
|
2376
2657
|
function TooltipTrigger({
|
|
2377
2658
|
...props
|
|
2378
2659
|
}) {
|
|
2379
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2692
|
+
return /* @__PURE__ */ jsx36(
|
|
2412
2693
|
Controller,
|
|
2413
2694
|
{
|
|
2414
|
-
name: props.
|
|
2695
|
+
name: props.name,
|
|
2415
2696
|
control: props.control,
|
|
2416
|
-
render: ({ field, fieldState }) => /* @__PURE__ */
|
|
2417
|
-
/* @__PURE__ */
|
|
2418
|
-
/* @__PURE__ */
|
|
2419
|
-
props.tip && /* @__PURE__ */
|
|
2420
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2450
|
-
var
|
|
2451
|
-
return /* @__PURE__ */
|
|
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
|
|
2745
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
2465
2746
|
var Text = (props) => {
|
|
2466
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2478
|
-
/* @__PURE__ */
|
|
2479
|
-
mode === EnumFormMode.VIEW ? /* @__PURE__ */
|
|
2480
|
-
props.error && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2496
|
-
/* @__PURE__ */
|
|
2497
|
-
/* @__PURE__ */
|
|
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
|
|
2783
|
+
import { jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
2503
2784
|
var FormSelect = (props) => {
|
|
2504
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
2518
|
-
/* @__PURE__ */
|
|
2519
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2947
|
+
return /* @__PURE__ */ jsx42(ChevronLeftIcon2, { className: cn("size-4", className2), ...props2 });
|
|
2667
2948
|
}
|
|
2668
2949
|
if (orientation === "right") {
|
|
2669
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3004
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
2724
3005
|
function Popover({
|
|
2725
3006
|
...props
|
|
2726
3007
|
}) {
|
|
2727
|
-
return /* @__PURE__ */
|
|
3008
|
+
return /* @__PURE__ */ jsx43(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
2728
3009
|
}
|
|
2729
3010
|
function PopoverTrigger({
|
|
2730
3011
|
...props
|
|
2731
3012
|
}) {
|
|
2732
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2777
|
-
/* @__PURE__ */
|
|
2778
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2788
|
-
/* @__PURE__ */
|
|
3068
|
+
/* @__PURE__ */ jsx44("div", { className: "w-full text-left", children: dateBtnText }),
|
|
3069
|
+
/* @__PURE__ */ jsx44(ChevronDownIcon4, {})
|
|
2789
3070
|
]
|
|
2790
3071
|
}
|
|
2791
3072
|
) }),
|
|
2792
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3128
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
2848
3129
|
function Card({ className, ...props }) {
|
|
2849
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
2990
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3008
|
-
items.map((it, index) => /* @__PURE__ */
|
|
3009
|
-
it.url || it.localUrl ? /* @__PURE__ */
|
|
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__ */
|
|
3017
|
-
it.uploading && /* @__PURE__ */
|
|
3018
|
-
!it.uploading && (it.url || it.localUrl) && /* @__PURE__ */
|
|
3019
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3308
|
+
children: /* @__PURE__ */ jsx46(Eye, { className: "h-4 w-4" })
|
|
3028
3309
|
}
|
|
3029
3310
|
),
|
|
3030
|
-
canEdit && /* @__PURE__ */
|
|
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__ */
|
|
3319
|
+
children: /* @__PURE__ */ jsx46(Trash2, { className: "h-4 w-4" })
|
|
3039
3320
|
}
|
|
3040
3321
|
)
|
|
3041
3322
|
] })
|
|
3042
3323
|
] }) }, it.id + index)),
|
|
3043
|
-
showUploadButton && /* @__PURE__ */
|
|
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__ */
|
|
3331
|
+
children: /* @__PURE__ */ jsx46(Plus, { className: "h-6 w-6 text-muted-foreground" })
|
|
3051
3332
|
}
|
|
3052
3333
|
)
|
|
3053
3334
|
] }) }),
|
|
3054
|
-
/* @__PURE__ */
|
|
3055
|
-
/* @__PURE__ */
|
|
3056
|
-
preview && /* @__PURE__ */
|
|
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
|
|
3350
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3070
3351
|
var Provider = ({ children }) => {
|
|
3071
|
-
return /* @__PURE__ */
|
|
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
|
-
|
|
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,
|