@kinetixui/ui 0.12.0 → 0.14.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.
package/dist/index.js CHANGED
@@ -235,7 +235,7 @@ import * as React5 from "react";
235
235
  import { cva as cva4 } from "class-variance-authority";
236
236
  import { jsx as jsx5 } from "react/jsx-runtime";
237
237
  var alertVariants = cva4(
238
- "relative w-full rounded-lg border px-4 py-3 text-sm font-sans [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
238
+ "relative w-full rounded-lg border px-4 py-3 text-sm font-sans [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:ps-7",
239
239
  {
240
240
  variants: {
241
241
  variant: {
@@ -337,11 +337,18 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
337
337
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
338
338
  var AspectRatio = AspectRatioPrimitive.Root;
339
339
 
340
+ // src/components/direction-provider.tsx
341
+ import { DirectionProvider as RadixDirectionProvider } from "@radix-ui/react-direction";
342
+ import { jsx as jsx7 } from "react/jsx-runtime";
343
+ function KinetixDirectionProvider({ dir, children }) {
344
+ return /* @__PURE__ */ jsx7(RadixDirectionProvider, { dir, children });
345
+ }
346
+
340
347
  // src/components/avatar.tsx
341
348
  import * as React7 from "react";
342
349
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
343
- import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
344
- var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
350
+ import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
351
+ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
345
352
  AvatarPrimitive.Root,
346
353
  {
347
354
  ref,
@@ -350,9 +357,9 @@ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
350
357
  }
351
358
  ));
352
359
  Avatar.displayName = AvatarPrimitive.Root.displayName;
353
- var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(AvatarPrimitive.Image, { ref, className: cn("aspect-square size-full", className), ...props }));
360
+ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(AvatarPrimitive.Image, { ref, className: cn("aspect-square size-full", className), ...props }));
354
361
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
355
- var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
362
+ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
356
363
  AvatarPrimitive.Fallback,
357
364
  {
358
365
  ref,
@@ -370,8 +377,8 @@ var AvatarGroup = React7.forwardRef(
370
377
  const visible = max ? items.slice(0, max) : items;
371
378
  const overflow = max ? items.length - max : 0;
372
379
  return /* @__PURE__ */ jsxs3("div", { ref, className: cn("flex -space-x-2", className), ...props, children: [
373
- visible.map((child, i) => /* @__PURE__ */ jsx7("div", { className: "rounded-full ring-2 ring-background", children: child }, i)),
374
- overflow > 0 && /* @__PURE__ */ jsx7("div", { className: "rounded-full ring-2 ring-background", children: /* @__PURE__ */ jsx7(Avatar, { children: /* @__PURE__ */ jsxs3(AvatarFallback, { children: [
380
+ visible.map((child, i) => /* @__PURE__ */ jsx8("div", { className: "rounded-full ring-2 ring-background", children: child }, i)),
381
+ overflow > 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-full ring-2 ring-background", children: /* @__PURE__ */ jsx8(Avatar, { children: /* @__PURE__ */ jsxs3(AvatarFallback, { children: [
375
382
  "+",
376
383
  overflow
377
384
  ] }) }) })
@@ -384,7 +391,7 @@ AvatarGroup.displayName = "AvatarGroup";
384
391
  import * as React8 from "react";
385
392
  import { Slot as Slot2 } from "@radix-ui/react-slot";
386
393
  import { cva as cva5 } from "class-variance-authority";
387
- import { jsx as jsx8 } from "react/jsx-runtime";
394
+ import { jsx as jsx9 } from "react/jsx-runtime";
388
395
  var badgeVariants = cva5(
389
396
  "inline-flex items-center rounded-full px-2.5 py-1 text-xs font-medium font-sans tracking-[0.5px] transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
390
397
  {
@@ -403,7 +410,7 @@ var badgeVariants = cva5(
403
410
  var Badge = React8.forwardRef(
404
411
  ({ className, variant, asChild = false, ...props }, ref) => {
405
412
  const Comp = asChild ? Slot2 : "div";
406
- return /* @__PURE__ */ jsx8(Comp, { ref, className: cn(badgeVariants({ variant }), className), ...props });
413
+ return /* @__PURE__ */ jsx9(Comp, { ref, className: cn(badgeVariants({ variant }), className), ...props });
407
414
  }
408
415
  );
409
416
  Badge.displayName = "Badge";
@@ -412,13 +419,13 @@ Badge.displayName = "Badge";
412
419
  import * as React9 from "react";
413
420
  import { Slot as Slot3 } from "@radix-ui/react-slot";
414
421
  import { ChevronRight, MoreHorizontal } from "lucide-react";
415
- import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
422
+ import { jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
416
423
  var Breadcrumb = React9.forwardRef(
417
- ({ ...props }, ref) => /* @__PURE__ */ jsx9("nav", { ref, "aria-label": "breadcrumb", className: "font-sans", ...props })
424
+ ({ ...props }, ref) => /* @__PURE__ */ jsx10("nav", { ref, "aria-label": "breadcrumb", className: "font-sans", ...props })
418
425
  );
419
426
  Breadcrumb.displayName = "Breadcrumb";
420
427
  var BreadcrumbList = React9.forwardRef(
421
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
428
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
422
429
  "ol",
423
430
  {
424
431
  ref,
@@ -429,16 +436,16 @@ var BreadcrumbList = React9.forwardRef(
429
436
  );
430
437
  BreadcrumbList.displayName = "BreadcrumbList";
431
438
  var BreadcrumbItem = React9.forwardRef(
432
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
439
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
433
440
  );
434
441
  BreadcrumbItem.displayName = "BreadcrumbItem";
435
442
  var BreadcrumbLink = React9.forwardRef(({ asChild, className, ...props }, ref) => {
436
443
  const Comp = asChild ? Slot3 : "a";
437
- return /* @__PURE__ */ jsx9(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
444
+ return /* @__PURE__ */ jsx10(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
438
445
  });
439
446
  BreadcrumbLink.displayName = "BreadcrumbLink";
440
447
  var BreadcrumbPage = React9.forwardRef(
441
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
448
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
442
449
  "span",
443
450
  {
444
451
  ref,
@@ -451,19 +458,19 @@ var BreadcrumbPage = React9.forwardRef(
451
458
  )
452
459
  );
453
460
  BreadcrumbPage.displayName = "BreadcrumbPage";
454
- var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx9("li", { role: "presentation", "aria-hidden": true, className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ jsx9(ChevronRight, {}) });
461
+ var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx10("li", { role: "presentation", "aria-hidden": true, className: cn("[&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ jsx10(ChevronRight, {}) });
455
462
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
456
463
  var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs4("span", { role: "presentation", "aria-hidden": true, className: cn("flex size-9 items-center justify-center", className), ...props, children: [
457
- /* @__PURE__ */ jsx9(MoreHorizontal, { className: "size-4" }),
458
- /* @__PURE__ */ jsx9("span", { className: "sr-only", children: "More" })
464
+ /* @__PURE__ */ jsx10(MoreHorizontal, { className: "size-4" }),
465
+ /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "More" })
459
466
  ] });
460
467
  BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
461
468
 
462
469
  // src/components/card.tsx
463
470
  import * as React10 from "react";
464
- import { jsx as jsx10 } from "react/jsx-runtime";
471
+ import { jsx as jsx11 } from "react/jsx-runtime";
465
472
  var Card = React10.forwardRef(
466
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
473
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
467
474
  "div",
468
475
  {
469
476
  ref,
@@ -474,23 +481,23 @@ var Card = React10.forwardRef(
474
481
  );
475
482
  Card.displayName = "Card";
476
483
  var CardHeader = React10.forwardRef(
477
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
484
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
478
485
  );
479
486
  CardHeader.displayName = "CardHeader";
480
487
  var CardTitle = React10.forwardRef(
481
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
488
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
482
489
  );
483
490
  CardTitle.displayName = "CardTitle";
484
491
  var CardDescription = React10.forwardRef(
485
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
492
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
486
493
  );
487
494
  CardDescription.displayName = "CardDescription";
488
495
  var CardContent = React10.forwardRef(
489
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("p-6 pt-0", className), ...props })
496
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("p-6 pt-0", className), ...props })
490
497
  );
491
498
  CardContent.displayName = "CardContent";
492
499
  var CardFooter = React10.forwardRef(
493
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
500
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx11("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
494
501
  );
495
502
  CardFooter.displayName = "CardFooter";
496
503
 
@@ -498,8 +505,8 @@ CardFooter.displayName = "CardFooter";
498
505
  import * as React11 from "react";
499
506
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
500
507
  import { Check, Minus } from "lucide-react";
501
- import { jsx as jsx11 } from "react/jsx-runtime";
502
- var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
508
+ import { jsx as jsx12 } from "react/jsx-runtime";
509
+ var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
503
510
  CheckboxPrimitive.Root,
504
511
  {
505
512
  ref,
@@ -513,7 +520,7 @@ var Checkbox = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__
513
520
  className
514
521
  ),
515
522
  ...props,
516
- children: /* @__PURE__ */ jsx11(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx11(Minus, { className: "size-3" }) : /* @__PURE__ */ jsx11(Check, { className: "size-3", strokeWidth: 3 }) })
523
+ children: /* @__PURE__ */ jsx12(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx12(Minus, { className: "size-3" }) : /* @__PURE__ */ jsx12(Check, { className: "size-3", strokeWidth: 3 }) })
517
524
  }
518
525
  ));
519
526
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
@@ -528,12 +535,12 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
528
535
  import * as React12 from "react";
529
536
  import * as DialogPrimitive from "@radix-ui/react-dialog";
530
537
  import { X } from "lucide-react";
531
- import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
538
+ import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
532
539
  var Dialog = DialogPrimitive.Root;
533
540
  var DialogTrigger = DialogPrimitive.Trigger;
534
541
  var DialogPortal = DialogPrimitive.Portal;
535
542
  var DialogClose = DialogPrimitive.Close;
536
- var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
543
+ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
537
544
  DialogPrimitive.Overlay,
538
545
  {
539
546
  ref,
@@ -546,12 +553,13 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
546
553
  ));
547
554
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
548
555
  var DialogContent = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(DialogPortal, { children: [
549
- /* @__PURE__ */ jsx12(DialogOverlay, {}),
556
+ /* @__PURE__ */ jsx13(DialogOverlay, {}),
550
557
  /* @__PURE__ */ jsxs5(
551
558
  DialogPrimitive.Content,
552
559
  {
553
560
  ref,
554
561
  className: cn(
562
+ // rtl-ok: centering trick (left-1/2 + -translate-x-1/2), direction-agnostic by construction
555
563
  "fixed left-1/2 top-1/2 z-overlay grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg sm:rounded-xl font-sans",
556
564
  "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",
557
565
  className
@@ -559,18 +567,18 @@ var DialogContent = React12.forwardRef(({ className, children, ...props }, ref)
559
567
  ...props,
560
568
  children: [
561
569
  children,
562
- /* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring disabled:pointer-events-none", children: [
563
- /* @__PURE__ */ jsx12(X, { className: "size-4" }),
564
- /* @__PURE__ */ jsx12("span", { className: "sr-only", children: "Close" })
570
+ /* @__PURE__ */ jsxs5(DialogPrimitive.Close, { className: "absolute end-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring disabled:pointer-events-none", children: [
571
+ /* @__PURE__ */ jsx13(X, { className: "size-4" }),
572
+ /* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Close" })
565
573
  ] })
566
574
  ]
567
575
  }
568
576
  )
569
577
  ] }));
570
578
  DialogContent.displayName = DialogPrimitive.Content.displayName;
571
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx12("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
579
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx13("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-start", className), ...props });
572
580
  DialogHeader.displayName = "DialogHeader";
573
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx12(
581
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx13(
574
582
  "div",
575
583
  {
576
584
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -578,7 +586,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx12(
578
586
  }
579
587
  );
580
588
  DialogFooter.displayName = "DialogFooter";
581
- var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
589
+ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
582
590
  DialogPrimitive.Title,
583
591
  {
584
592
  ref,
@@ -587,7 +595,7 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
587
595
  }
588
596
  ));
589
597
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
590
- var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
598
+ var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
591
599
  DialogPrimitive.Description,
592
600
  {
593
601
  ref,
@@ -601,7 +609,7 @@ DialogDescription.displayName = DialogPrimitive.Description.displayName;
601
609
  import * as React13 from "react";
602
610
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
603
611
  import { Check as Check2, ChevronRight as ChevronRight2, Circle } from "lucide-react";
604
- import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
612
+ import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
605
613
  var DropdownMenu = DropdownMenuPrimitive.Root;
606
614
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
607
615
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -610,56 +618,56 @@ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
610
618
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
611
619
  var contentCls = "z-overlay min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md font-sans 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";
612
620
  var itemCls = "relative flex cursor-default 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 focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled";
613
- var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentCls, className), ...props }) }));
621
+ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentCls, className), ...props }) }));
614
622
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
615
- var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Item, { ref, className: cn(itemCls, inset && "pl-8", className), ...props }));
623
+ var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Item, { ref, className: cn(itemCls, inset && "ps-8", className), ...props }));
616
624
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
617
- var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls, "pl-8", className), checked, ...props, children: [
618
- /* @__PURE__ */ jsx13("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(Check2, { className: "size-4" }) }) }),
625
+ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls, "ps-8", className), checked, ...props, children: [
626
+ /* @__PURE__ */ jsx14("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check2, { className: "size-4" }) }) }),
619
627
  children
620
628
  ] }));
621
629
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
622
- var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemCls, "pl-8", className), ...props, children: [
623
- /* @__PURE__ */ jsx13("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx13(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx13(Circle, { className: "size-2 fill-current" }) }) }),
630
+ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs6(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemCls, "ps-8", className), ...props, children: [
631
+ /* @__PURE__ */ jsx14("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Circle, { className: "size-2 fill-current" }) }) }),
624
632
  children
625
633
  ] }));
626
634
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
627
- var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx13(
635
+ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
628
636
  DropdownMenuPrimitive.Label,
629
637
  {
630
638
  ref,
631
- className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className),
639
+ className: cn("px-2 py-1.5 text-sm font-semibold", inset && "ps-8", className),
632
640
  ...props
633
641
  }
634
642
  ));
635
643
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
636
- var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
644
+ var DropdownMenuSeparator = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
637
645
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
638
- var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx13("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
646
+ var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx14("span", { className: cn("ms-auto text-xs tracking-widest opacity-60", className), ...props });
639
647
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
640
648
  var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs6(
641
649
  DropdownMenuPrimitive.SubTrigger,
642
650
  {
643
651
  ref,
644
- className: cn(itemCls, "data-[state=open]:bg-accent", inset && "pl-8", className),
652
+ className: cn(itemCls, "data-[state=open]:bg-accent", inset && "ps-8", className),
645
653
  ...props,
646
654
  children: [
647
655
  children,
648
- /* @__PURE__ */ jsx13(ChevronRight2, { className: "ml-auto size-4" })
656
+ /* @__PURE__ */ jsx14(ChevronRight2, { className: "ms-auto size-4 rtl:-scale-x-100" })
649
657
  ]
650
658
  }
651
659
  ));
652
660
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
653
- var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentCls, className), ...props }));
661
+ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentCls, className), ...props }));
654
662
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
655
663
 
656
664
  // src/components/hover-card.tsx
657
665
  import * as React14 from "react";
658
666
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
659
- import { jsx as jsx14 } from "react/jsx-runtime";
667
+ import { jsx as jsx15 } from "react/jsx-runtime";
660
668
  var HoverCard = HoverCardPrimitive.Root;
661
669
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
662
- var HoverCardContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx14(
670
+ var HoverCardContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx15(
663
671
  HoverCardPrimitive.Content,
664
672
  {
665
673
  ref,
@@ -679,18 +687,18 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
679
687
  import * as React15 from "react";
680
688
  import * as LabelPrimitive from "@radix-ui/react-label";
681
689
  import { cva as cva6 } from "class-variance-authority";
682
- import { jsx as jsx15 } from "react/jsx-runtime";
690
+ import { jsx as jsx16 } from "react/jsx-runtime";
683
691
  var labelVariants = cva6(
684
692
  "text-sm font-medium leading-none font-sans peer-disabled:cursor-not-allowed peer-disabled:opacity-muted"
685
693
  );
686
- var Label2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
694
+ var Label2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
687
695
  Label2.displayName = LabelPrimitive.Root.displayName;
688
696
 
689
697
  // src/components/pagination.tsx
690
698
  import * as React16 from "react";
691
699
  import { ChevronLeft, ChevronRight as ChevronRight3, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
692
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
693
- var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx16(
700
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
701
+ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx17(
694
702
  "nav",
695
703
  {
696
704
  role: "navigation",
@@ -701,14 +709,14 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx16(
701
709
  );
702
710
  Pagination.displayName = "Pagination";
703
711
  var PaginationContent = React16.forwardRef(
704
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx16("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
712
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx17("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
705
713
  );
706
714
  PaginationContent.displayName = "PaginationContent";
707
715
  var PaginationItem = React16.forwardRef(
708
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx16("li", { ref, className: cn("", className), ...props })
716
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx17("li", { ref, className: cn("", className), ...props })
709
717
  );
710
718
  PaginationItem.displayName = "PaginationItem";
711
- var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx16(
719
+ var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx17(
712
720
  "a",
713
721
  {
714
722
  "aria-current": isActive ? "page" : void 0,
@@ -722,29 +730,29 @@ var PaginationLink = ({ className, isActive, ...props }) => /* @__PURE__ */ jsx1
722
730
  );
723
731
  PaginationLink.displayName = "PaginationLink";
724
732
  var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs7(PaginationLink, { "aria-label": "Go to previous page", className: cn("w-auto gap-1 px-2.5", className), ...props, children: [
725
- /* @__PURE__ */ jsx16(ChevronLeft, { className: "size-4" }),
726
- /* @__PURE__ */ jsx16("span", { children: "Previous" })
733
+ /* @__PURE__ */ jsx17(ChevronLeft, { className: "size-4" }),
734
+ /* @__PURE__ */ jsx17("span", { children: "Previous" })
727
735
  ] });
728
736
  PaginationPrevious.displayName = "PaginationPrevious";
729
737
  var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs7(PaginationLink, { "aria-label": "Go to next page", className: cn("w-auto gap-1 px-2.5", className), ...props, children: [
730
- /* @__PURE__ */ jsx16("span", { children: "Next" }),
731
- /* @__PURE__ */ jsx16(ChevronRight3, { className: "size-4" })
738
+ /* @__PURE__ */ jsx17("span", { children: "Next" }),
739
+ /* @__PURE__ */ jsx17(ChevronRight3, { className: "size-4" })
732
740
  ] });
733
741
  PaginationNext.displayName = "PaginationNext";
734
742
  var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs7("span", { "aria-hidden": true, className: cn("flex size-9 items-center justify-center", className), ...props, children: [
735
- /* @__PURE__ */ jsx16(MoreHorizontal2, { className: "size-4" }),
736
- /* @__PURE__ */ jsx16("span", { className: "sr-only", children: "More pages" })
743
+ /* @__PURE__ */ jsx17(MoreHorizontal2, { className: "size-4" }),
744
+ /* @__PURE__ */ jsx17("span", { className: "sr-only", children: "More pages" })
737
745
  ] });
738
746
  PaginationEllipsis.displayName = "PaginationEllipsis";
739
747
 
740
748
  // src/components/popover.tsx
741
749
  import * as React17 from "react";
742
750
  import * as PopoverPrimitive from "@radix-ui/react-popover";
743
- import { jsx as jsx17 } from "react/jsx-runtime";
751
+ import { jsx as jsx18 } from "react/jsx-runtime";
744
752
  var Popover = PopoverPrimitive.Root;
745
753
  var PopoverTrigger = PopoverPrimitive.Trigger;
746
754
  var PopoverAnchor = PopoverPrimitive.Anchor;
747
- var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx17(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
755
+ var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
748
756
  PopoverPrimitive.Content,
749
757
  {
750
758
  ref,
@@ -764,14 +772,14 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
764
772
  // src/components/progress.tsx
765
773
  import * as React18 from "react";
766
774
  import * as ProgressPrimitive from "@radix-ui/react-progress";
767
- import { jsx as jsx18 } from "react/jsx-runtime";
768
- var Progress = React18.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx18(
775
+ import { jsx as jsx19 } from "react/jsx-runtime";
776
+ var Progress = React18.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx19(
769
777
  ProgressPrimitive.Root,
770
778
  {
771
779
  ref,
772
780
  className: cn("relative h-2 w-full overflow-hidden rounded-full bg-muted", className),
773
781
  ...props,
774
- children: /* @__PURE__ */ jsx18(
782
+ children: /* @__PURE__ */ jsx19(
775
783
  ProgressPrimitive.Indicator,
776
784
  {
777
785
  className: "size-full flex-1 bg-primary transition-transform",
@@ -786,10 +794,10 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
786
794
  import * as React19 from "react";
787
795
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
788
796
  import { Circle as Circle2 } from "lucide-react";
789
- import { jsx as jsx19 } from "react/jsx-runtime";
790
- var RadioGroup2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-3", className), ...props }));
797
+ import { jsx as jsx20 } from "react/jsx-runtime";
798
+ var RadioGroup2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-3", className), ...props }));
791
799
  RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
792
- var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
800
+ var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
793
801
  RadioGroupPrimitive.Item,
794
802
  {
795
803
  ref,
@@ -802,7 +810,7 @@ var RadioGroupItem = React19.forwardRef(({ className, ...props }, ref) => /* @__
802
810
  className
803
811
  ),
804
812
  ...props,
805
- children: /* @__PURE__ */ jsx19(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx19(Circle2, { className: "size-2.5 fill-primary text-primary" }) })
813
+ children: /* @__PURE__ */ jsx20(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx20(Circle2, { className: "size-2.5 fill-primary text-primary" }) })
806
814
  }
807
815
  ));
808
816
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
@@ -810,14 +818,14 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
810
818
  // src/components/scroll-area.tsx
811
819
  import * as React20 from "react";
812
820
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
813
- import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
821
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
814
822
  var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(ScrollAreaPrimitive.Root, { ref, className: cn("relative overflow-hidden", className), ...props, children: [
815
- /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Viewport, { className: "size-full rounded-[inherit]", children }),
816
- /* @__PURE__ */ jsx20(ScrollBar, {}),
817
- /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Corner, {})
823
+ /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Viewport, { className: "size-full rounded-[inherit]", children }),
824
+ /* @__PURE__ */ jsx21(ScrollBar, {}),
825
+ /* @__PURE__ */ jsx21(ScrollAreaPrimitive.Corner, {})
818
826
  ] }));
819
827
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
820
- var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx20(
828
+ var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx21(
821
829
  ScrollAreaPrimitive.ScrollAreaScrollbar,
822
830
  {
823
831
  ref,
@@ -829,7 +837,7 @@ var ScrollBar = React20.forwardRef(({ className, orientation = "vertical", ...pr
829
837
  className
830
838
  ),
831
839
  ...props,
832
- children: /* @__PURE__ */ jsx20(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
840
+ children: /* @__PURE__ */ jsx21(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
833
841
  }
834
842
  ));
835
843
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
@@ -838,7 +846,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
838
846
  import * as React21 from "react";
839
847
  import * as SelectPrimitive from "@radix-ui/react-select";
840
848
  import { Check as Check3, ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
841
- import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
849
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
842
850
  var Select = SelectPrimitive.Root;
843
851
  var SelectGroup = SelectPrimitive.Group;
844
852
  var SelectValue = SelectPrimitive.Value;
@@ -860,12 +868,12 @@ var SelectTrigger = React21.forwardRef(({ className, children, ...props }, ref)
860
868
  ...props,
861
869
  children: [
862
870
  children,
863
- /* @__PURE__ */ jsx21(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx21(ChevronDown2, { className: "size-4 shrink-0 opacity-60" }) })
871
+ /* @__PURE__ */ jsx22(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx22(ChevronDown2, { className: "size-4 shrink-0 opacity-60" }) })
864
872
  ]
865
873
  }
866
874
  ));
867
875
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
868
- var SelectContent = React21.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
876
+ var SelectContent = React21.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
869
877
  SelectPrimitive.Content,
870
878
  {
871
879
  ref,
@@ -878,46 +886,46 @@ var SelectContent = React21.forwardRef(({ className, children, position = "poppe
878
886
  ),
879
887
  ...props,
880
888
  children: [
881
- /* @__PURE__ */ jsx21(SelectPrimitive.ScrollUpButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx21(ChevronUp, { className: "size-4" }) }),
882
- /* @__PURE__ */ jsx21(
889
+ /* @__PURE__ */ jsx22(SelectPrimitive.ScrollUpButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx22(ChevronUp, { className: "size-4" }) }),
890
+ /* @__PURE__ */ jsx22(
883
891
  SelectPrimitive.Viewport,
884
892
  {
885
893
  className: cn("p-1", position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),
886
894
  children
887
895
  }
888
896
  ),
889
- /* @__PURE__ */ jsx21(SelectPrimitive.ScrollDownButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx21(ChevronDown2, { className: "size-4" }) })
897
+ /* @__PURE__ */ jsx22(SelectPrimitive.ScrollDownButton, { className: "flex h-6 items-center justify-center", children: /* @__PURE__ */ jsx22(ChevronDown2, { className: "size-4" }) })
890
898
  ]
891
899
  }
892
900
  ) }));
893
901
  SelectContent.displayName = SelectPrimitive.Content.displayName;
894
- var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", className), ...props }));
902
+ var SelectLabel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", className), ...props }));
895
903
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
896
904
  var SelectItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(
897
905
  SelectPrimitive.Item,
898
906
  {
899
907
  ref,
900
908
  className: cn(
901
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none",
909
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none",
902
910
  "focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled",
903
911
  className
904
912
  ),
905
913
  ...props,
906
914
  children: [
907
- /* @__PURE__ */ jsx21("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(Check3, { className: "size-4" }) }) }),
908
- /* @__PURE__ */ jsx21(SelectPrimitive.ItemText, { children })
915
+ /* @__PURE__ */ jsx22("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(Check3, { className: "size-4" }) }) }),
916
+ /* @__PURE__ */ jsx22(SelectPrimitive.ItemText, { children })
909
917
  ]
910
918
  }
911
919
  ));
912
920
  SelectItem.displayName = SelectPrimitive.Item.displayName;
913
- var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
921
+ var SelectSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
914
922
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
915
923
 
916
924
  // src/components/separator.tsx
917
925
  import * as React22 from "react";
918
926
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
919
- import { jsx as jsx22 } from "react/jsx-runtime";
920
- var Separator3 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx22(
927
+ import { jsx as jsx23 } from "react/jsx-runtime";
928
+ var Separator3 = React22.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx23(
921
929
  SeparatorPrimitive.Root,
922
930
  {
923
931
  ref,
@@ -938,12 +946,12 @@ import * as React23 from "react";
938
946
  import * as SheetPrimitive from "@radix-ui/react-dialog";
939
947
  import { cva as cva7 } from "class-variance-authority";
940
948
  import { X as X2 } from "lucide-react";
941
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
949
+ import { jsx as jsx24, jsxs as jsxs10 } from "react/jsx-runtime";
942
950
  var Sheet = SheetPrimitive.Root;
943
951
  var SheetTrigger = SheetPrimitive.Trigger;
944
952
  var SheetClose = SheetPrimitive.Close;
945
953
  var SheetPortal = SheetPrimitive.Portal;
946
- var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
954
+ var SheetOverlay = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
947
955
  SheetPrimitive.Overlay,
948
956
  {
949
957
  ref,
@@ -959,40 +967,43 @@ var sheetVariants = cva7(
959
967
  "fixed z-overlay gap-4 bg-background p-6 shadow-lg transition ease-standard data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-base data-[state=open]:duration-slow font-sans",
960
968
  {
961
969
  variants: {
970
+ // rtl-ok-start: `side` picks a physical screen edge on purpose (a caller-chosen
971
+ // slide-in direction, not text-direction-relative) — left/right stay physical.
962
972
  side: {
963
973
  top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
964
974
  bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
965
975
  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",
966
976
  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"
967
977
  }
978
+ // rtl-ok-end
968
979
  },
969
980
  defaultVariants: { side: "right" }
970
981
  }
971
982
  );
972
983
  var SheetContent = React23.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(SheetPortal, { children: [
973
- /* @__PURE__ */ jsx23(SheetOverlay, {}),
984
+ /* @__PURE__ */ jsx24(SheetOverlay, {}),
974
985
  /* @__PURE__ */ jsxs10(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
975
986
  children,
976
- /* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring", children: [
977
- /* @__PURE__ */ jsx23(X2, { className: "size-4" }),
978
- /* @__PURE__ */ jsx23("span", { className: "sr-only", children: "Close" })
987
+ /* @__PURE__ */ jsxs10(SheetPrimitive.Close, { className: "absolute end-4 top-4 rounded-sm opacity-muted transition-opacity hover:opacity-visible focus:outline-none focus:ring-2 focus:ring-ring", children: [
988
+ /* @__PURE__ */ jsx24(X2, { className: "size-4" }),
989
+ /* @__PURE__ */ jsx24("span", { className: "sr-only", children: "Close" })
979
990
  ] })
980
991
  ] })
981
992
  ] }));
982
993
  SheetContent.displayName = SheetPrimitive.Content.displayName;
983
- var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx23("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
994
+ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx24("div", { className: cn("flex flex-col space-y-2 text-center sm:text-start", className), ...props });
984
995
  SheetHeader.displayName = "SheetHeader";
985
- var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
996
+ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx24("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
986
997
  SheetFooter.displayName = "SheetFooter";
987
- var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
998
+ var SheetTitle = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
988
999
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
989
- var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
1000
+ var SheetDescription = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
990
1001
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
991
1002
 
992
1003
  // src/components/modal.tsx
993
1004
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
994
1005
  import { X as X3 } from "lucide-react";
995
- import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
1006
+ import { jsx as jsx25, jsxs as jsxs11 } from "react/jsx-runtime";
996
1007
  var DEFAULT_ACTION = {
997
1008
  Info: "Got it",
998
1009
  Confirmation: "Confirm",
@@ -1016,9 +1027,9 @@ function Modal({
1016
1027
  }) {
1017
1028
  const showCancel = type !== "Info";
1018
1029
  return /* @__PURE__ */ jsxs11(Dialog, { open, defaultOpen, onOpenChange, children: [
1019
- trigger && /* @__PURE__ */ jsx24(DialogTrigger, { asChild: true, children: trigger }),
1030
+ trigger && /* @__PURE__ */ jsx25(DialogTrigger, { asChild: true, children: trigger }),
1020
1031
  /* @__PURE__ */ jsxs11(DialogPortal, { children: [
1021
- /* @__PURE__ */ jsx24(DialogOverlay, {}),
1032
+ /* @__PURE__ */ jsx25(DialogOverlay, {}),
1022
1033
  /* @__PURE__ */ jsxs11(
1023
1034
  DialogPrimitive2.Content,
1024
1035
  {
@@ -1030,25 +1041,25 @@ function Modal({
1030
1041
  ),
1031
1042
  children: [
1032
1043
  /* @__PURE__ */ jsxs11("header", { className: "flex items-center justify-between px-6 pb-3 pt-5", children: [
1033
- /* @__PURE__ */ jsx24(DialogPrimitive2.Title, { className: "min-w-0 flex-1 text-[18px] font-semibold leading-6 text-foreground", children: title }),
1034
- /* @__PURE__ */ jsx24(
1044
+ /* @__PURE__ */ jsx25(DialogPrimitive2.Title, { className: "min-w-0 flex-1 text-[18px] font-semibold leading-6 text-foreground", children: title }),
1045
+ /* @__PURE__ */ jsx25(
1035
1046
  DialogPrimitive2.Close,
1036
1047
  {
1037
1048
  className: "rounded-sm opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:ring-2 focus-visible:ring-ring",
1038
1049
  "aria-label": "Close",
1039
- children: /* @__PURE__ */ jsx24(X3, { className: "size-5" })
1050
+ children: /* @__PURE__ */ jsx25(X3, { className: "size-5" })
1040
1051
  }
1041
1052
  )
1042
1053
  ] }),
1043
- /* @__PURE__ */ jsx24("div", { className: "h-px w-full bg-border" }),
1054
+ /* @__PURE__ */ jsx25("div", { className: "h-px w-full bg-border" }),
1044
1055
  /* @__PURE__ */ jsxs11("div", { className: "px-6 py-5", children: [
1045
- description && /* @__PURE__ */ jsx24(DialogPrimitive2.Description, { className: "text-[14px] leading-5 tracking-[0.25px] text-muted-foreground", children: description }),
1056
+ description && /* @__PURE__ */ jsx25(DialogPrimitive2.Description, { className: "text-[14px] leading-5 tracking-[0.25px] text-muted-foreground", children: description }),
1046
1057
  children
1047
1058
  ] }),
1048
- /* @__PURE__ */ jsx24("div", { className: "h-px w-full bg-border" }),
1059
+ /* @__PURE__ */ jsx25("div", { className: "h-px w-full bg-border" }),
1049
1060
  /* @__PURE__ */ jsxs11("footer", { className: "flex items-center justify-end gap-3 px-6 py-4", children: [
1050
- showCancel && /* @__PURE__ */ jsx24(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx24(Button, { variant: "Outline", size: "lg", onClick: onCancel, children: cancelLabel }) }),
1051
- /* @__PURE__ */ jsx24(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx24(
1061
+ showCancel && /* @__PURE__ */ jsx25(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx25(Button, { variant: "Outline", size: "lg", onClick: onCancel, children: cancelLabel }) }),
1062
+ /* @__PURE__ */ jsx25(DialogPrimitive2.Close, { asChild: true, children: /* @__PURE__ */ jsx25(
1052
1063
  Button,
1053
1064
  {
1054
1065
  variant: type === "Destructive" ? "Destructive" : "Primary",
@@ -1066,15 +1077,15 @@ function Modal({
1066
1077
  }
1067
1078
 
1068
1079
  // src/components/skeleton.tsx
1069
- import { jsx as jsx25 } from "react/jsx-runtime";
1080
+ import { jsx as jsx26 } from "react/jsx-runtime";
1070
1081
  function Skeleton({ className, ...props }) {
1071
- return /* @__PURE__ */ jsx25("div", { className: cn("animate-pulse rounded-md bg-muted", className), ...props });
1082
+ return /* @__PURE__ */ jsx26("div", { className: cn("animate-pulse rounded-md bg-muted", className), ...props });
1072
1083
  }
1073
1084
 
1074
1085
  // src/components/slider.tsx
1075
1086
  import * as React24 from "react";
1076
1087
  import * as SliderPrimitive from "@radix-ui/react-slider";
1077
- import { jsx as jsx26, jsxs as jsxs12 } from "react/jsx-runtime";
1088
+ import { jsx as jsx27, jsxs as jsxs12 } from "react/jsx-runtime";
1078
1089
  var Slider = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs12(
1079
1090
  SliderPrimitive.Root,
1080
1091
  {
@@ -1082,8 +1093,8 @@ var Slider = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
1082
1093
  className: cn("relative flex w-full touch-none select-none items-center", className),
1083
1094
  ...props,
1084
1095
  children: [
1085
- /* @__PURE__ */ jsx26(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx26(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
1086
- /* @__PURE__ */ jsx26(SliderPrimitive.Thumb, { className: "block size-4 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-disabled" })
1096
+ /* @__PURE__ */ jsx27(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx27(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
1097
+ /* @__PURE__ */ jsx27(SliderPrimitive.Thumb, { className: "block size-4 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-disabled" })
1087
1098
  ]
1088
1099
  }
1089
1100
  ));
@@ -1091,9 +1102,9 @@ Slider.displayName = SliderPrimitive.Root.displayName;
1091
1102
 
1092
1103
  // src/components/sonner.tsx
1093
1104
  import { Toaster as Sonner, toast } from "sonner";
1094
- import { jsx as jsx27 } from "react/jsx-runtime";
1105
+ import { jsx as jsx28 } from "react/jsx-runtime";
1095
1106
  function Toaster({ theme = "system", ...props }) {
1096
- return /* @__PURE__ */ jsx27(
1107
+ return /* @__PURE__ */ jsx28(
1097
1108
  Sonner,
1098
1109
  {
1099
1110
  theme,
@@ -1114,8 +1125,8 @@ function Toaster({ theme = "system", ...props }) {
1114
1125
  // src/components/switch.tsx
1115
1126
  import * as React25 from "react";
1116
1127
  import * as SwitchPrimitive from "@radix-ui/react-switch";
1117
- import { jsx as jsx28 } from "react/jsx-runtime";
1118
- var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1128
+ import { jsx as jsx29 } from "react/jsx-runtime";
1129
+ var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
1119
1130
  SwitchPrimitive.Root,
1120
1131
  {
1121
1132
  ref,
@@ -1127,7 +1138,7 @@ var Switch = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
1127
1138
  className
1128
1139
  ),
1129
1140
  ...props,
1130
- children: /* @__PURE__ */ jsx28(
1141
+ children: /* @__PURE__ */ jsx29(
1131
1142
  SwitchPrimitive.Thumb,
1132
1143
  {
1133
1144
  className: cn(
@@ -1145,7 +1156,7 @@ import * as React26 from "react";
1145
1156
  import { Slot as Slot4, Slottable } from "@radix-ui/react-slot";
1146
1157
  import { cva as cva8 } from "class-variance-authority";
1147
1158
  import { X as X4 } from "lucide-react";
1148
- import { jsx as jsx29, jsxs as jsxs13 } from "react/jsx-runtime";
1159
+ import { jsx as jsx30, jsxs as jsxs13 } from "react/jsx-runtime";
1149
1160
  var tagVariants = cva8(
1150
1161
  "inline-flex items-center gap-1 rounded-sm px-2 py-1 text-xs font-medium font-sans tracking-[0.5px]",
1151
1162
  {
@@ -1164,18 +1175,18 @@ var tagVariants = cva8(
1164
1175
  var Tag = React26.forwardRef(
1165
1176
  ({ className, variant, onRemove, children, asChild = false, ...props }, ref) => {
1166
1177
  const Comp = asChild ? Slot4 : "span";
1167
- const removeButton = onRemove && /* @__PURE__ */ jsx29(
1178
+ const removeButton = onRemove && /* @__PURE__ */ jsx30(
1168
1179
  "button",
1169
1180
  {
1170
1181
  type: "button",
1171
1182
  onClick: onRemove,
1172
1183
  "aria-label": "Remove",
1173
1184
  className: "-mr-0.5 ml-0.5 rounded-[2px] opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:ring-1 focus-visible:ring-current",
1174
- children: /* @__PURE__ */ jsx29(X4, { className: "size-3.5" })
1185
+ children: /* @__PURE__ */ jsx30(X4, { className: "size-3.5" })
1175
1186
  }
1176
1187
  );
1177
1188
  return /* @__PURE__ */ jsxs13(Comp, { ref, className: cn(tagVariants({ variant }), className), ...props, children: [
1178
- asChild ? /* @__PURE__ */ jsx29(Slottable, { children }) : children,
1189
+ asChild ? /* @__PURE__ */ jsx30(Slottable, { children }) : children,
1179
1190
  removeButton
1180
1191
  ] });
1181
1192
  }
@@ -1184,25 +1195,25 @@ Tag.displayName = "Tag";
1184
1195
 
1185
1196
  // src/components/table.tsx
1186
1197
  import * as React27 from "react";
1187
- import { jsx as jsx30 } from "react/jsx-runtime";
1198
+ import { jsx as jsx31 } from "react/jsx-runtime";
1188
1199
  var Table = React27.forwardRef(
1189
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx30("table", { ref, className: cn("w-full caption-bottom text-sm font-sans", className), ...props }) })
1200
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx31("table", { ref, className: cn("w-full caption-bottom text-sm font-sans", className), ...props }) })
1190
1201
  );
1191
1202
  Table.displayName = "Table";
1192
1203
  var TableHeader = React27.forwardRef(
1193
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
1204
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
1194
1205
  );
1195
1206
  TableHeader.displayName = "TableHeader";
1196
1207
  var TableBody = React27.forwardRef(
1197
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
1208
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
1198
1209
  );
1199
1210
  TableBody.displayName = "TableBody";
1200
1211
  var TableFooter = React27.forwardRef(
1201
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
1212
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
1202
1213
  );
1203
1214
  TableFooter.displayName = "TableFooter";
1204
1215
  var TableRow = React27.forwardRef(
1205
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
1216
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1206
1217
  "tr",
1207
1218
  {
1208
1219
  ref,
@@ -1213,7 +1224,7 @@ var TableRow = React27.forwardRef(
1213
1224
  );
1214
1225
  TableRow.displayName = "TableRow";
1215
1226
  var TableHead = React27.forwardRef(
1216
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
1227
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1217
1228
  "th",
1218
1229
  {
1219
1230
  ref,
@@ -1224,20 +1235,20 @@ var TableHead = React27.forwardRef(
1224
1235
  );
1225
1236
  TableHead.displayName = "TableHead";
1226
1237
  var TableCell = React27.forwardRef(
1227
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("td", { ref, className: cn("p-2 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
1238
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("td", { ref, className: cn("p-2 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
1228
1239
  );
1229
1240
  TableCell.displayName = "TableCell";
1230
1241
  var TableCaption = React27.forwardRef(
1231
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx30("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
1242
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx31("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
1232
1243
  );
1233
1244
  TableCaption.displayName = "TableCaption";
1234
1245
 
1235
1246
  // src/components/tabs.tsx
1236
1247
  import * as React28 from "react";
1237
1248
  import * as TabsPrimitive from "@radix-ui/react-tabs";
1238
- import { jsx as jsx31 } from "react/jsx-runtime";
1249
+ import { jsx as jsx32 } from "react/jsx-runtime";
1239
1250
  var Tabs = TabsPrimitive.Root;
1240
- var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1251
+ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1241
1252
  TabsPrimitive.List,
1242
1253
  {
1243
1254
  ref,
@@ -1249,7 +1260,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1249
1260
  }
1250
1261
  ));
1251
1262
  TabsList.displayName = TabsPrimitive.List.displayName;
1252
- var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1263
+ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1253
1264
  TabsPrimitive.Trigger,
1254
1265
  {
1255
1266
  ref,
@@ -1264,7 +1275,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
1264
1275
  }
1265
1276
  ));
1266
1277
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1267
- var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1278
+ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1268
1279
  TabsPrimitive.Content,
1269
1280
  {
1270
1281
  ref,
@@ -1278,7 +1289,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
1278
1289
  import * as React29 from "react";
1279
1290
  import * as TogglePrimitive from "@radix-ui/react-toggle";
1280
1291
  import { cva as cva9 } from "class-variance-authority";
1281
- import { jsx as jsx32 } from "react/jsx-runtime";
1292
+ import { jsx as jsx33 } from "react/jsx-runtime";
1282
1293
  var toggleVariants = cva9(
1283
1294
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium font-sans 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-disabled data-[state=on]:bg-accent data-[state=on]:text-accent-foreground data-[state=on]:ring-1 data-[state=on]:ring-inset data-[state=on]:ring-ring [&_svg]:size-4 [&_svg]:shrink-0",
1284
1295
  {
@@ -1296,22 +1307,22 @@ var toggleVariants = cva9(
1296
1307
  defaultVariants: { variant: "default", size: "default" }
1297
1308
  }
1298
1309
  );
1299
- var Toggle = React29.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx32(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size }), className), ...props }));
1310
+ var Toggle = React29.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx33(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size }), className), ...props }));
1300
1311
  Toggle.displayName = TogglePrimitive.Root.displayName;
1301
1312
 
1302
1313
  // src/components/toggle-group.tsx
1303
1314
  import * as React30 from "react";
1304
1315
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
1305
- import { jsx as jsx33 } from "react/jsx-runtime";
1316
+ import { jsx as jsx34 } from "react/jsx-runtime";
1306
1317
  var ToggleGroupContext = React30.createContext({
1307
1318
  size: "default",
1308
1319
  variant: "default"
1309
1320
  });
1310
- var ToggleGroup = React30.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx33(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center gap-1", className), ...props, children: /* @__PURE__ */ jsx33(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
1321
+ var ToggleGroup = React30.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx34(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center gap-1", className), ...props, children: /* @__PURE__ */ jsx34(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
1311
1322
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
1312
1323
  var ToggleGroupItem = React30.forwardRef(({ className, children, variant, size, ...props }, ref) => {
1313
1324
  const ctx = React30.useContext(ToggleGroupContext);
1314
- return /* @__PURE__ */ jsx33(
1325
+ return /* @__PURE__ */ jsx34(
1315
1326
  ToggleGroupPrimitive.Item,
1316
1327
  {
1317
1328
  ref,
@@ -1326,11 +1337,11 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
1326
1337
  // src/components/tooltip.tsx
1327
1338
  import * as React31 from "react";
1328
1339
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
1329
- import { jsx as jsx34 } from "react/jsx-runtime";
1340
+ import { jsx as jsx35 } from "react/jsx-runtime";
1330
1341
  var TooltipProvider = TooltipPrimitive.Provider;
1331
1342
  var Tooltip = TooltipPrimitive.Root;
1332
1343
  var TooltipTrigger = TooltipPrimitive.Trigger;
1333
- var TooltipContent = React31.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx34(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx34(
1344
+ var TooltipContent = React31.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx35(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx35(
1334
1345
  TooltipPrimitive.Content,
1335
1346
  {
1336
1347
  ref,
@@ -1349,9 +1360,9 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
1349
1360
  // src/components/calendar.tsx
1350
1361
  import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight4 } from "lucide-react";
1351
1362
  import { DayPicker } from "react-day-picker";
1352
- import { jsx as jsx35 } from "react/jsx-runtime";
1363
+ import { jsx as jsx36 } from "react/jsx-runtime";
1353
1364
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1354
- return /* @__PURE__ */ jsx35(
1365
+ return /* @__PURE__ */ jsx36(
1355
1366
  DayPicker,
1356
1367
  {
1357
1368
  showOutsideDays,
@@ -1400,7 +1411,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1400
1411
  ...classNames
1401
1412
  },
1402
1413
  components: {
1403
- Chevron: ({ orientation, className: chevronClassName }) => orientation === "right" ? /* @__PURE__ */ jsx35(ChevronRight4, { className: cn("size-4", chevronClassName) }) : /* @__PURE__ */ jsx35(ChevronLeft2, { className: cn("size-4", chevronClassName) })
1414
+ Chevron: ({ orientation, className: chevronClassName }) => orientation === "right" ? /* @__PURE__ */ jsx36(ChevronRight4, { className: cn("size-4", chevronClassName) }) : /* @__PURE__ */ jsx36(ChevronLeft2, { className: cn("size-4", chevronClassName) })
1404
1415
  },
1405
1416
  ...props
1406
1417
  }
@@ -1412,7 +1423,7 @@ Calendar.displayName = "Calendar";
1412
1423
  import * as React32 from "react";
1413
1424
  import useEmblaCarousel from "embla-carousel-react";
1414
1425
  import { ArrowLeft, ArrowRight } from "lucide-react";
1415
- import { jsx as jsx36, jsxs as jsxs14 } from "react/jsx-runtime";
1426
+ import { jsx as jsx37, jsxs as jsxs14 } from "react/jsx-runtime";
1416
1427
  var CarouselContext = React32.createContext(null);
1417
1428
  function useCarousel() {
1418
1429
  const context = React32.useContext(CarouselContext);
@@ -1445,11 +1456,11 @@ var Carousel = React32.forwardRef(({ orientation = "horizontal", opts, setApi, p
1445
1456
  api?.off("select", onSelect);
1446
1457
  };
1447
1458
  }, [api, onSelect]);
1448
- return /* @__PURE__ */ jsx36(
1459
+ return /* @__PURE__ */ jsx37(
1449
1460
  CarouselContext.Provider,
1450
1461
  {
1451
1462
  value: { carouselRef, api, opts, orientation, scrollPrev, scrollNext, canScrollPrev, canScrollNext },
1452
- children: /* @__PURE__ */ jsx36(
1463
+ children: /* @__PURE__ */ jsx37(
1453
1464
  "div",
1454
1465
  {
1455
1466
  ref,
@@ -1476,7 +1487,7 @@ Carousel.displayName = "Carousel";
1476
1487
  var CarouselContent = React32.forwardRef(
1477
1488
  ({ className, ...props }, ref) => {
1478
1489
  const { carouselRef, orientation } = useCarousel();
1479
- return /* @__PURE__ */ jsx36("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx36(
1490
+ return /* @__PURE__ */ jsx37("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx37(
1480
1491
  "div",
1481
1492
  {
1482
1493
  ref,
@@ -1490,7 +1501,7 @@ CarouselContent.displayName = "CarouselContent";
1490
1501
  var CarouselItem = React32.forwardRef(
1491
1502
  ({ className, ...props }, ref) => {
1492
1503
  const { orientation } = useCarousel();
1493
- return /* @__PURE__ */ jsx36(
1504
+ return /* @__PURE__ */ jsx37(
1494
1505
  "div",
1495
1506
  {
1496
1507
  ref,
@@ -1521,8 +1532,8 @@ var CarouselPrevious = React32.forwardRef(
1521
1532
  onClick: scrollPrev,
1522
1533
  ...props,
1523
1534
  children: [
1524
- /* @__PURE__ */ jsx36(ArrowLeft, { className: "size-4" }),
1525
- /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Previous slide" })
1535
+ /* @__PURE__ */ jsx37(ArrowLeft, { className: "size-4" }),
1536
+ /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Previous slide" })
1526
1537
  ]
1527
1538
  }
1528
1539
  );
@@ -1547,8 +1558,8 @@ var CarouselNext = React32.forwardRef(
1547
1558
  onClick: scrollNext,
1548
1559
  ...props,
1549
1560
  children: [
1550
- /* @__PURE__ */ jsx36(ArrowRight, { className: "size-4" }),
1551
- /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Next slide" })
1561
+ /* @__PURE__ */ jsx37(ArrowRight, { className: "size-4" }),
1562
+ /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Next slide" })
1552
1563
  ]
1553
1564
  }
1554
1565
  );
@@ -1559,7 +1570,7 @@ CarouselNext.displayName = "CarouselNext";
1559
1570
  // src/components/chart.tsx
1560
1571
  import * as React33 from "react";
1561
1572
  import * as RechartsPrimitive from "recharts";
1562
- import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
1573
+ import { jsx as jsx38, jsxs as jsxs15 } from "react/jsx-runtime";
1563
1574
  var THEMES = { light: "", dark: ".dark" };
1564
1575
  var ChartContext = React33.createContext(null);
1565
1576
  function useChart() {
@@ -1604,7 +1615,7 @@ var ChartContainer = React33.forwardRef(({
1604
1615
  mo.observe(el, { childList: true, subtree: true });
1605
1616
  return () => mo.disconnect();
1606
1617
  }, [name]);
1607
- return /* @__PURE__ */ jsx37(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs15(
1618
+ return /* @__PURE__ */ jsx38(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs15(
1608
1619
  "div",
1609
1620
  {
1610
1621
  "data-chart": chartId,
@@ -1617,9 +1628,9 @@ var ChartContainer = React33.forwardRef(({
1617
1628
  ),
1618
1629
  ...props,
1619
1630
  children: [
1620
- /* @__PURE__ */ jsx37(ChartStyle, { id: chartId, config }),
1621
- state ? /* @__PURE__ */ jsx37(ChartState, { state, message: stateMessage }) : /* @__PURE__ */ jsx37(RechartsPrimitive.ResponsiveContainer, { children }),
1622
- srTable && !state ? /* @__PURE__ */ jsx37(ChartSrTable, { ...srTable }) : null
1631
+ /* @__PURE__ */ jsx38(ChartStyle, { id: chartId, config }),
1632
+ state ? /* @__PURE__ */ jsx38(ChartState, { state, message: stateMessage }) : /* @__PURE__ */ jsx38(RechartsPrimitive.ResponsiveContainer, { children }),
1633
+ srTable && !state ? /* @__PURE__ */ jsx38(ChartSrTable, { ...srTable }) : null
1623
1634
  ]
1624
1635
  }
1625
1636
  ) });
@@ -1643,15 +1654,15 @@ function ChartState({
1643
1654
  state === "error" ? "border-destructive/40 text-destructive" : "border-border text-muted-foreground"
1644
1655
  ),
1645
1656
  children: [
1646
- state === "loading" ? /* @__PURE__ */ jsx37("div", { "aria-hidden": true, className: "flex w-full max-w-[220px] items-end justify-between gap-1.5", children: [40, 72, 56, 88, 48, 64, 80].map((h, i) => /* @__PURE__ */ jsx37(
1657
+ state === "loading" ? /* @__PURE__ */ jsx38("div", { "aria-hidden": true, className: "flex w-full max-w-[220px] items-end justify-between gap-1.5", children: [40, 72, 56, 88, 48, 64, 80].map((h, i) => /* @__PURE__ */ jsx38(
1647
1658
  "span",
1648
1659
  {
1649
1660
  className: "w-full animate-pulse rounded-sm bg-muted",
1650
1661
  style: { height: `${h}px`, animationDelay: `${i * 90}ms` }
1651
1662
  },
1652
1663
  i
1653
- )) }) : /* @__PURE__ */ jsx37("svg", { "aria-hidden": true, viewBox: "0 0 24 24", className: "size-5", fill: "none", stroke: "currentColor", strokeWidth: 1.5, children: state === "empty" ? /* @__PURE__ */ jsx37("path", { d: "M3 3v18h18M7 15l4-4 3 3 5-6", strokeLinecap: "round", strokeLinejoin: "round" }) : /* @__PURE__ */ jsx37("path", { d: "M12 9v4m0 4h.01M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.7 3.86a2 2 0 0 0-3.42 0Z", strokeLinecap: "round", strokeLinejoin: "round" }) }),
1654
- /* @__PURE__ */ jsx37("span", { children: message ?? STATE_COPY[state] })
1664
+ )) }) : /* @__PURE__ */ jsx38("svg", { "aria-hidden": true, viewBox: "0 0 24 24", className: "size-5", fill: "none", stroke: "currentColor", strokeWidth: 1.5, children: state === "empty" ? /* @__PURE__ */ jsx38("path", { d: "M3 3v18h18M7 15l4-4 3 3 5-6", strokeLinecap: "round", strokeLinejoin: "round" }) : /* @__PURE__ */ jsx38("path", { d: "M12 9v4m0 4h.01M10.3 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.7 3.86a2 2 0 0 0-3.42 0Z", strokeLinecap: "round", strokeLinejoin: "round" }) }),
1665
+ /* @__PURE__ */ jsx38("span", { children: message ?? STATE_COPY[state] })
1655
1666
  ]
1656
1667
  }
1657
1668
  );
@@ -1661,8 +1672,8 @@ function ChartSrTable({
1661
1672
  rows
1662
1673
  }) {
1663
1674
  return /* @__PURE__ */ jsxs15("table", { className: "sr-only", children: [
1664
- /* @__PURE__ */ jsx37("thead", { children: /* @__PURE__ */ jsx37("tr", { children: columns.map((c, i) => /* @__PURE__ */ jsx37("th", { scope: "col", children: c }, i)) }) }),
1665
- /* @__PURE__ */ jsx37("tbody", { children: rows.map((r, i) => /* @__PURE__ */ jsx37("tr", { children: r.map((cell, j) => /* @__PURE__ */ jsx37("td", { children: cell }, j)) }, i)) })
1675
+ /* @__PURE__ */ jsx38("thead", { children: /* @__PURE__ */ jsx38("tr", { children: columns.map((c, i) => /* @__PURE__ */ jsx38("th", { scope: "col", children: c }, i)) }) }),
1676
+ /* @__PURE__ */ jsx38("tbody", { children: rows.map((r, i) => /* @__PURE__ */ jsx38("tr", { children: r.map((cell, j) => /* @__PURE__ */ jsx38("td", { children: cell }, j)) }, i)) })
1666
1677
  ] });
1667
1678
  }
1668
1679
  var cssIdent = (s) => String(s).replace(/[^\w-]/g, "");
@@ -1671,7 +1682,7 @@ var ChartStyle = ({ id, config }) => {
1671
1682
  const colorConfig = Object.entries(config).filter(([, c]) => c.theme || c.color);
1672
1683
  if (!colorConfig.length) return null;
1673
1684
  const chartSelector = cssIdent(id);
1674
- return /* @__PURE__ */ jsx37(
1685
+ return /* @__PURE__ */ jsx38(
1675
1686
  "style",
1676
1687
  {
1677
1688
  dangerouslySetInnerHTML: {
@@ -1704,13 +1715,13 @@ var ChartTooltipContent = React33.forwardRef(
1704
1715
  className
1705
1716
  ),
1706
1717
  children: [
1707
- !hideLabel && /* @__PURE__ */ jsx37("div", { className: "font-medium", children: labelFormatter ? labelFormatter(label, payload) : label }),
1708
- /* @__PURE__ */ jsx37("div", { className: "grid gap-1.5", children: payload.map((item, i) => {
1718
+ !hideLabel && /* @__PURE__ */ jsx38("div", { className: "font-medium", children: labelFormatter ? labelFormatter(label, payload) : label }),
1719
+ /* @__PURE__ */ jsx38("div", { className: "grid gap-1.5", children: payload.map((item, i) => {
1709
1720
  const key = `${item.name || item.dataKey || "value"}`;
1710
1721
  const itemConfig = config[key];
1711
1722
  const indicatorColor = item.payload?.fill || item.color;
1712
1723
  return /* @__PURE__ */ jsxs15("div", { className: "flex w-full items-center gap-2", children: [
1713
- !hideIndicator && /* @__PURE__ */ jsx37(
1724
+ !hideIndicator && /* @__PURE__ */ jsx38(
1714
1725
  "div",
1715
1726
  {
1716
1727
  className: cn("shrink-0 rounded-[2px]", {
@@ -1722,8 +1733,8 @@ var ChartTooltipContent = React33.forwardRef(
1722
1733
  }
1723
1734
  ),
1724
1735
  /* @__PURE__ */ jsxs15("div", { className: "flex flex-1 justify-between leading-none", children: [
1725
- /* @__PURE__ */ jsx37("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name }),
1726
- item.value != null && /* @__PURE__ */ jsx37("span", { className: "font-mono font-medium tabular-nums text-foreground", children: formatter ? formatter(item.value, item.name, item, i, payload) : item.value.toLocaleString() })
1736
+ /* @__PURE__ */ jsx38("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name }),
1737
+ item.value != null && /* @__PURE__ */ jsx38("span", { className: "font-mono font-medium tabular-nums text-foreground", children: formatter ? formatter(item.value, item.name, item, i, payload) : item.value.toLocaleString() })
1727
1738
  ] })
1728
1739
  ] }, key + i);
1729
1740
  }) })
@@ -1737,7 +1748,7 @@ var ChartLegend = RechartsPrimitive.Legend;
1737
1748
  var ChartLegendContent = React33.forwardRef(({ className, payload, verticalAlign = "bottom" }, ref) => {
1738
1749
  const { config } = useChart();
1739
1750
  if (!payload?.length) return null;
1740
- return /* @__PURE__ */ jsx37(
1751
+ return /* @__PURE__ */ jsx38(
1741
1752
  "div",
1742
1753
  {
1743
1754
  ref,
@@ -1746,7 +1757,7 @@ var ChartLegendContent = React33.forwardRef(({ className, payload, verticalAlign
1746
1757
  const key = `${item.dataKey || "value"}`;
1747
1758
  const itemConfig = config[key];
1748
1759
  return /* @__PURE__ */ jsxs15("div", { className: "flex items-center gap-1.5", children: [
1749
- /* @__PURE__ */ jsx37("div", { className: "size-2 shrink-0 rounded-[2px]", style: { backgroundColor: item.color } }),
1760
+ /* @__PURE__ */ jsx38("div", { className: "size-2 shrink-0 rounded-[2px]", style: { backgroundColor: item.color } }),
1750
1761
  itemConfig?.label || item.value
1751
1762
  ] }, item.value);
1752
1763
  })
@@ -1759,8 +1770,8 @@ ChartLegendContent.displayName = "ChartLegendContent";
1759
1770
  import * as React34 from "react";
1760
1771
  import { Command as CommandPrimitive } from "cmdk";
1761
1772
  import { Search } from "lucide-react";
1762
- import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
1763
- var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1773
+ import { jsx as jsx39, jsxs as jsxs16 } from "react/jsx-runtime";
1774
+ var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1764
1775
  CommandPrimitive,
1765
1776
  {
1766
1777
  ref,
@@ -1772,10 +1783,10 @@ var Command = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1772
1783
  }
1773
1784
  ));
1774
1785
  Command.displayName = CommandPrimitive.displayName;
1775
- var CommandDialog = ({ children, ...props }) => /* @__PURE__ */ jsx38(Dialog, { ...props, children: /* @__PURE__ */ jsx38(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx38(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5", children }) }) });
1786
+ var CommandDialog = ({ children, ...props }) => /* @__PURE__ */ jsx39(Dialog, { ...props, children: /* @__PURE__ */ jsx39(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx39(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:size-5", children }) }) });
1776
1787
  var CommandInput = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1777
- /* @__PURE__ */ jsx38(Search, { className: "mr-2 size-4 shrink-0 opacity-50" }),
1778
- /* @__PURE__ */ jsx38(
1788
+ /* @__PURE__ */ jsx39(Search, { className: "mr-2 size-4 shrink-0 opacity-50" }),
1789
+ /* @__PURE__ */ jsx39(
1779
1790
  CommandPrimitive.Input,
1780
1791
  {
1781
1792
  ref,
@@ -1788,7 +1799,7 @@ var CommandInput = React34.forwardRef(({ className, ...props }, ref) => /* @__PU
1788
1799
  )
1789
1800
  ] }));
1790
1801
  CommandInput.displayName = CommandPrimitive.Input.displayName;
1791
- var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1802
+ var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1792
1803
  CommandPrimitive.List,
1793
1804
  {
1794
1805
  ref,
@@ -1797,9 +1808,9 @@ var CommandList = React34.forwardRef(({ className, ...props }, ref) => /* @__PUR
1797
1808
  }
1798
1809
  ));
1799
1810
  CommandList.displayName = CommandPrimitive.List.displayName;
1800
- var CommandEmpty = React34.forwardRef((props, ref) => /* @__PURE__ */ jsx38(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
1811
+ var CommandEmpty = React34.forwardRef((props, ref) => /* @__PURE__ */ jsx39(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
1801
1812
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
1802
- var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1813
+ var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1803
1814
  CommandPrimitive.Group,
1804
1815
  {
1805
1816
  ref,
@@ -1811,9 +1822,9 @@ var CommandGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PU
1811
1822
  }
1812
1823
  ));
1813
1824
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
1814
- var CommandSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
1825
+ var CommandSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
1815
1826
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
1816
- var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1827
+ var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1817
1828
  CommandPrimitive.Item,
1818
1829
  {
1819
1830
  ref,
@@ -1825,14 +1836,14 @@ var CommandItem = React34.forwardRef(({ className, ...props }, ref) => /* @__PUR
1825
1836
  }
1826
1837
  ));
1827
1838
  CommandItem.displayName = CommandPrimitive.Item.displayName;
1828
- var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx38("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
1839
+ var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
1829
1840
  CommandShortcut.displayName = "CommandShortcut";
1830
1841
 
1831
1842
  // src/components/context-menu.tsx
1832
1843
  import * as React35 from "react";
1833
1844
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1834
1845
  import { Check as Check4, ChevronRight as ChevronRight5, Circle as Circle3 } from "lucide-react";
1835
- import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
1846
+ import { jsx as jsx40, jsxs as jsxs17 } from "react/jsx-runtime";
1836
1847
  var ContextMenu = ContextMenuPrimitive.Root;
1837
1848
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1838
1849
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -1849,28 +1860,28 @@ var ContextMenuSubTrigger = React35.forwardRef(({ className, inset, children, ..
1849
1860
  ...props,
1850
1861
  children: [
1851
1862
  children,
1852
- /* @__PURE__ */ jsx39(ChevronRight5, { className: "ml-auto size-4" })
1863
+ /* @__PURE__ */ jsx40(ChevronRight5, { className: "ml-auto size-4" })
1853
1864
  ]
1854
1865
  }
1855
1866
  ));
1856
1867
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1857
- var ContextMenuSubContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.SubContent, { ref, className: cn(contentCls2, className), ...props }));
1868
+ var ContextMenuSubContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.SubContent, { ref, className: cn(contentCls2, className), ...props }));
1858
1869
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1859
- var ContextMenuContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.Content, { ref, className: cn(contentCls2, className), ...props }) }));
1870
+ var ContextMenuContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.Content, { ref, className: cn(contentCls2, className), ...props }) }));
1860
1871
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1861
- var ContextMenuItem = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Item, { ref, className: cn(itemCls2, inset && "pl-8", className), ...props }));
1872
+ var ContextMenuItem = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Item, { ref, className: cn(itemCls2, inset && "pl-8", className), ...props }));
1862
1873
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1863
1874
  var ContextMenuCheckboxItem = React35.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemCls2, "pl-8", className), checked, ...props, children: [
1864
- /* @__PURE__ */ jsx39("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx39(Check4, { className: "size-4" }) }) }),
1875
+ /* @__PURE__ */ jsx40("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx40(Check4, { className: "size-4" }) }) }),
1865
1876
  children
1866
1877
  ] }));
1867
1878
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1868
1879
  var ContextMenuRadioItem = React35.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemCls2, "pl-8", className), ...props, children: [
1869
- /* @__PURE__ */ jsx39("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx39(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx39(Circle3, { className: "size-2 fill-current" }) }) }),
1880
+ /* @__PURE__ */ jsx40("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx40(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx40(Circle3, { className: "size-2 fill-current" }) }) }),
1870
1881
  children
1871
1882
  ] }));
1872
1883
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1873
- var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx39(
1884
+ var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx40(
1874
1885
  ContextMenuPrimitive.Label,
1875
1886
  {
1876
1887
  ref,
@@ -1879,9 +1890,9 @@ var ContextMenuLabel = React35.forwardRef(({ className, inset, ...props }, ref)
1879
1890
  }
1880
1891
  ));
1881
1892
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1882
- var ContextMenuSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
1893
+ var ContextMenuSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
1883
1894
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
1884
- var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
1895
+ var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx40("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
1885
1896
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1886
1897
 
1887
1898
  // src/components/data-table.tsx
@@ -1896,7 +1907,7 @@ import {
1896
1907
  tableFeatures,
1897
1908
  useTable
1898
1909
  } from "@tanstack/react-table";
1899
- import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
1910
+ import { jsx as jsx41, jsxs as jsxs18 } from "react/jsx-runtime";
1900
1911
  var features = tableFeatures({
1901
1912
  rowSortingFeature,
1902
1913
  rowPaginationFeature,
@@ -1920,13 +1931,13 @@ function DataTable({
1920
1931
  initialState: { pagination: { pageIndex: 0, pageSize } }
1921
1932
  });
1922
1933
  return /* @__PURE__ */ jsxs18("div", { className: cn("space-y-3", className), children: [
1923
- /* @__PURE__ */ jsx40("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs18(Table, { children: [
1924
- /* @__PURE__ */ jsx40(TableHeader, { children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx40(TableRow, { children: hg.headers.map((header) => /* @__PURE__ */ jsx40(TableHead, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }, hg.id)) }),
1925
- /* @__PURE__ */ jsx40(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx40(TableRow, { children: row.getAllCells().map((cell) => /* @__PURE__ */ jsx40(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx40(TableRow, { children: /* @__PURE__ */ jsx40(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) })
1934
+ /* @__PURE__ */ jsx41("div", { className: "rounded-md border", children: /* @__PURE__ */ jsxs18(Table, { children: [
1935
+ /* @__PURE__ */ jsx41(TableHeader, { children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx41(TableRow, { children: hg.headers.map((header) => /* @__PURE__ */ jsx41(TableHead, { children: header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext()) }, header.id)) }, hg.id)) }),
1936
+ /* @__PURE__ */ jsx41(TableBody, { children: table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx41(TableRow, { children: row.getAllCells().map((cell) => /* @__PURE__ */ jsx41(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id)) }, row.id)) : /* @__PURE__ */ jsx41(TableRow, { children: /* @__PURE__ */ jsx41(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) })
1926
1937
  ] }) }),
1927
1938
  /* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-end gap-2", children: [
1928
- /* @__PURE__ */ jsx40(Button, { variant: "Outline", size: "sm", onClick: () => table.previousPage(), disabled: !table.getCanPreviousPage(), children: "Previous" }),
1929
- /* @__PURE__ */ jsx40(Button, { variant: "Outline", size: "sm", onClick: () => table.nextPage(), disabled: !table.getCanNextPage(), children: "Next" })
1939
+ /* @__PURE__ */ jsx41(Button, { variant: "Outline", size: "sm", onClick: () => table.previousPage(), disabled: !table.getCanPreviousPage(), children: "Previous" }),
1940
+ /* @__PURE__ */ jsx41(Button, { variant: "Outline", size: "sm", onClick: () => table.nextPage(), disabled: !table.getCanNextPage(), children: "Next" })
1930
1941
  ] })
1931
1942
  ] });
1932
1943
  }
@@ -1934,16 +1945,16 @@ function DataTable({
1934
1945
  // src/components/drawer.tsx
1935
1946
  import * as React37 from "react";
1936
1947
  import { Drawer as DrawerPrimitive } from "vaul";
1937
- import { jsx as jsx41, jsxs as jsxs19 } from "react/jsx-runtime";
1938
- var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ jsx41(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
1948
+ import { jsx as jsx42, jsxs as jsxs19 } from "react/jsx-runtime";
1949
+ var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ jsx42(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
1939
1950
  Drawer.displayName = "Drawer";
1940
1951
  var DrawerTrigger = DrawerPrimitive.Trigger;
1941
1952
  var DrawerPortal = DrawerPrimitive.Portal;
1942
1953
  var DrawerClose = DrawerPrimitive.Close;
1943
- var DrawerOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Overlay, { ref, className: cn("fixed inset-0 z-overlay bg-foreground/40", className), ...props }));
1954
+ var DrawerOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Overlay, { ref, className: cn("fixed inset-0 z-overlay bg-foreground/40", className), ...props }));
1944
1955
  DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
1945
1956
  var DrawerContent = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(DrawerPortal, { children: [
1946
- /* @__PURE__ */ jsx41(DrawerOverlay, {}),
1957
+ /* @__PURE__ */ jsx42(DrawerOverlay, {}),
1947
1958
  /* @__PURE__ */ jsxs19(
1948
1959
  DrawerPrimitive.Content,
1949
1960
  {
@@ -1954,20 +1965,20 @@ var DrawerContent = React37.forwardRef(({ className, children, ...props }, ref)
1954
1965
  ),
1955
1966
  ...props,
1956
1967
  children: [
1957
- /* @__PURE__ */ jsx41("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
1968
+ /* @__PURE__ */ jsx42("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
1958
1969
  children
1959
1970
  ]
1960
1971
  }
1961
1972
  )
1962
1973
  ] }));
1963
1974
  DrawerContent.displayName = "DrawerContent";
1964
- var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx41("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props });
1975
+ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx42("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-start", className), ...props });
1965
1976
  DrawerHeader.displayName = "DrawerHeader";
1966
- var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx41("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
1977
+ var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx42("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
1967
1978
  DrawerFooter.displayName = "DrawerFooter";
1968
- var DrawerTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
1979
+ var DrawerTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Title, { ref, className: cn("text-lg font-semibold leading-none tracking-tight", className), ...props }));
1969
1980
  DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
1970
- var DrawerDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(DrawerPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
1981
+ var DrawerDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(DrawerPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
1971
1982
  DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
1972
1983
 
1973
1984
  // src/components/field.tsx
@@ -1975,7 +1986,7 @@ import * as React38 from "react";
1975
1986
  import { Slot as Slot5 } from "@radix-ui/react-slot";
1976
1987
  import { CircleAlert, CircleCheck, Info, TriangleAlert } from "lucide-react";
1977
1988
  import { cva as cva10 } from "class-variance-authority";
1978
- import { jsx as jsx42, jsxs as jsxs20 } from "react/jsx-runtime";
1989
+ import { jsx as jsx43, jsxs as jsxs20 } from "react/jsx-runtime";
1979
1990
  var FieldContext = React38.createContext(null);
1980
1991
  function useField() {
1981
1992
  const ctx = React38.useContext(FieldContext);
@@ -1989,19 +2000,19 @@ var Field = React38.forwardRef(
1989
2000
  () => ({ id: `${id}-control`, descriptionId: `${id}-description`, messageId: `${id}-message`, invalid }),
1990
2001
  [id, invalid]
1991
2002
  );
1992
- return /* @__PURE__ */ jsx42(FieldContext.Provider, { value, children: /* @__PURE__ */ jsx42("div", { ref, "data-invalid": invalid || void 0, className: cn("grid gap-1.5", className), ...props }) });
2003
+ return /* @__PURE__ */ jsx43(FieldContext.Provider, { value, children: /* @__PURE__ */ jsx43("div", { ref, "data-invalid": invalid || void 0, className: cn("grid gap-1.5", className), ...props }) });
1993
2004
  }
1994
2005
  );
1995
2006
  Field.displayName = "Field";
1996
2007
  var FieldLabel = React38.forwardRef(({ className, ...props }, ref) => {
1997
2008
  const { id, invalid } = useField();
1998
- return /* @__PURE__ */ jsx42(Label2, { ref, htmlFor: id, className: cn(invalid && "text-destructive", className), ...props });
2009
+ return /* @__PURE__ */ jsx43(Label2, { ref, htmlFor: id, className: cn(invalid && "text-destructive", className), ...props });
1999
2010
  });
2000
2011
  FieldLabel.displayName = "FieldLabel";
2001
2012
  var FieldControl = React38.forwardRef(
2002
2013
  ({ ...props }, ref) => {
2003
2014
  const { id, descriptionId, messageId, invalid } = useField();
2004
- return /* @__PURE__ */ jsx42(
2015
+ return /* @__PURE__ */ jsx43(
2005
2016
  Slot5,
2006
2017
  {
2007
2018
  ref,
@@ -2017,7 +2028,7 @@ FieldControl.displayName = "FieldControl";
2017
2028
  var FieldDescription = React38.forwardRef(
2018
2029
  ({ className, ...props }, ref) => {
2019
2030
  const { descriptionId } = useField();
2020
- return /* @__PURE__ */ jsx42("p", { ref, id: descriptionId, className: cn("text-body-sm text-muted-foreground", className), ...props });
2031
+ return /* @__PURE__ */ jsx43("p", { ref, id: descriptionId, className: cn("text-body-sm text-muted-foreground", className), ...props });
2021
2032
  }
2022
2033
  );
2023
2034
  FieldDescription.displayName = "FieldDescription";
@@ -2044,8 +2055,8 @@ var FieldMessage = React38.forwardRef(
2044
2055
  const Icon2 = INTENT_ICON[intent ?? "error"];
2045
2056
  if (!children) return null;
2046
2057
  return /* @__PURE__ */ jsxs20("p", { ref, id: messageId, className: cn(messageVariants({ intent }), className), ...props, children: [
2047
- !hideIcon && /* @__PURE__ */ jsx42(Icon2, {}),
2048
- /* @__PURE__ */ jsx42("span", { children })
2058
+ !hideIcon && /* @__PURE__ */ jsx43(Icon2, {}),
2059
+ /* @__PURE__ */ jsx43("span", { children })
2049
2060
  ] });
2050
2061
  }
2051
2062
  );
@@ -2060,12 +2071,12 @@ import {
2060
2071
  useFormContext,
2061
2072
  useFormState
2062
2073
  } from "react-hook-form";
2063
- import { jsx as jsx43 } from "react/jsx-runtime";
2074
+ import { jsx as jsx44 } from "react/jsx-runtime";
2064
2075
  var Form = FormProvider;
2065
2076
  var FormFieldContext = React39.createContext({});
2066
2077
  var FormField = ({
2067
2078
  ...props
2068
- }) => /* @__PURE__ */ jsx43(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx43(Controller, { ...props }) });
2079
+ }) => /* @__PURE__ */ jsx44(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx44(Controller, { ...props }) });
2069
2080
  var useFormField = () => {
2070
2081
  const fieldContext = React39.useContext(FormFieldContext);
2071
2082
  const itemContext = React39.useContext(FormItemContext);
@@ -2087,18 +2098,18 @@ var FormItemContext = React39.createContext({});
2087
2098
  var FormItem = React39.forwardRef(
2088
2099
  ({ className, ...props }, ref) => {
2089
2100
  const id = React39.useId();
2090
- return /* @__PURE__ */ jsx43(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx43("div", { ref, className: cn("grid gap-2", className), ...props }) });
2101
+ return /* @__PURE__ */ jsx44(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx44("div", { ref, className: cn("grid gap-2", className), ...props }) });
2091
2102
  }
2092
2103
  );
2093
2104
  FormItem.displayName = "FormItem";
2094
2105
  var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
2095
2106
  const { error, formItemId } = useFormField();
2096
- return /* @__PURE__ */ jsx43(Label2, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
2107
+ return /* @__PURE__ */ jsx44(Label2, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
2097
2108
  });
2098
2109
  FormLabel.displayName = "FormLabel";
2099
2110
  var FormControl = React39.forwardRef(({ ...props }, ref) => {
2100
2111
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2101
- return /* @__PURE__ */ jsx43(
2112
+ return /* @__PURE__ */ jsx44(
2102
2113
  Slot6,
2103
2114
  {
2104
2115
  ref,
@@ -2113,7 +2124,7 @@ FormControl.displayName = "FormControl";
2113
2124
  var FormDescription = React39.forwardRef(
2114
2125
  ({ className, ...props }, ref) => {
2115
2126
  const { formDescriptionId } = useFormField();
2116
- return /* @__PURE__ */ jsx43("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
2127
+ return /* @__PURE__ */ jsx44("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
2117
2128
  }
2118
2129
  );
2119
2130
  FormDescription.displayName = "FormDescription";
@@ -2122,7 +2133,7 @@ var FormMessage = React39.forwardRef(
2122
2133
  const { error, formMessageId } = useFormField();
2123
2134
  const body = error ? String(error?.message ?? "") : children;
2124
2135
  if (!body) return null;
2125
- return /* @__PURE__ */ jsx43("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
2136
+ return /* @__PURE__ */ jsx44("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
2126
2137
  }
2127
2138
  );
2128
2139
  FormMessage.displayName = "FormMessage";
@@ -2130,9 +2141,9 @@ FormMessage.displayName = "FormMessage";
2130
2141
  // src/components/input-group.tsx
2131
2142
  import * as React40 from "react";
2132
2143
  import { cva as cva11 } from "class-variance-authority";
2133
- import { jsx as jsx44 } from "react/jsx-runtime";
2144
+ import { jsx as jsx45 } from "react/jsx-runtime";
2134
2145
  var InputGroup = React40.forwardRef(
2135
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
2146
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
2136
2147
  "div",
2137
2148
  {
2138
2149
  ref,
@@ -2149,7 +2160,7 @@ var InputGroup = React40.forwardRef(
2149
2160
  )
2150
2161
  );
2151
2162
  InputGroup.displayName = "InputGroup";
2152
- var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }, ref) => /* @__PURE__ */ jsx44(
2163
+ var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }, ref) => /* @__PURE__ */ jsx45(
2153
2164
  "input",
2154
2165
  {
2155
2166
  ref,
@@ -2165,13 +2176,13 @@ var InputGroupInput = React40.forwardRef(({ className, type = "text", ...props }
2165
2176
  ));
2166
2177
  InputGroupInput.displayName = "InputGroupInput";
2167
2178
  var addonVariants = cva11("flex shrink-0 items-center gap-2 text-muted-foreground [&_svg]:size-4 [&_svg]:shrink-0", {
2168
- variants: { align: { start: "pl-3", end: "pr-3" } },
2179
+ variants: { align: { start: "ps-3", end: "pe-3" } },
2169
2180
  defaultVariants: { align: "start" }
2170
2181
  });
2171
- var InputGroupAddon = React40.forwardRef(({ className, align, ...props }, ref) => /* @__PURE__ */ jsx44("div", { ref, "data-slot": "input-group-addon", className: cn(addonVariants({ align }), className), ...props }));
2182
+ var InputGroupAddon = React40.forwardRef(({ className, align, ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, "data-slot": "input-group-addon", className: cn(addonVariants({ align }), className), ...props }));
2172
2183
  InputGroupAddon.displayName = "InputGroupAddon";
2173
2184
  var InputGroupText = React40.forwardRef(
2174
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
2185
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx45(
2175
2186
  "span",
2176
2187
  {
2177
2188
  ref,
@@ -2181,13 +2192,13 @@ var InputGroupText = React40.forwardRef(
2181
2192
  )
2182
2193
  );
2183
2194
  InputGroupText.displayName = "InputGroupText";
2184
- var InputGroupButton = React40.forwardRef(({ className, type = "button", ...props }, ref) => /* @__PURE__ */ jsx44(
2195
+ var InputGroupButton = React40.forwardRef(({ className, type = "button", ...props }, ref) => /* @__PURE__ */ jsx45(
2185
2196
  "button",
2186
2197
  {
2187
2198
  ref,
2188
2199
  type,
2189
2200
  className: cn(
2190
- "flex h-full shrink-0 items-center gap-1.5 self-stretch border-l border-input bg-muted px-3 text-label-md text-foreground",
2201
+ "flex h-full shrink-0 items-center gap-1.5 self-stretch border-s border-input bg-muted px-3 text-label-md text-foreground",
2191
2202
  // base is bg-muted and muted==accent on dark, so the fill is a no-op there — the ring carries it
2192
2203
  "outline-none transition-colors hover:bg-accent hover:ring-1 hover:ring-inset hover:ring-ring focus-visible:bg-accent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-disabled",
2193
2204
  "[&_svg]:size-4 [&_svg]:shrink-0",
@@ -2202,8 +2213,8 @@ InputGroupButton.displayName = "InputGroupButton";
2202
2213
  import * as React41 from "react";
2203
2214
  import { OTPInput, OTPInputContext } from "input-otp";
2204
2215
  import { Minus as Minus2 } from "lucide-react";
2205
- import { jsx as jsx45, jsxs as jsxs21 } from "react/jsx-runtime";
2206
- var InputOTP = React41.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx45(
2216
+ import { jsx as jsx46, jsxs as jsxs21 } from "react/jsx-runtime";
2217
+ var InputOTP = React41.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx46(
2207
2218
  OTPInput,
2208
2219
  {
2209
2220
  ref,
@@ -2214,7 +2225,7 @@ var InputOTP = React41.forwardRef(({ className, containerClassName, ...props },
2214
2225
  ));
2215
2226
  InputOTP.displayName = "InputOTP";
2216
2227
  var InputOTPGroup = React41.forwardRef(
2217
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, className: cn("flex items-center", className), ...props })
2228
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, className: cn("flex items-center", className), ...props })
2218
2229
  );
2219
2230
  InputOTPGroup.displayName = "InputOTPGroup";
2220
2231
  var InputOTPSlot = React41.forwardRef(({ index, className, ...props }, ref) => {
@@ -2232,26 +2243,26 @@ var InputOTPSlot = React41.forwardRef(({ index, className, ...props }, ref) => {
2232
2243
  ...props,
2233
2244
  children: [
2234
2245
  char,
2235
- hasFakeCaret && /* @__PURE__ */ jsx45("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx45("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-slower" }) })
2246
+ hasFakeCaret && /* @__PURE__ */ jsx46("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx46("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-slower" }) })
2236
2247
  ]
2237
2248
  }
2238
2249
  );
2239
2250
  });
2240
2251
  InputOTPSlot.displayName = "InputOTPSlot";
2241
2252
  var InputOTPSeparator = React41.forwardRef(
2242
- ({ ...props }, ref) => /* @__PURE__ */ jsx45("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx45(Minus2, { className: "size-4" }) })
2253
+ ({ ...props }, ref) => /* @__PURE__ */ jsx46("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx46(Minus2, { className: "size-4" }) })
2243
2254
  );
2244
2255
  InputOTPSeparator.displayName = "InputOTPSeparator";
2245
2256
 
2246
2257
  // src/components/password-input.tsx
2247
2258
  import * as React42 from "react";
2248
2259
  import { Eye, EyeOff } from "lucide-react";
2249
- import { jsx as jsx46, jsxs as jsxs22 } from "react/jsx-runtime";
2260
+ import { jsx as jsx47, jsxs as jsxs22 } from "react/jsx-runtime";
2250
2261
  var PasswordInput = React42.forwardRef(({ className, ...props }, ref) => {
2251
2262
  const [visible, setVisible] = React42.useState(false);
2252
2263
  return /* @__PURE__ */ jsxs22(InputGroup, { className, children: [
2253
- /* @__PURE__ */ jsx46(InputGroupInput, { ref, type: visible ? "text" : "password", ...props }),
2254
- /* @__PURE__ */ jsx46(InputGroupAddon, { align: "end", children: /* @__PURE__ */ jsx46(
2264
+ /* @__PURE__ */ jsx47(InputGroupInput, { ref, type: visible ? "text" : "password", ...props }),
2265
+ /* @__PURE__ */ jsx47(InputGroupAddon, { align: "end", children: /* @__PURE__ */ jsx47(
2255
2266
  "button",
2256
2267
  {
2257
2268
  type: "button",
@@ -2259,7 +2270,7 @@ var PasswordInput = React42.forwardRef(({ className, ...props }, ref) => {
2259
2270
  "aria-pressed": visible,
2260
2271
  onClick: () => setVisible((v) => !v),
2261
2272
  className: cn("rounded-[2px] outline-none transition-colors hover:text-foreground focus-visible:text-foreground"),
2262
- children: visible ? /* @__PURE__ */ jsx46(EyeOff, {}) : /* @__PURE__ */ jsx46(Eye, {})
2273
+ children: visible ? /* @__PURE__ */ jsx47(EyeOff, {}) : /* @__PURE__ */ jsx47(Eye, {})
2263
2274
  }
2264
2275
  ) })
2265
2276
  ] });
@@ -2270,15 +2281,15 @@ PasswordInput.displayName = "PasswordInput";
2270
2281
  import * as React43 from "react";
2271
2282
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
2272
2283
  import { Check as Check5, ChevronRight as ChevronRight6, Circle as Circle4 } from "lucide-react";
2273
- import { jsx as jsx47, jsxs as jsxs23 } from "react/jsx-runtime";
2274
- var MenubarMenu = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Menu, { ...props });
2275
- var MenubarGroup = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Group, { ...props });
2276
- var MenubarPortal = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Portal, { ...props });
2277
- var MenubarSub = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.Sub, { ...props });
2278
- var MenubarRadioGroup = (props) => /* @__PURE__ */ jsx47(MenubarPrimitive.RadioGroup, { ...props });
2284
+ import { jsx as jsx48, jsxs as jsxs23 } from "react/jsx-runtime";
2285
+ var MenubarMenu = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Menu, { ...props });
2286
+ var MenubarGroup = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Group, { ...props });
2287
+ var MenubarPortal = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Portal, { ...props });
2288
+ var MenubarSub = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.Sub, { ...props });
2289
+ var MenubarRadioGroup = (props) => /* @__PURE__ */ jsx48(MenubarPrimitive.RadioGroup, { ...props });
2279
2290
  var itemCls3 = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground focus:ring-1 focus:ring-inset focus:ring-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-disabled";
2280
2291
  var contentCls3 = "z-overlay min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md font-sans data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95";
2281
- var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
2292
+ var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
2282
2293
  MenubarPrimitive.Root,
2283
2294
  {
2284
2295
  ref,
@@ -2287,7 +2298,7 @@ var Menubar = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__
2287
2298
  }
2288
2299
  ));
2289
2300
  Menubar.displayName = MenubarPrimitive.Root.displayName;
2290
- var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
2301
+ var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
2291
2302
  MenubarPrimitive.Trigger,
2292
2303
  {
2293
2304
  ref,
@@ -2301,12 +2312,12 @@ var MenubarTrigger = React43.forwardRef(({ className, ...props }, ref) => /* @__
2301
2312
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
2302
2313
  var MenubarSubTrigger = React43.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.SubTrigger, { ref, className: cn(itemCls3, "data-[state=open]:bg-accent", inset && "pl-8", className), ...props, children: [
2303
2314
  children,
2304
- /* @__PURE__ */ jsx47(ChevronRight6, { className: "ml-auto size-4" })
2315
+ /* @__PURE__ */ jsx48(ChevronRight6, { className: "ml-auto size-4" })
2305
2316
  ] }));
2306
2317
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
2307
- var MenubarSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.SubContent, { ref, className: cn(contentCls3, className), ...props }));
2318
+ var MenubarSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.SubContent, { ref, className: cn(contentCls3, className), ...props }));
2308
2319
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
2309
- var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx47(
2320
+ var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx48(
2310
2321
  MenubarPrimitive.Content,
2311
2322
  {
2312
2323
  ref,
@@ -2318,23 +2329,23 @@ var MenubarContent = React43.forwardRef(({ className, align = "start", alignOffs
2318
2329
  }
2319
2330
  ) }));
2320
2331
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
2321
- var MenubarItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Item, { ref, className: cn(itemCls3, inset && "pl-8", className), ...props }));
2332
+ var MenubarItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Item, { ref, className: cn(itemCls3, inset && "pl-8", className), ...props }));
2322
2333
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
2323
2334
  var MenubarCheckboxItem = React43.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.CheckboxItem, { ref, className: cn(itemCls3, "pl-8", className), checked, ...props, children: [
2324
- /* @__PURE__ */ jsx47("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(Check5, { className: "size-4" }) }) }),
2335
+ /* @__PURE__ */ jsx48("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx48(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx48(Check5, { className: "size-4" }) }) }),
2325
2336
  children
2326
2337
  ] }));
2327
2338
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
2328
2339
  var MenubarRadioItem = React43.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs23(MenubarPrimitive.RadioItem, { ref, className: cn(itemCls3, "pl-8", className), ...props, children: [
2329
- /* @__PURE__ */ jsx47("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx47(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(Circle4, { className: "size-2 fill-current" }) }) }),
2340
+ /* @__PURE__ */ jsx48("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx48(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx48(Circle4, { className: "size-2 fill-current" }) }) }),
2330
2341
  children
2331
2342
  ] }));
2332
2343
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
2333
- var MenubarLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className), ...props }));
2344
+ var MenubarLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className), ...props }));
2334
2345
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
2335
- var MenubarSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx47(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
2346
+ var MenubarSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
2336
2347
  MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
2337
- var MenubarShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx47("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
2348
+ var MenubarShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx48("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
2338
2349
  MenubarShortcut.displayName = "MenubarShortcut";
2339
2350
 
2340
2351
  // src/components/navigation-menu.tsx
@@ -2342,7 +2353,7 @@ import * as React44 from "react";
2342
2353
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2343
2354
  import { cva as cva12 } from "class-variance-authority";
2344
2355
  import { ChevronDown as ChevronDown3 } from "lucide-react";
2345
- import { jsx as jsx48, jsxs as jsxs24 } from "react/jsx-runtime";
2356
+ import { jsx as jsx49, jsxs as jsxs24 } from "react/jsx-runtime";
2346
2357
  var NavigationMenu = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(
2347
2358
  NavigationMenuPrimitive.Root,
2348
2359
  {
@@ -2351,12 +2362,12 @@ var NavigationMenu = React44.forwardRef(({ className, children, ...props }, ref)
2351
2362
  ...props,
2352
2363
  children: [
2353
2364
  children,
2354
- /* @__PURE__ */ jsx48(NavigationMenuViewport, {})
2365
+ /* @__PURE__ */ jsx49(NavigationMenuViewport, {})
2355
2366
  ]
2356
2367
  }
2357
2368
  ));
2358
2369
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
2359
- var NavigationMenuList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
2370
+ var NavigationMenuList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
2360
2371
  NavigationMenuPrimitive.List,
2361
2372
  {
2362
2373
  ref,
@@ -2371,7 +2382,7 @@ var navigationMenuTriggerStyle = cva12(
2371
2382
  );
2372
2383
  var NavigationMenuTrigger = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs24(NavigationMenuPrimitive.Trigger, { ref, className: cn(navigationMenuTriggerStyle(), "group", className), ...props, children: [
2373
2384
  children,
2374
- /* @__PURE__ */ jsx48(
2385
+ /* @__PURE__ */ jsx49(
2375
2386
  ChevronDown3,
2376
2387
  {
2377
2388
  className: "relative top-px ml-1 size-3 transition-transform duration-fast group-data-[state=open]:rotate-180",
@@ -2380,7 +2391,7 @@ var NavigationMenuTrigger = React44.forwardRef(({ className, children, ...props
2380
2391
  )
2381
2392
  ] }));
2382
2393
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2383
- var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
2394
+ var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
2384
2395
  NavigationMenuPrimitive.Content,
2385
2396
  {
2386
2397
  ref,
@@ -2393,7 +2404,7 @@ var NavigationMenuContent = React44.forwardRef(({ className, ...props }, ref) =>
2393
2404
  ));
2394
2405
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2395
2406
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
2396
- var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx48(
2407
+ var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx49(
2397
2408
  NavigationMenuPrimitive.Viewport,
2398
2409
  {
2399
2410
  ref,
@@ -2405,7 +2416,7 @@ var NavigationMenuViewport = React44.forwardRef(({ className, ...props }, ref) =
2405
2416
  }
2406
2417
  ) }));
2407
2418
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2408
- var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx48(
2419
+ var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
2409
2420
  NavigationMenuPrimitive.Indicator,
2410
2421
  {
2411
2422
  ref,
@@ -2414,7 +2425,7 @@ var NavigationMenuIndicator = React44.forwardRef(({ className, ...props }, ref)
2414
2425
  className
2415
2426
  ),
2416
2427
  ...props,
2417
- children: /* @__PURE__ */ jsx48("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
2428
+ children: /* @__PURE__ */ jsx49("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
2418
2429
  }
2419
2430
  ));
2420
2431
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
@@ -2422,15 +2433,15 @@ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayN
2422
2433
  // src/components/resizable.tsx
2423
2434
  import { GripVertical } from "lucide-react";
2424
2435
  import * as ResizablePrimitive from "react-resizable-panels";
2425
- import { jsx as jsx49 } from "react/jsx-runtime";
2426
- var ResizablePanelGroup = ({ className, direction = "horizontal", ...props }) => /* @__PURE__ */ jsx49(ResizablePrimitive.Group, { className: cn("flex h-full w-full", className), orientation: direction, ...props });
2436
+ import { jsx as jsx50 } from "react/jsx-runtime";
2437
+ var ResizablePanelGroup = ({ className, direction = "horizontal", ...props }) => /* @__PURE__ */ jsx50(ResizablePrimitive.Group, { className: cn("flex h-full w-full", className), orientation: direction, ...props });
2427
2438
  var asPercent = (value) => typeof value === "number" ? `${value}%` : value;
2428
2439
  var ResizablePanel = ({
2429
2440
  defaultSize,
2430
2441
  minSize,
2431
2442
  maxSize,
2432
2443
  ...props
2433
- }) => /* @__PURE__ */ jsx49(
2444
+ }) => /* @__PURE__ */ jsx50(
2434
2445
  ResizablePrimitive.Panel,
2435
2446
  {
2436
2447
  defaultSize: asPercent(defaultSize),
@@ -2443,7 +2454,7 @@ var ResizableHandle = ({
2443
2454
  withHandle,
2444
2455
  className,
2445
2456
  ...props
2446
- }) => /* @__PURE__ */ jsx49(
2457
+ }) => /* @__PURE__ */ jsx50(
2447
2458
  ResizablePrimitive.Separator,
2448
2459
  {
2449
2460
  className: cn(
@@ -2451,7 +2462,7 @@ var ResizableHandle = ({
2451
2462
  className
2452
2463
  ),
2453
2464
  ...props,
2454
- children: withHandle && /* @__PURE__ */ jsx49("div", { className: "z-docked flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx49(GripVertical, { className: "size-2.5" }) })
2465
+ children: withHandle && /* @__PURE__ */ jsx50("div", { className: "z-docked flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx50(GripVertical, { className: "size-2.5" }) })
2455
2466
  }
2456
2467
  );
2457
2468
 
@@ -2460,7 +2471,7 @@ import * as React45 from "react";
2460
2471
  import { Slot as Slot7 } from "@radix-ui/react-slot";
2461
2472
  import { cva as cva13 } from "class-variance-authority";
2462
2473
  import { PanelLeft } from "lucide-react";
2463
- import { jsx as jsx50, jsxs as jsxs25 } from "react/jsx-runtime";
2474
+ import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
2464
2475
  var SIDEBAR_COOKIE_NAME = "sidebar:state";
2465
2476
  var SIDEBAR_WIDTH = "16rem";
2466
2477
  var SIDEBAR_WIDTH_MOBILE = "18rem";
@@ -2515,7 +2526,7 @@ var SidebarProvider = React45.forwardRef(({ defaultOpen = true, open: openProp,
2515
2526
  () => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),
2516
2527
  [state, open, setOpen, isMobile, openMobile, toggleSidebar]
2517
2528
  );
2518
- return /* @__PURE__ */ jsx50(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx50(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx50(
2529
+ return /* @__PURE__ */ jsx51(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx51(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx51(
2519
2530
  "div",
2520
2531
  {
2521
2532
  ref,
@@ -2530,10 +2541,10 @@ SidebarProvider.displayName = "SidebarProvider";
2530
2541
  var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
2531
2542
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
2532
2543
  if (collapsible === "none") {
2533
- return /* @__PURE__ */ jsx50("div", { ref, className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className), ...props, children });
2544
+ return /* @__PURE__ */ jsx51("div", { ref, className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className), ...props, children });
2534
2545
  }
2535
2546
  if (isMobile) {
2536
- return /* @__PURE__ */ jsx50(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs25(
2547
+ return /* @__PURE__ */ jsx51(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs25(
2537
2548
  SheetContent,
2538
2549
  {
2539
2550
  "data-sidebar": "sidebar",
@@ -2543,10 +2554,10 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
2543
2554
  side,
2544
2555
  children: [
2545
2556
  /* @__PURE__ */ jsxs25(SheetHeader, { className: "sr-only", children: [
2546
- /* @__PURE__ */ jsx50(SheetTitle, { children: "Sidebar" }),
2547
- /* @__PURE__ */ jsx50(SheetDescription, { children: "Displays the mobile sidebar." })
2557
+ /* @__PURE__ */ jsx51(SheetTitle, { children: "Sidebar" }),
2558
+ /* @__PURE__ */ jsx51(SheetDescription, { children: "Displays the mobile sidebar." })
2548
2559
  ] }),
2549
- /* @__PURE__ */ jsx50("div", { className: "flex h-full w-full flex-col", children })
2560
+ /* @__PURE__ */ jsx51("div", { className: "flex h-full w-full flex-col", children })
2550
2561
  ]
2551
2562
  }
2552
2563
  ) });
@@ -2561,7 +2572,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
2561
2572
  "data-variant": variant,
2562
2573
  "data-side": side,
2563
2574
  children: [
2564
- /* @__PURE__ */ jsx50(
2575
+ /* @__PURE__ */ jsx51(
2565
2576
  "div",
2566
2577
  {
2567
2578
  className: cn(
@@ -2571,7 +2582,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
2571
2582
  )
2572
2583
  }
2573
2584
  ),
2574
- /* @__PURE__ */ jsx50(
2585
+ /* @__PURE__ */ jsx51(
2575
2586
  "div",
2576
2587
  {
2577
2588
  className: cn(
@@ -2581,7 +2592,7 @@ var Sidebar = React45.forwardRef(({ side = "left", variant = "sidebar", collapsi
2581
2592
  className
2582
2593
  ),
2583
2594
  ...props,
2584
- children: /* @__PURE__ */ jsx50(
2595
+ children: /* @__PURE__ */ jsx51(
2585
2596
  "div",
2586
2597
  {
2587
2598
  "data-sidebar": "sidebar",
@@ -2612,15 +2623,15 @@ var SidebarTrigger = React45.forwardRef(
2612
2623
  },
2613
2624
  ...props,
2614
2625
  children: [
2615
- /* @__PURE__ */ jsx50(PanelLeft, {}),
2616
- /* @__PURE__ */ jsx50("span", { className: "sr-only", children: "Toggle Sidebar" })
2626
+ /* @__PURE__ */ jsx51(PanelLeft, {}),
2627
+ /* @__PURE__ */ jsx51("span", { className: "sr-only", children: "Toggle Sidebar" })
2617
2628
  ]
2618
2629
  }
2619
2630
  );
2620
2631
  }
2621
2632
  );
2622
2633
  SidebarTrigger.displayName = "SidebarTrigger";
2623
- var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
2634
+ var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51(
2624
2635
  "main",
2625
2636
  {
2626
2637
  ref,
@@ -2633,15 +2644,15 @@ var SidebarInset = React45.forwardRef(({ className, ...props }, ref) => /* @__PU
2633
2644
  }
2634
2645
  ));
2635
2646
  SidebarInset.displayName = "SidebarInset";
2636
- var SidebarHeader = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
2647
+ var SidebarHeader = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
2637
2648
  SidebarHeader.displayName = "SidebarHeader";
2638
- var SidebarFooter = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
2649
+ var SidebarFooter = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
2639
2650
  SidebarFooter.displayName = "SidebarFooter";
2640
2651
  var SidebarSeparator = React45.forwardRef(
2641
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx50(Separator3, { ref, "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props })
2652
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx51(Separator3, { ref, "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props })
2642
2653
  );
2643
2654
  SidebarSeparator.displayName = "SidebarSeparator";
2644
- var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
2655
+ var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51(
2645
2656
  "div",
2646
2657
  {
2647
2658
  ref,
@@ -2651,11 +2662,11 @@ var SidebarContent = React45.forwardRef(({ className, ...props }, ref) => /* @__
2651
2662
  }
2652
2663
  ));
2653
2664
  SidebarContent.displayName = "SidebarContent";
2654
- var SidebarGroup = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
2665
+ var SidebarGroup = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
2655
2666
  SidebarGroup.displayName = "SidebarGroup";
2656
2667
  var SidebarGroupLabel = React45.forwardRef(({ className, asChild = false, ...props }, ref) => {
2657
2668
  const Comp = asChild ? Slot7 : "div";
2658
- return /* @__PURE__ */ jsx50(
2669
+ return /* @__PURE__ */ jsx51(
2659
2670
  Comp,
2660
2671
  {
2661
2672
  ref,
@@ -2671,12 +2682,12 @@ var SidebarGroupLabel = React45.forwardRef(({ className, asChild = false, ...pro
2671
2682
  });
2672
2683
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
2673
2684
  var SidebarGroupContent = React45.forwardRef(
2674
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx50("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
2685
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx51("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
2675
2686
  );
2676
2687
  SidebarGroupContent.displayName = "SidebarGroupContent";
2677
- var SidebarMenu = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
2688
+ var SidebarMenu = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
2678
2689
  SidebarMenu.displayName = "SidebarMenu";
2679
- var SidebarMenuItem = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
2690
+ var SidebarMenuItem = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
2680
2691
  SidebarMenuItem.displayName = "SidebarMenuItem";
2681
2692
  var sidebarMenuButtonVariants = cva13(
2682
2693
  "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 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-disabled group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-disabled 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",
@@ -2698,7 +2709,7 @@ var sidebarMenuButtonVariants = cva13(
2698
2709
  var SidebarMenuButton = React45.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
2699
2710
  const Comp = asChild ? Slot7 : "button";
2700
2711
  const { isMobile, state } = useSidebar();
2701
- const button = /* @__PURE__ */ jsx50(
2712
+ const button = /* @__PURE__ */ jsx51(
2702
2713
  Comp,
2703
2714
  {
2704
2715
  ref,
@@ -2712,28 +2723,28 @@ var SidebarMenuButton = React45.forwardRef(({ asChild = false, isActive = false,
2712
2723
  if (!tooltip) return button;
2713
2724
  const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
2714
2725
  return /* @__PURE__ */ jsxs25(Tooltip, { children: [
2715
- /* @__PURE__ */ jsx50(TooltipTrigger, { asChild: true, children: button }),
2716
- /* @__PURE__ */ jsx50(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltipProps })
2726
+ /* @__PURE__ */ jsx51(TooltipTrigger, { asChild: true, children: button }),
2727
+ /* @__PURE__ */ jsx51(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltipProps })
2717
2728
  ] });
2718
2729
  });
2719
2730
  SidebarMenuButton.displayName = "SidebarMenuButton";
2720
2731
  var SidebarMenuSkeleton = React45.forwardRef(({ className, showIcon = false, ...props }, ref) => {
2721
2732
  const width = React45.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
2722
2733
  return /* @__PURE__ */ jsxs25("div", { ref, "data-sidebar": "menu-skeleton", className: cn("flex h-8 items-center gap-2 rounded-md px-2", className), ...props, children: [
2723
- showIcon && /* @__PURE__ */ jsx50(Skeleton, { className: "size-4 rounded-md" }),
2724
- /* @__PURE__ */ jsx50(Skeleton, { className: "h-4 max-w-[--skeleton-width] flex-1", style: { "--skeleton-width": width } })
2734
+ showIcon && /* @__PURE__ */ jsx51(Skeleton, { className: "size-4 rounded-md" }),
2735
+ /* @__PURE__ */ jsx51(Skeleton, { className: "h-4 max-w-[--skeleton-width] flex-1", style: { "--skeleton-width": width } })
2725
2736
  ] });
2726
2737
  });
2727
2738
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
2728
2739
  var SidebarInput = React45.forwardRef(
2729
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx50(Input, { ref, "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props })
2740
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx51(Input, { ref, "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props })
2730
2741
  );
2731
2742
  SidebarInput.displayName = "SidebarInput";
2732
2743
 
2733
2744
  // src/components/audio-player.tsx
2734
2745
  import * as React46 from "react";
2735
2746
  import { Pause, Play, SkipBack, SkipForward } from "lucide-react";
2736
- import { jsx as jsx51, jsxs as jsxs26 } from "react/jsx-runtime";
2747
+ import { jsx as jsx52, jsxs as jsxs26 } from "react/jsx-runtime";
2737
2748
  function fmt(t) {
2738
2749
  if (!Number.isFinite(t)) return "0:00";
2739
2750
  const m = Math.floor(t / 60);
@@ -2757,7 +2768,7 @@ var AudioPlayer = React46.forwardRef(
2757
2768
  if (a) a.currentTime = Math.max(0, Math.min(duration || 0, t));
2758
2769
  };
2759
2770
  const skip = (delta) => seek(current + delta);
2760
- const audio = /* @__PURE__ */ jsx51(
2771
+ const audio = /* @__PURE__ */ jsx52(
2761
2772
  "audio",
2762
2773
  {
2763
2774
  ref: audioRef,
@@ -2770,7 +2781,7 @@ var AudioPlayer = React46.forwardRef(
2770
2781
  onEnded: () => setPlaying(false)
2771
2782
  }
2772
2783
  );
2773
- const PlayPause = ({ size = 44 }) => /* @__PURE__ */ jsx51(
2784
+ const PlayPause = ({ size = 44 }) => /* @__PURE__ */ jsx52(
2774
2785
  "button",
2775
2786
  {
2776
2787
  type: "button",
@@ -2778,7 +2789,7 @@ var AudioPlayer = React46.forwardRef(
2778
2789
  "aria-label": playing ? "Pause" : "Play",
2779
2790
  className: "grid shrink-0 place-items-center rounded-full bg-primary text-primary-foreground outline-none transition-transform hover:scale-105 focus-visible:shadow-focus",
2780
2791
  style: { width: size, height: size },
2781
- children: playing ? /* @__PURE__ */ jsx51(Pause, { className: "size-1/3 fill-current" }) : /* @__PURE__ */ jsx51(Play, { className: "size-1/3 translate-x-px fill-current" })
2792
+ children: playing ? /* @__PURE__ */ jsx52(Pause, { className: "size-1/3 fill-current" }) : /* @__PURE__ */ jsx52(Play, { className: "size-1/3 translate-x-px fill-current" })
2782
2793
  }
2783
2794
  );
2784
2795
  const iconBtn = "grid size-8 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:text-foreground disabled:opacity-40 [&>svg]:size-4";
@@ -2795,14 +2806,14 @@ var AudioPlayer = React46.forwardRef(
2795
2806
  ...props,
2796
2807
  children: [
2797
2808
  audio,
2798
- coverSrc ? /* @__PURE__ */ jsx51("img", { src: coverSrc, alt: "", className: "size-10 shrink-0 rounded-full object-cover" }) : /* @__PURE__ */ jsx51("div", { className: "size-10 shrink-0 rounded-full bg-muted" }),
2809
+ coverSrc ? /* @__PURE__ */ jsx52("img", { src: coverSrc, alt: "", className: "size-10 shrink-0 rounded-full object-cover" }) : /* @__PURE__ */ jsx52("div", { className: "size-10 shrink-0 rounded-full bg-muted" }),
2799
2810
  /* @__PURE__ */ jsxs26("div", { className: "min-w-0 flex-1", children: [
2800
- /* @__PURE__ */ jsx51("p", { className: "truncate text-label-md font-semibold text-foreground", children: title ?? "Audio" }),
2801
- artist && /* @__PURE__ */ jsx51("p", { className: "truncate text-body-sm text-muted-foreground", children: artist })
2811
+ /* @__PURE__ */ jsx52("p", { className: "truncate text-label-md font-semibold text-foreground", children: title ?? "Audio" }),
2812
+ artist && /* @__PURE__ */ jsx52("p", { className: "truncate text-body-sm text-muted-foreground", children: artist })
2802
2813
  ] }),
2803
- /* @__PURE__ */ jsx51("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx51(SkipForward, {}) }),
2804
- /* @__PURE__ */ jsx51(PlayPause, { size: 36 }),
2805
- /* @__PURE__ */ jsx51("div", { className: "absolute inset-x-0 bottom-0 h-1 bg-muted", children: /* @__PURE__ */ jsx51("div", { className: "h-full bg-primary transition-[width]", style: { width: `${pct}%` } }) })
2814
+ /* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, {}) }),
2815
+ /* @__PURE__ */ jsx52(PlayPause, { size: 36 }),
2816
+ /* @__PURE__ */ jsx52("div", { className: "absolute inset-x-0 bottom-0 h-1 bg-muted", children: /* @__PURE__ */ jsx52("div", { className: "h-full bg-primary transition-[width]", style: { width: `${pct}%` } }) })
2806
2817
  ]
2807
2818
  }
2808
2819
  );
@@ -2815,7 +2826,7 @@ var AudioPlayer = React46.forwardRef(
2815
2826
  ...props,
2816
2827
  children: [
2817
2828
  audio,
2818
- /* @__PURE__ */ jsx51(
2829
+ /* @__PURE__ */ jsx52(
2819
2830
  Slider,
2820
2831
  {
2821
2832
  value: [current],
@@ -2826,15 +2837,15 @@ var AudioPlayer = React46.forwardRef(
2826
2837
  }
2827
2838
  ),
2828
2839
  /* @__PURE__ */ jsxs26("div", { className: "flex justify-between text-body-sm text-muted-foreground", children: [
2829
- /* @__PURE__ */ jsx51("span", { children: fmt(current) }),
2830
- /* @__PURE__ */ jsx51("span", { children: fmt(duration) })
2840
+ /* @__PURE__ */ jsx52("span", { children: fmt(current) }),
2841
+ /* @__PURE__ */ jsx52("span", { children: fmt(duration) })
2831
2842
  ] }),
2832
2843
  /* @__PURE__ */ jsxs26("div", { className: "mt-1 flex items-center justify-center gap-3", children: [
2833
- /* @__PURE__ */ jsx51("button", { type: "button", onClick: onPrev, disabled: !onPrev, "aria-label": "Previous track", className: iconBtn, children: /* @__PURE__ */ jsx51(SkipBack, { className: "fill-current" }) }),
2834
- /* @__PURE__ */ jsx51("button", { type: "button", onClick: () => skip(-skipBy), "aria-label": `Back ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx51(SkipBack, {}) }),
2835
- /* @__PURE__ */ jsx51(PlayPause, {}),
2836
- /* @__PURE__ */ jsx51("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx51(SkipForward, {}) }),
2837
- /* @__PURE__ */ jsx51("button", { type: "button", onClick: onNext, disabled: !onNext, "aria-label": "Next track", className: iconBtn, children: /* @__PURE__ */ jsx51(SkipForward, { className: "fill-current" }) })
2844
+ /* @__PURE__ */ jsx52("button", { type: "button", onClick: onPrev, disabled: !onPrev, "aria-label": "Previous track", className: iconBtn, children: /* @__PURE__ */ jsx52(SkipBack, { className: "fill-current" }) }),
2845
+ /* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(-skipBy), "aria-label": `Back ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipBack, {}) }),
2846
+ /* @__PURE__ */ jsx52(PlayPause, {}),
2847
+ /* @__PURE__ */ jsx52("button", { type: "button", onClick: () => skip(skipBy), "aria-label": `Forward ${skipBy}s`, className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, {}) }),
2848
+ /* @__PURE__ */ jsx52("button", { type: "button", onClick: onNext, disabled: !onNext, "aria-label": "Next track", className: iconBtn, children: /* @__PURE__ */ jsx52(SkipForward, { className: "fill-current" }) })
2838
2849
  ] })
2839
2850
  ]
2840
2851
  }
@@ -2845,7 +2856,7 @@ AudioPlayer.displayName = "AudioPlayer";
2845
2856
 
2846
2857
  // src/components/circular-progress.tsx
2847
2858
  import * as React47 from "react";
2848
- import { jsx as jsx52, jsxs as jsxs27 } from "react/jsx-runtime";
2859
+ import { jsx as jsx53, jsxs as jsxs27 } from "react/jsx-runtime";
2849
2860
  var CircularProgress = React47.forwardRef(
2850
2861
  ({ value = 0, size = 48, strokeWidth = 4, showValue = false, label, className, ...props }, ref) => {
2851
2862
  const v = Math.max(0, Math.min(100, value));
@@ -2864,7 +2875,7 @@ var CircularProgress = React47.forwardRef(
2864
2875
  ...props,
2865
2876
  children: [
2866
2877
  /* @__PURE__ */ jsxs27("svg", { width: size, height: size, className: "-rotate-90", "aria-hidden": true, children: [
2867
- /* @__PURE__ */ jsx52(
2878
+ /* @__PURE__ */ jsx53(
2868
2879
  "circle",
2869
2880
  {
2870
2881
  cx: size / 2,
@@ -2875,7 +2886,7 @@ var CircularProgress = React47.forwardRef(
2875
2886
  className: "stroke-muted"
2876
2887
  }
2877
2888
  ),
2878
- /* @__PURE__ */ jsx52(
2889
+ /* @__PURE__ */ jsx53(
2879
2890
  "circle",
2880
2891
  {
2881
2892
  cx: size / 2,
@@ -2890,7 +2901,7 @@ var CircularProgress = React47.forwardRef(
2890
2901
  }
2891
2902
  )
2892
2903
  ] }),
2893
- (showValue || label != null) && /* @__PURE__ */ jsx52("span", { className: "absolute text-label-md text-foreground", children: label ?? `${Math.round(v)}%` })
2904
+ (showValue || label != null) && /* @__PURE__ */ jsx53("span", { className: "absolute text-label-md text-foreground", children: label ?? `${Math.round(v)}%` })
2894
2905
  ]
2895
2906
  }
2896
2907
  );
@@ -2901,7 +2912,7 @@ CircularProgress.displayName = "CircularProgress";
2901
2912
  // src/components/image.tsx
2902
2913
  import * as React48 from "react";
2903
2914
  import { ImageOff } from "lucide-react";
2904
- import { jsx as jsx53 } from "react/jsx-runtime";
2915
+ import { jsx as jsx54 } from "react/jsx-runtime";
2905
2916
  var RATIOS = {
2906
2917
  "1:1": 1,
2907
2918
  "3:2": 3 / 2,
@@ -2928,7 +2939,7 @@ var Image2 = React48.forwardRef(
2928
2939
  if (!img) return;
2929
2940
  if (img.complete) setStatus(img.naturalWidth > 0 ? "loaded" : "error");
2930
2941
  }, [props.src]);
2931
- return /* @__PURE__ */ jsx53(
2942
+ return /* @__PURE__ */ jsx54(
2932
2943
  "div",
2933
2944
  {
2934
2945
  className: cn(
@@ -2937,7 +2948,7 @@ var Image2 = React48.forwardRef(
2937
2948
  className
2938
2949
  ),
2939
2950
  style: { aspectRatio: r },
2940
- children: status === "error" ? /* @__PURE__ */ jsx53("div", { className: "absolute inset-0 grid place-items-center text-muted-foreground", children: fallback ?? /* @__PURE__ */ jsx53(ImageOff, { className: "size-6" }) }) : /* @__PURE__ */ jsx53(
2951
+ children: status === "error" ? /* @__PURE__ */ jsx54("div", { className: "absolute inset-0 grid place-items-center text-muted-foreground", children: fallback ?? /* @__PURE__ */ jsx54(ImageOff, { className: "size-6" }) }) : /* @__PURE__ */ jsx54(
2941
2952
  "img",
2942
2953
  {
2943
2954
  ref: setRef,
@@ -2967,7 +2978,7 @@ Image2.displayName = "Image";
2967
2978
  import * as React49 from "react";
2968
2979
  import { cva as cva14 } from "class-variance-authority";
2969
2980
  import { CircleAlert as CircleAlert2, CircleCheck as CircleCheck2, Info as Info2, TriangleAlert as TriangleAlert2, X as X5 } from "lucide-react";
2970
- import { jsx as jsx54, jsxs as jsxs28 } from "react/jsx-runtime";
2981
+ import { jsx as jsx55, jsxs as jsxs28 } from "react/jsx-runtime";
2971
2982
  var informVariants = cva14(
2972
2983
  "flex items-start gap-2.5 rounded-md p-3 text-body-sm font-sans [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0",
2973
2984
  {
@@ -2994,9 +3005,9 @@ var Inform = React49.forwardRef(
2994
3005
  ({ className, variant = "information", hideIcon, onDismiss, action, children, ...props }, ref) => {
2995
3006
  const Icon2 = ICON[variant ?? "information"];
2996
3007
  return /* @__PURE__ */ jsxs28("div", { ref, role: "status", className: cn(informVariants({ variant }), className), ...props, children: [
2997
- !hideIcon && /* @__PURE__ */ jsx54(Icon2, {}),
3008
+ !hideIcon && /* @__PURE__ */ jsx55(Icon2, {}),
2998
3009
  /* @__PURE__ */ jsxs28("div", { className: "min-w-0 flex-1", children: [
2999
- /* @__PURE__ */ jsx54("p", { className: "[&:not(:only-child)]:mb-2", children }),
3010
+ /* @__PURE__ */ jsx55("p", { className: "[&:not(:only-child)]:mb-2", children }),
3000
3011
  action && /* @__PURE__ */ jsxs28(
3001
3012
  "button",
3002
3013
  {
@@ -3010,14 +3021,14 @@ var Inform = React49.forwardRef(
3010
3021
  }
3011
3022
  )
3012
3023
  ] }),
3013
- onDismiss && /* @__PURE__ */ jsx54(
3024
+ onDismiss && /* @__PURE__ */ jsx55(
3014
3025
  "button",
3015
3026
  {
3016
3027
  type: "button",
3017
3028
  onClick: onDismiss,
3018
3029
  "aria-label": "Dismiss",
3019
3030
  className: "-m-0.5 shrink-0 rounded-[2px] p-0.5 opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:opacity-visible focus-visible:ring-1 focus-visible:ring-current",
3020
- children: /* @__PURE__ */ jsx54(X5, { className: "size-3.5" })
3031
+ children: /* @__PURE__ */ jsx55(X5, { className: "size-3.5" })
3021
3032
  }
3022
3033
  )
3023
3034
  ] });
@@ -3029,7 +3040,7 @@ Inform.displayName = "Inform";
3029
3040
  import * as React50 from "react";
3030
3041
  import { Star } from "lucide-react";
3031
3042
  import { cva as cva15 } from "class-variance-authority";
3032
- import { jsx as jsx55 } from "react/jsx-runtime";
3043
+ import { jsx as jsx56 } from "react/jsx-runtime";
3033
3044
  var starVariants = cva15("transition-colors", {
3034
3045
  variants: {
3035
3046
  size: {
@@ -3051,7 +3062,7 @@ var Rating = React50.forwardRef(
3051
3062
  setInternal(n);
3052
3063
  onChange?.(n);
3053
3064
  };
3054
- return /* @__PURE__ */ jsx55(
3065
+ return /* @__PURE__ */ jsx56(
3055
3066
  "div",
3056
3067
  {
3057
3068
  ref,
@@ -3063,7 +3074,7 @@ var Rating = React50.forwardRef(
3063
3074
  children: Array.from({ length: max }, (_, i) => {
3064
3075
  const n = i + 1;
3065
3076
  const filled = n <= display;
3066
- return /* @__PURE__ */ jsx55(
3077
+ return /* @__PURE__ */ jsx56(
3067
3078
  "button",
3068
3079
  {
3069
3080
  type: "button",
@@ -3076,7 +3087,7 @@ var Rating = React50.forwardRef(
3076
3087
  "rounded-[2px] outline-none disabled:cursor-default",
3077
3088
  !readOnly && "cursor-pointer focus-visible:ring-2 focus-visible:ring-ring"
3078
3089
  ),
3079
- children: /* @__PURE__ */ jsx55(
3090
+ children: /* @__PURE__ */ jsx56(
3080
3091
  Star,
3081
3092
  {
3082
3093
  className: cn(
@@ -3098,7 +3109,7 @@ Rating.displayName = "Rating";
3098
3109
  // src/components/spinner.tsx
3099
3110
  import * as React51 from "react";
3100
3111
  import { cva as cva16 } from "class-variance-authority";
3101
- import { jsx as jsx56 } from "react/jsx-runtime";
3112
+ import { jsx as jsx57 } from "react/jsx-runtime";
3102
3113
  var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 border-current border-t-transparent", {
3103
3114
  variants: {
3104
3115
  size: {
@@ -3115,15 +3126,15 @@ var spinnerVariants = cva16("inline-block animate-spin rounded-full border-2 bor
3115
3126
  defaultVariants: { size: "md", variant: "default" }
3116
3127
  });
3117
3128
  var Spinner = React51.forwardRef(
3118
- ({ className, size, variant, label = "Loading\u2026", ...props }, ref) => /* @__PURE__ */ jsx56("span", { ref, role: "status", "aria-label": label, className: cn(spinnerVariants({ size, variant }), className), ...props, children: /* @__PURE__ */ jsx56("span", { className: "sr-only", children: label }) })
3129
+ ({ className, size, variant, label = "Loading\u2026", ...props }, ref) => /* @__PURE__ */ jsx57("span", { ref, role: "status", "aria-label": label, className: cn(spinnerVariants({ size, variant }), className), ...props, children: /* @__PURE__ */ jsx57("span", { className: "sr-only", children: label }) })
3119
3130
  );
3120
3131
  Spinner.displayName = "Spinner";
3121
3132
 
3122
3133
  // src/components/list.tsx
3123
3134
  import * as React52 from "react";
3124
- import { jsx as jsx57, jsxs as jsxs29 } from "react/jsx-runtime";
3135
+ import { jsx as jsx58, jsxs as jsxs29 } from "react/jsx-runtime";
3125
3136
  var List3 = React52.forwardRef(
3126
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx57("div", { ref, role: "list", className: cn("flex flex-col divide-y divide-border", className), ...props })
3137
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx58("div", { ref, role: "list", className: cn("flex flex-col divide-y divide-border", className), ...props })
3127
3138
  );
3128
3139
  List3.displayName = "List";
3129
3140
  var ListItem = React52.forwardRef(
@@ -3152,12 +3163,12 @@ var ListItem = React52.forwardRef(
3152
3163
  ),
3153
3164
  ...props,
3154
3165
  children: [
3155
- leading && /* @__PURE__ */ jsx57("div", { className: "flex shrink-0 items-center justify-center", children: leading }),
3166
+ leading && /* @__PURE__ */ jsx58("div", { className: "flex shrink-0 items-center justify-center", children: leading }),
3156
3167
  /* @__PURE__ */ jsxs29("div", { className: "min-w-0 flex-1", children: [
3157
- /* @__PURE__ */ jsx57("div", { className: "truncate text-body-md text-foreground", children: title }),
3158
- description && /* @__PURE__ */ jsx57("div", { className: "truncate text-body-sm text-muted-foreground", children: description })
3168
+ /* @__PURE__ */ jsx58("div", { className: "truncate text-body-md text-foreground", children: title }),
3169
+ description && /* @__PURE__ */ jsx58("div", { className: "truncate text-body-sm text-muted-foreground", children: description })
3159
3170
  ] }),
3160
- trailing && /* @__PURE__ */ jsx57("div", { className: "flex shrink-0 items-center gap-2", children: trailing })
3171
+ trailing && /* @__PURE__ */ jsx58("div", { className: "flex shrink-0 items-center gap-2", children: trailing })
3161
3172
  ]
3162
3173
  }
3163
3174
  );
@@ -3168,11 +3179,11 @@ ListItem.displayName = "ListItem";
3168
3179
  // src/components/stepper.tsx
3169
3180
  import * as React53 from "react";
3170
3181
  import { Check as Check6 } from "lucide-react";
3171
- import { jsx as jsx58, jsxs as jsxs30 } from "react/jsx-runtime";
3182
+ import { jsx as jsx59, jsxs as jsxs30 } from "react/jsx-runtime";
3172
3183
  var Stepper = React53.forwardRef(
3173
3184
  ({ className, steps, current, orientation = "horizontal", ...props }, ref) => {
3174
3185
  const vertical = orientation === "vertical";
3175
- return /* @__PURE__ */ jsx58("ol", { ref, className: cn("flex font-sans", vertical ? "flex-col" : "w-full items-start", className), ...props, children: steps.map((step, i) => {
3186
+ return /* @__PURE__ */ jsx59("ol", { ref, className: cn("flex font-sans", vertical ? "flex-col" : "w-full items-start", className), ...props, children: steps.map((step, i) => {
3176
3187
  const status = i < current ? "complete" : i === current ? "current" : "upcoming";
3177
3188
  const isLast = i === steps.length - 1;
3178
3189
  return /* @__PURE__ */ jsxs30(
@@ -3182,7 +3193,7 @@ var Stepper = React53.forwardRef(
3182
3193
  "aria-current": status === "current" ? "step" : void 0,
3183
3194
  children: [
3184
3195
  /* @__PURE__ */ jsxs30("div", { className: cn("flex items-center", vertical ? "flex-col" : "w-full"), children: [
3185
- /* @__PURE__ */ jsx58(
3196
+ /* @__PURE__ */ jsx59(
3186
3197
  "span",
3187
3198
  {
3188
3199
  className: cn(
@@ -3191,10 +3202,10 @@ var Stepper = React53.forwardRef(
3191
3202
  status === "current" && "border-2 border-primary text-primary",
3192
3203
  status === "upcoming" && "border border-input text-muted-foreground"
3193
3204
  ),
3194
- children: status === "complete" ? /* @__PURE__ */ jsx58(Check6, { className: "size-4" }) : i + 1
3205
+ children: status === "complete" ? /* @__PURE__ */ jsx59(Check6, { className: "size-4" }) : i + 1
3195
3206
  }
3196
3207
  ),
3197
- !isLast && /* @__PURE__ */ jsx58(
3208
+ !isLast && /* @__PURE__ */ jsx59(
3198
3209
  "span",
3199
3210
  {
3200
3211
  "aria-hidden": true,
@@ -3207,8 +3218,8 @@ var Stepper = React53.forwardRef(
3207
3218
  )
3208
3219
  ] }),
3209
3220
  /* @__PURE__ */ jsxs30("div", { className: cn(vertical && "pb-6"), children: [
3210
- /* @__PURE__ */ jsx58("p", { className: cn("text-label-md font-medium", status === "upcoming" ? "text-muted-foreground" : "text-foreground"), children: step.label }),
3211
- step.description && /* @__PURE__ */ jsx58("p", { className: "text-body-sm text-muted-foreground", children: step.description })
3221
+ /* @__PURE__ */ jsx59("p", { className: cn("text-label-md font-medium", status === "upcoming" ? "text-muted-foreground" : "text-foreground"), children: step.label }),
3222
+ step.description && /* @__PURE__ */ jsx59("p", { className: "text-body-sm text-muted-foreground", children: step.description })
3212
3223
  ] })
3213
3224
  ]
3214
3225
  },
@@ -3223,7 +3234,7 @@ Stepper.displayName = "Stepper";
3223
3234
  import * as React54 from "react";
3224
3235
  import { Slot as Slot8 } from "@radix-ui/react-slot";
3225
3236
  import { cva as cva17 } from "class-variance-authority";
3226
- import { jsx as jsx59 } from "react/jsx-runtime";
3237
+ import { jsx as jsx60 } from "react/jsx-runtime";
3227
3238
  var fabVariants = cva17(
3228
3239
  [
3229
3240
  "inline-flex shrink-0 items-center justify-center gap-2 rounded-full font-sans font-medium",
@@ -3252,7 +3263,7 @@ var fabVariants = cva17(
3252
3263
  var Fab = React54.forwardRef(
3253
3264
  ({ className, variant, size, extended, asChild = false, ...props }, ref) => {
3254
3265
  const Comp = asChild ? Slot8 : "button";
3255
- return /* @__PURE__ */ jsx59(
3266
+ return /* @__PURE__ */ jsx60(
3256
3267
  Comp,
3257
3268
  {
3258
3269
  ref,
@@ -3267,9 +3278,9 @@ Fab.displayName = "Fab";
3267
3278
 
3268
3279
  // src/components/tab-bar.tsx
3269
3280
  import * as React55 from "react";
3270
- import { jsx as jsx60, jsxs as jsxs31 } from "react/jsx-runtime";
3281
+ import { jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
3271
3282
  var TabBar = React55.forwardRef(
3272
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx60(
3283
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx61(
3273
3284
  "nav",
3274
3285
  {
3275
3286
  ref,
@@ -3297,9 +3308,9 @@ var TabBarItem = React55.forwardRef(
3297
3308
  children: [
3298
3309
  /* @__PURE__ */ jsxs31("span", { className: "relative [&_svg]:size-6", children: [
3299
3310
  icon,
3300
- badge && /* @__PURE__ */ jsx60("span", { className: "absolute -right-1.5 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-medium text-destructive-foreground", children: badge })
3311
+ badge && /* @__PURE__ */ jsx61("span", { className: "absolute -right-1.5 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-medium text-destructive-foreground", children: badge })
3301
3312
  ] }),
3302
- /* @__PURE__ */ jsx60("span", { className: "font-medium", children: label })
3313
+ /* @__PURE__ */ jsx61("span", { className: "font-medium", children: label })
3303
3314
  ]
3304
3315
  }
3305
3316
  )
@@ -3309,7 +3320,7 @@ TabBarItem.displayName = "TabBarItem";
3309
3320
  // src/components/navigation-bar.tsx
3310
3321
  import * as React56 from "react";
3311
3322
  import { ChevronLeft as ChevronLeft3 } from "lucide-react";
3312
- import { jsx as jsx61, jsxs as jsxs32 } from "react/jsx-runtime";
3323
+ import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
3313
3324
  var NavigationBar = React56.forwardRef(
3314
3325
  ({ className, title, infoText, onBack, leading, actions, ...props }, ref) => /* @__PURE__ */ jsxs32(
3315
3326
  "header",
@@ -3318,21 +3329,21 @@ var NavigationBar = React56.forwardRef(
3318
3329
  className: cn("flex h-14 w-full items-center gap-2 border-b border-border bg-background px-2 font-sans", className),
3319
3330
  ...props,
3320
3331
  children: [
3321
- /* @__PURE__ */ jsx61("div", { className: "flex min-w-9 shrink-0 items-center", children: leading ?? (onBack && /* @__PURE__ */ jsx61(
3332
+ /* @__PURE__ */ jsx62("div", { className: "flex min-w-9 shrink-0 items-center", children: leading ?? (onBack && /* @__PURE__ */ jsx62(
3322
3333
  "button",
3323
3334
  {
3324
3335
  type: "button",
3325
3336
  onClick: onBack,
3326
3337
  "aria-label": "Back",
3327
3338
  className: "flex size-9 items-center justify-center rounded-full text-foreground outline-none transition-colors hover:bg-accent hover:ring-1 hover:ring-inset hover:ring-ring focus-visible:bg-accent focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring",
3328
- children: /* @__PURE__ */ jsx61(ChevronLeft3, { className: "size-5" })
3339
+ children: /* @__PURE__ */ jsx62(ChevronLeft3, { className: "size-5" })
3329
3340
  }
3330
3341
  )) }),
3331
3342
  /* @__PURE__ */ jsxs32("div", { className: "min-w-0 flex-1", children: [
3332
- /* @__PURE__ */ jsx61("p", { className: "truncate text-body-lg font-medium text-foreground", children: title }),
3333
- infoText && /* @__PURE__ */ jsx61("p", { className: "truncate text-body-sm text-muted-foreground", children: infoText })
3343
+ /* @__PURE__ */ jsx62("p", { className: "truncate text-body-lg font-medium text-foreground", children: title }),
3344
+ infoText && /* @__PURE__ */ jsx62("p", { className: "truncate text-body-sm text-muted-foreground", children: infoText })
3334
3345
  ] }),
3335
- actions && /* @__PURE__ */ jsx61("div", { className: "flex shrink-0 items-center gap-1", children: actions })
3346
+ actions && /* @__PURE__ */ jsx62("div", { className: "flex shrink-0 items-center gap-1", children: actions })
3336
3347
  ]
3337
3348
  }
3338
3349
  )
@@ -3343,7 +3354,7 @@ NavigationBar.displayName = "NavigationBar";
3343
3354
  import * as React57 from "react";
3344
3355
  import { Slot as Slot9 } from "@radix-ui/react-slot";
3345
3356
  import { Menu as Menu2, X as X6 } from "lucide-react";
3346
- import { jsx as jsx62, jsxs as jsxs33 } from "react/jsx-runtime";
3357
+ import { jsx as jsx63, jsxs as jsxs33 } from "react/jsx-runtime";
3347
3358
  var Ctx = React57.createContext(null);
3348
3359
  var useAppBar = () => {
3349
3360
  const ctx = React57.useContext(Ctx);
@@ -3356,7 +3367,7 @@ var AppBar = React57.forwardRef(
3356
3367
  const nav = React57.Children.toArray(children).find(
3357
3368
  (c) => React57.isValidElement(c) && c.type === AppBarNav
3358
3369
  );
3359
- return /* @__PURE__ */ jsx62(Ctx.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsxs33(
3370
+ return /* @__PURE__ */ jsx63(Ctx.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsxs33(
3360
3371
  "header",
3361
3372
  {
3362
3373
  ref,
@@ -3369,7 +3380,7 @@ var AppBar = React57.forwardRef(
3369
3380
  children: [
3370
3381
  /* @__PURE__ */ jsxs33("div", { className: "mx-auto flex h-14 max-w-screen-2xl items-center gap-4 px-4", children: [
3371
3382
  children,
3372
- nav && /* @__PURE__ */ jsx62(
3383
+ nav && /* @__PURE__ */ jsx63(
3373
3384
  "button",
3374
3385
  {
3375
3386
  type: "button",
@@ -3377,14 +3388,14 @@ var AppBar = React57.forwardRef(
3377
3388
  "aria-expanded": open,
3378
3389
  onClick: () => setOpen((o) => !o),
3379
3390
  className: cn(
3380
- "ml-auto inline-flex size-9 items-center justify-center rounded-md text-foreground outline-none transition-colors md:hidden",
3391
+ "ms-auto inline-flex size-9 items-center justify-center rounded-md text-foreground outline-none transition-colors md:hidden",
3381
3392
  "hover:bg-accent focus-visible:ring-2 focus-visible:ring-ring"
3382
3393
  ),
3383
- children: open ? /* @__PURE__ */ jsx62(X6, { className: "size-5" }) : /* @__PURE__ */ jsx62(Menu2, { className: "size-5" })
3394
+ children: open ? /* @__PURE__ */ jsx63(X6, { className: "size-5" }) : /* @__PURE__ */ jsx63(Menu2, { className: "size-5" })
3384
3395
  }
3385
3396
  )
3386
3397
  ] }),
3387
- nav && open && /* @__PURE__ */ jsx62("nav", { className: "flex flex-col gap-1 border-t border-border p-2 md:hidden", children: nav.props.children })
3398
+ nav && open && /* @__PURE__ */ jsx63("nav", { className: "flex flex-col gap-1 border-t border-border p-2 md:hidden", children: nav.props.children })
3388
3399
  ]
3389
3400
  }
3390
3401
  ) });
@@ -3392,7 +3403,7 @@ var AppBar = React57.forwardRef(
3392
3403
  );
3393
3404
  AppBar.displayName = "AppBar";
3394
3405
  var AppBarBrand = React57.forwardRef(
3395
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx62(
3406
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx63(
3396
3407
  "div",
3397
3408
  {
3398
3409
  ref,
@@ -3403,13 +3414,13 @@ var AppBarBrand = React57.forwardRef(
3403
3414
  );
3404
3415
  AppBarBrand.displayName = "AppBarBrand";
3405
3416
  var AppBarNav = React57.forwardRef(
3406
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx62("nav", { ref, className: cn("hidden items-center gap-1 md:flex", className), ...props })
3417
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx63("nav", { ref, className: cn("hidden items-center gap-1 md:flex", className), ...props })
3407
3418
  );
3408
3419
  AppBarNav.displayName = "AppBarNav";
3409
3420
  var AppBarLink = React57.forwardRef(
3410
3421
  ({ className, active, asChild, ...props }, ref) => {
3411
3422
  const Comp = asChild ? Slot9 : "a";
3412
- return /* @__PURE__ */ jsx62(
3423
+ return /* @__PURE__ */ jsx63(
3413
3424
  Comp,
3414
3425
  {
3415
3426
  ref,
@@ -3428,14 +3439,14 @@ var AppBarLink = React57.forwardRef(
3428
3439
  );
3429
3440
  AppBarLink.displayName = "AppBarLink";
3430
3441
  var AppBarActions = React57.forwardRef(
3431
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("ml-auto flex shrink-0 items-center gap-2", className), ...props })
3442
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx63("div", { ref, className: cn("ms-auto flex shrink-0 items-center gap-2", className), ...props })
3432
3443
  );
3433
3444
  AppBarActions.displayName = "AppBarActions";
3434
3445
 
3435
3446
  // src/components/file-upload.tsx
3436
3447
  import * as React58 from "react";
3437
3448
  import { File, Loader2, TriangleAlert as TriangleAlert3, Upload, X as X7 } from "lucide-react";
3438
- import { jsx as jsx63, jsxs as jsxs34 } from "react/jsx-runtime";
3449
+ import { jsx as jsx64, jsxs as jsxs34 } from "react/jsx-runtime";
3439
3450
  function formatBytes(bytes) {
3440
3451
  if (!bytes) return "";
3441
3452
  const units = ["B", "KB", "MB", "GB"];
@@ -3486,13 +3497,13 @@ var FileUpload = React58.forwardRef(
3486
3497
  disabled && "pointer-events-none opacity-disabled"
3487
3498
  ),
3488
3499
  children: [
3489
- /* @__PURE__ */ jsx63(Upload, { className: "size-6 text-muted-foreground", "aria-hidden": true }),
3500
+ /* @__PURE__ */ jsx64(Upload, { className: "size-6 text-muted-foreground", "aria-hidden": true }),
3490
3501
  /* @__PURE__ */ jsxs34("p", { className: "text-body-sm text-muted-foreground", children: [
3491
3502
  "Drag & drop ",
3492
3503
  multiple ? "files" : "a file",
3493
3504
  " here, or"
3494
3505
  ] }),
3495
- /* @__PURE__ */ jsx63(
3506
+ /* @__PURE__ */ jsx64(
3496
3507
  Button,
3497
3508
  {
3498
3509
  type: "button",
@@ -3506,8 +3517,8 @@ var FileUpload = React58.forwardRef(
3506
3517
  children: buttonLabel
3507
3518
  }
3508
3519
  ),
3509
- helperText && /* @__PURE__ */ jsx63("p", { className: "text-body-sm text-muted-foreground", children: helperText }),
3510
- /* @__PURE__ */ jsx63(
3520
+ helperText && /* @__PURE__ */ jsx64("p", { className: "text-body-sm text-muted-foreground", children: helperText }),
3521
+ /* @__PURE__ */ jsx64(
3511
3522
  "input",
3512
3523
  {
3513
3524
  ref: inputRef,
@@ -3525,7 +3536,7 @@ var FileUpload = React58.forwardRef(
3525
3536
  ]
3526
3537
  }
3527
3538
  ),
3528
- files.length > 0 && /* @__PURE__ */ jsx63("ul", { className: "flex flex-col gap-2", children: files.map((f) => /* @__PURE__ */ jsx63(FileUploadItem, { file: f, onRemove, onRetry }, f.id)) })
3539
+ files.length > 0 && /* @__PURE__ */ jsx64("ul", { className: "flex flex-col gap-2", children: files.map((f) => /* @__PURE__ */ jsx64(FileUploadItem, { file: f, onRemove, onRetry }, f.id)) })
3529
3540
  ] });
3530
3541
  }
3531
3542
  );
@@ -3534,13 +3545,13 @@ function FileUploadItem({ file, onRemove, onRetry }) {
3534
3545
  const isError = file.status === "error";
3535
3546
  const isLoading = file.status === "loading";
3536
3547
  return /* @__PURE__ */ jsxs34("li", { className: cn("flex items-center gap-2.5 rounded-md border p-2.5 text-body-sm", isError ? "border-destructive bg-destructive/5" : "border-input"), children: [
3537
- isLoading ? /* @__PURE__ */ jsx63(Loader2, { className: "size-4 shrink-0 animate-spin text-muted-foreground", "aria-hidden": true }) : isError ? /* @__PURE__ */ jsx63(TriangleAlert3, { className: "size-4 shrink-0 text-destructive", "aria-hidden": true }) : /* @__PURE__ */ jsx63(File, { className: "size-4 shrink-0 text-muted-foreground", "aria-hidden": true }),
3548
+ isLoading ? /* @__PURE__ */ jsx64(Loader2, { className: "size-4 shrink-0 animate-spin text-muted-foreground", "aria-hidden": true }) : isError ? /* @__PURE__ */ jsx64(TriangleAlert3, { className: "size-4 shrink-0 text-destructive", "aria-hidden": true }) : /* @__PURE__ */ jsx64(File, { className: "size-4 shrink-0 text-muted-foreground", "aria-hidden": true }),
3538
3549
  /* @__PURE__ */ jsxs34("div", { className: "min-w-0 flex-1", children: [
3539
- /* @__PURE__ */ jsx63("p", { className: "truncate text-foreground", children: file.name }),
3540
- isError && file.error ? /* @__PURE__ */ jsx63("p", { className: "text-destructive", children: file.error }) : /* @__PURE__ */ jsx63("p", { className: "text-muted-foreground", children: formatBytes(file.size) }),
3541
- isLoading && typeof file.progress === "number" && /* @__PURE__ */ jsx63("div", { className: "mt-1 h-1 w-full overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx63("div", { className: "h-full bg-primary transition-[width]", style: { width: `${Math.max(0, Math.min(100, file.progress))}%` } }) })
3550
+ /* @__PURE__ */ jsx64("p", { className: "truncate text-foreground", children: file.name }),
3551
+ isError && file.error ? /* @__PURE__ */ jsx64("p", { className: "text-destructive", children: file.error }) : /* @__PURE__ */ jsx64("p", { className: "text-muted-foreground", children: formatBytes(file.size) }),
3552
+ isLoading && typeof file.progress === "number" && /* @__PURE__ */ jsx64("div", { className: "mt-1 h-1 w-full overflow-hidden rounded-full bg-muted", children: /* @__PURE__ */ jsx64("div", { className: "h-full bg-primary transition-[width]", style: { width: `${Math.max(0, Math.min(100, file.progress))}%` } }) })
3542
3553
  ] }),
3543
- isError && onRetry && /* @__PURE__ */ jsx63(
3554
+ isError && onRetry && /* @__PURE__ */ jsx64(
3544
3555
  "button",
3545
3556
  {
3546
3557
  type: "button",
@@ -3549,14 +3560,14 @@ function FileUploadItem({ file, onRemove, onRetry }) {
3549
3560
  children: "Retry"
3550
3561
  }
3551
3562
  ),
3552
- onRemove && /* @__PURE__ */ jsx63(
3563
+ onRemove && /* @__PURE__ */ jsx64(
3553
3564
  "button",
3554
3565
  {
3555
3566
  type: "button",
3556
3567
  onClick: () => onRemove(file.id),
3557
3568
  "aria-label": `Remove ${file.name}`,
3558
3569
  className: "shrink-0 rounded-[2px] p-0.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
3559
- children: /* @__PURE__ */ jsx63(X7, { className: "size-3.5" })
3570
+ children: /* @__PURE__ */ jsx64(X7, { className: "size-3.5" })
3560
3571
  }
3561
3572
  )
3562
3573
  ] });
@@ -3567,14 +3578,14 @@ FileUploadItem.displayName = "FileUploadItem";
3567
3578
  import * as React59 from "react";
3568
3579
  import { CalendarIcon } from "lucide-react";
3569
3580
  import { format } from "date-fns";
3570
- import { jsx as jsx64, jsxs as jsxs35 } from "react/jsx-runtime";
3581
+ import { jsx as jsx65, jsxs as jsxs35 } from "react/jsx-runtime";
3571
3582
  var DatePicker = React59.forwardRef(
3572
3583
  ({ value, onChange, placeholder = "Select date", label, helperText, error, disabled, className, formatStr = "PP", calendarProps }, ref) => {
3573
3584
  const [open, setOpen] = React59.useState(false);
3574
3585
  return /* @__PURE__ */ jsxs35("div", { className: cn("flex flex-col gap-1.5 font-sans", className), children: [
3575
- label && /* @__PURE__ */ jsx64("label", { className: "text-label-md font-medium text-foreground", children: label }),
3586
+ label && /* @__PURE__ */ jsx65("label", { className: "text-label-md font-medium text-foreground", children: label }),
3576
3587
  /* @__PURE__ */ jsxs35(Popover, { open, onOpenChange: setOpen, children: [
3577
- /* @__PURE__ */ jsx64(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
3588
+ /* @__PURE__ */ jsx65(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs35(
3578
3589
  Button,
3579
3590
  {
3580
3591
  ref,
@@ -3583,12 +3594,12 @@ var DatePicker = React59.forwardRef(
3583
3594
  disabled,
3584
3595
  className: cn("w-full justify-start px-3 font-normal", !value && "text-muted-foreground", error && "border-destructive text-destructive"),
3585
3596
  children: [
3586
- /* @__PURE__ */ jsx64(CalendarIcon, { className: "size-4" }),
3597
+ /* @__PURE__ */ jsx65(CalendarIcon, { className: "size-4" }),
3587
3598
  value ? format(value, formatStr) : placeholder
3588
3599
  ]
3589
3600
  }
3590
3601
  ) }),
3591
- /* @__PURE__ */ jsx64(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx64(
3602
+ /* @__PURE__ */ jsx65(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx65(
3592
3603
  Calendar,
3593
3604
  {
3594
3605
  mode: "single",
@@ -3601,7 +3612,7 @@ var DatePicker = React59.forwardRef(
3601
3612
  }
3602
3613
  ) })
3603
3614
  ] }),
3604
- helperText && /* @__PURE__ */ jsx64("p", { className: cn("text-body-sm", error ? "text-destructive" : "text-muted-foreground"), children: helperText })
3615
+ helperText && /* @__PURE__ */ jsx65("p", { className: cn("text-body-sm", error ? "text-destructive" : "text-muted-foreground"), children: helperText })
3605
3616
  ] });
3606
3617
  }
3607
3618
  );
@@ -3610,7 +3621,7 @@ DatePicker.displayName = "DatePicker";
3610
3621
  // src/components/code-block.tsx
3611
3622
  import * as React60 from "react";
3612
3623
  import { Check as Check7, Copy } from "lucide-react";
3613
- import { jsx as jsx65, jsxs as jsxs36 } from "react/jsx-runtime";
3624
+ import { jsx as jsx66, jsxs as jsxs36 } from "react/jsx-runtime";
3614
3625
  var CodeBlock = React60.forwardRef(
3615
3626
  ({ className, code, language, filename, files, hideCopy, ...props }, ref) => {
3616
3627
  const tabs = files && files.length > 0 ? files : [{ name: filename ?? language ?? "", code: code ?? "" }];
@@ -3628,7 +3639,7 @@ var CodeBlock = React60.forwardRef(
3628
3639
  };
3629
3640
  return /* @__PURE__ */ jsxs36("div", { ref, className: cn("overflow-hidden rounded-md border border-input bg-muted font-sans", className), ...props, children: [
3630
3641
  hasHeader && /* @__PURE__ */ jsxs36("div", { className: "flex items-center justify-between border-b border-input bg-background px-2", children: [
3631
- /* @__PURE__ */ jsx65("div", { className: "flex", children: tabs.map((t, i) => /* @__PURE__ */ jsx65(
3642
+ /* @__PURE__ */ jsx66("div", { className: "flex", children: tabs.map((t, i) => /* @__PURE__ */ jsx66(
3632
3643
  "button",
3633
3644
  {
3634
3645
  type: "button",
@@ -3641,29 +3652,29 @@ var CodeBlock = React60.forwardRef(
3641
3652
  },
3642
3653
  t.name || i
3643
3654
  )) }),
3644
- !hideCopy && /* @__PURE__ */ jsx65(
3655
+ !hideCopy && /* @__PURE__ */ jsx66(
3645
3656
  "button",
3646
3657
  {
3647
3658
  type: "button",
3648
3659
  onClick: copy,
3649
3660
  "aria-label": "Copy code",
3650
3661
  className: "rounded-[2px] p-1.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
3651
- children: copied ? /* @__PURE__ */ jsx65(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx65(Copy, { className: "size-4" })
3662
+ children: copied ? /* @__PURE__ */ jsx66(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx66(Copy, { className: "size-4" })
3652
3663
  }
3653
3664
  )
3654
3665
  ] }),
3655
3666
  /* @__PURE__ */ jsxs36("div", { className: "relative", children: [
3656
- !hasHeader && !hideCopy && /* @__PURE__ */ jsx65(
3667
+ !hasHeader && !hideCopy && /* @__PURE__ */ jsx66(
3657
3668
  "button",
3658
3669
  {
3659
3670
  type: "button",
3660
3671
  onClick: copy,
3661
3672
  "aria-label": "Copy code",
3662
3673
  className: "absolute right-2 top-2 rounded-[2px] p-1.5 text-muted-foreground outline-none transition-colors hover:text-foreground focus-visible:ring-1 focus-visible:ring-current",
3663
- children: copied ? /* @__PURE__ */ jsx65(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx65(Copy, { className: "size-4" })
3674
+ children: copied ? /* @__PURE__ */ jsx66(Check7, { className: "size-4" }) : /* @__PURE__ */ jsx66(Copy, { className: "size-4" })
3664
3675
  }
3665
3676
  ),
3666
- /* @__PURE__ */ jsx65("pre", { className: "overflow-x-auto p-4 text-body-sm text-foreground", children: /* @__PURE__ */ jsx65("code", { children: current.code }) })
3677
+ /* @__PURE__ */ jsx66("pre", { className: "overflow-x-auto p-4 text-body-sm text-foreground", children: /* @__PURE__ */ jsx66("code", { children: current.code }) })
3667
3678
  ] })
3668
3679
  ] });
3669
3680
  }
@@ -3673,15 +3684,15 @@ CodeBlock.displayName = "CodeBlock";
3673
3684
  // src/components/metric.tsx
3674
3685
  import * as React61 from "react";
3675
3686
  import { ArrowDown, ArrowUp } from "lucide-react";
3676
- import { jsx as jsx66, jsxs as jsxs37 } from "react/jsx-runtime";
3687
+ import { jsx as jsx67, jsxs as jsxs37 } from "react/jsx-runtime";
3677
3688
  var Metric = React61.forwardRef(
3678
3689
  ({ className, label, value, trend, change, icon, chart, ...props }, ref) => /* @__PURE__ */ jsxs37("div", { ref, className: cn("flex flex-col gap-2 rounded-md border border-input p-4 font-sans", className), ...props, children: [
3679
3690
  /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between", children: [
3680
- /* @__PURE__ */ jsx66("p", { className: "text-body-sm text-muted-foreground", children: label }),
3681
- icon && /* @__PURE__ */ jsx66("span", { className: "text-muted-foreground [&_svg]:size-5", children: icon })
3691
+ /* @__PURE__ */ jsx67("p", { className: "text-body-sm text-muted-foreground", children: label }),
3692
+ icon && /* @__PURE__ */ jsx67("span", { className: "text-muted-foreground [&_svg]:size-5", children: icon })
3682
3693
  ] }),
3683
3694
  /* @__PURE__ */ jsxs37("div", { className: "flex items-end justify-between gap-2", children: [
3684
- /* @__PURE__ */ jsx66("p", { className: "text-headline-sm font-medium text-foreground", children: value }),
3695
+ /* @__PURE__ */ jsx67("p", { className: "text-headline-sm font-medium text-foreground", children: value }),
3685
3696
  trend && /* @__PURE__ */ jsxs37(
3686
3697
  "span",
3687
3698
  {
@@ -3692,14 +3703,14 @@ var Metric = React61.forwardRef(
3692
3703
  trend === "neutral" && "text-muted-foreground"
3693
3704
  ),
3694
3705
  children: [
3695
- trend === "up" && /* @__PURE__ */ jsx66(ArrowUp, { className: "size-3.5" }),
3696
- trend === "down" && /* @__PURE__ */ jsx66(ArrowDown, { className: "size-3.5" }),
3706
+ trend === "up" && /* @__PURE__ */ jsx67(ArrowUp, { className: "size-3.5" }),
3707
+ trend === "down" && /* @__PURE__ */ jsx67(ArrowDown, { className: "size-3.5" }),
3697
3708
  change
3698
3709
  ]
3699
3710
  }
3700
3711
  )
3701
3712
  ] }),
3702
- chart && /* @__PURE__ */ jsx66("div", { className: "mt-1", children: chart })
3713
+ chart && /* @__PURE__ */ jsx67("div", { className: "mt-1", children: chart })
3703
3714
  ] })
3704
3715
  );
3705
3716
  Metric.displayName = "Metric";
@@ -3707,7 +3718,7 @@ Metric.displayName = "Metric";
3707
3718
  // src/components/number-input.tsx
3708
3719
  import * as React62 from "react";
3709
3720
  import { Minus as Minus3, Plus } from "lucide-react";
3710
- import { jsx as jsx67, jsxs as jsxs38 } from "react/jsx-runtime";
3721
+ import { jsx as jsx68, jsxs as jsxs38 } from "react/jsx-runtime";
3711
3722
  var NumberInput = React62.forwardRef(
3712
3723
  ({ className, value, defaultValue = 0, min, max, step = 1, onChange, disabled, ...props }, ref) => {
3713
3724
  const [internal, setInternal] = React62.useState(defaultValue);
@@ -3732,7 +3743,7 @@ var NumberInput = React62.forwardRef(
3732
3743
  className
3733
3744
  ),
3734
3745
  children: [
3735
- /* @__PURE__ */ jsx67(
3746
+ /* @__PURE__ */ jsx68(
3736
3747
  "button",
3737
3748
  {
3738
3749
  type: "button",
@@ -3740,10 +3751,10 @@ var NumberInput = React62.forwardRef(
3740
3751
  disabled: disabled || min != null && current <= min,
3741
3752
  onClick: () => set(current - step),
3742
3753
  className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled",
3743
- children: /* @__PURE__ */ jsx67(Minus3, { className: "size-4" })
3754
+ children: /* @__PURE__ */ jsx68(Minus3, { className: "size-4" })
3744
3755
  }
3745
3756
  ),
3746
- /* @__PURE__ */ jsx67(
3757
+ /* @__PURE__ */ jsx68(
3747
3758
  "input",
3748
3759
  {
3749
3760
  ref,
@@ -3762,7 +3773,7 @@ var NumberInput = React62.forwardRef(
3762
3773
  ...props
3763
3774
  }
3764
3775
  ),
3765
- /* @__PURE__ */ jsx67(
3776
+ /* @__PURE__ */ jsx68(
3766
3777
  "button",
3767
3778
  {
3768
3779
  type: "button",
@@ -3770,7 +3781,7 @@ var NumberInput = React62.forwardRef(
3770
3781
  disabled: disabled || max != null && current >= max,
3771
3782
  onClick: () => set(current + step),
3772
3783
  className: "flex w-9 shrink-0 items-center justify-center text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent focus-visible:text-foreground focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-disabled",
3773
- children: /* @__PURE__ */ jsx67(Plus, { className: "size-4" })
3784
+ children: /* @__PURE__ */ jsx68(Plus, { className: "size-4" })
3774
3785
  }
3775
3786
  )
3776
3787
  ]
@@ -3782,7 +3793,7 @@ NumberInput.displayName = "NumberInput";
3782
3793
 
3783
3794
  // src/components/quote.tsx
3784
3795
  import * as React63 from "react";
3785
- import { jsx as jsx68, jsxs as jsxs39 } from "react/jsx-runtime";
3796
+ import { jsx as jsx69, jsxs as jsxs39 } from "react/jsx-runtime";
3786
3797
  var Quote = React63.forwardRef(
3787
3798
  ({ className, author, authorTitle, avatar, children, ...props }, ref) => /* @__PURE__ */ jsxs39("figure", { ref, className: cn("flex flex-col gap-4 font-sans", className), ...props, children: [
3788
3799
  /* @__PURE__ */ jsxs39("blockquote", { className: "text-title-md font-medium text-foreground", children: [
@@ -3793,8 +3804,8 @@ var Quote = React63.forwardRef(
3793
3804
  (author || authorTitle) && /* @__PURE__ */ jsxs39("figcaption", { className: "flex items-center gap-3", children: [
3794
3805
  avatar,
3795
3806
  /* @__PURE__ */ jsxs39("div", { children: [
3796
- author && /* @__PURE__ */ jsx68("p", { className: "text-body-md font-medium text-foreground", children: author }),
3797
- authorTitle && /* @__PURE__ */ jsx68("p", { className: "text-body-sm text-muted-foreground", children: authorTitle })
3807
+ author && /* @__PURE__ */ jsx69("p", { className: "text-body-md font-medium text-foreground", children: author }),
3808
+ authorTitle && /* @__PURE__ */ jsx69("p", { className: "text-body-sm text-muted-foreground", children: authorTitle })
3798
3809
  ] })
3799
3810
  ] })
3800
3811
  ] })
@@ -3803,20 +3814,20 @@ Quote.displayName = "Quote";
3803
3814
 
3804
3815
  // src/components/footer.tsx
3805
3816
  import * as React64 from "react";
3806
- import { jsx as jsx69, jsxs as jsxs40 } from "react/jsx-runtime";
3817
+ import { jsx as jsx70, jsxs as jsxs40 } from "react/jsx-runtime";
3807
3818
  var Footer = React64.forwardRef(
3808
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx69("footer", { ref, className: cn("w-full border-t border-border bg-background px-6 py-10 font-sans", className), ...props, children })
3819
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx70("footer", { ref, className: cn("w-full border-t border-border bg-background px-6 py-10 font-sans", className), ...props, children })
3809
3820
  );
3810
3821
  Footer.displayName = "Footer";
3811
3822
  var FooterColumn = React64.forwardRef(
3812
3823
  ({ className, title, children, ...props }, ref) => /* @__PURE__ */ jsxs40("div", { ref, className: cn("flex flex-col gap-3", className), ...props, children: [
3813
- /* @__PURE__ */ jsx69("p", { className: "text-label-md font-medium text-foreground", children: title }),
3814
- /* @__PURE__ */ jsx69("div", { className: "flex flex-col gap-2", children })
3824
+ /* @__PURE__ */ jsx70("p", { className: "text-label-md font-medium text-foreground", children: title }),
3825
+ /* @__PURE__ */ jsx70("div", { className: "flex flex-col gap-2", children })
3815
3826
  ] })
3816
3827
  );
3817
3828
  FooterColumn.displayName = "FooterColumn";
3818
3829
  var FooterLink = React64.forwardRef(
3819
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx69(
3830
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx70(
3820
3831
  "a",
3821
3832
  {
3822
3833
  ref,
@@ -3830,7 +3841,7 @@ var FooterLink = React64.forwardRef(
3830
3841
  );
3831
3842
  FooterLink.displayName = "FooterLink";
3832
3843
  var FooterBottom = React64.forwardRef(
3833
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx69(
3844
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx70(
3834
3845
  "div",
3835
3846
  {
3836
3847
  ref,
@@ -3846,11 +3857,11 @@ FooterBottom.displayName = "FooterBottom";
3846
3857
 
3847
3858
  // src/components/table-of-contents.tsx
3848
3859
  import * as React65 from "react";
3849
- import { jsx as jsx70 } from "react/jsx-runtime";
3860
+ import { jsx as jsx71 } from "react/jsx-runtime";
3850
3861
  var TableOfContents = React65.forwardRef(
3851
- ({ className, items, active, ...props }, ref) => /* @__PURE__ */ jsx70("nav", { ref, "aria-label": "Table of contents", className: cn("flex flex-col gap-0.5 font-sans", className), ...props, children: items.map((item) => {
3862
+ ({ className, items, active, ...props }, ref) => /* @__PURE__ */ jsx71("nav", { ref, "aria-label": "Table of contents", className: cn("flex flex-col gap-0.5 font-sans", className), ...props, children: items.map((item) => {
3852
3863
  const isActive = item.id === active;
3853
- return /* @__PURE__ */ jsx70(
3864
+ return /* @__PURE__ */ jsx71(
3854
3865
  "a",
3855
3866
  {
3856
3867
  href: `#${item.id}`,
@@ -3871,10 +3882,10 @@ TableOfContents.displayName = "TableOfContents";
3871
3882
  // src/components/kbd.tsx
3872
3883
  import * as React66 from "react";
3873
3884
  import { Slot as Slot10 } from "@radix-ui/react-slot";
3874
- import { jsx as jsx71 } from "react/jsx-runtime";
3885
+ import { jsx as jsx72 } from "react/jsx-runtime";
3875
3886
  var Kbd = React66.forwardRef(({ className, asChild = false, ...props }, ref) => {
3876
3887
  const Comp = asChild ? Slot10 : "kbd";
3877
- return /* @__PURE__ */ jsx71(
3888
+ return /* @__PURE__ */ jsx72(
3878
3889
  Comp,
3879
3890
  {
3880
3891
  ref,
@@ -3887,15 +3898,15 @@ var Kbd = React66.forwardRef(({ className, asChild = false, ...props }, ref) =>
3887
3898
  );
3888
3899
  });
3889
3900
  Kbd.displayName = "Kbd";
3890
- var KbdGroup = React66.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx71("kbd", { ref, className: cn("inline-flex items-center gap-1", className), ...props }));
3901
+ var KbdGroup = React66.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72("kbd", { ref, className: cn("inline-flex items-center gap-1", className), ...props }));
3891
3902
  KbdGroup.displayName = "KbdGroup";
3892
3903
 
3893
3904
  // src/components/empty.tsx
3894
3905
  import * as React67 from "react";
3895
3906
  import { cva as cva18 } from "class-variance-authority";
3896
- import { jsx as jsx72 } from "react/jsx-runtime";
3907
+ import { jsx as jsx73 } from "react/jsx-runtime";
3897
3908
  var Empty = React67.forwardRef(
3898
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx72(
3909
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
3899
3910
  "div",
3900
3911
  {
3901
3912
  ref,
@@ -3906,7 +3917,7 @@ var Empty = React67.forwardRef(
3906
3917
  );
3907
3918
  Empty.displayName = "Empty";
3908
3919
  var EmptyHeader = React67.forwardRef(
3909
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx72("div", { ref, className: cn("flex max-w-sm flex-col items-center gap-2", className), ...props })
3920
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn("flex max-w-sm flex-col items-center gap-2", className), ...props })
3910
3921
  );
3911
3922
  EmptyHeader.displayName = "EmptyHeader";
3912
3923
  var emptyMediaVariants = cva18("flex shrink-0 items-center justify-center", {
@@ -3920,27 +3931,27 @@ var emptyMediaVariants = cva18("flex shrink-0 items-center justify-center", {
3920
3931
  defaultVariants: { variant: "default" }
3921
3932
  });
3922
3933
  var EmptyMedia = React67.forwardRef(
3923
- ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx72("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props })
3934
+ ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props })
3924
3935
  );
3925
3936
  EmptyMedia.displayName = "EmptyMedia";
3926
3937
  var EmptyTitle = React67.forwardRef(
3927
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx72("p", { ref, className: cn("text-title-sm font-medium text-foreground", className), ...props })
3938
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx73("p", { ref, className: cn("text-title-sm font-medium text-foreground", className), ...props })
3928
3939
  );
3929
3940
  EmptyTitle.displayName = "EmptyTitle";
3930
3941
  var EmptyDescription = React67.forwardRef(
3931
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx72("p", { ref, className: cn("text-body-sm text-muted-foreground", className), ...props })
3942
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx73("p", { ref, className: cn("text-body-sm text-muted-foreground", className), ...props })
3932
3943
  );
3933
3944
  EmptyDescription.displayName = "EmptyDescription";
3934
3945
  var EmptyContent = React67.forwardRef(
3935
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx72("div", { ref, className: cn("flex flex-col items-center gap-3", className), ...props })
3946
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx73("div", { ref, className: cn("flex flex-col items-center gap-3", className), ...props })
3936
3947
  );
3937
3948
  EmptyContent.displayName = "EmptyContent";
3938
3949
 
3939
3950
  // src/components/button-group.tsx
3940
3951
  import * as React68 from "react";
3941
- import { jsx as jsx73 } from "react/jsx-runtime";
3952
+ import { jsx as jsx74 } from "react/jsx-runtime";
3942
3953
  var ButtonGroup = React68.forwardRef(
3943
- ({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx73(
3954
+ ({ className, orientation = "horizontal", ...props }, ref) => /* @__PURE__ */ jsx74(
3944
3955
  "div",
3945
3956
  {
3946
3957
  ref,
@@ -3957,7 +3968,7 @@ var ButtonGroup = React68.forwardRef(
3957
3968
  );
3958
3969
  ButtonGroup.displayName = "ButtonGroup";
3959
3970
  var ButtonGroupSeparator = React68.forwardRef(
3960
- ({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx73(
3971
+ ({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx74(
3961
3972
  "div",
3962
3973
  {
3963
3974
  ref,
@@ -3970,7 +3981,7 @@ var ButtonGroupSeparator = React68.forwardRef(
3970
3981
  );
3971
3982
  ButtonGroupSeparator.displayName = "ButtonGroupSeparator";
3972
3983
  var ButtonGroupText = React68.forwardRef(
3973
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
3984
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
3974
3985
  "span",
3975
3986
  {
3976
3987
  ref,
@@ -3988,10 +3999,10 @@ ButtonGroupText.displayName = "ButtonGroupText";
3988
3999
  import * as React69 from "react";
3989
4000
  import { ChevronDown as ChevronDown4 } from "lucide-react";
3990
4001
  import { cva as cva19 } from "class-variance-authority";
3991
- import { jsx as jsx74, jsxs as jsxs41 } from "react/jsx-runtime";
4002
+ import { jsx as jsx75, jsxs as jsxs41 } from "react/jsx-runtime";
3992
4003
  var nativeSelectVariants = cva19(
3993
4004
  [
3994
- "flex w-full appearance-none border border-input bg-background px-3 py-3 pr-9",
4005
+ "flex w-full appearance-none border border-input bg-background px-3 py-3 pe-9",
3995
4006
  "font-sans text-[14px] leading-5 tracking-[0.25px] text-foreground",
3996
4007
  "outline-none transition-colors",
3997
4008
  "focus-visible:border-primary focus-visible:shadow-focus",
@@ -4018,7 +4029,7 @@ var nativeSelectVariants = cva19(
4018
4029
  );
4019
4030
  var NativeSelect = React69.forwardRef(
4020
4031
  ({ className, state, corners, disabled, "aria-invalid": ariaInvalid, children, ...props }, ref) => /* @__PURE__ */ jsxs41("div", { className: "relative", children: [
4021
- /* @__PURE__ */ jsx74(
4032
+ /* @__PURE__ */ jsx75(
4022
4033
  "select",
4023
4034
  {
4024
4035
  ref,
@@ -4031,24 +4042,24 @@ var NativeSelect = React69.forwardRef(
4031
4042
  children
4032
4043
  }
4033
4044
  ),
4034
- /* @__PURE__ */ jsx74(ChevronDown4, { className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" })
4045
+ /* @__PURE__ */ jsx75(ChevronDown4, { className: "pointer-events-none absolute end-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground" })
4035
4046
  ] })
4036
4047
  );
4037
4048
  NativeSelect.displayName = "NativeSelect";
4038
4049
  var NativeSelectOption = React69.forwardRef(
4039
- ({ ...props }, ref) => /* @__PURE__ */ jsx74("option", { ref, ...props })
4050
+ ({ ...props }, ref) => /* @__PURE__ */ jsx75("option", { ref, ...props })
4040
4051
  );
4041
4052
  NativeSelectOption.displayName = "NativeSelectOption";
4042
4053
  var NativeSelectOptGroup = React69.forwardRef(
4043
- ({ ...props }, ref) => /* @__PURE__ */ jsx74("optgroup", { ref, ...props })
4054
+ ({ ...props }, ref) => /* @__PURE__ */ jsx75("optgroup", { ref, ...props })
4044
4055
  );
4045
4056
  NativeSelectOptGroup.displayName = "NativeSelectOptGroup";
4046
4057
 
4047
4058
  // src/components/description-list.tsx
4048
4059
  import * as React70 from "react";
4049
- import { jsx as jsx75, jsxs as jsxs42 } from "react/jsx-runtime";
4060
+ import { jsx as jsx76, jsxs as jsxs42 } from "react/jsx-runtime";
4050
4061
  var DescriptionList = React70.forwardRef(
4051
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx75(
4062
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
4052
4063
  "dl",
4053
4064
  {
4054
4065
  ref,
@@ -4066,7 +4077,7 @@ var DescriptionListItem = React70.forwardRef(
4066
4077
  className: cn("gap-3 px-3.5 py-2.5", layout === "row" ? "flex items-baseline" : "flex flex-col", className),
4067
4078
  ...props,
4068
4079
  children: [
4069
- /* @__PURE__ */ jsx75(
4080
+ /* @__PURE__ */ jsx76(
4070
4081
  "dt",
4071
4082
  {
4072
4083
  className: cn(
@@ -4076,7 +4087,7 @@ var DescriptionListItem = React70.forwardRef(
4076
4087
  children: term
4077
4088
  }
4078
4089
  ),
4079
- /* @__PURE__ */ jsx75("dd", { className: "min-w-0 text-body-sm text-foreground", children })
4090
+ /* @__PURE__ */ jsx76("dd", { className: "min-w-0 text-body-sm text-foreground", children })
4080
4091
  ]
4081
4092
  }
4082
4093
  )
@@ -4087,7 +4098,7 @@ DescriptionListItem.displayName = "DescriptionListItem";
4087
4098
  import * as React71 from "react";
4088
4099
  import { cva as cva20 } from "class-variance-authority";
4089
4100
  import { CircleAlert as CircleAlert3, CircleCheck as CircleCheck3, Info as Info3, TriangleAlert as TriangleAlert4, X as X8 } from "lucide-react";
4090
- import { jsx as jsx76, jsxs as jsxs43 } from "react/jsx-runtime";
4101
+ import { jsx as jsx77, jsxs as jsxs43 } from "react/jsx-runtime";
4091
4102
  var bannerVariants = cva20(
4092
4103
  "flex w-full items-start gap-2.5 border-b px-4 py-3 text-body-sm font-sans [&>svg]:mt-0.5 [&>svg]:size-4 [&>svg]:shrink-0",
4093
4104
  {
@@ -4118,10 +4129,10 @@ var Banner = React71.forwardRef(
4118
4129
  ({ className, variant = "information", sticky, hideIcon, onDismiss, action, children, ...props }, ref) => {
4119
4130
  const Icon2 = ICON2[variant ?? "information"];
4120
4131
  return /* @__PURE__ */ jsxs43("div", { ref, role: "banner", className: cn(bannerVariants({ variant, sticky }), className), ...props, children: [
4121
- !hideIcon && /* @__PURE__ */ jsx76(Icon2, {}),
4132
+ !hideIcon && /* @__PURE__ */ jsx77(Icon2, {}),
4122
4133
  /* @__PURE__ */ jsxs43("div", { className: "mx-auto flex min-w-0 max-w-4xl flex-1 flex-wrap items-center justify-center gap-x-3 gap-y-1 text-center", children: [
4123
- /* @__PURE__ */ jsx76("span", { children }),
4124
- action && /* @__PURE__ */ jsx76(
4134
+ /* @__PURE__ */ jsx77("span", { children }),
4135
+ action && /* @__PURE__ */ jsx77(
4125
4136
  "button",
4126
4137
  {
4127
4138
  type: "button",
@@ -4131,14 +4142,14 @@ var Banner = React71.forwardRef(
4131
4142
  }
4132
4143
  )
4133
4144
  ] }),
4134
- onDismiss && /* @__PURE__ */ jsx76(
4145
+ onDismiss && /* @__PURE__ */ jsx77(
4135
4146
  "button",
4136
4147
  {
4137
4148
  type: "button",
4138
4149
  onClick: onDismiss,
4139
4150
  "aria-label": "Dismiss",
4140
4151
  className: "-m-0.5 shrink-0 rounded-[2px] p-0.5 opacity-muted outline-none transition-opacity hover:opacity-visible focus-visible:opacity-visible focus-visible:ring-1 focus-visible:ring-current",
4141
- children: /* @__PURE__ */ jsx76(X8, { className: "size-3.5" })
4152
+ children: /* @__PURE__ */ jsx77(X8, { className: "size-3.5" })
4142
4153
  }
4143
4154
  )
4144
4155
  ] });
@@ -4149,8 +4160,8 @@ Banner.displayName = "Banner";
4149
4160
  // src/components/segmented-control.tsx
4150
4161
  import * as React72 from "react";
4151
4162
  import * as ToggleGroupPrimitive2 from "@radix-ui/react-toggle-group";
4152
- import { jsx as jsx77 } from "react/jsx-runtime";
4153
- var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx77(
4163
+ import { jsx as jsx78 } from "react/jsx-runtime";
4164
+ var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx78(
4154
4165
  ToggleGroupPrimitive2.Root,
4155
4166
  {
4156
4167
  ref,
@@ -4160,7 +4171,7 @@ var SegmentedControl = React72.forwardRef(({ className, ...props }, ref) => /* @
4160
4171
  }
4161
4172
  ));
4162
4173
  SegmentedControl.displayName = "SegmentedControl";
4163
- var SegmentedControlItem = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx77(
4174
+ var SegmentedControlItem = React72.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx78(
4164
4175
  ToggleGroupPrimitive2.Item,
4165
4176
  {
4166
4177
  ref,
@@ -4178,30 +4189,30 @@ SegmentedControlItem.displayName = "SegmentedControlItem";
4178
4189
 
4179
4190
  // src/components/timeline.tsx
4180
4191
  import * as React73 from "react";
4181
- import { jsx as jsx78, jsxs as jsxs44 } from "react/jsx-runtime";
4192
+ import { jsx as jsx79, jsxs as jsxs44 } from "react/jsx-runtime";
4182
4193
  var Body = ({ item, align }) => /* @__PURE__ */ jsxs44("div", { className: cn("pb-6", align === "right" && "text-right"), children: [
4183
- item.time && /* @__PURE__ */ jsx78("p", { className: "text-label-sm text-muted-foreground", children: item.time }),
4184
- /* @__PURE__ */ jsx78("p", { className: "text-label-md font-medium text-foreground", children: item.title }),
4185
- item.content && /* @__PURE__ */ jsx78("div", { className: "text-body-sm text-muted-foreground", children: item.content })
4194
+ item.time && /* @__PURE__ */ jsx79("p", { className: "text-label-sm text-muted-foreground", children: item.time }),
4195
+ /* @__PURE__ */ jsx79("p", { className: "text-label-md font-medium text-foreground", children: item.title }),
4196
+ item.content && /* @__PURE__ */ jsx79("div", { className: "text-body-sm text-muted-foreground", children: item.content })
4186
4197
  ] });
4187
4198
  var Rail = ({ item, isLast }) => /* @__PURE__ */ jsxs44("div", { className: "flex flex-col items-center", children: [
4188
- /* @__PURE__ */ jsx78("span", { className: "flex size-2.5 shrink-0 items-center justify-center rounded-full bg-primary", children: item.icon }),
4189
- !isLast && /* @__PURE__ */ jsx78("span", { "aria-hidden": true, className: "my-1 w-px flex-1 bg-border" })
4199
+ /* @__PURE__ */ jsx79("span", { className: "flex size-2.5 shrink-0 items-center justify-center rounded-full bg-primary", children: item.icon }),
4200
+ !isLast && /* @__PURE__ */ jsx79("span", { "aria-hidden": true, className: "my-1 w-px flex-1 bg-border" })
4190
4201
  ] });
4191
4202
  var Timeline = React73.forwardRef(
4192
- ({ className, items, alternating = false, ...props }, ref) => /* @__PURE__ */ jsx78("ol", { ref, className: cn("flex flex-col font-sans", className), ...props, children: items.map((item, i) => {
4203
+ ({ className, items, alternating = false, ...props }, ref) => /* @__PURE__ */ jsx79("ol", { ref, className: cn("flex flex-col font-sans", className), ...props, children: items.map((item, i) => {
4193
4204
  const isLast = i === items.length - 1;
4194
4205
  if (!alternating) {
4195
4206
  return /* @__PURE__ */ jsxs44("li", { className: "grid grid-cols-[auto_1fr] gap-x-3", children: [
4196
- /* @__PURE__ */ jsx78(Rail, { item, isLast }),
4197
- /* @__PURE__ */ jsx78(Body, { item, align: "left" })
4207
+ /* @__PURE__ */ jsx79(Rail, { item, isLast }),
4208
+ /* @__PURE__ */ jsx79(Body, { item, align: "left" })
4198
4209
  ] }, i);
4199
4210
  }
4200
4211
  const onRight = i % 2 === 0;
4201
4212
  return /* @__PURE__ */ jsxs44("li", { className: "grid grid-cols-[1fr_auto_1fr] gap-x-4", children: [
4202
- onRight ? /* @__PURE__ */ jsx78("div", {}) : /* @__PURE__ */ jsx78(Body, { item, align: "right" }),
4203
- /* @__PURE__ */ jsx78(Rail, { item, isLast }),
4204
- onRight ? /* @__PURE__ */ jsx78(Body, { item, align: "left" }) : /* @__PURE__ */ jsx78("div", {})
4213
+ onRight ? /* @__PURE__ */ jsx79("div", {}) : /* @__PURE__ */ jsx79(Body, { item, align: "right" }),
4214
+ /* @__PURE__ */ jsx79(Rail, { item, isLast }),
4215
+ onRight ? /* @__PURE__ */ jsx79(Body, { item, align: "left" }) : /* @__PURE__ */ jsx79("div", {})
4205
4216
  ] }, i);
4206
4217
  }) })
4207
4218
  );
@@ -4209,9 +4220,9 @@ Timeline.displayName = "Timeline";
4209
4220
 
4210
4221
  // src/components/marquee.tsx
4211
4222
  import * as React74 from "react";
4212
- import { jsx as jsx79, jsxs as jsxs45 } from "react/jsx-runtime";
4223
+ import { jsx as jsx80, jsxs as jsxs45 } from "react/jsx-runtime";
4213
4224
  var Marquee = React74.forwardRef(
4214
- ({ className, children, durationSeconds = 32, pauseOnHover = true, style, ...props }, ref) => /* @__PURE__ */ jsx79(
4225
+ ({ className, children, durationSeconds = 32, pauseOnHover = true, style, ...props }, ref) => /* @__PURE__ */ jsx80(
4215
4226
  "div",
4216
4227
  {
4217
4228
  ref,
@@ -4230,8 +4241,8 @@ var Marquee = React74.forwardRef(
4230
4241
  pauseOnHover && "group-hover:[animation-play-state:paused]"
4231
4242
  ),
4232
4243
  children: [
4233
- /* @__PURE__ */ jsx79("div", { className: "flex shrink-0 items-center", children }),
4234
- /* @__PURE__ */ jsx79("div", { "aria-hidden": "true", className: "flex shrink-0 items-center", children })
4244
+ /* @__PURE__ */ jsx80("div", { className: "flex shrink-0 items-center", children }),
4245
+ /* @__PURE__ */ jsx80("div", { "aria-hidden": "true", className: "flex shrink-0 items-center", children })
4235
4246
  ]
4236
4247
  }
4237
4248
  )
@@ -4244,7 +4255,7 @@ Marquee.displayName = "Marquee";
4244
4255
  import * as React75 from "react";
4245
4256
  import * as SliderPrimitive2 from "@radix-ui/react-slider";
4246
4257
  import { GripVertical as GripVertical2 } from "lucide-react";
4247
- import { jsx as jsx80, jsxs as jsxs46 } from "react/jsx-runtime";
4258
+ import { jsx as jsx81, jsxs as jsxs46 } from "react/jsx-runtime";
4248
4259
  var ComparisonSlider = React75.forwardRef(
4249
4260
  ({ className, before, after, beforeLabel, afterLabel, value, defaultValue = 50, onValueChange, ...props }, ref) => {
4250
4261
  const [internal, setInternal] = React75.useState(defaultValue);
@@ -4265,9 +4276,9 @@ var ComparisonSlider = React75.forwardRef(
4265
4276
  ),
4266
4277
  ...props,
4267
4278
  children: [
4268
- /* @__PURE__ */ jsx80("div", { className: "absolute inset-0", children: before }),
4269
- /* @__PURE__ */ jsx80("div", { className: "absolute inset-0 overflow-hidden", style: { clipPath: `inset(0 0 0 ${current}%)` }, children: after }),
4270
- /* @__PURE__ */ jsx80(
4279
+ /* @__PURE__ */ jsx81("div", { className: "absolute inset-0", children: before }),
4280
+ /* @__PURE__ */ jsx81("div", { className: "absolute inset-0 overflow-hidden", style: { clipPath: `inset(0 0 0 ${current}%)` }, children: after }),
4281
+ /* @__PURE__ */ jsx81(
4271
4282
  "div",
4272
4283
  {
4273
4284
  "aria-hidden": true,
@@ -4275,8 +4286,8 @@ var ComparisonSlider = React75.forwardRef(
4275
4286
  style: { left: `${current}%` }
4276
4287
  }
4277
4288
  ),
4278
- beforeLabel && /* @__PURE__ */ jsx80("span", { className: "absolute left-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: beforeLabel }),
4279
- afterLabel && /* @__PURE__ */ jsx80("span", { className: "absolute right-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: afterLabel }),
4289
+ beforeLabel && /* @__PURE__ */ jsx81("span", { className: "absolute left-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: beforeLabel }),
4290
+ afterLabel && /* @__PURE__ */ jsx81("span", { className: "absolute right-2 top-2 rounded bg-background/80 px-2 py-0.5 text-label-sm text-foreground backdrop-blur-sm", children: afterLabel }),
4280
4291
  /* @__PURE__ */ jsxs46(
4281
4292
  SliderPrimitive2.Root,
4282
4293
  {
@@ -4286,13 +4297,13 @@ var ComparisonSlider = React75.forwardRef(
4286
4297
  step: 0.1,
4287
4298
  className: "absolute inset-0 flex touch-none items-center",
4288
4299
  children: [
4289
- /* @__PURE__ */ jsx80(SliderPrimitive2.Track, { className: "relative h-full w-full grow bg-transparent", children: /* @__PURE__ */ jsx80(SliderPrimitive2.Range, { className: "absolute h-full bg-transparent" }) }),
4290
- /* @__PURE__ */ jsx80(
4300
+ /* @__PURE__ */ jsx81(SliderPrimitive2.Track, { className: "relative h-full w-full grow bg-transparent", children: /* @__PURE__ */ jsx81(SliderPrimitive2.Range, { className: "absolute h-full bg-transparent" }) }),
4301
+ /* @__PURE__ */ jsx81(
4291
4302
  SliderPrimitive2.Thumb,
4292
4303
  {
4293
4304
  "aria-label": "Comparison position",
4294
4305
  className: "flex size-8 shrink-0 items-center justify-center rounded-full border-2 border-background bg-background/90 text-foreground shadow-md outline-none focus-visible:ring-2 focus-visible:ring-ring",
4295
- children: /* @__PURE__ */ jsx80(GripVertical2, { className: "size-4" })
4306
+ children: /* @__PURE__ */ jsx81(GripVertical2, { className: "size-4" })
4296
4307
  }
4297
4308
  )
4298
4309
  ]
@@ -4307,7 +4318,7 @@ ComparisonSlider.displayName = "ComparisonSlider";
4307
4318
 
4308
4319
  // src/components/page-header.tsx
4309
4320
  import * as React76 from "react";
4310
- import { jsx as jsx81, jsxs as jsxs47 } from "react/jsx-runtime";
4321
+ import { jsx as jsx82, jsxs as jsxs47 } from "react/jsx-runtime";
4311
4322
  var PageHeader = React76.forwardRef(
4312
4323
  ({ className, title, description, breadcrumb, actions, tabs, ...props }, ref) => /* @__PURE__ */ jsxs47(
4313
4324
  "div",
@@ -4316,15 +4327,15 @@ var PageHeader = React76.forwardRef(
4316
4327
  className: cn("flex flex-col gap-4 border-b border-border pb-6 font-sans", className),
4317
4328
  ...props,
4318
4329
  children: [
4319
- breadcrumb && /* @__PURE__ */ jsx81("div", { className: "text-body-sm", children: breadcrumb }),
4330
+ breadcrumb && /* @__PURE__ */ jsx82("div", { className: "text-body-sm", children: breadcrumb }),
4320
4331
  /* @__PURE__ */ jsxs47("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
4321
4332
  /* @__PURE__ */ jsxs47("div", { className: "flex min-w-0 flex-col gap-1", children: [
4322
- /* @__PURE__ */ jsx81("h1", { className: "text-headline-sm font-medium text-foreground", children: title }),
4323
- description && /* @__PURE__ */ jsx81("p", { className: "text-body-md text-muted-foreground", children: description })
4333
+ /* @__PURE__ */ jsx82("h1", { className: "text-headline-sm font-medium text-foreground", children: title }),
4334
+ description && /* @__PURE__ */ jsx82("p", { className: "text-body-md text-muted-foreground", children: description })
4324
4335
  ] }),
4325
- actions && /* @__PURE__ */ jsx81("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })
4336
+ actions && /* @__PURE__ */ jsx82("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })
4326
4337
  ] }),
4327
- tabs && /* @__PURE__ */ jsx81("div", { className: "-mb-6", children: tabs })
4338
+ tabs && /* @__PURE__ */ jsx82("div", { className: "-mb-6", children: tabs })
4328
4339
  ]
4329
4340
  }
4330
4341
  )
@@ -4334,10 +4345,10 @@ PageHeader.displayName = "PageHeader";
4334
4345
  // src/components/notification-center.tsx
4335
4346
  import * as React77 from "react";
4336
4347
  import { Bell } from "lucide-react";
4337
- import { jsx as jsx82, jsxs as jsxs48 } from "react/jsx-runtime";
4348
+ import { jsx as jsx83, jsxs as jsxs48 } from "react/jsx-runtime";
4338
4349
  var NotificationCenter = Popover;
4339
4350
  var NotificationCenterTrigger = React77.forwardRef(
4340
- ({ className, unreadCount = 0, children, ...props }, ref) => /* @__PURE__ */ jsx82(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs48(
4351
+ ({ className, unreadCount = 0, children, ...props }, ref) => /* @__PURE__ */ jsx83(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs48(
4341
4352
  Button,
4342
4353
  {
4343
4354
  ref,
@@ -4347,8 +4358,8 @@ var NotificationCenterTrigger = React77.forwardRef(
4347
4358
  className: cn("relative", className),
4348
4359
  ...props,
4349
4360
  children: [
4350
- children ?? /* @__PURE__ */ jsx82(Bell, { className: "size-5" }),
4351
- unreadCount > 0 && /* @__PURE__ */ jsx82("span", { className: "absolute right-1.5 top-1.5 flex size-2 rounded-full bg-destructive ring-2 ring-background" })
4361
+ children ?? /* @__PURE__ */ jsx83(Bell, { className: "size-5" }),
4362
+ unreadCount > 0 && /* @__PURE__ */ jsx83("span", { className: "absolute right-1.5 top-1.5 flex size-2 rounded-full bg-destructive ring-2 ring-background" })
4352
4363
  ]
4353
4364
  }
4354
4365
  ) })
@@ -4357,8 +4368,8 @@ NotificationCenterTrigger.displayName = "NotificationCenterTrigger";
4357
4368
  var NotificationCenterContent = React77.forwardRef(
4358
4369
  ({ className, onMarkAllRead, children, align = "end", ...props }, ref) => /* @__PURE__ */ jsxs48(PopoverContent, { ref, align, className: cn("w-80 p-0", className), ...props, children: [
4359
4370
  /* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between border-b border-border px-4 py-3", children: [
4360
- /* @__PURE__ */ jsx82("p", { className: "text-title-sm font-medium text-foreground", children: "Notifications" }),
4361
- onMarkAllRead && /* @__PURE__ */ jsx82(
4371
+ /* @__PURE__ */ jsx83("p", { className: "text-title-sm font-medium text-foreground", children: "Notifications" }),
4372
+ onMarkAllRead && /* @__PURE__ */ jsx83(
4362
4373
  "button",
4363
4374
  {
4364
4375
  type: "button",
@@ -4368,7 +4379,7 @@ var NotificationCenterContent = React77.forwardRef(
4368
4379
  }
4369
4380
  )
4370
4381
  ] }),
4371
- /* @__PURE__ */ jsx82("div", { className: "flex max-h-80 flex-col divide-y divide-border overflow-y-auto", children })
4382
+ /* @__PURE__ */ jsx83("div", { className: "flex max-h-80 flex-col divide-y divide-border overflow-y-auto", children })
4372
4383
  ] })
4373
4384
  );
4374
4385
  NotificationCenterContent.displayName = "NotificationCenterContent";
@@ -4395,11 +4406,11 @@ var NotificationItem = React77.forwardRef(
4395
4406
  ),
4396
4407
  ...props,
4397
4408
  children: [
4398
- /* @__PURE__ */ jsx82("span", { className: cn("mt-1.5 size-2 shrink-0 rounded-full", unread ? "bg-primary" : "bg-transparent") }),
4409
+ /* @__PURE__ */ jsx83("span", { className: cn("mt-1.5 size-2 shrink-0 rounded-full", unread ? "bg-primary" : "bg-transparent") }),
4399
4410
  /* @__PURE__ */ jsxs48("div", { className: "min-w-0 flex-1", children: [
4400
- /* @__PURE__ */ jsx82("p", { className: cn("truncate text-body-sm", unread ? "font-medium text-foreground" : "text-muted-foreground"), children: title }),
4401
- description && /* @__PURE__ */ jsx82("p", { className: "truncate text-body-sm text-muted-foreground", children: description }),
4402
- time && /* @__PURE__ */ jsx82("p", { className: "mt-0.5 text-label-sm text-muted-foreground", children: time })
4411
+ /* @__PURE__ */ jsx83("p", { className: cn("truncate text-body-sm", unread ? "font-medium text-foreground" : "text-muted-foreground"), children: title }),
4412
+ description && /* @__PURE__ */ jsx83("p", { className: "truncate text-body-sm text-muted-foreground", children: description }),
4413
+ time && /* @__PURE__ */ jsx83("p", { className: "mt-0.5 text-label-sm text-muted-foreground", children: time })
4403
4414
  ] })
4404
4415
  ]
4405
4416
  }
@@ -4411,7 +4422,7 @@ NotificationItem.displayName = "NotificationItem";
4411
4422
  // src/components/tree-view.tsx
4412
4423
  import * as React78 from "react";
4413
4424
  import { ChevronRight as ChevronRight7 } from "lucide-react";
4414
- import { jsx as jsx83, jsxs as jsxs49 } from "react/jsx-runtime";
4425
+ import { jsx as jsx84, jsxs as jsxs49 } from "react/jsx-runtime";
4415
4426
  var TreeViewContext = React78.createContext(null);
4416
4427
  function useTreeViewContext() {
4417
4428
  const ctx = React78.useContext(TreeViewContext);
@@ -4468,7 +4479,7 @@ var TreeView = React78.forwardRef(
4468
4479
  setTabbableValue,
4469
4480
  firstValueRef
4470
4481
  };
4471
- return /* @__PURE__ */ jsx83(
4482
+ return /* @__PURE__ */ jsx84(
4472
4483
  "div",
4473
4484
  {
4474
4485
  ref,
@@ -4476,7 +4487,7 @@ var TreeView = React78.forwardRef(
4476
4487
  "aria-multiselectable": checkable || void 0,
4477
4488
  className: cn("flex flex-col font-sans", className),
4478
4489
  ...props,
4479
- children: /* @__PURE__ */ jsx83(TreeViewContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx83(TreeLevelContext.Provider, { value: 0, children }) })
4490
+ children: /* @__PURE__ */ jsx84(TreeViewContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx84(TreeLevelContext.Provider, { value: 0, children }) })
4480
4491
  }
4481
4492
  );
4482
4493
  }
@@ -4574,7 +4585,7 @@ var TreeItem = React78.forwardRef(
4574
4585
  "focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring"
4575
4586
  ),
4576
4587
  children: [
4577
- hasChildren ? /* @__PURE__ */ jsx83(
4588
+ hasChildren ? /* @__PURE__ */ jsx84(
4578
4589
  ChevronRight7,
4579
4590
  {
4580
4591
  className: cn("size-4 shrink-0 text-muted-foreground transition-transform", expanded && "rotate-90"),
@@ -4583,8 +4594,8 @@ var TreeItem = React78.forwardRef(
4583
4594
  ctx.toggleExpanded(value);
4584
4595
  }
4585
4596
  }
4586
- ) : /* @__PURE__ */ jsx83("span", { className: "size-4 shrink-0" }),
4587
- ctx.checkable && /* @__PURE__ */ jsx83(
4597
+ ) : /* @__PURE__ */ jsx84("span", { className: "size-4 shrink-0" }),
4598
+ ctx.checkable && /* @__PURE__ */ jsx84(
4588
4599
  Checkbox,
4589
4600
  {
4590
4601
  checked: isChecked,
@@ -4594,11 +4605,11 @@ var TreeItem = React78.forwardRef(
4594
4605
  }
4595
4606
  ),
4596
4607
  icon,
4597
- /* @__PURE__ */ jsx83("span", { className: "truncate", children: label })
4608
+ /* @__PURE__ */ jsx84("span", { className: "truncate", children: label })
4598
4609
  ]
4599
4610
  }
4600
4611
  ),
4601
- hasChildren && expanded && /* @__PURE__ */ jsx83("div", { role: "group", children: /* @__PURE__ */ jsx83(TreeLevelContext.Provider, { value: level + 1, children }) })
4612
+ hasChildren && expanded && /* @__PURE__ */ jsx84("div", { role: "group", children: /* @__PURE__ */ jsx84(TreeLevelContext.Provider, { value: level + 1, children }) })
4602
4613
  ]
4603
4614
  }
4604
4615
  );
@@ -4609,7 +4620,7 @@ TreeItem.displayName = "TreeItem";
4609
4620
  // src/components/multi-select.tsx
4610
4621
  import * as React79 from "react";
4611
4622
  import { Check as Check8 } from "lucide-react";
4612
- import { jsx as jsx84, jsxs as jsxs50 } from "react/jsx-runtime";
4623
+ import { jsx as jsx85, jsxs as jsxs50 } from "react/jsx-runtime";
4613
4624
  var MultiSelect = React79.forwardRef(
4614
4625
  ({ className, options, value, defaultValue = [], onValueChange, placeholder = "Select\u2026", creatable = false, ...props }, ref) => {
4615
4626
  const [internal, setInternal] = React79.useState(defaultValue);
@@ -4627,7 +4638,7 @@ var MultiSelect = React79.forwardRef(
4627
4638
  const canCreate = creatable && trimmed.length > 0 && !options.some((o) => o.label.toLowerCase() === trimmed.toLowerCase());
4628
4639
  const visibleOptions = creatable ? options.filter((o) => o.label.toLowerCase().includes(trimmed.toLowerCase())) : options;
4629
4640
  return /* @__PURE__ */ jsxs50(Popover, { open, onOpenChange: setOpen, children: [
4630
- /* @__PURE__ */ jsx84(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs50(
4641
+ /* @__PURE__ */ jsx85(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs50(
4631
4642
  "div",
4632
4643
  {
4633
4644
  ref,
@@ -4650,21 +4661,21 @@ var MultiSelect = React79.forwardRef(
4650
4661
  ),
4651
4662
  ...props,
4652
4663
  children: [
4653
- current.length === 0 && /* @__PURE__ */ jsx84("span", { className: "text-body-sm text-muted-foreground", children: placeholder }),
4654
- current.map((v) => /* @__PURE__ */ jsx84(Tag, { variant: "secondary", onRemove: () => remove(v), onClick: (e) => e.stopPropagation(), children: labelFor(v) }, v))
4664
+ current.length === 0 && /* @__PURE__ */ jsx85("span", { className: "text-body-sm text-muted-foreground", children: placeholder }),
4665
+ current.map((v) => /* @__PURE__ */ jsx85(Tag, { variant: "secondary", onRemove: () => remove(v), onClick: (e) => e.stopPropagation(), children: labelFor(v) }, v))
4655
4666
  ]
4656
4667
  }
4657
4668
  ) }),
4658
- /* @__PURE__ */ jsx84(
4669
+ /* @__PURE__ */ jsx85(
4659
4670
  PopoverContent,
4660
4671
  {
4661
4672
  align: "start",
4662
4673
  className: "w-[var(--radix-popover-trigger-width)] p-0",
4663
4674
  onOpenAutoFocus: (e) => e.preventDefault(),
4664
4675
  children: /* @__PURE__ */ jsxs50(Command, { shouldFilter: !creatable, children: [
4665
- /* @__PURE__ */ jsx84(CommandInput, { placeholder: "Search\u2026", value: query, onValueChange: setQuery }),
4676
+ /* @__PURE__ */ jsx85(CommandInput, { placeholder: "Search\u2026", value: query, onValueChange: setQuery }),
4666
4677
  /* @__PURE__ */ jsxs50(CommandList, { children: [
4667
- /* @__PURE__ */ jsx84(CommandEmpty, { children: canCreate ? /* @__PURE__ */ jsxs50(
4678
+ /* @__PURE__ */ jsx85(CommandEmpty, { children: canCreate ? /* @__PURE__ */ jsxs50(
4668
4679
  "button",
4669
4680
  {
4670
4681
  type: "button",
@@ -4680,8 +4691,8 @@ var MultiSelect = React79.forwardRef(
4680
4691
  ]
4681
4692
  }
4682
4693
  ) : "No results." }),
4683
- /* @__PURE__ */ jsx84(CommandGroup, { children: visibleOptions.map((option) => /* @__PURE__ */ jsxs50(CommandItem, { value: option.label, onSelect: () => toggle(option.value), children: [
4684
- /* @__PURE__ */ jsx84(Check8, { className: cn("size-4", current.includes(option.value) ? "opacity-100" : "opacity-0") }),
4694
+ /* @__PURE__ */ jsx85(CommandGroup, { children: visibleOptions.map((option) => /* @__PURE__ */ jsxs50(CommandItem, { value: option.label, onSelect: () => toggle(option.value), children: [
4695
+ /* @__PURE__ */ jsx85(Check8, { className: cn("size-4", current.includes(option.value) ? "opacity-100" : "opacity-0") }),
4685
4696
  option.label
4686
4697
  ] }, option.value)) })
4687
4698
  ] })
@@ -4696,14 +4707,14 @@ MultiSelect.displayName = "MultiSelect";
4696
4707
  // src/components/message-bubble.tsx
4697
4708
  import * as React80 from "react";
4698
4709
  import { Check as Check9, CheckCheck } from "lucide-react";
4699
- import { jsx as jsx85, jsxs as jsxs51 } from "react/jsx-runtime";
4710
+ import { jsx as jsx86, jsxs as jsxs51 } from "react/jsx-runtime";
4700
4711
  var MessageBubble = React80.forwardRef(
4701
4712
  ({ className, variant = "received", timestamp, status, grouped = false, avatar, children, ...props }, ref) => {
4702
4713
  const sent = variant === "sent";
4703
4714
  return /* @__PURE__ */ jsxs51("div", { ref, className: cn("flex items-end gap-2 font-sans", sent && "flex-row-reverse", className), ...props, children: [
4704
- avatar && !sent && /* @__PURE__ */ jsx85("div", { className: "shrink-0 self-end", children: avatar }),
4715
+ avatar && !sent && /* @__PURE__ */ jsx86("div", { className: "shrink-0 self-end", children: avatar }),
4705
4716
  /* @__PURE__ */ jsxs51("div", { className: cn("flex max-w-[75%] flex-col gap-1", sent ? "items-end" : "items-start"), children: [
4706
- /* @__PURE__ */ jsx85(
4717
+ /* @__PURE__ */ jsx86(
4707
4718
  "div",
4708
4719
  {
4709
4720
  className: cn(
@@ -4717,7 +4728,7 @@ var MessageBubble = React80.forwardRef(
4717
4728
  ),
4718
4729
  (timestamp || sent && status) && /* @__PURE__ */ jsxs51("div", { className: "flex items-center gap-1 px-1 text-label-sm text-muted-foreground", children: [
4719
4730
  timestamp,
4720
- sent && status && /* @__PURE__ */ jsx85("span", { className: cn(status === "read" && "text-primary"), children: status === "sent" ? /* @__PURE__ */ jsx85(Check9, { className: "size-3.5" }) : /* @__PURE__ */ jsx85(CheckCheck, { className: "size-3.5" }) })
4731
+ sent && status && /* @__PURE__ */ jsx86("span", { className: cn(status === "read" && "text-primary"), children: status === "sent" ? /* @__PURE__ */ jsx86(Check9, { className: "size-3.5" }) : /* @__PURE__ */ jsx86(CheckCheck, { className: "size-3.5" }) })
4721
4732
  ] })
4722
4733
  ] })
4723
4734
  ] });
@@ -4725,7 +4736,7 @@ var MessageBubble = React80.forwardRef(
4725
4736
  );
4726
4737
  MessageBubble.displayName = "MessageBubble";
4727
4738
  var TypingIndicator = React80.forwardRef(
4728
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx85(
4739
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx86(
4729
4740
  "div",
4730
4741
  {
4731
4742
  ref,
@@ -4733,7 +4744,7 @@ var TypingIndicator = React80.forwardRef(
4733
4744
  "aria-label": "Typing",
4734
4745
  className: cn("flex w-fit items-center gap-1 rounded-2xl bg-muted px-3.5 py-2.5", className),
4735
4746
  ...props,
4736
- children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx85(
4747
+ children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx86(
4737
4748
  "span",
4738
4749
  {
4739
4750
  "aria-hidden": true,
@@ -4750,7 +4761,7 @@ TypingIndicator.displayName = "TypingIndicator";
4750
4761
  // src/components/tour.tsx
4751
4762
  import * as React81 from "react";
4752
4763
  import { createPortal } from "react-dom";
4753
- import { Fragment, jsx as jsx86, jsxs as jsxs52 } from "react/jsx-runtime";
4764
+ import { Fragment, jsx as jsx87, jsxs as jsxs52 } from "react/jsx-runtime";
4754
4765
  var SPOTLIGHT_PADDING = 8;
4755
4766
  var Tour = ({
4756
4767
  steps,
@@ -4810,7 +4821,7 @@ var Tour = ({
4810
4821
  } : { top: "50%", left: "50%", transform: "translate(-50%, -50%)" };
4811
4822
  return createPortal(
4812
4823
  /* @__PURE__ */ jsxs52(Fragment, { children: [
4813
- /* @__PURE__ */ jsx86(
4824
+ /* @__PURE__ */ jsx87(
4814
4825
  "div",
4815
4826
  {
4816
4827
  "aria-hidden": true,
@@ -4826,8 +4837,8 @@ var Tour = ({
4826
4837
  className: "fixed z-overlay w-80 rounded-lg border border-border bg-popover p-4 font-sans text-popover-foreground shadow-lg transition-all duration-fast",
4827
4838
  style: cardStyle,
4828
4839
  children: [
4829
- /* @__PURE__ */ jsx86("p", { className: "text-title-sm font-medium text-foreground", children: step.title }),
4830
- /* @__PURE__ */ jsx86("div", { className: "mt-1.5 text-body-sm text-muted-foreground", children: step.content }),
4840
+ /* @__PURE__ */ jsx87("p", { className: "text-title-sm font-medium text-foreground", children: step.title }),
4841
+ /* @__PURE__ */ jsx87("div", { className: "mt-1.5 text-body-sm text-muted-foreground", children: step.content }),
4831
4842
  /* @__PURE__ */ jsxs52("div", { className: "mt-4 flex items-center justify-between", children: [
4832
4843
  /* @__PURE__ */ jsxs52("span", { className: "text-label-sm text-muted-foreground", children: [
4833
4844
  stepIndex + 1,
@@ -4835,11 +4846,11 @@ var Tour = ({
4835
4846
  steps.length
4836
4847
  ] }),
4837
4848
  /* @__PURE__ */ jsxs52("div", { className: "flex items-center gap-2", children: [
4838
- !isFirst && /* @__PURE__ */ jsx86(Button, { variant: "Ghost", size: "sm", onClick: () => onStepIndexChange(stepIndex - 1), children: backLabel }),
4849
+ !isFirst && /* @__PURE__ */ jsx87(Button, { variant: "Ghost", size: "sm", onClick: () => onStepIndexChange(stepIndex - 1), children: backLabel }),
4839
4850
  !isLast ? /* @__PURE__ */ jsxs52(Fragment, { children: [
4840
- /* @__PURE__ */ jsx86(Button, { variant: "Link", size: "sm", onClick: () => onOpenChange(false), children: skipLabel }),
4841
- /* @__PURE__ */ jsx86(Button, { size: "sm", onClick: () => onStepIndexChange(stepIndex + 1), children: nextLabel })
4842
- ] }) : /* @__PURE__ */ jsx86(Button, { size: "sm", onClick: () => onOpenChange(false), children: doneLabel })
4851
+ /* @__PURE__ */ jsx87(Button, { variant: "Link", size: "sm", onClick: () => onOpenChange(false), children: skipLabel }),
4852
+ /* @__PURE__ */ jsx87(Button, { size: "sm", onClick: () => onStepIndexChange(stepIndex + 1), children: nextLabel })
4853
+ ] }) : /* @__PURE__ */ jsx87(Button, { size: "sm", onClick: () => onOpenChange(false), children: doneLabel })
4843
4854
  ] })
4844
4855
  ] })
4845
4856
  ]
@@ -4852,7 +4863,7 @@ var Tour = ({
4852
4863
 
4853
4864
  // src/components/virtual-list.tsx
4854
4865
  import * as React82 from "react";
4855
- import { jsx as jsx87 } from "react/jsx-runtime";
4866
+ import { jsx as jsx88 } from "react/jsx-runtime";
4856
4867
  function VirtualList({
4857
4868
  items,
4858
4869
  itemHeight,
@@ -4883,7 +4894,7 @@ function VirtualList({
4883
4894
  const visibleCount = Math.ceil(viewportHeight / itemHeight) + overscan * 2;
4884
4895
  const endIndex = Math.min(items.length, startIndex + Math.max(visibleCount, 0));
4885
4896
  const visibleItems = items.slice(startIndex, endIndex);
4886
- return /* @__PURE__ */ jsx87(
4897
+ return /* @__PURE__ */ jsx88(
4887
4898
  "div",
4888
4899
  {
4889
4900
  ref: containerRef,
@@ -4895,9 +4906,9 @@ function VirtualList({
4895
4906
  setScrollTop(e.currentTarget.scrollTop);
4896
4907
  },
4897
4908
  ...props,
4898
- children: /* @__PURE__ */ jsx87("div", { style: { height: totalHeight, position: "relative" }, children: visibleItems.map((item, i) => {
4909
+ children: /* @__PURE__ */ jsx88("div", { style: { height: totalHeight, position: "relative" }, children: visibleItems.map((item, i) => {
4899
4910
  const index = startIndex + i;
4900
- return /* @__PURE__ */ jsx87(
4911
+ return /* @__PURE__ */ jsx88(
4901
4912
  "div",
4902
4913
  {
4903
4914
  role: "listitem",
@@ -4913,7 +4924,7 @@ function VirtualList({
4913
4924
 
4914
4925
  // src/components/data-grid.tsx
4915
4926
  import * as React83 from "react";
4916
- import { jsx as jsx88, jsxs as jsxs53 } from "react/jsx-runtime";
4927
+ import { jsx as jsx89, jsxs as jsxs53 } from "react/jsx-runtime";
4917
4928
  var DEFAULT_WIDTH = 160;
4918
4929
  var DEFAULT_MIN_WIDTH = 60;
4919
4930
  var DEFAULT_ROW_HEIGHT = 40;
@@ -5025,7 +5036,7 @@ function DataGrid({
5025
5036
  column.onCellEdit?.(row, rowIndex, value);
5026
5037
  setEditing(null);
5027
5038
  }
5028
- return /* @__PURE__ */ jsx88(
5039
+ return /* @__PURE__ */ jsx89(
5029
5040
  "div",
5030
5041
  {
5031
5042
  ref: containerRef,
@@ -5034,7 +5045,7 @@ function DataGrid({
5034
5045
  style: { height },
5035
5046
  onScroll: (e) => setScrollTop(e.currentTarget.scrollTop),
5036
5047
  children: /* @__PURE__ */ jsxs53("div", { style: { width: totalWidth, minWidth: "100%" }, children: [
5037
- /* @__PURE__ */ jsx88("div", { role: "row", className: "sticky top-0 z-[2] flex border-b bg-background", children: renderedColumns.map((column) => {
5048
+ /* @__PURE__ */ jsx89("div", { role: "row", className: "sticky top-0 z-[2] flex border-b bg-background", children: renderedColumns.map((column) => {
5038
5049
  const width = widths[column.id] ?? column.width ?? DEFAULT_WIDTH;
5039
5050
  const pinnedStyle = column.pinned === "left" ? { position: "sticky", left: leftOffsets[column.id], zIndex: 3 } : column.pinned === "right" ? { position: "sticky", right: rightOffsets[column.id], zIndex: 3 } : {};
5040
5051
  const isSorted = sort?.columnId === column.id;
@@ -5070,9 +5081,9 @@ function DataGrid({
5070
5081
  ),
5071
5082
  style: { width, ...pinnedStyle },
5072
5083
  children: [
5073
- /* @__PURE__ */ jsx88("span", { className: "truncate", children: column.header }),
5074
- column.sortable && isSorted && /* @__PURE__ */ jsx88("span", { "aria-hidden": "true", className: "text-xs", children: sort.direction === "asc" ? "\u25B2" : "\u25BC" }),
5075
- /* @__PURE__ */ jsx88(
5084
+ /* @__PURE__ */ jsx89("span", { className: "truncate", children: column.header }),
5085
+ column.sortable && isSorted && /* @__PURE__ */ jsx89("span", { "aria-hidden": "true", className: "text-xs", children: sort.direction === "asc" ? "\u25B2" : "\u25BC" }),
5086
+ /* @__PURE__ */ jsx89(
5076
5087
  "div",
5077
5088
  {
5078
5089
  onPointerDown: (e) => {
@@ -5087,9 +5098,9 @@ function DataGrid({
5087
5098
  column.id
5088
5099
  );
5089
5100
  }) }),
5090
- /* @__PURE__ */ jsx88("div", { style: { height: totalHeight, position: "relative" }, children: visibleRows.map((row, i) => {
5101
+ /* @__PURE__ */ jsx89("div", { style: { height: totalHeight, position: "relative" }, children: visibleRows.map((row, i) => {
5091
5102
  const rowIndex = startIndex + i;
5092
- return /* @__PURE__ */ jsx88(
5103
+ return /* @__PURE__ */ jsx89(
5093
5104
  "div",
5094
5105
  {
5095
5106
  role: "row",
@@ -5099,14 +5110,14 @@ function DataGrid({
5099
5110
  const width = widths[column.id] ?? column.width ?? DEFAULT_WIDTH;
5100
5111
  const pinnedStyle = column.pinned === "left" ? { position: "sticky", left: leftOffsets[column.id], zIndex: 1 } : column.pinned === "right" ? { position: "sticky", right: rightOffsets[column.id], zIndex: 1 } : {};
5101
5112
  const isEditing = editing?.rowIndex === rowIndex && editing.columnId === column.id;
5102
- return /* @__PURE__ */ jsx88(
5113
+ return /* @__PURE__ */ jsx89(
5103
5114
  "div",
5104
5115
  {
5105
5116
  role: "gridcell",
5106
5117
  onDoubleClick: () => column.editable && setEditing({ rowIndex, columnId: column.id }),
5107
5118
  className: cn("flex shrink-0 items-center px-2", column.pinned && "bg-background"),
5108
5119
  style: { width, ...pinnedStyle },
5109
- children: isEditing ? /* @__PURE__ */ jsx88(
5120
+ children: isEditing ? /* @__PURE__ */ jsx89(
5110
5121
  "input",
5111
5122
  {
5112
5123
  autoFocus: true,
@@ -5118,7 +5129,7 @@ function DataGrid({
5118
5129
  },
5119
5130
  onBlur: (e) => commitEdit(column, row, rowIndex, e.currentTarget.value)
5120
5131
  }
5121
- ) : /* @__PURE__ */ jsx88("span", { className: "truncate", children: column.cell(row, rowIndex) })
5132
+ ) : /* @__PURE__ */ jsx89("span", { className: "truncate", children: column.cell(row, rowIndex) })
5122
5133
  },
5123
5134
  column.id
5124
5135
  );
@@ -5135,7 +5146,7 @@ function DataGrid({
5135
5146
  // src/components/json-viewer.tsx
5136
5147
  import * as React84 from "react";
5137
5148
  import { Check as Check10, ChevronRight as ChevronRight8, Copy as Copy2 } from "lucide-react";
5138
- import { Fragment as Fragment2, jsx as jsx89, jsxs as jsxs54 } from "react/jsx-runtime";
5149
+ import { Fragment as Fragment2, jsx as jsx90, jsxs as jsxs54 } from "react/jsx-runtime";
5139
5150
  var JsonViewer = React84.forwardRef(
5140
5151
  ({ data, expandDepth = 1, hideCopy, className, ...props }, ref) => {
5141
5152
  const [copied, setCopied] = React84.useState(false);
@@ -5154,17 +5165,17 @@ var JsonViewer = React84.forwardRef(
5154
5165
  className: cn("relative overflow-auto rounded-md border bg-muted/30 p-3 font-mono text-xs", className),
5155
5166
  ...props,
5156
5167
  children: [
5157
- !hideCopy && /* @__PURE__ */ jsx89(
5168
+ !hideCopy && /* @__PURE__ */ jsx90(
5158
5169
  "button",
5159
5170
  {
5160
5171
  type: "button",
5161
5172
  onClick: copy,
5162
5173
  "aria-label": "Copy JSON",
5163
5174
  className: "absolute right-2 top-2 inline-flex size-6 items-center justify-center rounded-sm text-muted-foreground hover:bg-accent hover:text-foreground",
5164
- children: copied ? /* @__PURE__ */ jsx89(Check10, { className: "size-3.5" }) : /* @__PURE__ */ jsx89(Copy2, { className: "size-3.5" })
5175
+ children: copied ? /* @__PURE__ */ jsx90(Check10, { className: "size-3.5" }) : /* @__PURE__ */ jsx90(Copy2, { className: "size-3.5" })
5165
5176
  }
5166
5177
  ),
5167
- /* @__PURE__ */ jsx89("div", { role: "tree", children: /* @__PURE__ */ jsx89(JsonNode, { value: data, depth: 0, expandDepth, isLast: true }) })
5178
+ /* @__PURE__ */ jsx90("div", { role: "tree", children: /* @__PURE__ */ jsx90(JsonNode, { value: data, depth: 0, expandDepth, isLast: true }) })
5168
5179
  ]
5169
5180
  }
5170
5181
  );
@@ -5186,8 +5197,8 @@ function JsonNode({
5186
5197
  JSON.stringify(name),
5187
5198
  ": "
5188
5199
  ] }),
5189
- /* @__PURE__ */ jsx89(JsonPrimitive, { value }),
5190
- !isLast && /* @__PURE__ */ jsx89("span", { className: "text-muted-foreground", children: "," })
5200
+ /* @__PURE__ */ jsx90(JsonPrimitive, { value }),
5201
+ !isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
5191
5202
  ] });
5192
5203
  }
5193
5204
  const isArray = Array.isArray(value);
@@ -5204,19 +5215,19 @@ function JsonNode({
5204
5215
  openBracket,
5205
5216
  closeBracket
5206
5217
  ] }),
5207
- !isLast && /* @__PURE__ */ jsx89("span", { className: "text-muted-foreground", children: "," })
5218
+ !isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
5208
5219
  ] });
5209
5220
  }
5210
5221
  return /* @__PURE__ */ jsxs54("div", { role: "treeitem", "aria-expanded": expanded, children: [
5211
5222
  /* @__PURE__ */ jsxs54("div", { style: { paddingLeft: depth * 16 }, className: "flex items-start gap-1", children: [
5212
- /* @__PURE__ */ jsx89(
5223
+ /* @__PURE__ */ jsx90(
5213
5224
  "button",
5214
5225
  {
5215
5226
  type: "button",
5216
5227
  onClick: () => setExpanded((e) => !e),
5217
5228
  "aria-label": expanded ? "Collapse" : "Expand",
5218
5229
  className: "mt-0.5 inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground",
5219
- children: /* @__PURE__ */ jsx89(ChevronRight8, { className: cn("size-3 transition-transform", expanded && "rotate-90") })
5230
+ children: /* @__PURE__ */ jsx90(ChevronRight8, { className: cn("size-3 transition-transform", expanded && "rotate-90") })
5220
5231
  }
5221
5232
  ),
5222
5233
  /* @__PURE__ */ jsxs54("span", { children: [
@@ -5224,7 +5235,7 @@ function JsonNode({
5224
5235
  JSON.stringify(name),
5225
5236
  ": "
5226
5237
  ] }),
5227
- /* @__PURE__ */ jsx89("span", { children: openBracket }),
5238
+ /* @__PURE__ */ jsx90("span", { children: openBracket }),
5228
5239
  !expanded && /* @__PURE__ */ jsxs54("span", { className: "text-muted-foreground", children: [
5229
5240
  " ",
5230
5241
  entries.length,
@@ -5233,12 +5244,12 @@ function JsonNode({
5233
5244
  entries.length === 1 ? "" : "s",
5234
5245
  " "
5235
5246
  ] }),
5236
- !expanded && /* @__PURE__ */ jsx89("span", { children: closeBracket }),
5237
- !expanded && !isLast && /* @__PURE__ */ jsx89("span", { className: "text-muted-foreground", children: "," })
5247
+ !expanded && /* @__PURE__ */ jsx90("span", { children: closeBracket }),
5248
+ !expanded && !isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
5238
5249
  ] })
5239
5250
  ] }),
5240
5251
  expanded && /* @__PURE__ */ jsxs54(Fragment2, { children: [
5241
- entries.map(([key, val], i) => /* @__PURE__ */ jsx89(
5252
+ entries.map(([key, val], i) => /* @__PURE__ */ jsx90(
5242
5253
  JsonNode,
5243
5254
  {
5244
5255
  name: isArray ? void 0 : key,
@@ -5250,24 +5261,24 @@ function JsonNode({
5250
5261
  key
5251
5262
  )),
5252
5263
  /* @__PURE__ */ jsxs54("div", { style: { paddingLeft: depth * 16 }, children: [
5253
- /* @__PURE__ */ jsx89("span", { children: closeBracket }),
5254
- !isLast && /* @__PURE__ */ jsx89("span", { className: "text-muted-foreground", children: "," })
5264
+ /* @__PURE__ */ jsx90("span", { children: closeBracket }),
5265
+ !isLast && /* @__PURE__ */ jsx90("span", { className: "text-muted-foreground", children: "," })
5255
5266
  ] })
5256
5267
  ] })
5257
5268
  ] });
5258
5269
  }
5259
5270
  function JsonPrimitive({ value }) {
5260
- if (value === null) return /* @__PURE__ */ jsx89("span", { className: "italic text-muted-foreground", children: "null" });
5261
- if (value === void 0) return /* @__PURE__ */ jsx89("span", { className: "italic text-muted-foreground", children: "undefined" });
5262
- if (typeof value === "string") return /* @__PURE__ */ jsx89("span", { className: "text-success", children: JSON.stringify(value) });
5263
- if (typeof value === "number") return /* @__PURE__ */ jsx89("span", { className: "text-info", children: value });
5264
- if (typeof value === "boolean") return /* @__PURE__ */ jsx89("span", { className: "text-warning", children: String(value) });
5265
- return /* @__PURE__ */ jsx89("span", { children: String(value) });
5271
+ if (value === null) return /* @__PURE__ */ jsx90("span", { className: "italic text-muted-foreground", children: "null" });
5272
+ if (value === void 0) return /* @__PURE__ */ jsx90("span", { className: "italic text-muted-foreground", children: "undefined" });
5273
+ if (typeof value === "string") return /* @__PURE__ */ jsx90("span", { className: "text-success", children: JSON.stringify(value) });
5274
+ if (typeof value === "number") return /* @__PURE__ */ jsx90("span", { className: "text-info", children: value });
5275
+ if (typeof value === "boolean") return /* @__PURE__ */ jsx90("span", { className: "text-warning", children: String(value) });
5276
+ return /* @__PURE__ */ jsx90("span", { children: String(value) });
5266
5277
  }
5267
5278
 
5268
5279
  // src/components/diff-viewer.tsx
5269
5280
  import * as React85 from "react";
5270
- import { jsx as jsx90, jsxs as jsxs55 } from "react/jsx-runtime";
5281
+ import { jsx as jsx91, jsxs as jsxs55 } from "react/jsx-runtime";
5271
5282
  function computeLineDiff(oldText, newText) {
5272
5283
  const oldLines = oldText.split("\n");
5273
5284
  const newLines = newText.split("\n");
@@ -5308,20 +5319,20 @@ function computeLineDiff(oldText, newText) {
5308
5319
  var DiffViewer = React85.forwardRef(
5309
5320
  ({ oldText, newText, mode = "unified", oldLabel = "Before", newLabel = "After", className, ...props }, ref) => {
5310
5321
  const ops = React85.useMemo(() => computeLineDiff(oldText, newText), [oldText, newText]);
5311
- return /* @__PURE__ */ jsx90("div", { ref, className: cn("overflow-auto rounded-md border font-mono text-xs", className), ...props, children: mode === "split" ? /* @__PURE__ */ jsx90(SplitDiff, { ops, oldLabel, newLabel }) : /* @__PURE__ */ jsx90(UnifiedDiff, { ops }) });
5322
+ return /* @__PURE__ */ jsx91("div", { ref, className: cn("overflow-auto rounded-md border font-mono text-xs", className), ...props, children: mode === "split" ? /* @__PURE__ */ jsx91(SplitDiff, { ops, oldLabel, newLabel }) : /* @__PURE__ */ jsx91(UnifiedDiff, { ops }) });
5312
5323
  }
5313
5324
  );
5314
5325
  DiffViewer.displayName = "DiffViewer";
5315
5326
  function UnifiedDiff({ ops }) {
5316
- return /* @__PURE__ */ jsx90("div", { role: "table", children: ops.map((op, i) => /* @__PURE__ */ jsxs55(
5327
+ return /* @__PURE__ */ jsx91("div", { role: "table", children: ops.map((op, i) => /* @__PURE__ */ jsxs55(
5317
5328
  "div",
5318
5329
  {
5319
5330
  role: "row",
5320
5331
  className: cn("flex", op.type === "add" && "bg-success/10", op.type === "remove" && "bg-destructive/10"),
5321
5332
  children: [
5322
- /* @__PURE__ */ jsx90("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
5323
- /* @__PURE__ */ jsx90("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
5324
- /* @__PURE__ */ jsx90(
5333
+ /* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
5334
+ /* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none border-r px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
5335
+ /* @__PURE__ */ jsx91(
5325
5336
  "span",
5326
5337
  {
5327
5338
  className: cn(
@@ -5332,7 +5343,7 @@ function UnifiedDiff({ ops }) {
5332
5343
  children: op.type === "add" ? "+" : op.type === "remove" ? "\u2212" : ""
5333
5344
  }
5334
5345
  ),
5335
- /* @__PURE__ */ jsx90("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.text })
5346
+ /* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.text })
5336
5347
  ]
5337
5348
  },
5338
5349
  i
@@ -5341,17 +5352,17 @@ function UnifiedDiff({ ops }) {
5341
5352
  function SplitDiff({ ops, oldLabel, newLabel }) {
5342
5353
  return /* @__PURE__ */ jsxs55("div", { role: "table", children: [
5343
5354
  /* @__PURE__ */ jsxs55("div", { className: "flex border-b bg-muted/40 text-muted-foreground", children: [
5344
- /* @__PURE__ */ jsx90("div", { className: "flex-1 px-2 py-1", children: oldLabel }),
5345
- /* @__PURE__ */ jsx90("div", { className: "flex-1 border-l px-2 py-1", children: newLabel })
5355
+ /* @__PURE__ */ jsx91("div", { className: "flex-1 px-2 py-1", children: oldLabel }),
5356
+ /* @__PURE__ */ jsx91("div", { className: "flex-1 border-l px-2 py-1", children: newLabel })
5346
5357
  ] }),
5347
5358
  ops.map((op, i) => /* @__PURE__ */ jsxs55("div", { role: "row", className: "flex", children: [
5348
5359
  /* @__PURE__ */ jsxs55("div", { className: cn("flex flex-1 items-start", op.type === "remove" && "bg-destructive/10"), children: [
5349
- /* @__PURE__ */ jsx90("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
5350
- /* @__PURE__ */ jsx90("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "add" ? op.text : "" })
5360
+ /* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "add" ? op.oldLine : "" }),
5361
+ /* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "add" ? op.text : "" })
5351
5362
  ] }),
5352
5363
  /* @__PURE__ */ jsxs55("div", { className: cn("flex flex-1 items-start border-l", op.type === "add" && "bg-success/10"), children: [
5353
- /* @__PURE__ */ jsx90("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
5354
- /* @__PURE__ */ jsx90("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "remove" ? op.text : "" })
5364
+ /* @__PURE__ */ jsx91("span", { className: "w-9 shrink-0 select-none px-1.5 text-right text-muted-foreground", children: op.type !== "remove" ? op.newLine : "" }),
5365
+ /* @__PURE__ */ jsx91("span", { className: "min-w-0 flex-1 whitespace-pre px-1", children: op.type !== "remove" ? op.text : "" })
5355
5366
  ] })
5356
5367
  ] }, i))
5357
5368
  ] });
@@ -5361,7 +5372,7 @@ function SplitDiff({ ops, oldLabel, newLabel }) {
5361
5372
  import * as React86 from "react";
5362
5373
  import * as SliderPrimitive3 from "@radix-ui/react-slider";
5363
5374
  import { Pipette } from "lucide-react";
5364
- import { jsx as jsx91, jsxs as jsxs56 } from "react/jsx-runtime";
5375
+ import { jsx as jsx92, jsxs as jsxs56 } from "react/jsx-runtime";
5365
5376
  var clamp = (v, min, max) => Math.min(max, Math.max(min, v));
5366
5377
  function hexToRgba(hex) {
5367
5378
  const h = hex.replace("#", "");
@@ -5495,7 +5506,7 @@ var ColorPicker = React86.forwardRef(
5495
5506
  }
5496
5507
  };
5497
5508
  return /* @__PURE__ */ jsxs56("div", { ref, className: cn("flex w-64 flex-col gap-3 font-sans", className), ...props, children: [
5498
- /* @__PURE__ */ jsx91(
5509
+ /* @__PURE__ */ jsx92(
5499
5510
  "div",
5500
5511
  {
5501
5512
  ref: squareRef,
@@ -5512,7 +5523,7 @@ var ColorPicker = React86.forwardRef(
5512
5523
  backgroundColor: `hsl(${h} 100% 50%)`,
5513
5524
  backgroundImage: "linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, transparent)"
5514
5525
  },
5515
- children: /* @__PURE__ */ jsx91(
5526
+ children: /* @__PURE__ */ jsx92(
5516
5527
  "div",
5517
5528
  {
5518
5529
  className: "absolute size-3.5 -translate-x-1/2 translate-y-1/2 rounded-full border-2 border-white shadow",
@@ -5532,7 +5543,7 @@ var ColorPicker = React86.forwardRef(
5532
5543
  "aria-label": "Hue",
5533
5544
  className: "relative flex h-4 w-full touch-none select-none items-center",
5534
5545
  children: [
5535
- /* @__PURE__ */ jsx91(
5546
+ /* @__PURE__ */ jsx92(
5536
5547
  SliderPrimitive3.Track,
5537
5548
  {
5538
5549
  className: "relative h-3 w-full grow rounded-full",
@@ -5541,7 +5552,7 @@ var ColorPicker = React86.forwardRef(
5541
5552
  }
5542
5553
  }
5543
5554
  ),
5544
- /* @__PURE__ */ jsx91(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
5555
+ /* @__PURE__ */ jsx92(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
5545
5556
  ]
5546
5557
  }
5547
5558
  ),
@@ -5556,7 +5567,7 @@ var ColorPicker = React86.forwardRef(
5556
5567
  "aria-label": "Alpha",
5557
5568
  className: "relative flex h-4 w-full touch-none select-none items-center",
5558
5569
  children: [
5559
- /* @__PURE__ */ jsx91(
5570
+ /* @__PURE__ */ jsx92(
5560
5571
  SliderPrimitive3.Track,
5561
5572
  {
5562
5573
  className: "relative h-3 w-full grow overflow-hidden rounded-full",
@@ -5564,7 +5575,7 @@ var ColorPicker = React86.forwardRef(
5564
5575
  backgroundImage: "conic-gradient(#0000001a 90deg, transparent 90deg 180deg, #0000001a 180deg 270deg, transparent 270deg)",
5565
5576
  backgroundSize: "8px 8px"
5566
5577
  },
5567
- children: /* @__PURE__ */ jsx91(
5578
+ children: /* @__PURE__ */ jsx92(
5568
5579
  "div",
5569
5580
  {
5570
5581
  className: "absolute inset-0",
@@ -5573,12 +5584,12 @@ var ColorPicker = React86.forwardRef(
5573
5584
  )
5574
5585
  }
5575
5586
  ),
5576
- /* @__PURE__ */ jsx91(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
5587
+ /* @__PURE__ */ jsx92(SliderPrimitive3.Thumb, { className: "block size-4 rounded-full border-2 border-white bg-background shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" })
5577
5588
  ]
5578
5589
  }
5579
5590
  ),
5580
5591
  /* @__PURE__ */ jsxs56("div", { className: "flex items-center gap-2", children: [
5581
- /* @__PURE__ */ jsx91(
5592
+ /* @__PURE__ */ jsx92(
5582
5593
  "div",
5583
5594
  {
5584
5595
  className: "size-8 shrink-0 rounded-md border",
@@ -5586,14 +5597,14 @@ var ColorPicker = React86.forwardRef(
5586
5597
  backgroundImage: "conic-gradient(#0000001a 90deg, transparent 90deg 180deg, #0000001a 180deg 270deg, transparent 270deg), linear-gradient(hsl(0 0% 0% / 0), hsl(0 0% 0% / 0))",
5587
5598
  backgroundSize: "8px 8px"
5588
5599
  },
5589
- children: /* @__PURE__ */ jsx91("div", { className: "size-full rounded-md", style: { backgroundColor: value } })
5600
+ children: /* @__PURE__ */ jsx92("div", { className: "size-full rounded-md", style: { backgroundColor: value } })
5590
5601
  }
5591
5602
  ),
5592
5603
  /* @__PURE__ */ jsxs56("div", { className: "flex flex-1 items-center gap-1", children: [
5593
- /* @__PURE__ */ jsx91("span", { className: "text-muted-foreground", children: "#" }),
5594
- /* @__PURE__ */ jsx91(HexField, { value, alpha, onCommit: onChange })
5604
+ /* @__PURE__ */ jsx92("span", { className: "text-muted-foreground", children: "#" }),
5605
+ /* @__PURE__ */ jsx92(HexField, { value, alpha, onCommit: onChange })
5595
5606
  ] }),
5596
- supportsEyeDropper && /* @__PURE__ */ jsx91(
5607
+ supportsEyeDropper && /* @__PURE__ */ jsx92(
5597
5608
  Button,
5598
5609
  {
5599
5610
  type: "button",
@@ -5601,11 +5612,11 @@ var ColorPicker = React86.forwardRef(
5601
5612
  size: "icon",
5602
5613
  "aria-label": "Pick color from screen",
5603
5614
  onClick: pickFromScreen,
5604
- children: /* @__PURE__ */ jsx91(Pipette, { className: "size-4" })
5615
+ children: /* @__PURE__ */ jsx92(Pipette, { className: "size-4" })
5605
5616
  }
5606
5617
  )
5607
5618
  ] }),
5608
- swatches && swatches.length > 0 && /* @__PURE__ */ jsx91("div", { className: "flex flex-wrap gap-1.5", children: swatches.map((sw) => /* @__PURE__ */ jsx91(
5619
+ swatches && swatches.length > 0 && /* @__PURE__ */ jsx92("div", { className: "flex flex-wrap gap-1.5", children: swatches.map((sw) => /* @__PURE__ */ jsx92(
5609
5620
  "button",
5610
5621
  {
5611
5622
  type: "button",
@@ -5638,7 +5649,7 @@ function HexField({
5638
5649
  setDraft(value.replace("#", "").toUpperCase());
5639
5650
  }
5640
5651
  };
5641
- return /* @__PURE__ */ jsx91(
5652
+ return /* @__PURE__ */ jsx92(
5642
5653
  Input,
5643
5654
  {
5644
5655
  value: draft,
@@ -5678,11 +5689,12 @@ import {
5678
5689
  verticalListSortingStrategy
5679
5690
  } from "@dnd-kit/sortable";
5680
5691
  import { CSS } from "@dnd-kit/utilities";
5681
- import { jsx as jsx92, jsxs as jsxs57 } from "react/jsx-runtime";
5692
+ import { tokens } from "@kinetixui/tokens";
5693
+ import { jsx as jsx93, jsxs as jsxs57 } from "react/jsx-runtime";
5682
5694
  var KanbanBoard = React87.forwardRef(
5683
5695
  ({ columns, onColumnsChange, className, ...props }, ref) => {
5684
5696
  const sensors = useSensors(
5685
- useSensor(PointerSensor, { activationConstraint: { distance: 4 } }),
5697
+ useSensor(PointerSensor, { activationConstraint: { distance: tokens.interaction.drag.threshold } }),
5686
5698
  useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates })
5687
5699
  );
5688
5700
  const [activeCard, setActiveCard] = React87.useState(null);
@@ -5782,8 +5794,8 @@ var KanbanBoard = React87.forwardRef(
5782
5794
  lastOverId.current = null;
5783
5795
  },
5784
5796
  children: [
5785
- /* @__PURE__ */ jsx92("div", { ref, role: "group", className: cn("flex items-start gap-4 overflow-x-auto font-sans", className), ...props, children: columns.map((column) => /* @__PURE__ */ jsx92(KanbanColumnView, { column }, column.id)) }),
5786
- /* @__PURE__ */ jsx92(DragOverlay, { children: activeCard ? /* @__PURE__ */ jsx92(KanbanCardView, { card: activeCard }) : null })
5797
+ /* @__PURE__ */ jsx93("div", { ref, role: "group", className: cn("flex items-start gap-4 overflow-x-auto font-sans", className), ...props, children: columns.map((column) => /* @__PURE__ */ jsx93(KanbanColumnView, { column }, column.id)) }),
5798
+ /* @__PURE__ */ jsx93(DragOverlay, { children: activeCard ? /* @__PURE__ */ jsx93(KanbanCardView, { card: activeCard }) : null })
5787
5799
  ]
5788
5800
  }
5789
5801
  );
@@ -5794,10 +5806,10 @@ function KanbanColumnView({ column }) {
5794
5806
  const { setNodeRef } = useDroppable({ id: column.id });
5795
5807
  return /* @__PURE__ */ jsxs57("div", { className: "flex w-64 shrink-0 flex-col gap-2 rounded-md border bg-muted/30 p-2", children: [
5796
5808
  /* @__PURE__ */ jsxs57("div", { className: "flex items-center justify-between px-1 py-1", children: [
5797
- /* @__PURE__ */ jsx92("span", { className: "text-sm font-medium text-foreground", children: column.title }),
5798
- /* @__PURE__ */ jsx92("span", { className: "text-xs text-muted-foreground", children: column.cards.length })
5809
+ /* @__PURE__ */ jsx93("span", { className: "text-sm font-medium text-foreground", children: column.title }),
5810
+ /* @__PURE__ */ jsx93("span", { className: "text-xs text-muted-foreground", children: column.cards.length })
5799
5811
  ] }),
5800
- /* @__PURE__ */ jsx92(SortableContext, { items: column.cards.map((c) => c.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx92("div", { ref: setNodeRef, className: "flex min-h-10 flex-col gap-2", children: column.cards.map((card) => /* @__PURE__ */ jsx92(SortableKanbanCard, { card }, card.id)) }) })
5812
+ /* @__PURE__ */ jsx93(SortableContext, { items: column.cards.map((c) => c.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx93("div", { ref: setNodeRef, className: "flex min-h-10 flex-col gap-2", children: column.cards.map((card) => /* @__PURE__ */ jsx93(SortableKanbanCard, { card }, card.id)) }) })
5801
5813
  ] });
5802
5814
  }
5803
5815
  function SortableKanbanCard({ card }) {
@@ -5807,16 +5819,16 @@ function SortableKanbanCard({ card }) {
5807
5819
  transition,
5808
5820
  opacity: isDragging ? 0.4 : 1
5809
5821
  };
5810
- return /* @__PURE__ */ jsx92("div", { ref: setNodeRef, style, ...attributes, ...listeners, children: /* @__PURE__ */ jsx92(KanbanCardView, { card }) });
5822
+ return /* @__PURE__ */ jsx93("div", { ref: setNodeRef, style, ...attributes, ...listeners, children: /* @__PURE__ */ jsx93(KanbanCardView, { card }) });
5811
5823
  }
5812
5824
  function KanbanCardView({ card }) {
5813
- return /* @__PURE__ */ jsx92("div", { className: "cursor-grab touch-none rounded-md border bg-background p-3 text-sm text-foreground shadow-sm outline-none active:cursor-grabbing focus-visible:ring-1 focus-visible:ring-ring", children: card.content });
5825
+ return /* @__PURE__ */ jsx93("div", { className: "cursor-grab touch-none rounded-md border bg-background p-3 text-sm text-foreground shadow-sm outline-none active:cursor-grabbing focus-visible:ring-1 focus-visible:ring-ring", children: card.content });
5814
5826
  }
5815
5827
 
5816
5828
  // src/components/markdown-editor.tsx
5817
5829
  import * as React88 from "react";
5818
5830
  import { Bold, Code, Eye as Eye2, EyeOff as EyeOff2, Heading2, Italic, Link as LinkIcon, List as List4, ListOrdered, Quote as Quote2 } from "lucide-react";
5819
- import { jsx as jsx93, jsxs as jsxs58 } from "react/jsx-runtime";
5831
+ import { jsx as jsx94, jsxs as jsxs58 } from "react/jsx-runtime";
5820
5832
  function wrapSelection(text, start, end, before, after, placeholder) {
5821
5833
  const selected = text.slice(start, end) || placeholder;
5822
5834
  const next = text.slice(0, start) + before + selected + after + text.slice(end);
@@ -5950,27 +5962,27 @@ var MarkdownEditor = React88.forwardRef(
5950
5962
  };
5951
5963
  return /* @__PURE__ */ jsxs58("div", { ref, className: cn("overflow-hidden rounded-md border font-sans", className), ...props, children: [
5952
5964
  /* @__PURE__ */ jsxs58("div", { role: "toolbar", "aria-label": "Formatting", className: "flex items-center gap-0.5 border-b bg-muted/40 p-1", children: [
5953
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Bold", onClick: () => applyInline("**", "**", "bold text"), children: /* @__PURE__ */ jsx93(Bold, { className: "size-4" }) }),
5954
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Italic", onClick: () => applyInline("*", "*", "italic text"), children: /* @__PURE__ */ jsx93(Italic, { className: "size-4" }) }),
5955
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Heading", onClick: () => applyLinePrefix(() => "## "), children: /* @__PURE__ */ jsx93(Heading2, { className: "size-4" }) }),
5956
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Link", onClick: () => applyInline("[", "](https://)", "link text"), children: /* @__PURE__ */ jsx93(LinkIcon, { className: "size-4" }) }),
5957
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Bulleted list", onClick: () => applyLinePrefix(() => "- "), children: /* @__PURE__ */ jsx93(List4, { className: "size-4" }) }),
5958
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Numbered list", onClick: () => applyLinePrefix((i) => `${i + 1}. `), children: /* @__PURE__ */ jsx93(ListOrdered, { className: "size-4" }) }),
5959
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Code", onClick: () => applyInline("`", "`", "code"), children: /* @__PURE__ */ jsx93(Code, { className: "size-4" }) }),
5960
- /* @__PURE__ */ jsx93(ToolbarButton, { label: "Quote", onClick: () => applyLinePrefix(() => "> "), children: /* @__PURE__ */ jsx93(Quote2, { className: "size-4" }) }),
5961
- /* @__PURE__ */ jsx93(
5965
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Bold", onClick: () => applyInline("**", "**", "bold text"), children: /* @__PURE__ */ jsx94(Bold, { className: "size-4" }) }),
5966
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Italic", onClick: () => applyInline("*", "*", "italic text"), children: /* @__PURE__ */ jsx94(Italic, { className: "size-4" }) }),
5967
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Heading", onClick: () => applyLinePrefix(() => "## "), children: /* @__PURE__ */ jsx94(Heading2, { className: "size-4" }) }),
5968
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Link", onClick: () => applyInline("[", "](https://)", "link text"), children: /* @__PURE__ */ jsx94(LinkIcon, { className: "size-4" }) }),
5969
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Bulleted list", onClick: () => applyLinePrefix(() => "- "), children: /* @__PURE__ */ jsx94(List4, { className: "size-4" }) }),
5970
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Numbered list", onClick: () => applyLinePrefix((i) => `${i + 1}. `), children: /* @__PURE__ */ jsx94(ListOrdered, { className: "size-4" }) }),
5971
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Code", onClick: () => applyInline("`", "`", "code"), children: /* @__PURE__ */ jsx94(Code, { className: "size-4" }) }),
5972
+ /* @__PURE__ */ jsx94(ToolbarButton, { label: "Quote", onClick: () => applyLinePrefix(() => "> "), children: /* @__PURE__ */ jsx94(Quote2, { className: "size-4" }) }),
5973
+ /* @__PURE__ */ jsx94(
5962
5974
  ToolbarButton,
5963
5975
  {
5964
5976
  label: showPreview ? "Hide preview" : "Show preview",
5965
5977
  onClick: () => setShowPreview((v) => !v),
5966
5978
  active: showPreview,
5967
5979
  className: "ml-auto",
5968
- children: showPreview ? /* @__PURE__ */ jsx93(EyeOff2, { className: "size-4" }) : /* @__PURE__ */ jsx93(Eye2, { className: "size-4" })
5980
+ children: showPreview ? /* @__PURE__ */ jsx94(EyeOff2, { className: "size-4" }) : /* @__PURE__ */ jsx94(Eye2, { className: "size-4" })
5969
5981
  }
5970
5982
  )
5971
5983
  ] }),
5972
5984
  /* @__PURE__ */ jsxs58("div", { className: cn("grid", showPreview && "grid-cols-2 divide-x"), children: [
5973
- /* @__PURE__ */ jsx93(
5985
+ /* @__PURE__ */ jsx94(
5974
5986
  Textarea,
5975
5987
  {
5976
5988
  ref: textareaRef,
@@ -5981,7 +5993,7 @@ var MarkdownEditor = React88.forwardRef(
5981
5993
  className: "resize-none rounded-none border-0 font-mono text-[13px] focus-visible:border-transparent focus-visible:shadow-none"
5982
5994
  }
5983
5995
  ),
5984
- showPreview && /* @__PURE__ */ jsx93(
5996
+ showPreview && /* @__PURE__ */ jsx94(
5985
5997
  "div",
5986
5998
  {
5987
5999
  className: "overflow-auto p-3 text-sm [&_a]:text-primary [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground [&_code]:rounded-sm [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.9em] [&_h1]:text-xl [&_h1]:font-semibold [&_h2]:text-lg [&_h2]:font-semibold [&_h3]:font-semibold [&_li]:ml-5 [&_ol]:list-decimal [&_p]:mb-2 [&_pre]:overflow-auto [&_pre]:rounded-sm [&_pre]:bg-muted [&_pre]:p-2 [&_ul]:list-disc",
@@ -6000,7 +6012,7 @@ function ToolbarButton({
6000
6012
  className,
6001
6013
  children
6002
6014
  }) {
6003
- return /* @__PURE__ */ jsx93(
6015
+ return /* @__PURE__ */ jsx94(
6004
6016
  "button",
6005
6017
  {
6006
6018
  type: "button",
@@ -6194,6 +6206,7 @@ export {
6194
6206
  KanbanBoard,
6195
6207
  Kbd,
6196
6208
  KbdGroup,
6209
+ KinetixDirectionProvider,
6197
6210
  Label2 as Label,
6198
6211
  List3 as List,
6199
6212
  ListItem,