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