@lessly/ui 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +111 -2
  2. package/dist/index.js +1085 -783
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -324,22 +324,53 @@ var labelVariants = cva2(
324
324
  var Label2 = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
325
325
  Label2.displayName = LabelPrimitive.Root.displayName;
326
326
 
327
+ // src/components/page-header.tsx
328
+ import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
329
+ function PageHeader({ title, subtitle, icon: Icon, media, badge, actions, id }) {
330
+ if (Icon && !subtitle && !media && process.env.NODE_ENV !== "production") {
331
+ console.warn("PageHeader: `icon` needs a `subtitle` to render the medallion; medallion dropped.");
332
+ }
333
+ const leading = media ?? (Icon && subtitle ? /* @__PURE__ */ jsx7(
334
+ "span",
335
+ {
336
+ "data-slot": "page-header-medallion",
337
+ className: "inline-flex size-12 shrink-0 items-center justify-center rounded-full border border-border-subtle bg-bg-secondary text-text-secondary",
338
+ children: /* @__PURE__ */ jsx7(Icon, { className: "size-6", "aria-hidden": true })
339
+ }
340
+ ) : null);
341
+ const heading = /* @__PURE__ */ jsx7("h2", { id, className: "text-lg font-semibold text-text-primary", children: title });
342
+ if (!leading && !subtitle && !badge && !actions) {
343
+ return heading;
344
+ }
345
+ return /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3", children: [
346
+ leading,
347
+ /* @__PURE__ */ jsxs3("div", { className: "min-w-0", children: [
348
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2", children: [
349
+ heading,
350
+ badge
351
+ ] }),
352
+ subtitle && /* @__PURE__ */ jsx7("p", { className: "text-sm text-text-secondary", children: subtitle })
353
+ ] }),
354
+ actions && /* @__PURE__ */ jsx7("div", { className: "ml-auto shrink-0", children: actions })
355
+ ] });
356
+ }
357
+
327
358
  // src/components/section-intro.tsx
328
359
  import { Info } from "lucide-react";
329
- import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
360
+ import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
330
361
  function SectionIntro({ what, when }) {
331
- return /* @__PURE__ */ jsxs3("div", { className: "bg-bg-brand-subtle rounded-xl px-5 py-4 flex items-start gap-3 mb-5", children: [
332
- /* @__PURE__ */ jsx7(Info, { className: "w-4 h-4 text-text-brand mt-0.5 flex-shrink-0", "aria-hidden": "true" }),
333
- /* @__PURE__ */ jsxs3("div", { children: [
334
- /* @__PURE__ */ jsx7("p", { className: "text-[0.8125rem] text-text-primary leading-relaxed", children: what }),
335
- /* @__PURE__ */ jsx7("p", { className: "text-[0.8125rem] text-text-secondary leading-relaxed mt-1", children: when })
362
+ return /* @__PURE__ */ jsxs4("div", { className: "bg-bg-brand-subtle rounded-xl px-5 py-4 flex items-start gap-3 mb-5", children: [
363
+ /* @__PURE__ */ jsx8(Info, { className: "w-4 h-4 text-text-brand mt-0.5 flex-shrink-0", "aria-hidden": "true" }),
364
+ /* @__PURE__ */ jsxs4("div", { children: [
365
+ /* @__PURE__ */ jsx8("p", { className: "text-[0.8125rem] text-text-primary leading-relaxed", children: what }),
366
+ /* @__PURE__ */ jsx8("p", { className: "text-[0.8125rem] text-text-secondary leading-relaxed mt-1", children: when })
336
367
  ] })
337
368
  ] });
338
369
  }
339
370
 
340
371
  // src/components/select.tsx
341
372
  import { ChevronDown } from "lucide-react";
342
- import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
373
+ import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
343
374
  function Select({
344
375
  value,
345
376
  onValueChange,
@@ -354,8 +385,8 @@ function Select({
354
385
  optionTestId
355
386
  }) {
356
387
  const selected = options.find((o) => o.value === value);
357
- return /* @__PURE__ */ jsxs4(DropdownMenu, { children: [
358
- /* @__PURE__ */ jsxs4(
388
+ return /* @__PURE__ */ jsxs5(DropdownMenu, { children: [
389
+ /* @__PURE__ */ jsxs5(
359
390
  DropdownMenuTrigger,
360
391
  {
361
392
  type: "button",
@@ -369,24 +400,24 @@ function Select({
369
400
  className
370
401
  ),
371
402
  children: [
372
- /* @__PURE__ */ jsx8("span", { className: cn("truncate", !selected && "text-text-tertiary"), children: selected ? selected.label : placeholder }),
373
- /* @__PURE__ */ jsx8(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 text-text-tertiary" })
403
+ /* @__PURE__ */ jsx9("span", { className: cn("truncate", !selected && "text-text-tertiary"), children: selected ? selected.label : placeholder }),
404
+ /* @__PURE__ */ jsx9(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 text-text-tertiary" })
374
405
  ]
375
406
  }
376
407
  ),
377
- /* @__PURE__ */ jsx8(
408
+ /* @__PURE__ */ jsx9(
378
409
  DropdownMenuContent,
379
410
  {
380
411
  align: "start",
381
412
  className: "max-h-64 w-[var(--radix-dropdown-menu-trigger-width)] overflow-y-auto",
382
- children: /* @__PURE__ */ jsx8(DropdownMenuRadioGroup, { value: value ?? "", onValueChange, children: options.map((o) => /* @__PURE__ */ jsx8(DropdownMenuRadioItem, { value: o.value, "data-testid": optionTestId?.(o.value), children: o.label }, o.value)) })
413
+ children: /* @__PURE__ */ jsx9(DropdownMenuRadioGroup, { value: value ?? "", onValueChange, children: options.map((o) => /* @__PURE__ */ jsx9(DropdownMenuRadioItem, { value: o.value, "data-testid": optionTestId?.(o.value), children: o.label }, o.value)) })
383
414
  }
384
415
  )
385
416
  ] });
386
417
  }
387
418
 
388
419
  // src/components/switch.tsx
389
- import { jsx as jsx9 } from "react/jsx-runtime";
420
+ import { jsx as jsx10 } from "react/jsx-runtime";
390
421
  function Switch({
391
422
  checked,
392
423
  onCheckedChange,
@@ -396,7 +427,7 @@ function Switch({
396
427
  "aria-label": ariaLabel,
397
428
  "data-testid": testId
398
429
  }) {
399
- return /* @__PURE__ */ jsx9(
430
+ return /* @__PURE__ */ jsx10(
400
431
  "button",
401
432
  {
402
433
  type: "button",
@@ -408,7 +439,7 @@ function Switch({
408
439
  disabled,
409
440
  onClick: () => onCheckedChange(!checked),
410
441
  className: `relative inline-flex h-6 w-10 shrink-0 cursor-pointer rounded-full transition-colors outline-none focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface ${checked ? "bg-bg-brand-bright" : "bg-border-default"} ${disabled ? "cursor-not-allowed opacity-50" : ""} ${className}`,
411
- children: /* @__PURE__ */ jsx9(
442
+ children: /* @__PURE__ */ jsx10(
412
443
  "span",
413
444
  {
414
445
  "aria-hidden": "true",
@@ -423,8 +454,8 @@ function Switch({
423
454
  import * as React7 from "react";
424
455
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
425
456
  import { Check as Check2 } from "lucide-react";
426
- import { jsx as jsx10 } from "react/jsx-runtime";
427
- var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
457
+ import { jsx as jsx11 } from "react/jsx-runtime";
458
+ var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
428
459
  CheckboxPrimitive.Root,
429
460
  {
430
461
  ref,
@@ -433,7 +464,7 @@ var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__
433
464
  className
434
465
  ),
435
466
  ...props,
436
- children: /* @__PURE__ */ jsx10(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx10(Check2, { className: "h-4 w-4" }) })
467
+ children: /* @__PURE__ */ jsx11(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx11(Check2, { className: "h-4 w-4" }) })
437
468
  }
438
469
  ));
439
470
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
@@ -442,10 +473,10 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
442
473
  import * as React8 from "react";
443
474
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
444
475
  import { Circle as Circle2 } from "lucide-react";
445
- import { jsx as jsx11 } from "react/jsx-runtime";
446
- var RadioGroup2 = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props }));
476
+ import { jsx as jsx12 } from "react/jsx-runtime";
477
+ var RadioGroup2 = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(RadioGroupPrimitive.Root, { ref, className: cn("grid gap-2", className), ...props }));
447
478
  RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
448
- var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
479
+ var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
449
480
  RadioGroupPrimitive.Item,
450
481
  {
451
482
  ref,
@@ -454,17 +485,17 @@ var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => /* @__P
454
485
  className
455
486
  ),
456
487
  ...props,
457
- children: /* @__PURE__ */ jsx11(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx11(Circle2, { className: "h-2.5 w-2.5 fill-blue-400 text-blue-400" }) })
488
+ children: /* @__PURE__ */ jsx12(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx12(Circle2, { className: "h-2.5 w-2.5 fill-blue-400 text-blue-400" }) })
458
489
  }
459
490
  ));
460
491
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
461
492
 
462
493
  // src/components/textarea.tsx
463
494
  import * as React9 from "react";
464
- import { jsx as jsx12 } from "react/jsx-runtime";
495
+ import { jsx as jsx13 } from "react/jsx-runtime";
465
496
  var Textarea = React9.forwardRef(
466
497
  ({ className, ...props }, ref) => {
467
- return /* @__PURE__ */ jsx12(
498
+ return /* @__PURE__ */ jsx13(
468
499
  "textarea",
469
500
  {
470
501
  ref,
@@ -482,18 +513,18 @@ Textarea.displayName = "Textarea";
482
513
  // src/components/slider.tsx
483
514
  import * as React10 from "react";
484
515
  import * as SliderPrimitive from "@radix-ui/react-slider";
485
- import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
516
+ import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
486
517
  var Slider = React10.forwardRef(({ className, ...props }, ref) => {
487
518
  const thumbCount = (Array.isArray(props.value) ? props.value.length : void 0) ?? (Array.isArray(props.defaultValue) ? props.defaultValue.length : void 0) ?? 1;
488
- return /* @__PURE__ */ jsxs5(
519
+ return /* @__PURE__ */ jsxs6(
489
520
  SliderPrimitive.Root,
490
521
  {
491
522
  ref,
492
523
  className: cn("relative flex w-full touch-none select-none items-center", className),
493
524
  ...props,
494
525
  children: [
495
- /* @__PURE__ */ jsx13(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx13(SliderPrimitive.Range, { className: "absolute h-full bg-blue-400" }) }),
496
- Array.from({ length: thumbCount }).map((_, i) => /* @__PURE__ */ jsx13(
526
+ /* @__PURE__ */ jsx14(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx14(SliderPrimitive.Range, { className: "absolute h-full bg-blue-400" }) }),
527
+ Array.from({ length: thumbCount }).map((_, i) => /* @__PURE__ */ jsx14(
497
528
  SliderPrimitive.Thumb,
498
529
  {
499
530
  className: "block size-5 rounded-full border border-border-brand bg-bg-elevated shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
@@ -510,7 +541,7 @@ Slider.displayName = SliderPrimitive.Root.displayName;
510
541
  import * as React11 from "react";
511
542
  import * as TogglePrimitive from "@radix-ui/react-toggle";
512
543
  import { cva as cva3 } from "class-variance-authority";
513
- import { jsx as jsx14 } from "react/jsx-runtime";
544
+ import { jsx as jsx15 } from "react/jsx-runtime";
514
545
  var toggleVariants = cva3(
515
546
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-bg-secondary hover:text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-bg-secondary data-[state=on]:text-text-primary [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
516
547
  {
@@ -528,30 +559,30 @@ var toggleVariants = cva3(
528
559
  defaultVariants: { variant: "default", size: "default" }
529
560
  }
530
561
  );
531
- var Toggle = React11.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx14(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
562
+ var Toggle = React11.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx15(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
532
563
  Toggle.displayName = TogglePrimitive.Root.displayName;
533
564
 
534
565
  // src/components/toggle-group.tsx
535
566
  import * as React12 from "react";
536
567
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
537
- import { jsx as jsx15 } from "react/jsx-runtime";
568
+ import { jsx as jsx16 } from "react/jsx-runtime";
538
569
  var ToggleGroupContext = React12.createContext({
539
570
  size: "default",
540
571
  variant: "default"
541
572
  });
542
- var ToggleGroup = React12.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx15(
573
+ var ToggleGroup = React12.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx16(
543
574
  ToggleGroupPrimitive.Root,
544
575
  {
545
576
  ref,
546
577
  className: cn("flex items-center justify-center gap-1", className),
547
578
  ...props,
548
- children: /* @__PURE__ */ jsx15(ToggleGroupContext.Provider, { value: { variant, size }, children })
579
+ children: /* @__PURE__ */ jsx16(ToggleGroupContext.Provider, { value: { variant, size }, children })
549
580
  }
550
581
  ));
551
582
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
552
583
  var ToggleGroupItem = React12.forwardRef(({ className, children, variant, size, ...props }, ref) => {
553
584
  const context = React12.useContext(ToggleGroupContext);
554
- return /* @__PURE__ */ jsx15(
585
+ return /* @__PURE__ */ jsx16(
555
586
  ToggleGroupPrimitive.Item,
556
587
  {
557
588
  ref,
@@ -567,8 +598,8 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
567
598
  import * as React13 from "react";
568
599
  import { OTPInput, OTPInputContext } from "input-otp";
569
600
  import { Minus } from "lucide-react";
570
- import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
571
- var InputOTP = React13.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx16(
601
+ import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
602
+ var InputOTP = React13.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx17(
572
603
  OTPInput,
573
604
  {
574
605
  ref,
@@ -579,7 +610,7 @@ var InputOTP = React13.forwardRef(({ className, containerClassName, ...props },
579
610
  ));
580
611
  InputOTP.displayName = "InputOTP";
581
612
  var InputOTPGroup = React13.forwardRef(
582
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx16("div", { ref, className: cn("flex items-center", className), ...props })
613
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx17("div", { ref, className: cn("flex items-center", className), ...props })
583
614
  );
584
615
  InputOTPGroup.displayName = "InputOTPGroup";
585
616
  var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
@@ -588,7 +619,7 @@ var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
588
619
  const char = slot?.char;
589
620
  const hasFakeCaret = slot?.hasFakeCaret;
590
621
  const isActive = slot?.isActive;
591
- return /* @__PURE__ */ jsxs6(
622
+ return /* @__PURE__ */ jsxs7(
592
623
  "div",
593
624
  {
594
625
  ref,
@@ -600,25 +631,25 @@ var InputOTPSlot = React13.forwardRef(({ index, className, ...props }, ref) => {
600
631
  ...props,
601
632
  children: [
602
633
  char,
603
- hasFakeCaret && /* @__PURE__ */ jsx16("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx16("div", { className: "h-4 w-px animate-pulse bg-text-primary" }) })
634
+ hasFakeCaret && /* @__PURE__ */ jsx17("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx17("div", { className: "h-4 w-px animate-pulse bg-text-primary" }) })
604
635
  ]
605
636
  }
606
637
  );
607
638
  });
608
639
  InputOTPSlot.displayName = "InputOTPSlot";
609
640
  var InputOTPSeparator = React13.forwardRef(
610
- ({ ...props }, ref) => /* @__PURE__ */ jsx16("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx16(Minus, { className: "h-4 w-4 text-text-tertiary" }) })
641
+ ({ ...props }, ref) => /* @__PURE__ */ jsx17("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx17(Minus, { className: "h-4 w-4 text-text-tertiary" }) })
611
642
  );
612
643
  InputOTPSeparator.displayName = "InputOTPSeparator";
613
644
 
614
645
  // src/components/popover.tsx
615
646
  import * as React14 from "react";
616
647
  import * as PopoverPrimitive from "@radix-ui/react-popover";
617
- import { jsx as jsx17 } from "react/jsx-runtime";
648
+ import { jsx as jsx18 } from "react/jsx-runtime";
618
649
  var Popover = PopoverPrimitive.Root;
619
650
  var PopoverTrigger = PopoverPrimitive.Trigger;
620
651
  var PopoverAnchor = PopoverPrimitive.Anchor;
621
- var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx17(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
652
+ var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
622
653
  PopoverPrimitive.Content,
623
654
  {
624
655
  ref,
@@ -636,11 +667,11 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
636
667
  // src/components/tooltip.tsx
637
668
  import * as React15 from "react";
638
669
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
639
- import { jsx as jsx18 } from "react/jsx-runtime";
670
+ import { jsx as jsx19 } from "react/jsx-runtime";
640
671
  var TooltipProvider = TooltipPrimitive.Provider;
641
672
  var Tooltip = TooltipPrimitive.Root;
642
673
  var TooltipTrigger = TooltipPrimitive.Trigger;
643
- var TooltipContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
674
+ var TooltipContent = React15.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx19(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
644
675
  TooltipPrimitive.Content,
645
676
  {
646
677
  ref,
@@ -657,10 +688,10 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
657
688
  // src/components/hover-card.tsx
658
689
  import * as React16 from "react";
659
690
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
660
- import { jsx as jsx19 } from "react/jsx-runtime";
691
+ import { jsx as jsx20 } from "react/jsx-runtime";
661
692
  var HoverCard = HoverCardPrimitive.Root;
662
693
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
663
- var HoverCardContent = React16.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx19(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
694
+ var HoverCardContent = React16.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx20(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
664
695
  HoverCardPrimitive.Content,
665
696
  {
666
697
  ref,
@@ -680,12 +711,12 @@ import * as React17 from "react";
680
711
  import * as SheetPrimitive from "@radix-ui/react-dialog";
681
712
  import { cva as cva4 } from "class-variance-authority";
682
713
  import { X as X2 } from "lucide-react";
683
- import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
714
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
684
715
  var Sheet = SheetPrimitive.Root;
685
716
  var SheetTrigger = SheetPrimitive.Trigger;
686
717
  var SheetClose = SheetPrimitive.Close;
687
718
  var SheetPortal = SheetPrimitive.Portal;
688
- var SheetOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
719
+ var SheetOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
689
720
  SheetPrimitive.Overlay,
690
721
  {
691
722
  ref,
@@ -713,9 +744,9 @@ var sheetVariants = cva4(
713
744
  }
714
745
  }
715
746
  );
716
- var SheetContent = React17.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(SheetPortal, { children: [
717
- /* @__PURE__ */ jsx20(SheetOverlay, {}),
718
- /* @__PURE__ */ jsxs7(
747
+ var SheetContent = React17.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(SheetPortal, { children: [
748
+ /* @__PURE__ */ jsx21(SheetOverlay, {}),
749
+ /* @__PURE__ */ jsxs8(
719
750
  SheetPrimitive.Content,
720
751
  {
721
752
  ref,
@@ -723,16 +754,16 @@ var SheetContent = React17.forwardRef(({ side = "right", className, children, ..
723
754
  ...props,
724
755
  children: [
725
756
  children,
726
- /* @__PURE__ */ jsxs7(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm text-text-tertiary opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-border-focus disabled:pointer-events-none", children: [
727
- /* @__PURE__ */ jsx20(X2, { className: "h-4 w-4" }),
728
- /* @__PURE__ */ jsx20("span", { className: "sr-only", children: "Close" })
757
+ /* @__PURE__ */ jsxs8(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm text-text-tertiary opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-border-focus disabled:pointer-events-none", children: [
758
+ /* @__PURE__ */ jsx21(X2, { className: "h-4 w-4" }),
759
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Close" })
729
760
  ] })
730
761
  ]
731
762
  }
732
763
  )
733
764
  ] }));
734
765
  SheetContent.displayName = SheetPrimitive.Content.displayName;
735
- var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx20(
766
+ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx21(
736
767
  "div",
737
768
  {
738
769
  className: cn("flex flex-col gap-1.5 text-left", className),
@@ -740,7 +771,7 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx20(
740
771
  }
741
772
  );
742
773
  SheetHeader.displayName = "SheetHeader";
743
- var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx20(
774
+ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx21(
744
775
  "div",
745
776
  {
746
777
  className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
@@ -748,7 +779,7 @@ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx20(
748
779
  }
749
780
  );
750
781
  SheetFooter.displayName = "SheetFooter";
751
- var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
782
+ var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
752
783
  SheetPrimitive.Title,
753
784
  {
754
785
  ref,
@@ -757,7 +788,7 @@ var SheetTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
757
788
  }
758
789
  ));
759
790
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
760
- var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
791
+ var SheetDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
761
792
  SheetPrimitive.Description,
762
793
  {
763
794
  ref,
@@ -770,16 +801,16 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName;
770
801
  // src/components/drawer.tsx
771
802
  import * as React18 from "react";
772
803
  import { Drawer as DrawerPrimitive } from "vaul";
773
- import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
804
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
774
805
  var Drawer = ({
775
806
  shouldScaleBackground = true,
776
807
  ...props
777
- }) => /* @__PURE__ */ jsx21(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
808
+ }) => /* @__PURE__ */ jsx22(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
778
809
  Drawer.displayName = "Drawer";
779
810
  var DrawerTrigger = DrawerPrimitive.Trigger;
780
811
  var DrawerPortal = DrawerPrimitive.Portal;
781
812
  var DrawerClose = DrawerPrimitive.Close;
782
- var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
813
+ var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
783
814
  DrawerPrimitive.Overlay,
784
815
  {
785
816
  ref,
@@ -788,9 +819,9 @@ var DrawerOverlay = React18.forwardRef(({ className, ...props }, ref) => /* @__P
788
819
  }
789
820
  ));
790
821
  DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
791
- var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(DrawerPortal, { children: [
792
- /* @__PURE__ */ jsx21(DrawerOverlay, {}),
793
- /* @__PURE__ */ jsxs8(
822
+ var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs9(DrawerPortal, { children: [
823
+ /* @__PURE__ */ jsx22(DrawerOverlay, {}),
824
+ /* @__PURE__ */ jsxs9(
794
825
  DrawerPrimitive.Content,
795
826
  {
796
827
  ref,
@@ -800,18 +831,18 @@ var DrawerContent = React18.forwardRef(({ className, children, ...props }, ref)
800
831
  ),
801
832
  ...props,
802
833
  children: [
803
- /* @__PURE__ */ jsx21("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-bg-secondary" }),
834
+ /* @__PURE__ */ jsx22("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-bg-secondary" }),
804
835
  children
805
836
  ]
806
837
  }
807
838
  )
808
839
  ] }));
809
840
  DrawerContent.displayName = "DrawerContent";
810
- var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx21("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props });
841
+ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22("div", { className: cn("grid gap-1.5 p-4 text-center sm:text-left", className), ...props });
811
842
  DrawerHeader.displayName = "DrawerHeader";
812
- var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx21("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
843
+ var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
813
844
  DrawerFooter.displayName = "DrawerFooter";
814
- var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
845
+ var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
815
846
  DrawerPrimitive.Title,
816
847
  {
817
848
  ref,
@@ -820,7 +851,7 @@ var DrawerTitle = React18.forwardRef(({ className, ...props }, ref) => /* @__PUR
820
851
  }
821
852
  ));
822
853
  DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
823
- var DrawerDescription = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
854
+ var DrawerDescription = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
824
855
  DrawerPrimitive.Description,
825
856
  {
826
857
  ref,
@@ -833,11 +864,11 @@ DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
833
864
  // src/components/alert-dialog.tsx
834
865
  import * as React19 from "react";
835
866
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
836
- import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
867
+ import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
837
868
  var AlertDialog = AlertDialogPrimitive.Root;
838
869
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
839
870
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
840
- var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
871
+ var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
841
872
  AlertDialogPrimitive.Overlay,
842
873
  {
843
874
  ref,
@@ -849,9 +880,9 @@ var AlertDialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /*
849
880
  }
850
881
  ));
851
882
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
852
- var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(AlertDialogPortal, { children: [
853
- /* @__PURE__ */ jsx22(AlertDialogOverlay, {}),
854
- /* @__PURE__ */ jsx22(
883
+ var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(AlertDialogPortal, { children: [
884
+ /* @__PURE__ */ jsx23(AlertDialogOverlay, {}),
885
+ /* @__PURE__ */ jsx23(
855
886
  AlertDialogPrimitive.Content,
856
887
  {
857
888
  ref,
@@ -864,7 +895,7 @@ var AlertDialogContent = React19.forwardRef(({ className, ...props }, ref) => /*
864
895
  )
865
896
  ] }));
866
897
  AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
867
- var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22(
898
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx23(
868
899
  "div",
869
900
  {
870
901
  className: cn("flex flex-col gap-1.5 text-left", className),
@@ -872,7 +903,7 @@ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22(
872
903
  }
873
904
  );
874
905
  AlertDialogHeader.displayName = "AlertDialogHeader";
875
- var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22(
906
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23(
876
907
  "div",
877
908
  {
878
909
  className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
@@ -880,7 +911,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22(
880
911
  }
881
912
  );
882
913
  AlertDialogFooter.displayName = "AlertDialogFooter";
883
- var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
914
+ var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
884
915
  AlertDialogPrimitive.Title,
885
916
  {
886
917
  ref,
@@ -889,7 +920,7 @@ var AlertDialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @
889
920
  }
890
921
  ));
891
922
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
892
- var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
923
+ var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
893
924
  AlertDialogPrimitive.Description,
894
925
  {
895
926
  ref,
@@ -898,7 +929,7 @@ var AlertDialogDescription = React19.forwardRef(({ className, ...props }, ref) =
898
929
  }
899
930
  ));
900
931
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
901
- var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
932
+ var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
902
933
  AlertDialogPrimitive.Action,
903
934
  {
904
935
  ref,
@@ -907,7 +938,7 @@ var AlertDialogAction = React19.forwardRef(({ className, ...props }, ref) => /*
907
938
  }
908
939
  ));
909
940
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
910
- var AlertDialogCancel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
941
+ var AlertDialogCancel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
911
942
  AlertDialogPrimitive.Cancel,
912
943
  {
913
944
  ref,
@@ -921,14 +952,14 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
921
952
  import * as React20 from "react";
922
953
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
923
954
  import { Check as Check3, ChevronRight as ChevronRight2, Circle as Circle3 } from "lucide-react";
924
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
955
+ import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
925
956
  var ContextMenu = ContextMenuPrimitive.Root;
926
957
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
927
958
  var ContextMenuGroup = ContextMenuPrimitive.Group;
928
959
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
929
960
  var ContextMenuSub = ContextMenuPrimitive.Sub;
930
961
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
931
- var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
962
+ var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
932
963
  ContextMenuPrimitive.SubTrigger,
933
964
  {
934
965
  ref,
@@ -940,12 +971,12 @@ var ContextMenuSubTrigger = React20.forwardRef(({ className, inset, children, ..
940
971
  ...props,
941
972
  children: [
942
973
  children,
943
- /* @__PURE__ */ jsx23(ChevronRight2, { className: "ml-auto h-4 w-4" })
974
+ /* @__PURE__ */ jsx24(ChevronRight2, { className: "ml-auto h-4 w-4" })
944
975
  ]
945
976
  }
946
977
  ));
947
978
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
948
- var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
979
+ var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
949
980
  ContextMenuPrimitive.SubContent,
950
981
  {
951
982
  ref,
@@ -957,7 +988,7 @@ var ContextMenuSubContent = React20.forwardRef(({ className, ...props }, ref) =>
957
988
  }
958
989
  ));
959
990
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
960
- var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx23(
991
+ var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
961
992
  ContextMenuPrimitive.Content,
962
993
  {
963
994
  ref,
@@ -969,7 +1000,7 @@ var ContextMenuContent = React20.forwardRef(({ className, ...props }, ref) => /*
969
1000
  }
970
1001
  ) }));
971
1002
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
972
- var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx23(
1003
+ var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
973
1004
  ContextMenuPrimitive.Item,
974
1005
  {
975
1006
  ref,
@@ -982,7 +1013,7 @@ var ContextMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) =
982
1013
  }
983
1014
  ));
984
1015
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
985
- var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs10(
1016
+ var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs11(
986
1017
  ContextMenuPrimitive.CheckboxItem,
987
1018
  {
988
1019
  ref,
@@ -993,13 +1024,13 @@ var ContextMenuCheckboxItem = React20.forwardRef(({ className, children, checked
993
1024
  checked,
994
1025
  ...props,
995
1026
  children: [
996
- /* @__PURE__ */ jsx23("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx23(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx23(Check3, { className: "h-4 w-4" }) }) }),
1027
+ /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Check3, { className: "h-4 w-4" }) }) }),
997
1028
  children
998
1029
  ]
999
1030
  }
1000
1031
  ));
1001
1032
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1002
- var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
1033
+ var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1003
1034
  ContextMenuPrimitive.RadioItem,
1004
1035
  {
1005
1036
  ref,
@@ -1009,13 +1040,13 @@ var ContextMenuRadioItem = React20.forwardRef(({ className, children, ...props }
1009
1040
  ),
1010
1041
  ...props,
1011
1042
  children: [
1012
- /* @__PURE__ */ jsx23("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx23(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx23(Circle3, { className: "h-2 w-2 fill-current" }) }) }),
1043
+ /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Circle3, { className: "h-2 w-2 fill-current" }) }) }),
1013
1044
  children
1014
1045
  ]
1015
1046
  }
1016
1047
  ));
1017
1048
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1018
- var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx23(
1049
+ var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
1019
1050
  ContextMenuPrimitive.Label,
1020
1051
  {
1021
1052
  ref,
@@ -1024,7 +1055,7 @@ var ContextMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref)
1024
1055
  }
1025
1056
  ));
1026
1057
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1027
- var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1058
+ var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1028
1059
  ContextMenuPrimitive.Separator,
1029
1060
  {
1030
1061
  ref,
@@ -1034,7 +1065,7 @@ var ContextMenuSeparator = React20.forwardRef(({ className, ...props }, ref) =>
1034
1065
  ));
1035
1066
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
1036
1067
  var ContextMenuShortcut = ({ className, ...props }) => {
1037
- return /* @__PURE__ */ jsx23("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1068
+ return /* @__PURE__ */ jsx24("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1038
1069
  };
1039
1070
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1040
1071
 
@@ -1042,14 +1073,14 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
1042
1073
  import * as React21 from "react";
1043
1074
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
1044
1075
  import { Check as Check4, ChevronRight as ChevronRight3, Circle as Circle4 } from "lucide-react";
1045
- import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
1046
- var MenubarMenu = (props) => /* @__PURE__ */ jsx24(MenubarPrimitive.Menu, { ...props });
1076
+ import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
1077
+ var MenubarMenu = (props) => /* @__PURE__ */ jsx25(MenubarPrimitive.Menu, { ...props });
1047
1078
  MenubarMenu.displayName = "MenubarMenu";
1048
1079
  var MenubarGroup = MenubarPrimitive.Group;
1049
1080
  var MenubarPortal = MenubarPrimitive.Portal;
1050
1081
  var MenubarSub = MenubarPrimitive.Sub;
1051
1082
  var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
1052
- var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1083
+ var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
1053
1084
  MenubarPrimitive.Root,
1054
1085
  {
1055
1086
  ref,
@@ -1061,7 +1092,7 @@ var Menubar = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1061
1092
  }
1062
1093
  ));
1063
1094
  Menubar.displayName = MenubarPrimitive.Root.displayName;
1064
- var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1095
+ var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
1065
1096
  MenubarPrimitive.Trigger,
1066
1097
  {
1067
1098
  ref,
@@ -1073,7 +1104,7 @@ var MenubarTrigger = React21.forwardRef(({ className, ...props }, ref) => /* @__
1073
1104
  }
1074
1105
  ));
1075
1106
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
1076
- var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1107
+ var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1077
1108
  MenubarPrimitive.SubTrigger,
1078
1109
  {
1079
1110
  ref,
@@ -1085,12 +1116,12 @@ var MenubarSubTrigger = React21.forwardRef(({ className, inset, children, ...pro
1085
1116
  ...props,
1086
1117
  children: [
1087
1118
  children,
1088
- /* @__PURE__ */ jsx24(ChevronRight3, { className: "ml-auto h-4 w-4" })
1119
+ /* @__PURE__ */ jsx25(ChevronRight3, { className: "ml-auto h-4 w-4" })
1089
1120
  ]
1090
1121
  }
1091
1122
  ));
1092
1123
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
1093
- var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1124
+ var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
1094
1125
  MenubarPrimitive.SubContent,
1095
1126
  {
1096
1127
  ref,
@@ -1102,7 +1133,7 @@ var MenubarSubContent = React21.forwardRef(({ className, ...props }, ref) => /*
1102
1133
  }
1103
1134
  ));
1104
1135
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
1105
- var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx24(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
1136
+ var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx25(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx25(
1106
1137
  MenubarPrimitive.Content,
1107
1138
  {
1108
1139
  ref,
@@ -1117,7 +1148,7 @@ var MenubarContent = React21.forwardRef(({ className, align = "start", alignOffs
1117
1148
  }
1118
1149
  ) }));
1119
1150
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
1120
- var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
1151
+ var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
1121
1152
  MenubarPrimitive.Item,
1122
1153
  {
1123
1154
  ref,
@@ -1130,7 +1161,7 @@ var MenubarItem = React21.forwardRef(({ className, inset, ...props }, ref) => /*
1130
1161
  }
1131
1162
  ));
1132
1163
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
1133
- var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs11(
1164
+ var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs12(
1134
1165
  MenubarPrimitive.CheckboxItem,
1135
1166
  {
1136
1167
  ref,
@@ -1141,13 +1172,13 @@ var MenubarCheckboxItem = React21.forwardRef(({ className, children, checked, ..
1141
1172
  checked,
1142
1173
  ...props,
1143
1174
  children: [
1144
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Check4, { className: "h-4 w-4" }) }) }),
1175
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(Check4, { className: "h-4 w-4" }) }) }),
1145
1176
  children
1146
1177
  ]
1147
1178
  }
1148
1179
  ));
1149
1180
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
1150
- var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1181
+ var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs12(
1151
1182
  MenubarPrimitive.RadioItem,
1152
1183
  {
1153
1184
  ref,
@@ -1157,13 +1188,13 @@ var MenubarRadioItem = React21.forwardRef(({ className, children, ...props }, re
1157
1188
  ),
1158
1189
  ...props,
1159
1190
  children: [
1160
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(Circle4, { className: "h-2 w-2 fill-current" }) }) }),
1191
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(Circle4, { className: "h-2 w-2 fill-current" }) }) }),
1161
1192
  children
1162
1193
  ]
1163
1194
  }
1164
1195
  ));
1165
1196
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
1166
- var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
1197
+ var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
1167
1198
  MenubarPrimitive.Label,
1168
1199
  {
1169
1200
  ref,
@@ -1172,7 +1203,7 @@ var MenubarLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /
1172
1203
  }
1173
1204
  ));
1174
1205
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
1175
- var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
1206
+ var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
1176
1207
  MenubarPrimitive.Separator,
1177
1208
  {
1178
1209
  ref,
@@ -1182,14 +1213,14 @@ var MenubarSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @
1182
1213
  ));
1183
1214
  MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
1184
1215
  var MenubarShortcut = ({ className, ...props }) => {
1185
- return /* @__PURE__ */ jsx24("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1216
+ return /* @__PURE__ */ jsx25("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1186
1217
  };
1187
1218
  MenubarShortcut.displayName = "MenubarShortcut";
1188
1219
 
1189
1220
  // src/components/badge.tsx
1190
1221
  import * as React22 from "react";
1191
1222
  import { cva as cva5 } from "class-variance-authority";
1192
- import { jsx as jsx25 } from "react/jsx-runtime";
1223
+ import { jsx as jsx26 } from "react/jsx-runtime";
1193
1224
  var badgeVariants = cva5(
1194
1225
  "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
1195
1226
  {
@@ -1207,22 +1238,22 @@ var badgeVariants = cva5(
1207
1238
  }
1208
1239
  );
1209
1240
  var Badge = React22.forwardRef(
1210
- ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx25("div", { ref, className: cn(badgeVariants({ variant }), className), ...props })
1241
+ ({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx26("div", { ref, className: cn(badgeVariants({ variant }), className), ...props })
1211
1242
  );
1212
1243
  Badge.displayName = "Badge";
1213
1244
 
1214
1245
  // src/components/table.tsx
1215
1246
  import * as React23 from "react";
1216
- import { jsx as jsx26 } from "react/jsx-runtime";
1247
+ import { jsx as jsx27 } from "react/jsx-runtime";
1217
1248
  var Table = React23.forwardRef(
1218
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx26("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
1249
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx27("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
1219
1250
  );
1220
1251
  Table.displayName = "Table";
1221
- var TableHeader = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("thead", { ref, className: cn("[&_tr]:border-b [&_tr]:border-border-subtle", className), ...props }));
1252
+ var TableHeader = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("thead", { ref, className: cn("[&_tr]:border-b [&_tr]:border-border-subtle", className), ...props }));
1222
1253
  TableHeader.displayName = "TableHeader";
1223
- var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
1254
+ var TableBody = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
1224
1255
  TableBody.displayName = "TableBody";
1225
- var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1256
+ var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
1226
1257
  "tfoot",
1227
1258
  {
1228
1259
  ref,
@@ -1235,7 +1266,7 @@ var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
1235
1266
  ));
1236
1267
  TableFooter.displayName = "TableFooter";
1237
1268
  var TableRow = React23.forwardRef(
1238
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1269
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
1239
1270
  "tr",
1240
1271
  {
1241
1272
  ref,
@@ -1248,7 +1279,7 @@ var TableRow = React23.forwardRef(
1248
1279
  )
1249
1280
  );
1250
1281
  TableRow.displayName = "TableRow";
1251
- var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1282
+ var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
1252
1283
  "th",
1253
1284
  {
1254
1285
  ref,
@@ -1260,7 +1291,7 @@ var TableHead = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1260
1291
  }
1261
1292
  ));
1262
1293
  TableHead.displayName = "TableHead";
1263
- var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1294
+ var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
1264
1295
  "td",
1265
1296
  {
1266
1297
  ref,
@@ -1269,22 +1300,22 @@ var TableCell = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1269
1300
  }
1270
1301
  ));
1271
1302
  TableCell.displayName = "TableCell";
1272
- var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("caption", { ref, className: cn("mt-4 text-sm text-text-secondary", className), ...props }));
1303
+ var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("caption", { ref, className: cn("mt-4 text-sm text-text-secondary", className), ...props }));
1273
1304
  TableCaption.displayName = "TableCaption";
1274
1305
 
1275
1306
  // src/components/skeleton.tsx
1276
1307
  import * as React24 from "react";
1277
- import { jsx as jsx27 } from "react/jsx-runtime";
1308
+ import { jsx as jsx28 } from "react/jsx-runtime";
1278
1309
  var Skeleton = React24.forwardRef(
1279
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("div", { ref, className: cn("animate-pulse rounded-md bg-bg-secondary", className), ...props })
1310
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx28("div", { ref, className: cn("animate-pulse rounded-md bg-bg-secondary", className), ...props })
1280
1311
  );
1281
1312
  Skeleton.displayName = "Skeleton";
1282
1313
 
1283
1314
  // src/components/avatar.tsx
1284
1315
  import * as React25 from "react";
1285
1316
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
1286
- import { jsx as jsx28 } from "react/jsx-runtime";
1287
- var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1317
+ import { jsx as jsx29 } from "react/jsx-runtime";
1318
+ var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
1288
1319
  AvatarPrimitive.Root,
1289
1320
  {
1290
1321
  ref,
@@ -1293,9 +1324,9 @@ var Avatar = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
1293
1324
  }
1294
1325
  ));
1295
1326
  Avatar.displayName = AvatarPrimitive.Root.displayName;
1296
- var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full", className), ...props }));
1327
+ var AvatarImage = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full", className), ...props }));
1297
1328
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1298
- var AvatarFallback = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1329
+ var AvatarFallback = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
1299
1330
  AvatarPrimitive.Fallback,
1300
1331
  {
1301
1332
  ref,
@@ -1311,8 +1342,8 @@ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1311
1342
  // src/components/separator.tsx
1312
1343
  import * as React26 from "react";
1313
1344
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
1314
- import { jsx as jsx29 } from "react/jsx-runtime";
1315
- var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx29(
1345
+ import { jsx as jsx30 } from "react/jsx-runtime";
1346
+ var Separator4 = React26.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx30(
1316
1347
  SeparatorPrimitive.Root,
1317
1348
  {
1318
1349
  ref,
@@ -1331,15 +1362,15 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
1331
1362
  // src/components/progress.tsx
1332
1363
  import * as React27 from "react";
1333
1364
  import * as ProgressPrimitive from "@radix-ui/react-progress";
1334
- import { jsx as jsx30 } from "react/jsx-runtime";
1335
- var Progress = React27.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx30(
1365
+ import { jsx as jsx31 } from "react/jsx-runtime";
1366
+ var Progress = React27.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx31(
1336
1367
  ProgressPrimitive.Root,
1337
1368
  {
1338
1369
  ref,
1339
1370
  value,
1340
1371
  className: cn("relative h-4 w-full overflow-hidden rounded-full bg-bg-secondary", className),
1341
1372
  ...props,
1342
- children: /* @__PURE__ */ jsx30(
1373
+ children: /* @__PURE__ */ jsx31(
1343
1374
  ProgressPrimitive.Indicator,
1344
1375
  {
1345
1376
  className: "h-full w-full flex-1 bg-blue-400 transition-all",
@@ -1357,9 +1388,9 @@ var AspectRatio = AspectRatioPrimitive.Root;
1357
1388
  // src/components/tabs.tsx
1358
1389
  import * as React28 from "react";
1359
1390
  import * as TabsPrimitive from "@radix-ui/react-tabs";
1360
- import { jsx as jsx31 } from "react/jsx-runtime";
1391
+ import { jsx as jsx32 } from "react/jsx-runtime";
1361
1392
  var Tabs = TabsPrimitive.Root;
1362
- var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1393
+ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1363
1394
  TabsPrimitive.List,
1364
1395
  {
1365
1396
  ref,
@@ -1371,7 +1402,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1371
1402
  }
1372
1403
  ));
1373
1404
  TabsList.displayName = TabsPrimitive.List.displayName;
1374
- var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1405
+ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1375
1406
  TabsPrimitive.Trigger,
1376
1407
  {
1377
1408
  ref,
@@ -1383,7 +1414,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
1383
1414
  }
1384
1415
  ));
1385
1416
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1386
- var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
1417
+ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1387
1418
  TabsPrimitive.Content,
1388
1419
  {
1389
1420
  ref,
@@ -1400,9 +1431,9 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
1400
1431
  import * as React29 from "react";
1401
1432
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
1402
1433
  import { ChevronDown as ChevronDown2 } from "lucide-react";
1403
- import { jsx as jsx32, jsxs as jsxs12 } from "react/jsx-runtime";
1434
+ import { jsx as jsx33, jsxs as jsxs13 } from "react/jsx-runtime";
1404
1435
  var Accordion = AccordionPrimitive.Root;
1405
- var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx32(
1436
+ var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
1406
1437
  AccordionPrimitive.Item,
1407
1438
  {
1408
1439
  ref,
@@ -1411,7 +1442,7 @@ var AccordionItem = React29.forwardRef(({ className, ...props }, ref) => /* @__P
1411
1442
  }
1412
1443
  ));
1413
1444
  AccordionItem.displayName = AccordionPrimitive.Item.displayName;
1414
- var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx32(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs12(
1445
+ var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx33(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs13(
1415
1446
  AccordionPrimitive.Trigger,
1416
1447
  {
1417
1448
  ref,
@@ -1422,12 +1453,12 @@ var AccordionTrigger = React29.forwardRef(({ className, children, ...props }, re
1422
1453
  ...props,
1423
1454
  children: [
1424
1455
  children,
1425
- /* @__PURE__ */ jsx32(ChevronDown2, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
1456
+ /* @__PURE__ */ jsx33(ChevronDown2, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
1426
1457
  ]
1427
1458
  }
1428
1459
  ) }));
1429
1460
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
1430
- var AccordionContent = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx32(
1461
+ var AccordionContent = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx33(
1431
1462
  AccordionPrimitive.Content,
1432
1463
  {
1433
1464
  ref,
@@ -1435,7 +1466,7 @@ var AccordionContent = React29.forwardRef(({ className, children, ...props }, re
1435
1466
  "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down"
1436
1467
  ),
1437
1468
  ...props,
1438
- children: /* @__PURE__ */ jsx32("div", { className: cn("pb-4 pt-0", className), children })
1469
+ children: /* @__PURE__ */ jsx33("div", { className: cn("pb-4 pt-0", className), children })
1439
1470
  }
1440
1471
  ));
1441
1472
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
@@ -1443,10 +1474,10 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
1443
1474
  // src/components/collapsible.tsx
1444
1475
  import * as React30 from "react";
1445
1476
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
1446
- import { jsx as jsx33 } from "react/jsx-runtime";
1477
+ import { jsx as jsx34 } from "react/jsx-runtime";
1447
1478
  var Collapsible = CollapsiblePrimitive.Root;
1448
1479
  var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
1449
- var CollapsibleContent2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
1480
+ var CollapsibleContent2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
1450
1481
  CollapsiblePrimitive.CollapsibleContent,
1451
1482
  {
1452
1483
  ref,
@@ -1462,22 +1493,22 @@ CollapsibleContent2.displayName = CollapsiblePrimitive.CollapsibleContent.displa
1462
1493
  // src/components/scroll-area.tsx
1463
1494
  import * as React31 from "react";
1464
1495
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
1465
- import { jsx as jsx34, jsxs as jsxs13 } from "react/jsx-runtime";
1466
- var ScrollArea = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
1496
+ import { jsx as jsx35, jsxs as jsxs14 } from "react/jsx-runtime";
1497
+ var ScrollArea = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
1467
1498
  ScrollAreaPrimitive.Root,
1468
1499
  {
1469
1500
  ref,
1470
1501
  className: cn("relative overflow-hidden", className),
1471
1502
  ...props,
1472
1503
  children: [
1473
- /* @__PURE__ */ jsx34(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
1474
- /* @__PURE__ */ jsx34(ScrollBar, {}),
1475
- /* @__PURE__ */ jsx34(ScrollAreaPrimitive.Corner, {})
1504
+ /* @__PURE__ */ jsx35(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
1505
+ /* @__PURE__ */ jsx35(ScrollBar, {}),
1506
+ /* @__PURE__ */ jsx35(ScrollAreaPrimitive.Corner, {})
1476
1507
  ]
1477
1508
  }
1478
1509
  ));
1479
1510
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
1480
- var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx34(
1511
+ var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx35(
1481
1512
  ScrollAreaPrimitive.ScrollAreaScrollbar,
1482
1513
  {
1483
1514
  ref,
@@ -1489,7 +1520,7 @@ var ScrollBar = React31.forwardRef(({ className, orientation = "vertical", ...pr
1489
1520
  className
1490
1521
  ),
1491
1522
  ...props,
1492
- children: /* @__PURE__ */ jsx34(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border-default" })
1523
+ children: /* @__PURE__ */ jsx35(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border-default" })
1493
1524
  }
1494
1525
  ));
1495
1526
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
@@ -1497,7 +1528,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
1497
1528
  // src/components/alert.tsx
1498
1529
  import * as React32 from "react";
1499
1530
  import { cva as cva6 } from "class-variance-authority";
1500
- import { jsx as jsx35 } from "react/jsx-runtime";
1531
+ import { jsx as jsx36 } from "react/jsx-runtime";
1501
1532
  var alertVariants = cva6(
1502
1533
  "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4",
1503
1534
  {
@@ -1512,7 +1543,7 @@ var alertVariants = cva6(
1512
1543
  defaultVariants: { variant: "default" }
1513
1544
  }
1514
1545
  );
1515
- var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx35(
1546
+ var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx36(
1516
1547
  "div",
1517
1548
  {
1518
1549
  ref,
@@ -1522,7 +1553,7 @@ var Alert = React32.forwardRef(({ className, variant, ...props }, ref) => /* @__
1522
1553
  }
1523
1554
  ));
1524
1555
  Alert.displayName = "Alert";
1525
- var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
1556
+ var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
1526
1557
  "h5",
1527
1558
  {
1528
1559
  ref,
@@ -1531,7 +1562,7 @@ var AlertTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE
1531
1562
  }
1532
1563
  ));
1533
1564
  AlertTitle.displayName = "AlertTitle";
1534
- var AlertDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
1565
+ var AlertDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
1535
1566
  "div",
1536
1567
  {
1537
1568
  ref,
@@ -1545,11 +1576,11 @@ AlertDescription.displayName = "AlertDescription";
1545
1576
  import * as React33 from "react";
1546
1577
  import { Slot as Slot2 } from "@radix-ui/react-slot";
1547
1578
  import { ChevronRight as ChevronRight4, MoreHorizontal } from "lucide-react";
1548
- import { jsx as jsx36, jsxs as jsxs14 } from "react/jsx-runtime";
1549
- var Breadcrumb = React33.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx36("nav", { ref, "aria-label": "breadcrumb", ...props }));
1579
+ import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
1580
+ var Breadcrumb = React33.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx37("nav", { ref, "aria-label": "breadcrumb", ...props }));
1550
1581
  Breadcrumb.displayName = "Breadcrumb";
1551
1582
  var BreadcrumbList = React33.forwardRef(
1552
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
1583
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
1553
1584
  "ol",
1554
1585
  {
1555
1586
  ref,
@@ -1563,12 +1594,12 @@ var BreadcrumbList = React33.forwardRef(
1563
1594
  );
1564
1595
  BreadcrumbList.displayName = "BreadcrumbList";
1565
1596
  var BreadcrumbItem = React33.forwardRef(
1566
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx36("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
1597
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx37("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
1567
1598
  );
1568
1599
  BreadcrumbItem.displayName = "BreadcrumbItem";
1569
1600
  var BreadcrumbLink = React33.forwardRef(({ asChild, className, ...props }, ref) => {
1570
1601
  const Comp = asChild ? Slot2 : "a";
1571
- return /* @__PURE__ */ jsx36(
1602
+ return /* @__PURE__ */ jsx37(
1572
1603
  Comp,
1573
1604
  {
1574
1605
  ref,
@@ -1579,7 +1610,7 @@ var BreadcrumbLink = React33.forwardRef(({ asChild, className, ...props }, ref)
1579
1610
  });
1580
1611
  BreadcrumbLink.displayName = "BreadcrumbLink";
1581
1612
  var BreadcrumbPage = React33.forwardRef(
1582
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
1613
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
1583
1614
  "span",
1584
1615
  {
1585
1616
  ref,
@@ -1596,18 +1627,18 @@ var BreadcrumbSeparator = ({
1596
1627
  children,
1597
1628
  className,
1598
1629
  ...props
1599
- }) => /* @__PURE__ */ jsx36(
1630
+ }) => /* @__PURE__ */ jsx37(
1600
1631
  "li",
1601
1632
  {
1602
1633
  role: "presentation",
1603
1634
  "aria-hidden": "true",
1604
1635
  className: cn("[&>svg]:h-4 [&>svg]:w-4", className),
1605
1636
  ...props,
1606
- children: children ?? /* @__PURE__ */ jsx36(ChevronRight4, {})
1637
+ children: children ?? /* @__PURE__ */ jsx37(ChevronRight4, {})
1607
1638
  }
1608
1639
  );
1609
1640
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
1610
- var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs14(
1641
+ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1611
1642
  "span",
1612
1643
  {
1613
1644
  role: "presentation",
@@ -1615,8 +1646,8 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs14(
1615
1646
  className: cn("flex h-9 w-9 items-center justify-center", className),
1616
1647
  ...props,
1617
1648
  children: [
1618
- /* @__PURE__ */ jsx36(MoreHorizontal, { className: "h-4 w-4" }),
1619
- /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "More" })
1649
+ /* @__PURE__ */ jsx37(MoreHorizontal, { className: "h-4 w-4" }),
1650
+ /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "More" })
1620
1651
  ]
1621
1652
  }
1622
1653
  );
@@ -1625,8 +1656,8 @@ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
1625
1656
  // src/components/pagination.tsx
1626
1657
  import * as React34 from "react";
1627
1658
  import { ChevronLeft, ChevronRight as ChevronRight5, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
1628
- import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
1629
- var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx37(
1659
+ import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
1660
+ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx38(
1630
1661
  "nav",
1631
1662
  {
1632
1663
  role: "navigation",
@@ -1637,14 +1668,14 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx37(
1637
1668
  );
1638
1669
  Pagination.displayName = "Pagination";
1639
1670
  var PaginationContent = React34.forwardRef(
1640
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx37("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
1671
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx38("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
1641
1672
  );
1642
1673
  PaginationContent.displayName = "PaginationContent";
1643
1674
  var PaginationItem = React34.forwardRef(
1644
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx37("li", { ref, className: cn("", className), ...props })
1675
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx38("li", { ref, className: cn("", className), ...props })
1645
1676
  );
1646
1677
  PaginationItem.displayName = "PaginationItem";
1647
- var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx37(
1678
+ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx38(
1648
1679
  "a",
1649
1680
  {
1650
1681
  "aria-current": isActive ? "page" : void 0,
@@ -1656,7 +1687,7 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
1656
1687
  }
1657
1688
  );
1658
1689
  PaginationLink.displayName = "PaginationLink";
1659
- var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1690
+ var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
1660
1691
  PaginationLink,
1661
1692
  {
1662
1693
  "aria-label": "Go to previous page",
@@ -1664,13 +1695,13 @@ var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1664
1695
  className: cn("gap-1 pl-2.5", className),
1665
1696
  ...props,
1666
1697
  children: [
1667
- /* @__PURE__ */ jsx37(ChevronLeft, { className: "h-4 w-4" }),
1668
- /* @__PURE__ */ jsx37("span", { children: "Previous" })
1698
+ /* @__PURE__ */ jsx38(ChevronLeft, { className: "h-4 w-4" }),
1699
+ /* @__PURE__ */ jsx38("span", { children: "Previous" })
1669
1700
  ]
1670
1701
  }
1671
1702
  );
1672
1703
  PaginationPrevious.displayName = "PaginationPrevious";
1673
- var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1704
+ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
1674
1705
  PaginationLink,
1675
1706
  {
1676
1707
  "aria-label": "Go to next page",
@@ -1678,21 +1709,21 @@ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1678
1709
  className: cn("gap-1 pr-2.5", className),
1679
1710
  ...props,
1680
1711
  children: [
1681
- /* @__PURE__ */ jsx37("span", { children: "Next" }),
1682
- /* @__PURE__ */ jsx37(ChevronRight5, { className: "h-4 w-4" })
1712
+ /* @__PURE__ */ jsx38("span", { children: "Next" }),
1713
+ /* @__PURE__ */ jsx38(ChevronRight5, { className: "h-4 w-4" })
1683
1714
  ]
1684
1715
  }
1685
1716
  );
1686
1717
  PaginationNext.displayName = "PaginationNext";
1687
- var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs15(
1718
+ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs16(
1688
1719
  "span",
1689
1720
  {
1690
1721
  "aria-hidden": true,
1691
1722
  className: cn("flex h-9 w-9 items-center justify-center", className),
1692
1723
  ...props,
1693
1724
  children: [
1694
- /* @__PURE__ */ jsx37(MoreHorizontal2, { className: "h-4 w-4" }),
1695
- /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "More pages" })
1725
+ /* @__PURE__ */ jsx38(MoreHorizontal2, { className: "h-4 w-4" }),
1726
+ /* @__PURE__ */ jsx38("span", { className: "sr-only", children: "More pages" })
1696
1727
  ]
1697
1728
  }
1698
1729
  );
@@ -1702,8 +1733,8 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
1702
1733
  import * as React35 from "react";
1703
1734
  import { Command as CommandPrimitive } from "cmdk";
1704
1735
  import { Search } from "lucide-react";
1705
- import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
1706
- var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1736
+ import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
1737
+ var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1707
1738
  CommandPrimitive,
1708
1739
  {
1709
1740
  ref,
@@ -1715,10 +1746,10 @@ var Command = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1715
1746
  }
1716
1747
  ));
1717
1748
  Command.displayName = CommandPrimitive.displayName;
1718
- 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-text-tertiary [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
1719
- var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16("div", { className: "flex items-center border-b border-border-subtle px-3", "cmdk-input-wrapper": "", children: [
1720
- /* @__PURE__ */ jsx38(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
1721
- /* @__PURE__ */ jsx38(
1749
+ 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-text-tertiary [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
1750
+ var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs17("div", { className: "flex items-center border-b border-border-subtle px-3", "cmdk-input-wrapper": "", children: [
1751
+ /* @__PURE__ */ jsx39(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
1752
+ /* @__PURE__ */ jsx39(
1722
1753
  CommandPrimitive.Input,
1723
1754
  {
1724
1755
  ref,
@@ -1731,7 +1762,7 @@ var CommandInput = React35.forwardRef(({ className, ...props }, ref) => /* @__PU
1731
1762
  )
1732
1763
  ] }));
1733
1764
  CommandInput.displayName = CommandPrimitive.Input.displayName;
1734
- var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1765
+ var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1735
1766
  CommandPrimitive.List,
1736
1767
  {
1737
1768
  ref,
@@ -1740,7 +1771,7 @@ var CommandList = React35.forwardRef(({ className, ...props }, ref) => /* @__PUR
1740
1771
  }
1741
1772
  ));
1742
1773
  CommandList.displayName = CommandPrimitive.List.displayName;
1743
- var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */ jsx38(
1774
+ var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */ jsx39(
1744
1775
  CommandPrimitive.Empty,
1745
1776
  {
1746
1777
  ref,
@@ -1749,7 +1780,7 @@ var CommandEmpty = React35.forwardRef((props, ref) => /* @__PURE__ */ jsx38(
1749
1780
  }
1750
1781
  ));
1751
1782
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
1752
- var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1783
+ var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1753
1784
  CommandPrimitive.Group,
1754
1785
  {
1755
1786
  ref,
@@ -1761,7 +1792,7 @@ var CommandGroup = React35.forwardRef(({ className, ...props }, ref) => /* @__PU
1761
1792
  }
1762
1793
  ));
1763
1794
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
1764
- var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1795
+ var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1765
1796
  CommandPrimitive.Separator,
1766
1797
  {
1767
1798
  ref,
@@ -1770,7 +1801,7 @@ var CommandSeparator = React35.forwardRef(({ className, ...props }, ref) => /* @
1770
1801
  }
1771
1802
  ));
1772
1803
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
1773
- var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
1804
+ var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1774
1805
  CommandPrimitive.Item,
1775
1806
  {
1776
1807
  ref,
@@ -1782,7 +1813,7 @@ var CommandItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PUR
1782
1813
  }
1783
1814
  ));
1784
1815
  CommandItem.displayName = CommandPrimitive.Item.displayName;
1785
- var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx38(
1816
+ var CommandShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx39(
1786
1817
  "span",
1787
1818
  {
1788
1819
  className: cn("ml-auto text-xs tracking-widest text-text-tertiary", className),
@@ -1796,8 +1827,8 @@ import * as React36 from "react";
1796
1827
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
1797
1828
  import { cva as cva7 } from "class-variance-authority";
1798
1829
  import { ChevronDown as ChevronDown3 } from "lucide-react";
1799
- import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
1800
- var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
1830
+ import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
1831
+ var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
1801
1832
  NavigationMenuPrimitive.Root,
1802
1833
  {
1803
1834
  ref,
@@ -1805,12 +1836,12 @@ var NavigationMenu = React36.forwardRef(({ className, children, ...props }, ref)
1805
1836
  ...props,
1806
1837
  children: [
1807
1838
  children,
1808
- /* @__PURE__ */ jsx39(NavigationMenuViewport, {})
1839
+ /* @__PURE__ */ jsx40(NavigationMenuViewport, {})
1809
1840
  ]
1810
1841
  }
1811
1842
  ));
1812
1843
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1813
- var NavigationMenuList = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1844
+ var NavigationMenuList = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
1814
1845
  NavigationMenuPrimitive.List,
1815
1846
  {
1816
1847
  ref,
@@ -1823,7 +1854,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
1823
1854
  var navigationMenuTriggerStyle = cva7(
1824
1855
  "group inline-flex h-10 w-max items-center justify-center rounded-md bg-bg-elevated px-4 py-2 text-sm font-medium transition-colors hover:bg-bg-secondary hover:text-text-primary focus:bg-bg-secondary focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-bg-secondary"
1825
1856
  );
1826
- var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
1857
+ var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
1827
1858
  NavigationMenuPrimitive.Trigger,
1828
1859
  {
1829
1860
  ref,
@@ -1832,7 +1863,7 @@ var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props
1832
1863
  children: [
1833
1864
  children,
1834
1865
  " ",
1835
- /* @__PURE__ */ jsx39(
1866
+ /* @__PURE__ */ jsx40(
1836
1867
  ChevronDown3,
1837
1868
  {
1838
1869
  className: "relative top-[1px] ml-1 h-4 w-4 transition duration-200 group-data-[state=open]:rotate-180",
@@ -1843,7 +1874,7 @@ var NavigationMenuTrigger = React36.forwardRef(({ className, children, ...props
1843
1874
  }
1844
1875
  ));
1845
1876
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
1846
- var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1877
+ var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
1847
1878
  NavigationMenuPrimitive.Content,
1848
1879
  {
1849
1880
  ref,
@@ -1856,7 +1887,7 @@ var NavigationMenuContent = React36.forwardRef(({ className, ...props }, ref) =>
1856
1887
  ));
1857
1888
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
1858
1889
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
1859
- var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx39(
1890
+ var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx40(
1860
1891
  NavigationMenuPrimitive.Viewport,
1861
1892
  {
1862
1893
  ref,
@@ -1868,7 +1899,7 @@ var NavigationMenuViewport = React36.forwardRef(({ className, ...props }, ref) =
1868
1899
  }
1869
1900
  ) }));
1870
1901
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
1871
- var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
1902
+ var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
1872
1903
  NavigationMenuPrimitive.Indicator,
1873
1904
  {
1874
1905
  ref,
@@ -1877,7 +1908,7 @@ var NavigationMenuIndicator = React36.forwardRef(({ className, ...props }, ref)
1877
1908
  className
1878
1909
  ),
1879
1910
  ...props,
1880
- children: /* @__PURE__ */ jsx39("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-subtle shadow-md" })
1911
+ children: /* @__PURE__ */ jsx40("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border-subtle shadow-md" })
1881
1912
  }
1882
1913
  ));
1883
1914
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
@@ -1940,10 +1971,10 @@ function useTheme() {
1940
1971
 
1941
1972
  // src/components/sonner.tsx
1942
1973
  import { Toaster as SonnerToaster, toast } from "sonner";
1943
- import { jsx as jsx40 } from "react/jsx-runtime";
1974
+ import { jsx as jsx41 } from "react/jsx-runtime";
1944
1975
  var Toaster = ({ ...props }) => {
1945
1976
  const { resolvedTheme } = useTheme();
1946
- return /* @__PURE__ */ jsx40(
1977
+ return /* @__PURE__ */ jsx41(
1947
1978
  SonnerToaster,
1948
1979
  {
1949
1980
  theme: resolvedTheme,
@@ -1963,7 +1994,7 @@ var Toaster = ({ ...props }) => {
1963
1994
 
1964
1995
  // src/theme/ThemeToggle.tsx
1965
1996
  import { Sun, Moon, Monitor } from "lucide-react";
1966
- import { jsx as jsx41 } from "react/jsx-runtime";
1997
+ import { jsx as jsx42 } from "react/jsx-runtime";
1967
1998
  var icons = {
1968
1999
  light: Sun,
1969
2000
  dark: Moon,
@@ -1977,14 +2008,14 @@ var nextTheme = {
1977
2008
  function ThemeToggle() {
1978
2009
  const { theme, setTheme } = useTheme();
1979
2010
  const Icon = icons[theme];
1980
- return /* @__PURE__ */ jsx41(
2011
+ return /* @__PURE__ */ jsx42(
1981
2012
  "button",
1982
2013
  {
1983
2014
  onClick: () => setTheme(nextTheme[theme]),
1984
2015
  className: "p-2 rounded-lg text-text-secondary hover:bg-bg-secondary transition-colors",
1985
2016
  "aria-label": `Switch to ${nextTheme[theme]} theme`,
1986
2017
  title: `Theme: ${theme}`,
1987
- children: /* @__PURE__ */ jsx41(Icon, { className: "w-4 h-4" })
2018
+ children: /* @__PURE__ */ jsx42(Icon, { className: "w-4 h-4" })
1988
2019
  }
1989
2020
  );
1990
2021
  }
@@ -1992,9 +2023,9 @@ function ThemeToggle() {
1992
2023
  // src/components/calendar.tsx
1993
2024
  import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6 } from "lucide-react";
1994
2025
  import { DayPicker } from "react-day-picker";
1995
- import { jsx as jsx42 } from "react/jsx-runtime";
2026
+ import { jsx as jsx43 } from "react/jsx-runtime";
1996
2027
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1997
- return /* @__PURE__ */ jsx42(
2028
+ return /* @__PURE__ */ jsx43(
1998
2029
  DayPicker,
1999
2030
  {
2000
2031
  showOutsideDays,
@@ -2037,7 +2068,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2037
2068
  ...classNames
2038
2069
  },
2039
2070
  components: {
2040
- Chevron: ({ className: cls, orientation, ...rest }) => orientation === "left" ? /* @__PURE__ */ jsx42(ChevronLeft2, { className: cn("size-4", cls), ...rest }) : /* @__PURE__ */ jsx42(ChevronRight6, { className: cn("size-4", cls), ...rest })
2071
+ Chevron: ({ className: cls, orientation, ...rest }) => orientation === "left" ? /* @__PURE__ */ jsx43(ChevronLeft2, { className: cn("size-4", cls), ...rest }) : /* @__PURE__ */ jsx43(ChevronRight6, { className: cn("size-4", cls), ...rest })
2041
2072
  },
2042
2073
  ...props
2043
2074
  }
@@ -2048,7 +2079,7 @@ Calendar.displayName = "Calendar";
2048
2079
  // src/components/date-picker.tsx
2049
2080
  import * as React37 from "react";
2050
2081
  import { Calendar as CalendarIcon } from "lucide-react";
2051
- import { jsx as jsx43, jsxs as jsxs18 } from "react/jsx-runtime";
2082
+ import { jsx as jsx44, jsxs as jsxs19 } from "react/jsx-runtime";
2052
2083
  var DEFAULT_FORMAT = {
2053
2084
  year: "numeric",
2054
2085
  month: "long",
@@ -2062,8 +2093,8 @@ function DatePicker({
2062
2093
  className
2063
2094
  }) {
2064
2095
  const [open, setOpen] = React37.useState(false);
2065
- return /* @__PURE__ */ jsxs18(Popover, { open, onOpenChange: setOpen, children: [
2066
- /* @__PURE__ */ jsx43(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs18(
2096
+ return /* @__PURE__ */ jsxs19(Popover, { open, onOpenChange: setOpen, children: [
2097
+ /* @__PURE__ */ jsx44(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs19(
2067
2098
  Button,
2068
2099
  {
2069
2100
  type: "button",
@@ -2071,12 +2102,12 @@ function DatePicker({
2071
2102
  disabled,
2072
2103
  className: cn("w-[240px] justify-start gap-2 text-left font-normal", !value && "text-text-tertiary", className),
2073
2104
  children: [
2074
- /* @__PURE__ */ jsx43(CalendarIcon, { className: "size-4 shrink-0" }),
2105
+ /* @__PURE__ */ jsx44(CalendarIcon, { className: "size-4 shrink-0" }),
2075
2106
  value ? value.toLocaleDateString(void 0, DEFAULT_FORMAT) : placeholder
2076
2107
  ]
2077
2108
  }
2078
2109
  ) }),
2079
- /* @__PURE__ */ jsx43(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx43(
2110
+ /* @__PURE__ */ jsx44(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx44(
2080
2111
  Calendar,
2081
2112
  {
2082
2113
  mode: "single",
@@ -2096,7 +2127,7 @@ DatePicker.displayName = "DatePicker";
2096
2127
  import * as React38 from "react";
2097
2128
  import useEmblaCarousel from "embla-carousel-react";
2098
2129
  import { ArrowLeft, ArrowRight } from "lucide-react";
2099
- import { jsx as jsx44, jsxs as jsxs19 } from "react/jsx-runtime";
2130
+ import { jsx as jsx45, jsxs as jsxs20 } from "react/jsx-runtime";
2100
2131
  var CarouselContext = React38.createContext(null);
2101
2132
  function useCarousel() {
2102
2133
  const context = React38.useContext(CarouselContext);
@@ -2143,7 +2174,7 @@ var Carousel = React38.forwardRef(({ orientation = "horizontal", opts, setApi, p
2143
2174
  api.off("select", onSelect);
2144
2175
  };
2145
2176
  }, [api, onSelect]);
2146
- return /* @__PURE__ */ jsx44(
2177
+ return /* @__PURE__ */ jsx45(
2147
2178
  CarouselContext.Provider,
2148
2179
  {
2149
2180
  value: {
@@ -2156,7 +2187,7 @@ var Carousel = React38.forwardRef(({ orientation = "horizontal", opts, setApi, p
2156
2187
  canScrollPrev,
2157
2188
  canScrollNext
2158
2189
  },
2159
- children: /* @__PURE__ */ jsx44(
2190
+ children: /* @__PURE__ */ jsx45(
2160
2191
  "div",
2161
2192
  {
2162
2193
  ref,
@@ -2175,7 +2206,7 @@ Carousel.displayName = "Carousel";
2175
2206
  var CarouselContent = React38.forwardRef(
2176
2207
  ({ className, ...props }, ref) => {
2177
2208
  const { carouselRef, orientation } = useCarousel();
2178
- return /* @__PURE__ */ jsx44("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx44(
2209
+ return /* @__PURE__ */ jsx45("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx45(
2179
2210
  "div",
2180
2211
  {
2181
2212
  ref,
@@ -2189,7 +2220,7 @@ CarouselContent.displayName = "CarouselContent";
2189
2220
  var CarouselItem = React38.forwardRef(
2190
2221
  ({ className, ...props }, ref) => {
2191
2222
  const { orientation } = useCarousel();
2192
- return /* @__PURE__ */ jsx44(
2223
+ return /* @__PURE__ */ jsx45(
2193
2224
  "div",
2194
2225
  {
2195
2226
  ref,
@@ -2208,7 +2239,7 @@ var CarouselItem = React38.forwardRef(
2208
2239
  CarouselItem.displayName = "CarouselItem";
2209
2240
  var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
2210
2241
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
2211
- return /* @__PURE__ */ jsxs19(
2242
+ return /* @__PURE__ */ jsxs20(
2212
2243
  "button",
2213
2244
  {
2214
2245
  ref,
@@ -2223,8 +2254,8 @@ var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
2223
2254
  onClick: scrollPrev,
2224
2255
  ...props,
2225
2256
  children: [
2226
- /* @__PURE__ */ jsx44(ArrowLeft, { className: "size-4" }),
2227
- /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "Previous slide" })
2257
+ /* @__PURE__ */ jsx45(ArrowLeft, { className: "size-4" }),
2258
+ /* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Previous slide" })
2228
2259
  ]
2229
2260
  }
2230
2261
  );
@@ -2232,7 +2263,7 @@ var CarouselPrevious = React38.forwardRef(({ className, ...props }, ref) => {
2232
2263
  CarouselPrevious.displayName = "CarouselPrevious";
2233
2264
  var CarouselNext = React38.forwardRef(({ className, ...props }, ref) => {
2234
2265
  const { orientation, scrollNext, canScrollNext } = useCarousel();
2235
- return /* @__PURE__ */ jsxs19(
2266
+ return /* @__PURE__ */ jsxs20(
2236
2267
  "button",
2237
2268
  {
2238
2269
  ref,
@@ -2247,8 +2278,8 @@ var CarouselNext = React38.forwardRef(({ className, ...props }, ref) => {
2247
2278
  onClick: scrollNext,
2248
2279
  ...props,
2249
2280
  children: [
2250
- /* @__PURE__ */ jsx44(ArrowRight, { className: "size-4" }),
2251
- /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "Next slide" })
2281
+ /* @__PURE__ */ jsx45(ArrowRight, { className: "size-4" }),
2282
+ /* @__PURE__ */ jsx45("span", { className: "sr-only", children: "Next slide" })
2252
2283
  ]
2253
2284
  }
2254
2285
  );
@@ -2264,11 +2295,11 @@ import {
2264
2295
  useFormContext,
2265
2296
  useFormState
2266
2297
  } from "react-hook-form";
2267
- import { jsx as jsx45 } from "react/jsx-runtime";
2298
+ import { jsx as jsx46 } from "react/jsx-runtime";
2268
2299
  var Form = FormProvider;
2269
2300
  var FormFieldContext = React39.createContext(null);
2270
2301
  function FormField({ ...props }) {
2271
- return /* @__PURE__ */ jsx45(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx45(Controller, { ...props }) });
2302
+ return /* @__PURE__ */ jsx46(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx46(Controller, { ...props }) });
2272
2303
  }
2273
2304
  var FormItemContext = React39.createContext(null);
2274
2305
  function useFormField() {
@@ -2291,13 +2322,13 @@ function useFormField() {
2291
2322
  var FormItem = React39.forwardRef(
2292
2323
  ({ className, ...props }, ref) => {
2293
2324
  const id = React39.useId();
2294
- return /* @__PURE__ */ jsx45(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx45("div", { ref, className: cn("space-y-2", className), ...props }) });
2325
+ return /* @__PURE__ */ jsx46(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx46("div", { ref, className: cn("space-y-2", className), ...props }) });
2295
2326
  }
2296
2327
  );
2297
2328
  FormItem.displayName = "FormItem";
2298
2329
  var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
2299
2330
  const { error, formItemId } = useFormField();
2300
- return /* @__PURE__ */ jsx45(
2331
+ return /* @__PURE__ */ jsx46(
2301
2332
  Label2,
2302
2333
  {
2303
2334
  ref,
@@ -2310,7 +2341,7 @@ var FormLabel = React39.forwardRef(({ className, ...props }, ref) => {
2310
2341
  FormLabel.displayName = "FormLabel";
2311
2342
  var FormControl = React39.forwardRef(({ ...props }, ref) => {
2312
2343
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2313
- return /* @__PURE__ */ jsx45(
2344
+ return /* @__PURE__ */ jsx46(
2314
2345
  Slot3,
2315
2346
  {
2316
2347
  ref,
@@ -2324,7 +2355,7 @@ var FormControl = React39.forwardRef(({ ...props }, ref) => {
2324
2355
  FormControl.displayName = "FormControl";
2325
2356
  var FormDescription = React39.forwardRef(({ className, ...props }, ref) => {
2326
2357
  const { formDescriptionId } = useFormField();
2327
- return /* @__PURE__ */ jsx45(
2358
+ return /* @__PURE__ */ jsx46(
2328
2359
  "p",
2329
2360
  {
2330
2361
  ref,
@@ -2339,7 +2370,7 @@ var FormMessage = React39.forwardRef(({ className, children, ...props }, ref) =>
2339
2370
  const { error, formMessageId } = useFormField();
2340
2371
  const body = error ? String(error?.message ?? "") : children;
2341
2372
  if (!body) return null;
2342
- return /* @__PURE__ */ jsx45(
2373
+ return /* @__PURE__ */ jsx46(
2343
2374
  "p",
2344
2375
  {
2345
2376
  ref,
@@ -2355,7 +2386,7 @@ FormMessage.displayName = "FormMessage";
2355
2386
  // src/components/status-dot.tsx
2356
2387
  import * as React40 from "react";
2357
2388
  import { cva as cva8 } from "class-variance-authority";
2358
- import { jsx as jsx46, jsxs as jsxs20 } from "react/jsx-runtime";
2389
+ import { jsx as jsx47, jsxs as jsxs21 } from "react/jsx-runtime";
2359
2390
  var statusDotVariants = cva8("inline-block shrink-0 rounded-full", {
2360
2391
  variants: {
2361
2392
  status: {
@@ -2370,7 +2401,7 @@ var statusDotVariants = cva8("inline-block shrink-0 rounded-full", {
2370
2401
  defaultVariants: { status: "neutral", size: "md" }
2371
2402
  });
2372
2403
  var StatusDot = React40.forwardRef(
2373
- ({ className, status, size, pulse = false, ...props }, ref) => /* @__PURE__ */ jsxs20(
2404
+ ({ className, status, size, pulse = false, ...props }, ref) => /* @__PURE__ */ jsxs21(
2374
2405
  "span",
2375
2406
  {
2376
2407
  ref,
@@ -2379,14 +2410,14 @@ var StatusDot = React40.forwardRef(
2379
2410
  className: cn("relative inline-flex", className),
2380
2411
  ...props,
2381
2412
  children: [
2382
- pulse && /* @__PURE__ */ jsx46(
2413
+ pulse && /* @__PURE__ */ jsx47(
2383
2414
  "span",
2384
2415
  {
2385
2416
  "aria-hidden": "true",
2386
2417
  className: cn(statusDotVariants({ status, size }), "absolute inset-0 animate-ping opacity-75")
2387
2418
  }
2388
2419
  ),
2389
- /* @__PURE__ */ jsx46("span", { className: cn(statusDotVariants({ status, size })) })
2420
+ /* @__PURE__ */ jsx47("span", { className: cn(statusDotVariants({ status, size })) })
2390
2421
  ]
2391
2422
  }
2392
2423
  )
@@ -2396,9 +2427,9 @@ StatusDot.displayName = "StatusDot";
2396
2427
  // src/components/docs-link.tsx
2397
2428
  import * as React41 from "react";
2398
2429
  import { BookOpen, ExternalLink } from "lucide-react";
2399
- import { jsx as jsx47, jsxs as jsxs21 } from "react/jsx-runtime";
2430
+ import { jsx as jsx48, jsxs as jsxs22 } from "react/jsx-runtime";
2400
2431
  var DocsLink = React41.forwardRef(
2401
- ({ href = "https://docs.lessly.com", label = "Docs", className, ...props }, ref) => /* @__PURE__ */ jsxs21(
2432
+ ({ href = "https://docs.lessly.com", label = "Docs", className, ...props }, ref) => /* @__PURE__ */ jsxs22(
2402
2433
  "a",
2403
2434
  {
2404
2435
  ref,
@@ -2411,9 +2442,9 @@ var DocsLink = React41.forwardRef(
2411
2442
  ),
2412
2443
  ...props,
2413
2444
  children: [
2414
- /* @__PURE__ */ jsx47(BookOpen, { className: "size-4", "aria-hidden": "true" }),
2445
+ /* @__PURE__ */ jsx48(BookOpen, { className: "size-4", "aria-hidden": "true" }),
2415
2446
  label,
2416
- /* @__PURE__ */ jsx47(ExternalLink, { className: "size-3 text-text-tertiary", "aria-hidden": "true" })
2447
+ /* @__PURE__ */ jsx48(ExternalLink, { className: "size-3 text-text-tertiary", "aria-hidden": "true" })
2417
2448
  ]
2418
2449
  }
2419
2450
  )
@@ -2422,9 +2453,9 @@ DocsLink.displayName = "DocsLink";
2422
2453
 
2423
2454
  // src/components/empty-state.tsx
2424
2455
  import * as React42 from "react";
2425
- import { jsx as jsx48, jsxs as jsxs22 } from "react/jsx-runtime";
2456
+ import { jsx as jsx49, jsxs as jsxs23 } from "react/jsx-runtime";
2426
2457
  var EmptyState = React42.forwardRef(
2427
- ({ icon: Icon, title, description, action, className, ...props }, ref) => /* @__PURE__ */ jsxs22(
2458
+ ({ icon: Icon, title, description, action, className, ...props }, ref) => /* @__PURE__ */ jsxs23(
2428
2459
  "div",
2429
2460
  {
2430
2461
  ref,
@@ -2434,10 +2465,10 @@ var EmptyState = React42.forwardRef(
2434
2465
  ),
2435
2466
  ...props,
2436
2467
  children: [
2437
- Icon && /* @__PURE__ */ jsx48("div", { className: "mb-4 flex size-11 items-center justify-center rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx48(Icon, { className: "size-5 text-icon-secondary", "aria-hidden": "true" }) }),
2438
- /* @__PURE__ */ jsx48("p", { className: "text-base font-semibold text-text-primary", children: title }),
2439
- description && /* @__PURE__ */ jsx48("p", { className: "mt-1 max-w-sm text-sm text-text-secondary", children: description }),
2440
- action && /* @__PURE__ */ jsx48("div", { className: "mt-4", children: action })
2468
+ Icon && /* @__PURE__ */ jsx49("div", { className: "mb-4 flex size-11 items-center justify-center rounded-full bg-bg-secondary", children: /* @__PURE__ */ jsx49(Icon, { className: "size-5 text-icon-secondary", "aria-hidden": "true" }) }),
2469
+ /* @__PURE__ */ jsx49("p", { className: "text-base font-semibold text-text-primary", children: title }),
2470
+ description && /* @__PURE__ */ jsx49("p", { className: "mt-1 max-w-sm text-sm text-text-secondary", children: description }),
2471
+ action && /* @__PURE__ */ jsx49("div", { className: "mt-4", children: action })
2441
2472
  ]
2442
2473
  }
2443
2474
  )
@@ -2447,7 +2478,7 @@ EmptyState.displayName = "EmptyState";
2447
2478
  // src/components/copy-button.tsx
2448
2479
  import * as React43 from "react";
2449
2480
  import { Check as Check5, Copy } from "lucide-react";
2450
- import { jsx as jsx49 } from "react/jsx-runtime";
2481
+ import { jsx as jsx50 } from "react/jsx-runtime";
2451
2482
  var CopyButton = React43.forwardRef(
2452
2483
  ({ value, label = "Copy", className, variant = "ghost", size = "icon", onClick, ...props }, ref) => {
2453
2484
  const [copied, setCopied] = React43.useState(false);
@@ -2464,7 +2495,7 @@ var CopyButton = React43.forwardRef(
2464
2495
  } catch {
2465
2496
  }
2466
2497
  };
2467
- return /* @__PURE__ */ jsx49(
2498
+ return /* @__PURE__ */ jsx50(
2468
2499
  Button,
2469
2500
  {
2470
2501
  ref,
@@ -2475,7 +2506,7 @@ var CopyButton = React43.forwardRef(
2475
2506
  className: cn(className),
2476
2507
  ...props,
2477
2508
  "aria-label": copied ? "Copied" : label,
2478
- children: copied ? /* @__PURE__ */ jsx49(Check5, { className: "size-4 text-text-success" }) : /* @__PURE__ */ jsx49(Copy, { className: "size-4" })
2509
+ children: copied ? /* @__PURE__ */ jsx50(Check5, { className: "size-4 text-text-success" }) : /* @__PURE__ */ jsx50(Copy, { className: "size-4" })
2479
2510
  }
2480
2511
  );
2481
2512
  }
@@ -2485,7 +2516,7 @@ CopyButton.displayName = "CopyButton";
2485
2516
  // src/components/stat-card.tsx
2486
2517
  import * as React44 from "react";
2487
2518
  import { ArrowDown, ArrowUp, Info as Info2, Minus as Minus2 } from "lucide-react";
2488
- import { jsx as jsx50, jsxs as jsxs23 } from "react/jsx-runtime";
2519
+ import { jsx as jsx51, jsxs as jsxs24 } from "react/jsx-runtime";
2489
2520
  var directionIcons = {
2490
2521
  up: ArrowUp,
2491
2522
  down: ArrowDown,
@@ -2507,30 +2538,30 @@ var StatCard = React44.forwardRef(
2507
2538
  const tone = delta?.tone ?? toneFromDirection[direction];
2508
2539
  const DeltaIcon = directionIcons[direction];
2509
2540
  const deltaClass = toneClasses[tone];
2510
- return /* @__PURE__ */ jsxs23(
2541
+ return /* @__PURE__ */ jsxs24(
2511
2542
  "div",
2512
2543
  {
2513
2544
  ref,
2514
2545
  className: cn("rounded-xl border border-border-subtle bg-bg-surface p-5", className),
2515
2546
  ...props,
2516
2547
  children: [
2517
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between gap-2", children: [
2518
- /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-1.5", children: [
2519
- /* @__PURE__ */ jsx50("span", { className: "text-xs font-medium uppercase tracking-wide text-text-tertiary", children: label }),
2520
- hint && /* @__PURE__ */ jsx50(TooltipProvider, { children: /* @__PURE__ */ jsxs23(Tooltip, { children: [
2521
- /* @__PURE__ */ jsx50(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx50("button", { type: "button", "aria-label": "More info", className: "inline-flex cursor-help text-icon-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus rounded-sm", children: /* @__PURE__ */ jsx50(Info2, { className: "size-3.5", "aria-hidden": "true" }) }) }),
2522
- /* @__PURE__ */ jsx50(TooltipContent, { children: hint })
2548
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center justify-between gap-2", children: [
2549
+ /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-1.5", children: [
2550
+ /* @__PURE__ */ jsx51("span", { className: "text-xs font-medium uppercase tracking-wide text-text-tertiary", children: label }),
2551
+ hint && /* @__PURE__ */ jsx51(TooltipProvider, { children: /* @__PURE__ */ jsxs24(Tooltip, { children: [
2552
+ /* @__PURE__ */ jsx51(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx51("button", { type: "button", "aria-label": "More info", className: "inline-flex cursor-help text-icon-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus rounded-sm", children: /* @__PURE__ */ jsx51(Info2, { className: "size-3.5", "aria-hidden": "true" }) }) }),
2553
+ /* @__PURE__ */ jsx51(TooltipContent, { children: hint })
2523
2554
  ] }) })
2524
2555
  ] }),
2525
- Icon && /* @__PURE__ */ jsx50(Icon, { className: "size-4 text-icon-secondary", "aria-hidden": "true" })
2556
+ Icon && /* @__PURE__ */ jsx51(Icon, { className: "size-4 text-icon-secondary", "aria-hidden": "true" })
2526
2557
  ] }),
2527
- /* @__PURE__ */ jsx50("div", { className: "mt-2 text-3xl font-semibold text-text-primary", children: value }),
2528
- (delta || sub) && /* @__PURE__ */ jsxs23("div", { className: "mt-2 flex items-center gap-2 text-sm", children: [
2529
- delta && /* @__PURE__ */ jsxs23("span", { className: cn("inline-flex items-center gap-0.5 font-medium", deltaClass), children: [
2530
- /* @__PURE__ */ jsx50(DeltaIcon, { className: "size-3.5", "aria-hidden": "true" }),
2558
+ /* @__PURE__ */ jsx51("div", { className: "mt-2 text-3xl font-semibold text-text-primary", children: value }),
2559
+ (delta || sub) && /* @__PURE__ */ jsxs24("div", { className: "mt-2 flex items-center gap-2 text-sm", children: [
2560
+ delta && /* @__PURE__ */ jsxs24("span", { className: cn("inline-flex items-center gap-0.5 font-medium", deltaClass), children: [
2561
+ /* @__PURE__ */ jsx51(DeltaIcon, { className: "size-3.5", "aria-hidden": "true" }),
2531
2562
  delta.value
2532
2563
  ] }),
2533
- sub && /* @__PURE__ */ jsx50("span", { className: "text-text-tertiary", children: sub })
2564
+ sub && /* @__PURE__ */ jsx51("span", { className: "text-text-tertiary", children: sub })
2534
2565
  ] })
2535
2566
  ]
2536
2567
  }
@@ -2542,9 +2573,9 @@ StatCard.displayName = "StatCard";
2542
2573
  // src/components/confirm-dialog.tsx
2543
2574
  import * as React45 from "react";
2544
2575
  import { Loader2 } from "lucide-react";
2545
- import { jsx as jsx51, jsxs as jsxs24 } from "react/jsx-runtime";
2576
+ import { jsx as jsx52, jsxs as jsxs25 } from "react/jsx-runtime";
2546
2577
  var InlineError = React45.forwardRef(
2547
- ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx51(
2578
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx52(
2548
2579
  "div",
2549
2580
  {
2550
2581
  ref,
@@ -2595,20 +2626,20 @@ function ConfirmDialog({
2595
2626
  setBusy(false);
2596
2627
  }
2597
2628
  };
2598
- return /* @__PURE__ */ jsxs24(Dialog, { open: actualOpen, onOpenChange: (next) => {
2629
+ return /* @__PURE__ */ jsxs25(Dialog, { open: actualOpen, onOpenChange: (next) => {
2599
2630
  if (!busy) setOpen(next);
2600
2631
  }, children: [
2601
- trigger && /* @__PURE__ */ jsx51(DialogTrigger, { asChild: true, children: trigger }),
2602
- /* @__PURE__ */ jsxs24(DialogContent, { children: [
2603
- /* @__PURE__ */ jsxs24(DialogHeader, { children: [
2604
- /* @__PURE__ */ jsx51(DialogTitle, { children: title }),
2605
- description && /* @__PURE__ */ jsx51(DialogDescription, { children: description })
2632
+ trigger && /* @__PURE__ */ jsx52(DialogTrigger, { asChild: true, children: trigger }),
2633
+ /* @__PURE__ */ jsxs25(DialogContent, { children: [
2634
+ /* @__PURE__ */ jsxs25(DialogHeader, { children: [
2635
+ /* @__PURE__ */ jsx52(DialogTitle, { children: title }),
2636
+ description && /* @__PURE__ */ jsx52(DialogDescription, { children: description })
2606
2637
  ] }),
2607
- error && /* @__PURE__ */ jsx51(InlineError, { children: error }),
2608
- /* @__PURE__ */ jsxs24(DialogFooter, { children: [
2609
- /* @__PURE__ */ jsx51(Button, { variant: "outline", disabled: busy, onClick: () => setOpen(false), children: cancelLabel }),
2610
- /* @__PURE__ */ jsxs24(Button, { variant: destructive ? "destructive" : "default", disabled: busy, onClick: handleConfirm, children: [
2611
- busy && /* @__PURE__ */ jsx51(Loader2, { className: "size-4 animate-spin", "aria-hidden": "true" }),
2638
+ error && /* @__PURE__ */ jsx52(InlineError, { children: error }),
2639
+ /* @__PURE__ */ jsxs25(DialogFooter, { children: [
2640
+ /* @__PURE__ */ jsx52(Button, { variant: "outline", disabled: busy, onClick: () => setOpen(false), children: cancelLabel }),
2641
+ /* @__PURE__ */ jsxs25(Button, { variant: destructive ? "destructive" : "default", disabled: busy, onClick: handleConfirm, children: [
2642
+ busy && /* @__PURE__ */ jsx52(Loader2, { className: "size-4 animate-spin", "aria-hidden": "true" }),
2612
2643
  confirmLabel
2613
2644
  ] })
2614
2645
  ] })
@@ -2618,7 +2649,7 @@ function ConfirmDialog({
2618
2649
 
2619
2650
  // src/components/user-menu.tsx
2620
2651
  import { ChevronsUpDown } from "lucide-react";
2621
- import { Fragment, jsx as jsx52, jsxs as jsxs25 } from "react/jsx-runtime";
2652
+ import { Fragment, jsx as jsx53, jsxs as jsxs26 } from "react/jsx-runtime";
2622
2653
  function initialsOf(name) {
2623
2654
  const parts = name.trim().split(/\s+/).filter(Boolean);
2624
2655
  if (parts.length === 0) return "?";
@@ -2627,11 +2658,11 @@ function initialsOf(name) {
2627
2658
  }
2628
2659
  function UserMenu({ user, items, collapsed = false, align = "start" }) {
2629
2660
  const secondLine = user.subtitle ?? user.email;
2630
- const avatar = /* @__PURE__ */ jsxs25(Avatar, { className: collapsed ? "size-9" : "size-7", children: [
2631
- user.avatarUrl && /* @__PURE__ */ jsx52(AvatarImage, { src: user.avatarUrl, alt: user.name }),
2632
- /* @__PURE__ */ jsx52(AvatarFallback, { className: "text-xs", children: initialsOf(user.name) })
2661
+ const avatar = /* @__PURE__ */ jsxs26(Avatar, { className: collapsed ? "size-9" : "size-7", children: [
2662
+ user.avatarUrl && /* @__PURE__ */ jsx53(AvatarImage, { src: user.avatarUrl, alt: user.name }),
2663
+ /* @__PURE__ */ jsx53(AvatarFallback, { className: "text-xs", children: initialsOf(user.name) })
2633
2664
  ] });
2634
- const trigger = collapsed ? /* @__PURE__ */ jsx52(
2665
+ const trigger = collapsed ? /* @__PURE__ */ jsx53(
2635
2666
  "button",
2636
2667
  {
2637
2668
  type: "button",
@@ -2639,46 +2670,46 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
2639
2670
  className: "rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
2640
2671
  children: avatar
2641
2672
  }
2642
- ) : /* @__PURE__ */ jsxs25(
2673
+ ) : /* @__PURE__ */ jsxs26(
2643
2674
  "button",
2644
2675
  {
2645
2676
  type: "button",
2646
2677
  className: "flex w-full items-center gap-2.5 rounded-xl px-1.5 py-[5px] text-left transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
2647
2678
  children: [
2648
2679
  avatar,
2649
- /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
2650
- /* @__PURE__ */ jsx52("span", { className: "truncate text-sm leading-[normal] font-medium text-text-primary", children: user.name }),
2651
- secondLine && /* @__PURE__ */ jsx52("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: secondLine })
2680
+ /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
2681
+ /* @__PURE__ */ jsx53("span", { className: "truncate text-sm leading-[normal] font-medium text-text-primary", children: user.name }),
2682
+ secondLine && /* @__PURE__ */ jsx53("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: secondLine })
2652
2683
  ] }),
2653
- /* @__PURE__ */ jsx52(ChevronsUpDown, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
2684
+ /* @__PURE__ */ jsx53(ChevronsUpDown, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
2654
2685
  ]
2655
2686
  }
2656
2687
  );
2657
- const menuTrigger = /* @__PURE__ */ jsx52(DropdownMenuTrigger, { asChild: true, children: trigger });
2658
- const menu = /* @__PURE__ */ jsxs25(DropdownMenu, { children: [
2659
- collapsed ? /* @__PURE__ */ jsx52(TooltipProvider, { children: /* @__PURE__ */ jsxs25(Tooltip, { children: [
2660
- /* @__PURE__ */ jsx52(TooltipTrigger, { asChild: true, children: menuTrigger }),
2661
- /* @__PURE__ */ jsx52(TooltipContent, { side: "right", children: user.name })
2688
+ const menuTrigger = /* @__PURE__ */ jsx53(DropdownMenuTrigger, { asChild: true, children: trigger });
2689
+ const menu = /* @__PURE__ */ jsxs26(DropdownMenu, { children: [
2690
+ collapsed ? /* @__PURE__ */ jsx53(TooltipProvider, { children: /* @__PURE__ */ jsxs26(Tooltip, { children: [
2691
+ /* @__PURE__ */ jsx53(TooltipTrigger, { asChild: true, children: menuTrigger }),
2692
+ /* @__PURE__ */ jsx53(TooltipContent, { side: "right", children: user.name })
2662
2693
  ] }) }) : menuTrigger,
2663
- /* @__PURE__ */ jsxs25(
2694
+ /* @__PURE__ */ jsxs26(
2664
2695
  DropdownMenuContent,
2665
2696
  {
2666
2697
  align,
2667
2698
  sideOffset: 6,
2668
2699
  className: "flex w-56 flex-col gap-px rounded-xl border-border-subtle bg-[var(--menu-bg)] p-1 shadow-(--menu-shadow)",
2669
2700
  children: [
2670
- /* @__PURE__ */ jsxs25(DropdownMenuLabel, { className: "px-2 pt-1.5 pb-1 text-xs font-medium text-text-tertiary", children: [
2671
- /* @__PURE__ */ jsx52("span", { className: "block truncate text-sm font-medium text-text-primary", children: user.name }),
2672
- secondLine && /* @__PURE__ */ jsx52("span", { className: "block truncate text-xs font-normal text-text-tertiary", children: secondLine })
2701
+ /* @__PURE__ */ jsxs26(DropdownMenuLabel, { className: "px-2 pt-1.5 pb-1 text-xs font-medium text-text-tertiary", children: [
2702
+ /* @__PURE__ */ jsx53("span", { className: "block truncate text-sm font-medium text-text-primary", children: user.name }),
2703
+ secondLine && /* @__PURE__ */ jsx53("span", { className: "block truncate text-xs font-normal text-text-tertiary", children: secondLine })
2673
2704
  ] }),
2674
- /* @__PURE__ */ jsx52(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
2705
+ /* @__PURE__ */ jsx53(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
2675
2706
  items.map((item, i) => {
2676
2707
  const Icon = item.icon;
2677
- const content = /* @__PURE__ */ jsxs25(Fragment, { children: [
2678
- Icon && /* @__PURE__ */ jsx52(Icon, { className: "size-4", "aria-hidden": "true" }),
2708
+ const content = /* @__PURE__ */ jsxs26(Fragment, { children: [
2709
+ Icon && /* @__PURE__ */ jsx53(Icon, { className: "size-4", "aria-hidden": "true" }),
2679
2710
  item.label
2680
2711
  ] });
2681
- return /* @__PURE__ */ jsx52(
2712
+ return /* @__PURE__ */ jsx53(
2682
2713
  DropdownMenuItem,
2683
2714
  {
2684
2715
  onSelect: item.onSelect,
@@ -2687,7 +2718,7 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
2687
2718
  item.destructive && "text-text-danger focus:text-text-danger"
2688
2719
  ),
2689
2720
  asChild: Boolean(item.href),
2690
- children: item.href ? /* @__PURE__ */ jsx52("a", { href: item.href, children: content }) : content
2721
+ children: item.href ? /* @__PURE__ */ jsx53("a", { href: item.href, children: content }) : content
2691
2722
  },
2692
2723
  `${item.label}-${i}`
2693
2724
  );
@@ -2701,12 +2732,12 @@ function UserMenu({ user, items, collapsed = false, align = "start" }) {
2701
2732
 
2702
2733
  // src/components/extension-link.tsx
2703
2734
  import { Link as Link2 } from "react-router";
2704
- import { jsx as jsx53 } from "react/jsx-runtime";
2735
+ import { jsx as jsx54 } from "react/jsx-runtime";
2705
2736
  function ExtensionLink({ uiMode, to, className, children, ...anchorProps }) {
2706
2737
  if (uiMode === "federation") {
2707
- return /* @__PURE__ */ jsx53(Link2, { to, className, ...anchorProps, children });
2738
+ return /* @__PURE__ */ jsx54(Link2, { to, className, ...anchorProps, children });
2708
2739
  }
2709
- return /* @__PURE__ */ jsx53("a", { href: to, className, ...anchorProps, children });
2740
+ return /* @__PURE__ */ jsx54("a", { href: to, className, ...anchorProps, children });
2710
2741
  }
2711
2742
  ExtensionLink.displayName = "ExtensionLink";
2712
2743
 
@@ -2714,7 +2745,7 @@ ExtensionLink.displayName = "ExtensionLink";
2714
2745
  import * as React46 from "react";
2715
2746
  import * as LucideIcons from "lucide-react";
2716
2747
  import { Puzzle } from "lucide-react";
2717
- import { jsx as jsx54 } from "react/jsx-runtime";
2748
+ import { jsx as jsx55 } from "react/jsx-runtime";
2718
2749
  var FORWARD_REF = /* @__PURE__ */ Symbol.for("react.forward_ref");
2719
2750
  var catalog = LucideIcons;
2720
2751
  function toPascalCase(name) {
@@ -2744,9 +2775,9 @@ var ExtensionIcon = React46.forwardRef(
2744
2775
  const Icon = resolveIcon(name);
2745
2776
  if (!Icon) {
2746
2777
  warnUnknownIconOnce(name);
2747
- return /* @__PURE__ */ jsx54(Puzzle, { ref, ...props });
2778
+ return /* @__PURE__ */ jsx55(Puzzle, { ref, ...props });
2748
2779
  }
2749
- return /* @__PURE__ */ jsx54(Icon, { ref, ...props });
2780
+ return /* @__PURE__ */ jsx55(Icon, { ref, ...props });
2750
2781
  }
2751
2782
  );
2752
2783
  ExtensionIcon.displayName = "ExtensionIcon";
@@ -2795,7 +2826,7 @@ function useSidebar(options = {}) {
2795
2826
  // src/components/nav-row.tsx
2796
2827
  import * as React47 from "react";
2797
2828
  import { Slot as Slot4 } from "@radix-ui/react-slot";
2798
- import { Fragment as Fragment2, jsx as jsx55, jsxs as jsxs26 } from "react/jsx-runtime";
2829
+ import { Fragment as Fragment2, jsx as jsx56, jsxs as jsxs27 } from "react/jsx-runtime";
2799
2830
  var base = "flex w-full items-center text-left text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
2800
2831
  var shape = {
2801
2832
  rail: "gap-[14px] rounded-xl px-2.5 py-2",
@@ -2812,8 +2843,8 @@ var state = {
2812
2843
  }
2813
2844
  };
2814
2845
  var NavRow = React47.forwardRef(function NavRow2({ icon, label, active = false, variant, trailing, hideLabel = false, asChild = false, className, children, ...props }, ref) {
2815
- const content = /* @__PURE__ */ jsxs26(Fragment2, { children: [
2816
- icon && /* @__PURE__ */ jsx55(
2846
+ const content = /* @__PURE__ */ jsxs27(Fragment2, { children: [
2847
+ icon && /* @__PURE__ */ jsx56(
2817
2848
  "span",
2818
2849
  {
2819
2850
  className: "flex size-5 shrink-0 items-center justify-center [&_svg]:size-[18px]",
@@ -2821,24 +2852,24 @@ var NavRow = React47.forwardRef(function NavRow2({ icon, label, active = false,
2821
2852
  children: icon
2822
2853
  }
2823
2854
  ),
2824
- !hideLabel && /* @__PURE__ */ jsx55("span", { className: "min-w-0 flex-1 truncate", children: label }),
2825
- trailing && /* @__PURE__ */ jsx55("span", { className: "flex shrink-0 items-center", children: trailing })
2855
+ !hideLabel && /* @__PURE__ */ jsx56("span", { className: "min-w-0 flex-1 truncate", children: label }),
2856
+ trailing && /* @__PURE__ */ jsx56("span", { className: "flex shrink-0 items-center", children: trailing })
2826
2857
  ] });
2827
2858
  const classes = cn(base, shape[variant], state[variant][active ? "active" : "idle"], className);
2828
2859
  if (asChild) {
2829
2860
  const child = React47.Children.only(children);
2830
- return /* @__PURE__ */ jsx55(Slot4, { ref, className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: React47.cloneElement(child, void 0, content) });
2861
+ return /* @__PURE__ */ jsx56(Slot4, { ref, className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: React47.cloneElement(child, void 0, content) });
2831
2862
  }
2832
- return /* @__PURE__ */ jsx55("button", { ref, type: "button", className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: content });
2863
+ return /* @__PURE__ */ jsx56("button", { ref, type: "button", className: classes, "aria-label": hideLabel ? label : void 0, ...props, children: content });
2833
2864
  });
2834
2865
  NavRow.displayName = "NavRow";
2835
2866
 
2836
2867
  // src/components/nav-section-label.tsx
2837
2868
  import * as React48 from "react";
2838
- import { jsx as jsx56 } from "react/jsx-runtime";
2869
+ import { jsx as jsx57 } from "react/jsx-runtime";
2839
2870
  var NavSectionLabel = React48.forwardRef(
2840
2871
  function NavSectionLabel2({ className, ...props }, ref) {
2841
- return /* @__PURE__ */ jsx56(
2872
+ return /* @__PURE__ */ jsx57(
2842
2873
  "div",
2843
2874
  {
2844
2875
  ref,
@@ -2852,7 +2883,7 @@ NavSectionLabel.displayName = "NavSectionLabel";
2852
2883
 
2853
2884
  // src/components/menu-popup.tsx
2854
2885
  import * as React49 from "react";
2855
- import { jsx as jsx57, jsxs as jsxs27 } from "react/jsx-runtime";
2886
+ import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
2856
2887
  function MenuPopup({
2857
2888
  trigger,
2858
2889
  children,
@@ -2864,9 +2895,9 @@ function MenuPopup({
2864
2895
  sideOffset = 6,
2865
2896
  className
2866
2897
  }) {
2867
- return /* @__PURE__ */ jsxs27(Popover, { open, defaultOpen, onOpenChange, children: [
2868
- /* @__PURE__ */ jsx57(PopoverTrigger, { asChild: true, children: trigger }),
2869
- /* @__PURE__ */ jsx57(
2898
+ return /* @__PURE__ */ jsxs28(Popover, { open, defaultOpen, onOpenChange, children: [
2899
+ /* @__PURE__ */ jsx58(PopoverTrigger, { asChild: true, children: trigger }),
2900
+ /* @__PURE__ */ jsx58(
2870
2901
  PopoverContent,
2871
2902
  {
2872
2903
  side: direction === "up" ? "top" : "bottom",
@@ -2883,7 +2914,7 @@ function MenuPopup({
2883
2914
  }
2884
2915
  var MenuDivider = React49.forwardRef(
2885
2916
  function MenuDivider2({ className, ...props }, ref) {
2886
- return /* @__PURE__ */ jsx57(
2917
+ return /* @__PURE__ */ jsx58(
2887
2918
  "div",
2888
2919
  {
2889
2920
  ref,
@@ -2898,7 +2929,7 @@ MenuDivider.displayName = "MenuDivider";
2898
2929
 
2899
2930
  // src/components/sidebar-nav.tsx
2900
2931
  import { Link as Link3, useLocation } from "react-router";
2901
- import { jsx as jsx58, jsxs as jsxs28 } from "react/jsx-runtime";
2932
+ import { jsx as jsx59, jsxs as jsxs29 } from "react/jsx-runtime";
2902
2933
  function isActivePath(pathname, full, exact) {
2903
2934
  if (exact) return pathname === full;
2904
2935
  return pathname === full || pathname.startsWith(`${full}/`);
@@ -2914,23 +2945,23 @@ function SidebarNavLink({
2914
2945
  const Comp = LinkComponent ?? Link3;
2915
2946
  const to = `${basePath}${item.href}`;
2916
2947
  const Icon = item.icon;
2917
- const link = /* @__PURE__ */ jsx58(
2948
+ const link = /* @__PURE__ */ jsx59(
2918
2949
  NavRow,
2919
2950
  {
2920
2951
  variant: "rail",
2921
2952
  active,
2922
2953
  label: item.label,
2923
2954
  hideLabel: collapsed,
2924
- icon: Icon ? /* @__PURE__ */ jsx58(Icon, { "aria-hidden": "true" }) : void 0,
2955
+ icon: Icon ? /* @__PURE__ */ jsx59(Icon, { "aria-hidden": "true" }) : void 0,
2925
2956
  className: cn(collapsed && "size-9 justify-center px-0 py-0", className),
2926
2957
  asChild: true,
2927
- children: /* @__PURE__ */ jsx58(Comp, { to, "aria-current": active ? "page" : void 0 })
2958
+ children: /* @__PURE__ */ jsx59(Comp, { to, "aria-current": active ? "page" : void 0 })
2928
2959
  }
2929
2960
  );
2930
2961
  if (!collapsed) return link;
2931
- return /* @__PURE__ */ jsxs28(Tooltip, { children: [
2932
- /* @__PURE__ */ jsx58(TooltipTrigger, { asChild: true, children: link }),
2933
- /* @__PURE__ */ jsx58(TooltipContent, { side: "right", children: item.label })
2962
+ return /* @__PURE__ */ jsxs29(Tooltip, { children: [
2963
+ /* @__PURE__ */ jsx59(TooltipTrigger, { asChild: true, children: link }),
2964
+ /* @__PURE__ */ jsx59(TooltipContent, { side: "right", children: item.label })
2934
2965
  ] });
2935
2966
  }
2936
2967
  function SidebarNav({
@@ -2942,7 +2973,7 @@ function SidebarNav({
2942
2973
  className
2943
2974
  }) {
2944
2975
  const { pathname } = useLocation();
2945
- const nav = /* @__PURE__ */ jsx58(
2976
+ const nav = /* @__PURE__ */ jsx59(
2946
2977
  "nav",
2947
2978
  {
2948
2979
  className: cn(
@@ -2953,7 +2984,7 @@ function SidebarNav({
2953
2984
  children: items.map((item) => {
2954
2985
  const full = `${basePath}${item.href}`;
2955
2986
  const active = isItemActive ? isItemActive(item, pathname) : isActivePath(pathname, full, item.exact);
2956
- return /* @__PURE__ */ jsx58(
2987
+ return /* @__PURE__ */ jsx59(
2957
2988
  SidebarNavLink,
2958
2989
  {
2959
2990
  item,
@@ -2967,14 +2998,14 @@ function SidebarNav({
2967
2998
  })
2968
2999
  }
2969
3000
  );
2970
- return collapsed ? /* @__PURE__ */ jsx58(TooltipProvider, { children: nav }) : nav;
3001
+ return collapsed ? /* @__PURE__ */ jsx59(TooltipProvider, { children: nav }) : nav;
2971
3002
  }
2972
3003
 
2973
3004
  // src/components/app-sidebar.tsx
2974
3005
  import { PanelLeft } from "lucide-react";
2975
- import { Fragment as Fragment3, jsx as jsx59, jsxs as jsxs29 } from "react/jsx-runtime";
3006
+ import { Fragment as Fragment3, jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
2976
3007
  function Divider({ collapsed, testId, className }) {
2977
- return /* @__PURE__ */ jsx59(
3008
+ return /* @__PURE__ */ jsx60(
2978
3009
  "div",
2979
3010
  {
2980
3011
  "data-testid": testId,
@@ -3006,7 +3037,7 @@ function AppSidebar({
3006
3037
  defaultCollapsed,
3007
3038
  onCollapsedChange
3008
3039
  });
3009
- const pin = collapsible ? /* @__PURE__ */ jsx59(
3040
+ const pin = collapsible ? /* @__PURE__ */ jsx60(
3010
3041
  "button",
3011
3042
  {
3012
3043
  type: "button",
@@ -3014,10 +3045,10 @@ function AppSidebar({
3014
3045
  "aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
3015
3046
  "aria-expanded": !collapsed,
3016
3047
  className: "flex size-6 shrink-0 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
3017
- children: /* @__PURE__ */ jsx59(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3048
+ children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3018
3049
  }
3019
3050
  ) : null;
3020
- return /* @__PURE__ */ jsxs29(
3051
+ return /* @__PURE__ */ jsxs30(
3021
3052
  "aside",
3022
3053
  {
3023
3054
  "data-collapsed": collapsed,
@@ -3027,12 +3058,12 @@ function AppSidebar({
3027
3058
  className
3028
3059
  ),
3029
3060
  children: [
3030
- /* @__PURE__ */ jsx59("div", { className: cn("flex items-center gap-2", collapsed ? "justify-center px-1 pt-2" : "px-3 pt-[13px]"), children: collapsed ? collapsible ? logoCollapsed ?? logo ? (
3061
+ /* @__PURE__ */ jsx60("div", { className: cn("flex items-center gap-2", collapsed ? "justify-center px-1 pt-2" : "px-3 pt-[13px]"), children: collapsed ? collapsible ? logoCollapsed ?? logo ? (
3031
3062
  /* The collapsed rail (52px) can't fit the logo mark beside the pin side by side —
3032
3063
  so the pin overlays the mark instead, revealed on hover/focus, same as pre-flat-rail. */
3033
- /* @__PURE__ */ jsxs29("div", { className: "group relative flex size-8 items-center justify-center", children: [
3034
- /* @__PURE__ */ jsx59("span", { className: "pointer-events-none transition-opacity group-hover:opacity-0 group-focus-within:opacity-0", children: logoCollapsed ?? logo }),
3035
- /* @__PURE__ */ jsx59(
3064
+ /* @__PURE__ */ jsxs30("div", { className: "group relative flex size-8 items-center justify-center", children: [
3065
+ /* @__PURE__ */ jsx60("span", { className: "pointer-events-none transition-opacity group-hover:opacity-0 group-focus-within:opacity-0", children: logoCollapsed ?? logo }),
3066
+ /* @__PURE__ */ jsx60(
3036
3067
  "button",
3037
3068
  {
3038
3069
  type: "button",
@@ -3040,7 +3071,7 @@ function AppSidebar({
3040
3071
  "aria-label": "Expand sidebar",
3041
3072
  "aria-expanded": false,
3042
3073
  className: "absolute inset-0 flex items-center justify-center rounded-md text-text-secondary opacity-0 transition-opacity hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-border-focus group-hover:opacity-100 group-focus-within:opacity-100",
3043
- children: /* @__PURE__ */ jsx59(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3074
+ children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3044
3075
  }
3045
3076
  )
3046
3077
  ] })
@@ -3049,7 +3080,7 @@ function AppSidebar({
3049
3080
  count, it's expanded-only). Hover-revealing the pin over nothing would leave
3050
3081
  an invisible 32px box as the only way back to expanded, so render it plain
3051
3082
  and fully visible instead. */
3052
- /* @__PURE__ */ jsx59(
3083
+ /* @__PURE__ */ jsx60(
3053
3084
  "button",
3054
3085
  {
3055
3086
  type: "button",
@@ -3057,15 +3088,15 @@ function AppSidebar({
3057
3088
  "aria-label": "Expand sidebar",
3058
3089
  "aria-expanded": false,
3059
3090
  className: "flex size-8 shrink-0 items-center justify-center rounded-md text-text-secondary transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus",
3060
- children: /* @__PURE__ */ jsx59(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3091
+ children: /* @__PURE__ */ jsx60(PanelLeft, { className: "size-4", "aria-hidden": "true" })
3061
3092
  }
3062
3093
  )
3063
- ) : logoCollapsed ?? logo : /* @__PURE__ */ jsxs29(Fragment3, { children: [
3094
+ ) : logoCollapsed ?? logo : /* @__PURE__ */ jsxs30(Fragment3, { children: [
3064
3095
  header ?? logo,
3065
3096
  pin
3066
3097
  ] }) }),
3067
- /* @__PURE__ */ jsx59(Divider, { collapsed, testId: "sidebar-divider-header", className: "mt-3" }),
3068
- /* @__PURE__ */ jsx59(
3098
+ /* @__PURE__ */ jsx60(Divider, { collapsed, testId: "sidebar-divider-header", className: "mt-3" }),
3099
+ /* @__PURE__ */ jsx60(
3069
3100
  "div",
3070
3101
  {
3071
3102
  "data-testid": "sidebar-scroll",
@@ -3073,12 +3104,12 @@ function AppSidebar({
3073
3104
  "min-h-0 flex-1 overflow-y-auto overflow-x-hidden pt-3 pb-2",
3074
3105
  collapsed ? "px-1" : "px-3"
3075
3106
  ),
3076
- children: /* @__PURE__ */ jsx59(SidebarNav, { items, collapsed, basePath, LinkComponent, isItemActive })
3107
+ children: /* @__PURE__ */ jsx60(SidebarNav, { items, collapsed, basePath, LinkComponent, isItemActive })
3077
3108
  }
3078
3109
  ),
3079
- footer && /* @__PURE__ */ jsxs29(Fragment3, { children: [
3080
- /* @__PURE__ */ jsx59(Divider, { collapsed, testId: "sidebar-divider-account" }),
3081
- /* @__PURE__ */ jsx59("div", { className: cn("py-2", collapsed ? "px-1" : "px-3"), children: footer })
3110
+ footer && /* @__PURE__ */ jsxs30(Fragment3, { children: [
3111
+ /* @__PURE__ */ jsx60(Divider, { collapsed, testId: "sidebar-divider-account" }),
3112
+ /* @__PURE__ */ jsx60("div", { className: cn("py-2", collapsed ? "px-1" : "px-3"), children: footer })
3082
3113
  ] })
3083
3114
  ]
3084
3115
  }
@@ -3089,37 +3120,37 @@ function AppSidebar({
3089
3120
  import * as React50 from "react";
3090
3121
  import { Slot as Slot5 } from "@radix-ui/react-slot";
3091
3122
  import { ChevronsUpDown as ChevronsUpDown2 } from "lucide-react";
3092
- import { Fragment as Fragment4, jsx as jsx60, jsxs as jsxs30 } from "react/jsx-runtime";
3123
+ import { Fragment as Fragment4, jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
3093
3124
  var SidebarProductHeader = React50.forwardRef(
3094
3125
  function SidebarProductHeader2({ name, icon, trailing, asChild = false, className, children, ...props }, ref) {
3095
- const adornment = trailing === void 0 ? /* @__PURE__ */ jsx60(ChevronsUpDown2, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" }) : trailing;
3096
- const content = /* @__PURE__ */ jsxs30(Fragment4, { children: [
3097
- icon && /* @__PURE__ */ jsx60("span", { className: "flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md", "aria-hidden": "true", children: icon }),
3098
- /* @__PURE__ */ jsx60("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold text-text-primary", children: name }),
3099
- adornment && /* @__PURE__ */ jsx60("span", { className: "flex shrink-0 items-center", children: adornment })
3126
+ const adornment = trailing === void 0 ? /* @__PURE__ */ jsx61(ChevronsUpDown2, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" }) : trailing;
3127
+ const content = /* @__PURE__ */ jsxs31(Fragment4, { children: [
3128
+ icon && /* @__PURE__ */ jsx61("span", { className: "flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md", "aria-hidden": "true", children: icon }),
3129
+ /* @__PURE__ */ jsx61("span", { className: "min-w-0 flex-1 truncate text-sm font-semibold text-text-primary", children: name }),
3130
+ adornment && /* @__PURE__ */ jsx61("span", { className: "flex shrink-0 items-center", children: adornment })
3100
3131
  ] });
3101
3132
  const classes = cn("flex w-full items-center gap-2.5 rounded-xl px-1.5 py-0 text-left", className);
3102
3133
  if (asChild) {
3103
3134
  const child = React50.Children.only(children);
3104
- return /* @__PURE__ */ jsx60(Slot5, { ref, className: classes, ...props, children: React50.cloneElement(child, void 0, content) });
3135
+ return /* @__PURE__ */ jsx61(Slot5, { ref, className: classes, ...props, children: React50.cloneElement(child, void 0, content) });
3105
3136
  }
3106
- return /* @__PURE__ */ jsx60("button", { ref, type: "button", className: classes, ...props, children: content });
3137
+ return /* @__PURE__ */ jsx61("button", { ref, type: "button", className: classes, ...props, children: content });
3107
3138
  }
3108
3139
  );
3109
3140
  SidebarProductHeader.displayName = "SidebarProductHeader";
3110
3141
 
3111
3142
  // src/components/org-product-switcher.tsx
3112
3143
  import { ChevronsUpDown as ChevronsUpDown3, Check as Check6 } from "lucide-react";
3113
- import { Fragment as Fragment5, jsx as jsx61, jsxs as jsxs31 } from "react/jsx-runtime";
3144
+ import { Fragment as Fragment5, jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
3114
3145
  var triggerBox = "flex w-full items-center gap-2.5 rounded-xl px-1.5 py-1 text-left transition-colors hover:bg-[var(--hov-bg)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
3115
3146
  var menuItem = "gap-2 rounded-md px-2 py-1.5 text-sm font-medium text-text-secondary focus:bg-[var(--menu-hov)] focus:text-text-primary";
3116
3147
  var sectionLabel = "px-2 pt-1.5 pb-1 text-xs font-medium text-text-tertiary";
3117
3148
  function Mark({ item, size }) {
3118
3149
  const box = size === "md" ? "size-7" : "size-5";
3119
3150
  if (item.icon) {
3120
- return /* @__PURE__ */ jsx61("span", { className: cn("flex shrink-0 items-center justify-center overflow-hidden rounded-md", box), "aria-hidden": "true", children: item.icon });
3151
+ return /* @__PURE__ */ jsx62("span", { className: cn("flex shrink-0 items-center justify-center overflow-hidden rounded-md", box), "aria-hidden": "true", children: item.icon });
3121
3152
  }
3122
- return /* @__PURE__ */ jsx61(
3153
+ return /* @__PURE__ */ jsx62(
3123
3154
  "span",
3124
3155
  {
3125
3156
  "aria-hidden": "true",
@@ -3146,44 +3177,44 @@ function OrgProductSwitcher({
3146
3177
  const activeOrg = organizations.find((o) => o.id === activeOrgId);
3147
3178
  const activeProduct = products.find((p) => p.id === activeProductId);
3148
3179
  const ariaLabel = props["aria-label"] ?? `${activeOrg?.name ?? ""} / ${activeProduct?.name ?? ""}`;
3149
- return /* @__PURE__ */ jsxs31(DropdownMenu, { children: [
3150
- /* @__PURE__ */ jsxs31(DropdownMenuTrigger, { "aria-label": ariaLabel, className: cn(triggerBox, className), children: [
3151
- activeProduct && /* @__PURE__ */ jsx61(Mark, { item: activeProduct, size: "md" }),
3152
- /* @__PURE__ */ jsxs31("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
3153
- /* @__PURE__ */ jsx61("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: activeOrg?.name }),
3154
- /* @__PURE__ */ jsx61("span", { className: "truncate text-sm leading-[normal] font-semibold text-text-primary", children: activeProduct?.name })
3180
+ return /* @__PURE__ */ jsxs32(DropdownMenu, { children: [
3181
+ /* @__PURE__ */ jsxs32(DropdownMenuTrigger, { "aria-label": ariaLabel, className: cn(triggerBox, className), children: [
3182
+ activeProduct && /* @__PURE__ */ jsx62(Mark, { item: activeProduct, size: "md" }),
3183
+ /* @__PURE__ */ jsxs32("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
3184
+ /* @__PURE__ */ jsx62("span", { className: "truncate text-xs leading-[normal] text-text-tertiary", children: activeOrg?.name }),
3185
+ /* @__PURE__ */ jsx62("span", { className: "truncate text-sm leading-[normal] font-semibold text-text-primary", children: activeProduct?.name })
3155
3186
  ] }),
3156
- /* @__PURE__ */ jsx61(ChevronsUpDown3, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
3187
+ /* @__PURE__ */ jsx62(ChevronsUpDown3, { size: 14, "aria-hidden": "true", className: "shrink-0 text-text-tertiary" })
3157
3188
  ] }),
3158
- /* @__PURE__ */ jsxs31(
3189
+ /* @__PURE__ */ jsxs32(
3159
3190
  DropdownMenuContent,
3160
3191
  {
3161
3192
  align: "start",
3162
3193
  sideOffset: 6,
3163
3194
  className: "flex w-60 flex-col gap-px rounded-xl border-border-subtle bg-[var(--menu-bg)] p-1 shadow-(--menu-shadow)",
3164
3195
  children: [
3165
- /* @__PURE__ */ jsx61(DropdownMenuLabel, { className: sectionLabel, children: "Organizations" }),
3166
- organizations.map((o) => /* @__PURE__ */ jsxs31(DropdownMenuItem, { className: menuItem, onSelect: () => onOrgSelect(o.id), children: [
3167
- /* @__PURE__ */ jsx61(Mark, { item: o, size: "sm" }),
3168
- /* @__PURE__ */ jsx61("span", { className: "min-w-0 flex-1 truncate", children: o.name }),
3169
- o.id === activeOrgId && /* @__PURE__ */ jsx61(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
3196
+ /* @__PURE__ */ jsx62(DropdownMenuLabel, { className: sectionLabel, children: "Organizations" }),
3197
+ organizations.map((o) => /* @__PURE__ */ jsxs32(DropdownMenuItem, { className: menuItem, onSelect: () => onOrgSelect(o.id), children: [
3198
+ /* @__PURE__ */ jsx62(Mark, { item: o, size: "sm" }),
3199
+ /* @__PURE__ */ jsx62("span", { className: "min-w-0 flex-1 truncate", children: o.name }),
3200
+ o.id === activeOrgId && /* @__PURE__ */ jsx62(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
3170
3201
  ] }, o.id)),
3171
- /* @__PURE__ */ jsx61(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
3172
- /* @__PURE__ */ jsxs31(DropdownMenuLabel, { className: sectionLabel, children: [
3202
+ /* @__PURE__ */ jsx62(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
3203
+ /* @__PURE__ */ jsxs32(DropdownMenuLabel, { className: sectionLabel, children: [
3173
3204
  activeOrg?.name,
3174
3205
  " \xB7 Products"
3175
3206
  ] }),
3176
- products.map((p) => /* @__PURE__ */ jsxs31(DropdownMenuItem, { className: menuItem, onSelect: () => onProductSelect(p.id), children: [
3177
- /* @__PURE__ */ jsx61(Mark, { item: p, size: "sm" }),
3178
- /* @__PURE__ */ jsx61("span", { className: "min-w-0 flex-1 truncate", children: p.name }),
3179
- p.id === activeProductId && /* @__PURE__ */ jsx61(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
3207
+ products.map((p) => /* @__PURE__ */ jsxs32(DropdownMenuItem, { className: menuItem, onSelect: () => onProductSelect(p.id), children: [
3208
+ /* @__PURE__ */ jsx62(Mark, { item: p, size: "sm" }),
3209
+ /* @__PURE__ */ jsx62("span", { className: "min-w-0 flex-1 truncate", children: p.name }),
3210
+ p.id === activeProductId && /* @__PURE__ */ jsx62(Check6, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
3180
3211
  ] }, p.id)),
3181
- actions && actions.length > 0 && /* @__PURE__ */ jsxs31(Fragment5, { children: [
3182
- /* @__PURE__ */ jsx61(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
3183
- actions.map((a) => /* @__PURE__ */ jsx61(DropdownMenuItem, { className: menuItem, onSelect: a.onSelect, asChild: Boolean(a.href), children: a.href ? /* @__PURE__ */ jsxs31("a", { href: a.href, children: [
3212
+ actions && actions.length > 0 && /* @__PURE__ */ jsxs32(Fragment5, { children: [
3213
+ /* @__PURE__ */ jsx62(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
3214
+ actions.map((a) => /* @__PURE__ */ jsx62(DropdownMenuItem, { className: menuItem, onSelect: a.onSelect, asChild: Boolean(a.href), children: a.href ? /* @__PURE__ */ jsxs32("a", { href: a.href, children: [
3184
3215
  a.icon,
3185
3216
  a.label
3186
- ] }) : /* @__PURE__ */ jsxs31(Fragment5, { children: [
3217
+ ] }) : /* @__PURE__ */ jsxs32(Fragment5, { children: [
3187
3218
  a.icon,
3188
3219
  a.label
3189
3220
  ] }) }, a.id))
@@ -3197,12 +3228,12 @@ OrgProductSwitcher.displayName = "OrgProductSwitcher";
3197
3228
 
3198
3229
  // src/components/sidebar-back-header.tsx
3199
3230
  import { ArrowLeft as ArrowLeft2 } from "lucide-react";
3200
- import { jsx as jsx62, jsxs as jsxs32 } from "react/jsx-runtime";
3231
+ import { jsx as jsx63, jsxs as jsxs33 } from "react/jsx-runtime";
3201
3232
  var focusRing = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus";
3202
3233
  var arrowPlate = "flex size-5 items-center justify-center rounded-md transition-colors hover:bg-[color-mix(in_srgb,var(--text-primary)_12%,transparent)] hover:text-text-primary";
3203
3234
  var arrowBox = "flex shrink-0 cursor-pointer items-center rounded-xl py-2 pr-0 pl-2.5 text-text-secondary";
3204
3235
  var titleBox = "min-w-0 flex-1 cursor-pointer truncate rounded-xl py-2 pr-2.5 pl-[14px] text-left text-sm font-semibold text-text-primary";
3205
- var Arrow = () => /* @__PURE__ */ jsx62(ArrowLeft2, { size: 16, "aria-hidden": "true" });
3236
+ var Arrow = () => /* @__PURE__ */ jsx63(ArrowLeft2, { size: 16, "aria-hidden": "true" });
3206
3237
  function SidebarBackHeader({
3207
3238
  title,
3208
3239
  onBack,
@@ -3216,7 +3247,7 @@ function SidebarBackHeader({
3216
3247
  const { className: arrowClassName, ...arrowRest } = arrowProps ?? {};
3217
3248
  const { className: titleClassName, ...titleRest } = titleProps ?? {};
3218
3249
  if (!onTitleClick) {
3219
- return /* @__PURE__ */ jsxs32(
3250
+ return /* @__PURE__ */ jsxs33(
3220
3251
  "button",
3221
3252
  {
3222
3253
  type: "button",
@@ -3224,14 +3255,14 @@ function SidebarBackHeader({
3224
3255
  className: cn("flex items-center rounded-xl", focusRing, className),
3225
3256
  ...rowProps,
3226
3257
  children: [
3227
- /* @__PURE__ */ jsx62("span", { className: arrowBox, children: /* @__PURE__ */ jsx62("span", { className: cn(arrowPlate, arrowClassName), ...arrowRest, children: /* @__PURE__ */ jsx62(Arrow, {}) }) }),
3228
- /* @__PURE__ */ jsx62("span", { className: cn(titleBox, titleClassName), ...titleRest, children: title })
3258
+ /* @__PURE__ */ jsx63("span", { className: arrowBox, children: /* @__PURE__ */ jsx63("span", { className: cn(arrowPlate, arrowClassName), ...arrowRest, children: /* @__PURE__ */ jsx63(Arrow, {}) }) }),
3259
+ /* @__PURE__ */ jsx63("span", { className: cn(titleBox, titleClassName), ...titleRest, children: title })
3229
3260
  ]
3230
3261
  }
3231
3262
  );
3232
3263
  }
3233
- return /* @__PURE__ */ jsxs32("div", { className: cn("flex items-center", className), ...rowProps, children: [
3234
- /* @__PURE__ */ jsx62(
3264
+ return /* @__PURE__ */ jsxs33("div", { className: cn("flex items-center", className), ...rowProps, children: [
3265
+ /* @__PURE__ */ jsx63(
3235
3266
  "button",
3236
3267
  {
3237
3268
  type: "button",
@@ -3239,10 +3270,10 @@ function SidebarBackHeader({
3239
3270
  onClick: onBack,
3240
3271
  className: cn(arrowBox, focusRing, arrowClassName),
3241
3272
  ...arrowRest,
3242
- children: /* @__PURE__ */ jsx62("span", { className: arrowPlate, children: /* @__PURE__ */ jsx62(Arrow, {}) })
3273
+ children: /* @__PURE__ */ jsx63("span", { className: arrowPlate, children: /* @__PURE__ */ jsx63(Arrow, {}) })
3243
3274
  }
3244
3275
  ),
3245
- /* @__PURE__ */ jsx62(
3276
+ /* @__PURE__ */ jsx63(
3246
3277
  "button",
3247
3278
  {
3248
3279
  type: "button",
@@ -3260,7 +3291,7 @@ SidebarBackHeader.displayName = "SidebarBackHeader";
3260
3291
  import * as React51 from "react";
3261
3292
  import { Menu as Menu2 } from "lucide-react";
3262
3293
  import { useLocation as useLocation2 } from "react-router";
3263
- import { jsx as jsx63, jsxs as jsxs33 } from "react/jsx-runtime";
3294
+ import { jsx as jsx64, jsxs as jsxs34 } from "react/jsx-runtime";
3264
3295
  function expandedSidebar(sidebar) {
3265
3296
  return React51.isValidElement(sidebar) ? React51.cloneElement(sidebar, { collapsed: false }) : sidebar;
3266
3297
  }
@@ -3272,26 +3303,26 @@ function AppShell({ sidebar, topBar, children, className }) {
3272
3303
  }, [pathname]);
3273
3304
  const isMobile = useIsMobile();
3274
3305
  if (isMobile) {
3275
- return /* @__PURE__ */ jsx63(TooltipProvider, { children: /* @__PURE__ */ jsxs33("div", { className: cn("flex min-h-screen flex-col bg-bg-surface", className), children: [
3276
- /* @__PURE__ */ jsxs33("header", { className: "flex shrink-0 items-center justify-between border-b border-border-subtle bg-bg-surface px-4 py-3", children: [
3277
- /* @__PURE__ */ jsxs33(Sheet, { open: mobileOpen, onOpenChange: setMobileOpen, children: [
3278
- /* @__PURE__ */ jsx63(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx63(Button, { variant: "ghost", size: "icon", className: "size-8 text-text-secondary", "aria-label": "Open navigation", children: /* @__PURE__ */ jsx63(Menu2, { className: "size-5" }) }) }),
3279
- /* @__PURE__ */ jsxs33(SheetContent, { side: "left", className: "w-[248px] bg-bg-surface p-0", children: [
3280
- /* @__PURE__ */ jsx63(SheetTitle, { className: "sr-only", children: "Navigation" }),
3281
- /* @__PURE__ */ jsx63(SheetDescription, { className: "sr-only", children: "Application navigation menu" }),
3306
+ return /* @__PURE__ */ jsx64(TooltipProvider, { children: /* @__PURE__ */ jsxs34("div", { className: cn("flex min-h-screen flex-col bg-bg-surface", className), children: [
3307
+ /* @__PURE__ */ jsxs34("header", { className: "flex shrink-0 items-center justify-between border-b border-border-subtle bg-bg-surface px-4 py-3", children: [
3308
+ /* @__PURE__ */ jsxs34(Sheet, { open: mobileOpen, onOpenChange: setMobileOpen, children: [
3309
+ /* @__PURE__ */ jsx64(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx64(Button, { variant: "ghost", size: "icon", className: "size-8 text-text-secondary", "aria-label": "Open navigation", children: /* @__PURE__ */ jsx64(Menu2, { className: "size-5" }) }) }),
3310
+ /* @__PURE__ */ jsxs34(SheetContent, { side: "left", className: "w-[248px] bg-bg-surface p-0", children: [
3311
+ /* @__PURE__ */ jsx64(SheetTitle, { className: "sr-only", children: "Navigation" }),
3312
+ /* @__PURE__ */ jsx64(SheetDescription, { className: "sr-only", children: "Application navigation menu" }),
3282
3313
  expandedSidebar(sidebar)
3283
3314
  ] })
3284
3315
  ] }),
3285
- /* @__PURE__ */ jsx63("div", { className: "flex items-center gap-2", children: topBar })
3316
+ /* @__PURE__ */ jsx64("div", { className: "flex items-center gap-2", children: topBar })
3286
3317
  ] }),
3287
- /* @__PURE__ */ jsx63("main", { className: "flex-1 overflow-auto", children })
3318
+ /* @__PURE__ */ jsx64("main", { className: "flex-1 overflow-auto", children })
3288
3319
  ] }) });
3289
3320
  }
3290
- return /* @__PURE__ */ jsx63(TooltipProvider, { children: /* @__PURE__ */ jsxs33("div", { className: cn("flex min-h-screen gap-3 bg-bg-surface p-4", className), children: [
3291
- /* @__PURE__ */ jsx63("div", { className: "sticky top-4 h-[calc(100vh-32px)] shrink-0", children: sidebar }),
3292
- /* @__PURE__ */ jsxs33("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
3293
- topBar && /* @__PURE__ */ jsx63("div", { className: "flex shrink-0 items-center justify-end gap-2", children: topBar }),
3294
- /* @__PURE__ */ jsx63("main", { className: "flex-1 overflow-y-auto", children })
3321
+ return /* @__PURE__ */ jsx64(TooltipProvider, { children: /* @__PURE__ */ jsxs34("div", { className: cn("flex min-h-screen gap-3 bg-bg-surface p-4", className), children: [
3322
+ /* @__PURE__ */ jsx64("div", { className: "sticky top-4 h-[calc(100vh-32px)] shrink-0", children: sidebar }),
3323
+ /* @__PURE__ */ jsxs34("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden", children: [
3324
+ topBar && /* @__PURE__ */ jsx64("div", { className: "flex shrink-0 items-center justify-end gap-2", children: topBar }),
3325
+ /* @__PURE__ */ jsx64("main", { className: "flex-1 overflow-y-auto", children })
3295
3326
  ] })
3296
3327
  ] }) });
3297
3328
  }
@@ -3300,11 +3331,11 @@ var AuthenticatedLayout = AppShell;
3300
3331
  // src/components/grid.tsx
3301
3332
  import * as React52 from "react";
3302
3333
  import { Slot as Slot6 } from "@radix-ui/react-slot";
3303
- import { jsx as jsx64 } from "react/jsx-runtime";
3334
+ import { jsx as jsx65 } from "react/jsx-runtime";
3304
3335
  var Grid = React52.forwardRef(
3305
3336
  ({ fluid = false, asChild = false, className, ...props }, ref) => {
3306
3337
  const Comp = asChild ? Slot6 : "div";
3307
- return /* @__PURE__ */ jsx64(
3338
+ return /* @__PURE__ */ jsx65(
3308
3339
  Comp,
3309
3340
  {
3310
3341
  ref,
@@ -3324,7 +3355,7 @@ Grid.displayName = "Grid";
3324
3355
  // src/components/col.tsx
3325
3356
  import * as React53 from "react";
3326
3357
  import { Slot as Slot7 } from "@radix-ui/react-slot";
3327
- import { jsx as jsx65 } from "react/jsx-runtime";
3358
+ import { jsx as jsx66 } from "react/jsx-runtime";
3328
3359
  var TIER_MAX = { base: 4, md: 8, xl: 12 };
3329
3360
  var SPAN = {
3330
3361
  base: { 1: "col-span-1", 2: "col-span-2", 3: "col-span-3", 4: "col-span-4" },
@@ -3447,14 +3478,14 @@ function responsiveClasses(span, offset) {
3447
3478
  var Col = React53.forwardRef(
3448
3479
  ({ span, offset, asChild = false, className, ...props }, ref) => {
3449
3480
  const Comp = asChild ? Slot7 : "div";
3450
- return /* @__PURE__ */ jsx65(Comp, { ref, className: cn(responsiveClasses(span, offset), className), ...props });
3481
+ return /* @__PURE__ */ jsx66(Comp, { ref, className: cn(responsiveClasses(span, offset), className), ...props });
3451
3482
  }
3452
3483
  );
3453
3484
  Col.displayName = "Col";
3454
3485
 
3455
3486
  // src/components/code-block.tsx
3456
3487
  import * as React54 from "react";
3457
- import { jsx as jsx66, jsxs as jsxs34 } from "react/jsx-runtime";
3488
+ import { jsx as jsx67, jsxs as jsxs35 } from "react/jsx-runtime";
3458
3489
  var TOKEN_CLASS = {
3459
3490
  comment: "text-text-tertiary italic",
3460
3491
  string: "text-text-success",
@@ -3586,7 +3617,7 @@ var CodeBlock = React54.forwardRef(
3586
3617
  ({ code, lang = "tsx", copy = false, filename, scroll = false, className, ...props }, ref) => {
3587
3618
  const tokens = React54.useMemo(() => tokenize(code, lang), [code, lang]);
3588
3619
  const framed = Boolean(filename) || copy;
3589
- const pre = /* @__PURE__ */ jsx66(
3620
+ const pre = /* @__PURE__ */ jsx67(
3590
3621
  "pre",
3591
3622
  {
3592
3623
  ref,
@@ -3597,21 +3628,21 @@ var CodeBlock = React54.forwardRef(
3597
3628
  className
3598
3629
  ),
3599
3630
  ...props,
3600
- children: /* @__PURE__ */ jsx66("code", { children: tokens.map((token, index) => /* @__PURE__ */ jsx66("span", { className: TOKEN_CLASS[token.kind], children: token.text }, index)) })
3631
+ children: /* @__PURE__ */ jsx67("code", { children: tokens.map((token, index) => /* @__PURE__ */ jsx67("span", { className: TOKEN_CLASS[token.kind], children: token.text }, index)) })
3601
3632
  }
3602
3633
  );
3603
3634
  if (!framed) return pre;
3604
- return /* @__PURE__ */ jsxs34("div", { className: "overflow-hidden rounded-lg border border-border-subtle bg-bg-primary", children: [
3605
- /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-2", children: [
3606
- filename ? /* @__PURE__ */ jsx66("span", { className: "font-mono text-xs text-text-tertiary", children: filename }) : /* @__PURE__ */ jsx66("span", {}),
3607
- copy ? /* @__PURE__ */ jsx66(CopyButton, { value: code, label: "Copy code" }) : null
3635
+ return /* @__PURE__ */ jsxs35("div", { className: "overflow-hidden rounded-lg border border-border-subtle bg-bg-primary", children: [
3636
+ /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-2", children: [
3637
+ filename ? /* @__PURE__ */ jsx67("span", { className: "font-mono text-xs text-text-tertiary", children: filename }) : /* @__PURE__ */ jsx67("span", {}),
3638
+ copy ? /* @__PURE__ */ jsx67(CopyButton, { value: code, label: "Copy code" }) : null
3608
3639
  ] }),
3609
3640
  pre
3610
3641
  ] });
3611
3642
  }
3612
3643
  );
3613
3644
  CodeBlock.displayName = "CodeBlock";
3614
- var Code = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
3645
+ var Code = React54.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(
3615
3646
  "code",
3616
3647
  {
3617
3648
  ref,
@@ -3626,12 +3657,12 @@ Code.displayName = "Code";
3626
3657
 
3627
3658
  // src/components/grid-overlay.tsx
3628
3659
  import * as React55 from "react";
3629
- import { jsx as jsx67 } from "react/jsx-runtime";
3660
+ import { jsx as jsx68 } from "react/jsx-runtime";
3630
3661
  var BASELINE = "var(--grid-gutter) / 2";
3631
3662
  var GridOverlay = React55.forwardRef(
3632
3663
  ({ columns, baseline = false, className, style, ...props }, ref) => {
3633
3664
  const count = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;
3634
- return /* @__PURE__ */ jsx67(
3665
+ return /* @__PURE__ */ jsx68(
3635
3666
  "div",
3636
3667
  {
3637
3668
  ref,
@@ -3648,7 +3679,7 @@ var GridOverlay = React55.forwardRef(
3648
3679
  ...style
3649
3680
  },
3650
3681
  ...props,
3651
- children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx67("span", { style: { backgroundColor: "var(--bg-brand)", opacity: 0.1 } }, i))
3682
+ children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx68("span", { style: { backgroundColor: "var(--bg-brand)", opacity: 0.1 } }, i))
3652
3683
  }
3653
3684
  );
3654
3685
  }
@@ -3659,7 +3690,7 @@ GridOverlay.displayName = "GridOverlay";
3659
3690
  import * as React56 from "react";
3660
3691
  import { cva as cva9 } from "class-variance-authority";
3661
3692
  import { Link2 as Link22, KeyRound, Clock, Plus } from "lucide-react";
3662
- import { jsx as jsx68, jsxs as jsxs35 } from "react/jsx-runtime";
3693
+ import { jsx as jsx69, jsxs as jsxs36 } from "react/jsx-runtime";
3663
3694
  var segmentChipVariants = cva9(
3664
3695
  "inline-flex items-center gap-1.5 rounded-lg border px-2.5 py-1 text-sm font-medium leading-tight",
3665
3696
  {
@@ -3683,8 +3714,8 @@ var kindIcons = {
3683
3714
  var SegmentChip = React56.forwardRef(
3684
3715
  ({ kind, resource, icon, hideIcon = false, className, ...props }, ref) => {
3685
3716
  const Icon = icon ?? kindIcons[kind ?? "granted"];
3686
- return /* @__PURE__ */ jsxs35("span", { ref, className: cn(segmentChipVariants({ kind }), className), ...props, children: [
3687
- !hideIcon && /* @__PURE__ */ jsx68(Icon, { className: "size-3.5 shrink-0 opacity-90", "aria-hidden": "true" }),
3717
+ return /* @__PURE__ */ jsxs36("span", { ref, className: cn(segmentChipVariants({ kind }), className), ...props, children: [
3718
+ !hideIcon && /* @__PURE__ */ jsx69(Icon, { className: "size-3.5 shrink-0 opacity-90", "aria-hidden": "true" }),
3688
3719
  resource
3689
3720
  ] });
3690
3721
  }
@@ -3694,7 +3725,7 @@ SegmentChip.displayName = "SegmentChip";
3694
3725
  // src/components/connection-card.tsx
3695
3726
  import * as React57 from "react";
3696
3727
  import { AlertTriangle, ChevronDown as ChevronDown4 } from "lucide-react";
3697
- import { Fragment as Fragment6, jsx as jsx69, jsxs as jsxs36 } from "react/jsx-runtime";
3728
+ import { Fragment as Fragment6, jsx as jsx70, jsxs as jsxs37 } from "react/jsx-runtime";
3698
3729
  var authLabels = { app: "App", oauth: "OAuth", token: "token" };
3699
3730
  var statusMeta = {
3700
3731
  connected: { label: "Connected", badge: "success", dot: "success" },
@@ -3725,7 +3756,7 @@ var ConnectionCard = React57.forwardRef(
3725
3756
  }, ref) => {
3726
3757
  const meta = statusMeta[status];
3727
3758
  const connected = status !== "disconnected";
3728
- const glyphBox = /* @__PURE__ */ jsx69(
3759
+ const glyphBox = /* @__PURE__ */ jsx70(
3729
3760
  "div",
3730
3761
  {
3731
3762
  "aria-hidden": "true",
@@ -3733,51 +3764,51 @@ var ConnectionCard = React57.forwardRef(
3733
3764
  children: glyph ?? monogram(name)
3734
3765
  }
3735
3766
  );
3736
- const identity = /* @__PURE__ */ jsxs36("div", { className: "min-w-0", children: [
3737
- /* @__PURE__ */ jsx69("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
3738
- /* @__PURE__ */ jsxs36("div", { className: "mt-0.5 flex flex-wrap gap-1", children: [
3739
- /* @__PURE__ */ jsx69(Badge, { variant: "secondary", children: scope }),
3740
- /* @__PURE__ */ jsx69(Badge, { variant: "secondary", children: authLabels[auth] })
3767
+ const identity = /* @__PURE__ */ jsxs37("div", { className: "min-w-0", children: [
3768
+ /* @__PURE__ */ jsx70("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
3769
+ /* @__PURE__ */ jsxs37("div", { className: "mt-0.5 flex flex-wrap gap-1", children: [
3770
+ /* @__PURE__ */ jsx70(Badge, { variant: "secondary", children: scope }),
3771
+ /* @__PURE__ */ jsx70(Badge, { variant: "secondary", children: authLabels[auth] })
3741
3772
  ] })
3742
3773
  ] });
3743
- const statusBadge = /* @__PURE__ */ jsxs36(Badge, { variant: meta.badge, className: "gap-1.5", children: [
3744
- /* @__PURE__ */ jsx69(StatusDot, { status: meta.dot, size: "sm" }),
3774
+ const statusBadge = /* @__PURE__ */ jsxs37(Badge, { variant: meta.badge, className: "gap-1.5", children: [
3775
+ /* @__PURE__ */ jsx70(StatusDot, { status: meta.dot, size: "sm" }),
3745
3776
  statusLabel ?? meta.label
3746
3777
  ] });
3747
- const accessNote = access ? /* @__PURE__ */ jsxs36(
3778
+ const accessNote = access ? /* @__PURE__ */ jsxs37(
3748
3779
  "div",
3749
3780
  {
3750
3781
  role: "note",
3751
3782
  className: "flex items-start gap-2 border-t border-border-subtle bg-bg-warning-subtle px-4 py-2.5 text-xs font-medium text-text-warning",
3752
3783
  children: [
3753
- /* @__PURE__ */ jsx69(AlertTriangle, { className: "mt-0.5 size-3.5 shrink-0", "aria-hidden": "true" }),
3754
- /* @__PURE__ */ jsx69("span", { children: access })
3784
+ /* @__PURE__ */ jsx70(AlertTriangle, { className: "mt-0.5 size-3.5 shrink-0", "aria-hidden": "true" }),
3785
+ /* @__PURE__ */ jsx70("span", { children: access })
3755
3786
  ]
3756
3787
  }
3757
3788
  ) : null;
3758
3789
  const footerAction = collapsible ? action : connected && action;
3759
- const footer = grantedCount !== void 0 || footerAction ? /* @__PURE__ */ jsxs36("div", { className: "flex items-center justify-between border-t border-border-subtle px-4 py-3", children: [
3760
- /* @__PURE__ */ jsx69("span", { className: "text-sm text-text-secondary", children: grantedCount !== void 0 ? /* @__PURE__ */ jsxs36(Fragment6, { children: [
3790
+ const footer = grantedCount !== void 0 || footerAction ? /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between border-t border-border-subtle px-4 py-3", children: [
3791
+ /* @__PURE__ */ jsx70("span", { className: "text-sm text-text-secondary", children: grantedCount !== void 0 ? /* @__PURE__ */ jsxs37(Fragment6, { children: [
3761
3792
  "Granted to ",
3762
- /* @__PURE__ */ jsx69("span", { className: "font-semibold text-text-primary", children: grantedCount }),
3793
+ /* @__PURE__ */ jsx70("span", { className: "font-semibold text-text-primary", children: grantedCount }),
3763
3794
  " ",
3764
3795
  grantedCount === 1 ? "product" : "products"
3765
- ] }) : /* @__PURE__ */ jsx69("span", { className: "text-text-tertiary", children: "Not granted to any product yet" }) }),
3796
+ ] }) : /* @__PURE__ */ jsx70("span", { className: "text-text-tertiary", children: "Not granted to any product yet" }) }),
3766
3797
  footerAction
3767
3798
  ] }) : null;
3768
- const drawer = children ? /* @__PURE__ */ jsx69("div", { "data-slot": "drawer", className: "border-t border-border-subtle", children }) : null;
3799
+ const drawer = children ? /* @__PURE__ */ jsx70("div", { "data-slot": "drawer", className: "border-t border-border-subtle", children }) : null;
3769
3800
  if (!collapsible) {
3770
- return /* @__PURE__ */ jsxs36(
3801
+ return /* @__PURE__ */ jsxs37(
3771
3802
  Card,
3772
3803
  {
3773
3804
  ref,
3774
3805
  className: cn(status === "disconnected" && "border-dashed border-border-default", className),
3775
3806
  ...props,
3776
3807
  children: [
3777
- /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-3 p-4", children: [
3808
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 p-4", children: [
3778
3809
  glyphBox,
3779
3810
  identity,
3780
- /* @__PURE__ */ jsx69("div", { className: "ml-auto shrink-0", children: connected ? statusBadge : action })
3811
+ /* @__PURE__ */ jsx70("div", { className: "ml-auto shrink-0", children: connected ? statusBadge : action })
3781
3812
  ] }),
3782
3813
  accessNote,
3783
3814
  footer,
@@ -3786,7 +3817,7 @@ var ConnectionCard = React57.forwardRef(
3786
3817
  }
3787
3818
  );
3788
3819
  }
3789
- return /* @__PURE__ */ jsx69(Collapsible, { defaultOpen, open, onOpenChange, children: /* @__PURE__ */ jsxs36(
3820
+ return /* @__PURE__ */ jsx70(Collapsible, { defaultOpen, open, onOpenChange, children: /* @__PURE__ */ jsxs37(
3790
3821
  Card,
3791
3822
  {
3792
3823
  ref,
@@ -3797,7 +3828,7 @@ var ConnectionCard = React57.forwardRef(
3797
3828
  ),
3798
3829
  ...props,
3799
3830
  children: [
3800
- /* @__PURE__ */ jsx69(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs36(
3831
+ /* @__PURE__ */ jsx70(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs37(
3801
3832
  "button",
3802
3833
  {
3803
3834
  type: "button",
@@ -3805,9 +3836,9 @@ var ConnectionCard = React57.forwardRef(
3805
3836
  children: [
3806
3837
  glyphBox,
3807
3838
  identity,
3808
- /* @__PURE__ */ jsxs36("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
3839
+ /* @__PURE__ */ jsxs37("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
3809
3840
  statusBadge,
3810
- /* @__PURE__ */ jsx69(
3841
+ /* @__PURE__ */ jsx70(
3811
3842
  ChevronDown4,
3812
3843
  {
3813
3844
  "aria-hidden": "true",
@@ -3818,7 +3849,7 @@ var ConnectionCard = React57.forwardRef(
3818
3849
  ]
3819
3850
  }
3820
3851
  ) }),
3821
- /* @__PURE__ */ jsxs36(CollapsibleContent2, { children: [
3852
+ /* @__PURE__ */ jsxs37(CollapsibleContent2, { children: [
3822
3853
  accessNote,
3823
3854
  footer,
3824
3855
  drawer
@@ -3832,7 +3863,7 @@ ConnectionCard.displayName = "ConnectionCard";
3832
3863
 
3833
3864
  // src/components/request-row.tsx
3834
3865
  import * as React58 from "react";
3835
- import { Fragment as Fragment7, jsx as jsx70, jsxs as jsxs37 } from "react/jsx-runtime";
3866
+ import { Fragment as Fragment7, jsx as jsx71, jsxs as jsxs38 } from "react/jsx-runtime";
3836
3867
  function monogram2(name) {
3837
3868
  return name.replace(/[^a-zA-Z0-9 ]/g, " ").split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0].toUpperCase()).join("");
3838
3869
  }
@@ -3841,22 +3872,22 @@ var RequestRow = React58.forwardRef(
3841
3872
  let controls = action;
3842
3873
  if (controls === void 0) {
3843
3874
  if (surface === "org" && state2 === "pending") {
3844
- controls = /* @__PURE__ */ jsxs37(Fragment7, { children: [
3845
- /* @__PURE__ */ jsx70(Button, { variant: "outline", size: "sm", onClick: onDeny, children: "Deny" }),
3846
- /* @__PURE__ */ jsx70(Button, { size: "sm", onClick: onApprove, children: "Approve" })
3875
+ controls = /* @__PURE__ */ jsxs38(Fragment7, { children: [
3876
+ /* @__PURE__ */ jsx71(Button, { variant: "outline", size: "sm", onClick: onDeny, children: "Deny" }),
3877
+ /* @__PURE__ */ jsx71(Button, { size: "sm", onClick: onApprove, children: "Approve" })
3847
3878
  ] });
3848
3879
  } else if (state2 === "available") {
3849
- controls = /* @__PURE__ */ jsx70(Button, { size: "sm", onClick: onRequest, children: "Request" });
3880
+ controls = /* @__PURE__ */ jsx71(Button, { size: "sm", onClick: onRequest, children: "Request" });
3850
3881
  } else if (state2 === "pending") {
3851
- controls = /* @__PURE__ */ jsxs37(Badge, { variant: "secondary", className: "gap-1.5", children: [
3852
- /* @__PURE__ */ jsx70(StatusDot, { status: "neutral", size: "sm" }),
3882
+ controls = /* @__PURE__ */ jsxs38(Badge, { variant: "secondary", className: "gap-1.5", children: [
3883
+ /* @__PURE__ */ jsx71(StatusDot, { status: "neutral", size: "sm" }),
3853
3884
  "Pending"
3854
3885
  ] });
3855
3886
  } else if (state2 === "granted") {
3856
- controls = /* @__PURE__ */ jsx70(SegmentChip, { kind: "granted", resource: grantedResource ?? "a segment" });
3887
+ controls = /* @__PURE__ */ jsx71(SegmentChip, { kind: "granted", resource: grantedResource ?? "a segment" });
3857
3888
  }
3858
3889
  }
3859
- return /* @__PURE__ */ jsxs37(
3890
+ return /* @__PURE__ */ jsxs38(
3860
3891
  "div",
3861
3892
  {
3862
3893
  ref,
@@ -3866,7 +3897,7 @@ var RequestRow = React58.forwardRef(
3866
3897
  ),
3867
3898
  ...props,
3868
3899
  children: [
3869
- /* @__PURE__ */ jsx70(
3900
+ /* @__PURE__ */ jsx71(
3870
3901
  "div",
3871
3902
  {
3872
3903
  "aria-hidden": "true",
@@ -3874,11 +3905,11 @@ var RequestRow = React58.forwardRef(
3874
3905
  children: glyph ?? monogram2(name)
3875
3906
  }
3876
3907
  ),
3877
- /* @__PURE__ */ jsxs37("div", { className: "min-w-0", children: [
3878
- /* @__PURE__ */ jsx70("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
3879
- subtitle && /* @__PURE__ */ jsx70("p", { className: "truncate text-xs text-text-tertiary", children: subtitle })
3908
+ /* @__PURE__ */ jsxs38("div", { className: "min-w-0", children: [
3909
+ /* @__PURE__ */ jsx71("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
3910
+ subtitle && /* @__PURE__ */ jsx71("p", { className: "truncate text-xs text-text-tertiary", children: subtitle })
3880
3911
  ] }),
3881
- /* @__PURE__ */ jsx70("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: controls })
3912
+ /* @__PURE__ */ jsx71("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: controls })
3882
3913
  ]
3883
3914
  }
3884
3915
  );
@@ -3889,7 +3920,7 @@ RequestRow.displayName = "RequestRow";
3889
3920
  // src/components/feedback-button.tsx
3890
3921
  import * as React59 from "react";
3891
3922
  import { MessageSquare, Loader2 as Loader22, CheckCircle2 } from "lucide-react";
3892
- import { jsx as jsx71, jsxs as jsxs38 } from "react/jsx-runtime";
3923
+ import { jsx as jsx72, jsxs as jsxs39 } from "react/jsx-runtime";
3893
3924
  var TITLE_MAX = 256;
3894
3925
  var DETAILS_MAX = 65536;
3895
3926
  var DEFAULT_LABELS = {
@@ -3936,20 +3967,20 @@ function FeedbackButton({ onSubmit, labels, className }) {
3936
3967
  setStatus("error");
3937
3968
  }
3938
3969
  };
3939
- return /* @__PURE__ */ jsxs38(Popover, { open, onOpenChange: changeOpen, children: [
3940
- /* @__PURE__ */ jsx71(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs38(Button, { variant: "ghost", size: "sm", "aria-label": l.trigger, className, children: [
3941
- /* @__PURE__ */ jsx71(MessageSquare, { className: "size-4", "aria-hidden": "true" }),
3970
+ return /* @__PURE__ */ jsxs39(Popover, { open, onOpenChange: changeOpen, children: [
3971
+ /* @__PURE__ */ jsx72(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs39(Button, { variant: "ghost", size: "sm", "aria-label": l.trigger, className, children: [
3972
+ /* @__PURE__ */ jsx72(MessageSquare, { className: "size-4", "aria-hidden": "true" }),
3942
3973
  l.trigger
3943
3974
  ] }) }),
3944
- /* @__PURE__ */ jsx71(PopoverContent, { align: "end", side: "bottom", className: "w-80", children: status === "success" ? /* @__PURE__ */ jsxs38("div", { className: "flex flex-col items-center gap-3 py-2 text-center", children: [
3945
- /* @__PURE__ */ jsx71(CheckCircle2, { className: "size-8 text-text-success", "aria-hidden": "true" }),
3946
- /* @__PURE__ */ jsx71("p", { role: "status", className: "text-sm text-text-primary", children: l.success }),
3947
- /* @__PURE__ */ jsx71(Button, { variant: "outline", size: "sm", onClick: () => changeOpen(false), children: "Close" })
3948
- ] }) : /* @__PURE__ */ jsxs38("form", { onSubmit: handleSubmit, className: "flex flex-col gap-3", children: [
3949
- /* @__PURE__ */ jsx71("p", { className: "text-sm font-medium text-text-primary", children: l.title }),
3950
- /* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-1.5", children: [
3951
- /* @__PURE__ */ jsx71(Label2, { htmlFor: titleId, children: l.titleField }),
3952
- /* @__PURE__ */ jsx71(
3975
+ /* @__PURE__ */ jsx72(PopoverContent, { align: "end", side: "bottom", className: "w-80", children: status === "success" ? /* @__PURE__ */ jsxs39("div", { className: "flex flex-col items-center gap-3 py-2 text-center", children: [
3976
+ /* @__PURE__ */ jsx72(CheckCircle2, { className: "size-8 text-text-success", "aria-hidden": "true" }),
3977
+ /* @__PURE__ */ jsx72("p", { role: "status", className: "text-sm text-text-primary", children: l.success }),
3978
+ /* @__PURE__ */ jsx72(Button, { variant: "outline", size: "sm", onClick: () => changeOpen(false), children: "Close" })
3979
+ ] }) : /* @__PURE__ */ jsxs39("form", { onSubmit: handleSubmit, className: "flex flex-col gap-3", children: [
3980
+ /* @__PURE__ */ jsx72("p", { className: "text-sm font-medium text-text-primary", children: l.title }),
3981
+ /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-1.5", children: [
3982
+ /* @__PURE__ */ jsx72(Label2, { htmlFor: titleId, children: l.titleField }),
3983
+ /* @__PURE__ */ jsx72(
3953
3984
  Input,
3954
3985
  {
3955
3986
  id: titleId,
@@ -3960,16 +3991,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
3960
3991
  "aria-describedby": titleTooLong ? titleErrId : void 0
3961
3992
  }
3962
3993
  ),
3963
- titleTooLong && /* @__PURE__ */ jsxs38("p", { id: titleErrId, className: "text-xs text-text-danger", children: [
3994
+ titleTooLong && /* @__PURE__ */ jsxs39("p", { id: titleErrId, className: "text-xs text-text-danger", children: [
3964
3995
  l.titleField,
3965
3996
  " must be ",
3966
3997
  TITLE_MAX,
3967
3998
  " characters or fewer."
3968
3999
  ] })
3969
4000
  ] }),
3970
- /* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-1.5", children: [
3971
- /* @__PURE__ */ jsx71(Label2, { htmlFor: detailsId, children: l.detailsField }),
3972
- /* @__PURE__ */ jsx71(
4001
+ /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-1.5", children: [
4002
+ /* @__PURE__ */ jsx72(Label2, { htmlFor: detailsId, children: l.detailsField }),
4003
+ /* @__PURE__ */ jsx72(
3973
4004
  Textarea,
3974
4005
  {
3975
4006
  id: detailsId,
@@ -3980,16 +4011,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
3980
4011
  "aria-describedby": detailsTooLong ? detailsErrId : void 0
3981
4012
  }
3982
4013
  ),
3983
- detailsTooLong && /* @__PURE__ */ jsxs38("p", { id: detailsErrId, className: "text-xs text-text-danger", children: [
4014
+ detailsTooLong && /* @__PURE__ */ jsxs39("p", { id: detailsErrId, className: "text-xs text-text-danger", children: [
3984
4015
  l.detailsField,
3985
4016
  " must be ",
3986
4017
  DETAILS_MAX,
3987
4018
  " characters or fewer."
3988
4019
  ] })
3989
4020
  ] }),
3990
- status === "error" && /* @__PURE__ */ jsx71(InlineError, { children: l.error }),
3991
- /* @__PURE__ */ jsxs38(Button, { type: "submit", disabled: !valid || submitting, children: [
3992
- submitting && /* @__PURE__ */ jsx71(Loader22, { className: "size-4 animate-spin", "aria-hidden": "true" }),
4021
+ status === "error" && /* @__PURE__ */ jsx72(InlineError, { children: l.error }),
4022
+ /* @__PURE__ */ jsxs39(Button, { type: "submit", disabled: !valid || submitting, children: [
4023
+ submitting && /* @__PURE__ */ jsx72(Loader22, { className: "size-4 animate-spin", "aria-hidden": "true" }),
3993
4024
  l.submit
3994
4025
  ] })
3995
4026
  ] }) })
@@ -3998,7 +4029,7 @@ function FeedbackButton({ onSubmit, labels, className }) {
3998
4029
 
3999
4030
  // src/components/create-product-window.tsx
4000
4031
  import { useForm } from "react-hook-form";
4001
- import { jsx as jsx72, jsxs as jsxs39 } from "react/jsx-runtime";
4032
+ import { jsx as jsx73, jsxs as jsxs40 } from "react/jsx-runtime";
4002
4033
  var CREATE_ORG_VALUE = "__create_new_org__";
4003
4034
  function CreateProductWindow({
4004
4035
  organizations,
@@ -4031,10 +4062,10 @@ function CreateProductWindow({
4031
4062
  }
4032
4063
  });
4033
4064
  const showSelect = organizations.length > 0;
4034
- return /* @__PURE__ */ jsxs39("div", { className: "flex w-full max-w-md flex-col gap-6", children: [
4035
- showSelect && /* @__PURE__ */ jsxs39("div", { className: "space-y-2", children: [
4036
- /* @__PURE__ */ jsx72("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Organization" }),
4037
- /* @__PURE__ */ jsx72(
4065
+ return /* @__PURE__ */ jsxs40("div", { className: "flex w-full max-w-md flex-col gap-6", children: [
4066
+ showSelect && /* @__PURE__ */ jsxs40("div", { className: "space-y-2", children: [
4067
+ /* @__PURE__ */ jsx73("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Organization" }),
4068
+ /* @__PURE__ */ jsx73(
4038
4069
  Select,
4039
4070
  {
4040
4071
  "data-testid": "create-product-org-select",
@@ -4047,9 +4078,9 @@ function CreateProductWindow({
4047
4078
  }
4048
4079
  )
4049
4080
  ] }),
4050
- !createOrgMode && /* @__PURE__ */ jsxs39("div", { className: "space-y-2", children: [
4051
- /* @__PURE__ */ jsx72("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Products" }),
4052
- productsLoading ? /* @__PURE__ */ jsx72("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx72("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : /* @__PURE__ */ jsx72("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx72("li", { children: /* @__PURE__ */ jsxs39(
4081
+ !createOrgMode && /* @__PURE__ */ jsxs40("div", { className: "space-y-2", children: [
4082
+ /* @__PURE__ */ jsx73("span", { className: "text-sm font-medium leading-none text-text-primary", children: "Products" }),
4083
+ productsLoading ? /* @__PURE__ */ jsx73("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx73("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : /* @__PURE__ */ jsx73("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx73("li", { children: /* @__PURE__ */ jsxs40(
4053
4084
  "button",
4054
4085
  {
4055
4086
  type: "button",
@@ -4058,14 +4089,14 @@ function CreateProductWindow({
4058
4089
  "flex w-full items-center justify-between rounded-md border border-border-default bg-bg-primary px-3 py-2 text-left text-sm text-text-primary hover:bg-bg-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus"
4059
4090
  ),
4060
4091
  children: [
4061
- /* @__PURE__ */ jsx72("span", { className: "truncate", children: product.name }),
4062
- /* @__PURE__ */ jsx72("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
4092
+ /* @__PURE__ */ jsx73("span", { className: "truncate", children: product.name }),
4093
+ /* @__PURE__ */ jsx73("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
4063
4094
  ]
4064
4095
  }
4065
4096
  ) }, product.id)) })
4066
4097
  ] }),
4067
- /* @__PURE__ */ jsx72(Form, { ...form, children: /* @__PURE__ */ jsxs39("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4", noValidate: true, children: [
4068
- createOrgMode && /* @__PURE__ */ jsx72(
4098
+ /* @__PURE__ */ jsx73(Form, { ...form, children: /* @__PURE__ */ jsxs40("form", { onSubmit: handleSubmit, className: "flex flex-col gap-4", noValidate: true, children: [
4099
+ createOrgMode && /* @__PURE__ */ jsx73(
4069
4100
  FormField,
4070
4101
  {
4071
4102
  control: form.control,
@@ -4073,14 +4104,14 @@ function CreateProductWindow({
4073
4104
  rules: {
4074
4105
  validate: (value) => value.trim().length > 0 || "Organization name is required"
4075
4106
  },
4076
- render: ({ field }) => /* @__PURE__ */ jsxs39(FormItem, { children: [
4077
- /* @__PURE__ */ jsx72(FormLabel, { children: "Organization name" }),
4078
- /* @__PURE__ */ jsx72(FormControl, { children: /* @__PURE__ */ jsx72(Input, { placeholder: "Acme Inc.", ...field }) }),
4079
- /* @__PURE__ */ jsx72(FormMessage, {})
4107
+ render: ({ field }) => /* @__PURE__ */ jsxs40(FormItem, { children: [
4108
+ /* @__PURE__ */ jsx73(FormLabel, { children: "Organization name" }),
4109
+ /* @__PURE__ */ jsx73(FormControl, { children: /* @__PURE__ */ jsx73(Input, { placeholder: "Acme Inc.", ...field }) }),
4110
+ /* @__PURE__ */ jsx73(FormMessage, {})
4080
4111
  ] })
4081
4112
  }
4082
4113
  ),
4083
- /* @__PURE__ */ jsx72(
4114
+ /* @__PURE__ */ jsx73(
4084
4115
  FormField,
4085
4116
  {
4086
4117
  control: form.control,
@@ -4088,15 +4119,15 @@ function CreateProductWindow({
4088
4119
  rules: {
4089
4120
  validate: (value) => value.trim().length > 0 || "Product name is required"
4090
4121
  },
4091
- render: ({ field }) => /* @__PURE__ */ jsxs39(FormItem, { children: [
4092
- /* @__PURE__ */ jsx72(FormLabel, { children: "Product name" }),
4093
- /* @__PURE__ */ jsx72(FormControl, { children: /* @__PURE__ */ jsx72(Input, { placeholder: "My product", ...field }) }),
4094
- /* @__PURE__ */ jsx72(FormMessage, {})
4122
+ render: ({ field }) => /* @__PURE__ */ jsxs40(FormItem, { children: [
4123
+ /* @__PURE__ */ jsx73(FormLabel, { children: "Product name" }),
4124
+ /* @__PURE__ */ jsx73(FormControl, { children: /* @__PURE__ */ jsx73(Input, { placeholder: "My product", ...field }) }),
4125
+ /* @__PURE__ */ jsx73(FormMessage, {})
4095
4126
  ] })
4096
4127
  }
4097
4128
  ),
4098
- error && /* @__PURE__ */ jsx72(InlineError, { children: error }),
4099
- /* @__PURE__ */ jsx72(Button, { type: "submit", disabled: submitting, children: "Create product" })
4129
+ error && /* @__PURE__ */ jsx73(InlineError, { children: error }),
4130
+ /* @__PURE__ */ jsx73(Button, { type: "submit", disabled: submitting, children: "Create product" })
4100
4131
  ] }) })
4101
4132
  ] });
4102
4133
  }
@@ -4137,16 +4168,16 @@ function isNotificationSettled(item) {
4137
4168
  // src/components/notification-bell.tsx
4138
4169
  import * as React60 from "react";
4139
4170
  import { BellRing, Check as Check7, Settings } from "lucide-react";
4140
- import { jsx as jsx73, jsxs as jsxs40 } from "react/jsx-runtime";
4171
+ import { jsx as jsx74, jsxs as jsxs41 } from "react/jsx-runtime";
4141
4172
  function MarkReadButton({ title, onClick }) {
4142
- return /* @__PURE__ */ jsx73(
4173
+ return /* @__PURE__ */ jsx74(
4143
4174
  "button",
4144
4175
  {
4145
4176
  type: "button",
4146
4177
  "aria-label": `Mark "${title}" as read`,
4147
4178
  onClick,
4148
4179
  className: "flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary opacity-0 transition-opacity hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",
4149
- children: /* @__PURE__ */ jsx73(Check7, { className: "size-3.5", "aria-hidden": "true" })
4180
+ children: /* @__PURE__ */ jsx74(Check7, { className: "size-3.5", "aria-hidden": "true" })
4150
4181
  }
4151
4182
  );
4152
4183
  }
@@ -4162,10 +4193,10 @@ function BellRow({
4162
4193
  const markable = Boolean(onMarkRead) && unread && item.cls !== "ephemeral";
4163
4194
  const actions = settled ? [] : item.actions ?? [];
4164
4195
  const age = item.createdAt ? formatAge(item.createdAt instanceof Date ? item.createdAt : new Date(item.createdAt)) : null;
4165
- return /* @__PURE__ */ jsxs40("div", { className: cn("group rounded-lg bg-bg-surface px-3 py-2.5", settled && "opacity-45"), children: [
4166
- /* @__PURE__ */ jsxs40("div", { className: "flex items-start gap-2.5", children: [
4167
- /* @__PURE__ */ jsxs40("div", { className: "min-w-0 flex-1", children: [
4168
- /* @__PURE__ */ jsx73(
4196
+ return /* @__PURE__ */ jsxs41("div", { className: cn("group rounded-lg bg-bg-surface px-3 py-2.5", settled && "opacity-45"), children: [
4197
+ /* @__PURE__ */ jsxs41("div", { className: "flex items-start gap-2.5", children: [
4198
+ /* @__PURE__ */ jsxs41("div", { className: "min-w-0 flex-1", children: [
4199
+ /* @__PURE__ */ jsx74(
4169
4200
  "button",
4170
4201
  {
4171
4202
  type: "button",
@@ -4177,20 +4208,20 @@ function BellRow({
4177
4208
  children: item.title
4178
4209
  }
4179
4210
  ),
4180
- /* @__PURE__ */ jsxs40("p", { className: "mt-1 truncate text-xs text-text-tertiary", children: [
4181
- /* @__PURE__ */ jsx73("span", { className: "font-semibold uppercase tracking-wide text-text-secondary", children: item.source }),
4211
+ /* @__PURE__ */ jsxs41("p", { className: "mt-1 truncate text-xs text-text-tertiary", children: [
4212
+ /* @__PURE__ */ jsx74("span", { className: "font-semibold uppercase tracking-wide text-text-secondary", children: item.source }),
4182
4213
  item.receipt ? `, ${item.receipt}` : ""
4183
4214
  ] })
4184
4215
  ] }),
4185
- (age || markable) && /* @__PURE__ */ jsxs40("div", { className: "mt-px flex shrink-0 items-center gap-1", children: [
4186
- age && /* @__PURE__ */ jsx73("span", { className: "text-xs text-text-tertiary", children: age }),
4187
- markable && /* @__PURE__ */ jsx73(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
4216
+ (age || markable) && /* @__PURE__ */ jsxs41("div", { className: "mt-px flex shrink-0 items-center gap-1", children: [
4217
+ age && /* @__PURE__ */ jsx74("span", { className: "text-xs text-text-tertiary", children: age }),
4218
+ markable && /* @__PURE__ */ jsx74(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
4188
4219
  ] })
4189
4220
  ] }),
4190
- (actions.length > 0 || item.deepLink) && /* @__PURE__ */ jsxs40("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
4221
+ (actions.length > 0 || item.deepLink) && /* @__PURE__ */ jsxs41("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
4191
4222
  actions.map((action) => {
4192
4223
  const chip = action.variant === "primary" || action.variant === "destructive";
4193
- return /* @__PURE__ */ jsx73(
4224
+ return /* @__PURE__ */ jsx74(
4194
4225
  "button",
4195
4226
  {
4196
4227
  type: "button",
@@ -4205,7 +4236,7 @@ function BellRow({
4205
4236
  action.id
4206
4237
  );
4207
4238
  }),
4208
- item.deepLink && /* @__PURE__ */ jsx73(
4239
+ item.deepLink && /* @__PURE__ */ jsx74(
4209
4240
  "button",
4210
4241
  {
4211
4242
  type: "button",
@@ -4239,8 +4270,8 @@ var NotificationBell = React60.forwardRef(
4239
4270
  [formatAge]
4240
4271
  );
4241
4272
  const rows = items.slice(0, maxItems);
4242
- return /* @__PURE__ */ jsxs40(Popover, { open, onOpenChange, children: [
4243
- /* @__PURE__ */ jsx73(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs40(
4273
+ return /* @__PURE__ */ jsxs41(Popover, { open, onOpenChange, children: [
4274
+ /* @__PURE__ */ jsx74(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs41(
4244
4275
  "button",
4245
4276
  {
4246
4277
  ref,
@@ -4251,16 +4282,16 @@ var NotificationBell = React60.forwardRef(
4251
4282
  className
4252
4283
  ),
4253
4284
  children: [
4254
- /* @__PURE__ */ jsx73(BellRing, { className: "size-[18px]", "aria-hidden": "true" }),
4255
- unread > 0 && /* @__PURE__ */ jsx73("span", { className: "absolute -right-1.5 -top-1.5 flex size-[17px] items-center justify-center rounded-full bg-bg-brand text-xs font-bold leading-none text-text-on-brand ring-2 ring-bg-surface", children: unread })
4285
+ /* @__PURE__ */ jsx74(BellRing, { className: "size-[18px]", "aria-hidden": "true" }),
4286
+ unread > 0 && /* @__PURE__ */ jsx74("span", { className: "absolute -right-1.5 -top-1.5 flex size-[17px] items-center justify-center rounded-full bg-bg-brand text-xs font-bold leading-none text-text-on-brand ring-2 ring-bg-surface", children: unread })
4256
4287
  ]
4257
4288
  }
4258
4289
  ) }),
4259
- /* @__PURE__ */ jsxs40(PopoverContent, { align: "end", className: "w-[380px] overflow-hidden p-0", children: [
4260
- /* @__PURE__ */ jsxs40("div", { className: "flex items-center justify-between px-5 py-3", children: [
4261
- /* @__PURE__ */ jsx73("span", { className: "text-sm font-bold text-text-primary", children: "Notification center" }),
4262
- /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-3", children: [
4263
- /* @__PURE__ */ jsx73(
4290
+ /* @__PURE__ */ jsxs41(PopoverContent, { align: "end", className: "w-[380px] overflow-hidden p-0", children: [
4291
+ /* @__PURE__ */ jsxs41("div", { className: "flex items-center justify-between px-5 py-3", children: [
4292
+ /* @__PURE__ */ jsx74("span", { className: "text-sm font-bold text-text-primary", children: "Notification center" }),
4293
+ /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-3", children: [
4294
+ /* @__PURE__ */ jsx74(
4264
4295
  "button",
4265
4296
  {
4266
4297
  type: "button",
@@ -4273,19 +4304,19 @@ var NotificationBell = React60.forwardRef(
4273
4304
  children: "Mark all read"
4274
4305
  }
4275
4306
  ),
4276
- onOpenSettings && /* @__PURE__ */ jsx73(
4307
+ onOpenSettings && /* @__PURE__ */ jsx74(
4277
4308
  "button",
4278
4309
  {
4279
4310
  type: "button",
4280
4311
  "aria-label": "Notification settings",
4281
4312
  onClick: () => onOpenSettings(),
4282
4313
  className: "flex size-6 items-center justify-center rounded-md text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
4283
- children: /* @__PURE__ */ jsx73(Settings, { className: "size-[15px]", "aria-hidden": "true" })
4314
+ children: /* @__PURE__ */ jsx74(Settings, { className: "size-[15px]", "aria-hidden": "true" })
4284
4315
  }
4285
4316
  )
4286
4317
  ] })
4287
4318
  ] }),
4288
- /* @__PURE__ */ jsx73("div", { className: "space-y-1.5 px-2 pb-2", children: rows.length === 0 ? /* @__PURE__ */ jsx73("p", { className: "px-3 py-12 text-center text-xs leading-relaxed text-text-disabled", children: "Nothing yet. Everything addressed to you lands here." }) : rows.map((item) => /* @__PURE__ */ jsx73(
4319
+ /* @__PURE__ */ jsx74("div", { className: "space-y-1.5 px-2 pb-2", children: rows.length === 0 ? /* @__PURE__ */ jsx74("p", { className: "px-3 py-12 text-center text-xs leading-relaxed text-text-disabled", children: "Nothing yet. Everything addressed to you lands here." }) : rows.map((item) => /* @__PURE__ */ jsx74(
4289
4320
  BellRow,
4290
4321
  {
4291
4322
  item,
@@ -4296,7 +4327,7 @@ var NotificationBell = React60.forwardRef(
4296
4327
  },
4297
4328
  item.id
4298
4329
  )) }),
4299
- items.length > 0 && onOpenArchive && /* @__PURE__ */ jsx73(
4330
+ items.length > 0 && onOpenArchive && /* @__PURE__ */ jsx74(
4300
4331
  "button",
4301
4332
  {
4302
4333
  type: "button",
@@ -4314,19 +4345,19 @@ NotificationBell.displayName = "NotificationBell";
4314
4345
  // src/components/notification-center.tsx
4315
4346
  import * as React61 from "react";
4316
4347
  import { ArrowUpRight, Check as Check8, Search as Search2 } from "lucide-react";
4317
- import { jsx as jsx74, jsxs as jsxs41 } from "react/jsx-runtime";
4348
+ import { jsx as jsx75, jsxs as jsxs42 } from "react/jsx-runtime";
4318
4349
  var chipBase = "rounded-lg px-3 py-1.5 text-sm font-medium transition-colors";
4319
4350
  var chipOn = "bg-bg-brand-subtle text-text-brand";
4320
4351
  var chipOff = "bg-bg-elevated text-text-secondary hover:text-text-primary";
4321
4352
  function MarkReadButton2({ title, onClick }) {
4322
- return /* @__PURE__ */ jsx74(
4353
+ return /* @__PURE__ */ jsx75(
4323
4354
  "button",
4324
4355
  {
4325
4356
  type: "button",
4326
4357
  "aria-label": `Mark "${title}" as read`,
4327
4358
  onClick,
4328
4359
  className: "flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary opacity-0 transition-opacity hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",
4329
- children: /* @__PURE__ */ jsx74(Check8, { className: "size-3.5", "aria-hidden": "true" })
4360
+ children: /* @__PURE__ */ jsx75(Check8, { className: "size-3.5", "aria-hidden": "true" })
4330
4361
  }
4331
4362
  );
4332
4363
  }
@@ -4340,16 +4371,16 @@ function CenterRow({
4340
4371
  const unread = !item.read;
4341
4372
  const markable = Boolean(onMarkRead) && unread && item.cls !== "ephemeral";
4342
4373
  const age = item.createdAt ? formatAge(item.createdAt instanceof Date ? item.createdAt : new Date(item.createdAt)) : null;
4343
- return /* @__PURE__ */ jsxs41("article", { className: "group rounded-lg bg-bg-elevated px-4 py-3", children: [
4344
- /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-2", children: [
4345
- /* @__PURE__ */ jsx74("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
4346
- /* @__PURE__ */ jsx74(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
4347
- (age || markable) && /* @__PURE__ */ jsxs41("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
4348
- age && /* @__PURE__ */ jsx74("span", { className: "text-xs tabular-nums text-text-tertiary", children: age }),
4349
- markable && /* @__PURE__ */ jsx74(MarkReadButton2, { title: item.title, onClick: () => onMarkRead(item.id) })
4374
+ return /* @__PURE__ */ jsxs42("article", { className: "group rounded-lg bg-bg-elevated px-4 py-3", children: [
4375
+ /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-2", children: [
4376
+ /* @__PURE__ */ jsx75("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
4377
+ /* @__PURE__ */ jsx75(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
4378
+ (age || markable) && /* @__PURE__ */ jsxs42("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
4379
+ age && /* @__PURE__ */ jsx75("span", { className: "text-xs tabular-nums text-text-tertiary", children: age }),
4380
+ markable && /* @__PURE__ */ jsx75(MarkReadButton2, { title: item.title, onClick: () => onMarkRead(item.id) })
4350
4381
  ] })
4351
4382
  ] }),
4352
- /* @__PURE__ */ jsx74(
4383
+ /* @__PURE__ */ jsx75(
4353
4384
  "button",
4354
4385
  {
4355
4386
  type: "button",
@@ -4361,13 +4392,13 @@ function CenterRow({
4361
4392
  children: item.title
4362
4393
  }
4363
4394
  ),
4364
- item.body && /* @__PURE__ */ jsx74("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
4365
- (item.receipt || item.deepLink) && /* @__PURE__ */ jsxs41("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5", children: [
4366
- item.receipt && /* @__PURE__ */ jsxs41("span", { className: "inline-flex items-center gap-1.5 text-sm text-text-tertiary", children: [
4367
- /* @__PURE__ */ jsx74(Check8, { className: "size-3 shrink-0 text-text-success", "aria-hidden": "true" }),
4395
+ item.body && /* @__PURE__ */ jsx75("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
4396
+ (item.receipt || item.deepLink) && /* @__PURE__ */ jsxs42("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5", children: [
4397
+ item.receipt && /* @__PURE__ */ jsxs42("span", { className: "inline-flex items-center gap-1.5 text-sm text-text-tertiary", children: [
4398
+ /* @__PURE__ */ jsx75(Check8, { className: "size-3 shrink-0 text-text-success", "aria-hidden": "true" }),
4368
4399
  item.receipt
4369
4400
  ] }),
4370
- item.deepLink && /* @__PURE__ */ jsxs41(
4401
+ item.deepLink && /* @__PURE__ */ jsxs42(
4371
4402
  "button",
4372
4403
  {
4373
4404
  type: "button",
@@ -4375,7 +4406,7 @@ function CenterRow({
4375
4406
  className: "inline-flex items-center gap-1 text-sm font-medium text-text-brand transition-colors hover:text-text-primary",
4376
4407
  children: [
4377
4408
  item.deepLink.label,
4378
- /* @__PURE__ */ jsx74(ArrowUpRight, { className: "size-3", "aria-hidden": "true" })
4409
+ /* @__PURE__ */ jsx75(ArrowUpRight, { className: "size-3", "aria-hidden": "true" })
4379
4410
  ]
4380
4411
  }
4381
4412
  )
@@ -4418,13 +4449,13 @@ var NotificationCenter = React61.forwardRef(
4418
4449
  const shown = matched.slice(0, limit);
4419
4450
  const remaining = matched.length - shown.length;
4420
4451
  const filtering = q !== "" || status !== "all" || source !== "all" || product !== "all";
4421
- return /* @__PURE__ */ jsxs41("div", { ref, className: cn("mx-auto max-w-[560px]", className), children: [
4422
- /* @__PURE__ */ jsxs41("div", { className: "mb-4 flex items-start gap-4", children: [
4423
- /* @__PURE__ */ jsxs41("div", { className: "min-w-0 flex-1", children: [
4424
- /* @__PURE__ */ jsx74("h1", { className: "mb-1.5 text-2xl font-semibold tracking-tight text-text-primary", children: title }),
4425
- description && /* @__PURE__ */ jsx74("p", { className: "text-sm text-text-tertiary", children: description })
4452
+ return /* @__PURE__ */ jsxs42("div", { ref, className: cn("mx-auto max-w-[560px]", className), children: [
4453
+ /* @__PURE__ */ jsxs42("div", { className: "mb-4 flex items-start gap-4", children: [
4454
+ /* @__PURE__ */ jsxs42("div", { className: "min-w-0 flex-1", children: [
4455
+ /* @__PURE__ */ jsx75("h1", { className: "mb-1.5 text-2xl font-semibold tracking-tight text-text-primary", children: title }),
4456
+ description && /* @__PURE__ */ jsx75("p", { className: "text-sm text-text-tertiary", children: description })
4426
4457
  ] }),
4427
- onMarkAllRead && /* @__PURE__ */ jsx74(
4458
+ onMarkAllRead && /* @__PURE__ */ jsx75(
4428
4459
  "button",
4429
4460
  {
4430
4461
  type: "button",
@@ -4434,9 +4465,9 @@ var NotificationCenter = React61.forwardRef(
4434
4465
  }
4435
4466
  )
4436
4467
  ] }),
4437
- searchable && /* @__PURE__ */ jsxs41("div", { className: "mb-3 flex items-center gap-2 rounded-lg bg-bg-elevated px-3 py-2", children: [
4438
- /* @__PURE__ */ jsx74(Search2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
4439
- /* @__PURE__ */ jsx74(
4468
+ searchable && /* @__PURE__ */ jsxs42("div", { className: "mb-3 flex items-center gap-2 rounded-lg bg-bg-elevated px-3 py-2", children: [
4469
+ /* @__PURE__ */ jsx75(Search2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
4470
+ /* @__PURE__ */ jsx75(
4440
4471
  "input",
4441
4472
  {
4442
4473
  type: "text",
@@ -4447,8 +4478,8 @@ var NotificationCenter = React61.forwardRef(
4447
4478
  }
4448
4479
  )
4449
4480
  ] }),
4450
- /* @__PURE__ */ jsxs41("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
4451
- /* @__PURE__ */ jsx74(
4481
+ /* @__PURE__ */ jsxs42("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
4482
+ /* @__PURE__ */ jsx75(
4452
4483
  "button",
4453
4484
  {
4454
4485
  type: "button",
@@ -4457,7 +4488,7 @@ var NotificationCenter = React61.forwardRef(
4457
4488
  children: "All"
4458
4489
  }
4459
4490
  ),
4460
- /* @__PURE__ */ jsx74(
4491
+ /* @__PURE__ */ jsx75(
4461
4492
  "button",
4462
4493
  {
4463
4494
  type: "button",
@@ -4467,8 +4498,8 @@ var NotificationCenter = React61.forwardRef(
4467
4498
  }
4468
4499
  )
4469
4500
  ] }),
4470
- /* @__PURE__ */ jsxs41("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
4471
- /* @__PURE__ */ jsx74(
4501
+ /* @__PURE__ */ jsxs42("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
4502
+ /* @__PURE__ */ jsx75(
4472
4503
  "button",
4473
4504
  {
4474
4505
  type: "button",
@@ -4477,7 +4508,7 @@ var NotificationCenter = React61.forwardRef(
4477
4508
  children: "All sources"
4478
4509
  }
4479
4510
  ),
4480
- sourceChips.map((s) => /* @__PURE__ */ jsx74(
4511
+ sourceChips.map((s) => /* @__PURE__ */ jsx75(
4481
4512
  "button",
4482
4513
  {
4483
4514
  type: "button",
@@ -4488,8 +4519,8 @@ var NotificationCenter = React61.forwardRef(
4488
4519
  s
4489
4520
  ))
4490
4521
  ] }),
4491
- products && products.length > 0 && /* @__PURE__ */ jsxs41("div", { className: "mb-4 flex flex-wrap gap-1.5", children: [
4492
- /* @__PURE__ */ jsx74(
4522
+ products && products.length > 0 && /* @__PURE__ */ jsxs42("div", { className: "mb-4 flex flex-wrap gap-1.5", children: [
4523
+ /* @__PURE__ */ jsx75(
4493
4524
  "button",
4494
4525
  {
4495
4526
  type: "button",
@@ -4498,7 +4529,7 @@ var NotificationCenter = React61.forwardRef(
4498
4529
  children: "All products"
4499
4530
  }
4500
4531
  ),
4501
- products.map((p) => /* @__PURE__ */ jsx74(
4532
+ products.map((p) => /* @__PURE__ */ jsx75(
4502
4533
  "button",
4503
4534
  {
4504
4535
  type: "button",
@@ -4509,8 +4540,8 @@ var NotificationCenter = React61.forwardRef(
4509
4540
  p.id
4510
4541
  ))
4511
4542
  ] }),
4512
- shown.length === 0 ? /* @__PURE__ */ jsx74("p", { className: "rounded-xl bg-bg-elevated px-4 py-10 text-center text-sm leading-relaxed text-text-disabled", children: filtering ? "Nothing matches." : "Nothing here yet. Everything addressed to you lands here." }) : /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-1.5", children: [
4513
- shown.map((item) => /* @__PURE__ */ jsx74(
4543
+ shown.length === 0 ? /* @__PURE__ */ jsx75("p", { className: "rounded-xl bg-bg-elevated px-4 py-10 text-center text-sm leading-relaxed text-text-disabled", children: filtering ? "Nothing matches." : "Nothing here yet. Everything addressed to you lands here." }) : /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-1.5", children: [
4544
+ shown.map((item) => /* @__PURE__ */ jsx75(
4514
4545
  CenterRow,
4515
4546
  {
4516
4547
  item,
@@ -4521,7 +4552,7 @@ var NotificationCenter = React61.forwardRef(
4521
4552
  },
4522
4553
  item.id
4523
4554
  )),
4524
- remaining > 0 && /* @__PURE__ */ jsxs41(
4555
+ remaining > 0 && /* @__PURE__ */ jsxs42(
4525
4556
  "button",
4526
4557
  {
4527
4558
  type: "button",
@@ -4543,7 +4574,7 @@ NotificationCenter.displayName = "NotificationCenter";
4543
4574
  // src/components/notification-settings.tsx
4544
4575
  import * as React62 from "react";
4545
4576
  import { Moon as Moon2, Plus as Plus2, Volume2 } from "lucide-react";
4546
- import { Fragment as Fragment8, jsx as jsx75, jsxs as jsxs42 } from "react/jsx-runtime";
4577
+ import { Fragment as Fragment8, jsx as jsx76, jsxs as jsxs43 } from "react/jsx-runtime";
4547
4578
  var THRESHOLDS = [
4548
4579
  ["everything", "Everything"],
4549
4580
  ["important", "Important"],
@@ -4555,13 +4586,13 @@ function ThresholdControl({
4555
4586
  value,
4556
4587
  onChange
4557
4588
  }) {
4558
- return /* @__PURE__ */ jsx75(
4589
+ return /* @__PURE__ */ jsx76(
4559
4590
  "span",
4560
4591
  {
4561
4592
  role: "group",
4562
4593
  "aria-label": `Interrupt me for ${label}`,
4563
4594
  className: "inline-flex shrink-0 overflow-hidden rounded-md bg-bg-primary",
4564
- children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */ jsx75(
4595
+ children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */ jsx76(
4565
4596
  "button",
4566
4597
  {
4567
4598
  type: "button",
@@ -4611,15 +4642,15 @@ var NotificationSettings = React62.forwardRef(
4611
4642
  const scopeGroup = (scope) => {
4612
4643
  const rows = subscriptions.filter((s) => s.scope === scope);
4613
4644
  if (rows.length === 0) return null;
4614
- return /* @__PURE__ */ jsxs42("div", { children: [
4615
- /* @__PURE__ */ jsx75("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: scope === "product" ? "This product" : "Organization" }),
4616
- /* @__PURE__ */ jsx75("div", { className: "space-y-2", children: rows.map((sub) => /* @__PURE__ */ jsxs42(
4645
+ return /* @__PURE__ */ jsxs43("div", { children: [
4646
+ /* @__PURE__ */ jsx76("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: scope === "product" ? "This product" : "Organization" }),
4647
+ /* @__PURE__ */ jsx76("div", { className: "space-y-2", children: rows.map((sub) => /* @__PURE__ */ jsxs43(
4617
4648
  "div",
4618
4649
  {
4619
4650
  className: "flex items-center gap-4 rounded-xl bg-bg-elevated px-4 py-3",
4620
4651
  children: [
4621
- /* @__PURE__ */ jsx75("p", { className: "min-w-0 flex-1 text-sm font-semibold text-text-primary", children: sub.name }),
4622
- /* @__PURE__ */ jsx75(
4652
+ /* @__PURE__ */ jsx76("p", { className: "min-w-0 flex-1 text-sm font-semibold text-text-primary", children: sub.name }),
4653
+ /* @__PURE__ */ jsx76(
4623
4654
  ThresholdControl,
4624
4655
  {
4625
4656
  label: sub.name,
@@ -4633,10 +4664,10 @@ var NotificationSettings = React62.forwardRef(
4633
4664
  )) })
4634
4665
  ] }, scope);
4635
4666
  };
4636
- return /* @__PURE__ */ jsxs42("div", { ref, className: cn("space-y-5", className), children: [
4637
- products && products.length > 0 && /* @__PURE__ */ jsxs42("div", { children: [
4638
- /* @__PURE__ */ jsx75("p", { className: "mb-2 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Preferences for" }),
4639
- /* @__PURE__ */ jsx75("div", { className: "flex flex-wrap gap-2", children: [{ id: DEFAULT_KEY, label: "Default" }, ...products].map((t) => /* @__PURE__ */ jsxs42(
4667
+ return /* @__PURE__ */ jsxs43("div", { ref, className: cn("space-y-5", className), children: [
4668
+ products && products.length > 0 && /* @__PURE__ */ jsxs43("div", { children: [
4669
+ /* @__PURE__ */ jsx76("p", { className: "mb-2 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Preferences for" }),
4670
+ /* @__PURE__ */ jsx76("div", { className: "flex flex-wrap gap-2", children: [{ id: DEFAULT_KEY, label: "Default" }, ...products].map((t) => /* @__PURE__ */ jsxs43(
4640
4671
  "button",
4641
4672
  {
4642
4673
  type: "button",
@@ -4647,32 +4678,32 @@ var NotificationSettings = React62.forwardRef(
4647
4678
  ),
4648
4679
  children: [
4649
4680
  t.label,
4650
- t.id !== DEFAULT_KEY && Object.prototype.hasOwnProperty.call(value, t.id) && /* @__PURE__ */ jsx75("span", { className: "size-1.5 rounded-full bg-bg-brand", "aria-label": "customized" })
4681
+ t.id !== DEFAULT_KEY && Object.prototype.hasOwnProperty.call(value, t.id) && /* @__PURE__ */ jsx76("span", { className: "size-1.5 rounded-full bg-bg-brand", "aria-label": "customized" })
4651
4682
  ]
4652
4683
  },
4653
4684
  t.id
4654
4685
  )) })
4655
4686
  ] }),
4656
- isDefault ? /* @__PURE__ */ jsxs42(Fragment8, { children: [
4657
- /* @__PURE__ */ jsx75("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Your defaults, applied to every product unless you customize one. Everything addressed to you always lands in the in-app record; that cannot be turned off." }),
4658
- /* @__PURE__ */ jsxs42(Card, { className: "border-none bg-bg-elevated p-5", children: [
4659
- /* @__PURE__ */ jsx75("p", { className: "mb-1.5 text-xs font-bold uppercase tracking-wide text-text-tertiary", children: "Push to" }),
4660
- /* @__PURE__ */ jsx75("p", { className: "mb-3 text-sm leading-relaxed text-text-secondary", children: "Forward notifications beyond the in-app record to a connected integration." }),
4661
- pushSlot ?? /* @__PURE__ */ jsx75("div", { className: "rounded-lg bg-bg-surface px-4 py-6 text-center", children: /* @__PURE__ */ jsx75("p", { className: "text-sm text-text-tertiary", children: "No integrations connected." }) })
4687
+ isDefault ? /* @__PURE__ */ jsxs43(Fragment8, { children: [
4688
+ /* @__PURE__ */ jsx76("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Your defaults, applied to every product unless you customize one. Everything addressed to you always lands in the in-app record; that cannot be turned off." }),
4689
+ /* @__PURE__ */ jsxs43(Card, { className: "border-none bg-bg-elevated p-5", children: [
4690
+ /* @__PURE__ */ jsx76("p", { className: "mb-1.5 text-xs font-bold uppercase tracking-wide text-text-tertiary", children: "Push to" }),
4691
+ /* @__PURE__ */ jsx76("p", { className: "mb-3 text-sm leading-relaxed text-text-secondary", children: "Forward notifications beyond the in-app record to a connected integration." }),
4692
+ pushSlot ?? /* @__PURE__ */ jsx76("div", { className: "rounded-lg bg-bg-surface px-4 py-6 text-center", children: /* @__PURE__ */ jsx76("p", { className: "text-sm text-text-tertiary", children: "No integrations connected." }) })
4662
4693
  ] }),
4663
- mutes.length > 0 && /* @__PURE__ */ jsxs42("div", { children: [
4664
- /* @__PURE__ */ jsx75("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Muted" }),
4665
- /* @__PURE__ */ jsx75(Card, { className: "border-none bg-bg-elevated p-2", children: mutes.map((m) => /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-3 rounded-lg px-3 py-2.5", children: [
4666
- /* @__PURE__ */ jsx75(Moon2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
4667
- /* @__PURE__ */ jsxs42("div", { className: "min-w-0 flex-1", children: [
4668
- /* @__PURE__ */ jsx75("p", { className: "text-sm font-medium text-text-primary", children: m.source }),
4669
- /* @__PURE__ */ jsxs42("p", { className: "text-sm text-text-tertiary", children: [
4694
+ mutes.length > 0 && /* @__PURE__ */ jsxs43("div", { children: [
4695
+ /* @__PURE__ */ jsx76("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Muted" }),
4696
+ /* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-elevated p-2", children: mutes.map((m) => /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3 rounded-lg px-3 py-2.5", children: [
4697
+ /* @__PURE__ */ jsx76(Moon2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
4698
+ /* @__PURE__ */ jsxs43("div", { className: "min-w-0 flex-1", children: [
4699
+ /* @__PURE__ */ jsx76("p", { className: "text-sm font-medium text-text-primary", children: m.source }),
4700
+ /* @__PURE__ */ jsxs43("p", { className: "text-sm text-text-tertiary", children: [
4670
4701
  "Muted \u2014 ",
4671
4702
  m.label,
4672
4703
  ". Critical still comes through."
4673
4704
  ] })
4674
4705
  ] }),
4675
- /* @__PURE__ */ jsx75(
4706
+ /* @__PURE__ */ jsx76(
4676
4707
  "button",
4677
4708
  {
4678
4709
  type: "button",
@@ -4685,13 +4716,13 @@ var NotificationSettings = React62.forwardRef(
4685
4716
  ] }),
4686
4717
  scopeGroup("product"),
4687
4718
  scopeGroup("org"),
4688
- onSoundEnabledChange && /* @__PURE__ */ jsx75(Card, { className: "border-none bg-bg-elevated p-4", children: /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-3", children: [
4689
- /* @__PURE__ */ jsx75(Volume2, { className: "size-4 text-text-tertiary", "aria-hidden": "true" }),
4690
- /* @__PURE__ */ jsxs42("div", { className: "flex-1", children: [
4691
- /* @__PURE__ */ jsx75("p", { className: "text-sm font-medium text-text-primary", children: "Notification sound" }),
4692
- /* @__PURE__ */ jsx75("p", { className: "text-sm text-text-tertiary", children: "Play a tone when a notification arrives. Critical always chimes." })
4719
+ onSoundEnabledChange && /* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-elevated p-4", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
4720
+ /* @__PURE__ */ jsx76(Volume2, { className: "size-4 text-text-tertiary", "aria-hidden": "true" }),
4721
+ /* @__PURE__ */ jsxs43("div", { className: "flex-1", children: [
4722
+ /* @__PURE__ */ jsx76("p", { className: "text-sm font-medium text-text-primary", children: "Notification sound" }),
4723
+ /* @__PURE__ */ jsx76("p", { className: "text-sm text-text-tertiary", children: "Play a tone when a notification arrives. Critical always chimes." })
4693
4724
  ] }),
4694
- /* @__PURE__ */ jsx75(
4725
+ /* @__PURE__ */ jsx76(
4695
4726
  Switch,
4696
4727
  {
4697
4728
  checked: soundEnabled ?? false,
@@ -4700,35 +4731,35 @@ var NotificationSettings = React62.forwardRef(
4700
4731
  }
4701
4732
  )
4702
4733
  ] }) })
4703
- ] }) : !customized ? /* @__PURE__ */ jsxs42(Card, { className: "border-none bg-bg-elevated p-8 text-center", children: [
4704
- /* @__PURE__ */ jsxs42("p", { className: "text-sm font-semibold text-text-primary", children: [
4734
+ ] }) : !customized ? /* @__PURE__ */ jsxs43(Card, { className: "border-none bg-bg-elevated p-8 text-center", children: [
4735
+ /* @__PURE__ */ jsxs43("p", { className: "text-sm font-semibold text-text-primary", children: [
4705
4736
  productLabel,
4706
4737
  " follows your Default preferences."
4707
4738
  ] }),
4708
- /* @__PURE__ */ jsx75("p", { className: "mx-auto mt-1.5 max-w-[360px] text-sm leading-relaxed text-text-tertiary", children: "Interrupt thresholds, sound and forwarding all come from Default. Opt in to give this product its own interrupt thresholds." }),
4709
- /* @__PURE__ */ jsxs42(
4739
+ /* @__PURE__ */ jsx76("p", { className: "mx-auto mt-1.5 max-w-[360px] text-sm leading-relaxed text-text-tertiary", children: "Interrupt thresholds, sound and forwarding all come from Default. Opt in to give this product its own interrupt thresholds." }),
4740
+ /* @__PURE__ */ jsxs43(
4710
4741
  "button",
4711
4742
  {
4712
4743
  type: "button",
4713
4744
  onClick: customize,
4714
4745
  className: "mt-5 inline-flex items-center gap-1.5 rounded-lg bg-bg-brand px-3.5 py-2 text-sm font-semibold text-text-on-brand transition-colors hover:bg-bg-brand-hover",
4715
4746
  children: [
4716
- /* @__PURE__ */ jsx75(Plus2, { className: "size-4", "aria-hidden": "true" }),
4747
+ /* @__PURE__ */ jsx76(Plus2, { className: "size-4", "aria-hidden": "true" }),
4717
4748
  " Customize for ",
4718
4749
  productLabel
4719
4750
  ]
4720
4751
  }
4721
4752
  )
4722
- ] }) : /* @__PURE__ */ jsxs42(Fragment8, { children: [
4723
- /* @__PURE__ */ jsx75(Card, { className: "border-none bg-bg-brand-subtle p-3.5", children: /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-3", children: [
4724
- /* @__PURE__ */ jsxs42("div", { className: "min-w-0 flex-1", children: [
4725
- /* @__PURE__ */ jsxs42("p", { className: "text-sm font-semibold text-text-brand", children: [
4753
+ ] }) : /* @__PURE__ */ jsxs43(Fragment8, { children: [
4754
+ /* @__PURE__ */ jsx76(Card, { className: "border-none bg-bg-brand-subtle p-3.5", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
4755
+ /* @__PURE__ */ jsxs43("div", { className: "min-w-0 flex-1", children: [
4756
+ /* @__PURE__ */ jsxs43("p", { className: "text-sm font-semibold text-text-brand", children: [
4726
4757
  "Custom preferences for ",
4727
4758
  productLabel
4728
4759
  ] }),
4729
- /* @__PURE__ */ jsx75("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Only the interrupt thresholds below differ. Sound and forwarding follow Default." })
4760
+ /* @__PURE__ */ jsx76("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Only the interrupt thresholds below differ. Sound and forwarding follow Default." })
4730
4761
  ] }),
4731
- /* @__PURE__ */ jsx75(
4762
+ /* @__PURE__ */ jsx76(
4732
4763
  "button",
4733
4764
  {
4734
4765
  type: "button",
@@ -4748,7 +4779,7 @@ NotificationSettings.displayName = "NotificationSettings";
4748
4779
  // src/components/notification-toast.tsx
4749
4780
  import * as React63 from "react";
4750
4781
  import { X as X3 } from "lucide-react";
4751
- import { jsx as jsx76, jsxs as jsxs43 } from "react/jsx-runtime";
4782
+ import { jsx as jsx77, jsxs as jsxs44 } from "react/jsx-runtime";
4752
4783
  var chipBase2 = "rounded-lg px-2.5 py-1 text-sm font-medium transition-colors";
4753
4784
  var chipPrimary = "bg-bg-brand text-text-on-brand hover:bg-bg-brand-hover";
4754
4785
  var chipDestructive = "bg-bg-elevated text-text-danger hover:bg-bg-surface";
@@ -4765,7 +4796,7 @@ var NotificationToast = React63.forwardRef(
4765
4796
  className
4766
4797
  }, ref) => {
4767
4798
  const actions = item.actions ?? [];
4768
- return /* @__PURE__ */ jsxs43(
4799
+ return /* @__PURE__ */ jsxs44(
4769
4800
  "div",
4770
4801
  {
4771
4802
  ref,
@@ -4776,21 +4807,21 @@ var NotificationToast = React63.forwardRef(
4776
4807
  className
4777
4808
  ),
4778
4809
  children: [
4779
- /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-2", children: [
4780
- showSource && /* @__PURE__ */ jsx76("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
4781
- /* @__PURE__ */ jsx76(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
4782
- onDismiss && /* @__PURE__ */ jsx76(
4810
+ /* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-2", children: [
4811
+ showSource && /* @__PURE__ */ jsx77("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
4812
+ /* @__PURE__ */ jsx77(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
4813
+ onDismiss && /* @__PURE__ */ jsx77(
4783
4814
  "button",
4784
4815
  {
4785
4816
  type: "button",
4786
4817
  "aria-label": dismissLabel,
4787
4818
  onClick: () => onDismiss(item),
4788
4819
  className: "-mr-1 ml-auto flex size-5 shrink-0 items-center justify-center rounded text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
4789
- children: /* @__PURE__ */ jsx76(X3, { className: "size-3.5", "aria-hidden": "true" })
4820
+ children: /* @__PURE__ */ jsx77(X3, { className: "size-3.5", "aria-hidden": "true" })
4790
4821
  }
4791
4822
  )
4792
4823
  ] }),
4793
- onItemClick ? /* @__PURE__ */ jsx76(
4824
+ onItemClick ? /* @__PURE__ */ jsx77(
4794
4825
  "button",
4795
4826
  {
4796
4827
  type: "button",
@@ -4798,12 +4829,12 @@ var NotificationToast = React63.forwardRef(
4798
4829
  className: "mt-1 block text-left text-sm font-semibold leading-snug text-text-primary underline-offset-2 hover:underline",
4799
4830
  children: item.title
4800
4831
  }
4801
- ) : /* @__PURE__ */ jsx76("p", { className: "mt-1 text-sm font-semibold leading-snug text-text-primary", children: item.title }),
4802
- item.body && /* @__PURE__ */ jsx76("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
4803
- note && /* @__PURE__ */ jsx76("p", { className: "mt-1.5 text-xs font-medium text-text-warning", children: note }),
4804
- actions.length > 0 && /* @__PURE__ */ jsx76("div", { className: "mt-2.5 flex flex-wrap items-center gap-2", children: actions.map((action) => {
4832
+ ) : /* @__PURE__ */ jsx77("p", { className: "mt-1 text-sm font-semibold leading-snug text-text-primary", children: item.title }),
4833
+ item.body && /* @__PURE__ */ jsx77("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
4834
+ note && /* @__PURE__ */ jsx77("p", { className: "mt-1.5 text-xs font-medium text-text-warning", children: note }),
4835
+ actions.length > 0 && /* @__PURE__ */ jsx77("div", { className: "mt-2.5 flex flex-wrap items-center gap-2", children: actions.map((action) => {
4805
4836
  const variant = action.variant ?? "link";
4806
- return /* @__PURE__ */ jsx76(
4837
+ return /* @__PURE__ */ jsx77(
4807
4838
  "button",
4808
4839
  {
4809
4840
  type: "button",
@@ -4823,7 +4854,7 @@ NotificationToast.displayName = "NotificationToast";
4823
4854
 
4824
4855
  // src/components/notification-toaster.tsx
4825
4856
  import * as React64 from "react";
4826
- import { jsx as jsx77 } from "react/jsx-runtime";
4857
+ import { jsx as jsx78 } from "react/jsx-runtime";
4827
4858
  var positions = {
4828
4859
  "bottom-right": "bottom-6 right-6 flex-col",
4829
4860
  "bottom-left": "bottom-6 left-6 flex-col",
@@ -4893,7 +4924,7 @@ var NotificationToaster = React64.forwardRef(
4893
4924
  };
4894
4925
  }, [liveIds, paused, fyiDwell, importantDwell, criticalDwell]);
4895
4926
  if (shown.length === 0) return null;
4896
- return /* @__PURE__ */ jsx77(
4927
+ return /* @__PURE__ */ jsx78(
4897
4928
  "div",
4898
4929
  {
4899
4930
  ref,
@@ -4906,7 +4937,7 @@ var NotificationToaster = React64.forwardRef(
4906
4937
  positions[position],
4907
4938
  className
4908
4939
  ),
4909
- children: shown.map((item, i) => /* @__PURE__ */ jsx77("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx77(
4940
+ children: shown.map((item, i) => /* @__PURE__ */ jsx78("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx78(
4910
4941
  NotificationToast,
4911
4942
  {
4912
4943
  item,
@@ -5176,17 +5207,348 @@ var COUNTRY_OPTIONS = [
5176
5207
  { value: "ZW", label: "Zimbabwe" }
5177
5208
  ];
5178
5209
 
5179
- // src/components/organization-onboarding-form.tsx
5210
+ // src/components/beta-gate-screen.tsx
5180
5211
  import * as React65 from "react";
5181
5212
 
5213
+ // src/components/auth-divider.tsx
5214
+ import { jsx as jsx79, jsxs as jsxs45 } from "react/jsx-runtime";
5215
+ function AuthDivider({ label }) {
5216
+ return /* @__PURE__ */ jsxs45("div", { className: "relative my-5", children: [
5217
+ /* @__PURE__ */ jsx79("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx79("div", { className: "w-full border-t border-border-subtle" }) }),
5218
+ /* @__PURE__ */ jsx79("div", { className: "relative flex justify-center text-xs", children: /* @__PURE__ */ jsx79("span", { className: "bg-bg-surface px-2 text-text-tertiary", children: label }) })
5219
+ ] });
5220
+ }
5221
+
5182
5222
  // src/lib/auth-surface.ts
5183
5223
  var AUTH_GLOW_BG = "radial-gradient(560px 320px at 28% 16%, var(--auth-glow-a), transparent 68%),radial-gradient(520px 340px at 78% 90%, var(--auth-glow-b), transparent 66%),var(--bg-sunken)";
5184
5224
  var AUTH_FILLED_BUTTON = "flex h-[46px] w-full items-center justify-center gap-[11px] rounded-[10px] border border-transparent bg-text-primary px-[14px] text-[14.5px] font-semibold tracking-[-0.005em] text-bg-sunken transition-opacity hover:opacity-[0.92] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-text-brand active:translate-y-px disabled:cursor-not-allowed disabled:opacity-[0.55]";
5185
5225
  var AUTH_QUIET_BUTTON = "flex h-[46px] w-full items-center justify-center gap-[11px] rounded-[10px] border border-border-default bg-transparent px-[14px] text-[14.5px] font-medium tracking-[-0.005em] text-text-secondary transition-colors hover:bg-bg-secondary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-text-brand";
5186
5226
  var AUTH_BUTTON_SHADOW = "var(--auth-btn-shadow)";
5187
5227
 
5228
+ // src/components/onboarding-screen-shell.tsx
5229
+ import { jsx as jsx80, jsxs as jsxs46 } from "react/jsx-runtime";
5230
+ var CARD_WIDTH = {
5231
+ md: "max-w-[440px]",
5232
+ lg: "max-w-[560px]"
5233
+ };
5234
+ function OnboardingScreenShell({
5235
+ logo,
5236
+ themeToggle = /* @__PURE__ */ jsx80(ThemeToggle, {}),
5237
+ title,
5238
+ description,
5239
+ footer,
5240
+ width = "md",
5241
+ children,
5242
+ className,
5243
+ ...props
5244
+ }) {
5245
+ return /* @__PURE__ */ jsxs46(
5246
+ "div",
5247
+ {
5248
+ className: cn(
5249
+ "relative flex min-h-screen w-full flex-col items-center justify-center overflow-hidden px-6 py-12 text-text-primary",
5250
+ className
5251
+ ),
5252
+ style: { background: AUTH_GLOW_BG },
5253
+ ...props,
5254
+ children: [
5255
+ themeToggle && /* @__PURE__ */ jsx80("div", { className: "absolute right-6 top-6", children: themeToggle }),
5256
+ /* @__PURE__ */ jsxs46(
5257
+ "div",
5258
+ {
5259
+ className: cn(
5260
+ "relative w-full rounded-2xl bg-bg-surface px-[34px] pb-[30px] pt-[38px] text-center",
5261
+ CARD_WIDTH[width]
5262
+ ),
5263
+ style: {
5264
+ border: "1px solid var(--auth-card-border)",
5265
+ boxShadow: "var(--auth-card-shadow)"
5266
+ },
5267
+ children: [
5268
+ logo && /* @__PURE__ */ jsx80("div", { className: "mb-[22px] flex items-center justify-center text-[24px] font-bold leading-none tracking-[-0.02em] text-text-primary", children: logo }),
5269
+ /* @__PURE__ */ jsx80(
5270
+ "h1",
5271
+ {
5272
+ className: cn(
5273
+ "text-[20px] font-semibold leading-[1.25] tracking-[-0.015em] text-text-primary",
5274
+ // Without a description the headline itself carries the gap to the form.
5275
+ description ? "mb-[8px]" : "mb-[24px]"
5276
+ ),
5277
+ children: title
5278
+ }
5279
+ ),
5280
+ description && /* @__PURE__ */ jsx80("p", { className: "mx-auto mb-[24px] max-w-[320px] text-[13.5px] leading-[1.5] text-text-secondary", children: description }),
5281
+ /* @__PURE__ */ jsx80("div", { className: "text-left", children }),
5282
+ footer != null && /* @__PURE__ */ jsx80("div", { className: "mt-[24px] text-[11px] tracking-[0.005em] text-text-tertiary", children: footer })
5283
+ ]
5284
+ }
5285
+ )
5286
+ ]
5287
+ }
5288
+ );
5289
+ }
5290
+
5291
+ // src/components/beta-gate-screen.tsx
5292
+ import { Fragment as Fragment9, jsx as jsx81, jsxs as jsxs47 } from "react/jsx-runtime";
5293
+ var DEFAULT_WAITLIST_HREF = "https://lessly.com/#waitlist";
5294
+ var LINK = "font-medium text-text-link hover:text-text-link-hover";
5295
+ function BetaGateScreen({
5296
+ onSubmit,
5297
+ defaultCode = "",
5298
+ submitting,
5299
+ error,
5300
+ socialAuth,
5301
+ waitlistHref = DEFAULT_WAITLIST_HREF,
5302
+ signInHref,
5303
+ onSignIn,
5304
+ submitLabel = "Continue",
5305
+ logo,
5306
+ themeToggle,
5307
+ title = "We're in closed beta",
5308
+ description,
5309
+ footer,
5310
+ ...props
5311
+ }) {
5312
+ const [code, setCode] = React65.useState(defaultCode);
5313
+ const submittingRef = React65.useRef(false);
5314
+ const trimmed = code.trim();
5315
+ const canSubmit = trimmed !== "" && !submitting;
5316
+ React65.useEffect(() => {
5317
+ submittingRef.current = false;
5318
+ }, [code, submitting, error]);
5319
+ const handleSubmit = (event) => {
5320
+ event.preventDefault();
5321
+ if (!canSubmit || submittingRef.current) return;
5322
+ submittingRef.current = true;
5323
+ onSubmit(trimmed);
5324
+ };
5325
+ const defaultDescription = /* @__PURE__ */ jsxs47(Fragment9, { children: [
5326
+ "A beta access code is required to join. or",
5327
+ " ",
5328
+ /* @__PURE__ */ jsx81("a", { href: waitlistHref, className: LINK, children: "join the waitlist" }),
5329
+ " ",
5330
+ "to request one."
5331
+ ] });
5332
+ return /* @__PURE__ */ jsxs47(
5333
+ OnboardingScreenShell,
5334
+ {
5335
+ logo,
5336
+ themeToggle,
5337
+ title,
5338
+ description: description ?? defaultDescription,
5339
+ footer,
5340
+ ...props,
5341
+ children: [
5342
+ socialAuth && /* @__PURE__ */ jsxs47(Fragment9, { children: [
5343
+ /* @__PURE__ */ jsx81("div", { "data-testid": "beta-gate-social-auth", children: socialAuth }),
5344
+ /* @__PURE__ */ jsx81(AuthDivider, { label: "or" })
5345
+ ] }),
5346
+ error && /* @__PURE__ */ jsx81(InlineError, { "data-testid": "beta-gate-error", className: "mb-4 text-center", children: error }),
5347
+ /* @__PURE__ */ jsxs47("form", { onSubmit: handleSubmit, className: "space-y-4", noValidate: true, children: [
5348
+ /* @__PURE__ */ jsxs47("div", { className: "space-y-1.5", children: [
5349
+ /* @__PURE__ */ jsx81(Label2, { htmlFor: "beta-code", className: "sr-only", children: "Lessly beta access code" }),
5350
+ /* @__PURE__ */ jsx81(
5351
+ Input,
5352
+ {
5353
+ id: "beta-code",
5354
+ "data-testid": "beta-code-input",
5355
+ value: code,
5356
+ autoComplete: "off",
5357
+ placeholder: "Lessly beta access code",
5358
+ onChange: (event) => setCode(event.target.value)
5359
+ }
5360
+ )
5361
+ ] }),
5362
+ /* @__PURE__ */ jsx81("div", { className: "pt-1", children: /* @__PURE__ */ jsx81(
5363
+ "button",
5364
+ {
5365
+ type: "submit",
5366
+ "data-testid": "submit-beta-code",
5367
+ disabled: !canSubmit,
5368
+ className: AUTH_FILLED_BUTTON,
5369
+ style: { boxShadow: AUTH_BUTTON_SHADOW },
5370
+ children: submitting ? "Checking\u2026" : submitLabel
5371
+ }
5372
+ ) })
5373
+ ] }),
5374
+ (signInHref || onSignIn) && /* @__PURE__ */ jsxs47("p", { className: "mt-5 text-center text-sm text-text-secondary", children: [
5375
+ "Already have an account?",
5376
+ " ",
5377
+ signInHref ? /* @__PURE__ */ jsx81("a", { "data-testid": "beta-gate-signin", href: signInHref, className: LINK, children: "Sign in" }) : /* @__PURE__ */ jsx81(
5378
+ "button",
5379
+ {
5380
+ type: "button",
5381
+ "data-testid": "beta-gate-signin",
5382
+ onClick: onSignIn,
5383
+ className: LINK,
5384
+ children: "Sign in"
5385
+ }
5386
+ )
5387
+ ] })
5388
+ ]
5389
+ }
5390
+ );
5391
+ }
5392
+
5393
+ // src/components/signup-screen.tsx
5394
+ import * as React66 from "react";
5395
+ import { Fragment as Fragment10, jsx as jsx82, jsxs as jsxs48 } from "react/jsx-runtime";
5396
+ var LINK2 = "font-medium text-text-link hover:text-text-link-hover";
5397
+ function SignupScreen({
5398
+ onSubmit,
5399
+ defaultValues,
5400
+ submitting,
5401
+ serverError,
5402
+ violations,
5403
+ socialAuth,
5404
+ onEditCode,
5405
+ signInHref,
5406
+ onSignIn,
5407
+ submitLabel = "Create account",
5408
+ children,
5409
+ logo,
5410
+ themeToggle,
5411
+ title = "Create your account",
5412
+ description,
5413
+ footer,
5414
+ ...props
5415
+ }) {
5416
+ const [name, setName] = React66.useState(defaultValues?.name ?? "");
5417
+ const [email, setEmail] = React66.useState(defaultValues?.email ?? "");
5418
+ const [password, setPassword] = React66.useState(defaultValues?.password ?? "");
5419
+ const [passwordError, setPasswordError] = React66.useState(null);
5420
+ const submittingRef = React66.useRef(false);
5421
+ const trimmedName = name.trim();
5422
+ const trimmedEmail = email.trim();
5423
+ const canSubmit = trimmedName !== "" && trimmedEmail !== "" && password !== "" && !submitting;
5424
+ React66.useEffect(() => {
5425
+ submittingRef.current = false;
5426
+ }, [name, email, password, submitting, serverError]);
5427
+ const handleSubmit = (event) => {
5428
+ event.preventDefault();
5429
+ if (!canSubmit || submittingRef.current) return;
5430
+ const failure = validatePassword(password);
5431
+ if (failure) {
5432
+ setPasswordError(failure);
5433
+ return;
5434
+ }
5435
+ setPasswordError(null);
5436
+ submittingRef.current = true;
5437
+ onSubmit({ name: trimmedName, email: trimmedEmail, password });
5438
+ };
5439
+ const body = children ?? /* @__PURE__ */ jsxs48(Fragment10, { children: [
5440
+ socialAuth && /* @__PURE__ */ jsxs48(Fragment10, { children: [
5441
+ /* @__PURE__ */ jsx82("div", { "data-testid": "signup-social-auth", children: socialAuth }),
5442
+ /* @__PURE__ */ jsx82(AuthDivider, { label: "or continue with email" })
5443
+ ] }),
5444
+ /* @__PURE__ */ jsxs48("form", { onSubmit: handleSubmit, className: "space-y-4", noValidate: true, children: [
5445
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-1.5", children: [
5446
+ /* @__PURE__ */ jsx82(Label2, { htmlFor: "signup-name", children: "Full name" }),
5447
+ /* @__PURE__ */ jsx82(
5448
+ Input,
5449
+ {
5450
+ id: "signup-name",
5451
+ "data-testid": "signup-name",
5452
+ value: name,
5453
+ disabled: submitting,
5454
+ placeholder: "Jane Smith",
5455
+ onChange: (event) => setName(event.target.value)
5456
+ }
5457
+ )
5458
+ ] }),
5459
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-1.5", children: [
5460
+ /* @__PURE__ */ jsx82(Label2, { htmlFor: "signup-email", children: "Email" }),
5461
+ /* @__PURE__ */ jsx82(
5462
+ Input,
5463
+ {
5464
+ id: "signup-email",
5465
+ "data-testid": "signup-email",
5466
+ type: "email",
5467
+ value: email,
5468
+ disabled: submitting,
5469
+ autoComplete: "email",
5470
+ placeholder: "you@example.com",
5471
+ onChange: (event) => setEmail(event.target.value)
5472
+ }
5473
+ )
5474
+ ] }),
5475
+ /* @__PURE__ */ jsxs48("div", { className: "space-y-1.5", children: [
5476
+ /* @__PURE__ */ jsx82(Label2, { htmlFor: "signup-password", children: "Password" }),
5477
+ /* @__PURE__ */ jsx82(
5478
+ Input,
5479
+ {
5480
+ id: "signup-password",
5481
+ "data-testid": "signup-password",
5482
+ type: "password",
5483
+ value: password,
5484
+ disabled: submitting,
5485
+ autoComplete: "new-password",
5486
+ placeholder: "Min 8 chars, 1 uppercase, 1 number",
5487
+ onChange: (event) => {
5488
+ setPassword(event.target.value);
5489
+ if (passwordError) setPasswordError(null);
5490
+ }
5491
+ }
5492
+ )
5493
+ ] }),
5494
+ passwordError && /* @__PURE__ */ jsx82(InlineError, { "data-testid": "signup-password-error", children: passwordError }),
5495
+ (serverError || violations && violations.length > 0) && /* @__PURE__ */ jsxs48(InlineError, { "data-testid": "signup-error", children: [
5496
+ serverError,
5497
+ violations && violations.length > 0 && /* @__PURE__ */ jsx82("ul", { "data-testid": "signup-violations", className: "mt-1 list-disc pl-4", children: violations.map((violation) => /* @__PURE__ */ jsx82("li", { children: violation }, violation)) })
5498
+ ] }),
5499
+ /* @__PURE__ */ jsx82("div", { className: "pt-1", children: /* @__PURE__ */ jsx82(
5500
+ "button",
5501
+ {
5502
+ type: "submit",
5503
+ "data-testid": "submit-signup",
5504
+ disabled: !canSubmit,
5505
+ className: AUTH_FILLED_BUTTON,
5506
+ style: { boxShadow: AUTH_BUTTON_SHADOW },
5507
+ children: submitting ? "Creating account\u2026" : submitLabel
5508
+ }
5509
+ ) })
5510
+ ] }),
5511
+ onEditCode && /* @__PURE__ */ jsx82("p", { className: "mt-4 text-center text-sm text-text-secondary", children: /* @__PURE__ */ jsx82(
5512
+ "button",
5513
+ {
5514
+ type: "button",
5515
+ "data-testid": "signup-edit-code",
5516
+ onClick: onEditCode,
5517
+ className: LINK2,
5518
+ children: "Use a different code"
5519
+ }
5520
+ ) })
5521
+ ] });
5522
+ return /* @__PURE__ */ jsxs48(
5523
+ OnboardingScreenShell,
5524
+ {
5525
+ logo,
5526
+ themeToggle,
5527
+ title,
5528
+ description,
5529
+ footer,
5530
+ ...props,
5531
+ children: [
5532
+ body,
5533
+ (signInHref || onSignIn) && /* @__PURE__ */ jsxs48("p", { className: "mt-5 text-center text-sm text-text-secondary", children: [
5534
+ "Already have an account?",
5535
+ " ",
5536
+ signInHref ? /* @__PURE__ */ jsx82("a", { "data-testid": "signup-signin", href: signInHref, className: LINK2, children: "Sign in" }) : /* @__PURE__ */ jsx82("button", { type: "button", "data-testid": "signup-signin", onClick: onSignIn, className: LINK2, children: "Sign in" })
5537
+ ] })
5538
+ ]
5539
+ }
5540
+ );
5541
+ }
5542
+ function validatePassword(password) {
5543
+ if (password.length < 8) return "Password must be at least 8 characters.";
5544
+ if (!/[A-Z]/.test(password)) return "Password must contain at least 1 uppercase letter.";
5545
+ if (!/[0-9]/.test(password)) return "Password must contain at least 1 number.";
5546
+ return null;
5547
+ }
5548
+
5188
5549
  // src/components/organization-onboarding-form.tsx
5189
- import { jsx as jsx78, jsxs as jsxs44 } from "react/jsx-runtime";
5550
+ import * as React67 from "react";
5551
+ import { jsx as jsx83, jsxs as jsxs49 } from "react/jsx-runtime";
5190
5552
  var CONTROLLER_SHARE_PCT = 50;
5191
5553
  var MAX_BENEFICIAL_OWNERS = 50;
5192
5554
  function parseShare(raw) {
@@ -5217,21 +5579,21 @@ function OrganizationOnboardingForm({
5217
5579
  onCancel,
5218
5580
  className
5219
5581
  }) {
5220
- const [name, setName] = React65.useState(defaultValues?.name ?? "");
5221
- const [legalName, setLegalName] = React65.useState(defaultValues?.legal_name ?? "");
5222
- const [ownerName, setOwnerName] = React65.useState(defaultValues?.owner_name ?? "");
5223
- const [countryOfIncorporation, setCountryOfIncorporation] = React65.useState(
5582
+ const [name, setName] = React67.useState(defaultValues?.name ?? "");
5583
+ const [legalName, setLegalName] = React67.useState(defaultValues?.legal_name ?? "");
5584
+ const [ownerName, setOwnerName] = React67.useState(defaultValues?.owner_name ?? "");
5585
+ const [countryOfIncorporation, setCountryOfIncorporation] = React67.useState(
5224
5586
  defaultValues?.country_of_incorporation ?? ""
5225
5587
  );
5226
- const [residencyCountry, setResidencyCountry] = React65.useState(
5588
+ const [residencyCountry, setResidencyCountry] = React67.useState(
5227
5589
  defaultValues?.residency_country ?? ""
5228
5590
  );
5229
- const [owners, setOwners] = React65.useState(
5591
+ const [owners, setOwners] = React67.useState(
5230
5592
  () => initialRows(defaultValues?.beneficial_owners)
5231
5593
  );
5232
- const [ownershipConfirmed, setOwnershipConfirmed] = React65.useState(false);
5233
- const nextKeyRef = React65.useRef(owners.length);
5234
- const submittingRef = React65.useRef(false);
5594
+ const [ownershipConfirmed, setOwnershipConfirmed] = React67.useState(false);
5595
+ const nextKeyRef = React67.useRef(owners.length);
5596
+ const submittingRef = React67.useRef(false);
5235
5597
  const trimmed = name.trim();
5236
5598
  const filledOwners = owners.filter((row) => !isRowBlank(row));
5237
5599
  const ownerShares = filledOwners.map((row) => parseShare(row.share));
@@ -5276,7 +5638,7 @@ function OrganizationOnboardingForm({
5276
5638
  ...needsOwnershipConfirmation ? { ownership_confirmed: ownershipConfirmed } : {}
5277
5639
  });
5278
5640
  };
5279
- React65.useEffect(() => {
5641
+ React67.useEffect(() => {
5280
5642
  submittingRef.current = false;
5281
5643
  }, [
5282
5644
  name,
@@ -5289,12 +5651,12 @@ function OrganizationOnboardingForm({
5289
5651
  submitting,
5290
5652
  serverError
5291
5653
  ]);
5292
- const countryField = (params) => /* @__PURE__ */ jsxs44("div", { className: "space-y-1.5", children: [
5293
- /* @__PURE__ */ jsxs44(Label2, { htmlFor: params.id, children: [
5654
+ const countryField = (params) => /* @__PURE__ */ jsxs49("div", { className: "space-y-1.5", children: [
5655
+ /* @__PURE__ */ jsxs49(Label2, { htmlFor: params.id, children: [
5294
5656
  params.label,
5295
- params.required && /* @__PURE__ */ jsx78("span", { className: "text-text-danger", children: " *" })
5657
+ params.required && /* @__PURE__ */ jsx83("span", { className: "text-text-danger", children: " *" })
5296
5658
  ] }),
5297
- /* @__PURE__ */ jsx78(
5659
+ /* @__PURE__ */ jsx83(
5298
5660
  Select,
5299
5661
  {
5300
5662
  id: params.id,
@@ -5307,10 +5669,10 @@ function OrganizationOnboardingForm({
5307
5669
  }
5308
5670
  )
5309
5671
  ] });
5310
- return /* @__PURE__ */ jsxs44("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
5311
- /* @__PURE__ */ jsxs44("div", { className: "space-y-1.5", children: [
5312
- /* @__PURE__ */ jsx78(Label2, { htmlFor: "create-org-name", children: "Organization name" }),
5313
- /* @__PURE__ */ jsx78(
5672
+ return /* @__PURE__ */ jsxs49("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
5673
+ /* @__PURE__ */ jsxs49("div", { className: "space-y-1.5", children: [
5674
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: "create-org-name", children: "Organization name" }),
5675
+ /* @__PURE__ */ jsx83(
5314
5676
  Input,
5315
5677
  {
5316
5678
  id: "create-org-name",
@@ -5321,9 +5683,9 @@ function OrganizationOnboardingForm({
5321
5683
  }
5322
5684
  )
5323
5685
  ] }),
5324
- /* @__PURE__ */ jsxs44("div", { className: "space-y-1.5", children: [
5325
- /* @__PURE__ */ jsx78(Label2, { htmlFor: "create-org-legal-name", children: "Legal name" }),
5326
- /* @__PURE__ */ jsx78(
5686
+ /* @__PURE__ */ jsxs49("div", { className: "space-y-1.5", children: [
5687
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: "create-org-legal-name", children: "Legal name" }),
5688
+ /* @__PURE__ */ jsx83(
5327
5689
  Input,
5328
5690
  {
5329
5691
  id: "create-org-legal-name",
@@ -5334,9 +5696,9 @@ function OrganizationOnboardingForm({
5334
5696
  }
5335
5697
  )
5336
5698
  ] }),
5337
- /* @__PURE__ */ jsxs44("div", { className: "space-y-1.5", children: [
5338
- /* @__PURE__ */ jsx78(Label2, { htmlFor: "create-org-owner-name", children: "Owner name" }),
5339
- /* @__PURE__ */ jsx78(
5699
+ /* @__PURE__ */ jsxs49("div", { className: "space-y-1.5", children: [
5700
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: "create-org-owner-name", children: "Owner name" }),
5701
+ /* @__PURE__ */ jsx83(
5340
5702
  Input,
5341
5703
  {
5342
5704
  id: "create-org-owner-name",
@@ -5361,10 +5723,10 @@ function OrganizationOnboardingForm({
5361
5723
  onChange: setResidencyCountry,
5362
5724
  required: false
5363
5725
  }),
5364
- /* @__PURE__ */ jsxs44("div", { className: "space-y-2", children: [
5365
- /* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between", children: [
5366
- /* @__PURE__ */ jsx78(Label2, { children: "Beneficial owners" }),
5367
- /* @__PURE__ */ jsx78(
5726
+ /* @__PURE__ */ jsxs49("div", { className: "space-y-2", children: [
5727
+ /* @__PURE__ */ jsxs49("div", { className: "flex items-center justify-between", children: [
5728
+ /* @__PURE__ */ jsx83(Label2, { children: "Beneficial owners" }),
5729
+ /* @__PURE__ */ jsx83(
5368
5730
  Button,
5369
5731
  {
5370
5732
  type: "button",
@@ -5377,16 +5739,16 @@ function OrganizationOnboardingForm({
5377
5739
  }
5378
5740
  )
5379
5741
  ] }),
5380
- owners.length === 0 && /* @__PURE__ */ jsx78("p", { className: "text-xs text-text-tertiary", children: "List the natural persons who ultimately own or control the organization." }),
5381
- owners.map((row) => /* @__PURE__ */ jsxs44(
5742
+ owners.length === 0 && /* @__PURE__ */ jsx83("p", { className: "text-xs text-text-tertiary", children: "List the natural persons who ultimately own or control the organization." }),
5743
+ owners.map((row) => /* @__PURE__ */ jsxs49(
5382
5744
  "div",
5383
5745
  {
5384
5746
  "data-testid": `beneficial-owner-row-${row.key}`,
5385
5747
  className: "flex items-end gap-2",
5386
5748
  children: [
5387
- /* @__PURE__ */ jsxs44("div", { className: "flex-1 space-y-1", children: [
5388
- /* @__PURE__ */ jsx78(Label2, { htmlFor: `bo-name-${row.key}`, className: "text-xs", children: "Name" }),
5389
- /* @__PURE__ */ jsx78(
5749
+ /* @__PURE__ */ jsxs49("div", { className: "flex-1 space-y-1", children: [
5750
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: `bo-name-${row.key}`, className: "text-xs", children: "Name" }),
5751
+ /* @__PURE__ */ jsx83(
5390
5752
  Input,
5391
5753
  {
5392
5754
  id: `bo-name-${row.key}`,
@@ -5396,9 +5758,9 @@ function OrganizationOnboardingForm({
5396
5758
  }
5397
5759
  )
5398
5760
  ] }),
5399
- /* @__PURE__ */ jsxs44("div", { className: "w-40 space-y-1", children: [
5400
- /* @__PURE__ */ jsx78(Label2, { htmlFor: `bo-country-${row.key}`, className: "text-xs", children: "Country" }),
5401
- /* @__PURE__ */ jsx78(
5761
+ /* @__PURE__ */ jsxs49("div", { className: "w-40 space-y-1", children: [
5762
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: `bo-country-${row.key}`, className: "text-xs", children: "Country" }),
5763
+ /* @__PURE__ */ jsx83(
5402
5764
  Select,
5403
5765
  {
5404
5766
  id: `bo-country-${row.key}`,
@@ -5411,9 +5773,9 @@ function OrganizationOnboardingForm({
5411
5773
  }
5412
5774
  )
5413
5775
  ] }),
5414
- /* @__PURE__ */ jsxs44("div", { className: "w-24 space-y-1", children: [
5415
- /* @__PURE__ */ jsx78(Label2, { htmlFor: `bo-share-${row.key}`, className: "text-xs", children: "Share %" }),
5416
- /* @__PURE__ */ jsx78(
5776
+ /* @__PURE__ */ jsxs49("div", { className: "w-24 space-y-1", children: [
5777
+ /* @__PURE__ */ jsx83(Label2, { htmlFor: `bo-share-${row.key}`, className: "text-xs", children: "Share %" }),
5778
+ /* @__PURE__ */ jsx83(
5417
5779
  Input,
5418
5780
  {
5419
5781
  id: `bo-share-${row.key}`,
@@ -5424,7 +5786,7 @@ function OrganizationOnboardingForm({
5424
5786
  }
5425
5787
  )
5426
5788
  ] }),
5427
- /* @__PURE__ */ jsx78(
5789
+ /* @__PURE__ */ jsx83(
5428
5790
  Button,
5429
5791
  {
5430
5792
  type: "button",
@@ -5439,15 +5801,15 @@ function OrganizationOnboardingForm({
5439
5801
  },
5440
5802
  row.key
5441
5803
  )),
5442
- !ownersValid && /* @__PURE__ */ jsx78("p", { "data-testid": "beneficial-owners-error", className: "text-xs text-text-danger", children: "Every owner needs a name, a country and a share between 0 and 100." }),
5443
- shareSum > 100 && /* @__PURE__ */ jsxs44("p", { "data-testid": "beneficial-owners-sum-warning", className: "text-xs text-text-warning", children: [
5804
+ !ownersValid && /* @__PURE__ */ jsx83("p", { "data-testid": "beneficial-owners-error", className: "text-xs text-text-danger", children: "Every owner needs a name, a country and a share between 0 and 100." }),
5805
+ shareSum > 100 && /* @__PURE__ */ jsxs49("p", { "data-testid": "beneficial-owners-sum-warning", className: "text-xs text-text-warning", children: [
5444
5806
  "The listed shares add up to ",
5445
5807
  shareSum,
5446
5808
  "%, which is more than 100%."
5447
5809
  ] })
5448
5810
  ] }),
5449
- needsOwnershipConfirmation && /* @__PURE__ */ jsxs44("div", { className: "flex items-start gap-2", children: [
5450
- /* @__PURE__ */ jsx78(
5811
+ needsOwnershipConfirmation && /* @__PURE__ */ jsxs49("div", { className: "flex items-start gap-2", children: [
5812
+ /* @__PURE__ */ jsx83(
5451
5813
  Checkbox,
5452
5814
  {
5453
5815
  id: "create-org-ownership-confirmed",
@@ -5456,24 +5818,24 @@ function OrganizationOnboardingForm({
5456
5818
  onCheckedChange: (value) => setOwnershipConfirmed(value === true)
5457
5819
  }
5458
5820
  ),
5459
- /* @__PURE__ */ jsxs44(
5821
+ /* @__PURE__ */ jsxs49(
5460
5822
  Label2,
5461
5823
  {
5462
5824
  htmlFor: "create-org-ownership-confirmed",
5463
5825
  className: "text-xs font-normal leading-snug",
5464
5826
  children: [
5465
5827
  "I confirm the ownership structure above is complete and correct",
5466
- requireSanctionsFields && /* @__PURE__ */ jsx78("span", { className: "text-text-danger", children: " *" })
5828
+ requireSanctionsFields && /* @__PURE__ */ jsx83("span", { className: "text-text-danger", children: " *" })
5467
5829
  ]
5468
5830
  }
5469
5831
  )
5470
5832
  ] }),
5471
- (serverError || violations && violations.length > 0) && /* @__PURE__ */ jsxs44(InlineError, { children: [
5833
+ (serverError || violations && violations.length > 0) && /* @__PURE__ */ jsxs49(InlineError, { children: [
5472
5834
  serverError,
5473
- violations && violations.length > 0 && /* @__PURE__ */ jsx78("ul", { "data-testid": "create-org-violations", className: "mt-1 list-disc pl-4", children: violations.map((violation) => /* @__PURE__ */ jsx78("li", { children: violation }, violation)) })
5835
+ violations && violations.length > 0 && /* @__PURE__ */ jsx83("ul", { "data-testid": "create-org-violations", className: "mt-1 list-disc pl-4", children: violations.map((violation) => /* @__PURE__ */ jsx83("li", { children: violation }, violation)) })
5474
5836
  ] }),
5475
- /* @__PURE__ */ jsxs44("div", { className: "space-y-2 pt-1", children: [
5476
- /* @__PURE__ */ jsx78(
5837
+ /* @__PURE__ */ jsxs49("div", { className: "space-y-2 pt-1", children: [
5838
+ /* @__PURE__ */ jsx83(
5477
5839
  "button",
5478
5840
  {
5479
5841
  type: "submit",
@@ -5484,76 +5846,13 @@ function OrganizationOnboardingForm({
5484
5846
  children: submitting ? "Creating\u2026" : submitLabel
5485
5847
  }
5486
5848
  ),
5487
- onCancel && /* @__PURE__ */ jsx78("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
5849
+ onCancel && /* @__PURE__ */ jsx83("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
5488
5850
  ] })
5489
5851
  ] });
5490
5852
  }
5491
5853
 
5492
- // src/components/onboarding-screen-shell.tsx
5493
- import { jsx as jsx79, jsxs as jsxs45 } from "react/jsx-runtime";
5494
- var CARD_WIDTH = {
5495
- md: "max-w-[440px]",
5496
- lg: "max-w-[560px]"
5497
- };
5498
- function OnboardingScreenShell({
5499
- logo,
5500
- themeToggle = /* @__PURE__ */ jsx79(ThemeToggle, {}),
5501
- title,
5502
- description,
5503
- footer,
5504
- width = "md",
5505
- children,
5506
- className,
5507
- ...props
5508
- }) {
5509
- return /* @__PURE__ */ jsxs45(
5510
- "div",
5511
- {
5512
- className: cn(
5513
- "relative flex min-h-screen w-full flex-col items-center justify-center overflow-hidden px-6 py-12 text-text-primary",
5514
- className
5515
- ),
5516
- style: { background: AUTH_GLOW_BG },
5517
- ...props,
5518
- children: [
5519
- themeToggle && /* @__PURE__ */ jsx79("div", { className: "absolute right-6 top-6", children: themeToggle }),
5520
- /* @__PURE__ */ jsxs45(
5521
- "div",
5522
- {
5523
- className: cn(
5524
- "relative w-full rounded-2xl bg-bg-surface px-[34px] pb-[30px] pt-[38px] text-center",
5525
- CARD_WIDTH[width]
5526
- ),
5527
- style: {
5528
- border: "1px solid var(--auth-card-border)",
5529
- boxShadow: "var(--auth-card-shadow)"
5530
- },
5531
- children: [
5532
- logo && /* @__PURE__ */ jsx79("div", { className: "mb-[22px] flex items-center justify-center text-[24px] font-bold leading-none tracking-[-0.02em] text-text-primary", children: logo }),
5533
- /* @__PURE__ */ jsx79(
5534
- "h1",
5535
- {
5536
- className: cn(
5537
- "text-[20px] font-semibold leading-[1.25] tracking-[-0.015em] text-text-primary",
5538
- // Without a description the headline itself carries the gap to the form.
5539
- description ? "mb-[8px]" : "mb-[24px]"
5540
- ),
5541
- children: title
5542
- }
5543
- ),
5544
- description && /* @__PURE__ */ jsx79("p", { className: "mx-auto mb-[24px] max-w-[320px] text-[13.5px] leading-[1.5] text-text-secondary", children: description }),
5545
- /* @__PURE__ */ jsx79("div", { className: "text-left", children }),
5546
- footer != null && /* @__PURE__ */ jsx79("div", { className: "mt-[24px] text-[11px] tracking-[0.005em] text-text-tertiary", children: footer })
5547
- ]
5548
- }
5549
- )
5550
- ]
5551
- }
5552
- );
5553
- }
5554
-
5555
5854
  // src/components/organization-create-screen.tsx
5556
- import { jsx as jsx80 } from "react/jsx-runtime";
5855
+ import { jsx as jsx84 } from "react/jsx-runtime";
5557
5856
  function OrganizationCreateScreen({
5558
5857
  requireSanctionsFields,
5559
5858
  onSubmit,
@@ -5571,7 +5870,7 @@ function OrganizationCreateScreen({
5571
5870
  footer,
5572
5871
  ...props
5573
5872
  }) {
5574
- return /* @__PURE__ */ jsx80(
5873
+ return /* @__PURE__ */ jsx84(
5575
5874
  OnboardingScreenShell,
5576
5875
  {
5577
5876
  logo,
@@ -5581,7 +5880,7 @@ function OrganizationCreateScreen({
5581
5880
  footer,
5582
5881
  width: "lg",
5583
5882
  ...props,
5584
- children: /* @__PURE__ */ jsx80(
5883
+ children: /* @__PURE__ */ jsx84(
5585
5884
  OrganizationOnboardingForm,
5586
5885
  {
5587
5886
  requireSanctionsFields,
@@ -5600,8 +5899,8 @@ function OrganizationCreateScreen({
5600
5899
  }
5601
5900
 
5602
5901
  // src/components/product-create-screen.tsx
5603
- import * as React66 from "react";
5604
- import { jsx as jsx81, jsxs as jsxs46 } from "react/jsx-runtime";
5902
+ import * as React68 from "react";
5903
+ import { jsx as jsx85, jsxs as jsxs50 } from "react/jsx-runtime";
5605
5904
  var productRow = "flex w-full items-center justify-between rounded-md border border-border-default bg-bg-primary px-3 py-2 text-left text-sm text-text-primary";
5606
5905
  function ProductCreateScreen({
5607
5906
  // Destructured only to keep it out of `...props`, which is spread onto a <div>.
@@ -5627,11 +5926,11 @@ function ProductCreateScreen({
5627
5926
  footer,
5628
5927
  ...props
5629
5928
  }) {
5630
- const [name, setName] = React66.useState(defaultName);
5631
- const submittingRef = React66.useRef(false);
5929
+ const [name, setName] = React68.useState(defaultName);
5930
+ const submittingRef = React68.useRef(false);
5632
5931
  const trimmed = name.trim();
5633
5932
  const canSubmit = trimmed !== "" && !submitting;
5634
- React66.useEffect(() => {
5933
+ React68.useEffect(() => {
5635
5934
  submittingRef.current = false;
5636
5935
  }, [name, submitting, serverError]);
5637
5936
  const handleSubmit = (event) => {
@@ -5643,7 +5942,7 @@ function ProductCreateScreen({
5643
5942
  const products = existingProducts ?? [];
5644
5943
  const orgs = organizations ?? [];
5645
5944
  const pickerLayout = orgs.length > 0;
5646
- const productList = /* @__PURE__ */ jsx81("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx81("li", { children: onOpenProduct ? /* @__PURE__ */ jsxs46(
5945
+ const productList = /* @__PURE__ */ jsx85("ul", { className: "flex flex-col gap-1", children: products.map((product) => /* @__PURE__ */ jsx85("li", { children: onOpenProduct ? /* @__PURE__ */ jsxs50(
5647
5946
  "button",
5648
5947
  {
5649
5948
  type: "button",
@@ -5654,15 +5953,15 @@ function ProductCreateScreen({
5654
5953
  "hover:bg-bg-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-focus"
5655
5954
  ),
5656
5955
  children: [
5657
- /* @__PURE__ */ jsx81("span", { className: "truncate", children: product.name }),
5658
- product.slug && /* @__PURE__ */ jsx81("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
5956
+ /* @__PURE__ */ jsx85("span", { className: "truncate", children: product.name }),
5957
+ product.slug && /* @__PURE__ */ jsx85("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
5659
5958
  ]
5660
5959
  }
5661
- ) : /* @__PURE__ */ jsxs46("div", { className: productRow, children: [
5662
- /* @__PURE__ */ jsx81("span", { className: "truncate", children: product.name }),
5663
- product.slug && /* @__PURE__ */ jsx81("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
5960
+ ) : /* @__PURE__ */ jsxs50("div", { className: productRow, children: [
5961
+ /* @__PURE__ */ jsx85("span", { className: "truncate", children: product.name }),
5962
+ product.slug && /* @__PURE__ */ jsx85("span", { className: "ml-2 truncate text-text-tertiary", children: product.slug })
5664
5963
  ] }) }, product.id)) });
5665
- return /* @__PURE__ */ jsxs46(
5964
+ return /* @__PURE__ */ jsxs50(
5666
5965
  OnboardingScreenShell,
5667
5966
  {
5668
5967
  logo,
@@ -5672,10 +5971,10 @@ function ProductCreateScreen({
5672
5971
  footer,
5673
5972
  ...props,
5674
5973
  children: [
5675
- pickerLayout && /* @__PURE__ */ jsxs46("div", { className: "mb-4 space-y-4", children: [
5676
- /* @__PURE__ */ jsxs46("div", { className: "space-y-1.5", children: [
5677
- /* @__PURE__ */ jsx81(Label2, { htmlFor: "create-product-org-select", children: "Organization" }),
5678
- /* @__PURE__ */ jsx81(
5974
+ pickerLayout && /* @__PURE__ */ jsxs50("div", { className: "mb-4 space-y-4", children: [
5975
+ /* @__PURE__ */ jsxs50("div", { className: "space-y-1.5", children: [
5976
+ /* @__PURE__ */ jsx85(Label2, { htmlFor: "create-product-org-select", children: "Organization" }),
5977
+ /* @__PURE__ */ jsx85(
5679
5978
  Select,
5680
5979
  {
5681
5980
  id: "create-product-org-select",
@@ -5689,15 +5988,15 @@ function ProductCreateScreen({
5689
5988
  }
5690
5989
  )
5691
5990
  ] }),
5692
- /* @__PURE__ */ jsxs46("div", { "data-testid": "existing-products", className: "space-y-1.5", children: [
5693
- /* @__PURE__ */ jsx81(Label2, { children: existingProductsLabel }),
5694
- productsLoading ? /* @__PURE__ */ jsx81("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx81("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : productList
5991
+ /* @__PURE__ */ jsxs50("div", { "data-testid": "existing-products", className: "space-y-1.5", children: [
5992
+ /* @__PURE__ */ jsx85(Label2, { children: existingProductsLabel }),
5993
+ productsLoading ? /* @__PURE__ */ jsx85("p", { className: "text-sm text-text-tertiary", children: "Loading products\u2026" }) : products.length === 0 ? /* @__PURE__ */ jsx85("p", { className: "text-sm text-text-tertiary", children: "No products yet." }) : productList
5695
5994
  ] })
5696
5995
  ] }),
5697
- /* @__PURE__ */ jsxs46("form", { onSubmit: handleSubmit, className: "space-y-4", noValidate: true, children: [
5698
- /* @__PURE__ */ jsxs46("div", { className: "space-y-1.5", children: [
5699
- /* @__PURE__ */ jsx81(Label2, { htmlFor: "create-product-name", children: "Product name" }),
5700
- /* @__PURE__ */ jsx81(
5996
+ /* @__PURE__ */ jsxs50("form", { onSubmit: handleSubmit, className: "space-y-4", noValidate: true, children: [
5997
+ /* @__PURE__ */ jsxs50("div", { className: "space-y-1.5", children: [
5998
+ /* @__PURE__ */ jsx85(Label2, { htmlFor: "create-product-name", children: "Product name" }),
5999
+ /* @__PURE__ */ jsx85(
5701
6000
  Input,
5702
6001
  {
5703
6002
  id: "create-product-name",
@@ -5708,9 +6007,9 @@ function ProductCreateScreen({
5708
6007
  }
5709
6008
  )
5710
6009
  ] }),
5711
- serverError && /* @__PURE__ */ jsx81(InlineError, { children: serverError }),
5712
- /* @__PURE__ */ jsxs46("div", { className: "space-y-2 pt-1", children: [
5713
- /* @__PURE__ */ jsx81(
6010
+ serverError && /* @__PURE__ */ jsx85(InlineError, { children: serverError }),
6011
+ /* @__PURE__ */ jsxs50("div", { className: "space-y-2 pt-1", children: [
6012
+ /* @__PURE__ */ jsx85(
5714
6013
  "button",
5715
6014
  {
5716
6015
  type: "submit",
@@ -5721,16 +6020,16 @@ function ProductCreateScreen({
5721
6020
  children: submitting ? "Creating\u2026" : submitLabel
5722
6021
  }
5723
6022
  ),
5724
- onCancel && /* @__PURE__ */ jsx81("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
6023
+ onCancel && /* @__PURE__ */ jsx85("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
5725
6024
  ] })
5726
6025
  ] }),
5727
- !pickerLayout && products.length > 0 && /* @__PURE__ */ jsxs46(
6026
+ !pickerLayout && products.length > 0 && /* @__PURE__ */ jsxs50(
5728
6027
  "div",
5729
6028
  {
5730
6029
  "data-testid": "existing-products",
5731
6030
  className: "mt-6 space-y-2 border-t border-border-default pt-5",
5732
6031
  children: [
5733
- /* @__PURE__ */ jsx81(Label2, { children: existingProductsLabel }),
6032
+ /* @__PURE__ */ jsx85(Label2, { children: existingProductsLabel }),
5734
6033
  productList
5735
6034
  ]
5736
6035
  }
@@ -5766,6 +6065,7 @@ export {
5766
6065
  AvatarFallback,
5767
6066
  AvatarImage,
5768
6067
  Badge,
6068
+ BetaGateScreen,
5769
6069
  Breadcrumb,
5770
6070
  BreadcrumbEllipsis,
5771
6071
  BreadcrumbItem,
@@ -5918,6 +6218,7 @@ export {
5918
6218
  OrgProductSwitcher,
5919
6219
  OrganizationCreateScreen,
5920
6220
  OrganizationOnboardingForm,
6221
+ PageHeader,
5921
6222
  Pagination,
5922
6223
  PaginationContent,
5923
6224
  PaginationEllipsis,
@@ -5954,6 +6255,7 @@ export {
5954
6255
  SidebarNav,
5955
6256
  SidebarNavLink,
5956
6257
  SidebarProductHeader,
6258
+ SignupScreen,
5957
6259
  Skeleton,
5958
6260
  Slider,
5959
6261
  StatCard,