@yuva-devlab/ui 1.0.1 → 1.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.
Files changed (70) hide show
  1. package/README.md +29 -14
  2. package/dist/common.css +158 -0
  3. package/dist/components/accordion/accordion.css +49 -0
  4. package/dist/components/alert/alert.css +41 -0
  5. package/dist/components/alert-dialog/alert-dialog.css +78 -0
  6. package/dist/components/avatar/avatar.css +26 -0
  7. package/dist/components/badge/badge.css +76 -0
  8. package/dist/components/breadcrumb/breadcrumb.css +63 -0
  9. package/dist/components/button/button.css +106 -0
  10. package/dist/components/card/card.css +30 -0
  11. package/dist/components/carousel/carousel.css +67 -0
  12. package/dist/components/chart/chart.css +38 -0
  13. package/dist/components/checkbox/checkbox.css +27 -0
  14. package/dist/components/command/command.css +125 -0
  15. package/dist/components/context-menu/context-menu.css +19 -0
  16. package/dist/components/date-picker/date-picker.css +30 -0
  17. package/dist/components/dialog/dialog.css +78 -0
  18. package/dist/components/drawer/drawer.css +64 -0
  19. package/dist/components/dropdown-menu/dropdown-menu.css +82 -0
  20. package/dist/components/form/form.css +17 -0
  21. package/dist/components/hover-card/hover-card.css +23 -0
  22. package/dist/components/input/input.css +89 -0
  23. package/dist/components/input-otp/input-otp.css +70 -0
  24. package/dist/components/label/label.css +9 -0
  25. package/dist/components/loading-state/loading-state.css +26 -0
  26. package/dist/components/menubar/menubar.css +36 -0
  27. package/dist/components/navigation-menu/navigation-menu.css +137 -0
  28. package/dist/components/pagination/pagination.css +43 -0
  29. package/dist/components/panel/panel.css +24 -0
  30. package/dist/components/popover/popover.css +17 -0
  31. package/dist/components/progress/progress.css +15 -0
  32. package/dist/components/radio-group/radio-group.css +37 -0
  33. package/dist/components/resizable/resizable.css +67 -0
  34. package/dist/components/scroll-area/scroll-area.css +32 -0
  35. package/dist/components/searchable-select/searchable-select.css +128 -0
  36. package/dist/components/select/select.css +97 -0
  37. package/dist/components/separator/separator.css +14 -0
  38. package/dist/components/sheet/sheet.css +83 -0
  39. package/dist/components/sidebar/sidebar.css +18 -0
  40. package/dist/components/skeleton/skeleton.css +5 -0
  41. package/dist/components/slider/slider.css +37 -0
  42. package/dist/components/sonner/sonner.css +25 -0
  43. package/dist/components/status-badge/status-badge.css +53 -0
  44. package/dist/components/status-chip/status-chip.css +44 -0
  45. package/dist/components/switch/switch.css +45 -0
  46. package/dist/components/table/table.css +46 -0
  47. package/dist/components/tabs/tabs.css +46 -0
  48. package/dist/components/textarea/textarea.css +30 -0
  49. package/dist/components/toggle/toggle.css +91 -0
  50. package/dist/components/tooltip/tooltip.css +17 -0
  51. package/dist/components.css +2523 -0
  52. package/dist/index.cjs +1606 -1963
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +1805 -209
  55. package/dist/index.d.ts +1805 -209
  56. package/dist/index.js +1470 -1834
  57. package/dist/index.js.map +1 -1
  58. package/dist/preset.css +8 -0
  59. package/dist/root.css +1 -0
  60. package/dist/styles/common.css +158 -0
  61. package/dist/styles/components.css +2523 -0
  62. package/dist/styles/preset.css +8 -0
  63. package/dist/styles/root.css +1 -0
  64. package/dist/styles/styles.css +18 -0
  65. package/dist/styles/themes/finai.css +1 -0
  66. package/dist/styles/themes/orchestrai.css +1 -0
  67. package/dist/styles.css +18 -0
  68. package/dist/themes/finai.css +1 -0
  69. package/dist/themes/orchestrai.css +1 -0
  70. package/package.json +19 -6
package/dist/index.js CHANGED
@@ -12,15 +12,20 @@ import { createContext, useContext, useEffect, useState } from "react";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var initialState = {
14
14
  theme: "system",
15
+ brand: "finai",
15
16
  setTheme: () => null,
17
+ setBrand: () => null,
16
18
  resolvedTheme: "dark"
17
19
  };
18
20
  var ThemeProviderContext = createContext(initialState);
19
21
  function ThemeProvider({
20
22
  children,
23
+ brand: initialBrand = "finai",
21
24
  defaultTheme = "system",
22
25
  storageKey = "yd-theme",
26
+ brandStorageKey = "yd-brand",
23
27
  attribute = "data-theme",
28
+ brandAttribute = "data-brand",
24
29
  enableSystem = true,
25
30
  ...props
26
31
  }) {
@@ -31,6 +36,13 @@ function ThemeProvider({
31
36
  }
32
37
  return defaultTheme;
33
38
  });
39
+ const [brand, setBrandState] = useState(() => {
40
+ if (typeof window !== "undefined") {
41
+ const stored = localStorage.getItem(brandStorageKey);
42
+ if (stored) return stored;
43
+ }
44
+ return initialBrand;
45
+ });
34
46
  const [resolvedTheme, setResolvedTheme] = useState("dark");
35
47
  useEffect(() => {
36
48
  const root = window.document.documentElement;
@@ -40,20 +52,33 @@ function ThemeProvider({
40
52
  const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
41
53
  activeTheme = systemTheme;
42
54
  }
43
- const isDark = activeTheme.includes("dark") || activeTheme === "orchestrai";
55
+ const isDark = activeTheme.includes("dark") || activeTheme === "orchestrai" || brand === "orchestrai" && activeTheme !== "light";
44
56
  const resolved = isDark ? "dark" : "light";
45
57
  setResolvedTheme(resolved);
46
58
  root.classList.add(resolved);
59
+ if (brandAttribute && brand) {
60
+ root.setAttribute(brandAttribute, brand);
61
+ }
47
62
  if (attribute) {
48
- root.setAttribute(attribute, theme);
63
+ const combinedTheme = theme === "system" ? `${brand}-${resolved}` : theme.startsWith(brand) ? theme : `${brand}-${theme}`;
64
+ root.setAttribute(attribute, combinedTheme);
49
65
  }
50
- }, [theme, enableSystem, attribute]);
66
+ }, [theme, brand, enableSystem, attribute, brandAttribute]);
51
67
  const value = {
52
68
  theme,
69
+ brand,
53
70
  setTheme: (newTheme) => {
54
- localStorage.setItem(storageKey, newTheme);
71
+ if (typeof window !== "undefined") {
72
+ localStorage.setItem(storageKey, newTheme);
73
+ }
55
74
  setThemeState(newTheme);
56
75
  },
76
+ setBrand: (newBrand) => {
77
+ if (typeof window !== "undefined") {
78
+ localStorage.setItem(brandStorageKey, newBrand);
79
+ }
80
+ setBrandState(newBrand);
81
+ },
57
82
  resolvedTheme
58
83
  };
59
84
  return /* @__PURE__ */ jsx(ThemeProviderContext.Provider, { ...props, value, children });
@@ -65,6 +90,8 @@ var useTheme = () => {
65
90
  }
66
91
  return context;
67
92
  };
93
+ var ConfigProvider = ThemeProvider;
94
+ var useConfig = useTheme;
68
95
 
69
96
  // src/hooks/use-mobile.ts
70
97
  import * as React2 from "react";
@@ -85,7 +112,7 @@ function useIsMobile() {
85
112
  return !!isMobile;
86
113
  }
87
114
 
88
- // src/components/accordion.tsx
115
+ // src/components/accordion/accordion.tsx
89
116
  import * as React3 from "react";
90
117
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
91
118
  import { ChevronDown } from "lucide-react";
@@ -95,23 +122,20 @@ var AccordionItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PU
95
122
  AccordionPrimitive.Item,
96
123
  {
97
124
  ref,
98
- className: cn("border-b", className),
125
+ className: cn("dl-accordion-item", className),
99
126
  ...props
100
127
  }
101
128
  ));
102
129
  AccordionItem.displayName = "AccordionItem";
103
- var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx2(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
130
+ var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx2(AccordionPrimitive.Header, { className: "dl-accordion-header", children: /* @__PURE__ */ jsxs(
104
131
  AccordionPrimitive.Trigger,
105
132
  {
106
133
  ref,
107
- className: cn(
108
- "flex flex-1 items-center justify-between py-4 text-sm font-medium cursor-pointer transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",
109
- className
110
- ),
134
+ className: cn("dl-accordion-trigger", className),
111
135
  ...props,
112
136
  children: [
113
137
  children,
114
- /* @__PURE__ */ jsx2(ChevronDown, { className: "shrink-0 text-muted-foreground transition-transform duration-200 size-4" })
138
+ /* @__PURE__ */ jsx2(ChevronDown, { "aria-hidden": "true" })
115
139
  ]
116
140
  }
117
141
  ) }));
@@ -120,51 +144,79 @@ var AccordionContent = React3.forwardRef(({ className, children, ...props }, ref
120
144
  AccordionPrimitive.Content,
121
145
  {
122
146
  ref,
123
- className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
147
+ className: "dl-accordion-content",
124
148
  ...props,
125
- children: /* @__PURE__ */ jsx2("div", { className: cn("pb-4 pt-0", className), children })
149
+ children: /* @__PURE__ */ jsx2("div", { className: cn("dl-accordion-content__inner", className), children })
126
150
  }
127
151
  ));
128
152
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
129
153
 
130
- // src/components/alert-dialog.tsx
131
- import * as React5 from "react";
132
- import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
133
-
134
- // src/components/button.tsx
154
+ // src/components/alert/alert.tsx
135
155
  import * as React4 from "react";
136
- import { Slot } from "@radix-ui/react-slot";
137
156
  import { cva } from "class-variance-authority";
138
157
  import { jsx as jsx3 } from "react/jsx-runtime";
139
- var buttonVariants = cva(
140
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
141
- {
142
- variants: {
143
- variant: {
144
- default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
145
- destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
146
- outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
147
- secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
148
- ghost: "hover:bg-accent hover:text-accent-foreground",
149
- link: "text-primary underline-offset-4 hover:underline"
150
- },
151
- size: {
152
- default: "h-9 px-4 py-2",
153
- sm: "h-8 rounded-md px-3 text-xs",
154
- lg: "h-10 rounded-md px-8",
155
- icon: "size-9"
156
- }
157
- },
158
- defaultVariants: {
159
- variant: "default",
160
- size: "default"
158
+ var alertVariants = cva("dl-alert", {
159
+ variants: {
160
+ variant: {
161
+ default: "dl-alert--default",
162
+ destructive: "dl-alert--destructive"
161
163
  }
164
+ },
165
+ defaultVariants: {
166
+ variant: "default"
162
167
  }
168
+ });
169
+ var Alert = React4.forwardRef(
170
+ ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx3(
171
+ "div",
172
+ {
173
+ ref,
174
+ role: "alert",
175
+ className: cn(alertVariants({ variant }), className),
176
+ ...props
177
+ }
178
+ )
163
179
  );
164
- var Button = React4.forwardRef(
180
+ Alert.displayName = "Alert";
181
+ var AlertTitle = React4.forwardRef(
182
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx3("h5", { ref, className: cn("dl-alert__title", className), ...props })
183
+ );
184
+ AlertTitle.displayName = "AlertTitle";
185
+ var AlertDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3("div", { ref, className: cn("dl-alert__desc", className), ...props }));
186
+ AlertDescription.displayName = "AlertDescription";
187
+
188
+ // src/components/alert-dialog/alert-dialog.tsx
189
+ import * as React6 from "react";
190
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
191
+
192
+ // src/components/button/button.tsx
193
+ import * as React5 from "react";
194
+ import { Slot } from "@radix-ui/react-slot";
195
+ import { cva as cva2 } from "class-variance-authority";
196
+ import { jsx as jsx4 } from "react/jsx-runtime";
197
+ var buttonVariants = cva2("dl-btn", {
198
+ variants: {
199
+ variant: {
200
+ default: "dl-btn--default",
201
+ destructive: "dl-btn--destructive",
202
+ outline: "dl-btn--outline",
203
+ secondary: "dl-btn--secondary",
204
+ ghost: "dl-btn--ghost",
205
+ link: "dl-btn--link"
206
+ },
207
+ size: {
208
+ default: "dl-btn--md",
209
+ sm: "dl-btn--sm",
210
+ lg: "dl-btn--lg",
211
+ icon: "dl-btn--icon"
212
+ }
213
+ },
214
+ defaultVariants: { variant: "default", size: "default" }
215
+ });
216
+ var Button = React5.forwardRef(
165
217
  ({ className, variant, size, asChild = false, ...props }, ref) => {
166
218
  const Comp = asChild ? Slot : "button";
167
- return /* @__PURE__ */ jsx3(
219
+ return /* @__PURE__ */ jsx4(
168
220
  Comp,
169
221
  {
170
222
  className: cn(buttonVariants({ variant, size, className })),
@@ -176,33 +228,27 @@ var Button = React4.forwardRef(
176
228
  );
177
229
  Button.displayName = "Button";
178
230
 
179
- // src/components/alert-dialog.tsx
180
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
231
+ // src/components/alert-dialog/alert-dialog.tsx
232
+ import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
181
233
  var AlertDialog = AlertDialogPrimitive.Root;
182
234
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
183
235
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
184
- var AlertDialogOverlay = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
236
+ var AlertDialogOverlay = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
185
237
  AlertDialogPrimitive.Overlay,
186
238
  {
187
- className: cn(
188
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
189
- className
190
- ),
239
+ className: cn("dl-alert-dialog-overlay", className),
191
240
  ...props,
192
241
  ref
193
242
  }
194
243
  ));
195
244
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
196
- var AlertDialogContent = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
197
- /* @__PURE__ */ jsx4(AlertDialogOverlay, {}),
198
- /* @__PURE__ */ jsx4(
245
+ var AlertDialogContent = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
246
+ /* @__PURE__ */ jsx5(AlertDialogOverlay, {}),
247
+ /* @__PURE__ */ jsx5(
199
248
  AlertDialogPrimitive.Content,
200
249
  {
201
250
  ref,
202
- className: cn(
203
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg translate-[-50%]",
204
- className
205
- ),
251
+ className: cn("dl-alert-dialog-content", className),
206
252
  ...props
207
253
  }
208
254
  )
@@ -211,50 +257,32 @@ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
211
257
  var AlertDialogHeader = ({
212
258
  className,
213
259
  ...props
214
- }) => /* @__PURE__ */ jsx4(
215
- "div",
216
- {
217
- className: cn(
218
- "flex flex-col space-y-2 text-center sm:text-left",
219
- className
220
- ),
221
- ...props
222
- }
223
- );
260
+ }) => /* @__PURE__ */ jsx5("div", { className: cn("dl-alert-dialog-header", className), ...props });
224
261
  AlertDialogHeader.displayName = "AlertDialogHeader";
225
262
  var AlertDialogFooter = ({
226
263
  className,
227
264
  ...props
228
- }) => /* @__PURE__ */ jsx4(
229
- "div",
230
- {
231
- className: cn(
232
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
233
- className
234
- ),
235
- ...props
236
- }
237
- );
265
+ }) => /* @__PURE__ */ jsx5("div", { className: cn("dl-alert-dialog-footer", className), ...props });
238
266
  AlertDialogFooter.displayName = "AlertDialogFooter";
239
- var AlertDialogTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
267
+ var AlertDialogTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
240
268
  AlertDialogPrimitive.Title,
241
269
  {
242
270
  ref,
243
- className: cn("text-lg font-semibold", className),
271
+ className: cn("dl-alert-dialog-title", className),
244
272
  ...props
245
273
  }
246
274
  ));
247
275
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
248
- var AlertDialogDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
276
+ var AlertDialogDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
249
277
  AlertDialogPrimitive.Description,
250
278
  {
251
279
  ref,
252
- className: cn("text-sm text-muted-foreground", className),
280
+ className: cn("dl-alert-dialog-desc", className),
253
281
  ...props
254
282
  }
255
283
  ));
256
284
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
257
- var AlertDialogAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
285
+ var AlertDialogAction = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
258
286
  AlertDialogPrimitive.Action,
259
287
  {
260
288
  ref,
@@ -263,72 +291,21 @@ var AlertDialogAction = React5.forwardRef(({ className, ...props }, ref) => /* @
263
291
  }
264
292
  ));
265
293
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
266
- var AlertDialogCancel = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
294
+ var AlertDialogCancel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
267
295
  AlertDialogPrimitive.Cancel,
268
296
  {
269
297
  ref,
270
- className: cn(
271
- buttonVariants({ variant: "outline" }),
272
- "mt-2 sm:mt-0",
273
- className
274
- ),
298
+ className: cn(buttonVariants({ variant: "outline" }), className),
275
299
  ...props
276
300
  }
277
301
  ));
278
302
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
279
303
 
280
- // src/components/alert.tsx
281
- import * as React6 from "react";
282
- import { cva as cva2 } from "class-variance-authority";
283
- import { jsx as jsx5 } from "react/jsx-runtime";
284
- var alertVariants = cva2(
285
- "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
286
- {
287
- variants: {
288
- variant: {
289
- default: "bg-background text-foreground",
290
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
291
- }
292
- },
293
- defaultVariants: {
294
- variant: "default"
295
- }
296
- }
297
- );
298
- var Alert = React6.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx5(
299
- "div",
300
- {
301
- ref,
302
- role: "alert",
303
- className: cn(alertVariants({ variant }), className),
304
- ...props
305
- }
306
- ));
307
- Alert.displayName = "Alert";
308
- var AlertTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
309
- "h5",
310
- {
311
- ref,
312
- className: cn("mb-1 font-medium leading-none tracking-tight", className),
313
- ...props
314
- }
315
- ));
316
- AlertTitle.displayName = "AlertTitle";
317
- var AlertDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
318
- "div",
319
- {
320
- ref,
321
- className: cn("text-sm [&_p]:leading-relaxed", className),
322
- ...props
323
- }
324
- ));
325
- AlertDescription.displayName = "AlertDescription";
326
-
327
- // src/components/aspect-ratio.tsx
304
+ // src/components/aspect-ratio/aspect-ratio.tsx
328
305
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
329
306
  var AspectRatio = AspectRatioPrimitive.Root;
330
307
 
331
- // src/components/avatar.tsx
308
+ // src/components/avatar/avatar.tsx
332
309
  import * as React7 from "react";
333
310
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
334
311
  import { jsx as jsx6 } from "react/jsx-runtime";
@@ -336,10 +313,7 @@ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
336
313
  AvatarPrimitive.Root,
337
314
  {
338
315
  ref,
339
- className: cn(
340
- "relative flex shrink-0 overflow-hidden rounded-full size-10",
341
- className
342
- ),
316
+ className: cn("dl-avatar", className),
343
317
  ...props
344
318
  }
345
319
  ));
@@ -348,7 +322,7 @@ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE
348
322
  AvatarPrimitive.Image,
349
323
  {
350
324
  ref,
351
- className: cn("aspect-square size-full", className),
325
+ className: cn("dl-avatar__img", className),
352
326
  ...props
353
327
  }
354
328
  ));
@@ -357,92 +331,77 @@ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__P
357
331
  AvatarPrimitive.Fallback,
358
332
  {
359
333
  ref,
360
- className: cn(
361
- "flex items-center justify-center rounded-full bg-muted size-full",
362
- className
363
- ),
334
+ className: cn("dl-avatar__fallback", className),
364
335
  ...props
365
336
  }
366
337
  ));
367
338
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
368
339
 
369
- // src/components/badge.tsx
340
+ // src/components/badge/badge.tsx
370
341
  import { cva as cva3 } from "class-variance-authority";
371
342
  import { jsx as jsx7 } from "react/jsx-runtime";
372
- var badgeVariants = cva3(
373
- "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
374
- {
375
- variants: {
376
- variant: {
377
- default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
378
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
379
- destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
380
- outline: "text-foreground"
381
- }
382
- },
383
- defaultVariants: {
384
- variant: "default"
385
- }
386
- }
387
- );
343
+ var badgeVariants = cva3("dl-badge", {
344
+ variants: {
345
+ variant: {
346
+ default: "dl-badge--default",
347
+ secondary: "dl-badge--secondary",
348
+ destructive: "dl-badge--destructive",
349
+ success: "dl-badge--success",
350
+ warning: "dl-badge--warning",
351
+ info: "dl-badge--info",
352
+ outline: "dl-badge--outline"
353
+ }
354
+ },
355
+ defaultVariants: { variant: "default" }
356
+ });
388
357
  function Badge({ className, variant, ...props }) {
389
358
  return /* @__PURE__ */ jsx7("div", { className: cn(badgeVariants({ variant }), className), ...props });
390
359
  }
391
360
 
392
- // src/components/breadcrumb.tsx
361
+ // src/components/breadcrumb/breadcrumb.tsx
393
362
  import * as React8 from "react";
394
363
  import { Slot as Slot2 } from "@radix-ui/react-slot";
395
364
  import { ChevronRight, MoreHorizontal } from "lucide-react";
396
365
  import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
397
- var Breadcrumb = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx8("nav", { ref, "aria-label": "breadcrumb", ...props }));
366
+ var Breadcrumb = React8.forwardRef(
367
+ ({ ...props }, ref) => /* @__PURE__ */ jsx8("nav", { ref, "aria-label": "breadcrumb", ...props })
368
+ );
398
369
  Breadcrumb.displayName = "Breadcrumb";
399
- var BreadcrumbList = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
400
- "ol",
401
- {
402
- ref,
403
- className: cn(
404
- "flex flex-wrap items-center gap-1.5 wrap-break-word text-sm text-muted-foreground sm:gap-2.5",
405
- className
406
- ),
407
- ...props
408
- }
409
- ));
370
+ var BreadcrumbList = React8.forwardRef(
371
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx8("ol", { ref, className: cn("dl-breadcrumb-list", className), ...props })
372
+ );
410
373
  BreadcrumbList.displayName = "BreadcrumbList";
411
- var BreadcrumbItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
412
- "li",
413
- {
414
- ref,
415
- className: cn("inline-flex items-center gap-1.5", className),
416
- ...props
417
- }
418
- ));
374
+ var BreadcrumbItem = React8.forwardRef(
375
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx8("li", { ref, className: cn("dl-breadcrumb-item", className), ...props })
376
+ );
419
377
  BreadcrumbItem.displayName = "BreadcrumbItem";
420
- var BreadcrumbLink = React8.forwardRef(({ asChild, className, ...props }, ref) => {
421
- const Comp = asChild ? Slot2 : "a";
422
- return /* @__PURE__ */ jsx8(
423
- Comp,
378
+ var BreadcrumbLink = React8.forwardRef(
379
+ ({ asChild, className, ...props }, ref) => {
380
+ const Comp = asChild ? Slot2 : "a";
381
+ return /* @__PURE__ */ jsx8(
382
+ Comp,
383
+ {
384
+ ref,
385
+ className: cn("dl-breadcrumb-link", className),
386
+ ...props
387
+ }
388
+ );
389
+ }
390
+ );
391
+ BreadcrumbLink.displayName = "BreadcrumbLink";
392
+ var BreadcrumbPage = React8.forwardRef(
393
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
394
+ "span",
424
395
  {
425
396
  ref,
426
- className: cn(
427
- "cursor-pointer transition-colors hover:text-foreground",
428
- className
429
- ),
397
+ role: "link",
398
+ "aria-disabled": "true",
399
+ "aria-current": "page",
400
+ className: cn("dl-breadcrumb-page", className),
430
401
  ...props
431
402
  }
432
- );
433
- });
434
- BreadcrumbLink.displayName = "BreadcrumbLink";
435
- var BreadcrumbPage = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
436
- "span",
437
- {
438
- ref,
439
- role: "link",
440
- "aria-disabled": "true",
441
- "aria-current": "page",
442
- className: cn("font-normal text-foreground", className),
443
- ...props
444
- }
445
- ));
403
+ )
404
+ );
446
405
  BreadcrumbPage.displayName = "BreadcrumbPage";
447
406
  var BreadcrumbSeparator = ({
448
407
  children,
@@ -453,7 +412,8 @@ var BreadcrumbSeparator = ({
453
412
  {
454
413
  role: "presentation",
455
414
  "aria-hidden": "true",
456
- className: cn("[&>svg]:size-3.5", className),
415
+ "data-slot": "breadcrumb-separator",
416
+ className: cn("dl-breadcrumb-separator", className),
457
417
  ...props,
458
418
  children: children ?? /* @__PURE__ */ jsx8(ChevronRight, {})
459
419
  }
@@ -467,17 +427,17 @@ var BreadcrumbEllipsis = ({
467
427
  {
468
428
  role: "presentation",
469
429
  "aria-hidden": "true",
470
- className: cn("flex items-center justify-center size-9", className),
430
+ className: cn("dl-breadcrumb-ellipsis", className),
471
431
  ...props,
472
432
  children: [
473
- /* @__PURE__ */ jsx8(MoreHorizontal, { className: "size-4" }),
433
+ /* @__PURE__ */ jsx8(MoreHorizontal, {}),
474
434
  /* @__PURE__ */ jsx8("span", { className: "sr-only", children: "More" })
475
435
  ]
476
436
  }
477
437
  );
478
- BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
438
+ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
479
439
 
480
- // src/components/calendar.tsx
440
+ // src/components/calendar/calendar.tsx
481
441
  import * as React9 from "react";
482
442
  import {
483
443
  ChevronDownIcon,
@@ -663,61 +623,33 @@ function CalendarDayButton({
663
623
  );
664
624
  }
665
625
 
666
- // src/components/card.tsx
626
+ // src/components/card/card.tsx
667
627
  import * as React10 from "react";
668
628
  import { jsx as jsx10 } from "react/jsx-runtime";
669
- var Card = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
670
- "div",
671
- {
672
- ref,
673
- className: cn(
674
- "rounded-xl border bg-card text-card-foreground shadow",
675
- className
676
- ),
677
- ...props
678
- }
679
- ));
629
+ var Card = React10.forwardRef(
630
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("dl-card", className), ...props })
631
+ );
680
632
  Card.displayName = "Card";
681
- var CardHeader = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
682
- "div",
683
- {
684
- ref,
685
- className: cn("flex flex-col space-y-1.5 p-6", className),
686
- ...props
687
- }
688
- ));
633
+ var CardHeader = React10.forwardRef(
634
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("dl-card__header", className), ...props })
635
+ );
689
636
  CardHeader.displayName = "CardHeader";
690
- var CardTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
691
- "div",
692
- {
693
- ref,
694
- className: cn("font-semibold leading-none tracking-tight", className),
695
- ...props
696
- }
697
- ));
637
+ var CardTitle = React10.forwardRef(
638
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("h3", { ref, className: cn("dl-card__title", className), ...props })
639
+ );
698
640
  CardTitle.displayName = "CardTitle";
699
- var CardDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
700
- "div",
701
- {
702
- ref,
703
- className: cn("text-sm text-muted-foreground", className),
704
- ...props
705
- }
706
- ));
641
+ var CardDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10("p", { ref, className: cn("dl-card__desc", className), ...props }));
707
642
  CardDescription.displayName = "CardDescription";
708
- var CardContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("p-6 pt-0", className), ...props }));
643
+ var CardContent = React10.forwardRef(
644
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("dl-card__content", className), ...props })
645
+ );
709
646
  CardContent.displayName = "CardContent";
710
- var CardFooter = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
711
- "div",
712
- {
713
- ref,
714
- className: cn("flex items-center p-6 pt-0", className),
715
- ...props
716
- }
717
- ));
647
+ var CardFooter = React10.forwardRef(
648
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("dl-card__footer", className), ...props })
649
+ );
718
650
  CardFooter.displayName = "CardFooter";
719
651
 
720
- // src/components/carousel.tsx
652
+ // src/components/carousel/carousel.tsx
721
653
  import * as React11 from "react";
722
654
  import useEmblaCarousel from "embla-carousel-react";
723
655
  import { ArrowLeft, ArrowRight } from "lucide-react";
@@ -741,27 +673,18 @@ var Carousel = React11.forwardRef(
741
673
  ...props
742
674
  }, ref) => {
743
675
  const [carouselRef, api] = useEmblaCarousel(
744
- {
745
- ...opts,
746
- axis: orientation === "horizontal" ? "x" : "y"
747
- },
676
+ { ...opts, axis: orientation === "horizontal" ? "x" : "y" },
748
677
  plugins
749
678
  );
750
679
  const [canScrollPrev, setCanScrollPrev] = React11.useState(false);
751
680
  const [canScrollNext, setCanScrollNext] = React11.useState(false);
752
- const onSelect = React11.useCallback((api2) => {
753
- if (!api2) {
754
- return;
755
- }
756
- setCanScrollPrev(api2.canScrollPrev());
757
- setCanScrollNext(api2.canScrollNext());
681
+ const onSelect = React11.useCallback((emblaApi) => {
682
+ if (!emblaApi) return;
683
+ setCanScrollPrev(emblaApi.canScrollPrev());
684
+ setCanScrollNext(emblaApi.canScrollNext());
758
685
  }, []);
759
- const scrollPrev = React11.useCallback(() => {
760
- api?.scrollPrev();
761
- }, [api]);
762
- const scrollNext = React11.useCallback(() => {
763
- api?.scrollNext();
764
- }, [api]);
686
+ const scrollPrev = React11.useCallback(() => api?.scrollPrev(), [api]);
687
+ const scrollNext = React11.useCallback(() => api?.scrollNext(), [api]);
765
688
  const handleKeyDown = React11.useCallback(
766
689
  (event) => {
767
690
  if (event.key === "ArrowLeft") {
@@ -775,15 +698,11 @@ var Carousel = React11.forwardRef(
775
698
  [scrollPrev, scrollNext]
776
699
  );
777
700
  React11.useEffect(() => {
778
- if (!api || !setApi) {
779
- return;
780
- }
701
+ if (!api || !setApi) return;
781
702
  setApi(api);
782
703
  }, [api, setApi]);
783
704
  React11.useEffect(() => {
784
- if (!api) {
785
- return;
786
- }
705
+ if (!api) return;
787
706
  onSelect(api);
788
707
  api.on("reInit", onSelect);
789
708
  api.on("select", onSelect);
@@ -809,7 +728,7 @@ var Carousel = React11.forwardRef(
809
728
  {
810
729
  ref,
811
730
  onKeyDownCapture: handleKeyDown,
812
- className: cn("relative", className),
731
+ className: cn("dl-carousel", className),
813
732
  role: "region",
814
733
  "aria-roledescription": "carousel",
815
734
  ...props,
@@ -821,39 +740,43 @@ var Carousel = React11.forwardRef(
821
740
  }
822
741
  );
823
742
  Carousel.displayName = "Carousel";
824
- var CarouselContent = React11.forwardRef(({ className, ...props }, ref) => {
825
- const { carouselRef, orientation } = useCarousel();
826
- return /* @__PURE__ */ jsx11("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx11(
827
- "div",
828
- {
829
- ref,
830
- className: cn(
831
- "flex",
832
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
833
- className
834
- ),
835
- ...props
836
- }
837
- ) });
838
- });
743
+ var CarouselContent = React11.forwardRef(
744
+ ({ className, ...props }, ref) => {
745
+ const { carouselRef, orientation } = useCarousel();
746
+ return /* @__PURE__ */ jsx11("div", { ref: carouselRef, className: "dl-carousel-viewport", children: /* @__PURE__ */ jsx11(
747
+ "div",
748
+ {
749
+ ref,
750
+ className: cn(
751
+ "dl-carousel-track",
752
+ orientation === "horizontal" ? "dl-carousel-track--horizontal" : "dl-carousel-track--vertical",
753
+ className
754
+ ),
755
+ ...props
756
+ }
757
+ ) });
758
+ }
759
+ );
839
760
  CarouselContent.displayName = "CarouselContent";
840
- var CarouselItem = React11.forwardRef(({ className, ...props }, ref) => {
841
- const { orientation } = useCarousel();
842
- return /* @__PURE__ */ jsx11(
843
- "div",
844
- {
845
- ref,
846
- role: "group",
847
- "aria-roledescription": "slide",
848
- className: cn(
849
- "min-w-0 shrink-0 grow-0 basis-full",
850
- orientation === "horizontal" ? "pl-4" : "pt-4",
851
- className
852
- ),
853
- ...props
854
- }
855
- );
856
- });
761
+ var CarouselItem = React11.forwardRef(
762
+ ({ className, ...props }, ref) => {
763
+ const { orientation } = useCarousel();
764
+ return /* @__PURE__ */ jsx11(
765
+ "div",
766
+ {
767
+ ref,
768
+ role: "group",
769
+ "aria-roledescription": "slide",
770
+ className: cn(
771
+ "dl-carousel-item",
772
+ orientation === "horizontal" ? "dl-carousel-item--horizontal" : "dl-carousel-item--vertical",
773
+ className
774
+ ),
775
+ ...props
776
+ }
777
+ );
778
+ }
779
+ );
857
780
  CarouselItem.displayName = "CarouselItem";
858
781
  var CarouselPrevious = React11.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
859
782
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
@@ -864,47 +787,49 @@ var CarouselPrevious = React11.forwardRef(({ className, variant = "outline", siz
864
787
  variant,
865
788
  size,
866
789
  className: cn(
867
- "absolute rounded-full size-8",
868
- orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
790
+ "dl-carousel-btn",
791
+ orientation === "horizontal" ? "dl-carousel-btn--prev-horizontal" : "dl-carousel-btn--prev-vertical",
869
792
  className
870
793
  ),
871
794
  disabled: !canScrollPrev,
872
795
  onClick: scrollPrev,
873
796
  ...props,
874
797
  children: [
875
- /* @__PURE__ */ jsx11(ArrowLeft, { className: "size-4" }),
798
+ /* @__PURE__ */ jsx11(ArrowLeft, {}),
876
799
  /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Previous slide" })
877
800
  ]
878
801
  }
879
802
  );
880
803
  });
881
804
  CarouselPrevious.displayName = "CarouselPrevious";
882
- var CarouselNext = React11.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
883
- const { orientation, scrollNext, canScrollNext } = useCarousel();
884
- return /* @__PURE__ */ jsxs4(
885
- Button,
886
- {
887
- ref,
888
- variant,
889
- size,
890
- className: cn(
891
- "absolute rounded-full size-8",
892
- orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
893
- className
894
- ),
895
- disabled: !canScrollNext,
896
- onClick: scrollNext,
897
- ...props,
898
- children: [
899
- /* @__PURE__ */ jsx11(ArrowRight, { className: "size-4" }),
900
- /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Next slide" })
901
- ]
902
- }
903
- );
904
- });
805
+ var CarouselNext = React11.forwardRef(
806
+ ({ className, variant = "outline", size = "icon", ...props }, ref) => {
807
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
808
+ return /* @__PURE__ */ jsxs4(
809
+ Button,
810
+ {
811
+ ref,
812
+ variant,
813
+ size,
814
+ className: cn(
815
+ "dl-carousel-btn",
816
+ orientation === "horizontal" ? "dl-carousel-btn--next-horizontal" : "dl-carousel-btn--next-vertical",
817
+ className
818
+ ),
819
+ disabled: !canScrollNext,
820
+ onClick: scrollNext,
821
+ ...props,
822
+ children: [
823
+ /* @__PURE__ */ jsx11(ArrowRight, {}),
824
+ /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Next slide" })
825
+ ]
826
+ }
827
+ );
828
+ }
829
+ );
905
830
  CarouselNext.displayName = "CarouselNext";
906
831
 
907
- // src/components/chart.tsx
832
+ // src/components/chart/chart.tsx
908
833
  import * as React12 from "react";
909
834
  import * as RechartsPrimitive from "recharts";
910
835
  import { Fragment, jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
@@ -917,26 +842,25 @@ function useChart() {
917
842
  }
918
843
  return context;
919
844
  }
920
- var ChartContainer = React12.forwardRef(({ id, className, children, config, ...props }, ref) => {
921
- const uniqueId = React12.useId();
922
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
923
- return /* @__PURE__ */ jsx12(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
924
- "div",
925
- {
926
- "data-chart": chartId,
927
- ref,
928
- className: cn(
929
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-layer]:outline-none",
930
- className
931
- ),
932
- ...props,
933
- children: [
934
- /* @__PURE__ */ jsx12(ChartStyle, { id: chartId, config }),
935
- /* @__PURE__ */ jsx12(RechartsPrimitive.ResponsiveContainer, { children })
936
- ]
937
- }
938
- ) });
939
- });
845
+ var ChartContainer = React12.forwardRef(
846
+ ({ id, className, children, config, ...props }, ref) => {
847
+ const uniqueId = React12.useId();
848
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
849
+ return /* @__PURE__ */ jsx12(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
850
+ "div",
851
+ {
852
+ "data-chart": chartId,
853
+ ref,
854
+ className: cn("dl-chart-container", className),
855
+ ...props,
856
+ children: [
857
+ /* @__PURE__ */ jsx12(ChartStyle, { id: chartId, config }),
858
+ /* @__PURE__ */ jsx12(RechartsPrimitive.ResponsiveContainer, { children })
859
+ ]
860
+ }
861
+ ) });
862
+ }
863
+ );
940
864
  ChartContainer.displayName = "Chart";
941
865
  var ChartStyle = ({ id, config }) => {
942
866
  const colorConfig = Object.entries(config).filter(
@@ -1009,70 +933,60 @@ var ChartTooltipContent = React12.forwardRef(
1009
933
  return null;
1010
934
  }
1011
935
  const nestLabel = payload.length === 1 && indicator !== "dot";
1012
- return /* @__PURE__ */ jsxs5(
1013
- "div",
1014
- {
1015
- ref,
1016
- className: cn(
1017
- "grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
1018
- className
1019
- ),
1020
- children: [
1021
- !nestLabel ? tooltipLabel : null,
1022
- /* @__PURE__ */ jsx12("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1023
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
1024
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1025
- const indicatorColor = color || item.payload.fill || item.color;
1026
- return /* @__PURE__ */ jsx12(
1027
- "div",
1028
- {
1029
- className: cn(
1030
- "flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5",
1031
- indicator === "dot" && "items-center"
1032
- ),
1033
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs5(Fragment, { children: [
1034
- itemConfig?.icon ? /* @__PURE__ */ jsx12(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx12(
1035
- "div",
936
+ return /* @__PURE__ */ jsxs5("div", { ref, className: cn("dl-chart-tooltip", className), children: [
937
+ !nestLabel ? tooltipLabel : null,
938
+ /* @__PURE__ */ jsx12("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
939
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
940
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
941
+ const indicatorColor = color || item.payload.fill || item.color;
942
+ return /* @__PURE__ */ jsx12(
943
+ "div",
944
+ {
945
+ className: cn(
946
+ "flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5",
947
+ indicator === "dot" && "items-center"
948
+ ),
949
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs5(Fragment, { children: [
950
+ itemConfig?.icon ? /* @__PURE__ */ jsx12(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx12(
951
+ "div",
952
+ {
953
+ className: cn(
954
+ "shrink-0 rounded-xs border-border bg-(--color-bg)",
1036
955
  {
1037
- className: cn(
1038
- "shrink-0 rounded-xs border-border bg-(--color-bg)",
1039
- {
1040
- "h-2.5 w-2.5": indicator === "dot",
1041
- "w-1": indicator === "line",
1042
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1043
- "my-0.5": nestLabel && indicator === "dashed"
1044
- }
1045
- ),
1046
- style: {
1047
- "--color-bg": indicatorColor,
1048
- "--color-border": indicatorColor
1049
- }
956
+ "h-2.5 w-2.5": indicator === "dot",
957
+ "w-1": indicator === "line",
958
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
959
+ "my-0.5": nestLabel && indicator === "dashed"
1050
960
  }
1051
961
  ),
1052
- /* @__PURE__ */ jsxs5(
1053
- "div",
1054
- {
1055
- className: cn(
1056
- "flex flex-1 justify-between leading-none",
1057
- nestLabel ? "items-end" : "items-center"
1058
- ),
1059
- children: [
1060
- /* @__PURE__ */ jsxs5("div", { className: "grid gap-1.5", children: [
1061
- nestLabel ? tooltipLabel : null,
1062
- /* @__PURE__ */ jsx12("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1063
- ] }),
1064
- item.value && /* @__PURE__ */ jsx12("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
1065
- ]
1066
- }
1067
- )
1068
- ] })
1069
- },
1070
- item.dataKey
1071
- );
1072
- }) })
1073
- ]
1074
- }
1075
- );
962
+ style: {
963
+ "--color-bg": indicatorColor,
964
+ "--color-border": indicatorColor
965
+ }
966
+ }
967
+ ),
968
+ /* @__PURE__ */ jsxs5(
969
+ "div",
970
+ {
971
+ className: cn(
972
+ "flex flex-1 justify-between leading-none",
973
+ nestLabel ? "items-end" : "items-center"
974
+ ),
975
+ children: [
976
+ /* @__PURE__ */ jsxs5("div", { className: "grid gap-1.5", children: [
977
+ nestLabel ? tooltipLabel : null,
978
+ /* @__PURE__ */ jsx12("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
979
+ ] }),
980
+ item.value && /* @__PURE__ */ jsx12("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
981
+ ]
982
+ }
983
+ )
984
+ ] })
985
+ },
986
+ item.dataKey
987
+ );
988
+ }) })
989
+ ] });
1076
990
  }
1077
991
  );
1078
992
  ChartTooltipContent.displayName = "ChartTooltip";
@@ -1088,7 +1002,7 @@ var ChartLegendContent = React12.forwardRef(
1088
1002
  {
1089
1003
  ref,
1090
1004
  className: cn(
1091
- "flex items-center justify-center gap-4",
1005
+ "dl-chart-legend",
1092
1006
  verticalAlign === "top" ? "pb-3" : "pt-3",
1093
1007
  className
1094
1008
  ),
@@ -1136,7 +1050,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
1136
1050
  return configLabelKey in config ? config[configLabelKey] : config[key];
1137
1051
  }
1138
1052
 
1139
- // src/components/checkbox.tsx
1053
+ // src/components/checkbox/checkbox.tsx
1140
1054
  import * as React13 from "react";
1141
1055
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
1142
1056
  import { Check } from "lucide-react";
@@ -1145,34 +1059,25 @@ var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1145
1059
  CheckboxPrimitive.Root,
1146
1060
  {
1147
1061
  ref,
1148
- className: cn(
1149
- "grid place-content-center peer shrink-0 rounded-sm border border-primary shadow cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground size-4",
1150
- className
1151
- ),
1062
+ className: cn("dl-checkbox", className),
1152
1063
  ...props,
1153
- children: /* @__PURE__ */ jsx13(
1154
- CheckboxPrimitive.Indicator,
1155
- {
1156
- className: cn("grid place-content-center text-current"),
1157
- children: /* @__PURE__ */ jsx13(Check, { className: "size-4" })
1158
- }
1159
- )
1064
+ children: /* @__PURE__ */ jsx13(CheckboxPrimitive.Indicator, { className: "grid place-content-center text-current", children: /* @__PURE__ */ jsx13(Check, { style: { width: "0.75rem", height: "0.75rem" } }) })
1160
1065
  }
1161
1066
  ));
1162
1067
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
1163
1068
 
1164
- // src/components/collapsible.tsx
1069
+ // src/components/collapsible/collapsible.tsx
1165
1070
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
1166
1071
  var Collapsible = CollapsiblePrimitive.Root;
1167
1072
  var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
1168
1073
  var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
1169
1074
 
1170
- // src/components/command.tsx
1075
+ // src/components/command/command.tsx
1171
1076
  import * as React15 from "react";
1172
1077
  import { Command as CommandPrimitive } from "cmdk";
1173
1078
  import { Search } from "lucide-react";
1174
1079
 
1175
- // src/components/dialog.tsx
1080
+ // src/components/dialog/dialog.tsx
1176
1081
  import * as React14 from "react";
1177
1082
  import * as DialogPrimitive from "@radix-ui/react-dialog";
1178
1083
  import { X } from "lucide-react";
@@ -1185,10 +1090,7 @@ var DialogOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__P
1185
1090
  DialogPrimitive.Overlay,
1186
1091
  {
1187
1092
  ref,
1188
- className: cn(
1189
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1190
- className
1191
- ),
1093
+ className: cn("dl-dialog-overlay", className),
1192
1094
  ...props
1193
1095
  }
1194
1096
  ));
@@ -1199,16 +1101,25 @@ var DialogContent = React14.forwardRef(({ className, children, ...props }, ref)
1199
1101
  DialogPrimitive.Content,
1200
1102
  {
1201
1103
  ref,
1202
- className: cn(
1203
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg translate-[-50%]",
1204
- className
1205
- ),
1104
+ className: cn("dl-dialog-content", className),
1206
1105
  ...props,
1207
1106
  children: [
1208
1107
  children,
1209
- /* @__PURE__ */ jsxs6(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background cursor-pointer transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
1210
- /* @__PURE__ */ jsx14(X, { className: "size-4" }),
1211
- /* @__PURE__ */ jsx14("span", { className: "sr-only", children: "Close" })
1108
+ /* @__PURE__ */ jsxs6(DialogPrimitive.Close, { className: "dl-dialog-close", children: [
1109
+ /* @__PURE__ */ jsx14(X, { style: { width: "1rem", height: "1rem" } }),
1110
+ /* @__PURE__ */ jsx14(
1111
+ "span",
1112
+ {
1113
+ style: {
1114
+ position: "absolute",
1115
+ width: 1,
1116
+ height: 1,
1117
+ overflow: "hidden",
1118
+ clip: "rect(0,0,0,0)"
1119
+ },
1120
+ children: "Close"
1121
+ }
1122
+ )
1212
1123
  ] })
1213
1124
  ]
1214
1125
  }
@@ -1218,39 +1129,18 @@ DialogContent.displayName = DialogPrimitive.Content.displayName;
1218
1129
  var DialogHeader = ({
1219
1130
  className,
1220
1131
  ...props
1221
- }) => /* @__PURE__ */ jsx14(
1222
- "div",
1223
- {
1224
- className: cn(
1225
- "flex flex-col space-y-1.5 text-center sm:text-left",
1226
- className
1227
- ),
1228
- ...props
1229
- }
1230
- );
1132
+ }) => /* @__PURE__ */ jsx14("div", { className: cn("dl-dialog__header", className), ...props });
1231
1133
  DialogHeader.displayName = "DialogHeader";
1232
1134
  var DialogFooter = ({
1233
1135
  className,
1234
1136
  ...props
1235
- }) => /* @__PURE__ */ jsx14(
1236
- "div",
1237
- {
1238
- className: cn(
1239
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
1240
- className
1241
- ),
1242
- ...props
1243
- }
1244
- );
1137
+ }) => /* @__PURE__ */ jsx14("div", { className: cn("dl-dialog__footer", className), ...props });
1245
1138
  DialogFooter.displayName = "DialogFooter";
1246
1139
  var DialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1247
1140
  DialogPrimitive.Title,
1248
1141
  {
1249
1142
  ref,
1250
- className: cn(
1251
- "text-lg font-semibold leading-none tracking-tight",
1252
- className
1253
- ),
1143
+ className: cn("dl-dialog__title", className),
1254
1144
  ...props
1255
1145
  }
1256
1146
  ));
@@ -1259,39 +1149,33 @@ var DialogDescription = React14.forwardRef(({ className, ...props }, ref) => /*
1259
1149
  DialogPrimitive.Description,
1260
1150
  {
1261
1151
  ref,
1262
- className: cn("text-sm text-muted-foreground", className),
1152
+ className: cn("dl-dialog__desc", className),
1263
1153
  ...props
1264
1154
  }
1265
1155
  ));
1266
1156
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
1267
1157
 
1268
- // src/components/command.tsx
1158
+ // src/components/command/command.tsx
1269
1159
  import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
1270
1160
  var Command = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
1271
1161
  CommandPrimitive,
1272
1162
  {
1273
1163
  ref,
1274
- className: cn(
1275
- "flex flex-col overflow-hidden rounded-md bg-popover text-popover-foreground size-full",
1276
- className
1277
- ),
1164
+ className: cn("dl-command", className),
1278
1165
  ...props
1279
1166
  }
1280
1167
  ));
1281
1168
  Command.displayName = CommandPrimitive.displayName;
1282
1169
  var CommandDialog = ({ children, ...props }) => {
1283
- return /* @__PURE__ */ jsx15(Dialog, { ...props, children: /* @__PURE__ */ jsx15(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx15(Command, { className: "**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 **:[[cmdk-item]]:py-3 [&_[cmdk-input-wrapper]_svg]:size-5", children }) }) });
1170
+ return /* @__PURE__ */ jsx15(Dialog, { ...props, children: /* @__PURE__ */ jsx15(DialogContent, { className: "dl-command-dialog-content", children: /* @__PURE__ */ jsx15(Command, { children }) }) });
1284
1171
  };
1285
- var CommandInput = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs7("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1286
- /* @__PURE__ */ jsx15(Search, { className: "mr-2 shrink-0 opacity-50 size-4" }),
1172
+ var CommandInput = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs7("div", { className: "dl-command-input-wrapper", "cmdk-input-wrapper": "", children: [
1173
+ /* @__PURE__ */ jsx15(Search, { className: "dl-command-input-icon" }),
1287
1174
  /* @__PURE__ */ jsx15(
1288
1175
  CommandPrimitive.Input,
1289
1176
  {
1290
1177
  ref,
1291
- className: cn(
1292
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1293
- className
1294
- ),
1178
+ className: cn("dl-command-input", className),
1295
1179
  ...props
1296
1180
  }
1297
1181
  )
@@ -1301,28 +1185,18 @@ var CommandList = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
1301
1185
  CommandPrimitive.List,
1302
1186
  {
1303
1187
  ref,
1304
- className: cn("max-h-75 overflow-y-auto overflow-x-hidden", className),
1188
+ className: cn("dl-command-list", className),
1305
1189
  ...props
1306
1190
  }
1307
1191
  ));
1308
1192
  CommandList.displayName = CommandPrimitive.List.displayName;
1309
- var CommandEmpty = React15.forwardRef((props, ref) => /* @__PURE__ */ jsx15(
1310
- CommandPrimitive.Empty,
1311
- {
1312
- ref,
1313
- className: "py-6 text-center text-sm",
1314
- ...props
1315
- }
1316
- ));
1193
+ var CommandEmpty = React15.forwardRef((props, ref) => /* @__PURE__ */ jsx15(CommandPrimitive.Empty, { ref, className: "dl-command-empty", ...props }));
1317
1194
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
1318
1195
  var CommandGroup = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
1319
1196
  CommandPrimitive.Group,
1320
1197
  {
1321
1198
  ref,
1322
- className: cn(
1323
- "overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
1324
- className
1325
- ),
1199
+ className: cn("dl-command-group", className),
1326
1200
  ...props
1327
1201
  }
1328
1202
  ));
@@ -1331,7 +1205,7 @@ var CommandSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @
1331
1205
  CommandPrimitive.Separator,
1332
1206
  {
1333
1207
  ref,
1334
- className: cn("-mx-1 h-px bg-border", className),
1208
+ className: cn("dl-command-separator", className),
1335
1209
  ...props
1336
1210
  }
1337
1211
  ));
@@ -1340,146 +1214,142 @@ var CommandItem = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
1340
1214
  CommandPrimitive.Item,
1341
1215
  {
1342
1216
  ref,
1343
- className: cn(
1344
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
1345
- className
1346
- ),
1217
+ className: cn("dl-command-item", className),
1347
1218
  ...props
1348
1219
  }
1349
1220
  ));
1350
1221
  CommandItem.displayName = CommandPrimitive.Item.displayName;
1351
- var CommandShortcut = ({
1352
- className,
1353
- ...props
1354
- }) => {
1355
- return /* @__PURE__ */ jsx15(
1356
- "span",
1357
- {
1358
- className: cn(
1359
- "ml-auto text-xs tracking-widest text-muted-foreground",
1360
- className
1361
- ),
1362
- ...props
1363
- }
1364
- );
1222
+ var CommandShortcut = ({ className, ...props }) => {
1223
+ return /* @__PURE__ */ jsx15("span", { className: cn("dl-command-shortcut", className), ...props });
1365
1224
  };
1366
1225
  CommandShortcut.displayName = "CommandShortcut";
1367
1226
 
1368
- // src/components/context-menu.tsx
1227
+ // src/components/confirm-dialog/confirm-dialog.tsx
1228
+ import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1229
+ function ConfirmDialog({
1230
+ open,
1231
+ onOpenChange,
1232
+ title,
1233
+ description,
1234
+ onConfirm,
1235
+ confirmText = "Confirm",
1236
+ cancelText = "Cancel",
1237
+ destructive = false
1238
+ }) {
1239
+ return /* @__PURE__ */ jsx16(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs8(AlertDialogContent, { children: [
1240
+ /* @__PURE__ */ jsxs8(AlertDialogHeader, { children: [
1241
+ /* @__PURE__ */ jsx16(AlertDialogTitle, { children: title }),
1242
+ /* @__PURE__ */ jsx16(AlertDialogDescription, { children: description })
1243
+ ] }),
1244
+ /* @__PURE__ */ jsxs8(AlertDialogFooter, { children: [
1245
+ /* @__PURE__ */ jsx16(AlertDialogCancel, { children: cancelText }),
1246
+ /* @__PURE__ */ jsx16(
1247
+ AlertDialogAction,
1248
+ {
1249
+ onClick: onConfirm,
1250
+ className: destructive ? "dl-btn--destructive" : "",
1251
+ children: confirmText
1252
+ }
1253
+ )
1254
+ ] })
1255
+ ] }) });
1256
+ }
1257
+
1258
+ // src/components/context-menu/context-menu.tsx
1369
1259
  import * as React16 from "react";
1370
1260
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1371
1261
  import { Check as Check2, ChevronRight as ChevronRight2, Circle } from "lucide-react";
1372
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
1262
+ import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1373
1263
  var ContextMenu = ContextMenuPrimitive.Root;
1374
1264
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1375
1265
  var ContextMenuGroup = ContextMenuPrimitive.Group;
1376
1266
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
1377
1267
  var ContextMenuSub = ContextMenuPrimitive.Sub;
1378
1268
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1379
- var ContextMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1269
+ var ContextMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1380
1270
  ContextMenuPrimitive.SubTrigger,
1381
1271
  {
1382
1272
  ref,
1383
1273
  className: cn(
1384
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground",
1274
+ "dl-menu-item dl-menu-sub-trigger",
1385
1275
  inset && "pl-8",
1386
1276
  className
1387
1277
  ),
1388
1278
  ...props,
1389
1279
  children: [
1390
1280
  children,
1391
- /* @__PURE__ */ jsx16(ChevronRight2, { className: "ml-auto size-4" })
1281
+ /* @__PURE__ */ jsx17(ChevronRight2, { className: "ml-auto size-4" })
1392
1282
  ]
1393
1283
  }
1394
1284
  ));
1395
1285
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1396
- var ContextMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1286
+ var ContextMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1397
1287
  ContextMenuPrimitive.SubContent,
1398
1288
  {
1399
1289
  ref,
1400
- className: cn(
1401
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-context-menu-content-transform-origin)",
1402
- className
1403
- ),
1290
+ className: cn("dl-menu-content", className),
1404
1291
  ...props
1405
1292
  }
1406
1293
  ));
1407
1294
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1408
- var ContextMenuContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
1295
+ var ContextMenuContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
1409
1296
  ContextMenuPrimitive.Content,
1410
1297
  {
1411
1298
  ref,
1412
- className: cn(
1413
- "z-50 max-h-(--radix-context-menu-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-context-menu-content-transform-origin)",
1414
- className
1415
- ),
1299
+ className: cn("dl-context-menu-content", className),
1416
1300
  ...props
1417
1301
  }
1418
1302
  ) }));
1419
1303
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1420
- var ContextMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
1304
+ var ContextMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
1421
1305
  ContextMenuPrimitive.Item,
1422
1306
  {
1423
1307
  ref,
1424
- className: cn(
1425
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1426
- inset && "pl-8",
1427
- className
1428
- ),
1308
+ className: cn("dl-menu-item", inset && "pl-8", className),
1429
1309
  ...props
1430
1310
  }
1431
1311
  ));
1432
1312
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1433
- var ContextMenuCheckboxItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1313
+ var ContextMenuCheckboxItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1434
1314
  ContextMenuPrimitive.CheckboxItem,
1435
1315
  {
1436
1316
  ref,
1437
- className: cn(
1438
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1439
- className
1440
- ),
1317
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
1441
1318
  ...props,
1442
1319
  children: [
1443
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx16(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Check2, { className: "size-4" }) }) }),
1320
+ /* @__PURE__ */ jsx17("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(Check2, { className: "size-4" }) }) }),
1444
1321
  children
1445
1322
  ]
1446
1323
  }
1447
1324
  ));
1448
1325
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1449
- var ContextMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1326
+ var ContextMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
1450
1327
  ContextMenuPrimitive.RadioItem,
1451
1328
  {
1452
1329
  ref,
1453
- className: cn(
1454
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1455
- className
1456
- ),
1330
+ className: cn("dl-menu-item dl-menu-radio-item", className),
1457
1331
  ...props,
1458
1332
  children: [
1459
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx16(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Circle, { className: "fill-current size-4" }) }) }),
1333
+ /* @__PURE__ */ jsx17("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(Circle, { className: "fill-current size-2" }) }) }),
1460
1334
  children
1461
1335
  ]
1462
1336
  }
1463
1337
  ));
1464
1338
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1465
- var ContextMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
1339
+ var ContextMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx17(
1466
1340
  ContextMenuPrimitive.Label,
1467
1341
  {
1468
1342
  ref,
1469
- className: cn(
1470
- "px-2 py-1.5 text-sm font-semibold text-foreground",
1471
- inset && "pl-8",
1472
- className
1473
- ),
1343
+ className: cn("dl-menu-label", inset && "pl-8", className),
1474
1344
  ...props
1475
1345
  }
1476
1346
  ));
1477
1347
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1478
- var ContextMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1348
+ var ContextMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1479
1349
  ContextMenuPrimitive.Separator,
1480
1350
  {
1481
1351
  ref,
1482
- className: cn("-mx-1 my-1 h-px bg-border", className),
1352
+ className: cn("dl-menu-separator", className),
1483
1353
  ...props
1484
1354
  }
1485
1355
  ));
@@ -1488,27 +1358,93 @@ var ContextMenuShortcut = ({
1488
1358
  className,
1489
1359
  ...props
1490
1360
  }) => {
1491
- return /* @__PURE__ */ jsx16(
1492
- "span",
1493
- {
1494
- className: cn(
1495
- "ml-auto text-xs tracking-widest text-muted-foreground",
1496
- className
1497
- ),
1498
- ...props
1499
- }
1500
- );
1361
+ return /* @__PURE__ */ jsx17("span", { className: cn("dl-menu-shortcut", className), ...props });
1501
1362
  };
1502
1363
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1503
1364
 
1504
- // src/components/drawer.tsx
1365
+ // src/components/date-picker/date-picker.tsx
1366
+ import * as React18 from "react";
1367
+ import { format } from "date-fns";
1368
+ import { Calendar as CalendarIcon } from "lucide-react";
1369
+
1370
+ // src/components/popover/popover.tsx
1505
1371
  import * as React17 from "react";
1372
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
1373
+ import { jsx as jsx18 } from "react/jsx-runtime";
1374
+ var Popover = PopoverPrimitive.Root;
1375
+ var PopoverTrigger = PopoverPrimitive.Trigger;
1376
+ var PopoverAnchor = PopoverPrimitive.Anchor;
1377
+ var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
1378
+ PopoverPrimitive.Content,
1379
+ {
1380
+ ref,
1381
+ align,
1382
+ sideOffset,
1383
+ className: cn("dl-popover", className),
1384
+ ...props
1385
+ }
1386
+ ) }));
1387
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1388
+
1389
+ // src/components/date-picker/date-picker.tsx
1390
+ import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1391
+ function DatePicker({
1392
+ value,
1393
+ onChange,
1394
+ placeholder = "Pick a date",
1395
+ className,
1396
+ disabled
1397
+ }) {
1398
+ const date = React18.useMemo(() => {
1399
+ if (!value) return void 0;
1400
+ const parts = value.split("-");
1401
+ if (parts.length !== 3) {
1402
+ const d = new Date(value);
1403
+ return isNaN(d.getTime()) ? void 0 : d;
1404
+ }
1405
+ const year = parseInt(parts[0], 10);
1406
+ const month = parseInt(parts[1], 10) - 1;
1407
+ const day = parseInt(parts[2], 10);
1408
+ return new Date(year, month, day, 12, 0, 0);
1409
+ }, [value]);
1410
+ return /* @__PURE__ */ jsxs10(Popover, { children: [
1411
+ /* @__PURE__ */ jsx19(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs10(
1412
+ Button,
1413
+ {
1414
+ variant: "outline",
1415
+ type: "button",
1416
+ disabled,
1417
+ className: cn(
1418
+ "dl-date-picker-trigger",
1419
+ !value && "dl-date-picker-trigger--placeholder",
1420
+ className
1421
+ ),
1422
+ children: [
1423
+ /* @__PURE__ */ jsx19(CalendarIcon, { className: "dl-date-picker-icon" }),
1424
+ date && !isNaN(date.getTime()) ? format(date, "PPP") : /* @__PURE__ */ jsx19("span", { children: placeholder })
1425
+ ]
1426
+ }
1427
+ ) }),
1428
+ /* @__PURE__ */ jsx19(PopoverContent, { className: "dl-date-picker-content", align: "start", children: /* @__PURE__ */ jsx19(
1429
+ Calendar,
1430
+ {
1431
+ mode: "single",
1432
+ selected: date,
1433
+ onSelect: (selectedDate) => onChange?.(selectedDate ? format(selectedDate, "yyyy-MM-dd") : ""),
1434
+ initialFocus: true
1435
+ }
1436
+ ) })
1437
+ ] });
1438
+ }
1439
+
1440
+ // src/components/drawer/drawer.tsx
1441
+ import * as React19 from "react";
1506
1442
  import { Drawer as DrawerPrimitive } from "vaul";
1507
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1443
+ import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1508
1444
  var Drawer = ({
1509
1445
  shouldScaleBackground = true,
1510
1446
  ...props
1511
- }) => /* @__PURE__ */ jsx17(
1447
+ }) => /* @__PURE__ */ jsx20(
1512
1448
  DrawerPrimitive.Root,
1513
1449
  {
1514
1450
  shouldScaleBackground,
@@ -1519,28 +1455,25 @@ Drawer.displayName = "Drawer";
1519
1455
  var DrawerTrigger = DrawerPrimitive.Trigger;
1520
1456
  var DrawerPortal = DrawerPrimitive.Portal;
1521
1457
  var DrawerClose = DrawerPrimitive.Close;
1522
- var DrawerOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1458
+ var DrawerOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
1523
1459
  DrawerPrimitive.Overlay,
1524
1460
  {
1525
1461
  ref,
1526
- className: cn("fixed inset-0 z-50 bg-black/80", className),
1462
+ className: cn("dl-drawer-overlay", className),
1527
1463
  ...props
1528
1464
  }
1529
1465
  ));
1530
1466
  DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
1531
- var DrawerContent = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(DrawerPortal, { children: [
1532
- /* @__PURE__ */ jsx17(DrawerOverlay, {}),
1533
- /* @__PURE__ */ jsxs9(
1467
+ var DrawerContent = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(DrawerPortal, { children: [
1468
+ /* @__PURE__ */ jsx20(DrawerOverlay, {}),
1469
+ /* @__PURE__ */ jsxs11(
1534
1470
  DrawerPrimitive.Content,
1535
1471
  {
1536
1472
  ref,
1537
- className: cn(
1538
- "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
1539
- className
1540
- ),
1473
+ className: cn("dl-drawer-content", className),
1541
1474
  ...props,
1542
1475
  children: [
1543
- /* @__PURE__ */ jsx17("div", { className: "mx-auto mt-4 h-2 w-25 rounded-full bg-muted" }),
1476
+ /* @__PURE__ */ jsx20("div", { className: "dl-drawer-handle" }),
1544
1477
  children
1545
1478
  ]
1546
1479
  }
@@ -1550,164 +1483,138 @@ DrawerContent.displayName = "DrawerContent";
1550
1483
  var DrawerHeader = ({
1551
1484
  className,
1552
1485
  ...props
1553
- }) => /* @__PURE__ */ jsx17(
1554
- "div",
1555
- {
1556
- className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
1557
- ...props
1558
- }
1559
- );
1486
+ }) => /* @__PURE__ */ jsx20("div", { className: cn("dl-drawer-header", className), ...props });
1560
1487
  DrawerHeader.displayName = "DrawerHeader";
1561
1488
  var DrawerFooter = ({
1562
1489
  className,
1563
1490
  ...props
1564
- }) => /* @__PURE__ */ jsx17(
1565
- "div",
1566
- {
1567
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
1568
- ...props
1569
- }
1570
- );
1491
+ }) => /* @__PURE__ */ jsx20("div", { className: cn("dl-drawer-footer", className), ...props });
1571
1492
  DrawerFooter.displayName = "DrawerFooter";
1572
- var DrawerTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1493
+ var DrawerTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
1573
1494
  DrawerPrimitive.Title,
1574
1495
  {
1575
1496
  ref,
1576
- className: cn(
1577
- "text-lg font-semibold leading-none tracking-tight",
1578
- className
1579
- ),
1497
+ className: cn("dl-drawer-title", className),
1580
1498
  ...props
1581
1499
  }
1582
1500
  ));
1583
1501
  DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
1584
- var DrawerDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1502
+ var DrawerDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
1585
1503
  DrawerPrimitive.Description,
1586
1504
  {
1587
1505
  ref,
1588
- className: cn("text-sm text-muted-foreground", className),
1506
+ className: cn("dl-drawer-desc", className),
1589
1507
  ...props
1590
1508
  }
1591
1509
  ));
1592
1510
  DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
1593
1511
 
1594
- // src/components/dropdown-menu.tsx
1595
- import * as React18 from "react";
1512
+ // src/components/dropdown-menu/dropdown-menu.tsx
1513
+ import * as React20 from "react";
1596
1514
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1597
1515
  import { Check as Check3, ChevronRight as ChevronRight3, Circle as Circle2 } from "lucide-react";
1598
- import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1516
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1599
1517
  var DropdownMenu = DropdownMenuPrimitive.Root;
1600
1518
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1601
1519
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
1602
1520
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
1603
1521
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
1604
1522
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
1605
- var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
1523
+ var DropdownMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1606
1524
  DropdownMenuPrimitive.SubTrigger,
1607
1525
  {
1608
1526
  ref,
1609
1527
  className: cn(
1610
- "flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1528
+ "dl-menu-item dl-menu-sub-trigger",
1611
1529
  inset && "pl-8",
1612
1530
  className
1613
1531
  ),
1614
1532
  ...props,
1615
1533
  children: [
1616
1534
  children,
1617
- /* @__PURE__ */ jsx18(ChevronRight3, { className: "ml-auto" })
1535
+ /* @__PURE__ */ jsx21(
1536
+ ChevronRight3,
1537
+ {
1538
+ style: { marginLeft: "auto", width: "1rem", height: "1rem" }
1539
+ }
1540
+ )
1618
1541
  ]
1619
1542
  }
1620
1543
  ));
1621
1544
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1622
- var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1545
+ var DropdownMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1623
1546
  DropdownMenuPrimitive.SubContent,
1624
1547
  {
1625
1548
  ref,
1626
- className: cn(
1627
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-dropdown-menu-content-transform-origin)",
1628
- className
1629
- ),
1549
+ className: cn("dl-menu-content", className),
1630
1550
  ...props
1631
1551
  }
1632
1552
  ));
1633
1553
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1634
- var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
1554
+ var DropdownMenuContent = React20.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx21(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
1635
1555
  DropdownMenuPrimitive.Content,
1636
1556
  {
1637
1557
  ref,
1638
1558
  sideOffset,
1639
- className: cn(
1640
- "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
1641
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-dropdown-menu-content-transform-origin)",
1642
- className
1643
- ),
1559
+ className: cn("dl-menu-content", className),
1644
1560
  ...props
1645
1561
  }
1646
1562
  ) }));
1647
1563
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1648
- var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1564
+ var DropdownMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx21(
1649
1565
  DropdownMenuPrimitive.Item,
1650
1566
  {
1651
1567
  ref,
1652
- className: cn(
1653
- "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
1654
- inset && "pl-8",
1655
- className
1656
- ),
1568
+ className: cn("dl-menu-item", inset && "pl-8", className),
1657
1569
  ...props
1658
1570
  }
1659
1571
  ));
1660
1572
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1661
- var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
1573
+ var DropdownMenuCheckboxItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1662
1574
  DropdownMenuPrimitive.CheckboxItem,
1663
1575
  {
1664
1576
  ref,
1665
- className: cn(
1666
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1667
- className
1668
- ),
1577
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
1669
1578
  ...props,
1670
1579
  children: [
1671
- /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx18(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(Check3, { className: "size-4" }) }) }),
1580
+ /* @__PURE__ */ jsx21("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ jsx21(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(Check3, { style: { width: "1rem", height: "1rem" } }) }) }),
1672
1581
  children
1673
1582
  ]
1674
1583
  }
1675
1584
  ));
1676
1585
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1677
- var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
1586
+ var DropdownMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1678
1587
  DropdownMenuPrimitive.RadioItem,
1679
1588
  {
1680
1589
  ref,
1681
- className: cn(
1682
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1683
- className
1684
- ),
1590
+ className: cn("dl-menu-item dl-menu-radio-item", className),
1685
1591
  ...props,
1686
1592
  children: [
1687
- /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx18(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(Circle2, { className: "fill-current size-2" }) }) }),
1593
+ /* @__PURE__ */ jsx21("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ jsx21(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(
1594
+ Circle2,
1595
+ {
1596
+ style: { width: "0.5rem", height: "0.5rem", fill: "currentColor" }
1597
+ }
1598
+ ) }) }),
1688
1599
  children
1689
1600
  ]
1690
1601
  }
1691
1602
  ));
1692
1603
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1693
- var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1604
+ var DropdownMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx21(
1694
1605
  DropdownMenuPrimitive.Label,
1695
1606
  {
1696
1607
  ref,
1697
- className: cn(
1698
- "px-2 py-1.5 text-sm font-semibold",
1699
- inset && "pl-8",
1700
- className
1701
- ),
1608
+ className: cn("dl-menu-label", inset && "pl-8", className),
1702
1609
  ...props
1703
1610
  }
1704
1611
  ));
1705
1612
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1706
- var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1613
+ var DropdownMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1707
1614
  DropdownMenuPrimitive.Separator,
1708
1615
  {
1709
1616
  ref,
1710
- className: cn("-mx-1 my-1 h-px bg-muted", className),
1617
+ className: cn("dl-menu-separator", className),
1711
1618
  ...props
1712
1619
  }
1713
1620
  ));
@@ -1716,18 +1623,12 @@ var DropdownMenuShortcut = ({
1716
1623
  className,
1717
1624
  ...props
1718
1625
  }) => {
1719
- return /* @__PURE__ */ jsx18(
1720
- "span",
1721
- {
1722
- className: cn("ml-auto text-xs tracking-widest opacity-60", className),
1723
- ...props
1724
- }
1725
- );
1626
+ return /* @__PURE__ */ jsx21("span", { className: cn("dl-menu-shortcut", className), ...props });
1726
1627
  };
1727
1628
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1728
1629
 
1729
- // src/components/form.tsx
1730
- import * as React20 from "react";
1630
+ // src/components/form/form.tsx
1631
+ import * as React22 from "react";
1731
1632
  import { Slot as Slot3 } from "@radix-ui/react-slot";
1732
1633
  import {
1733
1634
  Controller,
@@ -1735,15 +1636,13 @@ import {
1735
1636
  useFormContext
1736
1637
  } from "react-hook-form";
1737
1638
 
1738
- // src/components/label.tsx
1739
- import * as React19 from "react";
1639
+ // src/components/label/label.tsx
1640
+ import * as React21 from "react";
1740
1641
  import * as LabelPrimitive from "@radix-ui/react-label";
1741
1642
  import { cva as cva4 } from "class-variance-authority";
1742
- import { jsx as jsx19 } from "react/jsx-runtime";
1743
- var labelVariants = cva4(
1744
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1745
- );
1746
- var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
1643
+ import { jsx as jsx22 } from "react/jsx-runtime";
1644
+ var labelVariants = cva4("dl-label");
1645
+ var Label3 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1747
1646
  LabelPrimitive.Root,
1748
1647
  {
1749
1648
  ref,
@@ -1753,20 +1652,20 @@ var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
1753
1652
  ));
1754
1653
  Label3.displayName = LabelPrimitive.Root.displayName;
1755
1654
 
1756
- // src/components/form.tsx
1757
- import { jsx as jsx20 } from "react/jsx-runtime";
1655
+ // src/components/form/form.tsx
1656
+ import { jsx as jsx23 } from "react/jsx-runtime";
1758
1657
  var Form = FormProvider;
1759
- var FormFieldContext = React20.createContext(
1658
+ var FormFieldContext = React22.createContext(
1760
1659
  null
1761
1660
  );
1762
1661
  var FormField = ({
1763
1662
  ...props
1764
1663
  }) => {
1765
- return /* @__PURE__ */ jsx20(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx20(Controller, { ...props }) });
1664
+ return /* @__PURE__ */ jsx23(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx23(Controller, { ...props }) });
1766
1665
  };
1767
1666
  var useFormField = () => {
1768
- const fieldContext = React20.useContext(FormFieldContext);
1769
- const itemContext = React20.useContext(FormItemContext);
1667
+ const fieldContext = React22.useContext(FormFieldContext);
1668
+ const itemContext = React22.useContext(FormItemContext);
1770
1669
  const { getFieldState, formState } = useFormContext();
1771
1670
  if (!fieldContext) {
1772
1671
  throw new Error("useFormField should be used within <FormField>");
@@ -1785,28 +1684,28 @@ var useFormField = () => {
1785
1684
  ...fieldState
1786
1685
  };
1787
1686
  };
1788
- var FormItemContext = React20.createContext(null);
1789
- var FormItem = React20.forwardRef(({ className, ...props }, ref) => {
1790
- const id = React20.useId();
1791
- return /* @__PURE__ */ jsx20(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx20("div", { ref, className: cn("space-y-2", className), ...props }) });
1687
+ var FormItemContext = React22.createContext(null);
1688
+ var FormItem = React22.forwardRef(({ className, ...props }, ref) => {
1689
+ const id = React22.useId();
1690
+ return /* @__PURE__ */ jsx23(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx23("div", { ref, className: cn("dl-form-item", className), ...props }) });
1792
1691
  });
1793
1692
  FormItem.displayName = "FormItem";
1794
- var FormLabel = React20.forwardRef(({ className, ...props }, ref) => {
1693
+ var FormLabel = React22.forwardRef(({ className, ...props }, ref) => {
1795
1694
  const { error, formItemId } = useFormField();
1796
- return /* @__PURE__ */ jsx20(
1695
+ return /* @__PURE__ */ jsx23(
1797
1696
  Label3,
1798
1697
  {
1799
1698
  ref,
1800
- className: cn(error && "text-destructive", className),
1699
+ className: cn(error && "dl-form-label--error", className),
1801
1700
  htmlFor: formItemId,
1802
1701
  ...props
1803
1702
  }
1804
1703
  );
1805
1704
  });
1806
1705
  FormLabel.displayName = "FormLabel";
1807
- var FormControl = React20.forwardRef(({ ...props }, ref) => {
1706
+ var FormControl = React22.forwardRef(({ ...props }, ref) => {
1808
1707
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1809
- return /* @__PURE__ */ jsx20(
1708
+ return /* @__PURE__ */ jsx23(
1810
1709
  Slot3,
1811
1710
  {
1812
1711
  ref,
@@ -1818,31 +1717,31 @@ var FormControl = React20.forwardRef(({ ...props }, ref) => {
1818
1717
  );
1819
1718
  });
1820
1719
  FormControl.displayName = "FormControl";
1821
- var FormDescription = React20.forwardRef(({ className, ...props }, ref) => {
1720
+ var FormDescription = React22.forwardRef(({ className, ...props }, ref) => {
1822
1721
  const { formDescriptionId } = useFormField();
1823
- return /* @__PURE__ */ jsx20(
1722
+ return /* @__PURE__ */ jsx23(
1824
1723
  "p",
1825
1724
  {
1826
1725
  ref,
1827
1726
  id: formDescriptionId,
1828
- className: cn("text-[0.8rem] text-muted-foreground", className),
1727
+ className: cn("dl-form-desc", className),
1829
1728
  ...props
1830
1729
  }
1831
1730
  );
1832
1731
  });
1833
1732
  FormDescription.displayName = "FormDescription";
1834
- var FormMessage = React20.forwardRef(({ className, children, ...props }, ref) => {
1733
+ var FormMessage = React22.forwardRef(({ className, children, ...props }, ref) => {
1835
1734
  const { error, formMessageId } = useFormField();
1836
1735
  const body = error ? String(error?.message ?? "") : children;
1837
1736
  if (!body) {
1838
1737
  return null;
1839
1738
  }
1840
- return /* @__PURE__ */ jsx20(
1739
+ return /* @__PURE__ */ jsx23(
1841
1740
  "p",
1842
1741
  {
1843
1742
  ref,
1844
1743
  id: formMessageId,
1845
- className: cn("text-[0.8rem] font-medium text-destructive", className),
1744
+ className: cn("dl-form-error", className),
1846
1745
  ...props,
1847
1746
  children: body
1848
1747
  }
@@ -1850,408 +1749,387 @@ var FormMessage = React20.forwardRef(({ className, children, ...props }, ref) =>
1850
1749
  });
1851
1750
  FormMessage.displayName = "FormMessage";
1852
1751
 
1853
- // src/components/hover-card.tsx
1854
- import * as React21 from "react";
1752
+ // src/components/hover-card/hover-card.tsx
1753
+ import * as React23 from "react";
1855
1754
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
1856
- import { jsx as jsx21 } from "react/jsx-runtime";
1755
+ import { jsx as jsx24 } from "react/jsx-runtime";
1857
1756
  var HoverCard = HoverCardPrimitive.Root;
1858
1757
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
1859
- var HoverCardContent = React21.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx21(
1758
+ var HoverCardContent = React23.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx24(
1860
1759
  HoverCardPrimitive.Content,
1861
1760
  {
1862
1761
  ref,
1863
1762
  align,
1864
1763
  sideOffset,
1865
- className: cn(
1866
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-hover-card-content-transform-origin)",
1867
- className
1868
- ),
1764
+ className: cn("dl-hover-card", className),
1869
1765
  ...props
1870
1766
  }
1871
1767
  ));
1872
1768
  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
1873
1769
 
1874
- // src/components/input-otp.tsx
1875
- import * as React22 from "react";
1770
+ // src/components/input/input.tsx
1771
+ import * as React24 from "react";
1772
+ import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
1773
+ var Input = React24.forwardRef(
1774
+ ({ className, type, startIcon, endIcon, ...props }, ref) => {
1775
+ const inputEl = /* @__PURE__ */ jsx25(
1776
+ "input",
1777
+ {
1778
+ type,
1779
+ className: cn(
1780
+ "dl-input",
1781
+ startIcon && "dl-input--has-start-icon",
1782
+ endIcon && "dl-input--has-end-icon",
1783
+ className
1784
+ ),
1785
+ ref,
1786
+ ...props
1787
+ }
1788
+ );
1789
+ if (!startIcon && !endIcon) {
1790
+ return inputEl;
1791
+ }
1792
+ return /* @__PURE__ */ jsxs13("div", { className: "dl-input-wrapper", children: [
1793
+ startIcon && /* @__PURE__ */ jsx25("span", { className: "dl-input-icon dl-input-icon--start", children: startIcon }),
1794
+ inputEl,
1795
+ endIcon && /* @__PURE__ */ jsx25("span", { className: "dl-input-icon dl-input-icon--end", children: endIcon })
1796
+ ] });
1797
+ }
1798
+ );
1799
+ Input.displayName = "Input";
1800
+
1801
+ // src/components/input-otp/input-otp.tsx
1802
+ import * as React25 from "react";
1876
1803
  import { OTPInput, OTPInputContext } from "input-otp";
1877
1804
  import { Minus } from "lucide-react";
1878
- import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
1879
- var InputOTP = React22.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx22(
1805
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1806
+ var InputOTP = React25.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx26(
1880
1807
  OTPInput,
1881
1808
  {
1882
1809
  ref,
1883
- containerClassName: cn(
1884
- "flex items-center gap-2 has-disabled:opacity-50",
1885
- containerClassName
1886
- ),
1887
- className: cn("disabled:cursor-not-allowed", className),
1810
+ containerClassName: cn("dl-input-otp-container", containerClassName),
1811
+ className: cn("dl-input-otp", className),
1888
1812
  ...props
1889
1813
  }
1890
1814
  ));
1891
1815
  InputOTP.displayName = "InputOTP";
1892
- var InputOTPGroup = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22("div", { ref, className: cn("flex items-center", className), ...props }));
1816
+ var InputOTPGroup = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { ref, className: cn("dl-input-otp-group", className), ...props }));
1893
1817
  InputOTPGroup.displayName = "InputOTPGroup";
1894
- var InputOTPSlot = React22.forwardRef(({ index, className, ...props }, ref) => {
1895
- const inputOTPContext = React22.useContext(OTPInputContext);
1818
+ var InputOTPSlot = React25.forwardRef(({ index, className, ...props }, ref) => {
1819
+ const inputOTPContext = React25.useContext(OTPInputContext);
1896
1820
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] ?? {
1897
1821
  char: null,
1898
1822
  hasFakeCaret: false,
1899
1823
  isActive: false
1900
1824
  };
1901
- return /* @__PURE__ */ jsxs11(
1825
+ return /* @__PURE__ */ jsxs14(
1902
1826
  "div",
1903
1827
  {
1904
1828
  ref,
1905
1829
  className: cn(
1906
- "relative flex items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md size-9",
1907
- isActive && "z-10 ring-1 ring-ring",
1830
+ "dl-input-otp-slot",
1831
+ isActive && "dl-input-otp-slot--active",
1908
1832
  className
1909
1833
  ),
1910
1834
  ...props,
1911
1835
  children: [
1912
1836
  char,
1913
- hasFakeCaret && /* @__PURE__ */ jsx22("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx22("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
1837
+ hasFakeCaret && /* @__PURE__ */ jsx26("div", { className: "dl-input-otp-caret", children: /* @__PURE__ */ jsx26("div", { className: "dl-input-otp-caret__line" }) })
1914
1838
  ]
1915
1839
  }
1916
1840
  );
1917
1841
  });
1918
1842
  InputOTPSlot.displayName = "InputOTPSlot";
1919
- var InputOTPSeparator = React22.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx22("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx22(Minus, {}) }));
1843
+ var InputOTPSeparator = React25.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx26("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx26(Minus, {}) }));
1920
1844
  InputOTPSeparator.displayName = "InputOTPSeparator";
1921
1845
 
1922
- // src/components/input.tsx
1923
- import * as React23 from "react";
1924
- import { jsx as jsx23 } from "react/jsx-runtime";
1925
- var Input = React23.forwardRef(
1926
- ({ className, type, ...props }, ref) => {
1927
- return /* @__PURE__ */ jsx23(
1928
- "input",
1929
- {
1930
- type,
1931
- className: cn(
1932
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:font-medium file:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
1933
- className
1934
- ),
1935
- ref,
1936
- ...props
1937
- }
1938
- );
1846
+ // src/components/skeleton/skeleton.tsx
1847
+ import { jsx as jsx27 } from "react/jsx-runtime";
1848
+ function Skeleton({ className, ...props }) {
1849
+ return /* @__PURE__ */ jsx27("div", { className: cn("dl-skeleton", className), ...props });
1850
+ }
1851
+
1852
+ // src/components/loading-state/loading-state.tsx
1853
+ import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
1854
+ function LoadingState({
1855
+ rows = 3,
1856
+ message,
1857
+ className,
1858
+ ...props
1859
+ }) {
1860
+ if (message) {
1861
+ return /* @__PURE__ */ jsxs15("div", { className: cn("dl-loading", className), ...props, children: [
1862
+ /* @__PURE__ */ jsx28(
1863
+ "svg",
1864
+ {
1865
+ xmlns: "http://www.w3.org/2000/svg",
1866
+ width: "24",
1867
+ height: "24",
1868
+ viewBox: "0 0 24 24",
1869
+ fill: "none",
1870
+ stroke: "currentColor",
1871
+ strokeWidth: "2",
1872
+ strokeLinecap: "round",
1873
+ strokeLinejoin: "round",
1874
+ children: /* @__PURE__ */ jsx28("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
1875
+ }
1876
+ ),
1877
+ /* @__PURE__ */ jsx28("span", { children: message })
1878
+ ] });
1939
1879
  }
1940
- );
1941
- Input.displayName = "Input";
1880
+ return /* @__PURE__ */ jsxs15("div", { className: cn("dl-loading-skeleton", className), ...props, children: [
1881
+ /* @__PURE__ */ jsx28(Skeleton, { style: { height: "2rem", width: "33.333%" } }),
1882
+ /* @__PURE__ */ jsx28("div", { className: "dl-loading-skeleton__list", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsx28(
1883
+ Skeleton,
1884
+ {
1885
+ style: {
1886
+ height: "4rem",
1887
+ width: "100%",
1888
+ borderRadius: "var(--radius-lg, 0.75rem)"
1889
+ }
1890
+ },
1891
+ i
1892
+ )) })
1893
+ ] });
1894
+ }
1942
1895
 
1943
- // src/components/menubar.tsx
1944
- import * as React24 from "react";
1896
+ // src/components/menubar/menubar.tsx
1897
+ import * as React26 from "react";
1945
1898
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
1946
1899
  import { Check as Check4, ChevronRight as ChevronRight4, Circle as Circle3 } from "lucide-react";
1947
- import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
1948
- function MenubarMenu({
1949
- ...props
1950
- }) {
1951
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Menu, { ...props });
1900
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
1901
+ function MenubarMenu(props) {
1902
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Menu, { ...props });
1952
1903
  }
1953
- function MenubarGroup({
1954
- ...props
1955
- }) {
1956
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Group, { ...props });
1904
+ function MenubarGroup(props) {
1905
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Group, { ...props });
1957
1906
  }
1958
- function MenubarPortal({
1959
- ...props
1960
- }) {
1961
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { ...props });
1907
+ function MenubarPortal(props) {
1908
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Portal, { ...props });
1962
1909
  }
1963
- function MenubarRadioGroup({
1964
- ...props
1965
- }) {
1966
- return /* @__PURE__ */ jsx24(MenubarPrimitive.RadioGroup, { ...props });
1910
+ function MenubarRadioGroup(props) {
1911
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.RadioGroup, { ...props });
1967
1912
  }
1968
- function MenubarSub({
1969
- ...props
1970
- }) {
1971
- return /* @__PURE__ */ jsx24(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1913
+ function MenubarSub(props) {
1914
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1972
1915
  }
1973
- var Menubar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1916
+ var Menubar = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
1974
1917
  MenubarPrimitive.Root,
1975
1918
  {
1976
1919
  ref,
1977
- className: cn(
1978
- "flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",
1979
- className
1980
- ),
1920
+ className: cn("dl-menubar", className),
1981
1921
  ...props
1982
1922
  }
1983
1923
  ));
1984
1924
  Menubar.displayName = MenubarPrimitive.Root.displayName;
1985
- var MenubarTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1925
+ var MenubarTrigger = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
1986
1926
  MenubarPrimitive.Trigger,
1987
1927
  {
1988
1928
  ref,
1989
- className: cn(
1990
- "flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
1991
- className
1992
- ),
1929
+ className: cn("dl-menubar-trigger", className),
1993
1930
  ...props
1994
1931
  }
1995
1932
  ));
1996
1933
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
1997
- var MenubarSubTrigger = React24.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1934
+ var MenubarSubTrigger = React26.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
1998
1935
  MenubarPrimitive.SubTrigger,
1999
1936
  {
2000
1937
  ref,
2001
1938
  className: cn(
2002
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
1939
+ "dl-menu-item dl-menu-sub-trigger",
2003
1940
  inset && "pl-8",
2004
1941
  className
2005
1942
  ),
2006
1943
  ...props,
2007
1944
  children: [
2008
1945
  children,
2009
- /* @__PURE__ */ jsx24(ChevronRight4, { className: "ml-auto size-4" })
1946
+ /* @__PURE__ */ jsx29(ChevronRight4, { className: "ml-auto size-4" })
2010
1947
  ]
2011
1948
  }
2012
1949
  ));
2013
1950
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
2014
- var MenubarSubContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1951
+ var MenubarSubContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2015
1952
  MenubarPrimitive.SubContent,
2016
1953
  {
2017
1954
  ref,
2018
- className: cn(
2019
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-menubar-content-transform-origin)",
2020
- className
2021
- ),
1955
+ className: cn("dl-menu-content", className),
2022
1956
  ...props
2023
1957
  }
2024
1958
  ));
2025
1959
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
2026
- var MenubarContent = React24.forwardRef(
2027
- ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
1960
+ var MenubarContent = React26.forwardRef(
1961
+ ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx29(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
2028
1962
  MenubarPrimitive.Content,
2029
1963
  {
2030
1964
  ref,
2031
1965
  align,
2032
1966
  alignOffset,
2033
1967
  sideOffset,
2034
- className: cn(
2035
- "z-50 min-w-48 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-menubar-content-transform-origin)",
2036
- className
2037
- ),
1968
+ className: cn("dl-menu-content", className),
2038
1969
  ...props
2039
1970
  }
2040
1971
  ) })
2041
1972
  );
2042
1973
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
2043
- var MenubarItem = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
1974
+ var MenubarItem = React26.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx29(
2044
1975
  MenubarPrimitive.Item,
2045
1976
  {
2046
1977
  ref,
2047
- className: cn(
2048
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2049
- inset && "pl-8",
2050
- className
2051
- ),
1978
+ className: cn("dl-menu-item", inset && "pl-8", className),
2052
1979
  ...props
2053
1980
  }
2054
1981
  ));
2055
1982
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
2056
- var MenubarCheckboxItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1983
+ var MenubarCheckboxItem = React26.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs16(
2057
1984
  MenubarPrimitive.CheckboxItem,
2058
1985
  {
2059
1986
  ref,
2060
- className: cn(
2061
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2062
- className
2063
- ),
1987
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
1988
+ checked,
2064
1989
  ...props,
2065
1990
  children: [
2066
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Check4, { className: "size-4" }) }) }),
1991
+ /* @__PURE__ */ jsx29("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, { className: "size-4" }) }) }),
2067
1992
  children
2068
1993
  ]
2069
1994
  }
2070
1995
  ));
2071
1996
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
2072
- var MenubarRadioItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1997
+ var MenubarRadioItem = React26.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
2073
1998
  MenubarPrimitive.RadioItem,
2074
1999
  {
2075
2000
  ref,
2076
- className: cn(
2077
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2078
- className
2079
- ),
2001
+ className: cn("dl-menu-item dl-menu-radio-item", className),
2080
2002
  ...props,
2081
2003
  children: [
2082
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Circle3, { className: "fill-current size-4" }) }) }),
2004
+ /* @__PURE__ */ jsx29("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Circle3, { className: "fill-current size-2" }) }) }),
2083
2005
  children
2084
2006
  ]
2085
2007
  }
2086
2008
  ));
2087
2009
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
2088
- var MenubarLabel = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
2010
+ var MenubarLabel = React26.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx29(
2089
2011
  MenubarPrimitive.Label,
2090
2012
  {
2091
2013
  ref,
2092
- className: cn(
2093
- "px-2 py-1.5 text-sm font-semibold",
2094
- inset && "pl-8",
2095
- className
2096
- ),
2014
+ className: cn("dl-menu-label", inset && "pl-8", className),
2097
2015
  ...props
2098
2016
  }
2099
2017
  ));
2100
2018
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
2101
- var MenubarSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2019
+ var MenubarSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2102
2020
  MenubarPrimitive.Separator,
2103
2021
  {
2104
2022
  ref,
2105
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2023
+ className: cn("dl-menu-separator", className),
2106
2024
  ...props
2107
2025
  }
2108
2026
  ));
2109
2027
  MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
2110
- var MenubarShortcut = ({
2111
- className,
2112
- ...props
2113
- }) => {
2114
- return /* @__PURE__ */ jsx24(
2115
- "span",
2116
- {
2117
- className: cn(
2118
- "ml-auto text-xs tracking-widest text-muted-foreground",
2119
- className
2120
- ),
2121
- ...props
2122
- }
2123
- );
2028
+ var MenubarShortcut = ({ className, ...props }) => {
2029
+ return /* @__PURE__ */ jsx29("span", { className: cn("dl-menu-shortcut", className), ...props });
2124
2030
  };
2125
- MenubarShortcut.displayname = "MenubarShortcut";
2031
+ MenubarShortcut.displayName = "MenubarShortcut";
2126
2032
 
2127
- // src/components/navigation-menu.tsx
2128
- import * as React25 from "react";
2033
+ // src/components/navigation-menu/navigation-menu.tsx
2034
+ import * as React27 from "react";
2129
2035
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2130
2036
  import { cva as cva5 } from "class-variance-authority";
2131
2037
  import { ChevronDown as ChevronDown2 } from "lucide-react";
2132
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
2133
- var NavigationMenu = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2038
+ import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
2039
+ var NavigationMenu = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
2134
2040
  NavigationMenuPrimitive.Root,
2135
2041
  {
2136
2042
  ref,
2137
- className: cn(
2138
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
2139
- className
2140
- ),
2043
+ className: cn("dl-navigation-menu", className),
2141
2044
  ...props,
2142
2045
  children: [
2143
2046
  children,
2144
- /* @__PURE__ */ jsx25(NavigationMenuViewport, {})
2047
+ /* @__PURE__ */ jsx30(NavigationMenuViewport, {})
2145
2048
  ]
2146
2049
  }
2147
2050
  ));
2148
2051
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
2149
- var NavigationMenuList = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
2052
+ var NavigationMenuList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
2150
2053
  NavigationMenuPrimitive.List,
2151
2054
  {
2152
2055
  ref,
2153
- className: cn(
2154
- "group flex flex-1 list-none items-center justify-center space-x-1",
2155
- className
2156
- ),
2056
+ className: cn("dl-navigation-menu-list", className),
2157
2057
  ...props
2158
2058
  }
2159
2059
  ));
2160
2060
  NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
2161
2061
  var NavigationMenuItem = NavigationMenuPrimitive.Item;
2162
- var navigationMenuTriggerStyle = cva5(
2163
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium cursor-pointer transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
2164
- );
2165
- var NavigationMenuTrigger = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2062
+ var navigationMenuTriggerStyle = cva5("dl-navigation-menu-trigger");
2063
+ var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
2166
2064
  NavigationMenuPrimitive.Trigger,
2167
2065
  {
2168
2066
  ref,
2169
- className: cn(navigationMenuTriggerStyle(), "group", className),
2067
+ className: cn(navigationMenuTriggerStyle(), className),
2170
2068
  ...props,
2171
2069
  children: [
2172
2070
  children,
2173
2071
  " ",
2174
- /* @__PURE__ */ jsx25(
2175
- ChevronDown2,
2176
- {
2177
- className: "relative top-px ml-1 transition duration-300 group-data-[state=open]:rotate-180 size-3",
2178
- "aria-hidden": "true"
2179
- }
2180
- )
2072
+ /* @__PURE__ */ jsx30(ChevronDown2, { className: "dl-navigation-menu-chevron", "aria-hidden": "true" })
2181
2073
  ]
2182
2074
  }
2183
2075
  ));
2184
2076
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2185
- var NavigationMenuContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
2077
+ var NavigationMenuContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
2186
2078
  NavigationMenuPrimitive.Content,
2187
2079
  {
2188
2080
  ref,
2189
- className: cn(
2190
- "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
2191
- className
2192
- ),
2081
+ className: cn("dl-navigation-menu-content", className),
2193
2082
  ...props
2194
2083
  }
2195
2084
  ));
2196
2085
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2197
2086
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
2198
- var NavigationMenuViewport = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx25(
2087
+ var NavigationMenuViewport = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30("div", { className: "dl-navigation-menu-viewport-wrapper", children: /* @__PURE__ */ jsx30(
2199
2088
  NavigationMenuPrimitive.Viewport,
2200
2089
  {
2201
- className: cn(
2202
- "origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)",
2203
- className
2204
- ),
2090
+ className: cn("dl-navigation-menu-viewport", className),
2205
2091
  ref,
2206
2092
  ...props
2207
2093
  }
2208
2094
  ) }));
2209
2095
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2210
- var NavigationMenuIndicator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
2096
+ var NavigationMenuIndicator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
2211
2097
  NavigationMenuPrimitive.Indicator,
2212
2098
  {
2213
2099
  ref,
2214
- className: cn(
2215
- "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
2216
- className
2217
- ),
2100
+ className: cn("dl-navigation-menu-indicator", className),
2218
2101
  ...props,
2219
- children: /* @__PURE__ */ jsx25("div", { className: "relative top-[60%] rotate-45 rounded-tl-sm bg-border shadow-md size-2" })
2102
+ children: /* @__PURE__ */ jsx30("div", { className: "dl-navigation-menu-indicator__arrow" })
2220
2103
  }
2221
2104
  ));
2222
2105
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
2223
2106
 
2224
- // src/components/pagination.tsx
2225
- import * as React26 from "react";
2107
+ // src/components/pagination/pagination.tsx
2108
+ import * as React28 from "react";
2226
2109
  import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
2227
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2228
- var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx26(
2110
+ import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
2111
+ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx31(
2229
2112
  "nav",
2230
2113
  {
2231
2114
  role: "navigation",
2232
2115
  "aria-label": "pagination",
2233
- className: cn("mx-auto flex w-full justify-center", className),
2116
+ className: cn("dl-pagination", className),
2234
2117
  ...props
2235
2118
  }
2236
2119
  );
2237
2120
  Pagination.displayName = "Pagination";
2238
- var PaginationContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
2239
- "ul",
2240
- {
2241
- ref,
2242
- className: cn("flex flex-row items-center gap-1", className),
2243
- ...props
2244
- }
2245
- ));
2121
+ var PaginationContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31("ul", { ref, className: cn("dl-pagination-content", className), ...props }));
2246
2122
  PaginationContent.displayName = "PaginationContent";
2247
- var PaginationItem = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("li", { ref, className: cn("", className), ...props }));
2123
+ var PaginationItem = React28.forwardRef(
2124
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("li", { ref, className: cn("dl-pagination-item", className), ...props })
2125
+ );
2248
2126
  PaginationItem.displayName = "PaginationItem";
2249
2127
  var PaginationLink = ({
2250
2128
  className,
2251
2129
  isActive,
2252
2130
  size = "icon",
2253
2131
  ...props
2254
- }) => /* @__PURE__ */ jsx26(
2132
+ }) => /* @__PURE__ */ jsx31(
2255
2133
  "a",
2256
2134
  {
2257
2135
  "aria-current": isActive ? "page" : void 0,
@@ -2269,33 +2147,30 @@ PaginationLink.displayName = "PaginationLink";
2269
2147
  var PaginationPrevious = ({
2270
2148
  className,
2271
2149
  ...props
2272
- }) => /* @__PURE__ */ jsxs14(
2150
+ }) => /* @__PURE__ */ jsxs18(
2273
2151
  PaginationLink,
2274
2152
  {
2275
2153
  "aria-label": "Go to previous page",
2276
2154
  size: "default",
2277
- className: cn("gap-1 pl-2.5", className),
2155
+ className: cn("dl-pagination-prev", className),
2278
2156
  ...props,
2279
2157
  children: [
2280
- /* @__PURE__ */ jsx26(ChevronLeft, { className: "size-4" }),
2281
- /* @__PURE__ */ jsx26("span", { children: "Previous" })
2158
+ /* @__PURE__ */ jsx31(ChevronLeft, { className: "size-4" }),
2159
+ /* @__PURE__ */ jsx31("span", { children: "Previous" })
2282
2160
  ]
2283
2161
  }
2284
2162
  );
2285
2163
  PaginationPrevious.displayName = "PaginationPrevious";
2286
- var PaginationNext = ({
2287
- className,
2288
- ...props
2289
- }) => /* @__PURE__ */ jsxs14(
2164
+ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs18(
2290
2165
  PaginationLink,
2291
2166
  {
2292
2167
  "aria-label": "Go to next page",
2293
2168
  size: "default",
2294
- className: cn("gap-1 pr-2.5", className),
2169
+ className: cn("dl-pagination-next", className),
2295
2170
  ...props,
2296
2171
  children: [
2297
- /* @__PURE__ */ jsx26("span", { children: "Next" }),
2298
- /* @__PURE__ */ jsx26(ChevronRight5, { className: "size-4" })
2172
+ /* @__PURE__ */ jsx31("span", { children: "Next" }),
2173
+ /* @__PURE__ */ jsx31(ChevronRight5, { className: "size-4" })
2299
2174
  ]
2300
2175
  }
2301
2176
  );
@@ -2303,59 +2178,50 @@ PaginationNext.displayName = "PaginationNext";
2303
2178
  var PaginationEllipsis = ({
2304
2179
  className,
2305
2180
  ...props
2306
- }) => /* @__PURE__ */ jsxs14(
2181
+ }) => /* @__PURE__ */ jsxs18(
2307
2182
  "span",
2308
2183
  {
2309
2184
  "aria-hidden": true,
2310
- className: cn("flex items-center justify-center size-9", className),
2185
+ className: cn("dl-pagination-ellipsis", className),
2311
2186
  ...props,
2312
2187
  children: [
2313
- /* @__PURE__ */ jsx26(MoreHorizontal2, { className: "size-4" }),
2314
- /* @__PURE__ */ jsx26("span", { className: "sr-only", children: "More pages" })
2188
+ /* @__PURE__ */ jsx31(MoreHorizontal2, {}),
2189
+ /* @__PURE__ */ jsx31("span", { className: "sr-only", children: "More pages" })
2315
2190
  ]
2316
2191
  }
2317
2192
  );
2318
2193
  PaginationEllipsis.displayName = "PaginationEllipsis";
2319
2194
 
2320
- // src/components/popover.tsx
2321
- import * as React27 from "react";
2322
- import * as PopoverPrimitive from "@radix-ui/react-popover";
2323
- import { jsx as jsx27 } from "react/jsx-runtime";
2324
- var Popover = PopoverPrimitive.Root;
2325
- var PopoverTrigger = PopoverPrimitive.Trigger;
2326
- var PopoverAnchor = PopoverPrimitive.Anchor;
2327
- var PopoverContent = React27.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx27(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx27(
2328
- PopoverPrimitive.Content,
2329
- {
2330
- ref,
2331
- align,
2332
- sideOffset,
2333
- className: cn(
2334
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-popover-content-transform-origin)",
2335
- className
2336
- ),
2337
- ...props
2195
+ // src/components/panel/panel.tsx
2196
+ import * as React29 from "react";
2197
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
2198
+ var Panel = React29.forwardRef(
2199
+ ({ title, meta, children, className, ...props }, ref) => {
2200
+ return /* @__PURE__ */ jsxs19("section", { ref, className: cn("dl-panel", className), ...props, children: [
2201
+ title ? /* @__PURE__ */ jsxs19("div", { className: "dl-panel__header", children: [
2202
+ /* @__PURE__ */ jsx32("h2", { className: "dl-panel__title", children: title }),
2203
+ meta ? /* @__PURE__ */ jsx32("div", { className: "dl-panel__meta", children: meta }) : null
2204
+ ] }) : null,
2205
+ children
2206
+ ] });
2338
2207
  }
2339
- ) }));
2340
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2208
+ );
2209
+ Panel.displayName = "Panel";
2341
2210
 
2342
- // src/components/progress.tsx
2343
- import * as React28 from "react";
2211
+ // src/components/progress/progress.tsx
2212
+ import * as React30 from "react";
2344
2213
  import * as ProgressPrimitive from "@radix-ui/react-progress";
2345
- import { jsx as jsx28 } from "react/jsx-runtime";
2346
- var Progress = React28.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx28(
2214
+ import { jsx as jsx33 } from "react/jsx-runtime";
2215
+ var Progress = React30.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx33(
2347
2216
  ProgressPrimitive.Root,
2348
2217
  {
2349
2218
  ref,
2350
- className: cn(
2351
- "relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
2352
- className
2353
- ),
2219
+ className: cn("dl-progress", className),
2354
2220
  ...props,
2355
- children: /* @__PURE__ */ jsx28(
2221
+ children: /* @__PURE__ */ jsx33(
2356
2222
  ProgressPrimitive.Indicator,
2357
2223
  {
2358
- className: "flex-1 bg-primary transition-all size-full",
2224
+ className: "dl-progress__indicator",
2359
2225
  style: { transform: `translateX(-${100 - (value || 0)}%)` }
2360
2226
  }
2361
2227
  )
@@ -2363,292 +2229,440 @@ var Progress = React28.forwardRef(({ className, value, ...props }, ref) => /* @_
2363
2229
  ));
2364
2230
  Progress.displayName = ProgressPrimitive.Root.displayName;
2365
2231
 
2366
- // src/components/radio-group.tsx
2367
- import * as React29 from "react";
2232
+ // src/components/radio-group/radio-group.tsx
2233
+ import * as React31 from "react";
2368
2234
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
2369
2235
  import { Circle as Circle4 } from "lucide-react";
2370
- import { jsx as jsx29 } from "react/jsx-runtime";
2371
- var RadioGroup4 = React29.forwardRef(({ className, ...props }, ref) => {
2372
- return /* @__PURE__ */ jsx29(
2236
+ import { jsx as jsx34 } from "react/jsx-runtime";
2237
+ var RadioGroup4 = React31.forwardRef(({ className, ...props }, ref) => {
2238
+ return /* @__PURE__ */ jsx34(
2373
2239
  RadioGroupPrimitive.Root,
2374
2240
  {
2375
- className: cn("grid gap-2", className),
2241
+ className: cn("dl-radio-group", className),
2376
2242
  ...props,
2377
2243
  ref
2378
2244
  }
2379
2245
  );
2380
2246
  });
2381
2247
  RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
2382
- var RadioGroupItem = React29.forwardRef(({ className, ...props }, ref) => {
2383
- return /* @__PURE__ */ jsx29(
2248
+ var RadioGroupItem = React31.forwardRef(({ className, ...props }, ref) => {
2249
+ return /* @__PURE__ */ jsx34(
2384
2250
  RadioGroupPrimitive.Item,
2385
2251
  {
2386
2252
  ref,
2387
- className: cn(
2388
- "aspect-square rounded-full border border-primary text-primary shadow cursor-pointer focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 size-4",
2389
- className
2390
- ),
2253
+ className: cn("dl-radio-item", className),
2391
2254
  ...props,
2392
- children: /* @__PURE__ */ jsx29(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx29(Circle4, { className: "fill-primary size-3.5" }) })
2255
+ children: /* @__PURE__ */ jsx34(RadioGroupPrimitive.Indicator, { className: "dl-radio-item__indicator", children: /* @__PURE__ */ jsx34(Circle4, { "aria-hidden": "true" }) })
2393
2256
  }
2394
2257
  );
2395
2258
  });
2396
2259
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
2397
2260
 
2398
- // src/components/resizable.tsx
2261
+ // src/components/resizable/resizable.tsx
2399
2262
  import { GripVertical } from "lucide-react";
2400
- import { Group as Group4, Panel, Separator as Separator4 } from "react-resizable-panels";
2401
- import { jsx as jsx30 } from "react/jsx-runtime";
2263
+ import { Group as Group4, Panel as Panel2, Separator as Separator4 } from "react-resizable-panels";
2264
+ import { jsx as jsx35 } from "react/jsx-runtime";
2402
2265
  var ResizablePanelGroup = ({
2403
2266
  className,
2404
2267
  ...props
2405
- }) => /* @__PURE__ */ jsx30(
2406
- Group4,
2407
- {
2408
- className: cn(
2409
- "flex data-[panel-group-direction=vertical]:flex-col size-full",
2410
- className
2411
- ),
2412
- ...props
2413
- }
2414
- );
2415
- var ResizablePanel = Panel;
2268
+ }) => /* @__PURE__ */ jsx35(Group4, { className: cn("dl-resizable-group", className), ...props });
2269
+ var ResizablePanel = Panel2;
2416
2270
  var ResizableHandle = ({
2417
2271
  withHandle,
2418
2272
  className,
2419
2273
  ...props
2420
- }) => /* @__PURE__ */ jsx30(
2421
- Separator4,
2422
- {
2423
- className: cn(
2424
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
2425
- className
2426
- ),
2427
- ...props,
2428
- children: withHandle && /* @__PURE__ */ jsx30("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx30(GripVertical, { className: "size-2.5" }) })
2429
- }
2430
- );
2274
+ }) => /* @__PURE__ */ jsx35(Separator4, { className: cn("dl-resizable-handle", className), ...props, children: withHandle && /* @__PURE__ */ jsx35("div", { className: "dl-resizable-grip", children: /* @__PURE__ */ jsx35(GripVertical, {}) }) });
2431
2275
 
2432
- // src/components/scroll-area.tsx
2433
- import * as React30 from "react";
2276
+ // src/components/scroll-area/scroll-area.tsx
2277
+ import * as React32 from "react";
2434
2278
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2435
- import { jsx as jsx31, jsxs as jsxs15 } from "react/jsx-runtime";
2436
- var ScrollArea = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs15(
2279
+ import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
2280
+ var ScrollArea = React32.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs20(
2437
2281
  ScrollAreaPrimitive.Root,
2438
2282
  {
2439
2283
  ref,
2440
- className: cn("relative overflow-hidden", className),
2284
+ className: cn("dl-scroll-area", className),
2441
2285
  ...props,
2442
2286
  children: [
2443
- /* @__PURE__ */ jsx31(ScrollAreaPrimitive.Viewport, { className: "rounded-[inherit] size-full", children }),
2444
- /* @__PURE__ */ jsx31(ScrollBar, {}),
2445
- /* @__PURE__ */ jsx31(ScrollAreaPrimitive.Corner, {})
2287
+ /* @__PURE__ */ jsx36(ScrollAreaPrimitive.Viewport, { className: "dl-scroll-area__viewport", children }),
2288
+ /* @__PURE__ */ jsx36(ScrollBar, {}),
2289
+ /* @__PURE__ */ jsx36(ScrollAreaPrimitive.Corner, {})
2446
2290
  ]
2447
2291
  }
2448
2292
  ));
2449
2293
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2450
- var ScrollBar = React30.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx31(
2294
+ var ScrollBar = React32.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx36(
2451
2295
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2452
2296
  {
2453
2297
  ref,
2454
2298
  orientation,
2455
- className: cn(
2456
- "flex touch-none select-none transition-colors",
2457
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px",
2458
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px",
2459
- className
2460
- ),
2299
+ className: cn("dl-scroll-area__bar", className),
2461
2300
  ...props,
2462
- children: /* @__PURE__ */ jsx31(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
2301
+ children: /* @__PURE__ */ jsx36(ScrollAreaPrimitive.ScrollAreaThumb, { className: "dl-scroll-area__thumb" })
2463
2302
  }
2464
2303
  ));
2465
2304
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2466
2305
 
2467
- // src/components/select.tsx
2468
- import * as React31 from "react";
2469
- import * as SelectPrimitive from "@radix-ui/react-select";
2470
- import { Check as Check5, ChevronDown as ChevronDown3, ChevronUp } from "lucide-react";
2471
- import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
2472
- var Select = SelectPrimitive.Root;
2473
- var SelectGroup = SelectPrimitive.Group;
2474
- var SelectValue = SelectPrimitive.Value;
2475
- var SelectTrigger = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
2476
- SelectPrimitive.Trigger,
2477
- {
2478
- ref,
2479
- className: cn(
2480
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background cursor-pointer data-placeholder:text-muted-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 [&>span]:line-clamp-1",
2481
- className
2482
- ),
2483
- ...props,
2484
- children: [
2306
+ // src/components/searchable-select/searchable-select.tsx
2307
+ import * as React33 from "react";
2308
+ import { Search as Search2, Plus, Check as Check5, ChevronDown as ChevronDown3 } from "lucide-react";
2309
+ import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
2310
+ function SearchableSelect({
2311
+ options,
2312
+ value,
2313
+ onChange,
2314
+ placeholder = "Select an option...",
2315
+ searchPlaceholder = "Search...",
2316
+ onAddNew,
2317
+ addNewLabel = "Add new",
2318
+ disabled = false,
2319
+ className,
2320
+ id
2321
+ }) {
2322
+ const [open, setOpen] = React33.useState(false);
2323
+ const [search, setSearch] = React33.useState("");
2324
+ const [highlightedIndex, setHighlightedIndex] = React33.useState(0);
2325
+ const listRef = React33.useRef(null);
2326
+ const selectedOption = React33.useMemo(() => {
2327
+ return options.find((opt) => opt.value === value);
2328
+ }, [options, value]);
2329
+ const filteredOptions = React33.useMemo(() => {
2330
+ if (!search.trim()) return options;
2331
+ const q = search.toLowerCase();
2332
+ return options.filter(
2333
+ (opt) => opt.label.toLowerCase().includes(q) || opt.group && opt.group.toLowerCase().includes(q)
2334
+ );
2335
+ }, [options, search]);
2336
+ const handleOpenChange = (newOpen) => {
2337
+ setOpen(newOpen);
2338
+ if (newOpen) {
2339
+ const idx = filteredOptions.findIndex((opt) => opt.value === value);
2340
+ setHighlightedIndex(idx >= 0 ? idx : 0);
2341
+ } else {
2342
+ setSearch("");
2343
+ }
2344
+ };
2345
+ const handleSearchChange = (q) => {
2346
+ setSearch(q);
2347
+ setHighlightedIndex(0);
2348
+ };
2349
+ React33.useEffect(() => {
2350
+ if (open && listRef.current) {
2351
+ const activeEl = listRef.current.querySelector(
2352
+ "[data-highlighted='true']"
2353
+ );
2354
+ if (activeEl) {
2355
+ activeEl.scrollIntoView({ block: "nearest" });
2356
+ }
2357
+ }
2358
+ }, [highlightedIndex, open]);
2359
+ const groupedOptions = React33.useMemo(() => {
2360
+ const hasGroups = filteredOptions.some((opt) => opt.group);
2361
+ if (!hasGroups) return { Default: filteredOptions };
2362
+ return filteredOptions.reduce(
2363
+ (acc, opt) => {
2364
+ const g = opt.group || "Other";
2365
+ if (!acc[g]) acc[g] = [];
2366
+ acc[g].push(opt);
2367
+ return acc;
2368
+ },
2369
+ {}
2370
+ );
2371
+ }, [filteredOptions]);
2372
+ const handleSelect = (val) => {
2373
+ onChange?.(val);
2374
+ setOpen(false);
2375
+ setSearch("");
2376
+ };
2377
+ const handleAddNew = () => {
2378
+ onAddNew?.(search.trim());
2379
+ setOpen(false);
2380
+ setSearch("");
2381
+ };
2382
+ const handleKeyDown = (e) => {
2383
+ if (!open) {
2384
+ if (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") {
2385
+ e.preventDefault();
2386
+ handleOpenChange(true);
2387
+ }
2388
+ return;
2389
+ }
2390
+ switch (e.key) {
2391
+ case "ArrowDown":
2392
+ e.preventDefault();
2393
+ setHighlightedIndex(
2394
+ (p) => p < filteredOptions.length - 1 ? p + 1 : p
2395
+ );
2396
+ break;
2397
+ case "ArrowUp":
2398
+ e.preventDefault();
2399
+ setHighlightedIndex((p) => p > 0 ? p - 1 : 0);
2400
+ break;
2401
+ case "Enter":
2402
+ e.preventDefault();
2403
+ if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {
2404
+ handleSelect(filteredOptions[highlightedIndex].value);
2405
+ } else if (onAddNew && search.trim()) {
2406
+ handleAddNew();
2407
+ }
2408
+ break;
2409
+ case "Escape":
2410
+ case "Tab":
2411
+ e.preventDefault();
2412
+ handleOpenChange(false);
2413
+ break;
2414
+ }
2415
+ };
2416
+ let currentIndex = 0;
2417
+ return /* @__PURE__ */ jsxs21(Popover, { open, onOpenChange: handleOpenChange, children: [
2418
+ /* @__PURE__ */ jsx37(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
2419
+ Button,
2420
+ {
2421
+ id,
2422
+ variant: "outline",
2423
+ role: "combobox",
2424
+ "aria-expanded": open,
2425
+ disabled,
2426
+ onKeyDown: handleKeyDown,
2427
+ className: cn(
2428
+ "dl-searchable-select-trigger",
2429
+ !selectedOption && "dl-searchable-select-trigger--placeholder",
2430
+ className
2431
+ ),
2432
+ children: [
2433
+ /* @__PURE__ */ jsx37("span", { className: "truncate", children: selectedOption ? selectedOption.label : placeholder }),
2434
+ /* @__PURE__ */ jsx37(ChevronDown3, { className: "dl-select-icon" })
2435
+ ]
2436
+ }
2437
+ ) }),
2438
+ /* @__PURE__ */ jsxs21(
2439
+ PopoverContent,
2440
+ {
2441
+ align: "start",
2442
+ className: "dl-searchable-select-content",
2443
+ onKeyDown: handleKeyDown,
2444
+ children: [
2445
+ /* @__PURE__ */ jsxs21("div", { className: "dl-searchable-select-search", children: [
2446
+ /* @__PURE__ */ jsx37(Search2, { className: "dl-searchable-select-search-icon" }),
2447
+ /* @__PURE__ */ jsx37(
2448
+ Input,
2449
+ {
2450
+ placeholder: searchPlaceholder,
2451
+ value: search,
2452
+ onChange: (e) => handleSearchChange(e.target.value),
2453
+ className: "dl-searchable-select-search-input",
2454
+ autoFocus: true
2455
+ }
2456
+ )
2457
+ ] }),
2458
+ /* @__PURE__ */ jsx37(
2459
+ "div",
2460
+ {
2461
+ ref: listRef,
2462
+ onWheel: (e) => e.stopPropagation(),
2463
+ className: "dl-searchable-select-list",
2464
+ children: Object.keys(groupedOptions).length === 0 || filteredOptions.length === 0 && !onAddNew ? /* @__PURE__ */ jsx37("div", { className: "dl-searchable-select-empty", children: "No matching options found." }) : Object.entries(groupedOptions).map(([groupName, groupOpts]) => /* @__PURE__ */ jsxs21("div", { className: "py-1", children: [
2465
+ groupName !== "Default" && /* @__PURE__ */ jsx37("div", { className: "dl-searchable-select-group-header", children: groupName }),
2466
+ groupOpts.map((option) => {
2467
+ const isSelected = option.value === value;
2468
+ const itemIndex = currentIndex++;
2469
+ const isHighlighted = itemIndex === highlightedIndex;
2470
+ return /* @__PURE__ */ jsxs21(
2471
+ "div",
2472
+ {
2473
+ "data-highlighted": isHighlighted,
2474
+ onClick: () => handleSelect(option.value),
2475
+ onMouseEnter: () => setHighlightedIndex(itemIndex),
2476
+ className: cn(
2477
+ "dl-searchable-select-item",
2478
+ isHighlighted && "dl-searchable-select-item--highlighted",
2479
+ isSelected && !isHighlighted && "dl-searchable-select-item--selected"
2480
+ ),
2481
+ children: [
2482
+ /* @__PURE__ */ jsx37("span", { className: "flex-1 truncate", children: option.label }),
2483
+ isSelected && /* @__PURE__ */ jsx37(Check5, { className: "dl-select-check" })
2484
+ ]
2485
+ },
2486
+ option.value
2487
+ );
2488
+ })
2489
+ ] }, groupName))
2490
+ }
2491
+ ),
2492
+ onAddNew && /* @__PURE__ */ jsx37("div", { className: "dl-searchable-select-add", children: /* @__PURE__ */ jsxs21(
2493
+ "button",
2494
+ {
2495
+ type: "button",
2496
+ onClick: handleAddNew,
2497
+ className: "dl-searchable-select-add-btn",
2498
+ children: [
2499
+ /* @__PURE__ */ jsx37(Plus, { className: "size-3.5 shrink-0" }),
2500
+ /* @__PURE__ */ jsx37("span", { className: "truncate", children: search.trim() ? `${addNewLabel} "${search.trim()}"` : addNewLabel })
2501
+ ]
2502
+ }
2503
+ ) })
2504
+ ]
2505
+ }
2506
+ )
2507
+ ] });
2508
+ }
2509
+
2510
+ // src/components/select/select.tsx
2511
+ import * as React34 from "react";
2512
+ import * as SelectPrimitive from "@radix-ui/react-select";
2513
+ import { Check as Check6, ChevronDown as ChevronDown4, ChevronUp } from "lucide-react";
2514
+ import { jsx as jsx38, jsxs as jsxs22 } from "react/jsx-runtime";
2515
+ var Select = SelectPrimitive.Root;
2516
+ var SelectGroup = SelectPrimitive.Group;
2517
+ var SelectValue = SelectPrimitive.Value;
2518
+ var SelectTrigger = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs22(
2519
+ SelectPrimitive.Trigger,
2520
+ {
2521
+ ref,
2522
+ className: cn("dl-select-trigger", className),
2523
+ ...props,
2524
+ children: [
2485
2525
  children,
2486
- /* @__PURE__ */ jsx32(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx32(ChevronDown3, { className: "opacity-50 size-4" }) })
2526
+ /* @__PURE__ */ jsx38(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx38(
2527
+ ChevronDown4,
2528
+ {
2529
+ style: { opacity: 0.5, width: "0.75rem", height: "0.75rem" }
2530
+ }
2531
+ ) })
2487
2532
  ]
2488
2533
  }
2489
2534
  ));
2490
2535
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2491
- var SelectScrollUpButton = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2536
+ var SelectScrollUpButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
2492
2537
  SelectPrimitive.ScrollUpButton,
2493
2538
  {
2494
2539
  ref,
2495
- className: cn(
2496
- "flex cursor-default items-center justify-center py-1",
2497
- className
2498
- ),
2540
+ className: cn("dl-select-scroll-btn", className),
2499
2541
  ...props,
2500
- children: /* @__PURE__ */ jsx32(ChevronUp, { className: "size-4" })
2542
+ children: /* @__PURE__ */ jsx38(ChevronUp, { style: { width: "1rem", height: "1rem" } })
2501
2543
  }
2502
2544
  ));
2503
2545
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2504
- var SelectScrollDownButton = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2546
+ var SelectScrollDownButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
2505
2547
  SelectPrimitive.ScrollDownButton,
2506
2548
  {
2507
2549
  ref,
2508
- className: cn(
2509
- "flex cursor-default items-center justify-center py-1",
2510
- className
2511
- ),
2550
+ className: cn("dl-select-scroll-btn", className),
2512
2551
  ...props,
2513
- children: /* @__PURE__ */ jsx32(ChevronDown3, { className: "size-4" })
2552
+ children: /* @__PURE__ */ jsx38(ChevronDown4, { style: { width: "1rem", height: "1rem" } })
2514
2553
  }
2515
2554
  ));
2516
2555
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2517
- var SelectContent = React31.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx32(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs16(
2556
+ var SelectContent = React34.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx38(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs22(
2518
2557
  SelectPrimitive.Content,
2519
2558
  {
2520
2559
  ref,
2521
- className: cn(
2522
- "relative z-50 max-h-(--radix-select-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-select-content-transform-origin)",
2523
- position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1",
2524
- className
2525
- ),
2560
+ className: cn("dl-select-content", className),
2526
2561
  position,
2527
2562
  ...props,
2528
2563
  children: [
2529
- /* @__PURE__ */ jsx32(SelectScrollUpButton, {}),
2530
- /* @__PURE__ */ jsx32(
2531
- SelectPrimitive.Viewport,
2532
- {
2533
- className: cn(
2534
- "p-1",
2535
- position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
2536
- ),
2537
- children
2538
- }
2539
- ),
2540
- /* @__PURE__ */ jsx32(SelectScrollDownButton, {})
2564
+ /* @__PURE__ */ jsx38(SelectScrollUpButton, {}),
2565
+ /* @__PURE__ */ jsx38(SelectPrimitive.Viewport, { className: "dl-select-viewport", children }),
2566
+ /* @__PURE__ */ jsx38(SelectScrollDownButton, {})
2541
2567
  ]
2542
2568
  }
2543
2569
  ) }));
2544
2570
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2545
- var SelectLabel = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2571
+ var SelectLabel = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
2546
2572
  SelectPrimitive.Label,
2547
2573
  {
2548
2574
  ref,
2549
- className: cn("px-2 py-1.5 text-sm font-semibold", className),
2575
+ className: cn("dl-select-label", className),
2550
2576
  ...props
2551
2577
  }
2552
2578
  ));
2553
2579
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2554
- var SelectItem = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs16(
2580
+ var SelectItem = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs22(
2555
2581
  SelectPrimitive.Item,
2556
2582
  {
2557
2583
  ref,
2558
- className: cn(
2559
- "relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2560
- className
2561
- ),
2584
+ className: cn("dl-select-item", className),
2562
2585
  ...props,
2563
2586
  children: [
2564
- /* @__PURE__ */ jsx32("span", { className: "absolute right-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ jsx32(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx32(Check5, { className: "size-4" }) }) }),
2565
- /* @__PURE__ */ jsx32(SelectPrimitive.ItemText, { children })
2587
+ /* @__PURE__ */ jsx38("span", { className: "dl-select-item__indicator", children: /* @__PURE__ */ jsx38(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx38(Check6, { style: { width: "0.75rem", height: "0.75rem" } }) }) }),
2588
+ /* @__PURE__ */ jsx38(SelectPrimitive.ItemText, { children })
2566
2589
  ]
2567
2590
  }
2568
2591
  ));
2569
2592
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2570
- var SelectSeparator = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
2593
+ var SelectSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
2571
2594
  SelectPrimitive.Separator,
2572
2595
  {
2573
2596
  ref,
2574
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2597
+ className: cn("dl-select-separator", className),
2575
2598
  ...props
2576
2599
  }
2577
2600
  ));
2578
2601
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2579
2602
 
2580
- // src/components/separator.tsx
2581
- import * as React32 from "react";
2603
+ // src/components/separator/separator.tsx
2604
+ import * as React35 from "react";
2582
2605
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
2583
- import { jsx as jsx33 } from "react/jsx-runtime";
2584
- var Separator6 = React32.forwardRef(
2585
- ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx33(
2606
+ import { jsx as jsx39 } from "react/jsx-runtime";
2607
+ var Separator6 = React35.forwardRef(
2608
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx39(
2586
2609
  SeparatorPrimitive.Root,
2587
2610
  {
2588
2611
  ref,
2589
2612
  decorative,
2590
2613
  orientation,
2591
- className: cn(
2592
- "shrink-0 bg-border",
2593
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
2594
- className
2595
- ),
2614
+ className: cn("dl-separator", className),
2596
2615
  ...props
2597
2616
  }
2598
2617
  )
2599
2618
  );
2600
2619
  Separator6.displayName = SeparatorPrimitive.Root.displayName;
2601
2620
 
2602
- // src/components/sheet.tsx
2603
- import * as React33 from "react";
2621
+ // src/components/sheet/sheet.tsx
2622
+ import * as React36 from "react";
2604
2623
  import * as SheetPrimitive from "@radix-ui/react-dialog";
2605
2624
  import { cva as cva6 } from "class-variance-authority";
2606
2625
  import { X as X2 } from "lucide-react";
2607
- import { jsx as jsx34, jsxs as jsxs17 } from "react/jsx-runtime";
2626
+ import { jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
2608
2627
  var Sheet = SheetPrimitive.Root;
2609
2628
  var SheetTrigger = SheetPrimitive.Trigger;
2610
2629
  var SheetClose = SheetPrimitive.Close;
2611
2630
  var SheetPortal = SheetPrimitive.Portal;
2612
- var SheetOverlay = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2631
+ var SheetOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
2613
2632
  SheetPrimitive.Overlay,
2614
2633
  {
2615
- className: cn(
2616
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2617
- className
2618
- ),
2634
+ className: cn("dl-dialog-overlay", className),
2619
2635
  ...props,
2620
2636
  ref
2621
2637
  }
2622
2638
  ));
2623
2639
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
2624
- var sheetVariants = cva6(
2625
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
2626
- {
2627
- variants: {
2628
- side: {
2629
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
2630
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
2631
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
2632
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
2633
- }
2634
- },
2635
- defaultVariants: {
2636
- side: "right"
2637
- }
2640
+ var sheetVariants = cva6("dl-sheet-content", {
2641
+ variants: {
2642
+ side: {
2643
+ top: "dl-sheet-content--top",
2644
+ bottom: "dl-sheet-content--bottom",
2645
+ left: "dl-sheet-content--left",
2646
+ right: "dl-sheet-content--right"
2647
+ }
2648
+ },
2649
+ defaultVariants: {
2650
+ side: "right"
2638
2651
  }
2639
- );
2640
- var SheetContent = React33.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(SheetPortal, { children: [
2641
- /* @__PURE__ */ jsx34(SheetOverlay, {}),
2642
- /* @__PURE__ */ jsxs17(
2652
+ });
2653
+ var SheetContent = React36.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(SheetPortal, { children: [
2654
+ /* @__PURE__ */ jsx40(SheetOverlay, {}),
2655
+ /* @__PURE__ */ jsxs23(
2643
2656
  SheetPrimitive.Content,
2644
2657
  {
2645
2658
  ref,
2646
2659
  className: cn(sheetVariants({ side }), className),
2660
+ "data-side": side,
2647
2661
  ...props,
2648
2662
  children: [
2649
- /* @__PURE__ */ jsxs17(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background cursor-pointer transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
2650
- /* @__PURE__ */ jsx34(X2, { className: "size-4" }),
2651
- /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Close" })
2663
+ /* @__PURE__ */ jsxs23(SheetPrimitive.Close, { className: "dl-sheet-close", children: [
2664
+ /* @__PURE__ */ jsx40(X2, { style: { width: "1rem", height: "1rem" } }),
2665
+ /* @__PURE__ */ jsx40("span", { className: "sr-only", children: "Close" })
2652
2666
  ] }),
2653
2667
  children
2654
2668
  ]
@@ -2659,109 +2673,73 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
2659
2673
  var SheetHeader = ({
2660
2674
  className,
2661
2675
  ...props
2662
- }) => /* @__PURE__ */ jsx34(
2663
- "div",
2664
- {
2665
- className: cn(
2666
- "flex flex-col space-y-2 text-center sm:text-left",
2667
- className
2668
- ),
2669
- ...props
2670
- }
2671
- );
2676
+ }) => /* @__PURE__ */ jsx40("div", { className: cn("dl-sheet__header", className), ...props });
2672
2677
  SheetHeader.displayName = "SheetHeader";
2673
2678
  var SheetFooter = ({
2674
2679
  className,
2675
2680
  ...props
2676
- }) => /* @__PURE__ */ jsx34(
2677
- "div",
2678
- {
2679
- className: cn(
2680
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2681
- className
2682
- ),
2683
- ...props
2684
- }
2685
- );
2681
+ }) => /* @__PURE__ */ jsx40("div", { className: cn("dl-sheet__footer", className), ...props });
2686
2682
  SheetFooter.displayName = "SheetFooter";
2687
- var SheetTitle = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2683
+ var SheetTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
2688
2684
  SheetPrimitive.Title,
2689
2685
  {
2690
2686
  ref,
2691
- className: cn("text-lg font-semibold text-foreground", className),
2687
+ className: cn("dl-sheet__title", className),
2692
2688
  ...props
2693
2689
  }
2694
2690
  ));
2695
2691
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
2696
- var SheetDescription = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2692
+ var SheetDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
2697
2693
  SheetPrimitive.Description,
2698
2694
  {
2699
2695
  ref,
2700
- className: cn("text-sm text-muted-foreground", className),
2696
+ className: cn("dl-sheet__desc", className),
2701
2697
  ...props
2702
2698
  }
2703
2699
  ));
2704
2700
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
2705
2701
 
2706
- // src/components/sidebar.tsx
2707
- import * as React35 from "react";
2702
+ // src/components/sidebar/sidebar.tsx
2703
+ import * as React38 from "react";
2708
2704
  import { Slot as Slot4 } from "@radix-ui/react-slot";
2709
2705
  import { cva as cva7 } from "class-variance-authority";
2710
2706
  import { PanelLeft } from "lucide-react";
2711
2707
 
2712
- // src/components/skeleton.tsx
2713
- import { jsx as jsx35 } from "react/jsx-runtime";
2714
- function Skeleton({
2715
- className,
2716
- ...props
2717
- }) {
2718
- return /* @__PURE__ */ jsx35(
2719
- "div",
2720
- {
2721
- className: cn("animate-pulse rounded-md bg-primary/10", className),
2722
- ...props
2723
- }
2724
- );
2725
- }
2726
-
2727
- // src/components/tooltip.tsx
2728
- import * as React34 from "react";
2708
+ // src/components/tooltip/tooltip.tsx
2709
+ import * as React37 from "react";
2729
2710
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2730
- import { jsx as jsx36 } from "react/jsx-runtime";
2711
+ import { jsx as jsx41 } from "react/jsx-runtime";
2731
2712
  var TooltipProvider = TooltipPrimitive.Provider;
2732
2713
  var Tooltip2 = TooltipPrimitive.Root;
2733
2714
  var TooltipTrigger = TooltipPrimitive.Trigger;
2734
- var TooltipContent = React34.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx36(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx36(
2715
+ var TooltipContent = React37.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx41(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx41(
2735
2716
  TooltipPrimitive.Content,
2736
2717
  {
2737
2718
  ref,
2738
2719
  sideOffset,
2739
- className: cn(
2740
- "z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-tooltip-content-transform-origin)",
2741
- className
2742
- ),
2720
+ className: cn("dl-tooltip", className),
2743
2721
  ...props
2744
2722
  }
2745
2723
  ) }));
2746
2724
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
2747
2725
 
2748
- // src/components/sidebar.tsx
2749
- import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
2726
+ // src/components/sidebar/sidebar.tsx
2727
+ import { jsx as jsx42, jsxs as jsxs24 } from "react/jsx-runtime";
2750
2728
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
2751
2729
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
2752
2730
  var SIDEBAR_WIDTH = "16rem";
2753
2731
  var SIDEBAR_WIDTH_MOBILE = "18rem";
2754
2732
  var SIDEBAR_WIDTH_ICON = "3rem";
2755
2733
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
2756
- var SidebarContext = React35.createContext(null);
2734
+ var SidebarContext = React38.createContext(null);
2757
2735
  function useSidebar() {
2758
- const context = React35.useContext(SidebarContext);
2736
+ const context = React38.useContext(SidebarContext);
2759
2737
  if (!context) {
2760
2738
  throw new Error("useSidebar must be used within a SidebarProvider.");
2761
2739
  }
2762
2740
  return context;
2763
2741
  }
2764
- var SidebarProvider = React35.forwardRef(
2742
+ var SidebarProvider = React38.forwardRef(
2765
2743
  ({
2766
2744
  defaultOpen = true,
2767
2745
  open: openProp,
@@ -2772,10 +2750,10 @@ var SidebarProvider = React35.forwardRef(
2772
2750
  ...props
2773
2751
  }, ref) => {
2774
2752
  const isMobile = useIsMobile();
2775
- const [openMobile, setOpenMobile] = React35.useState(false);
2776
- const [_open, _setOpen] = React35.useState(defaultOpen);
2753
+ const [openMobile, setOpenMobile] = React38.useState(false);
2754
+ const [_open, _setOpen] = React38.useState(defaultOpen);
2777
2755
  const open = openProp ?? _open;
2778
- const setOpen = React35.useCallback(
2756
+ const setOpen = React38.useCallback(
2779
2757
  (value) => {
2780
2758
  const openState = typeof value === "function" ? value(open) : value;
2781
2759
  if (setOpenProp) {
@@ -2787,10 +2765,10 @@ var SidebarProvider = React35.forwardRef(
2787
2765
  },
2788
2766
  [setOpenProp, open]
2789
2767
  );
2790
- const toggleSidebar = React35.useCallback(() => {
2768
+ const toggleSidebar = React38.useCallback(() => {
2791
2769
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
2792
2770
  }, [isMobile, setOpen, setOpenMobile]);
2793
- React35.useEffect(() => {
2771
+ React38.useEffect(() => {
2794
2772
  const handleKeyDown = (event) => {
2795
2773
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
2796
2774
  event.preventDefault();
@@ -2801,7 +2779,7 @@ var SidebarProvider = React35.forwardRef(
2801
2779
  return () => window.removeEventListener("keydown", handleKeyDown);
2802
2780
  }, [toggleSidebar]);
2803
2781
  const state = open ? "expanded" : "collapsed";
2804
- const contextValue = React35.useMemo(
2782
+ const contextValue = React38.useMemo(
2805
2783
  () => ({
2806
2784
  state,
2807
2785
  open,
@@ -2821,7 +2799,7 @@ var SidebarProvider = React35.forwardRef(
2821
2799
  toggleSidebar
2822
2800
  ]
2823
2801
  );
2824
- return /* @__PURE__ */ jsx37(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx37(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx37(
2802
+ return /* @__PURE__ */ jsx42(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx42(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx42(
2825
2803
  "div",
2826
2804
  {
2827
2805
  style: {
@@ -2841,7 +2819,7 @@ var SidebarProvider = React35.forwardRef(
2841
2819
  }
2842
2820
  );
2843
2821
  SidebarProvider.displayName = "SidebarProvider";
2844
- var Sidebar = React35.forwardRef(
2822
+ var Sidebar = React38.forwardRef(
2845
2823
  ({
2846
2824
  side = "left",
2847
2825
  variant = "sidebar",
@@ -2852,7 +2830,7 @@ var Sidebar = React35.forwardRef(
2852
2830
  }, ref) => {
2853
2831
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
2854
2832
  if (collapsible === "none") {
2855
- return /* @__PURE__ */ jsx37(
2833
+ return /* @__PURE__ */ jsx42(
2856
2834
  "div",
2857
2835
  {
2858
2836
  className: cn(
@@ -2866,7 +2844,7 @@ var Sidebar = React35.forwardRef(
2866
2844
  );
2867
2845
  }
2868
2846
  if (isMobile) {
2869
- return /* @__PURE__ */ jsx37(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs18(
2847
+ return /* @__PURE__ */ jsx42(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs24(
2870
2848
  SheetContent,
2871
2849
  {
2872
2850
  "data-sidebar": "sidebar",
@@ -2877,16 +2855,16 @@ var Sidebar = React35.forwardRef(
2877
2855
  },
2878
2856
  side,
2879
2857
  children: [
2880
- /* @__PURE__ */ jsxs18(SheetHeader, { className: "sr-only", children: [
2881
- /* @__PURE__ */ jsx37(SheetTitle, { children: "Sidebar" }),
2882
- /* @__PURE__ */ jsx37(SheetDescription, { children: "Displays the mobile sidebar." })
2858
+ /* @__PURE__ */ jsxs24(SheetHeader, { className: "sr-only", children: [
2859
+ /* @__PURE__ */ jsx42(SheetTitle, { children: "Sidebar" }),
2860
+ /* @__PURE__ */ jsx42(SheetDescription, { children: "Displays the mobile sidebar." })
2883
2861
  ] }),
2884
- /* @__PURE__ */ jsx37("div", { className: "flex flex-col size-full", children })
2862
+ /* @__PURE__ */ jsx42("div", { className: "flex flex-col size-full", children })
2885
2863
  ]
2886
2864
  }
2887
2865
  ) });
2888
2866
  }
2889
- return /* @__PURE__ */ jsxs18(
2867
+ return /* @__PURE__ */ jsxs24(
2890
2868
  "div",
2891
2869
  {
2892
2870
  ref,
@@ -2896,7 +2874,7 @@ var Sidebar = React35.forwardRef(
2896
2874
  "data-variant": variant,
2897
2875
  "data-side": side,
2898
2876
  children: [
2899
- /* @__PURE__ */ jsx37(
2877
+ /* @__PURE__ */ jsx42(
2900
2878
  "div",
2901
2879
  {
2902
2880
  className: cn(
@@ -2907,7 +2885,7 @@ var Sidebar = React35.forwardRef(
2907
2885
  )
2908
2886
  }
2909
2887
  ),
2910
- /* @__PURE__ */ jsx37(
2888
+ /* @__PURE__ */ jsx42(
2911
2889
  "div",
2912
2890
  {
2913
2891
  className: cn(
@@ -2918,7 +2896,7 @@ var Sidebar = React35.forwardRef(
2918
2896
  className
2919
2897
  ),
2920
2898
  ...props,
2921
- children: /* @__PURE__ */ jsx37(
2899
+ children: /* @__PURE__ */ jsx42(
2922
2900
  "div",
2923
2901
  {
2924
2902
  "data-sidebar": "sidebar",
@@ -2934,9 +2912,9 @@ var Sidebar = React35.forwardRef(
2934
2912
  }
2935
2913
  );
2936
2914
  Sidebar.displayName = "Sidebar";
2937
- var SidebarTrigger = React35.forwardRef(({ className, onClick, ...props }, ref) => {
2915
+ var SidebarTrigger = React38.forwardRef(({ className, onClick, ...props }, ref) => {
2938
2916
  const { toggleSidebar } = useSidebar();
2939
- return /* @__PURE__ */ jsxs18(
2917
+ return /* @__PURE__ */ jsxs24(
2940
2918
  Button,
2941
2919
  {
2942
2920
  ref,
@@ -2950,94 +2928,99 @@ var SidebarTrigger = React35.forwardRef(({ className, onClick, ...props }, ref)
2950
2928
  },
2951
2929
  ...props,
2952
2930
  children: [
2953
- /* @__PURE__ */ jsx37(PanelLeft, {}),
2954
- /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Toggle Sidebar" })
2931
+ /* @__PURE__ */ jsx42(PanelLeft, {}),
2932
+ /* @__PURE__ */ jsx42("span", { className: "sr-only", children: "Toggle Sidebar" })
2955
2933
  ]
2956
2934
  }
2957
2935
  );
2958
2936
  });
2959
2937
  SidebarTrigger.displayName = "SidebarTrigger";
2960
- var SidebarRail = React35.forwardRef(({ className, ...props }, ref) => {
2961
- const { toggleSidebar } = useSidebar();
2962
- return /* @__PURE__ */ jsx37(
2963
- "button",
2964
- {
2965
- ref,
2966
- "data-sidebar": "rail",
2967
- "aria-label": "Toggle Sidebar",
2968
- tabIndex: -1,
2969
- onClick: toggleSidebar,
2970
- title: "Toggle Sidebar",
2971
- className: cn(
2972
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
2973
- "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
2974
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
2975
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
2976
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
2977
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
2978
- className
2979
- ),
2980
- ...props
2981
- }
2982
- );
2983
- });
2938
+ var SidebarRail = React38.forwardRef(
2939
+ ({ className, ...props }, ref) => {
2940
+ const { toggleSidebar } = useSidebar();
2941
+ return /* @__PURE__ */ jsx42(
2942
+ "button",
2943
+ {
2944
+ ref,
2945
+ "data-sidebar": "rail",
2946
+ "aria-label": "Toggle Sidebar",
2947
+ tabIndex: -1,
2948
+ onClick: toggleSidebar,
2949
+ title: "Toggle Sidebar",
2950
+ className: cn(
2951
+ "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
2952
+ "in-data-[side=right]:cursor-e-resize",
2953
+ "[[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
2954
+ "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
2955
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
2956
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
2957
+ className
2958
+ ),
2959
+ ...props
2960
+ }
2961
+ );
2962
+ }
2963
+ );
2984
2964
  SidebarRail.displayName = "SidebarRail";
2985
- var SidebarInset = React35.forwardRef(({ className, ...props }, ref) => {
2986
- return /* @__PURE__ */ jsx37(
2987
- "main",
2988
- {
2989
- ref,
2990
- className: cn(
2991
- "relative flex w-full flex-1 flex-col bg-background",
2992
- "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
2993
- className
2994
- ),
2995
- ...props
2996
- }
2997
- );
2998
- });
2965
+ var SidebarInset = React38.forwardRef(
2966
+ ({ className, ...props }, ref) => {
2967
+ return /* @__PURE__ */ jsx42(
2968
+ "main",
2969
+ {
2970
+ ref,
2971
+ className: cn(
2972
+ "relative flex w-full flex-1 flex-col bg-background",
2973
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
2974
+ className
2975
+ ),
2976
+ ...props
2977
+ }
2978
+ );
2979
+ }
2980
+ );
2999
2981
  SidebarInset.displayName = "SidebarInset";
3000
- var SidebarInput = React35.forwardRef(({ className, ...props }, ref) => {
3001
- return /* @__PURE__ */ jsx37(
2982
+ var SidebarInput = React38.forwardRef(({ className, ...props }, ref) => {
2983
+ return /* @__PURE__ */ jsx42(
3002
2984
  Input,
3003
2985
  {
3004
2986
  ref,
3005
2987
  "data-sidebar": "input",
3006
- className: cn(
3007
- "h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
3008
- className
3009
- ),
2988
+ className: cn("dl-sidebar-input", className),
3010
2989
  ...props
3011
2990
  }
3012
2991
  );
3013
2992
  });
3014
2993
  SidebarInput.displayName = "SidebarInput";
3015
- var SidebarHeader = React35.forwardRef(({ className, ...props }, ref) => {
3016
- return /* @__PURE__ */ jsx37(
3017
- "div",
3018
- {
3019
- ref,
3020
- "data-sidebar": "header",
3021
- className: cn("flex flex-col gap-2 p-2", className),
3022
- ...props
3023
- }
3024
- );
3025
- });
2994
+ var SidebarHeader = React38.forwardRef(
2995
+ ({ className, ...props }, ref) => {
2996
+ return /* @__PURE__ */ jsx42(
2997
+ "div",
2998
+ {
2999
+ ref,
3000
+ "data-sidebar": "header",
3001
+ className: cn("flex flex-col gap-2 p-2", className),
3002
+ ...props
3003
+ }
3004
+ );
3005
+ }
3006
+ );
3026
3007
  SidebarHeader.displayName = "SidebarHeader";
3027
- var SidebarFooter = React35.forwardRef(({ className, ...props }, ref) => {
3028
- return /* @__PURE__ */ jsx37(
3029
- "div",
3030
- {
3031
- ref,
3032
- "data-sidebar": "footer",
3033
- className: cn("flex flex-col gap-2 p-2", className),
3034
- ...props
3035
- }
3036
- );
3037
- });
3008
+ var SidebarFooter = React38.forwardRef(
3009
+ ({ className, ...props }, ref) => {
3010
+ return /* @__PURE__ */ jsx42(
3011
+ "div",
3012
+ {
3013
+ ref,
3014
+ "data-sidebar": "footer",
3015
+ className: cn("flex flex-col gap-2 p-2", className),
3016
+ ...props
3017
+ }
3018
+ );
3019
+ }
3020
+ );
3038
3021
  SidebarFooter.displayName = "SidebarFooter";
3039
- var SidebarSeparator = React35.forwardRef(({ className, ...props }, ref) => {
3040
- return /* @__PURE__ */ jsx37(
3022
+ var SidebarSeparator = React38.forwardRef(({ className, ...props }, ref) => {
3023
+ return /* @__PURE__ */ jsx42(
3041
3024
  Separator6,
3042
3025
  {
3043
3026
  ref,
@@ -3048,42 +3031,46 @@ var SidebarSeparator = React35.forwardRef(({ className, ...props }, ref) => {
3048
3031
  );
3049
3032
  });
3050
3033
  SidebarSeparator.displayName = "SidebarSeparator";
3051
- var SidebarContent = React35.forwardRef(({ className, ...props }, ref) => {
3052
- return /* @__PURE__ */ jsx37(
3053
- "div",
3054
- {
3055
- ref,
3056
- "data-sidebar": "content",
3057
- className: cn(
3058
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
3059
- className
3060
- ),
3061
- ...props
3062
- }
3063
- );
3064
- });
3034
+ var SidebarContent = React38.forwardRef(
3035
+ ({ className, ...props }, ref) => {
3036
+ return /* @__PURE__ */ jsx42(
3037
+ "div",
3038
+ {
3039
+ ref,
3040
+ "data-sidebar": "content",
3041
+ className: cn(
3042
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto",
3043
+ className
3044
+ ),
3045
+ ...props
3046
+ }
3047
+ );
3048
+ }
3049
+ );
3065
3050
  SidebarContent.displayName = "SidebarContent";
3066
- var SidebarGroup = React35.forwardRef(({ className, ...props }, ref) => {
3067
- return /* @__PURE__ */ jsx37(
3068
- "div",
3069
- {
3070
- ref,
3071
- "data-sidebar": "group",
3072
- className: cn("relative flex w-full min-w-0 flex-col p-2", className),
3073
- ...props
3074
- }
3075
- );
3076
- });
3051
+ var SidebarGroup = React38.forwardRef(
3052
+ ({ className, ...props }, ref) => {
3053
+ return /* @__PURE__ */ jsx42(
3054
+ "div",
3055
+ {
3056
+ ref,
3057
+ "data-sidebar": "group",
3058
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
3059
+ ...props
3060
+ }
3061
+ );
3062
+ }
3063
+ );
3077
3064
  SidebarGroup.displayName = "SidebarGroup";
3078
- var SidebarGroupLabel = React35.forwardRef(({ className, asChild = false, ...props }, ref) => {
3065
+ var SidebarGroupLabel = React38.forwardRef(({ className, asChild = false, ...props }, ref) => {
3079
3066
  const Comp = asChild ? Slot4 : "div";
3080
- return /* @__PURE__ */ jsx37(
3067
+ return /* @__PURE__ */ jsx42(
3081
3068
  Comp,
3082
3069
  {
3083
3070
  ref,
3084
3071
  "data-sidebar": "group-label",
3085
3072
  className: cn(
3086
- "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
3073
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4",
3087
3074
  "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
3088
3075
  className
3089
3076
  ),
@@ -3092,9 +3079,9 @@ var SidebarGroupLabel = React35.forwardRef(({ className, asChild = false, ...pro
3092
3079
  );
3093
3080
  });
3094
3081
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
3095
- var SidebarGroupAction = React35.forwardRef(({ className, asChild = false, ...props }, ref) => {
3082
+ var SidebarGroupAction = React38.forwardRef(({ className, asChild = false, ...props }, ref) => {
3096
3083
  const Comp = asChild ? Slot4 : "button";
3097
- return /* @__PURE__ */ jsx37(
3084
+ return /* @__PURE__ */ jsx42(
3098
3085
  Comp,
3099
3086
  {
3100
3087
  ref,
@@ -3111,7 +3098,7 @@ var SidebarGroupAction = React35.forwardRef(({ className, asChild = false, ...pr
3111
3098
  );
3112
3099
  });
3113
3100
  SidebarGroupAction.displayName = "SidebarGroupAction";
3114
- var SidebarGroupContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3101
+ var SidebarGroupContent = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3115
3102
  "div",
3116
3103
  {
3117
3104
  ref,
@@ -3121,25 +3108,29 @@ var SidebarGroupContent = React35.forwardRef(({ className, ...props }, ref) => /
3121
3108
  }
3122
3109
  ));
3123
3110
  SidebarGroupContent.displayName = "SidebarGroupContent";
3124
- var SidebarMenu = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3125
- "ul",
3126
- {
3127
- ref,
3128
- "data-sidebar": "menu",
3129
- className: cn("flex w-full min-w-0 flex-col gap-1", className),
3130
- ...props
3131
- }
3132
- ));
3111
+ var SidebarMenu = React38.forwardRef(
3112
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3113
+ "ul",
3114
+ {
3115
+ ref,
3116
+ "data-sidebar": "menu",
3117
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
3118
+ ...props
3119
+ }
3120
+ )
3121
+ );
3133
3122
  SidebarMenu.displayName = "SidebarMenu";
3134
- var SidebarMenuItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3135
- "li",
3136
- {
3137
- ref,
3138
- "data-sidebar": "menu-item",
3139
- className: cn("group/menu-item relative", className),
3140
- ...props
3141
- }
3142
- ));
3123
+ var SidebarMenuItem = React38.forwardRef(
3124
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3125
+ "li",
3126
+ {
3127
+ ref,
3128
+ "data-sidebar": "menu-item",
3129
+ className: cn("group/menu-item relative", className),
3130
+ ...props
3131
+ }
3132
+ )
3133
+ );
3143
3134
  SidebarMenuItem.displayName = "SidebarMenuItem";
3144
3135
  var sidebarMenuButtonVariants = cva7(
3145
3136
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring cursor-pointer transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
@@ -3161,7 +3152,7 @@ var sidebarMenuButtonVariants = cva7(
3161
3152
  }
3162
3153
  }
3163
3154
  );
3164
- var SidebarMenuButton = React35.forwardRef(
3155
+ var SidebarMenuButton = React38.forwardRef(
3165
3156
  ({
3166
3157
  asChild = false,
3167
3158
  isActive = false,
@@ -3173,7 +3164,7 @@ var SidebarMenuButton = React35.forwardRef(
3173
3164
  }, ref) => {
3174
3165
  const Comp = asChild ? Slot4 : "button";
3175
3166
  const { isMobile, state } = useSidebar();
3176
- const button = /* @__PURE__ */ jsx37(
3167
+ const button = /* @__PURE__ */ jsx42(
3177
3168
  Comp,
3178
3169
  {
3179
3170
  ref,
@@ -3192,9 +3183,9 @@ var SidebarMenuButton = React35.forwardRef(
3192
3183
  children: tooltip
3193
3184
  };
3194
3185
  }
3195
- return /* @__PURE__ */ jsxs18(Tooltip2, { children: [
3196
- /* @__PURE__ */ jsx37(TooltipTrigger, { asChild: true, children: button }),
3197
- /* @__PURE__ */ jsx37(
3186
+ return /* @__PURE__ */ jsxs24(Tooltip2, { children: [
3187
+ /* @__PURE__ */ jsx42(TooltipTrigger, { asChild: true, children: button }),
3188
+ /* @__PURE__ */ jsx42(
3198
3189
  TooltipContent,
3199
3190
  {
3200
3191
  side: "right",
@@ -3207,9 +3198,9 @@ var SidebarMenuButton = React35.forwardRef(
3207
3198
  }
3208
3199
  );
3209
3200
  SidebarMenuButton.displayName = "SidebarMenuButton";
3210
- var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
3201
+ var SidebarMenuAction = React38.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
3211
3202
  const Comp = asChild ? Slot4 : "button";
3212
- return /* @__PURE__ */ jsx37(
3203
+ return /* @__PURE__ */ jsx42(
3213
3204
  Comp,
3214
3205
  {
3215
3206
  ref,
@@ -3222,7 +3213,7 @@ var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOn
3222
3213
  "peer-data-[size=default]/menu-button:top-1.5",
3223
3214
  "peer-data-[size=lg]/menu-button:top-2.5",
3224
3215
  "group-data-[collapsible=icon]:hidden",
3225
- showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
3216
+ showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
3226
3217
  className
3227
3218
  ),
3228
3219
  ...props
@@ -3230,7 +3221,7 @@ var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOn
3230
3221
  );
3231
3222
  });
3232
3223
  SidebarMenuAction.displayName = "SidebarMenuAction";
3233
- var SidebarMenuBadge = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3224
+ var SidebarMenuBadge = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3234
3225
  "div",
3235
3226
  {
3236
3227
  ref,
@@ -3248,11 +3239,11 @@ var SidebarMenuBadge = React35.forwardRef(({ className, ...props }, ref) => /* @
3248
3239
  }
3249
3240
  ));
3250
3241
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
3251
- var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...props }, ref) => {
3252
- const width = React35.useMemo(() => {
3242
+ var SidebarMenuSkeleton = React38.forwardRef(({ className, showIcon = false, ...props }, ref) => {
3243
+ const width = React38.useMemo(() => {
3253
3244
  return `${Math.floor(Math.random() * 40) + 50}%`;
3254
3245
  }, []);
3255
- return /* @__PURE__ */ jsxs18(
3246
+ return /* @__PURE__ */ jsxs24(
3256
3247
  "div",
3257
3248
  {
3258
3249
  ref,
@@ -3260,14 +3251,14 @@ var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...
3260
3251
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
3261
3252
  ...props,
3262
3253
  children: [
3263
- showIcon && /* @__PURE__ */ jsx37(
3254
+ showIcon && /* @__PURE__ */ jsx42(
3264
3255
  Skeleton,
3265
3256
  {
3266
3257
  className: "size-4 rounded-md",
3267
3258
  "data-sidebar": "menu-skeleton-icon"
3268
3259
  }
3269
3260
  ),
3270
- /* @__PURE__ */ jsx37(
3261
+ /* @__PURE__ */ jsx42(
3271
3262
  Skeleton,
3272
3263
  {
3273
3264
  className: "h-4 max-w-(--skeleton-width) flex-1",
@@ -3282,25 +3273,27 @@ var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...
3282
3273
  );
3283
3274
  });
3284
3275
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
3285
- var SidebarMenuSub = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3286
- "ul",
3287
- {
3288
- ref,
3289
- "data-sidebar": "menu-sub",
3290
- className: cn(
3291
- "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
3292
- "group-data-[collapsible=icon]:hidden",
3293
- className
3294
- ),
3295
- ...props
3296
- }
3297
- ));
3276
+ var SidebarMenuSub = React38.forwardRef(
3277
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3278
+ "ul",
3279
+ {
3280
+ ref,
3281
+ "data-sidebar": "menu-sub",
3282
+ className: cn(
3283
+ "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
3284
+ "group-data-[collapsible=icon]:hidden",
3285
+ className
3286
+ ),
3287
+ ...props
3288
+ }
3289
+ )
3290
+ );
3298
3291
  SidebarMenuSub.displayName = "SidebarMenuSub";
3299
- var SidebarMenuSubItem = React35.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx37("li", { ref, ...props }));
3292
+ var SidebarMenuSubItem = React38.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx42("li", { ref, ...props }));
3300
3293
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
3301
- var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
3294
+ var SidebarMenuSubButton = React38.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
3302
3295
  const Comp = asChild ? Slot4 : "a";
3303
- return /* @__PURE__ */ jsx37(
3296
+ return /* @__PURE__ */ jsx42(
3304
3297
  Comp,
3305
3298
  {
3306
3299
  ref,
@@ -3308,7 +3301,7 @@ var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", i
3308
3301
  "data-size": size,
3309
3302
  "data-active": isActive,
3310
3303
  className: cn(
3311
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
3304
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
3312
3305
  "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
3313
3306
  size === "sm" && "text-xs",
3314
3307
  size === "md" && "text-sm",
@@ -3321,41 +3314,38 @@ var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", i
3321
3314
  });
3322
3315
  SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
3323
3316
 
3324
- // src/components/slider.tsx
3325
- import * as React36 from "react";
3317
+ // src/components/slider/slider.tsx
3318
+ import * as React39 from "react";
3326
3319
  import * as SliderPrimitive from "@radix-ui/react-slider";
3327
- import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
3328
- var Slider = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs19(
3320
+ import { jsx as jsx43, jsxs as jsxs25 } from "react/jsx-runtime";
3321
+ var Slider = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs25(
3329
3322
  SliderPrimitive.Root,
3330
3323
  {
3331
3324
  ref,
3332
- className: cn(
3333
- "relative flex w-full touch-none select-none items-center",
3334
- className
3335
- ),
3325
+ className: cn("dl-slider", className),
3336
3326
  ...props,
3337
3327
  children: [
3338
- /* @__PURE__ */ jsx38(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsx38(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
3339
- /* @__PURE__ */ jsx38(SliderPrimitive.Thumb, { className: "block rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 size-4" })
3328
+ /* @__PURE__ */ jsx43(SliderPrimitive.Track, { className: "dl-slider__track", children: /* @__PURE__ */ jsx43(SliderPrimitive.Range, { className: "dl-slider__range" }) }),
3329
+ /* @__PURE__ */ jsx43(SliderPrimitive.Thumb, { className: "dl-slider__thumb" })
3340
3330
  ]
3341
3331
  }
3342
3332
  ));
3343
3333
  Slider.displayName = SliderPrimitive.Root.displayName;
3344
3334
 
3345
- // src/components/sonner.tsx
3335
+ // src/components/sonner/sonner.tsx
3346
3336
  import { Toaster as Sonner, toast } from "sonner";
3347
- import { jsx as jsx39 } from "react/jsx-runtime";
3337
+ import { jsx as jsx44 } from "react/jsx-runtime";
3348
3338
  var Toaster = ({ ...props }) => {
3349
- return /* @__PURE__ */ jsx39(
3339
+ return /* @__PURE__ */ jsx44(
3350
3340
  Sonner,
3351
3341
  {
3352
- className: "toaster group",
3342
+ className: "dl-toaster",
3353
3343
  toastOptions: {
3354
3344
  classNames: {
3355
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
3356
- description: "group-[.toast]:text-muted-foreground",
3357
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
3358
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
3345
+ toast: "dl-toast",
3346
+ description: "dl-toast__desc",
3347
+ actionButton: "dl-toast__action",
3348
+ cancelButton: "dl-toast__cancel"
3359
3349
  }
3360
3350
  },
3361
3351
  ...props
@@ -3363,202 +3353,211 @@ var Toaster = ({ ...props }) => {
3363
3353
  );
3364
3354
  };
3365
3355
 
3366
- // src/components/switch.tsx
3367
- import * as React37 from "react";
3356
+ // src/components/status-badge/status-badge.tsx
3357
+ import * as React40 from "react";
3358
+ import { jsx as jsx45, jsxs as jsxs26 } from "react/jsx-runtime";
3359
+ var statusCategoryMap = {
3360
+ Completed: "dl-status-badge--success",
3361
+ COMPLETED: "dl-status-badge--success",
3362
+ Operational: "dl-status-badge--success",
3363
+ OPERATIONAL: "dl-status-badge--success",
3364
+ Active: "dl-status-badge--success",
3365
+ ACTIVE: "dl-status-badge--success",
3366
+ ONLINE: "dl-status-badge--success",
3367
+ "In Progress": "dl-status-badge--info",
3368
+ RUNNING: "dl-status-badge--info",
3369
+ "Needs Approval": "dl-status-badge--warning",
3370
+ Degraded: "dl-status-badge--warning",
3371
+ PAUSED: "dl-status-badge--warning",
3372
+ Failed: "dl-status-badge--destructive",
3373
+ FAILED: "dl-status-badge--destructive",
3374
+ Offline: "dl-status-badge--muted",
3375
+ DISABLED: "dl-status-badge--muted",
3376
+ IDLE: "dl-status-badge--muted"
3377
+ };
3378
+ var StatusBadge = React40.forwardRef(
3379
+ ({ status, className, ...props }, ref) => {
3380
+ const normalizedStatus = status?.trim() ?? "";
3381
+ const colorClass = statusCategoryMap[normalizedStatus] ?? "dl-status-badge--muted";
3382
+ return /* @__PURE__ */ jsxs26(
3383
+ "span",
3384
+ {
3385
+ ref,
3386
+ className: cn("dl-status-badge", colorClass, className),
3387
+ ...props,
3388
+ children: [
3389
+ /* @__PURE__ */ jsx45("span", { className: "dl-status-badge__dot" }),
3390
+ normalizedStatus
3391
+ ]
3392
+ }
3393
+ );
3394
+ }
3395
+ );
3396
+ StatusBadge.displayName = "StatusBadge";
3397
+
3398
+ // src/components/status-chip/status-chip.tsx
3399
+ import * as React41 from "react";
3400
+ import { jsx as jsx46, jsxs as jsxs27 } from "react/jsx-runtime";
3401
+ var statusToneMap = {
3402
+ active: "dl-status-chip--primary",
3403
+ running: "dl-status-chip--primary",
3404
+ completed: "dl-status-chip--muted",
3405
+ done: "dl-status-chip--muted",
3406
+ indexed: "dl-status-chip--primary",
3407
+ enabled: "dl-status-chip--primary",
3408
+ available: "dl-status-chip--primary",
3409
+ published: "dl-status-chip--primary",
3410
+ ok: "dl-status-chip--primary",
3411
+ waiting: "dl-status-chip--warning",
3412
+ paused: "dl-status-chip--warning",
3413
+ processing: "dl-status-chip--warning",
3414
+ degraded: "dl-status-chip--warning",
3415
+ warn: "dl-status-chip--warning",
3416
+ "requires-approval": "dl-status-chip--warning",
3417
+ draft: "dl-status-chip--warning",
3418
+ failed: "dl-status-chip--destructive",
3419
+ error: "dl-status-chip--destructive",
3420
+ offline: "dl-status-chip--destructive"
3421
+ };
3422
+ var StatusChip = React41.forwardRef(
3423
+ ({ status, className, ...props }, ref) => {
3424
+ const toneClass = statusToneMap[status] ?? "dl-status-chip--muted";
3425
+ return /* @__PURE__ */ jsxs27(
3426
+ "span",
3427
+ {
3428
+ ref,
3429
+ className: cn("dl-status-chip", toneClass, className),
3430
+ ...props,
3431
+ children: [
3432
+ /* @__PURE__ */ jsx46("span", { className: "dl-status-chip__dot" }),
3433
+ status
3434
+ ]
3435
+ }
3436
+ );
3437
+ }
3438
+ );
3439
+ StatusChip.displayName = "StatusChip";
3440
+
3441
+ // src/components/switch/switch.tsx
3442
+ import * as React42 from "react";
3368
3443
  import * as SwitchPrimitives from "@radix-ui/react-switch";
3369
- import { jsx as jsx40 } from "react/jsx-runtime";
3370
- var Switch = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
3444
+ import { jsx as jsx47 } from "react/jsx-runtime";
3445
+ var Switch = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
3371
3446
  SwitchPrimitives.Root,
3372
3447
  {
3373
- className: cn(
3374
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
3375
- className
3376
- ),
3448
+ className: cn("dl-switch", className),
3377
3449
  ...props,
3378
3450
  ref,
3379
- children: /* @__PURE__ */ jsx40(
3380
- SwitchPrimitives.Thumb,
3381
- {
3382
- className: cn(
3383
- "pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 size-4"
3384
- )
3385
- }
3386
- )
3451
+ children: /* @__PURE__ */ jsx47(SwitchPrimitives.Thumb, { className: "dl-switch__thumb" })
3387
3452
  }
3388
3453
  ));
3389
3454
  Switch.displayName = SwitchPrimitives.Root.displayName;
3390
3455
 
3391
- // src/components/table.tsx
3392
- import * as React38 from "react";
3393
- import { jsx as jsx41 } from "react/jsx-runtime";
3394
- var Table = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx41(
3395
- "table",
3396
- {
3397
- ref,
3398
- className: cn("w-full caption-bottom text-sm", className),
3399
- ...props
3400
- }
3401
- ) }));
3456
+ // src/components/table/table.tsx
3457
+ import * as React43 from "react";
3458
+ import { jsx as jsx48 } from "react/jsx-runtime";
3459
+ var Table = React43.forwardRef(
3460
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("div", { className: "dl-table-wrapper", children: /* @__PURE__ */ jsx48("table", { ref, className: cn("dl-table", className), ...props }) })
3461
+ );
3402
3462
  Table.displayName = "Table";
3403
- var TableHeader = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
3463
+ var TableHeader = React43.forwardRef(
3464
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("thead", { ref, className: cn("dl-table__head", className), ...props })
3465
+ );
3404
3466
  TableHeader.displayName = "TableHeader";
3405
- var TableBody = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3406
- "tbody",
3407
- {
3408
- ref,
3409
- className: cn("[&_tr:last-child]:border-0", className),
3410
- ...props
3411
- }
3412
- ));
3467
+ var TableBody = React43.forwardRef(
3468
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("tbody", { ref, className: cn("dl-table__body", className), ...props })
3469
+ );
3413
3470
  TableBody.displayName = "TableBody";
3414
- var TableFooter = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3415
- "tfoot",
3416
- {
3417
- ref,
3418
- className: cn(
3419
- "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
3420
- className
3421
- ),
3422
- ...props
3423
- }
3424
- ));
3471
+ var TableFooter = React43.forwardRef(
3472
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("tfoot", { ref, className: cn("dl-table__foot", className), ...props })
3473
+ );
3425
3474
  TableFooter.displayName = "TableFooter";
3426
- var TableRow = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3427
- "tr",
3428
- {
3429
- ref,
3430
- className: cn(
3431
- "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
3432
- className
3433
- ),
3434
- ...props
3435
- }
3436
- ));
3475
+ var TableRow = React43.forwardRef(
3476
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("tr", { ref, className: cn("dl-table__row", className), ...props })
3477
+ );
3437
3478
  TableRow.displayName = "TableRow";
3438
- var TableHead = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3439
- "th",
3440
- {
3441
- ref,
3442
- className: cn(
3443
- "h-10 px-2 text-left align-middle font-medium text-muted-foreground has-[[role=checkbox]]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
3444
- className
3445
- ),
3446
- ...props
3447
- }
3448
- ));
3479
+ var TableHead = React43.forwardRef(
3480
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("th", { ref, className: cn("dl-table__head-cell", className), ...props })
3481
+ );
3449
3482
  TableHead.displayName = "TableHead";
3450
- var TableCell = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3451
- "td",
3452
- {
3453
- ref,
3454
- className: cn(
3455
- "p-2 align-middle has-[[role=checkbox]]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
3456
- className
3457
- ),
3458
- ...props
3459
- }
3460
- ));
3483
+ var TableCell = React43.forwardRef(
3484
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx48("td", { ref, className: cn("dl-table__cell", className), ...props })
3485
+ );
3461
3486
  TableCell.displayName = "TableCell";
3462
- var TableCaption = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
3487
+ var TableCaption = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
3463
3488
  "caption",
3464
3489
  {
3465
3490
  ref,
3466
- className: cn("mt-4 text-sm text-muted-foreground", className),
3491
+ className: cn("dl-table__caption", className),
3467
3492
  ...props
3468
3493
  }
3469
3494
  ));
3470
3495
  TableCaption.displayName = "TableCaption";
3471
3496
 
3472
- // src/components/tabs.tsx
3473
- import * as React39 from "react";
3497
+ // src/components/tabs/tabs.tsx
3498
+ import * as React44 from "react";
3474
3499
  import * as TabsPrimitive from "@radix-ui/react-tabs";
3475
- import { jsx as jsx42 } from "react/jsx-runtime";
3500
+ import { jsx as jsx49 } from "react/jsx-runtime";
3476
3501
  var Tabs = TabsPrimitive.Root;
3477
- var TabsList = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3502
+ var TabsList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
3478
3503
  TabsPrimitive.List,
3479
3504
  {
3480
3505
  ref,
3481
- className: cn(
3482
- "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
3483
- className
3484
- ),
3506
+ className: cn("dl-tabs-list", className),
3485
3507
  ...props
3486
3508
  }
3487
3509
  ));
3488
3510
  TabsList.displayName = TabsPrimitive.List.displayName;
3489
- var TabsTrigger = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3511
+ var TabsTrigger = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
3490
3512
  TabsPrimitive.Trigger,
3491
3513
  {
3492
3514
  ref,
3493
- className: cn(
3494
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background cursor-pointer transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
3495
- className
3496
- ),
3515
+ className: cn("dl-tabs-trigger", className),
3497
3516
  ...props
3498
3517
  }
3499
3518
  ));
3500
3519
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3501
- var TabsContent = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
3520
+ var TabsContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
3502
3521
  TabsPrimitive.Content,
3503
3522
  {
3504
3523
  ref,
3505
- className: cn(
3506
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
3507
- className
3508
- ),
3524
+ className: cn("dl-tabs-content", className),
3509
3525
  ...props
3510
3526
  }
3511
3527
  ));
3512
3528
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3513
3529
 
3514
- // src/components/textarea.tsx
3515
- import * as React40 from "react";
3516
- import { jsx as jsx43 } from "react/jsx-runtime";
3517
- var Textarea = React40.forwardRef(({ className, ...props }, ref) => {
3518
- return /* @__PURE__ */ jsx43(
3519
- "textarea",
3520
- {
3521
- className: cn(
3522
- "flex min-h-15 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3523
- className
3524
- ),
3525
- ref,
3526
- ...props
3527
- }
3528
- );
3529
- });
3530
+ // src/components/textarea/textarea.tsx
3531
+ import * as React45 from "react";
3532
+ import { jsx as jsx50 } from "react/jsx-runtime";
3533
+ var Textarea = React45.forwardRef(
3534
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx50("textarea", { className: cn("dl-textarea", className), ref, ...props })
3535
+ );
3530
3536
  Textarea.displayName = "Textarea";
3531
3537
 
3532
- // src/components/toggle-group.tsx
3533
- import * as React42 from "react";
3534
- import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
3535
-
3536
- // src/components/toggle.tsx
3537
- import * as React41 from "react";
3538
+ // src/components/toggle/toggle.tsx
3539
+ import * as React46 from "react";
3538
3540
  import * as TogglePrimitive from "@radix-ui/react-toggle";
3539
3541
  import { cva as cva8 } from "class-variance-authority";
3540
- import { jsx as jsx44 } from "react/jsx-runtime";
3541
- var toggleVariants = cva8(
3542
- "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium cursor-pointer transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3543
- {
3544
- variants: {
3545
- variant: {
3546
- default: "bg-transparent",
3547
- outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
3548
- },
3549
- size: {
3550
- default: "h-9 px-2 min-w-9",
3551
- sm: "h-8 px-1.5 min-w-8",
3552
- lg: "h-10 px-2.5 min-w-10"
3553
- }
3542
+ import { jsx as jsx51 } from "react/jsx-runtime";
3543
+ var toggleVariants = cva8("dl-toggle", {
3544
+ variants: {
3545
+ variant: {
3546
+ default: "dl-toggle--variant-default",
3547
+ outline: "dl-toggle--variant-outline"
3554
3548
  },
3555
- defaultVariants: {
3556
- variant: "default",
3557
- size: "default"
3549
+ size: {
3550
+ default: "dl-toggle--size-default",
3551
+ sm: "dl-toggle--size-sm",
3552
+ lg: "dl-toggle--size-lg"
3558
3553
  }
3554
+ },
3555
+ defaultVariants: {
3556
+ variant: "default",
3557
+ size: "default"
3559
3558
  }
3560
- );
3561
- var Toggle = React41.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx44(
3559
+ });
3560
+ var Toggle = React46.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx51(
3562
3561
  TogglePrimitive.Root,
3563
3562
  {
3564
3563
  ref,
@@ -3568,25 +3567,27 @@ var Toggle = React41.forwardRef(({ className, variant, size, ...props }, ref) =>
3568
3567
  ));
3569
3568
  Toggle.displayName = TogglePrimitive.Root.displayName;
3570
3569
 
3571
- // src/components/toggle-group.tsx
3572
- import { jsx as jsx45 } from "react/jsx-runtime";
3573
- var ToggleGroupContext = React42.createContext({
3570
+ // src/components/toggle-group/toggle-group.tsx
3571
+ import * as React47 from "react";
3572
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
3573
+ import { jsx as jsx52 } from "react/jsx-runtime";
3574
+ var ToggleGroupContext = React47.createContext({
3574
3575
  size: "default",
3575
3576
  variant: "default"
3576
3577
  });
3577
- var ToggleGroup = React42.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx45(
3578
+ var ToggleGroup = React47.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx52(
3578
3579
  ToggleGroupPrimitive.Root,
3579
3580
  {
3580
3581
  ref,
3581
- className: cn("flex items-center justify-center gap-1", className),
3582
+ className: cn("dl-toggle-group", className),
3582
3583
  ...props,
3583
- children: /* @__PURE__ */ jsx45(ToggleGroupContext.Provider, { value: { variant, size }, children })
3584
+ children: /* @__PURE__ */ jsx52(ToggleGroupContext.Provider, { value: { variant, size }, children })
3584
3585
  }
3585
3586
  ));
3586
3587
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
3587
- var ToggleGroupItem = React42.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3588
- const context = React42.useContext(ToggleGroupContext);
3589
- return /* @__PURE__ */ jsx45(
3588
+ var ToggleGroupItem = React47.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3589
+ const context = React47.useContext(ToggleGroupContext);
3590
+ return /* @__PURE__ */ jsx52(
3590
3591
  ToggleGroupPrimitive.Item,
3591
3592
  {
3592
3593
  ref,
@@ -3603,378 +3604,6 @@ var ToggleGroupItem = React42.forwardRef(({ className, children, variant, size,
3603
3604
  );
3604
3605
  });
3605
3606
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
3606
-
3607
- // src/components/panel.tsx
3608
- import * as React43 from "react";
3609
- import { jsx as jsx46, jsxs as jsxs20 } from "react/jsx-runtime";
3610
- var Panel2 = React43.forwardRef(
3611
- ({ title, meta, children, className, ...props }, ref) => {
3612
- return /* @__PURE__ */ jsxs20(
3613
- "section",
3614
- {
3615
- ref,
3616
- className: cn("rounded-lg border border-border bg-card p-4", className),
3617
- ...props,
3618
- children: [
3619
- title ? /* @__PURE__ */ jsxs20("div", { className: "mb-3 flex items-center gap-2", children: [
3620
- /* @__PURE__ */ jsx46("h2", { className: "font-display text-sm font-semibold", children: title }),
3621
- meta ? /* @__PURE__ */ jsx46("div", { className: "ml-auto font-mono text-[10px] text-muted-foreground", children: meta }) : null
3622
- ] }) : null,
3623
- children
3624
- ]
3625
- }
3626
- );
3627
- }
3628
- );
3629
- Panel2.displayName = "Panel";
3630
-
3631
- // src/components/status-chip.tsx
3632
- import * as React44 from "react";
3633
- import { jsx as jsx47, jsxs as jsxs21 } from "react/jsx-runtime";
3634
- var statusTone = {
3635
- active: "border-primary/30 bg-primary/10 text-primary",
3636
- running: "border-primary/30 bg-primary/10 text-primary",
3637
- completed: "border-border bg-secondary text-muted-foreground",
3638
- done: "border-border bg-secondary text-muted-foreground",
3639
- indexed: "border-primary/30 bg-primary/10 text-primary",
3640
- enabled: "border-primary/30 bg-primary/10 text-primary",
3641
- available: "border-primary/30 bg-primary/10 text-primary",
3642
- published: "border-primary/30 bg-primary/10 text-primary",
3643
- ok: "border-primary/30 bg-primary/10 text-primary",
3644
- waiting: "border-warning/35 bg-warning/10 text-warning",
3645
- paused: "border-warning/35 bg-warning/10 text-warning",
3646
- processing: "border-warning/35 bg-warning/10 text-warning",
3647
- degraded: "border-warning/35 bg-warning/10 text-warning",
3648
- warn: "border-warning/35 bg-warning/10 text-warning",
3649
- "requires-approval": "border-warning/35 bg-warning/10 text-warning",
3650
- draft: "border-warning/35 bg-warning/10 text-warning",
3651
- failed: "border-destructive/35 bg-destructive/10 text-destructive",
3652
- error: "border-destructive/35 bg-destructive/10 text-destructive",
3653
- offline: "border-destructive/35 bg-destructive/10 text-destructive"
3654
- };
3655
- var StatusChip = React44.forwardRef(
3656
- ({ status, className, ...props }, ref) => {
3657
- return /* @__PURE__ */ jsxs21(
3658
- "span",
3659
- {
3660
- ref,
3661
- className: cn(
3662
- "inline-flex items-center gap-1.5 rounded-md border px-2 py-0.5 font-mono text-[10px]",
3663
- statusTone[status] ?? "border-border bg-secondary text-muted-foreground",
3664
- className
3665
- ),
3666
- ...props,
3667
- children: [
3668
- /* @__PURE__ */ jsx47("span", { className: "size-1.5 rounded-full bg-current" }),
3669
- status
3670
- ]
3671
- }
3672
- );
3673
- }
3674
- );
3675
- StatusChip.displayName = "StatusChip";
3676
-
3677
- // src/components/date-picker.tsx
3678
- import * as React45 from "react";
3679
- import { format } from "date-fns";
3680
- import { Calendar as CalendarIcon } from "lucide-react";
3681
- import { jsx as jsx48, jsxs as jsxs22 } from "react/jsx-runtime";
3682
- function DatePicker({
3683
- value,
3684
- onChange,
3685
- placeholder = "Pick a date",
3686
- className,
3687
- disabled
3688
- }) {
3689
- const date = React45.useMemo(() => {
3690
- if (!value) return void 0;
3691
- const parts = value.split("-");
3692
- if (parts.length !== 3) {
3693
- const d = new Date(value);
3694
- return isNaN(d.getTime()) ? void 0 : d;
3695
- }
3696
- const year = parseInt(parts[0], 10);
3697
- const month = parseInt(parts[1], 10) - 1;
3698
- const day = parseInt(parts[2], 10);
3699
- return new Date(year, month, day, 12, 0, 0);
3700
- }, [value]);
3701
- return /* @__PURE__ */ jsxs22(Popover, { children: [
3702
- /* @__PURE__ */ jsx48(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs22(
3703
- Button,
3704
- {
3705
- variant: "outline",
3706
- type: "button",
3707
- disabled,
3708
- className: cn(
3709
- "border-border/80 bg-secondary/40 hover:bg-secondary/60 hover:text-foreground h-9 w-full justify-start text-left font-normal",
3710
- !value && "text-muted-foreground",
3711
- className
3712
- ),
3713
- children: [
3714
- /* @__PURE__ */ jsx48(CalendarIcon, { className: "mr-2 size-4" }),
3715
- date && !isNaN(date.getTime()) ? format(date, "PPP") : /* @__PURE__ */ jsx48("span", { children: placeholder })
3716
- ]
3717
- }
3718
- ) }),
3719
- /* @__PURE__ */ jsx48(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx48(
3720
- Calendar,
3721
- {
3722
- mode: "single",
3723
- selected: date,
3724
- onSelect: (selectedDate) => onChange?.(selectedDate ? format(selectedDate, "yyyy-MM-dd") : ""),
3725
- initialFocus: true
3726
- }
3727
- ) })
3728
- ] });
3729
- }
3730
-
3731
- // src/components/searchable-select.tsx
3732
- import * as React46 from "react";
3733
- import { Search as Search2, Plus, Check as Check6, ChevronDown as ChevronDown4 } from "lucide-react";
3734
- import { jsx as jsx49, jsxs as jsxs23 } from "react/jsx-runtime";
3735
- function SearchableSelect({
3736
- options,
3737
- value,
3738
- onChange,
3739
- placeholder = "Select an option...",
3740
- searchPlaceholder = "Search...",
3741
- onAddNew,
3742
- addNewLabel = "Add new",
3743
- disabled = false,
3744
- className,
3745
- id
3746
- }) {
3747
- const [open, setOpen] = React46.useState(false);
3748
- const [search, setSearch] = React46.useState("");
3749
- const [highlightedIndex, setHighlightedIndex] = React46.useState(0);
3750
- const listRef = React46.useRef(null);
3751
- const selectedOption = React46.useMemo(() => {
3752
- return options.find((opt) => opt.value === value);
3753
- }, [options, value]);
3754
- const filteredOptions = React46.useMemo(() => {
3755
- if (!search.trim()) return options;
3756
- const q = search.toLowerCase();
3757
- return options.filter(
3758
- (opt) => opt.label.toLowerCase().includes(q) || opt.group && opt.group.toLowerCase().includes(q)
3759
- );
3760
- }, [options, search]);
3761
- const handleOpenChange = (newOpen) => {
3762
- setOpen(newOpen);
3763
- if (newOpen) {
3764
- const idx = filteredOptions.findIndex((opt) => opt.value === value);
3765
- setHighlightedIndex(idx >= 0 ? idx : 0);
3766
- } else {
3767
- setSearch("");
3768
- }
3769
- };
3770
- const handleSearchChange = (newSearch) => {
3771
- setSearch(newSearch);
3772
- setHighlightedIndex(0);
3773
- };
3774
- React46.useEffect(() => {
3775
- if (open && listRef.current) {
3776
- const activeEl = listRef.current.querySelector(
3777
- "[data-highlighted='true']"
3778
- );
3779
- if (activeEl) {
3780
- activeEl.scrollIntoView({ block: "nearest" });
3781
- }
3782
- }
3783
- }, [highlightedIndex, open]);
3784
- const groupedOptions = React46.useMemo(() => {
3785
- const hasGroups = filteredOptions.some((opt) => opt.group);
3786
- if (!hasGroups) return { Default: filteredOptions };
3787
- return filteredOptions.reduce(
3788
- (acc, opt) => {
3789
- const g = opt.group || "Other";
3790
- if (!acc[g]) acc[g] = [];
3791
- acc[g].push(opt);
3792
- return acc;
3793
- },
3794
- {}
3795
- );
3796
- }, [filteredOptions]);
3797
- const handleSelect = (val) => {
3798
- onChange?.(val);
3799
- setOpen(false);
3800
- setSearch("");
3801
- };
3802
- const handleAddNew = () => {
3803
- onAddNew?.(search.trim());
3804
- setOpen(false);
3805
- setSearch("");
3806
- };
3807
- const handleKeyDown = (e) => {
3808
- if (!open) {
3809
- if (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") {
3810
- e.preventDefault();
3811
- handleOpenChange(true);
3812
- }
3813
- return;
3814
- }
3815
- switch (e.key) {
3816
- case "ArrowDown":
3817
- e.preventDefault();
3818
- setHighlightedIndex(
3819
- (prev) => prev < filteredOptions.length - 1 ? prev + 1 : prev
3820
- );
3821
- break;
3822
- case "ArrowUp":
3823
- e.preventDefault();
3824
- setHighlightedIndex((prev) => prev > 0 ? prev - 1 : 0);
3825
- break;
3826
- case "Enter":
3827
- e.preventDefault();
3828
- if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {
3829
- handleSelect(filteredOptions[highlightedIndex].value);
3830
- } else if (onAddNew && search.trim()) {
3831
- handleAddNew();
3832
- }
3833
- break;
3834
- case "Escape":
3835
- case "Tab":
3836
- e.preventDefault();
3837
- handleOpenChange(false);
3838
- break;
3839
- }
3840
- };
3841
- let currentIndex = 0;
3842
- return /* @__PURE__ */ jsxs23(Popover, { open, onOpenChange: handleOpenChange, children: [
3843
- /* @__PURE__ */ jsx49(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs23(
3844
- Button,
3845
- {
3846
- id,
3847
- variant: "outline",
3848
- role: "combobox",
3849
- "aria-expanded": open,
3850
- disabled,
3851
- onKeyDown: handleKeyDown,
3852
- className: cn(
3853
- "bg-background border-input hover:bg-accent/50 h-9 w-full justify-between px-3 text-left font-normal",
3854
- !selectedOption && "text-muted-foreground",
3855
- className
3856
- ),
3857
- children: [
3858
- /* @__PURE__ */ jsx49("span", { className: "truncate", children: selectedOption ? selectedOption.label : placeholder }),
3859
- /* @__PURE__ */ jsx49(ChevronDown4, { className: "ml-2 size-4 shrink-0 opacity-50" })
3860
- ]
3861
- }
3862
- ) }),
3863
- /* @__PURE__ */ jsxs23(
3864
- PopoverContent,
3865
- {
3866
- align: "start",
3867
- className: "border-border bg-popover w-(--radix-popover-trigger-width) min-w-55 border p-0 shadow-lg",
3868
- onKeyDown: handleKeyDown,
3869
- children: [
3870
- /* @__PURE__ */ jsxs23("div", { className: "border-border flex items-center gap-2 border-b p-2", children: [
3871
- /* @__PURE__ */ jsx49(Search2, { className: "text-muted-foreground size-4 shrink-0 opacity-50" }),
3872
- /* @__PURE__ */ jsx49(
3873
- Input,
3874
- {
3875
- placeholder: searchPlaceholder,
3876
- value: search,
3877
- onChange: (e) => handleSearchChange(e.target.value),
3878
- className: "h-8 border-none bg-transparent px-1 text-sm focus-visible:ring-0 focus-visible:ring-offset-0",
3879
- autoFocus: true
3880
- }
3881
- )
3882
- ] }),
3883
- /* @__PURE__ */ jsx49(
3884
- "div",
3885
- {
3886
- ref: listRef,
3887
- onWheel: (e) => e.stopPropagation(),
3888
- className: "max-h-60 overflow-y-auto overscroll-contain p-1 text-sm",
3889
- children: Object.keys(groupedOptions).length === 0 || filteredOptions.length === 0 && !onAddNew ? /* @__PURE__ */ jsx49("div", { className: "text-muted-foreground py-6 text-center text-xs", children: "No matching options found." }) : Object.entries(groupedOptions).map(([groupName, groupOpts]) => /* @__PURE__ */ jsxs23("div", { className: "py-1", children: [
3890
- groupName !== "Default" && /* @__PURE__ */ jsx49("div", { className: "text-muted-foreground/70 px-2 py-1 text-[10px] font-bold tracking-wider uppercase", children: groupName }),
3891
- groupOpts.map((option) => {
3892
- const isSelected = option.value === value;
3893
- const itemIndex = currentIndex++;
3894
- const isHighlighted = itemIndex === highlightedIndex;
3895
- return /* @__PURE__ */ jsxs23(
3896
- "div",
3897
- {
3898
- "data-highlighted": isHighlighted,
3899
- onClick: () => handleSelect(option.value),
3900
- onMouseEnter: () => setHighlightedIndex(itemIndex),
3901
- className: cn(
3902
- "relative flex cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-sm transition-colors outline-none select-none",
3903
- isHighlighted && "bg-accent text-accent-foreground font-medium",
3904
- isSelected && !isHighlighted && "bg-accent/40 text-accent-foreground font-medium"
3905
- ),
3906
- children: [
3907
- /* @__PURE__ */ jsx49("span", { className: "flex-1 truncate", children: option.label }),
3908
- isSelected && /* @__PURE__ */ jsx49(Check6, { className: "text-primary ml-2 size-4 shrink-0" })
3909
- ]
3910
- },
3911
- option.value
3912
- );
3913
- })
3914
- ] }, groupName))
3915
- }
3916
- ),
3917
- onAddNew && /* @__PURE__ */ jsx49("div", { className: "border-border bg-muted/30 border-t p-1", children: /* @__PURE__ */ jsxs23(
3918
- "button",
3919
- {
3920
- type: "button",
3921
- onClick: handleAddNew,
3922
- className: "text-primary hover:bg-primary/10 flex w-full items-center gap-2 rounded-sm px-2.5 py-2 text-xs font-semibold transition-colors",
3923
- children: [
3924
- /* @__PURE__ */ jsx49(Plus, { className: "size-3.5 shrink-0" }),
3925
- /* @__PURE__ */ jsx49("span", { className: "truncate", children: search.trim() ? `${addNewLabel} "${search.trim()}"` : `${addNewLabel}` })
3926
- ]
3927
- }
3928
- ) })
3929
- ]
3930
- }
3931
- )
3932
- ] });
3933
- }
3934
-
3935
- // src/components/confirm-dialog.tsx
3936
- import { jsx as jsx50, jsxs as jsxs24 } from "react/jsx-runtime";
3937
- function ConfirmDialog({
3938
- open,
3939
- onOpenChange,
3940
- title,
3941
- description,
3942
- onConfirm,
3943
- confirmText = "Confirm",
3944
- cancelText = "Cancel",
3945
- destructive = false
3946
- }) {
3947
- return /* @__PURE__ */ jsx50(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs24(AlertDialogContent, { children: [
3948
- /* @__PURE__ */ jsxs24(AlertDialogHeader, { children: [
3949
- /* @__PURE__ */ jsx50(AlertDialogTitle, { children: title }),
3950
- /* @__PURE__ */ jsx50(AlertDialogDescription, { children: description })
3951
- ] }),
3952
- /* @__PURE__ */ jsxs24(AlertDialogFooter, { children: [
3953
- /* @__PURE__ */ jsx50(AlertDialogCancel, { children: cancelText }),
3954
- /* @__PURE__ */ jsx50(
3955
- AlertDialogAction,
3956
- {
3957
- onClick: onConfirm,
3958
- className: destructive ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : "",
3959
- children: confirmText
3960
- }
3961
- )
3962
- ] })
3963
- ] }) });
3964
- }
3965
-
3966
- // src/components/loading-state.tsx
3967
- import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
3968
- function LoadingState({
3969
- rows = 3,
3970
- className,
3971
- ...props
3972
- }) {
3973
- return /* @__PURE__ */ jsxs25("div", { className: cn("w-full space-y-4 p-2", className), ...props, children: [
3974
- /* @__PURE__ */ jsx51(Skeleton, { className: "h-8 w-1/3" }),
3975
- /* @__PURE__ */ jsx51("div", { className: "space-y-2", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsx51(Skeleton, { className: "h-16 w-full rounded-xl" }, i)) })
3976
- ] });
3977
- }
3978
3607
  export {
3979
3608
  Accordion,
3980
3609
  AccordionContent,
@@ -4039,6 +3668,7 @@ export {
4039
3668
  CommandList,
4040
3669
  CommandSeparator,
4041
3670
  CommandShortcut,
3671
+ ConfigProvider,
4042
3672
  ConfirmDialog,
4043
3673
  ContextMenu,
4044
3674
  ContextMenuCheckboxItem,
@@ -4139,7 +3769,7 @@ export {
4139
3769
  PaginationLink,
4140
3770
  PaginationNext,
4141
3771
  PaginationPrevious,
4142
- Panel2 as Panel,
3772
+ Panel,
4143
3773
  Popover,
4144
3774
  PopoverAnchor,
4145
3775
  PopoverContent,
@@ -4199,6 +3829,7 @@ export {
4199
3829
  SidebarTrigger,
4200
3830
  Skeleton,
4201
3831
  Slider,
3832
+ StatusBadge,
4202
3833
  StatusChip,
4203
3834
  Switch,
4204
3835
  Table,
@@ -4223,12 +3854,17 @@ export {
4223
3854
  TooltipContent,
4224
3855
  TooltipProvider,
4225
3856
  TooltipTrigger,
3857
+ alertVariants,
4226
3858
  badgeVariants,
4227
3859
  buttonVariants,
4228
3860
  cn,
3861
+ labelVariants,
4229
3862
  navigationMenuTriggerStyle,
3863
+ sheetVariants,
4230
3864
  toast,
4231
3865
  toggleVariants,
3866
+ useCarousel,
3867
+ useConfig,
4232
3868
  useFormField,
4233
3869
  useIsMobile,
4234
3870
  useSidebar,