@jbpark/ui-kit 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +1,27 @@
1
- import { t as cn } from "./utils-DEenfsJ-.mjs";
2
- import { t as Typography_default } from "./Typography-LYvEW-c8.mjs";
3
- import { ArrowUp, Check, ChevronDown, CircleQuestionMark, CircleX, Info, Loader2, LoaderCircle, OctagonAlert, OctagonX, Search, Square, SquareCheck, X, XIcon } from "lucide-react";
4
- import * as React$1 from "react";
5
- import React, { Children, createElement, forwardRef, useEffect, useId, useMemo, useRef, useState } from "react";
1
+ import { n as renderConditional, t as cn } from "./utils-CssUrKWE.mjs";
2
+ import { t as Typography_default } from "./Typography-GMk9208W.mjs";
3
+ import { ArrowUp, Check, CheckIcon, ChevronDown, ChevronDownIcon, ChevronUpIcon, CircleIcon, CircleQuestionMark, CircleX, Info, Loader2, LoaderCircle, OctagonAlert, OctagonX, Search, Square, SquareCheck, X, XIcon } from "lucide-react";
4
+ import React, { Children, createElement, useEffect, useId, useMemo, useRef, useState } from "react";
5
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
6
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { Slot } from "@radix-ui/react-slot";
7
8
  import { cva } from "class-variance-authority";
8
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
10
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
11
+ import { Drawer } from "vaul";
10
12
  import * as LabelPrimitive from "@radix-ui/react-label";
11
- import { useIntersectionObserver, useThrottle, useWindowScroll } from "@uidotdev/usehooks";
12
13
  import * as PopoverPrimitive from "@radix-ui/react-popover";
13
14
  import * as ProgressPrimitive from "@radix-ui/react-progress";
15
+ import { RadioGroup, Select } from "radix-ui";
14
16
  import * as SwitchPrimitive from "@radix-ui/react-switch";
15
- import * as AccordionPrimitive from "@radix-ui/react-accordion";
17
+ import { HexColorPicker } from "react-colorful";
18
+ import { useIntersectionObserver, useThrottle, useWindowScroll } from "@uidotdev/usehooks";
16
19
  import { AnimatePresence, motion } from "motion/react";
17
20
  import { useResponsiveSize } from "@jbpark/use-hooks";
18
21
  import { useGSAP } from "@gsap/react";
19
- import { Drawer } from "vaul";
20
22
  import { createPortal } from "react-dom";
21
23
  import { createRoot } from "react-dom/client";
22
24
  import { v4 } from "uuid";
23
- import * as DialogPrimitive from "@radix-ui/react-dialog";
24
25
  import { Autoplay, EffectCards, Navigation, Scrollbar } from "swiper/modules";
25
26
  import { Swiper, SwiperSlide } from "swiper/react";
26
27
  import "swiper/css";
@@ -29,22 +30,91 @@ import "swiper/css/effect-cards";
29
30
  import "swiper/css/navigation";
30
31
  import "swiper/css/scrollbar";
31
32
 
33
+ //#region rolldown:runtime
34
+ var __defProp = Object.defineProperty;
35
+ var __exportAll = (all, symbols) => {
36
+ let target = {};
37
+ for (var name in all) {
38
+ __defProp(target, name, {
39
+ get: all[name],
40
+ enumerable: true
41
+ });
42
+ }
43
+ if (symbols) {
44
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
45
+ }
46
+ return target;
47
+ };
48
+
49
+ //#endregion
50
+ //#region src/core/accordion.tsx
51
+ var accordion_exports = /* @__PURE__ */ __exportAll({
52
+ Accordion: () => Accordion$1,
53
+ AccordionContent: () => AccordionContent$1,
54
+ AccordionItem: () => AccordionItem$1,
55
+ AccordionTrigger: () => AccordionTrigger$1
56
+ });
57
+ function Accordion$1({ ...props }) {
58
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Root, {
59
+ "data-slot": "accordion",
60
+ ...props
61
+ });
62
+ }
63
+ function AccordionItem$1({ className, ...props }) {
64
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
65
+ "data-slot": "accordion-item",
66
+ className: cn("border-b last:border-b-0", className),
67
+ ...props
68
+ });
69
+ }
70
+ function AccordionTrigger$1({ className, children, expandIcon, ...props }) {
71
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
72
+ className: "flex",
73
+ children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
74
+ "data-slot": "accordion-trigger",
75
+ className: cn(`focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1
76
+ items-start justify-between gap-4 rounded-md py-4 text-left text-sm
77
+ font-medium transition-all outline-none hover:underline
78
+ focus-visible:ring-[3px] disabled:pointer-events-none
79
+ disabled:opacity-50 [&[data-state=open]>svg]:rotate-180`, className),
80
+ ...props,
81
+ children: [children, expandIcon || /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0\n translate-y-0.5 transition-transform duration-200" })]
82
+ })
83
+ });
84
+ }
85
+ function AccordionContent$1({ className, children, ...props }) {
86
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Content, {
87
+ "data-slot": "accordion-content",
88
+ className: "data-[state=closed]:animate-accordion-up\n data-[state=open]:animate-accordion-down overflow-hidden text-sm",
89
+ ...props,
90
+ children: /* @__PURE__ */ jsx("div", {
91
+ className: cn("pt-0 pb-4", className),
92
+ children
93
+ })
94
+ });
95
+ }
96
+
97
+ //#endregion
32
98
  //#region src/core/button.tsx
33
99
  const buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
34
100
  variants: {
35
101
  variant: {
36
- default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
37
- destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
102
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
103
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
38
104
  outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
39
- secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
105
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
40
106
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
41
107
  link: "text-primary underline-offset-4 hover:underline"
42
108
  },
43
109
  size: {
44
110
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
111
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
45
112
  sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
46
113
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
47
- icon: "size-9"
114
+ icon: "size-9",
115
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
116
+ "icon-sm": "size-8",
117
+ "icon-lg": "size-10"
48
118
  }
49
119
  },
50
120
  defaultVariants: {
@@ -52,9 +122,11 @@ const buttonVariants = cva("inline-flex items-center justify-center gap-2 whites
52
122
  size: "default"
53
123
  }
54
124
  });
55
- function Button$2({ className, variant, size, asChild = false, ...props }) {
125
+ function Button$2({ className, variant = "default", size = "default", asChild = false, ...props }) {
56
126
  return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
57
127
  "data-slot": "button",
128
+ "data-variant": variant,
129
+ "data-size": size,
58
130
  className: cn(buttonVariants({
59
131
  variant,
60
132
  size,
@@ -64,8 +136,597 @@ function Button$2({ className, variant, size, asChild = false, ...props }) {
64
136
  });
65
137
  }
66
138
 
139
+ //#endregion
140
+ //#region src/core/checkbox.tsx
141
+ var checkbox_exports = /* @__PURE__ */ __exportAll({ Checkbox: () => Checkbox$1 });
142
+ function Checkbox$1({ className, ...props }) {
143
+ return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
144
+ "data-slot": "checkbox",
145
+ className: cn(`peer border-input dark:bg-input/30 data-[state=checked]:bg-primary
146
+ data-[state=checked]:text-primary-foreground
147
+ dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary
148
+ focus-visible:border-ring focus-visible:ring-ring/50
149
+ aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
150
+ aria-invalid:border-destructive size-4 shrink-0 rounded-sm border
151
+ shadow-xs transition-shadow outline-none focus-visible:ring-[3px]
152
+ disabled:cursor-not-allowed disabled:opacity-50`, className),
153
+ ...props,
154
+ children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
155
+ "data-slot": "checkbox-indicator",
156
+ className: "grid place-content-center text-current transition-none",
157
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
158
+ })
159
+ });
160
+ }
161
+
162
+ //#endregion
163
+ //#region src/core/dialog.tsx
164
+ var dialog_exports = /* @__PURE__ */ __exportAll({
165
+ Dialog: () => Dialog$1,
166
+ DialogClose: () => DialogClose,
167
+ DialogContent: () => DialogContent$1,
168
+ DialogDescription: () => DialogDescription$1,
169
+ DialogFooter: () => DialogFooter$1,
170
+ DialogHeader: () => DialogHeader$1,
171
+ DialogOverlay: () => DialogOverlay,
172
+ DialogPortal: () => DialogPortal,
173
+ DialogTitle: () => DialogTitle$1,
174
+ DialogTrigger: () => DialogTrigger
175
+ });
176
+ function Dialog$1({ ...props }) {
177
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
178
+ "data-slot": "dialog",
179
+ ...props
180
+ });
181
+ }
182
+ function DialogTrigger({ ...props }) {
183
+ return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, {
184
+ "data-slot": "dialog-trigger",
185
+ ...props
186
+ });
187
+ }
188
+ function DialogPortal({ ...props }) {
189
+ return /* @__PURE__ */ jsx(DialogPrimitive.Portal, {
190
+ "data-slot": "dialog-portal",
191
+ ...props
192
+ });
193
+ }
194
+ function DialogClose({ ...props }) {
195
+ return /* @__PURE__ */ jsx(DialogPrimitive.Close, {
196
+ "data-slot": "dialog-close",
197
+ ...props
198
+ });
199
+ }
200
+ function DialogOverlay({ className, ...props }) {
201
+ return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
202
+ "data-slot": "dialog-overlay",
203
+ className: cn(`data-[state=open]:animate-in data-[state=closed]:animate-out
204
+ data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0
205
+ z-50 bg-black/50`, className),
206
+ ...props
207
+ });
208
+ }
209
+ function DialogContent$1({ className, children, classNames, closeIcon: _closeIcon, closable, container, onCancel, ...props }) {
210
+ const closeIcon = /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
211
+ "data-slot": "dialog-close",
212
+ className: "ring-offset-background focus:ring-ring\n data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\n absolute top-4 right-4 rounded-xs opacity-70 transition-opacity\n hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden\n disabled:pointer-events-none [&_svg]:pointer-events-none\n [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
213
+ disabled: typeof closable === "object" && closable.disabled,
214
+ onClick: onCancel,
215
+ children: [_closeIcon || /* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
216
+ className: "sr-only",
217
+ children: "Close"
218
+ })]
219
+ });
220
+ return /* @__PURE__ */ jsxs(DialogPortal, {
221
+ "data-slot": "dialog-portal",
222
+ container,
223
+ children: [/* @__PURE__ */ jsx(DialogOverlay, { className: cn(classNames?.mask) }), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
224
+ "data-slot": "dialog-content",
225
+ className: cn(`bg-background data-[state=open]:animate-in
226
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
227
+ data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
228
+ data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid
229
+ w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%]
230
+ gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none
231
+ sm:max-w-lg`, className),
232
+ ...props,
233
+ children: [children, closable && closeIcon]
234
+ })]
235
+ });
236
+ }
237
+ function DialogHeader$1({ className, ...props }) {
238
+ return /* @__PURE__ */ jsx("div", {
239
+ "data-slot": "dialog-header",
240
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
241
+ ...props
242
+ });
243
+ }
244
+ function DialogFooter$1({ className, showCloseButton = false, children, ...props }) {
245
+ return /* @__PURE__ */ jsxs("div", {
246
+ "data-slot": "dialog-footer",
247
+ className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
248
+ ...props,
249
+ children: [children, showCloseButton && /* @__PURE__ */ jsx(DialogPrimitive.Close, {
250
+ asChild: true,
251
+ children: /* @__PURE__ */ jsx(Button_default$1, {
252
+ variant: "outlined",
253
+ children: "Close"
254
+ })
255
+ })]
256
+ });
257
+ }
258
+ function DialogTitle$1({ className, ...props }) {
259
+ return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
260
+ "data-slot": "dialog-title",
261
+ className: cn("text-lg leading-none font-semibold", className),
262
+ ...props
263
+ });
264
+ }
265
+ function DialogDescription$1({ className, ...props }) {
266
+ return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
267
+ "data-slot": "dialog-description",
268
+ className: cn("text-muted-foreground text-sm", className),
269
+ ...props
270
+ });
271
+ }
272
+
273
+ //#endregion
274
+ //#region src/core/drawer.tsx
275
+ var drawer_exports = /* @__PURE__ */ __exportAll({
276
+ Drawer: () => Drawer$2,
277
+ DrawerClose: () => DrawerClose,
278
+ DrawerContent: () => DrawerContent$1,
279
+ DrawerDescription: () => DrawerDescription$1,
280
+ DrawerFooter: () => DrawerFooter$1,
281
+ DrawerHeader: () => DrawerHeader$1,
282
+ DrawerOverlay: () => DrawerOverlay,
283
+ DrawerPortal: () => DrawerPortal,
284
+ DrawerTitle: () => DrawerTitle$1,
285
+ DrawerTrigger: () => DrawerTrigger
286
+ });
287
+ function Drawer$2({ draggable, ...props }) {
288
+ return /* @__PURE__ */ jsx(Drawer.Root, {
289
+ "data-slot": "drawer",
290
+ handleOnly: !draggable,
291
+ ...props
292
+ });
293
+ }
294
+ function DrawerTrigger({ ...props }) {
295
+ return /* @__PURE__ */ jsx(Drawer.Trigger, {
296
+ "data-slot": "drawer-trigger",
297
+ ...props
298
+ });
299
+ }
300
+ function DrawerPortal({ ...props }) {
301
+ return /* @__PURE__ */ jsx(Drawer.Portal, {
302
+ "data-slot": "drawer-portal",
303
+ ...props
304
+ });
305
+ }
306
+ function DrawerClose({ ...props }) {
307
+ return /* @__PURE__ */ jsx(Drawer.Close, {
308
+ "data-slot": "drawer-close",
309
+ ...props
310
+ });
311
+ }
312
+ function DrawerOverlay({ className, ...props }) {
313
+ return /* @__PURE__ */ jsx(Drawer.Overlay, {
314
+ "data-slot": "drawer-overlay",
315
+ className: cn(`data-[state=open]:animate-in data-[state=closed]:animate-out
316
+ data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0
317
+ z-50 bg-black/50`, className),
318
+ ...props
319
+ });
320
+ }
321
+ function DrawerContent$1({ className, children, classNames = {}, handlebar, mask, ...props }) {
322
+ return /* @__PURE__ */ jsxs(DrawerPortal, {
323
+ "data-slot": "drawer-portal",
324
+ children: [/* @__PURE__ */ jsx(DrawerOverlay, { className: cn(classNames?.mask || "", !mask && "hidden") }), /* @__PURE__ */ jsxs(Drawer.Content, {
325
+ "data-slot": "drawer-content",
326
+ className: cn("group/drawer-content bg-background fixed z-50 flex h-auto flex-col", `data-[vaul-drawer-direction=top]:inset-x-0
327
+ data-[vaul-drawer-direction=top]:top-0
328
+ data-[vaul-drawer-direction=top]:mb-24
329
+ data-[vaul-drawer-direction=top]:max-h-[80vh]
330
+ data-[vaul-drawer-direction=top]:rounded-b-lg
331
+ data-[vaul-drawer-direction=top]:border-b`, `data-[vaul-drawer-direction=bottom]:inset-x-0
332
+ data-[vaul-drawer-direction=bottom]:bottom-0
333
+ data-[vaul-drawer-direction=bottom]:mt-24
334
+ data-[vaul-drawer-direction=bottom]:max-h-[80vh]
335
+ data-[vaul-drawer-direction=bottom]:rounded-t-lg
336
+ data-[vaul-drawer-direction=bottom]:border-t`, `data-[vaul-drawer-direction=right]:inset-y-0
337
+ data-[vaul-drawer-direction=right]:right-0
338
+ data-[vaul-drawer-direction=right]:w-3/4
339
+ data-[vaul-drawer-direction=right]:border-l
340
+ data-[vaul-drawer-direction=right]:sm:max-w-sm`, `data-[vaul-drawer-direction=left]:inset-y-0
341
+ data-[vaul-drawer-direction=left]:left-0
342
+ data-[vaul-drawer-direction=left]:w-3/4
343
+ data-[vaul-drawer-direction=left]:border-r
344
+ data-[vaul-drawer-direction=left]:sm:max-w-sm`, className),
345
+ ...props,
346
+ children: [handlebar && /* @__PURE__ */ jsx("div", { className: cn(`bg-muted mx-auto mt-4 hidden h-2 w-25 shrink-0 rounded-full
347
+ group-data-[vaul-drawer-direction=bottom]/drawer-content:block`, classNames?.handlebar) }), children]
348
+ })]
349
+ });
350
+ }
351
+ function DrawerHeader$1({ className, ...props }) {
352
+ return /* @__PURE__ */ jsx("div", {
353
+ "data-slot": "drawer-header",
354
+ className: cn(`flex flex-col gap-0.5 p-4
355
+ group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center
356
+ group-data-[vaul-drawer-direction=top]/drawer-content:text-center
357
+ md:gap-1.5 md:text-left`, className),
358
+ ...props
359
+ });
360
+ }
361
+ function DrawerFooter$1({ className, ...props }) {
362
+ return /* @__PURE__ */ jsx("div", {
363
+ "data-slot": "drawer-footer",
364
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
365
+ ...props
366
+ });
367
+ }
368
+ function DrawerTitle$1({ className, ...props }) {
369
+ return /* @__PURE__ */ jsx(Drawer.Title, {
370
+ "data-slot": "drawer-title",
371
+ className: cn("text-foreground font-semibold", className),
372
+ ...props
373
+ });
374
+ }
375
+ function DrawerDescription$1({ className, ...props }) {
376
+ return /* @__PURE__ */ jsx(Drawer.Description, {
377
+ "data-slot": "drawer-description",
378
+ className: cn("text-muted-foreground text-sm", className),
379
+ ...props
380
+ });
381
+ }
382
+
383
+ //#endregion
384
+ //#region src/core/input.tsx
385
+ var input_exports = /* @__PURE__ */ __exportAll({ Input: () => Input$1 });
386
+ function Input$1({ className, type, ...props }) {
387
+ return /* @__PURE__ */ jsx("input", {
388
+ type,
389
+ "data-slot": "input",
390
+ className: cn(`file:text-foreground placeholder:text-muted-foreground
391
+ selection:bg-primary selection:text-primary-foreground dark:bg-input/30
392
+ border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3
393
+ py-1 text-base shadow-xs transition-[color,box-shadow] outline-none
394
+ file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm
395
+ file:font-medium disabled:pointer-events-none
396
+ disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`, `focus-visible:border-ring focus-visible:ring-ring/50
397
+ focus-visible:ring-[3px]`, `aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
398
+ aria-invalid:border-destructive`, className),
399
+ ...props
400
+ });
401
+ }
402
+
403
+ //#endregion
404
+ //#region src/core/label.tsx
405
+ var label_exports = /* @__PURE__ */ __exportAll({ Label: () => Label$2 });
406
+ function Label$2({ className, ...props }) {
407
+ return /* @__PURE__ */ jsx(LabelPrimitive.Root, {
408
+ "data-slot": "label",
409
+ className: cn(`flex items-center gap-2 text-sm leading-none font-medium select-none
410
+ group-data-[disabled=true]:pointer-events-none
411
+ group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed
412
+ peer-disabled:opacity-50`, className),
413
+ ...props
414
+ });
415
+ }
416
+
417
+ //#endregion
418
+ //#region src/core/popover.tsx
419
+ var popover_exports = /* @__PURE__ */ __exportAll({
420
+ Popover: () => Popover$1,
421
+ PopoverAnchor: () => PopoverAnchor,
422
+ PopoverContent: () => PopoverContent$1,
423
+ PopoverDescription: () => PopoverDescription,
424
+ PopoverHeader: () => PopoverHeader,
425
+ PopoverTitle: () => PopoverTitle,
426
+ PopoverTrigger: () => PopoverTrigger$1
427
+ });
428
+ function Popover$1({ ...props }) {
429
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Root, {
430
+ "data-slot": "popover",
431
+ ...props
432
+ });
433
+ }
434
+ function PopoverTrigger$1({ ...props }) {
435
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
436
+ "data-slot": "popover-trigger",
437
+ ...props
438
+ });
439
+ }
440
+ function PopoverContent$1({ className, align = "center", sideOffset = 4, ...props }) {
441
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
442
+ "data-slot": "popover-content",
443
+ align,
444
+ sideOffset,
445
+ className: cn(`bg-popover text-popover-foreground data-[state=open]:animate-in
446
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
447
+ data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
448
+ data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2
449
+ data-[side=left]:slide-in-from-right-2
450
+ data-[side=right]:slide-in-from-left-2
451
+ data-[side=top]:slide-in-from-bottom-2 z-50 w-72
452
+ origin-(--radix-popover-content-transform-origin) rounded-md border
453
+ p-4 shadow-md outline-hidden`, className),
454
+ ...props
455
+ }) });
456
+ }
457
+ function PopoverAnchor({ ...props }) {
458
+ return /* @__PURE__ */ jsx(PopoverPrimitive.Anchor, {
459
+ "data-slot": "popover-anchor",
460
+ ...props
461
+ });
462
+ }
463
+ function PopoverHeader({ className, ...props }) {
464
+ return /* @__PURE__ */ jsx("div", {
465
+ "data-slot": "popover-header",
466
+ className: cn("flex flex-col gap-1 text-sm", className),
467
+ ...props
468
+ });
469
+ }
470
+ function PopoverTitle({ className, ...props }) {
471
+ return /* @__PURE__ */ jsx("div", {
472
+ "data-slot": "popover-title",
473
+ className: cn("font-medium", className),
474
+ ...props
475
+ });
476
+ }
477
+ function PopoverDescription({ className, ...props }) {
478
+ return /* @__PURE__ */ jsx("p", {
479
+ "data-slot": "popover-description",
480
+ className: cn("text-muted-foreground", className),
481
+ ...props
482
+ });
483
+ }
484
+
485
+ //#endregion
486
+ //#region src/core/progress.tsx
487
+ var progress_exports = /* @__PURE__ */ __exportAll({ Progress: () => Progress$1 });
488
+ function Progress$1({ className, value, barClassName, barStyle, ...props }) {
489
+ return /* @__PURE__ */ jsx(ProgressPrimitive.Root, {
490
+ "data-slot": "progress",
491
+ className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
492
+ ...props,
493
+ children: /* @__PURE__ */ jsx(ProgressPrimitive.Indicator, {
494
+ "data-slot": "progress-indicator",
495
+ className: cn("bg-primary h-full w-full flex-1 transition-all", barClassName),
496
+ style: {
497
+ transform: `translateX(-${100 - (value || 0)}%)`,
498
+ ...barStyle
499
+ }
500
+ })
501
+ });
502
+ }
503
+
504
+ //#endregion
505
+ //#region src/core/radio-group.tsx
506
+ var radio_group_exports = /* @__PURE__ */ __exportAll({
507
+ RadioGroup: () => RadioGroup$1,
508
+ RadioGroupItem: () => RadioGroupItem
509
+ });
510
+ function RadioGroup$1({ className, ...props }) {
511
+ return /* @__PURE__ */ jsx(RadioGroup.Root, {
512
+ "data-slot": "radio-group",
513
+ className: cn("grid gap-3", className),
514
+ ...props
515
+ });
516
+ }
517
+ function RadioGroupItem({ className, ...props }) {
518
+ return /* @__PURE__ */ jsx(RadioGroup.Item, {
519
+ "data-slot": "radio-group-item",
520
+ className: cn(`border-input text-primary focus-visible:border-ring
521
+ focus-visible:ring-ring/50 aria-invalid:ring-destructive/20
522
+ dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive
523
+ dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border
524
+ shadow-xs transition-[color,box-shadow] outline-none
525
+ focus-visible:ring-[3px] disabled:cursor-not-allowed
526
+ disabled:opacity-50`, className),
527
+ ...props,
528
+ children: /* @__PURE__ */ jsx(RadioGroup.Indicator, {
529
+ "data-slot": "radio-group-indicator",
530
+ className: "relative flex items-center justify-center",
531
+ children: /* @__PURE__ */ jsx(CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2\n -translate-x-1/2 -translate-y-1/2" })
532
+ })
533
+ });
534
+ }
535
+
536
+ //#endregion
537
+ //#region src/core/select.tsx
538
+ var select_exports = /* @__PURE__ */ __exportAll({
539
+ Select: () => Select$2,
540
+ SelectContent: () => SelectContent$1,
541
+ SelectGroup: () => SelectGroup$1,
542
+ SelectItem: () => SelectItem$1,
543
+ SelectLabel: () => SelectLabel$1,
544
+ SelectScrollDownButton: () => SelectScrollDownButton,
545
+ SelectScrollUpButton: () => SelectScrollUpButton,
546
+ SelectSeparator: () => SelectSeparator,
547
+ SelectTrigger: () => SelectTrigger$1,
548
+ SelectValue: () => SelectValue$1
549
+ });
550
+ function Select$2({ ...props }) {
551
+ return /* @__PURE__ */ jsx(Select.Root, {
552
+ "data-slot": "select",
553
+ ...props
554
+ });
555
+ }
556
+ function SelectGroup$1({ ...props }) {
557
+ return /* @__PURE__ */ jsx(Select.Group, {
558
+ "data-slot": "select-group",
559
+ ...props
560
+ });
561
+ }
562
+ function SelectValue$1({ ...props }) {
563
+ return /* @__PURE__ */ jsx(Select.Value, {
564
+ "data-slot": "select-value",
565
+ ...props
566
+ });
567
+ }
568
+ function SelectTrigger$1({ className, size = "default", children, ...props }) {
569
+ return /* @__PURE__ */ jsxs(Select.Trigger, {
570
+ "data-slot": "select-trigger",
571
+ "data-size": size,
572
+ className: cn(`border-input data-[placeholder]:text-muted-foreground
573
+ [&_svg:not([class*='text-'])]:text-muted-foreground
574
+ focus-visible:border-ring focus-visible:ring-ring/50
575
+ aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
576
+ aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50
577
+ flex w-fit items-center justify-between gap-2 rounded-md border
578
+ bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs
579
+ transition-[color,box-shadow] outline-none focus-visible:ring-[3px]
580
+ disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9
581
+ data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1
582
+ *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center
583
+ *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none
584
+ [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`, className),
585
+ ...props,
586
+ children: [children, /* @__PURE__ */ jsx(Select.Icon, {
587
+ asChild: true,
588
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" })
589
+ })]
590
+ });
591
+ }
592
+ function SelectContent$1({ className, children, position = "item-aligned", align = "center", ...props }) {
593
+ return /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsxs(Select.Content, {
594
+ "data-slot": "select-content",
595
+ className: cn(`bg-popover text-popover-foreground data-[state=open]:animate-in
596
+ data-[state=closed]:animate-out data-[state=closed]:fade-out-0
597
+ data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
598
+ data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2
599
+ data-[side=left]:slide-in-from-right-2
600
+ data-[side=right]:slide-in-from-left-2
601
+ data-[side=top]:slide-in-from-bottom-2 relative z-50
602
+ max-h-(--radix-select-content-available-height) min-w-[8rem]
603
+ origin-(--radix-select-content-transform-origin) overflow-x-hidden
604
+ overflow-y-auto rounded-md border shadow-md`, position === "popper" && `data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1
605
+ data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`, className),
606
+ position,
607
+ align,
608
+ ...props,
609
+ children: [
610
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
611
+ /* @__PURE__ */ jsx(Select.Viewport, {
612
+ className: cn("p-1", position === "popper" && `h-[var(--radix-select-trigger-height)] w-full
613
+ min-w-[var(--radix-select-trigger-width)] scroll-my-1`),
614
+ children
615
+ }),
616
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
617
+ ]
618
+ }) });
619
+ }
620
+ function SelectLabel$1({ className, ...props }) {
621
+ return /* @__PURE__ */ jsx(Select.Label, {
622
+ "data-slot": "select-label",
623
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
624
+ ...props
625
+ });
626
+ }
627
+ function SelectItem$1({ className, children, ...props }) {
628
+ return /* @__PURE__ */ jsxs(Select.Item, {
629
+ "data-slot": "select-item",
630
+ className: cn(`focus:bg-accent focus:text-accent-foreground
631
+ [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full
632
+ cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm
633
+ outline-hidden select-none data-[disabled]:pointer-events-none
634
+ data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0
635
+ [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex
636
+ *:[span]:last:items-center *:[span]:last:gap-2`, className),
637
+ ...props,
638
+ children: [/* @__PURE__ */ jsx("span", {
639
+ "data-slot": "select-item-indicator",
640
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
641
+ children: /* @__PURE__ */ jsx(Select.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
642
+ }), /* @__PURE__ */ jsx(Select.ItemText, { children })]
643
+ });
644
+ }
645
+ function SelectSeparator({ className, ...props }) {
646
+ return /* @__PURE__ */ jsx(Select.Separator, {
647
+ "data-slot": "select-separator",
648
+ className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
649
+ ...props
650
+ });
651
+ }
652
+ function SelectScrollUpButton({ className, ...props }) {
653
+ return /* @__PURE__ */ jsx(Select.ScrollUpButton, {
654
+ "data-slot": "select-scroll-up-button",
655
+ className: cn("flex cursor-default items-center justify-center py-1", className),
656
+ ...props,
657
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4" })
658
+ });
659
+ }
660
+ function SelectScrollDownButton({ className, ...props }) {
661
+ return /* @__PURE__ */ jsx(Select.ScrollDownButton, {
662
+ "data-slot": "select-scroll-down-button",
663
+ className: cn("flex cursor-default items-center justify-center py-1", className),
664
+ ...props,
665
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4" })
666
+ });
667
+ }
668
+
669
+ //#endregion
670
+ //#region src/core/skeleton.tsx
671
+ var skeleton_exports = /* @__PURE__ */ __exportAll({ Skeleton: () => Skeleton$1 });
672
+ function Skeleton$1({ className, ...props }) {
673
+ return /* @__PURE__ */ jsx("div", {
674
+ "data-slot": "skeleton",
675
+ className: cn("bg-accent animate-pulse rounded-md", className),
676
+ ...props
677
+ });
678
+ }
679
+
680
+ //#endregion
681
+ //#region src/core/switch.tsx
682
+ var switch_exports = /* @__PURE__ */ __exportAll({ Switch: () => Switch$1 });
683
+ function Switch$1({ className, size = "default", handleClassName, ...props }) {
684
+ return /* @__PURE__ */ jsx(SwitchPrimitive.Root, {
685
+ "data-slot": "switch",
686
+ "data-size": size,
687
+ className: cn(`peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input
688
+ focus-visible:border-ring focus-visible:ring-ring/50
689
+ dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex
690
+ shrink-0 items-center rounded-full border border-transparent shadow-xs
691
+ transition-all outline-none focus-visible:ring-[3px]
692
+ disabled:cursor-not-allowed disabled:opacity-50
693
+ data-[size=default]:h-[1.15rem] data-[size=default]:w-8
694
+ data-[size=sm]:h-3.5 data-[size=sm]:w-6`, className),
695
+ ...props,
696
+ children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
697
+ "data-slot": "switch-thumb",
698
+ className: cn(`bg-background dark:data-[state=unchecked]:bg-foreground
699
+ dark:data-[state=checked]:bg-primary-foreground pointer-events-none
700
+ block rounded-full ring-0 transition-transform
701
+ group-data-[size=default]/switch:size-4
702
+ group-data-[size=sm]/switch:size-3
703
+ data-[state=checked]:translate-x-[calc(100%-2px)]
704
+ data-[state=unchecked]:translate-x-0`, handleClassName)
705
+ })
706
+ });
707
+ }
708
+
709
+ //#endregion
710
+ //#region src/core/textarea.tsx
711
+ var textarea_exports = /* @__PURE__ */ __exportAll({ Textarea: () => Textarea });
712
+ function Textarea({ className, ...props }) {
713
+ return /* @__PURE__ */ jsx("textarea", {
714
+ "data-slot": "textarea",
715
+ className: cn(`border-input placeholder:text-muted-foreground
716
+ focus-visible:border-ring focus-visible:ring-ring/50
717
+ aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
718
+ aria-invalid:border-destructive dark:bg-input/30 flex
719
+ field-sizing-content min-h-16 w-full rounded-md border bg-transparent
720
+ px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none
721
+ focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50
722
+ md:text-sm`, className),
723
+ ...props
724
+ });
725
+ }
726
+
67
727
  //#endregion
68
728
  //#region src/components/atoms/Button/index.tsx
729
+ const Core$8 = Button$2;
69
730
  const variantClasses = {
70
731
  solid: "",
71
732
  outlined: cn("border border-[rgb(var(--btn-border)/0.5)]", "bg-background text-foreground", "hover:bg-accent"),
@@ -88,7 +749,8 @@ const Button$1 = ({ icon, className, variant = "solid", size = "medium", color =
88
749
  const iconOnly = icon && !children;
89
750
  const computedColor = danger ? "danger" : color;
90
751
  const colored = computedColor && computedColor !== "default";
91
- return /* @__PURE__ */ jsxs(Button$2, {
752
+ const displayIcon = loading ? typeof loading === "object" ? loading.icon : /* @__PURE__ */ jsx(LoaderCircle, { className: "animate-spin" }) : icon;
753
+ return /* @__PURE__ */ jsxs(Core$8, {
92
754
  disabled,
93
755
  variant: "default",
94
756
  "data-color": computedColor,
@@ -104,82 +766,58 @@ const Button$1 = ({ icon, className, variant = "solid", size = "medium", color =
104
766
  onMouseDown?.(e);
105
767
  },
106
768
  ...props,
107
- children: [loading ? typeof loading === "object" ? loading.icon : /* @__PURE__ */ jsx(LoaderCircle, { className: "animate-spin" }) : icon, children]
769
+ children: [displayIcon, children]
108
770
  });
109
771
  };
110
772
  var Button_default$1 = Button$1;
111
773
 
112
- //#endregion
113
- //#region src/core/checkbox.tsx
114
- const Checkbox$1 = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
115
- ref,
116
- className: cn(`peer border-primary focus-visible:ring-ring
117
- data-[state=checked]:bg-primary
118
- data-[state=checked]:text-primary-foreground grid h-4 w-4 shrink-0
119
- place-content-center rounded-sm border shadow focus-visible:ring-1
120
- focus-visible:outline-none disabled:cursor-not-allowed
121
- disabled:opacity-50`, className),
122
- ...props,
123
- children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
124
- className: cn("grid place-content-center text-current"),
125
- children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" })
126
- })
127
- }));
128
- Checkbox$1.displayName = CheckboxPrimitive.Root.displayName;
129
-
130
- //#endregion
131
- //#region src/core/label.tsx
132
- const labelVariants = cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
133
- const Label$1 = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(LabelPrimitive.Root, {
134
- ref,
135
- className: cn(labelVariants(), className),
136
- ...props
137
- }));
138
- Label$1.displayName = LabelPrimitive.Root.displayName;
139
-
140
774
  //#endregion
141
775
  //#region src/components/atoms/Checkbox/Group/index.tsx
142
- const Group = ({ direction = "vertical", placement = "left", className, classNames = {}, options: _options, onChange = () => {} }) => {
143
- const [options, setOptions] = useState([]);
144
- const updateOptions = (checked, value) => {
145
- const nextOptions = options.map((item) => ({
146
- ...item,
147
- checked: item.value === value ? checked : item.checked
148
- }));
149
- setOptions(nextOptions);
150
- onChange(nextOptions.filter((item) => item.checked).map((item) => item.value));
776
+ const Group = ({ direction = "vertical", placement = "left", className, classNames = {}, options: _options = [], defaultValue, value: _value, onChange: _onChange = () => {} }) => {
777
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue || []);
778
+ const controlled = _value !== void 0;
779
+ const value = controlled ? _value : uncontrolledValue;
780
+ const options = _options.map((item) => typeof item === "object" ? item : {
781
+ label: `${item}`,
782
+ value: item
783
+ });
784
+ const onChange = (checked, optionValue) => {
785
+ const nextValue = checked ? [...value, optionValue] : value.filter((v) => v !== optionValue);
786
+ if (!controlled) setUncontrolledValue(nextValue);
787
+ _onChange(nextValue);
151
788
  };
152
- useEffect(() => {
153
- setOptions(_options?.map((item) => typeof item === "object" ? item : {
154
- label: `${item}`,
155
- value: item,
156
- checked: false
157
- }) || []);
158
- }, [_options]);
159
789
  return /* @__PURE__ */ jsx("ul", {
160
790
  className: cn(direction === "vertical" ? "space-y-2" : "flex gap-2", className),
161
- children: options.map((item, i) => /* @__PURE__ */ jsx("li", {
162
- className: cn("flex", classNames?.wrapper),
163
- children: /* @__PURE__ */ jsx(Checkbox_default, {
164
- placement,
165
- className: cn(classNames?.item),
166
- value: item.value,
167
- onChange: (checked) => updateOptions(checked, item.value),
168
- children: item.label
169
- })
170
- }, i))
791
+ children: options.map((item, i) => {
792
+ const checked = value.includes(item.value);
793
+ return /* @__PURE__ */ jsx("li", {
794
+ className: cn("flex", classNames?.wrapper),
795
+ children: /* @__PURE__ */ jsx(Checkbox_default, {
796
+ placement,
797
+ className: cn(classNames?.item),
798
+ value: item.value,
799
+ checked,
800
+ onChange: (checked$1) => onChange(checked$1, item.value),
801
+ children: item.label
802
+ })
803
+ }, i);
804
+ })
171
805
  });
172
806
  };
173
807
  var Group_default = Group;
174
808
 
175
809
  //#endregion
176
810
  //#region src/components/atoms/Checkbox/index.tsx
177
- const Checkbox = ({ placement = "left", value = "", children, className, icons, checked: _checked, onChange: _onChange = () => {}, ...props }) => {
178
- const [checked, setChecked] = useState(false);
811
+ const { Checkbox: CoreCheckbox } = checkbox_exports;
812
+ const { Label: CoreLabel } = label_exports;
813
+ const Checkbox = ({ placement = "left", value = "", children, className, icons, defaultChecked, checked: _checked, onChange: _onChange = () => {}, ...props }) => {
814
+ const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked || false);
179
815
  const reactId = useId();
180
816
  const id = typeof value === "boolean" || !value ? reactId : String(value);
817
+ const controlled = _checked !== void 0;
818
+ const checked = controlled ? _checked : uncontrolledChecked;
181
819
  const onChange = (next) => {
182
- setChecked(next);
820
+ if (!controlled) setUncontrolledChecked(next);
183
821
  _onChange(next);
184
822
  };
185
823
  const renderContent = icons ? /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -204,27 +842,276 @@ const Checkbox = ({ placement = "left", value = "", children, className, icons,
204
842
  htmlFor: id,
205
843
  children
206
844
  })
207
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Checkbox$1, {
845
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(CoreCheckbox, {
208
846
  id,
209
847
  checked,
210
848
  className: "cursor-pointer",
211
849
  onCheckedChange: onChange
212
- }), children && /* @__PURE__ */ jsx(Label$1, {
850
+ }), children && /* @__PURE__ */ jsx(CoreLabel, {
213
851
  htmlFor: id,
214
852
  className: "cursor-pointer text-left",
215
853
  children
216
854
  })] });
217
- useEffect(() => {
218
- setChecked(!!_checked);
219
- }, [_checked]);
220
855
  return /* @__PURE__ */ jsx("div", {
221
856
  className: cn("flex items-center gap-x-2", placement === "right" && "flex-row-reverse", className),
222
857
  ...props,
223
858
  children: renderContent
224
859
  });
225
860
  };
226
- Checkbox.Group = Group_default;
227
- var Checkbox_default = Checkbox;
861
+ Checkbox.Group = Group_default;
862
+ var Checkbox_default = Checkbox;
863
+
864
+ //#endregion
865
+ //#region src/components/atoms/Popover/index.tsx
866
+ const { Popover: CorePopover, PopoverContent, PopoverTrigger } = popover_exports;
867
+ const placementMap = {
868
+ top: {
869
+ side: "top",
870
+ align: "center"
871
+ },
872
+ left: {
873
+ side: "left",
874
+ align: "center"
875
+ },
876
+ right: {
877
+ side: "right",
878
+ align: "center"
879
+ },
880
+ bottom: {
881
+ side: "bottom",
882
+ align: "center"
883
+ },
884
+ topLeft: {
885
+ side: "top",
886
+ align: "start"
887
+ },
888
+ topRight: {
889
+ side: "top",
890
+ align: "end"
891
+ },
892
+ bottomLeft: {
893
+ side: "bottom",
894
+ align: "start"
895
+ },
896
+ bottomRight: {
897
+ side: "bottom",
898
+ align: "end"
899
+ },
900
+ leftTop: {
901
+ side: "left",
902
+ align: "start"
903
+ },
904
+ leftBottom: {
905
+ side: "left",
906
+ align: "end"
907
+ },
908
+ rightTop: {
909
+ side: "right",
910
+ align: "start"
911
+ },
912
+ rightBottom: {
913
+ side: "right",
914
+ align: "end"
915
+ }
916
+ };
917
+ const beforeBase = "before:content-[\"\"] before:absolute before:h-0 before:w-0";
918
+ const afterBase = "after:content-[\"\"] after:absolute after:h-0 after:w-0";
919
+ const vBorderShape = "before:border-l-[9px] before:border-r-[9px] before:border-l-transparent before:border-r-transparent";
920
+ const hBorderShape = "before:border-t-[9px] before:border-b-[9px] before:border-t-transparent before:border-b-transparent";
921
+ const vFillShape = "after:border-l-8 after:border-r-8 after:border-l-transparent after:border-r-transparent";
922
+ const hFillShape = "after:border-t-8 after:border-b-8 after:border-t-transparent after:border-b-transparent";
923
+ const topBorder = "before:border-t-[9px] before:border-t-border";
924
+ const bottomBorder = "before:border-b-[9px] before:border-b-border";
925
+ const leftBorder = "before:border-l-[9px] before:border-l-border";
926
+ const rightBorder = "before:border-r-[9px] before:border-r-border";
927
+ const topFill = "after:border-t-8 after:border-t-popover";
928
+ const bottomFill = "after:border-b-8 after:border-b-popover";
929
+ const leftFill = "after:border-l-8 after:border-l-popover";
930
+ const rightFill = "after:border-r-8 after:border-r-popover";
931
+ const arrowStyles = {
932
+ top: [
933
+ "absolute left-1/2 -translate-x-1/2 top-full",
934
+ beforeBase,
935
+ "before:top-0 before:left-1/2 before:-translate-x-1/2",
936
+ vBorderShape,
937
+ topBorder,
938
+ afterBase,
939
+ "after:-top-px after:left-1/2 after:-translate-x-1/2",
940
+ vFillShape,
941
+ topFill
942
+ ].join(" "),
943
+ topLeft: [
944
+ "absolute left-4 top-full",
945
+ beforeBase,
946
+ "before:top-0 before:left-0",
947
+ vBorderShape,
948
+ topBorder,
949
+ afterBase,
950
+ "after:-top-px after:left-px",
951
+ vFillShape,
952
+ topFill
953
+ ].join(" "),
954
+ topRight: [
955
+ "absolute right-4 top-full",
956
+ beforeBase,
957
+ "before:top-0 before:right-0",
958
+ vBorderShape,
959
+ topBorder,
960
+ afterBase,
961
+ "after:-top-px after:right-px",
962
+ vFillShape,
963
+ topFill
964
+ ].join(" "),
965
+ bottom: [
966
+ "absolute left-1/2 -translate-x-1/2 bottom-full",
967
+ beforeBase,
968
+ "before:bottom-0 before:left-1/2 before:-translate-x-1/2",
969
+ vBorderShape,
970
+ bottomBorder,
971
+ afterBase,
972
+ "after:-bottom-px after:left-1/2 after:-translate-x-1/2",
973
+ vFillShape,
974
+ bottomFill
975
+ ].join(" "),
976
+ bottomLeft: [
977
+ "absolute left-4 bottom-full",
978
+ beforeBase,
979
+ "before:bottom-0 before:left-0",
980
+ vBorderShape,
981
+ bottomBorder,
982
+ afterBase,
983
+ "after:-bottom-px after:left-px",
984
+ vFillShape,
985
+ bottomFill
986
+ ].join(" "),
987
+ bottomRight: [
988
+ "absolute right-4 bottom-full",
989
+ beforeBase,
990
+ "before:bottom-0 before:right-0",
991
+ vBorderShape,
992
+ bottomBorder,
993
+ afterBase,
994
+ "after:-bottom-px after:right-px",
995
+ vFillShape,
996
+ bottomFill
997
+ ].join(" "),
998
+ left: [
999
+ "absolute top-1/2 -translate-y-1/2 left-full",
1000
+ beforeBase,
1001
+ "before:left-0 before:top-1/2 before:-translate-y-1/2",
1002
+ hBorderShape,
1003
+ leftBorder,
1004
+ afterBase,
1005
+ "after:-left-px after:top-1/2 after:-translate-y-1/2",
1006
+ hFillShape,
1007
+ leftFill
1008
+ ].join(" "),
1009
+ leftTop: [
1010
+ "absolute top-4 left-full",
1011
+ beforeBase,
1012
+ "before:left-0 before:top-0",
1013
+ hBorderShape,
1014
+ leftBorder,
1015
+ afterBase,
1016
+ "after:-left-px after:top-px",
1017
+ hFillShape,
1018
+ leftFill
1019
+ ].join(" "),
1020
+ leftBottom: [
1021
+ "absolute bottom-4 left-full",
1022
+ beforeBase,
1023
+ "before:left-0 before:bottom-0",
1024
+ hBorderShape,
1025
+ leftBorder,
1026
+ afterBase,
1027
+ "after:-left-px after:bottom-px",
1028
+ hFillShape,
1029
+ leftFill
1030
+ ].join(" "),
1031
+ right: [
1032
+ "absolute top-1/2 -translate-y-1/2 right-full",
1033
+ beforeBase,
1034
+ "before:right-0 before:top-1/2 before:-translate-y-1/2",
1035
+ hBorderShape,
1036
+ rightBorder,
1037
+ afterBase,
1038
+ "after:-right-px after:top-1/2 after:-translate-y-1/2",
1039
+ hFillShape,
1040
+ rightFill
1041
+ ].join(" "),
1042
+ rightTop: [
1043
+ "absolute top-4 right-full",
1044
+ beforeBase,
1045
+ "before:right-0 before:top-0",
1046
+ hBorderShape,
1047
+ rightBorder,
1048
+ afterBase,
1049
+ "after:-right-px after:top-px",
1050
+ hFillShape,
1051
+ rightFill
1052
+ ].join(" "),
1053
+ rightBottom: [
1054
+ "absolute bottom-4 right-full",
1055
+ beforeBase,
1056
+ "before:right-0 before:bottom-0",
1057
+ hBorderShape,
1058
+ rightBorder,
1059
+ afterBase,
1060
+ "after:-right-px after:bottom-px",
1061
+ hFillShape,
1062
+ rightFill
1063
+ ].join(" ")
1064
+ };
1065
+ const Popover = ({ title, placement = "top", className, content, children }) => {
1066
+ return /* @__PURE__ */ jsxs(CorePopover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
1067
+ asChild: true,
1068
+ children
1069
+ }), /* @__PURE__ */ jsxs(PopoverContent, {
1070
+ align: placementMap[placement].align,
1071
+ side: placementMap[placement].side,
1072
+ sideOffset: 16,
1073
+ className: cn("relative w-auto", className),
1074
+ children: [
1075
+ renderConditional(title, (v) => /* @__PURE__ */ jsx(Typography_default.Title, {
1076
+ level: 6,
1077
+ children: v
1078
+ })),
1079
+ content,
1080
+ /* @__PURE__ */ jsx("div", { className: cn(arrowStyles[placement]) })
1081
+ ]
1082
+ })] });
1083
+ };
1084
+ var Popover_default = Popover;
1085
+
1086
+ //#endregion
1087
+ //#region src/components/atoms/ColorPicker/index.tsx
1088
+ const ColorPicker = ({ defaultValue, value: _value, showText, onChange: _onChange = () => {} }) => {
1089
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue || "#fff");
1090
+ const controlled = _value !== void 0;
1091
+ const value = controlled ? _value : uncontrolledValue;
1092
+ const onChange = (color) => {
1093
+ if (!controlled) setUncontrolledValue(color);
1094
+ _onChange(color);
1095
+ };
1096
+ return /* @__PURE__ */ jsx(Popover_default, {
1097
+ placement: "bottomLeft",
1098
+ content: /* @__PURE__ */ jsx(HexColorPicker, {
1099
+ color: value,
1100
+ onChange
1101
+ }),
1102
+ children: /* @__PURE__ */ jsxs("div", {
1103
+ className: cn("inline-flex items-center", "rounded border p-0.5"),
1104
+ children: [/* @__PURE__ */ jsx("div", {
1105
+ className: cn("size-6 cursor-pointer rounded border", "shadow-sm"),
1106
+ style: { backgroundColor: value }
1107
+ }), showText && /* @__PURE__ */ jsx("span", {
1108
+ className: "px-1 font-mono text-sm font-medium",
1109
+ children: value.toUpperCase()
1110
+ })]
1111
+ })
1112
+ });
1113
+ };
1114
+ var ColorPicker_default = ColorPicker;
228
1115
 
229
1116
  //#endregion
230
1117
  //#region src/components/atoms/FloatButton/BackTop/index.tsx
@@ -259,71 +1146,57 @@ const FloatButton = ({ className, children, ...props }) => {
259
1146
  FloatButton.BackTop = BackTop_default;
260
1147
  var FloatButton_default = FloatButton;
261
1148
 
262
- //#endregion
263
- //#region src/core/input.tsx
264
- const Input$1 = React$1.forwardRef(({ className, type, ...props }, ref) => {
265
- return /* @__PURE__ */ jsx("input", {
266
- type,
267
- className: cn(`border-input file:text-foreground placeholder:text-muted-foreground
268
- focus-visible:ring-ring flex h-9 w-full rounded-md border
269
- bg-transparent px-3 py-1 text-base shadow-sm transition-colors
270
- file:border-0 file:bg-transparent file:text-sm file:font-medium
271
- focus-visible:ring-1 focus-visible:outline-none
272
- disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`, className),
273
- ref,
274
- ...props
275
- });
276
- });
277
- Input$1.displayName = "Input";
278
-
279
1149
  //#endregion
280
1150
  //#region src/components/atoms/Input/Search/index.tsx
281
- const Search$1 = forwardRef(({ className, value, allowClear = true, onChange = () => {}, onPressEnter, ...props }, ref) => {
1151
+ const { Input: Core$7 } = input_exports;
1152
+ const Search$1 = ({ ref, className, defaultValue, value, allowClear = true, onChange, onSearch: _onSearch, ...props }) => {
1153
+ const internalRef = useRef(null);
1154
+ const inputRef = ref || internalRef;
1155
+ const onClear = () => {
1156
+ if (inputRef.current) {
1157
+ inputRef.current.value = "";
1158
+ onChange?.({ target: { value: "" } });
1159
+ }
1160
+ };
1161
+ const onSearch = () => {
1162
+ if (inputRef.current) _onSearch?.(inputRef.current.value);
1163
+ };
282
1164
  return /* @__PURE__ */ jsxs("div", {
283
- className: cn("relative flex items-center gap-x-2", "rounded-md", "p-3", className),
284
- children: [
285
- /* @__PURE__ */ jsx(Search, { className: "absolute size-5" }),
286
- /* @__PURE__ */ jsx(Input$1, {
287
- ref,
1165
+ className: cn("flex items-center", "rounded-md", className),
1166
+ children: [/* @__PURE__ */ jsxs("div", {
1167
+ className: cn("relative grow", "inline-flex items-center"),
1168
+ children: [/* @__PURE__ */ jsx(Core$7, {
1169
+ ref: inputRef,
288
1170
  inputMode: "search",
289
1171
  type: "search",
290
1172
  enterKeyHint: "search",
291
- className: cn("w-full"),
1173
+ className: cn("rounded-r-none", "[&::-webkit-search-cancel-button]:hidden", "[&::-webkit-search-decoration]:hidden"),
292
1174
  value,
1175
+ defaultValue,
293
1176
  onChange,
294
1177
  onKeyDown: (e) => {
295
- if (e.key === "Enter") onPressEnter();
1178
+ if (e.key === "Enter") onSearch();
296
1179
  },
297
1180
  ...props
298
- }),
299
- /* @__PURE__ */ jsx(CircleX, {
300
- className: cn("absolute size-4 shrink-0 cursor-pointer", (!allowClear || !value) && "hidden"),
301
- onClick: () => onChange({ target: { value: "" } })
302
- })
303
- ]
1181
+ }), /* @__PURE__ */ jsx(CircleX, {
1182
+ className: cn("absolute right-2 size-4", "shrink-0 cursor-pointer", (!allowClear || value !== void 0 && !value) && "hidden"),
1183
+ onClick: onClear
1184
+ })]
1185
+ }), /* @__PURE__ */ jsx(Button_default$1, {
1186
+ icon: /* @__PURE__ */ jsx(Search, {}),
1187
+ className: cn("rounded-l-none", "size-9"),
1188
+ onClick: onSearch
1189
+ })]
304
1190
  });
305
- });
1191
+ };
306
1192
  Search$1.displayName = "Search";
307
1193
  var Search_default = Search$1;
308
1194
 
309
- //#endregion
310
- //#region src/core/textarea.tsx
311
- const Textarea = React$1.forwardRef(({ className, ...props }, ref) => {
312
- return /* @__PURE__ */ jsx("textarea", {
313
- className: cn(`border-input placeholder:text-muted-foreground focus-visible:ring-ring
314
- flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2
315
- text-base shadow-sm focus-visible:ring-1 focus-visible:outline-none
316
- disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`, className),
317
- ref,
318
- ...props
319
- });
320
- });
321
- Textarea.displayName = "Textarea";
322
-
323
1195
  //#endregion
324
1196
  //#region src/components/atoms/Input/TextArea/index.tsx
1197
+ const { Textarea: Core$6 } = textarea_exports;
325
1198
  const TextArea = ({ className, ref, ...props }) => {
326
- return /* @__PURE__ */ jsx(Textarea, {
1199
+ return /* @__PURE__ */ jsx(Core$6, {
327
1200
  ref,
328
1201
  className: cn(className),
329
1202
  ...props
@@ -333,74 +1206,22 @@ var TextArea_default = TextArea;
333
1206
 
334
1207
  //#endregion
335
1208
  //#region src/components/atoms/Input/index.tsx
1209
+ const { Input: Core$5 } = input_exports;
336
1210
  const Input = ({ ...props }) => {
337
- return /* @__PURE__ */ jsx(Input$1, { ...props });
1211
+ return /* @__PURE__ */ jsx(Core$5, { ...props });
338
1212
  };
339
1213
  Input.Search = Search_default;
340
1214
  Input.TextArea = TextArea_default;
341
1215
  var Input_default = Input;
342
1216
 
343
- //#endregion
344
- //#region src/core/popover.tsx
345
- const Popover$1 = PopoverPrimitive.Root;
346
- const PopoverTrigger = PopoverPrimitive.Trigger;
347
- const PopoverAnchor = PopoverPrimitive.Anchor;
348
- const PopoverContent = React$1.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
349
- ref,
350
- align,
351
- sideOffset,
352
- className: cn(`bg-popover text-popover-foreground data-[state=open]:animate-in
353
- data-[state=closed]:animate-out data-[state=closed]:fade-out-0
354
- data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
355
- data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2
356
- data-[side=left]:slide-in-from-right-2
357
- data-[side=right]:slide-in-from-left-2
358
- data-[side=top]:slide-in-from-bottom-2 z-50 w-72
359
- origin-[--radix-popover-content-transform-origin] rounded-md border p-4
360
- shadow-md outline-none`, className),
361
- ...props
362
- }) }));
363
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
364
-
365
- //#endregion
366
- //#region src/components/atoms/Popover/index.tsx
367
- const Popover = ({ title, content, children }) => {
368
- return /* @__PURE__ */ jsxs(Popover$1, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
369
- asChild: true,
370
- children
371
- }), /* @__PURE__ */ jsxs(PopoverContent, {
372
- align: "start",
373
- children: [title && typeof title === "string" ? /* @__PURE__ */ jsx(Typography_default.Title, {
374
- level: 5,
375
- children: title
376
- }) : title, content]
377
- })] });
378
- };
379
- var Popover_default = Popover;
380
-
381
- //#endregion
382
- //#region src/core/progress.tsx
383
- const Progress$1 = React$1.forwardRef(({ className, barClassName, barStyle, value, ...props }, ref) => /* @__PURE__ */ jsx(ProgressPrimitive.Root, {
384
- ref,
385
- className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className),
386
- ...props,
387
- children: /* @__PURE__ */ jsx(ProgressPrimitive.Indicator, {
388
- className: cn("bg-primary h-full w-full flex-1 transition-all", barClassName),
389
- style: {
390
- transform: `translateX(-${100 - (value || 0)}%)`,
391
- ...barStyle
392
- }
393
- })
394
- }));
395
- Progress$1.displayName = ProgressPrimitive.Root.displayName;
396
-
397
1217
  //#endregion
398
1218
  //#region src/components/atoms/Progress/index.tsx
1219
+ const { Progress: Core$4 } = progress_exports;
399
1220
  const Progress = ({ value, className, direction = "horizontal", classNames }) => {
400
1221
  const isHorizontal = direction === "horizontal";
401
1222
  const dimension = isHorizontal ? "width" : "height";
402
1223
  const percent = isNaN(value) ? 0 : value;
403
- return /* @__PURE__ */ jsx(Progress$1, {
1224
+ return /* @__PURE__ */ jsx(Core$4, {
404
1225
  value,
405
1226
  className: cn(isHorizontal ? "h-4 w-full" : "flex h-full w-4 flex-col justify-end", className, classNames?.background),
406
1227
  barClassName: cn("flex-none", classNames?.bar),
@@ -413,14 +1234,47 @@ const Progress = ({ value, className, direction = "horizontal", classNames }) =>
413
1234
  var Progress_default = Progress;
414
1235
 
415
1236
  //#endregion
416
- //#region src/core/skeleton.tsx
417
- function Skeleton$1({ className, ...props }) {
418
- return /* @__PURE__ */ jsx("div", {
419
- "data-slot": "skeleton",
420
- className: cn("bg-accent animate-pulse rounded-md", className),
421
- ...props
1237
+ //#region src/components/atoms/Radio/index.tsx
1238
+ const { RadioGroup: Core$3, RadioGroupItem: Item$3 } = radio_group_exports;
1239
+ const { Label: Label$1 } = label_exports;
1240
+ const Radio = ({ children }) => {
1241
+ const id = useId();
1242
+ return /* @__PURE__ */ jsx(Core$3, { children: /* @__PURE__ */ jsxs("div", {
1243
+ className: "flex items-center gap-3",
1244
+ children: [/* @__PURE__ */ jsx(Item$3, {
1245
+ value: "default",
1246
+ id
1247
+ }), /* @__PURE__ */ jsxs(Label$1, {
1248
+ htmlFor: id,
1249
+ children: [" ", children]
1250
+ })]
1251
+ }) });
1252
+ };
1253
+ var Radio_default = Radio;
1254
+
1255
+ //#endregion
1256
+ //#region src/components/atoms/Select/index.tsx
1257
+ const { Select: Core$2, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } = select_exports;
1258
+ const isGroup = (option) => {
1259
+ return "options" in option && Array.isArray(option.options);
1260
+ };
1261
+ const Select$1 = ({ className, placeholder, options, onChange, ...props }) => {
1262
+ return /* @__PURE__ */ jsxs(Core$2, {
1263
+ onValueChange: onChange,
1264
+ ...props,
1265
+ children: [/* @__PURE__ */ jsx(SelectTrigger, {
1266
+ className: cn("w-full max-w-48", className),
1267
+ children: /* @__PURE__ */ jsx(SelectValue, { placeholder })
1268
+ }), /* @__PURE__ */ jsx(SelectContent, { children: options?.map((option, index) => isGroup(option) ? /* @__PURE__ */ jsxs(SelectGroup, { children: [/* @__PURE__ */ jsx(SelectLabel, { children: option.label }), option.options.map((item) => /* @__PURE__ */ jsx(SelectItem, {
1269
+ value: item.value,
1270
+ children: item.label
1271
+ }, item.value))] }, index) : /* @__PURE__ */ jsx(SelectItem, {
1272
+ value: option.value,
1273
+ children: option.label
1274
+ }, option.value)) })]
422
1275
  });
423
- }
1276
+ };
1277
+ var Select_default = Select$1;
424
1278
 
425
1279
  //#endregion
426
1280
  //#region src/components/atoms/Skeleton/Button/index.tsx
@@ -445,6 +1299,7 @@ var Node_default = Node;
445
1299
 
446
1300
  //#endregion
447
1301
  //#region src/components/atoms/Skeleton/index.tsx
1302
+ const { Skeleton: Core$1 } = skeleton_exports;
448
1303
  const getValueAtIndex = (value, index) => {
449
1304
  return Array.isArray(value) ? value[index] ?? value[0] : value;
450
1305
  };
@@ -457,13 +1312,13 @@ const Skeleton = ({ active = true, loading = true, avatar, size = "default", dir
457
1312
  if (!loading) return children;
458
1313
  return /* @__PURE__ */ jsxs("div", {
459
1314
  className: cn("flex items-center gap-3"),
460
- children: [avatar && /* @__PURE__ */ jsx(Skeleton$1, { className: cn("h-12 w-12", "rounded-xl", !active && "animate-none", classNames.avatar) }), /* @__PURE__ */ jsx("div", {
1315
+ children: [avatar && /* @__PURE__ */ jsx(Core$1, { className: cn("h-12 w-12", "rounded-xl", !active && "animate-none", classNames.avatar) }), /* @__PURE__ */ jsx("div", {
461
1316
  className: cn("flex grow", direction === "vertical" && "flex-col", classNames.wrapper),
462
1317
  style: { gap },
463
1318
  children: Array.from({ length: count }).map((_, index) => {
464
1319
  const itemWidth = getValueAtIndex(width, index);
465
1320
  const itemHeight = getValueAtIndex(height, index);
466
- return /* @__PURE__ */ jsx(Skeleton$1, {
1321
+ return /* @__PURE__ */ jsx(Core$1, {
467
1322
  className: cn("rounded-md", !active && "animate-none", SIZES[size], className, classNames.item),
468
1323
  style: {
469
1324
  ...style,
@@ -492,37 +1347,23 @@ const Spin = ({ spinning, className, ...props }) => {
492
1347
  };
493
1348
  var Spin_default = Spin;
494
1349
 
495
- //#endregion
496
- //#region src/core/switch.tsx
497
- function Switch$1({ className, handleClassName, ...props }) {
498
- return /* @__PURE__ */ jsx(SwitchPrimitive.Root, {
499
- "data-slot": "switch",
500
- className: cn(`peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input
501
- focus-visible:border-ring focus-visible:ring-ring/50
502
- dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8
503
- shrink-0 items-center rounded-full border border-transparent shadow-xs
504
- transition-all outline-none focus-visible:ring-[3px]
505
- disabled:cursor-not-allowed disabled:opacity-50`, className),
506
- ...props,
507
- children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, {
508
- "data-slot": "switch-thumb",
509
- className: cn(`bg-background dark:data-[state=unchecked]:bg-foreground
510
- dark:data-[state=checked]:bg-primary-foreground pointer-events-none
511
- block size-4 rounded-full ring-0 transition-transform
512
- data-[state=checked]:translate-x-[calc(100%-2px)]
513
- data-[state=unchecked]:translate-x-0`, handleClassName)
514
- })
515
- });
516
- }
517
-
518
1350
  //#endregion
519
1351
  //#region src/components/atoms/Switch/index.tsx
520
- const Switch = ({ onChange, className, classNames, ...props }) => {
521
- return /* @__PURE__ */ jsx(Switch$1, {
522
- className: cn(className, classNames?.track),
523
- handleClassName: cn(classNames?.handle),
524
- onCheckedChange: (checked) => {
525
- onChange?.(checked);
1352
+ const { Switch: Core } = switch_exports;
1353
+ const Switch = ({ className, classNames, defaultChecked, checked: _checked, onChange: _onChange = () => {}, ...props }) => {
1354
+ const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked || false);
1355
+ const controlled = _checked !== void 0;
1356
+ const checked = controlled ? _checked : uncontrolledChecked;
1357
+ const onChange = (next) => {
1358
+ if (!controlled) setUncontrolledChecked(next);
1359
+ _onChange(next);
1360
+ };
1361
+ return /* @__PURE__ */ jsx(Core, {
1362
+ checked,
1363
+ className: cn("h-8.5 w-13", className, classNames?.track),
1364
+ handleClassName: cn("h-7 w-7", "data-[state=checked]:translate-x-5", "data-[state=unchecked]:translate-x-[2px]", classNames?.handle),
1365
+ onCheckedChange: (checked$1) => {
1366
+ onChange(checked$1);
526
1367
  },
527
1368
  ...props
528
1369
  });
@@ -535,10 +1376,10 @@ const Card = ({ title, children, className, classNames, variant = "outlined", ..
535
1376
  return /* @__PURE__ */ jsxs("div", {
536
1377
  className: cn("w-full", "rounded-lg p-4", "bg-white shadow-sm transition-all", variant === "outlined" && "border border-gray-200", className),
537
1378
  ...props,
538
- children: [title && /* @__PURE__ */ jsx("div", {
1379
+ children: [renderConditional(title, (v) => /* @__PURE__ */ jsx("div", {
539
1380
  className: cn("mb-4 font-bold", classNames?.title),
540
- children: title
541
- }), /* @__PURE__ */ jsx("div", {
1381
+ children: v
1382
+ })), /* @__PURE__ */ jsx("div", {
542
1383
  className: cn(classNames?.body),
543
1384
  children
544
1385
  })]
@@ -546,50 +1387,28 @@ const Card = ({ title, children, className, classNames, variant = "outlined", ..
546
1387
  };
547
1388
  var Card_default = Card;
548
1389
 
549
- //#endregion
550
- //#region src/core/accordion.tsx
551
- const Accordion = AccordionPrimitive.Root;
552
- const AccordionItem = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Item, {
553
- ref,
554
- className: cn("border-b", className),
555
- ...props
556
- }));
557
- AccordionItem.displayName = "AccordionItem";
558
- const AccordionTrigger = React$1.forwardRef(({ expandIcon, className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, {
559
- className: "flex",
560
- children: /* @__PURE__ */ jsxs(AccordionPrimitive.Trigger, {
561
- ref,
562
- className: cn(`flex flex-1 items-center justify-between py-4 text-left text-sm
563
- font-medium transition-all hover:underline
564
- [&[data-state=open]>svg]:rotate-180`, className),
565
- ...props,
566
- children: [children, expandIcon || /* @__PURE__ */ jsx(ChevronDown, { className: "text-muted-foreground h-4 w-4 shrink-0 transition-transform\n duration-200" })]
567
- })
568
- }));
569
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
570
- const AccordionContent = React$1.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Content, {
571
- ref,
572
- className: "data-[state=closed]:animate-accordion-up\n data-[state=open]:animate-accordion-down overflow-hidden text-sm",
573
- ...props,
574
- children: /* @__PURE__ */ jsx("div", {
575
- className: cn("pt-0 pb-4", className),
576
- children
577
- })
578
- }));
579
- AccordionContent.displayName = AccordionPrimitive.Content.displayName;
580
-
581
1390
  //#endregion
582
1391
  //#region src/components/molecules/Collapse/index.tsx
583
- const Collapse = ({ expandIcon, accordion = false, items: _items = [], className, classNames, defaultActiveKey }) => {
584
- const [items, setItems] = useState([]);
585
- useEffect(() => {
586
- setItems(_items);
587
- }, [_items]);
1392
+ const { Accordion, AccordionItem, AccordionTrigger, AccordionContent } = accordion_exports;
1393
+ const Collapse = ({ expandIcon, accordion = false, items = [], className, classNames, defaultActiveKey, activeKey: _activeKey, onChange: _onChange }) => {
1394
+ const controlled = _activeKey !== void 0;
588
1395
  return /* @__PURE__ */ jsx(Accordion, {
589
1396
  className,
590
- ...accordion ? {
1397
+ ...accordion ? controlled ? {
1398
+ type: "single",
1399
+ value: `${_activeKey?.[0] ?? ""}`,
1400
+ onValueChange: (value) => {
1401
+ _onChange?.(value ? [value] : []);
1402
+ }
1403
+ } : {
591
1404
  type: "single",
592
- defaultValue: `${defaultActiveKey?.[0]}`
1405
+ defaultValue: `${defaultActiveKey?.[0] ?? ""}`
1406
+ } : controlled ? {
1407
+ type: "multiple",
1408
+ value: _activeKey?.map((key) => `${key}`),
1409
+ onValueChange: (values) => {
1410
+ _onChange?.(values);
1411
+ }
593
1412
  } : {
594
1413
  type: "multiple",
595
1414
  defaultValue: defaultActiveKey?.map((key) => `${key}`)
@@ -614,9 +1433,8 @@ var Collapse_default = Collapse;
614
1433
 
615
1434
  //#endregion
616
1435
  //#region src/components/molecules/Menu/Item/Label/index.tsx
617
- const Label = ({ children, level = 4, className, ...props }) => {
1436
+ const Label = ({ children, className, ...props }) => {
618
1437
  if (typeof children === "string") return /* @__PURE__ */ jsx(Typography_default.Text, {
619
- level,
620
1438
  className: cn(className),
621
1439
  ...props,
622
1440
  children
@@ -766,13 +1584,13 @@ function findKey(menu, targetKeys) {
766
1584
  return false;
767
1585
  }
768
1586
  const Menu = ({ items, mode = "vertical", defaultSelectedKeys = [], selectedKeys: _selectedKeys, className, classNames, styles, offset, inlineOffset, onClick, onSelect: _onSelect, ...props }) => {
769
- const isControlled = _selectedKeys !== void 0;
1587
+ const controlled = _selectedKeys !== void 0;
770
1588
  const [uncontrolledSelectedKeys, setUncontrolledSelectedKeys] = useState(defaultSelectedKeys ?? []);
771
- const selectedKeys = isControlled ? _selectedKeys : uncontrolledSelectedKeys;
1589
+ const selectedKeys = controlled ? _selectedKeys : uncontrolledSelectedKeys;
772
1590
  const selectedKeysSet = useMemo(() => new Set(selectedKeys ?? []), [selectedKeys]);
773
1591
  const selectionMap = useMemo(() => buildSelectionMap(items ?? [], selectedKeysSet), [items, selectedKeysSet]);
774
1592
  const onSelect = (params) => {
775
- if (!isControlled) setUncontrolledSelectedKeys([params.key]);
1593
+ if (!controlled) setUncontrolledSelectedKeys([params.key]);
776
1594
  _onSelect?.(params);
777
1595
  };
778
1596
  return /* @__PURE__ */ jsx("ul", {
@@ -801,31 +1619,32 @@ var Menu_default = Menu;
801
1619
 
802
1620
  //#endregion
803
1621
  //#region src/components/molecules/Dropdown/index.tsx
804
- const Dropdown = ({ children, menu, trigger = "hover", open: _open = false, onOpenChange = () => {}, ...props }) => {
805
- const [open, setOpen] = useState(false);
1622
+ const Dropdown = ({ children, menu, trigger = "hover", open: _open, onOpenChange: _onOpenChange = () => {}, ...props }) => {
1623
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
1624
+ const controlled = _open !== void 0;
1625
+ const open = controlled ? _open : uncontrolledOpen;
806
1626
  const isClickTrigger = trigger === "click";
807
- useEffect(() => {
808
- setOpen(_open);
809
- }, [_open]);
1627
+ const onOpenChange = (nextOpen) => {
1628
+ if (!controlled) setUncontrolledOpen(nextOpen);
1629
+ _onOpenChange(nextOpen);
1630
+ };
810
1631
  return /* @__PURE__ */ jsxs("div", {
811
1632
  ...props,
812
1633
  className: cn("relative z-0", "inline-block cursor-pointer"),
813
1634
  onMouseEnter: () => {
814
1635
  if (isClickTrigger) return;
815
- setOpen(true);
1636
+ onOpenChange(true);
816
1637
  },
817
1638
  onMouseLeave: () => {
818
1639
  if (isClickTrigger) return;
819
- setOpen(false);
1640
+ onOpenChange(false);
820
1641
  },
821
1642
  children: [/* @__PURE__ */ jsx("div", {
822
1643
  onClick: () => {
823
1644
  if (!isClickTrigger) return;
824
- setOpen(!open);
825
1645
  onOpenChange(!open);
826
1646
  },
827
1647
  onBlur: () => {
828
- setOpen(false);
829
1648
  onOpenChange(false);
830
1649
  },
831
1650
  children
@@ -4680,93 +5499,9 @@ const Space = ({ loading, loader, children, size = "middle", orientation = "hori
4680
5499
  };
4681
5500
  var Space_default = Space;
4682
5501
 
4683
- //#endregion
4684
- //#region src/core/drawer.tsx
4685
- function Drawer$2({ ...props }) {
4686
- return /* @__PURE__ */ jsx(Drawer.Root, {
4687
- "data-slot": "drawer",
4688
- ...props
4689
- });
4690
- }
4691
- function DrawerPortal({ ...props }) {
4692
- return /* @__PURE__ */ jsx(Drawer.Portal, {
4693
- "data-slot": "drawer-portal",
4694
- ...props
4695
- });
4696
- }
4697
- function DrawerOverlay({ className, ...props }) {
4698
- return /* @__PURE__ */ jsx(Drawer.Overlay, {
4699
- "data-slot": "drawer-overlay",
4700
- className: cn(`data-[state=open]:animate-in data-[state=closed]:animate-out
4701
- data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0
4702
- z-50 bg-black/50`, className),
4703
- ...props
4704
- });
4705
- }
4706
- function DrawerContent({ className, classNames = {}, handlebar, mask, children, ...props }) {
4707
- return /* @__PURE__ */ jsxs(DrawerPortal, {
4708
- "data-slot": "drawer-portal",
4709
- children: [/* @__PURE__ */ jsx(DrawerOverlay, { className: cn(classNames?.mask, !mask && "hidden") }), /* @__PURE__ */ jsxs(Drawer.Content, {
4710
- "data-slot": "drawer-content",
4711
- className: cn("group/drawer-content bg-background fixed z-50 flex h-auto flex-col", `data-[vaul-drawer-direction=top]:inset-x-0
4712
- data-[vaul-drawer-direction=top]:top-0
4713
- data-[vaul-drawer-direction=top]:mb-24
4714
- data-[vaul-drawer-direction=top]:max-h-[80vh]
4715
- data-[vaul-drawer-direction=top]:rounded-b-lg
4716
- data-[vaul-drawer-direction=top]:border-b`, `data-[vaul-drawer-direction=bottom]:inset-x-0
4717
- data-[vaul-drawer-direction=bottom]:bottom-0
4718
- data-[vaul-drawer-direction=bottom]:mt-24
4719
- data-[vaul-drawer-direction=bottom]:max-h-[80vh]
4720
- data-[vaul-drawer-direction=bottom]:rounded-t-lg
4721
- data-[vaul-drawer-direction=bottom]:border-t`, `data-[vaul-drawer-direction=right]:inset-y-0
4722
- data-[vaul-drawer-direction=right]:right-0
4723
- data-[vaul-drawer-direction=right]:w-3/4
4724
- data-[vaul-drawer-direction=right]:border-l
4725
- data-[vaul-drawer-direction=right]:sm:max-w-sm`, `data-[vaul-drawer-direction=left]:inset-y-0
4726
- data-[vaul-drawer-direction=left]:left-0
4727
- data-[vaul-drawer-direction=left]:w-3/4
4728
- data-[vaul-drawer-direction=left]:border-r
4729
- data-[vaul-drawer-direction=left]:sm:max-w-sm`, className),
4730
- ...props,
4731
- children: [/* @__PURE__ */ jsx("div", { className: cn(`bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full
4732
- group-data-[vaul-drawer-direction=bottom]/drawer-content:block`, classNames?.handlebar, !handlebar && "hidden") }), children]
4733
- })]
4734
- });
4735
- }
4736
- function DrawerHeader({ className, ...props }) {
4737
- return /* @__PURE__ */ jsx("div", {
4738
- "data-slot": "drawer-header",
4739
- className: cn(`flex flex-col gap-0.5 p-4
4740
- group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center
4741
- group-data-[vaul-drawer-direction=top]/drawer-content:text-center
4742
- md:gap-1.5 md:text-left`, className),
4743
- ...props
4744
- });
4745
- }
4746
- function DrawerFooter({ className, ...props }) {
4747
- return /* @__PURE__ */ jsx("div", {
4748
- "data-slot": "drawer-footer",
4749
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
4750
- ...props
4751
- });
4752
- }
4753
- function DrawerTitle({ className, ...props }) {
4754
- return /* @__PURE__ */ jsx(Drawer.Title, {
4755
- "data-slot": "drawer-title",
4756
- className: cn("text-foreground font-semibold", className),
4757
- ...props
4758
- });
4759
- }
4760
- function DrawerDescription({ className, ...props }) {
4761
- return /* @__PURE__ */ jsx(Drawer.Description, {
4762
- "data-slot": "drawer-description",
4763
- className: cn("text-muted-foreground text-sm", className),
4764
- ...props
4765
- });
4766
- }
4767
-
4768
5502
  //#endregion
4769
5503
  //#region src/components/organisms/Drawer/index.tsx
5504
+ const { DrawerContent, Drawer: DrawerCore, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle } = drawer_exports;
4770
5505
  const Drawer$1 = ({ open, title, footer, closable = true, closeIcon, direction = "bottom", maskClosable = true, handlebar = true, draggable = false, rounded = false, mask = true, className, classNames, style, children, container, onClose, ...props }) => {
4771
5506
  useEffect(() => {
4772
5507
  if (!open) return;
@@ -4782,7 +5517,7 @@ const Drawer$1 = ({ open, title, footer, closable = true, closeIcon, direction =
4782
5517
  }
4783
5518
  }, [open, mask]);
4784
5519
  if (typeof window === "undefined") return null;
4785
- return /* @__PURE__ */ jsx(Drawer$2, {
5520
+ return /* @__PURE__ */ jsx(DrawerCore, {
4786
5521
  open,
4787
5522
  direction,
4788
5523
  handleOnly: !draggable,
@@ -4805,21 +5540,21 @@ const Drawer$1 = ({ open, title, footer, closable = true, closeIcon, direction =
4805
5540
  className: cn(classNames?.header, !title && "p-0"),
4806
5541
  children: [/* @__PURE__ */ jsxs(DrawerTitle, {
4807
5542
  className: cn("flex justify-between", classNames?.title),
4808
- children: [/* @__PURE__ */ jsx("span", { children: title }), closable && /* @__PURE__ */ jsx("span", {
4809
- className: cn("absolute right-5 top-3 cursor-pointer", classNames?.close),
5543
+ children: [/* @__PURE__ */ jsx("span", { children: title }), renderConditional(closable ? closeIcon || /* @__PURE__ */ jsx(X, {}) : null, (v) => /* @__PURE__ */ jsx("span", {
5544
+ className: cn("absolute top-3 right-5 cursor-pointer", classNames?.close),
4810
5545
  onClick: onClose,
4811
- children: closeIcon || /* @__PURE__ */ jsx(X, {})
4812
- })]
5546
+ children: v
5547
+ }))]
4813
5548
  }), /* @__PURE__ */ jsx(DrawerDescription, { className: "hidden" })]
4814
5549
  }),
4815
5550
  /* @__PURE__ */ jsx("div", {
4816
5551
  className: cn("overflow-auto p-5", classNames?.body),
4817
5552
  children
4818
5553
  }),
4819
- footer && /* @__PURE__ */ jsx(DrawerFooter, {
5554
+ renderConditional(footer, (v) => /* @__PURE__ */ jsx(DrawerFooter, {
4820
5555
  className: cn(classNames?.footer),
4821
- children: footer
4822
- })
5556
+ children: v
5557
+ }))
4823
5558
  ]
4824
5559
  })
4825
5560
  });
@@ -4877,10 +5612,10 @@ const List = ({ loading, loaderProps, loader, header, title, empty, scroll, data
4877
5612
  className: cn(className),
4878
5613
  ...props,
4879
5614
  children: [
4880
- /* @__PURE__ */ jsx("div", {
4881
- className: cn(classNames?.title),
4882
- children: title
4883
- }),
5615
+ renderConditional(title, (v) => /* @__PURE__ */ jsx("h2", {
5616
+ className: cn("px-1.5 py-4", "text-black-90 text-lg leading-5.75 font-bold"),
5617
+ children: v
5618
+ })),
4884
5619
  /* @__PURE__ */ jsx("div", {
4885
5620
  className: cn(classNames?.header),
4886
5621
  children: header
@@ -4903,86 +5638,9 @@ const List = ({ loading, loaderProps, loader, header, title, empty, scroll, data
4903
5638
  List.Item = Item_default;
4904
5639
  var List_default = List;
4905
5640
 
4906
- //#endregion
4907
- //#region src/core/dialog.tsx
4908
- function Dialog({ ...props }) {
4909
- return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
4910
- "data-slot": "dialog",
4911
- ...props
4912
- });
4913
- }
4914
- function DialogPortal({ ...props }) {
4915
- return /* @__PURE__ */ jsx(DialogPrimitive.Portal, {
4916
- "data-slot": "dialog-portal",
4917
- ...props
4918
- });
4919
- }
4920
- function DialogOverlay({ className, ...props }) {
4921
- return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
4922
- "data-slot": "dialog-overlay",
4923
- className: cn(`data-[state=open]:animate-in data-[state=closed]:animate-out
4924
- data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0
4925
- z-50 bg-black/50`, className),
4926
- ...props
4927
- });
4928
- }
4929
- function DialogContent({ className, children, showCloseButton = true, classNames, closeIcon, closable, container, onCancel, ...props }) {
4930
- return /* @__PURE__ */ jsxs(DialogPortal, {
4931
- "data-slot": "dialog-portal",
4932
- container,
4933
- children: [/* @__PURE__ */ jsx(DialogOverlay, { className: cn(classNames?.mask) }), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
4934
- "data-slot": "dialog-content",
4935
- className: cn(`bg-background data-[state=open]:animate-in
4936
- data-[state=closed]:animate-out data-[state=closed]:fade-out-0
4937
- data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95
4938
- data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid
4939
- w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%]
4940
- gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`, className),
4941
- ...props,
4942
- children: [children, showCloseButton && /* @__PURE__ */ jsxs(DialogPrimitive.Close, {
4943
- "data-slot": "dialog-close",
4944
- className: "ring-offset-background focus:ring-ring\n data-[state=open]:bg-accent\n data-[state=open]:text-muted-foreground absolute top-4 right-4\n rounded-xs opacity-70 transition-opacity hover:opacity-100\n focus:ring-2 focus:ring-offset-2 focus:outline-hidden\n disabled:pointer-events-none [&_svg]:pointer-events-none\n [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4945
- disabled: typeof closable === "object" && closable.disabled,
4946
- onClick: onCancel,
4947
- children: [closeIcon || /* @__PURE__ */ jsx(XIcon, {}), /* @__PURE__ */ jsx("span", {
4948
- className: "sr-only",
4949
- children: "Close"
4950
- })]
4951
- })]
4952
- })]
4953
- });
4954
- }
4955
- function DialogHeader({ className, ...props }) {
4956
- return /* @__PURE__ */ jsx("div", {
4957
- "data-slot": "dialog-header",
4958
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
4959
- ...props
4960
- });
4961
- }
4962
- function DialogFooter({ className, ...props }) {
4963
- return /* @__PURE__ */ jsx("div", {
4964
- "data-slot": "dialog-footer",
4965
- className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
4966
- ...props
4967
- });
4968
- }
4969
- function DialogTitle({ className, ...props }) {
4970
- return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
4971
- "data-slot": "dialog-title",
4972
- className: cn("text-lg leading-none font-semibold", className),
4973
- ...props
4974
- });
4975
- }
4976
- function DialogDescription({ className, ...props }) {
4977
- return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
4978
- "data-slot": "dialog-description",
4979
- className: cn("text-muted-foreground text-sm", className),
4980
- ...props
4981
- });
4982
- }
4983
-
4984
5641
  //#endregion
4985
5642
  //#region src/components/organisms/Modal/index.tsx
5643
+ const { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } = dialog_exports;
4986
5644
  const isBrowser = typeof window !== "undefined" && typeof document !== "undefined";
4987
5645
  let modalRoot = null;
4988
5646
  let modalStack = [];
@@ -5220,7 +5878,7 @@ var Swiper_default = Swiper$1;
5220
5878
  //#region src/components/templates/Layout/Content/index.tsx
5221
5879
  const Content = ({ children, className, ...props }) => {
5222
5880
  return /* @__PURE__ */ jsx("div", {
5223
- className: cn("shrink flex-grow basis-0", className),
5881
+ className: cn("shrink grow basis-0", className),
5224
5882
  ...props,
5225
5883
  children
5226
5884
  });
@@ -5253,7 +5911,7 @@ var Header_default = Header;
5253
5911
  //#region src/components/templates/Layout/Sider/index.tsx
5254
5912
  const Sider = ({ children, className, ...props }) => {
5255
5913
  return /* @__PURE__ */ jsx("div", {
5256
- className: cn("z-[100]", "w-[200px]", className),
5914
+ className: cn("z-100", "w-50", className),
5257
5915
  ...props,
5258
5916
  children
5259
5917
  });
@@ -5276,4 +5934,4 @@ Layout.Sider = Sider_default;
5276
5934
  var Layout_default = Layout;
5277
5935
 
5278
5936
  //#endregion
5279
- export { Button_default$1 as C, Checkbox_default as S, Skeleton_default as _, Drawer_default as a, Input_default as b, Dropdown_default as c, buildSelectionMap as d, findKey as f, Spin_default as g, Switch_default as h, List_default as i, MENU_CLASSNAMES as l, Card_default as m, Swiper_default as n, Space_default as o, Collapse_default as p, Modal_default as r, Marquees_default as s, Layout_default as t, Menu_default as u, Progress_default as v, FloatButton_default as x, Popover_default as y };
5937
+ export { ColorPicker_default as C, Button_default$1 as E, FloatButton_default as S, Checkbox_default as T, Skeleton_default as _, Drawer_default as a, Progress_default as b, Dropdown_default as c, buildSelectionMap as d, findKey as f, Spin_default as g, Switch_default as h, List_default as i, MENU_CLASSNAMES as l, Card_default as m, Swiper_default as n, Space_default as o, Collapse_default as p, Modal_default as r, Marquees_default as s, Layout_default as t, Menu_default as u, Select_default as v, Popover_default as w, Input_default as x, Radio_default as y };