@lessly/ui 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ var twMerge = extendTailwindMerge((config) => {
12
12
  { [group.replace("border-w", "border")]: TOKEN_BORDER_WIDTHS }
13
13
  ];
14
14
  }
15
+ config.conflictingClassGroups["font-size"] = [];
15
16
  return config;
16
17
  });
17
18
  function cn(...inputs) {
@@ -592,13 +593,14 @@ Label2.displayName = LabelPrimitive.Root.displayName;
592
593
  // src/components/option-card.tsx
593
594
  import * as React9 from "react";
594
595
  import { cva as cva3 } from "class-variance-authority";
596
+ import { Check as Check2 } from "lucide-react";
595
597
  import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
596
598
  var optionCardVariants = cva3(
597
599
  "flex w-full items-center gap-3 rounded-lg border border-border-default p-3 text-left transition-colors hover:bg-bg-elevated focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
598
600
  {
599
601
  variants: {
600
602
  selected: {
601
- true: "ring-2 ring-border-strong",
603
+ true: "border-border-strong",
602
604
  false: ""
603
605
  }
604
606
  },
@@ -619,7 +621,8 @@ var OptionCard = React9.forwardRef(
619
621
  /* @__PURE__ */ jsxs6("span", { className: "flex min-w-0 flex-col", children: [
620
622
  /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium text-text-primary", children: title }),
621
623
  description && /* @__PURE__ */ jsx9("span", { className: "truncate text-xs text-text-tertiary", children: description })
622
- ] })
624
+ ] }),
625
+ selected !== void 0 && /* @__PURE__ */ jsx9(Check2, { className: cn("ml-auto size-3.5 shrink-0 text-text-primary", !selected && "invisible") })
623
626
  ]
624
627
  }
625
628
  )
@@ -816,7 +819,7 @@ var SettingRow = React11.forwardRef(function SettingRow2({ icon: Icon, label, de
816
819
  SettingRow.displayName = "SettingRow";
817
820
 
818
821
  // src/components/switch.tsx
819
- import { Check as Check2 } from "lucide-react";
822
+ import { Check as Check3 } from "lucide-react";
820
823
  import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
821
824
  function Switch({
822
825
  checked,
@@ -850,7 +853,7 @@ function Switch({
850
853
  "span",
851
854
  {
852
855
  className: `pointer-events-none absolute inset-y-0 left-0 flex w-6 items-center justify-center transition-opacity ${checked ? "opacity-100" : "opacity-0"}`,
853
- children: /* @__PURE__ */ jsx15(Check2, { className: "size-3 text-white" })
856
+ children: /* @__PURE__ */ jsx15(Check3, { className: "size-3 text-white" })
854
857
  }
855
858
  ),
856
859
  /* @__PURE__ */ jsx15(
@@ -868,7 +871,7 @@ function Switch({
868
871
  // src/components/checkbox.tsx
869
872
  import * as React12 from "react";
870
873
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
871
- import { Check as Check3 } from "lucide-react";
874
+ import { Check as Check4 } from "lucide-react";
872
875
  import { jsx as jsx16 } from "react/jsx-runtime";
873
876
  var Checkbox = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
874
877
  CheckboxPrimitive.Root,
@@ -882,7 +885,7 @@ var Checkbox = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__
882
885
  className
883
886
  ),
884
887
  ...props,
885
- children: /* @__PURE__ */ jsx16(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx16(Check3, { className: "h-4 w-4" }) })
888
+ children: /* @__PURE__ */ jsx16(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx16(Check4, { className: "h-4 w-4" }) })
886
889
  }
887
890
  ));
888
891
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
@@ -1488,7 +1491,7 @@ AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
1488
1491
  // src/components/context-menu.tsx
1489
1492
  import * as React25 from "react";
1490
1493
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1491
- import { Check as Check4, ChevronRight as ChevronRight2, Circle as Circle3 } from "lucide-react";
1494
+ import { Check as Check5, ChevronRight as ChevronRight2, Circle as Circle3 } from "lucide-react";
1492
1495
  import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
1493
1496
  var ContextMenu = ContextMenuPrimitive.Root;
1494
1497
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
@@ -1561,7 +1564,7 @@ var ContextMenuCheckboxItem = React25.forwardRef(({ className, children, checked
1561
1564
  checked,
1562
1565
  ...props,
1563
1566
  children: [
1564
- /* @__PURE__ */ jsx29("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check4, { className: "h-4 w-4" }) }) }),
1567
+ /* @__PURE__ */ jsx29("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(Check5, { className: "h-4 w-4" }) }) }),
1565
1568
  children
1566
1569
  ]
1567
1570
  }
@@ -1609,7 +1612,7 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
1609
1612
  // src/components/menubar.tsx
1610
1613
  import * as React26 from "react";
1611
1614
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
1612
- import { Check as Check5, ChevronRight as ChevronRight3, Circle as Circle4 } from "lucide-react";
1615
+ import { Check as Check6, ChevronRight as ChevronRight3, Circle as Circle4 } from "lucide-react";
1613
1616
  import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
1614
1617
  var MenubarMenu = (props) => /* @__PURE__ */ jsx30(MenubarPrimitive.Menu, { ...props });
1615
1618
  MenubarMenu.displayName = "MenubarMenu";
@@ -1709,7 +1712,7 @@ var MenubarCheckboxItem = React26.forwardRef(({ className, children, checked, ..
1709
1712
  checked,
1710
1713
  ...props,
1711
1714
  children: [
1712
- /* @__PURE__ */ jsx30("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx30(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx30(Check5, { className: "h-4 w-4" }) }) }),
1715
+ /* @__PURE__ */ jsx30("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx30(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx30(Check6, { className: "h-4 w-4" }) }) }),
1713
1716
  children
1714
1717
  ]
1715
1718
  }
@@ -3177,7 +3180,7 @@ EmptyState.displayName = "EmptyState";
3177
3180
 
3178
3181
  // src/components/copy-button.tsx
3179
3182
  import * as React50 from "react";
3180
- import { Check as Check6, Copy } from "lucide-react";
3183
+ import { Check as Check7, Copy } from "lucide-react";
3181
3184
  import { jsx as jsx60, jsxs as jsxs34 } from "react/jsx-runtime";
3182
3185
  var MASK = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
3183
3186
  var CopyButton = React50.forwardRef(
@@ -3213,7 +3216,7 @@ var CopyButton = React50.forwardRef(
3213
3216
  className: cn(className),
3214
3217
  ...props,
3215
3218
  "aria-label": copied ? "Copied" : masked ? `${label} ending ${tail}` : label,
3216
- icon: copied ? /* @__PURE__ */ jsx60(Check6, { className: "text-text-success" }) : /* @__PURE__ */ jsx60(Copy, {})
3219
+ icon: copied ? /* @__PURE__ */ jsx60(Check7, { className: "text-text-success" }) : /* @__PURE__ */ jsx60(Copy, {})
3217
3220
  }
3218
3221
  )
3219
3222
  );
@@ -4497,7 +4500,7 @@ RemoveButton.displayName = "RemoveButton";
4497
4500
 
4498
4501
  // src/components/grant-role-picker.tsx
4499
4502
  import * as React63 from "react";
4500
- import { Check as Check7 } from "lucide-react";
4503
+ import { Check as Check8 } from "lucide-react";
4501
4504
  import { Fragment as Fragment7, jsx as jsx76, jsxs as jsxs48 } from "react/jsx-runtime";
4502
4505
  var WEIGHT_TONE = {
4503
4506
  faint: "text-text-secondary",
@@ -4536,7 +4539,7 @@ var GrantRolePicker = React63.forwardRef(
4536
4539
  const removeWords = grantRemoveLabel(void 0, notInForce !== void 0);
4537
4540
  const valueNote = !current ? notes?.missing : rungs && !pickable.some((r) => r.id === value) ? notes?.aboveCap : void 0;
4538
4541
  const item = (r) => /* @__PURE__ */ jsxs48(DropdownMenuItem, { onSelect: () => onChange(r.id), className: "items-start gap-2 py-1.5", children: [
4539
- /* @__PURE__ */ jsx76(Check7, { className: cn("mt-0.5 size-3.5 shrink-0 text-text-primary", r.id !== value && "invisible") }),
4542
+ /* @__PURE__ */ jsx76(Check8, { className: cn("mt-0.5 size-3.5 shrink-0 text-text-primary", r.id !== value && "invisible") }),
4540
4543
  /* @__PURE__ */ jsxs48("span", { className: "flex flex-col", children: [
4541
4544
  /* @__PURE__ */ jsx76("span", { className: cn("text-sm", WEIGHT_TONE[r.weight ?? "normal"]), children: r.name }),
4542
4545
  r.hint && /* @__PURE__ */ jsx76("span", { className: "text-xs text-text-tertiary", children: r.hint })
@@ -4580,7 +4583,7 @@ var GrantRolePicker = React63.forwardRef(
4580
4583
  "aria-label": removeDetail ? grantRemoveLabel(removeDetail, notInForce !== void 0) : void 0,
4581
4584
  className: "gap-2 py-1.5",
4582
4585
  children: [
4583
- rungs && /* @__PURE__ */ jsx76(Check7, { className: "invisible size-3.5 shrink-0" }),
4586
+ rungs && /* @__PURE__ */ jsx76(Check8, { className: "invisible size-3.5 shrink-0" }),
4584
4587
  removeWords
4585
4588
  ]
4586
4589
  }
@@ -5028,28 +5031,10 @@ function AppSidebar({
5028
5031
  className
5029
5032
  ),
5030
5033
  children: [
5031
- /* @__PURE__ */ jsx83("div", { className: cn("flex h-14 items-center gap-2", collapsed ? "justify-center px-1" : "px-3"), children: collapsed ? collapsible ? logoCollapsed ?? logo ? (
5032
- /* The collapsed rail (52px) can't fit the logo mark beside the pin side by side —
5033
- so the pin overlays the mark instead, revealed on hover/focus, same as pre-flat-rail. */
5034
- /* @__PURE__ */ jsxs54("div", { className: "group relative flex size-8 items-center justify-center", children: [
5035
- /* @__PURE__ */ jsx83("span", { className: "pointer-events-none transition-opacity group-hover:opacity-0 group-focus-within:opacity-0", children: logoCollapsed ?? logo }),
5036
- /* @__PURE__ */ jsx83(
5037
- "button",
5038
- {
5039
- type: "button",
5040
- onClick: toggle,
5041
- "aria-label": "Expand sidebar",
5042
- "aria-expanded": false,
5043
- 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",
5044
- children: /* @__PURE__ */ jsx83(PanelLeft, { className: "size-4", "aria-hidden": "true" })
5045
- }
5046
- )
5047
- ] })
5048
- ) : (
5049
- /* No mark to hide behind (no `logoCollapsed`/`logo` given — `header` doesn't
5050
- count, it's expanded-only). Hover-revealing the pin over nothing would leave
5051
- an invisible 32px box as the only way back to expanded, so render it plain
5052
- and fully visible instead. */
5034
+ /* @__PURE__ */ jsx83("div", { className: cn("flex h-14 items-center gap-2", collapsed ? "justify-center px-1" : "px-3"), children: collapsed ? collapsible ? (
5035
+ /* The 52px rail holds one 32px box, and the way back to expanded is what it holds.
5036
+ The logo has the expanded band and the top bar; the pin has nowhere else, and a
5037
+ pin hidden behind the mark is no pin at all on a device that cannot hover. */
5053
5038
  /* @__PURE__ */ jsx83(
5054
5039
  "button",
5055
5040
  {
@@ -5110,7 +5095,7 @@ var SidebarProductHeader = React69.forwardRef(
5110
5095
  SidebarProductHeader.displayName = "SidebarProductHeader";
5111
5096
 
5112
5097
  // src/components/org-product-switcher.tsx
5113
- import { ChevronsUpDown as ChevronsUpDown3, Check as Check8 } from "lucide-react";
5098
+ import { ChevronsUpDown as ChevronsUpDown3, Check as Check9 } from "lucide-react";
5114
5099
  import { Fragment as Fragment11, jsx as jsx85, jsxs as jsxs56 } from "react/jsx-runtime";
5115
5100
  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";
5116
5101
  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";
@@ -5189,7 +5174,7 @@ function OrgProductSwitcher({
5189
5174
  organizations.map((o) => /* @__PURE__ */ jsxs56(DropdownMenuItem, { className: menuItem, onSelect: () => onOrgSelect(o.id), children: [
5190
5175
  /* @__PURE__ */ jsx85(Mark2, { item: o, size: "sm" }),
5191
5176
  /* @__PURE__ */ jsx85(ItemLabel, { item: o, kind: "organization" }),
5192
- o.id === activeOrgId && /* @__PURE__ */ jsx85(Check8, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
5177
+ o.id === activeOrgId && /* @__PURE__ */ jsx85(Check9, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
5193
5178
  ] }, o.id)),
5194
5179
  products.length > 0 && /* @__PURE__ */ jsxs56(Fragment11, { children: [
5195
5180
  /* @__PURE__ */ jsx85(DropdownMenuSeparator, { className: "mx-0 shrink-0 bg-border-subtle" }),
@@ -5197,7 +5182,7 @@ function OrgProductSwitcher({
5197
5182
  products.map((p) => /* @__PURE__ */ jsxs56(DropdownMenuItem, { className: menuItem, onSelect: () => onProductSelect?.(p.id), children: [
5198
5183
  /* @__PURE__ */ jsx85(Mark2, { item: p, size: "sm" }),
5199
5184
  /* @__PURE__ */ jsx85(ItemLabel, { item: p, kind: "product" }),
5200
- p.id === activeProductId && /* @__PURE__ */ jsx85(Check8, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
5185
+ p.id === activeProductId && /* @__PURE__ */ jsx85(Check9, { className: "size-4 shrink-0 text-text-secondary", "aria-hidden": "true" })
5201
5186
  ] }, p.id))
5202
5187
  ] }),
5203
5188
  actions && actions.length > 0 && /* @__PURE__ */ jsxs56(Fragment11, { children: [
@@ -5326,14 +5311,36 @@ function AppShell({ sidebar, topBar, children, className }) {
5326
5311
  }
5327
5312
  var AuthenticatedLayout = AppShell;
5328
5313
 
5329
- // src/components/grid.tsx
5314
+ // src/components/top-bar.tsx
5330
5315
  import * as React71 from "react";
5316
+ import { jsx as jsx88, jsxs as jsxs59 } from "react/jsx-runtime";
5317
+ var TopBar = React71.forwardRef(
5318
+ ({ left, right, className, ...props }, ref) => /* @__PURE__ */ jsxs59("div", { ref, className: cn("flex w-full items-center gap-1", className), ...props, children: [
5319
+ left,
5320
+ right && /* @__PURE__ */ jsx88("div", { className: "ml-auto flex items-center gap-2", children: right })
5321
+ ] })
5322
+ );
5323
+ TopBar.displayName = "TopBar";
5324
+
5325
+ // src/components/top-bar-utilities.tsx
5326
+ import * as React72 from "react";
5327
+ import { jsx as jsx89, jsxs as jsxs60 } from "react/jsx-runtime";
5328
+ var TopBarUtilities = React72.forwardRef(
5329
+ ({ items, className, ...props }, ref) => /* @__PURE__ */ jsx89("div", { ref, className: cn("flex items-center gap-1", className), ...props, children: items.map(({ name, icon, onClick }) => /* @__PURE__ */ jsxs60(Tooltip, { children: [
5330
+ /* @__PURE__ */ jsx89(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx89(Button, { variant: "ghost", size: "sm", icon, "aria-label": name, onClick }) }),
5331
+ /* @__PURE__ */ jsx89(TooltipContent, { children: name })
5332
+ ] }, name)) })
5333
+ );
5334
+ TopBarUtilities.displayName = "TopBarUtilities";
5335
+
5336
+ // src/components/grid.tsx
5337
+ import * as React73 from "react";
5331
5338
  import { Slot as Slot7 } from "@radix-ui/react-slot";
5332
- import { jsx as jsx88 } from "react/jsx-runtime";
5333
- var Grid = React71.forwardRef(
5339
+ import { jsx as jsx90 } from "react/jsx-runtime";
5340
+ var Grid = React73.forwardRef(
5334
5341
  ({ fluid = false, asChild = false, className, ...props }, ref) => {
5335
5342
  const Comp = asChild ? Slot7 : "div";
5336
- return /* @__PURE__ */ jsx88(
5343
+ return /* @__PURE__ */ jsx90(
5337
5344
  Comp,
5338
5345
  {
5339
5346
  ref,
@@ -5351,9 +5358,9 @@ var Grid = React71.forwardRef(
5351
5358
  Grid.displayName = "Grid";
5352
5359
 
5353
5360
  // src/components/col.tsx
5354
- import * as React72 from "react";
5361
+ import * as React74 from "react";
5355
5362
  import { Slot as Slot8 } from "@radix-ui/react-slot";
5356
- import { jsx as jsx89 } from "react/jsx-runtime";
5363
+ import { jsx as jsx91 } from "react/jsx-runtime";
5357
5364
  var TIER_MAX = { base: 4, md: 8, xl: 12 };
5358
5365
  var SPAN = {
5359
5366
  base: { 1: "col-span-1", 2: "col-span-2", 3: "col-span-3", 4: "col-span-4" },
@@ -5473,17 +5480,17 @@ function responsiveClasses(span, offset) {
5473
5480
  }
5474
5481
  return cn(...spanClasses, ...startClasses);
5475
5482
  }
5476
- var Col = React72.forwardRef(
5483
+ var Col = React74.forwardRef(
5477
5484
  ({ span, offset, asChild = false, className, ...props }, ref) => {
5478
5485
  const Comp = asChild ? Slot8 : "div";
5479
- return /* @__PURE__ */ jsx89(Comp, { ref, className: cn(responsiveClasses(span, offset), className), ...props });
5486
+ return /* @__PURE__ */ jsx91(Comp, { ref, className: cn(responsiveClasses(span, offset), className), ...props });
5480
5487
  }
5481
5488
  );
5482
5489
  Col.displayName = "Col";
5483
5490
 
5484
5491
  // src/components/code-block.tsx
5485
- import * as React73 from "react";
5486
- import { jsx as jsx90, jsxs as jsxs59 } from "react/jsx-runtime";
5492
+ import * as React75 from "react";
5493
+ import { jsx as jsx92, jsxs as jsxs61 } from "react/jsx-runtime";
5487
5494
  var TOKEN_CLASS = {
5488
5495
  comment: "text-text-tertiary italic",
5489
5496
  string: "text-text-success",
@@ -5654,30 +5661,30 @@ function dropLeading(tokens, count) {
5654
5661
  }
5655
5662
  return out;
5656
5663
  }
5657
- var CodeBlock = React73.forwardRef(
5664
+ var CodeBlock = React75.forwardRef(
5658
5665
  ({ code, lang = "tsx", variant = "default", copy = false, filename, scroll = false, highlightLines, showLineNumbers = false, className, ...props }, ref) => {
5659
- const lines = React73.useMemo(() => tokenizeLines(code, lang), [code, lang]);
5660
- const rawLines = React73.useMemo(() => code.split("\n"), [code]);
5661
- const highlighted = React73.useMemo(() => parseHighlightLines(highlightLines), [highlightLines]);
5666
+ const lines = React75.useMemo(() => tokenizeLines(code, lang), [code, lang]);
5667
+ const rawLines = React75.useMemo(() => code.split("\n"), [code]);
5668
+ const highlighted = React75.useMemo(() => parseHighlightLines(highlightLines), [highlightLines]);
5662
5669
  const isDiff = variant === "diff";
5663
5670
  const isTerminal = variant === "terminal";
5664
5671
  const showCopy = copy && !isTerminal;
5665
5672
  const overlayCopy = showCopy && !filename;
5666
5673
  const contentWhitespace = scroll ? "whitespace-pre" : "whitespace-pre-wrap break-words";
5667
- const pre = /* @__PURE__ */ jsx90(
5674
+ const pre = /* @__PURE__ */ jsx92(
5668
5675
  "pre",
5669
5676
  {
5670
5677
  ref,
5671
5678
  className: cn("py-4 font-mono text-xs leading-6 text-text-secondary", scroll && "overflow-x-auto", className),
5672
5679
  ...props,
5673
- children: /* @__PURE__ */ jsx90("code", { className: "block min-w-full", children: lines.map((tokens, i) => {
5680
+ children: /* @__PURE__ */ jsx92("code", { className: "block min-w-full", children: lines.map((tokens, i) => {
5674
5681
  const n = i + 1;
5675
5682
  const raw = rawLines[i] ?? "";
5676
5683
  const diffKind = isDiff ? raw[0] === "+" ? "add" : raw[0] === "-" ? "remove" : null : null;
5677
5684
  const promptLen = isTerminal && raw[0] === "$" ? 1 : 0;
5678
5685
  const markerDrop = diffKind ? 1 : promptLen;
5679
5686
  const body = markerDrop ? dropLeading(tokens, markerDrop) : tokens;
5680
- return /* @__PURE__ */ jsxs59(
5687
+ return /* @__PURE__ */ jsxs61(
5681
5688
  "span",
5682
5689
  {
5683
5690
  "data-line": n,
@@ -5690,8 +5697,8 @@ var CodeBlock = React73.forwardRef(
5690
5697
  !diffKind && highlighted.has(n) && "bg-bg-brand-subtle"
5691
5698
  ),
5692
5699
  children: [
5693
- showLineNumbers && /* @__PURE__ */ jsx90("span", { "aria-hidden": true, className: "mr-3 w-8 shrink-0 select-none text-right text-text-tertiary", children: n }),
5694
- (isDiff || isTerminal) && /* @__PURE__ */ jsx90(
5700
+ showLineNumbers && /* @__PURE__ */ jsx92("span", { "aria-hidden": true, className: "mr-3 w-8 shrink-0 select-none text-right text-text-tertiary", children: n }),
5701
+ (isDiff || isTerminal) && /* @__PURE__ */ jsx92(
5695
5702
  "span",
5696
5703
  {
5697
5704
  "aria-hidden": true,
@@ -5704,7 +5711,7 @@ var CodeBlock = React73.forwardRef(
5704
5711
  children: diffKind === "add" ? "+" : diffKind === "remove" ? "-" : promptLen > 0 ? "$" : ""
5705
5712
  }
5706
5713
  ),
5707
- /* @__PURE__ */ jsx90("span", { className: cn("min-w-0 flex-1", contentWhitespace), children: body.length ? body.map((token, j) => /* @__PURE__ */ jsx90("span", { className: TOKEN_CLASS[token.kind], children: token.text }, j)) : "\xA0" })
5714
+ /* @__PURE__ */ jsx92("span", { className: cn("min-w-0 flex-1", contentWhitespace), children: body.length ? body.map((token, j) => /* @__PURE__ */ jsx92("span", { className: TOKEN_CLASS[token.kind], children: token.text }, j)) : "\xA0" })
5708
5715
  ]
5709
5716
  },
5710
5717
  i
@@ -5712,16 +5719,16 @@ var CodeBlock = React73.forwardRef(
5712
5719
  }) })
5713
5720
  }
5714
5721
  );
5715
- return /* @__PURE__ */ jsxs59("div", { className: "relative overflow-hidden rounded-lg border border-border-subtle bg-bg-primary", children: [
5716
- filename && /* @__PURE__ */ jsxs59("div", { className: "flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-2", children: [
5717
- /* @__PURE__ */ jsx90("span", { className: "font-mono text-xs text-text-tertiary", children: filename }),
5718
- showCopy && /* @__PURE__ */ jsx90(CopyButton, { value: code, label: "Copy code", className: "size-7" })
5722
+ return /* @__PURE__ */ jsxs61("div", { className: "relative overflow-hidden rounded-lg border border-border-subtle bg-bg-primary", children: [
5723
+ filename && /* @__PURE__ */ jsxs61("div", { className: "flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-2", children: [
5724
+ /* @__PURE__ */ jsx92("span", { className: "font-mono text-xs text-text-tertiary", children: filename }),
5725
+ showCopy && /* @__PURE__ */ jsx92(CopyButton, { value: code, label: "Copy code", className: "size-7" })
5719
5726
  ] }),
5720
5727
  pre,
5721
5728
  overlayCopy && // Always visible, on every device: a copy control you have to hover to discover is a
5722
5729
  // control most people never find. Opaque (`bg-bg-primary`, the block's own surface) so it
5723
5730
  // reads cleanly where a long first line runs under it.
5724
- /* @__PURE__ */ jsx90(
5731
+ /* @__PURE__ */ jsx92(
5725
5732
  CopyButton,
5726
5733
  {
5727
5734
  value: code,
@@ -5733,7 +5740,7 @@ var CodeBlock = React73.forwardRef(
5733
5740
  }
5734
5741
  );
5735
5742
  CodeBlock.displayName = "CodeBlock";
5736
- var Code = React73.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx90(
5743
+ var Code = React75.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx92(
5737
5744
  "code",
5738
5745
  {
5739
5746
  ref,
@@ -5747,13 +5754,13 @@ var Code = React73.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
5747
5754
  Code.displayName = "Code";
5748
5755
 
5749
5756
  // src/components/grid-overlay.tsx
5750
- import * as React74 from "react";
5751
- import { jsx as jsx91 } from "react/jsx-runtime";
5757
+ import * as React76 from "react";
5758
+ import { jsx as jsx93 } from "react/jsx-runtime";
5752
5759
  var BASELINE = "var(--grid-gutter) / 2";
5753
- var GridOverlay = React74.forwardRef(
5760
+ var GridOverlay = React76.forwardRef(
5754
5761
  ({ columns, baseline = false, className, style, ...props }, ref) => {
5755
5762
  const count = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;
5756
- return /* @__PURE__ */ jsx91(
5763
+ return /* @__PURE__ */ jsx93(
5757
5764
  "div",
5758
5765
  {
5759
5766
  ref,
@@ -5770,7 +5777,7 @@ var GridOverlay = React74.forwardRef(
5770
5777
  ...style
5771
5778
  },
5772
5779
  ...props,
5773
- children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx91("span", { style: { backgroundColor: "var(--bg-brand)", opacity: 0.1 } }, i))
5780
+ children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx93("span", { style: { backgroundColor: "var(--bg-brand)", opacity: 0.1 } }, i))
5774
5781
  }
5775
5782
  );
5776
5783
  }
@@ -5778,10 +5785,10 @@ var GridOverlay = React74.forwardRef(
5778
5785
  GridOverlay.displayName = "GridOverlay";
5779
5786
 
5780
5787
  // src/components/attachment-chip.tsx
5781
- import * as React75 from "react";
5788
+ import * as React77 from "react";
5782
5789
  import { cva as cva10 } from "class-variance-authority";
5783
5790
  import { Link2 as Link22, Clock, Plus as Plus2 } from "lucide-react";
5784
- import { jsx as jsx92, jsxs as jsxs60 } from "react/jsx-runtime";
5791
+ import { jsx as jsx94, jsxs as jsxs62 } from "react/jsx-runtime";
5785
5792
  var attachmentChipVariants = cva10(
5786
5793
  "inline-flex items-center gap-1.5 rounded-lg border px-2.5 py-1 text-sm font-medium leading-tight",
5787
5794
  {
@@ -5800,11 +5807,11 @@ var stateIcons = {
5800
5807
  requested: Clock,
5801
5808
  available: Plus2
5802
5809
  };
5803
- var AttachmentChip = React75.forwardRef(
5810
+ var AttachmentChip = React77.forwardRef(
5804
5811
  ({ state: state2, account, icon, hideIcon = false, className, ...props }, ref) => {
5805
5812
  const Icon = icon ?? stateIcons[state2 ?? "attached"];
5806
- return /* @__PURE__ */ jsxs60("span", { ref, className: cn(attachmentChipVariants({ state: state2 }), className), ...props, children: [
5807
- !hideIcon && /* @__PURE__ */ jsx92(Icon, { className: "size-3.5 shrink-0 opacity-90", "aria-hidden": "true" }),
5813
+ return /* @__PURE__ */ jsxs62("span", { ref, className: cn(attachmentChipVariants({ state: state2 }), className), ...props, children: [
5814
+ !hideIcon && /* @__PURE__ */ jsx94(Icon, { className: "size-3.5 shrink-0 opacity-90", "aria-hidden": "true" }),
5808
5815
  account
5809
5816
  ] });
5810
5817
  }
@@ -5812,9 +5819,9 @@ var AttachmentChip = React75.forwardRef(
5812
5819
  AttachmentChip.displayName = "AttachmentChip";
5813
5820
 
5814
5821
  // src/components/connector-card.tsx
5815
- import * as React76 from "react";
5822
+ import * as React78 from "react";
5816
5823
  import { AlertTriangle, ChevronDown as ChevronDown6 } from "lucide-react";
5817
- import { Fragment as Fragment12, jsx as jsx93, jsxs as jsxs61 } from "react/jsx-runtime";
5824
+ import { Fragment as Fragment12, jsx as jsx95, jsxs as jsxs63 } from "react/jsx-runtime";
5818
5825
  var originLabels = {
5819
5826
  org: "Attached by the organization",
5820
5827
  product: "Attached by this product"
@@ -5827,7 +5834,7 @@ var statusLabels = {
5827
5834
  function monogram(name) {
5828
5835
  return name.replace(/[^a-zA-Z0-9 ]/g, " ").split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0].toUpperCase()).join("");
5829
5836
  }
5830
- var ConnectorCard = React76.forwardRef(
5837
+ var ConnectorCard = React78.forwardRef(
5831
5838
  ({
5832
5839
  name,
5833
5840
  kind,
@@ -5848,7 +5855,7 @@ var ConnectorCard = React76.forwardRef(
5848
5855
  }, ref) => {
5849
5856
  const connected = status !== "not-connected";
5850
5857
  const label = statusLabel ?? statusLabels[status];
5851
- const glyphBox = /* @__PURE__ */ jsx93(
5858
+ const glyphBox = /* @__PURE__ */ jsx95(
5852
5859
  "div",
5853
5860
  {
5854
5861
  "aria-hidden": "true",
@@ -5856,48 +5863,48 @@ var ConnectorCard = React76.forwardRef(
5856
5863
  children: glyph ?? monogram(name)
5857
5864
  }
5858
5865
  );
5859
- const identity = /* @__PURE__ */ jsxs61("div", { className: "min-w-0", children: [
5860
- /* @__PURE__ */ jsx93("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
5861
- (kind || origin) && /* @__PURE__ */ jsxs61("div", { className: "mt-0.5 flex flex-wrap gap-1", children: [
5862
- kind && /* @__PURE__ */ jsx93(Badge, { variant: "secondary", children: kind }),
5863
- origin && /* @__PURE__ */ jsx93(Badge, { variant: "outline", children: originLabels[origin] })
5866
+ const identity = /* @__PURE__ */ jsxs63("div", { className: "min-w-0", children: [
5867
+ /* @__PURE__ */ jsx95("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
5868
+ (kind || origin) && /* @__PURE__ */ jsxs63("div", { className: "mt-0.5 flex flex-wrap gap-1", children: [
5869
+ kind && /* @__PURE__ */ jsx95(Badge, { variant: "secondary", children: kind }),
5870
+ origin && /* @__PURE__ */ jsx95(Badge, { variant: "outline", children: originLabels[origin] })
5864
5871
  ] })
5865
5872
  ] });
5866
- const statusBadge = label ? /* @__PURE__ */ jsx93(Badge, { variant: "status", children: label }) : null;
5867
- const accessNote = access ? /* @__PURE__ */ jsxs61(
5873
+ const statusBadge = label ? /* @__PURE__ */ jsx95(Badge, { variant: "status", children: label }) : null;
5874
+ const accessNote = access ? /* @__PURE__ */ jsxs63(
5868
5875
  "div",
5869
5876
  {
5870
5877
  role: "note",
5871
5878
  className: "flex items-start gap-2 border-t border-border-subtle bg-bg-secondary px-4 py-2.5 text-xs font-medium text-text-secondary",
5872
5879
  children: [
5873
- /* @__PURE__ */ jsx93(AlertTriangle, { className: "mt-0.5 size-3.5 shrink-0", "aria-hidden": "true" }),
5874
- /* @__PURE__ */ jsx93("span", { children: access })
5880
+ /* @__PURE__ */ jsx95(AlertTriangle, { className: "mt-0.5 size-3.5 shrink-0", "aria-hidden": "true" }),
5881
+ /* @__PURE__ */ jsx95("span", { children: access })
5875
5882
  ]
5876
5883
  }
5877
5884
  ) : null;
5878
5885
  const footerAction = collapsible ? action : connected && action;
5879
- const footer = attachedCount !== void 0 || footerAction ? /* @__PURE__ */ jsxs61("div", { className: "flex items-center justify-between border-t border-border-subtle px-4 py-3", children: [
5880
- /* @__PURE__ */ jsx93("span", { className: "text-sm text-text-secondary", children: attachedCount !== void 0 ? /* @__PURE__ */ jsxs61(Fragment12, { children: [
5886
+ const footer = attachedCount !== void 0 || footerAction ? /* @__PURE__ */ jsxs63("div", { className: "flex items-center justify-between border-t border-border-subtle px-4 py-3", children: [
5887
+ /* @__PURE__ */ jsx95("span", { className: "text-sm text-text-secondary", children: attachedCount !== void 0 ? /* @__PURE__ */ jsxs63(Fragment12, { children: [
5881
5888
  "Attached to ",
5882
- /* @__PURE__ */ jsx93("span", { className: "font-semibold text-text-primary", children: attachedCount }),
5889
+ /* @__PURE__ */ jsx95("span", { className: "font-semibold text-text-primary", children: attachedCount }),
5883
5890
  " ",
5884
5891
  attachedCount === 1 ? "product" : "products"
5885
- ] }) : /* @__PURE__ */ jsx93("span", { className: "text-text-tertiary", children: "Not attached to any product yet" }) }),
5892
+ ] }) : /* @__PURE__ */ jsx95("span", { className: "text-text-tertiary", children: "Not attached to any product yet" }) }),
5886
5893
  footerAction
5887
5894
  ] }) : null;
5888
- const drawer = children ? /* @__PURE__ */ jsx93("div", { "data-slot": "drawer", className: "border-t border-border-subtle", children }) : null;
5895
+ const drawer = children ? /* @__PURE__ */ jsx95("div", { "data-slot": "drawer", className: "border-t border-border-subtle", children }) : null;
5889
5896
  if (!collapsible) {
5890
- return /* @__PURE__ */ jsxs61(
5897
+ return /* @__PURE__ */ jsxs63(
5891
5898
  Card,
5892
5899
  {
5893
5900
  ref,
5894
5901
  className: cn(status === "not-connected" && "border-dashed border-border-default", className),
5895
5902
  ...props,
5896
5903
  children: [
5897
- /* @__PURE__ */ jsxs61("div", { className: "flex items-center gap-3 p-4", children: [
5904
+ /* @__PURE__ */ jsxs63("div", { className: "flex items-center gap-3 p-4", children: [
5898
5905
  glyphBox,
5899
5906
  identity,
5900
- /* @__PURE__ */ jsx93("div", { className: "ml-auto shrink-0", children: connected ? statusBadge : action ?? statusBadge })
5907
+ /* @__PURE__ */ jsx95("div", { className: "ml-auto shrink-0", children: connected ? statusBadge : action ?? statusBadge })
5901
5908
  ] }),
5902
5909
  accessNote,
5903
5910
  footer,
@@ -5906,7 +5913,7 @@ var ConnectorCard = React76.forwardRef(
5906
5913
  }
5907
5914
  );
5908
5915
  }
5909
- return /* @__PURE__ */ jsx93(Collapsible, { defaultOpen, open, onOpenChange, children: /* @__PURE__ */ jsxs61(
5916
+ return /* @__PURE__ */ jsx95(Collapsible, { defaultOpen, open, onOpenChange, children: /* @__PURE__ */ jsxs63(
5910
5917
  Card,
5911
5918
  {
5912
5919
  ref,
@@ -5917,7 +5924,7 @@ var ConnectorCard = React76.forwardRef(
5917
5924
  ),
5918
5925
  ...props,
5919
5926
  children: [
5920
- /* @__PURE__ */ jsx93(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs61(
5927
+ /* @__PURE__ */ jsx95(CollapsibleTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs63(
5921
5928
  "button",
5922
5929
  {
5923
5930
  type: "button",
@@ -5925,9 +5932,9 @@ var ConnectorCard = React76.forwardRef(
5925
5932
  children: [
5926
5933
  glyphBox,
5927
5934
  identity,
5928
- /* @__PURE__ */ jsxs61("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
5935
+ /* @__PURE__ */ jsxs63("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: [
5929
5936
  statusBadge,
5930
- /* @__PURE__ */ jsx93(
5937
+ /* @__PURE__ */ jsx95(
5931
5938
  ChevronDown6,
5932
5939
  {
5933
5940
  "aria-hidden": "true",
@@ -5938,7 +5945,7 @@ var ConnectorCard = React76.forwardRef(
5938
5945
  ]
5939
5946
  }
5940
5947
  ) }),
5941
- /* @__PURE__ */ jsxs61(CollapsibleContent2, { children: [
5948
+ /* @__PURE__ */ jsxs63(CollapsibleContent2, { children: [
5942
5949
  accessNote,
5943
5950
  footer,
5944
5951
  drawer
@@ -5951,33 +5958,33 @@ var ConnectorCard = React76.forwardRef(
5951
5958
  ConnectorCard.displayName = "ConnectorCard";
5952
5959
 
5953
5960
  // src/components/request-row.tsx
5954
- import * as React77 from "react";
5955
- import { Fragment as Fragment13, jsx as jsx94, jsxs as jsxs62 } from "react/jsx-runtime";
5961
+ import * as React79 from "react";
5962
+ import { Fragment as Fragment13, jsx as jsx96, jsxs as jsxs64 } from "react/jsx-runtime";
5956
5963
  function monogram2(name) {
5957
5964
  return name.replace(/[^a-zA-Z0-9 ]/g, " ").split(/\s+/).filter(Boolean).slice(0, 2).map((w) => w[0].toUpperCase()).join("");
5958
5965
  }
5959
- var RequestRow = React77.forwardRef(
5966
+ var RequestRow = React79.forwardRef(
5960
5967
  ({ surface, name, state: state2, glyph, subtitle, account, onApprove, onDeny, onRequest, onRevoke, action, className, ...props }, ref) => {
5961
5968
  let controls = action;
5962
5969
  if (controls === void 0) {
5963
5970
  if (surface === "org" && state2 === "pending") {
5964
- controls = /* @__PURE__ */ jsxs62(Fragment13, { children: [
5965
- /* @__PURE__ */ jsx94(Button, { variant: "ghost", size: "sm", onClick: onDeny, children: "Deny" }),
5966
- /* @__PURE__ */ jsx94(Button, { variant: "outline", size: "sm", onClick: onApprove, children: "Approve" })
5971
+ controls = /* @__PURE__ */ jsxs64(Fragment13, { children: [
5972
+ /* @__PURE__ */ jsx96(Button, { variant: "ghost", size: "sm", onClick: onDeny, children: "Deny" }),
5973
+ /* @__PURE__ */ jsx96(Button, { variant: "outline", size: "sm", onClick: onApprove, children: "Approve" })
5967
5974
  ] });
5968
5975
  } else if (state2 === "sent") {
5969
- controls = /* @__PURE__ */ jsx94(Button, { variant: "destructive-ghost", size: "sm", onClick: onRevoke, children: "Revoke" });
5976
+ controls = /* @__PURE__ */ jsx96(Button, { variant: "destructive-ghost", size: "sm", onClick: onRevoke, children: "Revoke" });
5970
5977
  } else if (state2 === "available") {
5971
- controls = /* @__PURE__ */ jsx94(Button, { variant: "outline", size: "sm", onClick: onRequest, children: "Request" });
5978
+ controls = /* @__PURE__ */ jsx96(Button, { variant: "outline", size: "sm", onClick: onRequest, children: "Request" });
5972
5979
  } else if (state2 === "pending") {
5973
- controls = /* @__PURE__ */ jsx94(Badge, { variant: "status", children: "Requested" });
5980
+ controls = /* @__PURE__ */ jsx96(Badge, { variant: "status", children: "Requested" });
5974
5981
  } else if (state2 === "denied") {
5975
- controls = /* @__PURE__ */ jsx94(Badge, { variant: "status", children: "Denied" });
5982
+ controls = /* @__PURE__ */ jsx96(Badge, { variant: "status", children: "Denied" });
5976
5983
  } else if (state2 === "attached") {
5977
- controls = account ? /* @__PURE__ */ jsx94(AttachmentChip, { state: "attached", account }) : /* @__PURE__ */ jsx94(Badge, { variant: "status", children: "In use" });
5984
+ controls = account ? /* @__PURE__ */ jsx96(AttachmentChip, { state: "attached", account }) : /* @__PURE__ */ jsx96(Badge, { variant: "status", children: "In use" });
5978
5985
  }
5979
5986
  }
5980
- return /* @__PURE__ */ jsxs62(
5987
+ return /* @__PURE__ */ jsxs64(
5981
5988
  "div",
5982
5989
  {
5983
5990
  ref,
@@ -5987,7 +5994,7 @@ var RequestRow = React77.forwardRef(
5987
5994
  ),
5988
5995
  ...props,
5989
5996
  children: [
5990
- /* @__PURE__ */ jsx94(
5997
+ /* @__PURE__ */ jsx96(
5991
5998
  "div",
5992
5999
  {
5993
6000
  "aria-hidden": "true",
@@ -5995,11 +6002,11 @@ var RequestRow = React77.forwardRef(
5995
6002
  children: glyph ?? monogram2(name)
5996
6003
  }
5997
6004
  ),
5998
- /* @__PURE__ */ jsxs62("div", { className: "min-w-0", children: [
5999
- /* @__PURE__ */ jsx94("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
6000
- subtitle && /* @__PURE__ */ jsx94("p", { className: "truncate text-xs text-text-tertiary", children: subtitle })
6005
+ /* @__PURE__ */ jsxs64("div", { className: "min-w-0", children: [
6006
+ /* @__PURE__ */ jsx96("p", { className: "truncate text-sm font-semibold text-text-primary", children: name }),
6007
+ subtitle && /* @__PURE__ */ jsx96("p", { className: "truncate text-xs text-text-tertiary", children: subtitle })
6001
6008
  ] }),
6002
- /* @__PURE__ */ jsx94("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: controls })
6009
+ /* @__PURE__ */ jsx96("div", { className: "ml-auto flex shrink-0 items-center gap-2", children: controls })
6003
6010
  ]
6004
6011
  }
6005
6012
  );
@@ -6008,9 +6015,9 @@ var RequestRow = React77.forwardRef(
6008
6015
  RequestRow.displayName = "RequestRow";
6009
6016
 
6010
6017
  // src/components/feedback-button.tsx
6011
- import * as React78 from "react";
6018
+ import * as React80 from "react";
6012
6019
  import { MessageSquare, Loader2 as Loader23, CheckCircle2 } from "lucide-react";
6013
- import { jsx as jsx95, jsxs as jsxs63 } from "react/jsx-runtime";
6020
+ import { jsx as jsx97, jsxs as jsxs65 } from "react/jsx-runtime";
6014
6021
  var TITLE_MAX = 256;
6015
6022
  var DETAILS_MAX = 65536;
6016
6023
  var DEFAULT_LABELS = {
@@ -6024,15 +6031,15 @@ var DEFAULT_LABELS = {
6024
6031
  };
6025
6032
  function FeedbackButton({ onSubmit, labels, className }) {
6026
6033
  const l = { ...DEFAULT_LABELS, ...labels };
6027
- const uid = React78.useId();
6034
+ const uid = React80.useId();
6028
6035
  const titleId = `${uid}-title`;
6029
6036
  const detailsId = `${uid}-details`;
6030
6037
  const titleErrId = `${uid}-title-error`;
6031
6038
  const detailsErrId = `${uid}-details-error`;
6032
- const [open, setOpen] = React78.useState(false);
6033
- const [status, setStatus] = React78.useState("idle");
6034
- const [title, setTitle] = React78.useState("");
6035
- const [details, setDetails] = React78.useState("");
6039
+ const [open, setOpen] = React80.useState(false);
6040
+ const [status, setStatus] = React80.useState("idle");
6041
+ const [title, setTitle] = React80.useState("");
6042
+ const [details, setDetails] = React80.useState("");
6036
6043
  const titleTooLong = title.length > TITLE_MAX;
6037
6044
  const detailsTooLong = details.length > DETAILS_MAX;
6038
6045
  const titleEmpty = title.trim().length === 0;
@@ -6057,20 +6064,20 @@ function FeedbackButton({ onSubmit, labels, className }) {
6057
6064
  setStatus("error");
6058
6065
  }
6059
6066
  };
6060
- return /* @__PURE__ */ jsxs63(Popover, { open, onOpenChange: changeOpen, children: [
6061
- /* @__PURE__ */ jsx95(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs63(Button, { variant: "ghost", size: "sm", "aria-label": l.trigger, className, children: [
6062
- /* @__PURE__ */ jsx95(MessageSquare, { className: "size-4", "aria-hidden": "true" }),
6067
+ return /* @__PURE__ */ jsxs65(Popover, { open, onOpenChange: changeOpen, children: [
6068
+ /* @__PURE__ */ jsx97(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs65(Button, { variant: "ghost", size: "sm", "aria-label": l.trigger, className, children: [
6069
+ /* @__PURE__ */ jsx97(MessageSquare, { className: "size-4", "aria-hidden": "true" }),
6063
6070
  l.trigger
6064
6071
  ] }) }),
6065
- /* @__PURE__ */ jsx95(PopoverContent, { align: "end", side: "bottom", className: "w-80", children: status === "success" ? /* @__PURE__ */ jsxs63("div", { className: "flex flex-col items-center gap-3 py-2 text-center", children: [
6066
- /* @__PURE__ */ jsx95(CheckCircle2, { className: "size-8 text-text-success", "aria-hidden": "true" }),
6067
- /* @__PURE__ */ jsx95("p", { role: "status", className: "text-sm text-text-primary", children: l.success }),
6068
- /* @__PURE__ */ jsx95(Button, { variant: "outline", size: "sm", onClick: () => changeOpen(false), children: "Close" })
6069
- ] }) : /* @__PURE__ */ jsxs63("form", { onSubmit: handleSubmit, className: "flex flex-col gap-3", children: [
6070
- /* @__PURE__ */ jsx95("p", { className: "text-sm font-medium text-text-primary", children: l.title }),
6071
- /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-1.5", children: [
6072
- /* @__PURE__ */ jsx95(Label2, { htmlFor: titleId, children: l.titleField }),
6073
- /* @__PURE__ */ jsx95(
6072
+ /* @__PURE__ */ jsx97(PopoverContent, { align: "end", side: "bottom", className: "w-80", children: status === "success" ? /* @__PURE__ */ jsxs65("div", { className: "flex flex-col items-center gap-3 py-2 text-center", children: [
6073
+ /* @__PURE__ */ jsx97(CheckCircle2, { className: "size-8 text-text-success", "aria-hidden": "true" }),
6074
+ /* @__PURE__ */ jsx97("p", { role: "status", className: "text-sm text-text-primary", children: l.success }),
6075
+ /* @__PURE__ */ jsx97(Button, { variant: "outline", size: "sm", onClick: () => changeOpen(false), children: "Close" })
6076
+ ] }) : /* @__PURE__ */ jsxs65("form", { onSubmit: handleSubmit, className: "flex flex-col gap-3", children: [
6077
+ /* @__PURE__ */ jsx97("p", { className: "text-sm font-medium text-text-primary", children: l.title }),
6078
+ /* @__PURE__ */ jsxs65("div", { className: "flex flex-col gap-1.5", children: [
6079
+ /* @__PURE__ */ jsx97(Label2, { htmlFor: titleId, children: l.titleField }),
6080
+ /* @__PURE__ */ jsx97(
6074
6081
  Input,
6075
6082
  {
6076
6083
  id: titleId,
@@ -6081,16 +6088,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
6081
6088
  "aria-describedby": titleTooLong ? titleErrId : void 0
6082
6089
  }
6083
6090
  ),
6084
- titleTooLong && /* @__PURE__ */ jsxs63("p", { id: titleErrId, className: "text-xs text-text-danger", children: [
6091
+ titleTooLong && /* @__PURE__ */ jsxs65("p", { id: titleErrId, className: "text-xs text-text-danger", children: [
6085
6092
  l.titleField,
6086
6093
  " must be ",
6087
6094
  TITLE_MAX,
6088
6095
  " characters or fewer."
6089
6096
  ] })
6090
6097
  ] }),
6091
- /* @__PURE__ */ jsxs63("div", { className: "flex flex-col gap-1.5", children: [
6092
- /* @__PURE__ */ jsx95(Label2, { htmlFor: detailsId, children: l.detailsField }),
6093
- /* @__PURE__ */ jsx95(
6098
+ /* @__PURE__ */ jsxs65("div", { className: "flex flex-col gap-1.5", children: [
6099
+ /* @__PURE__ */ jsx97(Label2, { htmlFor: detailsId, children: l.detailsField }),
6100
+ /* @__PURE__ */ jsx97(
6094
6101
  Textarea,
6095
6102
  {
6096
6103
  id: detailsId,
@@ -6101,16 +6108,16 @@ function FeedbackButton({ onSubmit, labels, className }) {
6101
6108
  "aria-describedby": detailsTooLong ? detailsErrId : void 0
6102
6109
  }
6103
6110
  ),
6104
- detailsTooLong && /* @__PURE__ */ jsxs63("p", { id: detailsErrId, className: "text-xs text-text-danger", children: [
6111
+ detailsTooLong && /* @__PURE__ */ jsxs65("p", { id: detailsErrId, className: "text-xs text-text-danger", children: [
6105
6112
  l.detailsField,
6106
6113
  " must be ",
6107
6114
  DETAILS_MAX,
6108
6115
  " characters or fewer."
6109
6116
  ] })
6110
6117
  ] }),
6111
- status === "error" && /* @__PURE__ */ jsx95(InlineError, { children: l.error }),
6112
- /* @__PURE__ */ jsxs63(Button, { type: "submit", disabled: !valid || submitting, children: [
6113
- submitting && /* @__PURE__ */ jsx95(Loader23, { className: "size-4 animate-spin", "aria-hidden": "true" }),
6118
+ status === "error" && /* @__PURE__ */ jsx97(InlineError, { children: l.error }),
6119
+ /* @__PURE__ */ jsxs65(Button, { type: "submit", disabled: !valid || submitting, children: [
6120
+ submitting && /* @__PURE__ */ jsx97(Loader23, { className: "size-4 animate-spin", "aria-hidden": "true" }),
6114
6121
  l.submit
6115
6122
  ] })
6116
6123
  ] }) })
@@ -6166,28 +6173,30 @@ function isNotificationSettled(item) {
6166
6173
  }
6167
6174
 
6168
6175
  // src/components/notification-bell.tsx
6169
- import * as React80 from "react";
6176
+ import * as React82 from "react";
6170
6177
  import { BellRing, Settings } from "lucide-react";
6171
6178
 
6172
6179
  // src/components/notification-row.tsx
6173
- import * as React79 from "react";
6180
+ import * as React81 from "react";
6174
6181
 
6175
6182
  // src/components/notification-parts.tsx
6176
- import { Check as Check9 } from "lucide-react";
6177
- import { jsx as jsx96 } from "react/jsx-runtime";
6183
+ import { Check as Check10 } from "lucide-react";
6184
+ import { jsx as jsx98 } from "react/jsx-runtime";
6178
6185
  var rowControlHitArea = "relative after:absolute after:-inset-x-2 after:-top-1.5 after:-bottom-2.5";
6179
6186
  function rowControlName(label, title) {
6180
6187
  return `${label} "${title}"`;
6181
6188
  }
6182
6189
  function MarkReadButton({ title, onClick }) {
6183
- return /* @__PURE__ */ jsx96(
6184
- "button",
6190
+ const label = `Mark "${title}" as read`;
6191
+ return /* @__PURE__ */ jsx98(
6192
+ Button,
6185
6193
  {
6186
- type: "button",
6187
- "aria-label": `Mark "${title}" as read`,
6194
+ variant: "ghost",
6195
+ size: "xs",
6196
+ icon: /* @__PURE__ */ jsx98(Check10, {}),
6197
+ "aria-label": label,
6188
6198
  onClick,
6189
- className: "relative flex size-5 shrink-0 items-center justify-center rounded-md text-text-tertiary opacity-0 transition-opacity after:absolute after:-inset-3 hover:text-text-primary focus-visible:opacity-100 group-hover:opacity-100",
6190
- children: /* @__PURE__ */ jsx96(Check9, { className: "size-3.5", "aria-hidden": "true" })
6199
+ className: "relative text-text-secondary after:absolute after:-inset-3 hover:text-text-primary"
6191
6200
  }
6192
6201
  );
6193
6202
  }
@@ -6198,12 +6207,12 @@ function DeepLinkControl({
6198
6207
  onClick
6199
6208
  }) {
6200
6209
  const name = rowControlName(link.label, title);
6201
- return link.href ? /* @__PURE__ */ jsx96("a", { href: link.href, "aria-label": name, onClick, className, children: link.label }) : /* @__PURE__ */ jsx96("button", { type: "button", "aria-label": name, onClick, className, children: link.label });
6210
+ return link.href ? /* @__PURE__ */ jsx98("a", { href: link.href, "aria-label": name, onClick, className, children: link.label }) : /* @__PURE__ */ jsx98("button", { type: "button", "aria-label": name, onClick, className, children: link.label });
6202
6211
  }
6203
6212
 
6204
6213
  // src/components/notification-row.tsx
6205
- import { jsx as jsx97, jsxs as jsxs64 } from "react/jsx-runtime";
6206
- var NotificationRow = React79.forwardRef(
6214
+ import { jsx as jsx99, jsxs as jsxs66 } from "react/jsx-runtime";
6215
+ var NotificationRow = React81.forwardRef(
6207
6216
  ({ item, onItemClick, onActionClick, onMarkRead, formatAge, className, ...props }, ref) => {
6208
6217
  const settled = isNotificationSettled(item);
6209
6218
  const unread = !settled && !item.read;
@@ -6215,20 +6224,20 @@ var NotificationRow = React79.forwardRef(
6215
6224
  // Three steps of one ladder, and every one of them a token a reader can read:
6216
6225
  // unread is the loudest, read is quieter, settled is quietest. An opacity is
6217
6226
  // not a step — it drags the text under the contrast floor with the row.
6218
- /* @__PURE__ */ jsxs64(
6227
+ /* @__PURE__ */ jsxs66(
6219
6228
  "div",
6220
6229
  {
6221
6230
  ref,
6222
6231
  className: cn("group rounded-lg bg-bg-surface px-3 py-2.5", className),
6223
6232
  ...props,
6224
6233
  children: [
6225
- /* @__PURE__ */ jsxs64("div", { className: "flex items-start gap-2.5", children: [
6226
- /* @__PURE__ */ jsxs64("div", { className: "min-w-0 flex-1", children: [
6227
- /* @__PURE__ */ jsxs64("p", { className: "truncate text-xs text-text-tertiary", children: [
6228
- /* @__PURE__ */ jsx97("span", { className: "font-semibold uppercase tracking-wide text-text-secondary", children: item.source }),
6234
+ /* @__PURE__ */ jsxs66("div", { className: "flex items-start gap-2.5", children: [
6235
+ /* @__PURE__ */ jsxs66("div", { className: "min-w-0 flex-1", children: [
6236
+ /* @__PURE__ */ jsxs66("p", { className: "truncate text-xs text-text-tertiary", children: [
6237
+ /* @__PURE__ */ jsx99("span", { className: "font-semibold uppercase tracking-wide text-text-secondary", children: item.source }),
6229
6238
  item.receipt ? `, ${item.receipt}` : ""
6230
6239
  ] }),
6231
- /* @__PURE__ */ jsx97(
6240
+ /* @__PURE__ */ jsx99(
6232
6241
  "button",
6233
6242
  {
6234
6243
  type: "button",
@@ -6240,7 +6249,7 @@ var NotificationRow = React79.forwardRef(
6240
6249
  children: item.title
6241
6250
  }
6242
6251
  ),
6243
- item.body && /* @__PURE__ */ jsx97(
6252
+ item.body && /* @__PURE__ */ jsx99(
6244
6253
  "p",
6245
6254
  {
6246
6255
  className: cn(
@@ -6251,15 +6260,15 @@ var NotificationRow = React79.forwardRef(
6251
6260
  }
6252
6261
  )
6253
6262
  ] }),
6254
- (age || markable) && /* @__PURE__ */ jsxs64("div", { className: "mt-px flex shrink-0 items-center gap-1", children: [
6255
- stamp && age && /* @__PURE__ */ jsx97("time", { dateTime: toDateTimeAttribute(stamp), className: "text-xs text-text-tertiary", children: age }),
6256
- markable && /* @__PURE__ */ jsx97(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
6263
+ (age || markable) && /* @__PURE__ */ jsxs66("div", { className: "mt-px flex shrink-0 items-center gap-1", children: [
6264
+ stamp && age && /* @__PURE__ */ jsx99("time", { dateTime: toDateTimeAttribute(stamp), className: "text-xs text-text-tertiary", children: age }),
6265
+ markable && /* @__PURE__ */ jsx99(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
6257
6266
  ] })
6258
6267
  ] }),
6259
- (actions.length > 0 || item.deepLink) && /* @__PURE__ */ jsxs64("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
6268
+ (actions.length > 0 || item.deepLink) && /* @__PURE__ */ jsxs66("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
6260
6269
  actions.map((action) => {
6261
6270
  const chip = action.variant === "primary" || action.variant === "destructive";
6262
- return /* @__PURE__ */ jsx97(
6271
+ return /* @__PURE__ */ jsx99(
6263
6272
  "button",
6264
6273
  {
6265
6274
  type: "button",
@@ -6276,7 +6285,7 @@ var NotificationRow = React79.forwardRef(
6276
6285
  action.id
6277
6286
  );
6278
6287
  }),
6279
- item.deepLink && /* @__PURE__ */ jsx97(
6288
+ item.deepLink && /* @__PURE__ */ jsx99(
6280
6289
  DeepLinkControl,
6281
6290
  {
6282
6291
  link: item.deepLink,
@@ -6298,8 +6307,8 @@ var NotificationRow = React79.forwardRef(
6298
6307
  NotificationRow.displayName = "NotificationRow";
6299
6308
 
6300
6309
  // src/components/notification-bell.tsx
6301
- import { jsx as jsx98, jsxs as jsxs65 } from "react/jsx-runtime";
6302
- var NotificationBell = React80.forwardRef(
6310
+ import { jsx as jsx100, jsxs as jsxs67 } from "react/jsx-runtime";
6311
+ var NotificationBell = React82.forwardRef(
6303
6312
  ({
6304
6313
  items,
6305
6314
  unreadCount,
@@ -6319,8 +6328,8 @@ var NotificationBell = React80.forwardRef(
6319
6328
  const unread = unreadCount ?? items.filter((n) => !n.read && n.cls !== "ephemeral").length;
6320
6329
  const rows = items.slice(0, maxItems);
6321
6330
  const hidden = items.length - rows.length;
6322
- return /* @__PURE__ */ jsxs65(Popover, { open, onOpenChange, children: [
6323
- /* @__PURE__ */ jsx98(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs65(
6331
+ return /* @__PURE__ */ jsxs67(Popover, { open, onOpenChange, children: [
6332
+ /* @__PURE__ */ jsx100(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs67(
6324
6333
  "button",
6325
6334
  {
6326
6335
  ref,
@@ -6331,12 +6340,12 @@ var NotificationBell = React80.forwardRef(
6331
6340
  className
6332
6341
  ),
6333
6342
  children: [
6334
- /* @__PURE__ */ jsx98(BellRing, { className: "size-[18px]", "aria-hidden": "true" }),
6335
- unread > 0 && /* @__PURE__ */ jsx98("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 })
6343
+ /* @__PURE__ */ jsx100(BellRing, { className: "size-[18px]", "aria-hidden": "true" }),
6344
+ unread > 0 && /* @__PURE__ */ jsx100("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 })
6336
6345
  ]
6337
6346
  }
6338
6347
  ) }),
6339
- /* @__PURE__ */ jsxs65(
6348
+ /* @__PURE__ */ jsxs67(
6340
6349
  PopoverContent,
6341
6350
  {
6342
6351
  align: "end",
@@ -6344,10 +6353,10 @@ var NotificationBell = React80.forwardRef(
6344
6353
  style: { maxHeight: "var(--radix-popover-content-available-height, 32rem)" },
6345
6354
  className: "flex w-[380px] flex-col overflow-hidden p-0",
6346
6355
  children: [
6347
- /* @__PURE__ */ jsxs65("div", { className: "flex shrink-0 items-center justify-between px-5 py-3", children: [
6348
- /* @__PURE__ */ jsx98("span", { className: "text-sm font-bold text-text-primary", children: "Notification center" }),
6349
- /* @__PURE__ */ jsxs65("div", { className: "flex items-center gap-3", children: [
6350
- unread === 0 ? /* @__PURE__ */ jsx98("span", { className: "text-sm font-medium text-text-tertiary", children: "All read" }) : /* @__PURE__ */ jsx98(
6356
+ /* @__PURE__ */ jsxs67("div", { className: "flex shrink-0 items-center justify-between px-5 py-3", children: [
6357
+ /* @__PURE__ */ jsx100("span", { className: "text-sm font-bold text-text-primary", children: "Notification center" }),
6358
+ /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-3", children: [
6359
+ unread === 0 ? /* @__PURE__ */ jsx100("span", { className: "text-sm font-medium text-text-tertiary", children: "All read" }) : /* @__PURE__ */ jsx100(
6351
6360
  "button",
6352
6361
  {
6353
6362
  type: "button",
@@ -6356,19 +6365,19 @@ var NotificationBell = React80.forwardRef(
6356
6365
  children: "Mark all read"
6357
6366
  }
6358
6367
  ),
6359
- onOpenSettings && /* @__PURE__ */ jsx98(
6368
+ onOpenSettings && /* @__PURE__ */ jsx100(
6360
6369
  "button",
6361
6370
  {
6362
6371
  type: "button",
6363
6372
  "aria-label": "Notification settings",
6364
6373
  onClick: () => onOpenSettings(),
6365
6374
  className: "flex size-6 items-center justify-center rounded-md text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
6366
- children: /* @__PURE__ */ jsx98(Settings, { className: "size-[15px]", "aria-hidden": "true" })
6375
+ children: /* @__PURE__ */ jsx100(Settings, { className: "size-[15px]", "aria-hidden": "true" })
6367
6376
  }
6368
6377
  )
6369
6378
  ] })
6370
6379
  ] }),
6371
- /* @__PURE__ */ jsx98("div", { className: "min-h-0 flex-1 space-y-1.5 overflow-y-auto px-2 pb-2", children: rows.length === 0 ? /* @__PURE__ */ jsx98("p", { className: "px-3 py-12 text-center text-xs leading-relaxed text-text-tertiary", children: "Nothing yet. Everything addressed to you lands here." }) : rows.map((item) => /* @__PURE__ */ jsx98(
6380
+ /* @__PURE__ */ jsx100("div", { className: "min-h-0 flex-1 space-y-1.5 overflow-y-auto px-2 pb-2", children: rows.length === 0 ? /* @__PURE__ */ jsx100("p", { className: "px-3 py-12 text-center text-xs leading-relaxed text-text-tertiary", children: "Nothing yet. Everything addressed to you lands here." }) : rows.map((item) => /* @__PURE__ */ jsx100(
6372
6381
  NotificationRow,
6373
6382
  {
6374
6383
  item,
@@ -6379,8 +6388,8 @@ var NotificationBell = React80.forwardRef(
6379
6388
  },
6380
6389
  item.id
6381
6390
  )) }),
6382
- footer != null && /* @__PURE__ */ jsx98("div", { className: "shrink-0 px-5 py-2.5 text-xs text-text-tertiary", children: footer }),
6383
- items.length > 0 && onOpenArchive && /* @__PURE__ */ jsx98(
6391
+ footer != null && /* @__PURE__ */ jsx100("div", { className: "shrink-0 px-5 py-2.5 text-xs text-text-tertiary", children: footer }),
6392
+ items.length > 0 && onOpenArchive && /* @__PURE__ */ jsx100(
6384
6393
  "button",
6385
6394
  {
6386
6395
  type: "button",
@@ -6398,9 +6407,9 @@ var NotificationBell = React80.forwardRef(
6398
6407
  NotificationBell.displayName = "NotificationBell";
6399
6408
 
6400
6409
  // src/components/notification-center.tsx
6401
- import * as React81 from "react";
6402
- import { Check as Check10, Search as Search2 } from "lucide-react";
6403
- import { jsx as jsx99, jsxs as jsxs66 } from "react/jsx-runtime";
6410
+ import * as React83 from "react";
6411
+ import { Check as Check11, Search as Search2 } from "lucide-react";
6412
+ import { jsx as jsx101, jsxs as jsxs68 } from "react/jsx-runtime";
6404
6413
  var chipBase = "rounded-lg px-3 py-1.5 text-sm font-medium transition-colors";
6405
6414
  var chipOn = "bg-bg-brand-subtle text-text-brand";
6406
6415
  var chipOff = "bg-bg-elevated text-text-secondary hover:text-text-primary";
@@ -6415,12 +6424,12 @@ function CenterRow({
6415
6424
  const markable = Boolean(onMarkRead) && unread && item.cls !== "ephemeral";
6416
6425
  const stamp = item.createdAt ? item.createdAt instanceof Date ? item.createdAt : new Date(item.createdAt) : null;
6417
6426
  const age = stamp ? formatAge(stamp) : null;
6418
- return /* @__PURE__ */ jsxs66("article", { className: "group rounded-lg bg-bg-elevated px-4 py-3", children: [
6419
- /* @__PURE__ */ jsxs66("div", { className: "flex items-center gap-2", children: [
6420
- /* @__PURE__ */ jsx99("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
6421
- /* @__PURE__ */ jsx99(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
6422
- (age || markable) && /* @__PURE__ */ jsxs66("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
6423
- stamp && age && /* @__PURE__ */ jsx99(
6427
+ return /* @__PURE__ */ jsxs68("article", { className: "group rounded-lg bg-bg-elevated px-4 py-3", children: [
6428
+ /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
6429
+ /* @__PURE__ */ jsx101("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
6430
+ /* @__PURE__ */ jsx101(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
6431
+ (age || markable) && /* @__PURE__ */ jsxs68("div", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
6432
+ stamp && age && /* @__PURE__ */ jsx101(
6424
6433
  "time",
6425
6434
  {
6426
6435
  dateTime: toDateTimeAttribute(stamp),
@@ -6428,10 +6437,10 @@ function CenterRow({
6428
6437
  children: age
6429
6438
  }
6430
6439
  ),
6431
- markable && /* @__PURE__ */ jsx99(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
6440
+ markable && /* @__PURE__ */ jsx101(MarkReadButton, { title: item.title, onClick: () => onMarkRead(item.id) })
6432
6441
  ] })
6433
6442
  ] }),
6434
- /* @__PURE__ */ jsx99(
6443
+ /* @__PURE__ */ jsx101(
6435
6444
  "button",
6436
6445
  {
6437
6446
  type: "button",
@@ -6443,13 +6452,13 @@ function CenterRow({
6443
6452
  children: item.title
6444
6453
  }
6445
6454
  ),
6446
- item.body && /* @__PURE__ */ jsx99("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
6447
- (item.receipt || item.deepLink) && /* @__PURE__ */ jsxs66("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5", children: [
6448
- item.receipt && /* @__PURE__ */ jsxs66("span", { className: "inline-flex items-center gap-1.5 text-sm text-text-tertiary", children: [
6449
- /* @__PURE__ */ jsx99(Check10, { className: "size-3 shrink-0 text-text-success", "aria-hidden": "true" }),
6455
+ item.body && /* @__PURE__ */ jsx101("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
6456
+ (item.receipt || item.deepLink) && /* @__PURE__ */ jsxs68("div", { className: "mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5", children: [
6457
+ item.receipt && /* @__PURE__ */ jsxs68("span", { className: "inline-flex items-center gap-1.5 text-sm text-text-tertiary", children: [
6458
+ /* @__PURE__ */ jsx101(Check11, { className: "size-3 shrink-0 text-text-success", "aria-hidden": "true" }),
6450
6459
  item.receipt
6451
6460
  ] }),
6452
- item.deepLink && /* @__PURE__ */ jsx99(
6461
+ item.deepLink && /* @__PURE__ */ jsx101(
6453
6462
  DeepLinkControl,
6454
6463
  {
6455
6464
  link: item.deepLink,
@@ -6464,7 +6473,7 @@ function CenterRow({
6464
6473
  ] })
6465
6474
  ] });
6466
6475
  }
6467
- var NotificationCenter = React81.forwardRef(
6476
+ var NotificationCenter = React83.forwardRef(
6468
6477
  ({
6469
6478
  items,
6470
6479
  header = true,
@@ -6481,16 +6490,16 @@ var NotificationCenter = React81.forwardRef(
6481
6490
  formatAge,
6482
6491
  className
6483
6492
  }, ref) => {
6484
- const [status, setStatus] = React81.useState("all");
6485
- const [source, setSource] = React81.useState("all");
6486
- const [product, setProduct] = React81.useState("all");
6487
- const [query, setQuery] = React81.useState("");
6488
- const [limit, setLimit] = React81.useState(pageSize);
6489
- const age = React81.useCallback(
6493
+ const [status, setStatus] = React83.useState("all");
6494
+ const [source, setSource] = React83.useState("all");
6495
+ const [product, setProduct] = React83.useState("all");
6496
+ const [query, setQuery] = React83.useState("");
6497
+ const [limit, setLimit] = React83.useState(pageSize);
6498
+ const age = React83.useCallback(
6490
6499
  (createdAt) => formatAge ? formatAge(createdAt) : formatRelativeAge(createdAt),
6491
6500
  [formatAge]
6492
6501
  );
6493
- const sourceChips = React81.useMemo(
6502
+ const sourceChips = React83.useMemo(
6494
6503
  () => sources ?? Array.from(new Set(items.map((n) => n.source))),
6495
6504
  [sources, items]
6496
6505
  );
@@ -6501,13 +6510,13 @@ var NotificationCenter = React81.forwardRef(
6501
6510
  const shown = matched.slice(0, limit);
6502
6511
  const remaining = matched.length - shown.length;
6503
6512
  const filtering = q !== "" || status !== "all" || source !== "all" || product !== "all";
6504
- return /* @__PURE__ */ jsxs66("div", { ref, className: cn("mx-auto max-w-[560px]", className), children: [
6505
- (header || onMarkAllRead) && /* @__PURE__ */ jsxs66("div", { className: cn("mb-4 flex items-start gap-4", !header && "justify-end"), children: [
6506
- header && /* @__PURE__ */ jsxs66("div", { className: "min-w-0 flex-1", children: [
6507
- /* @__PURE__ */ jsx99("h1", { className: "mb-1.5 text-2xl font-semibold tracking-tight text-text-primary", children: title }),
6508
- description && /* @__PURE__ */ jsx99("p", { className: "text-sm text-text-tertiary", children: description })
6513
+ return /* @__PURE__ */ jsxs68("div", { ref, className: cn("mx-auto max-w-[560px]", className), children: [
6514
+ (header || onMarkAllRead) && /* @__PURE__ */ jsxs68("div", { className: cn("mb-4 flex items-start gap-4", !header && "justify-end"), children: [
6515
+ header && /* @__PURE__ */ jsxs68("div", { className: "min-w-0 flex-1", children: [
6516
+ /* @__PURE__ */ jsx101("h1", { className: "mb-1.5 text-2xl font-semibold tracking-tight text-text-primary", children: title }),
6517
+ description && /* @__PURE__ */ jsx101("p", { className: "text-sm text-text-tertiary", children: description })
6509
6518
  ] }),
6510
- onMarkAllRead && /* @__PURE__ */ jsx99(
6519
+ onMarkAllRead && /* @__PURE__ */ jsx101(
6511
6520
  "button",
6512
6521
  {
6513
6522
  type: "button",
@@ -6517,9 +6526,9 @@ var NotificationCenter = React81.forwardRef(
6517
6526
  }
6518
6527
  )
6519
6528
  ] }),
6520
- searchable && /* @__PURE__ */ jsxs66("div", { className: "mb-3 flex items-center gap-2 rounded-lg bg-bg-elevated px-3 py-2", children: [
6521
- /* @__PURE__ */ jsx99(Search2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
6522
- /* @__PURE__ */ jsx99(
6529
+ searchable && /* @__PURE__ */ jsxs68("div", { className: "mb-3 flex items-center gap-2 rounded-lg bg-bg-elevated px-3 py-2", children: [
6530
+ /* @__PURE__ */ jsx101(Search2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
6531
+ /* @__PURE__ */ jsx101(
6523
6532
  "input",
6524
6533
  {
6525
6534
  type: "text",
@@ -6530,8 +6539,8 @@ var NotificationCenter = React81.forwardRef(
6530
6539
  }
6531
6540
  )
6532
6541
  ] }),
6533
- /* @__PURE__ */ jsxs66("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
6534
- /* @__PURE__ */ jsx99(
6542
+ /* @__PURE__ */ jsxs68("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
6543
+ /* @__PURE__ */ jsx101(
6535
6544
  "button",
6536
6545
  {
6537
6546
  type: "button",
@@ -6540,7 +6549,7 @@ var NotificationCenter = React81.forwardRef(
6540
6549
  children: "All"
6541
6550
  }
6542
6551
  ),
6543
- /* @__PURE__ */ jsx99(
6552
+ /* @__PURE__ */ jsx101(
6544
6553
  "button",
6545
6554
  {
6546
6555
  type: "button",
@@ -6550,8 +6559,8 @@ var NotificationCenter = React81.forwardRef(
6550
6559
  }
6551
6560
  )
6552
6561
  ] }),
6553
- /* @__PURE__ */ jsxs66("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
6554
- /* @__PURE__ */ jsx99(
6562
+ /* @__PURE__ */ jsxs68("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [
6563
+ /* @__PURE__ */ jsx101(
6555
6564
  "button",
6556
6565
  {
6557
6566
  type: "button",
@@ -6560,7 +6569,7 @@ var NotificationCenter = React81.forwardRef(
6560
6569
  children: "All sources"
6561
6570
  }
6562
6571
  ),
6563
- sourceChips.map((s) => /* @__PURE__ */ jsx99(
6572
+ sourceChips.map((s) => /* @__PURE__ */ jsx101(
6564
6573
  "button",
6565
6574
  {
6566
6575
  type: "button",
@@ -6571,8 +6580,8 @@ var NotificationCenter = React81.forwardRef(
6571
6580
  s
6572
6581
  ))
6573
6582
  ] }),
6574
- products && products.length > 0 && /* @__PURE__ */ jsxs66("div", { className: "mb-4 flex flex-wrap gap-1.5", children: [
6575
- /* @__PURE__ */ jsx99(
6583
+ products && products.length > 0 && /* @__PURE__ */ jsxs68("div", { className: "mb-4 flex flex-wrap gap-1.5", children: [
6584
+ /* @__PURE__ */ jsx101(
6576
6585
  "button",
6577
6586
  {
6578
6587
  type: "button",
@@ -6581,7 +6590,7 @@ var NotificationCenter = React81.forwardRef(
6581
6590
  children: "All products"
6582
6591
  }
6583
6592
  ),
6584
- products.map((p) => /* @__PURE__ */ jsx99(
6593
+ products.map((p) => /* @__PURE__ */ jsx101(
6585
6594
  "button",
6586
6595
  {
6587
6596
  type: "button",
@@ -6592,8 +6601,8 @@ var NotificationCenter = React81.forwardRef(
6592
6601
  p.id
6593
6602
  ))
6594
6603
  ] }),
6595
- shown.length === 0 ? /* @__PURE__ */ jsx99("p", { className: "rounded-xl bg-bg-elevated px-4 py-10 text-center text-sm leading-relaxed text-text-tertiary", children: filtering ? "Nothing matches." : "Nothing here yet. Everything addressed to you lands here." }) : /* @__PURE__ */ jsxs66("div", { className: "flex flex-col gap-1.5", children: [
6596
- shown.map((item) => /* @__PURE__ */ jsx99(
6604
+ shown.length === 0 ? /* @__PURE__ */ jsx101("p", { className: "rounded-xl bg-bg-elevated px-4 py-10 text-center text-sm leading-relaxed text-text-tertiary", children: filtering ? "Nothing matches." : "Nothing here yet. Everything addressed to you lands here." }) : /* @__PURE__ */ jsxs68("div", { className: "flex flex-col gap-1.5", children: [
6605
+ shown.map((item) => /* @__PURE__ */ jsx101(
6597
6606
  CenterRow,
6598
6607
  {
6599
6608
  item,
@@ -6604,7 +6613,7 @@ var NotificationCenter = React81.forwardRef(
6604
6613
  },
6605
6614
  item.id
6606
6615
  )),
6607
- remaining > 0 && /* @__PURE__ */ jsxs66(
6616
+ remaining > 0 && /* @__PURE__ */ jsxs68(
6608
6617
  "button",
6609
6618
  {
6610
6619
  type: "button",
@@ -6624,9 +6633,9 @@ var NotificationCenter = React81.forwardRef(
6624
6633
  NotificationCenter.displayName = "NotificationCenter";
6625
6634
 
6626
6635
  // src/components/notification-settings.tsx
6627
- import * as React82 from "react";
6636
+ import * as React84 from "react";
6628
6637
  import { Moon as Moon2, Plus as Plus3, Volume2 } from "lucide-react";
6629
- import { Fragment as Fragment14, jsx as jsx100, jsxs as jsxs67 } from "react/jsx-runtime";
6638
+ import { Fragment as Fragment14, jsx as jsx102, jsxs as jsxs69 } from "react/jsx-runtime";
6630
6639
  var THRESHOLDS = [
6631
6640
  ["everything", "Everything"],
6632
6641
  ["important", "Important"],
@@ -6638,13 +6647,13 @@ function ThresholdControl({
6638
6647
  value,
6639
6648
  onChange
6640
6649
  }) {
6641
- return /* @__PURE__ */ jsx100(
6650
+ return /* @__PURE__ */ jsx102(
6642
6651
  "span",
6643
6652
  {
6644
6653
  role: "group",
6645
6654
  "aria-label": `Interrupt me for ${label}`,
6646
6655
  className: "inline-flex shrink-0 rounded-lg border border-border-subtle bg-transparent p-0.5",
6647
- children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */ jsx100(
6656
+ children: THRESHOLDS.map(([threshold, text]) => /* @__PURE__ */ jsx102(
6648
6657
  "button",
6649
6658
  {
6650
6659
  type: "button",
@@ -6661,7 +6670,7 @@ function ThresholdControl({
6661
6670
  }
6662
6671
  );
6663
6672
  }
6664
- var NotificationSettings = React82.forwardRef(
6673
+ var NotificationSettings = React84.forwardRef(
6665
6674
  ({
6666
6675
  subscriptions,
6667
6676
  value,
@@ -6674,7 +6683,7 @@ var NotificationSettings = React82.forwardRef(
6674
6683
  pushSlot,
6675
6684
  className
6676
6685
  }, ref) => {
6677
- const [tab, setTab] = React82.useState(DEFAULT_KEY);
6686
+ const [tab, setTab] = React84.useState(DEFAULT_KEY);
6678
6687
  const isDefault = tab === DEFAULT_KEY;
6679
6688
  const defaults = value[DEFAULT_KEY] ?? { thresholds: {} };
6680
6689
  const customized = !isDefault && Object.prototype.hasOwnProperty.call(value, tab);
@@ -6694,15 +6703,15 @@ var NotificationSettings = React82.forwardRef(
6694
6703
  const scopeGroup = (scope) => {
6695
6704
  const rows = subscriptions.filter((s) => s.scope === scope);
6696
6705
  if (rows.length === 0) return null;
6697
- return /* @__PURE__ */ jsxs67("div", { children: [
6698
- /* @__PURE__ */ jsx100("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: scope === "product" ? "This product" : "Organization" }),
6699
- /* @__PURE__ */ jsx100("div", { className: "space-y-2", children: rows.map((sub) => /* @__PURE__ */ jsxs67(
6706
+ return /* @__PURE__ */ jsxs69("div", { children: [
6707
+ /* @__PURE__ */ jsx102("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: scope === "product" ? "This product" : "Organization" }),
6708
+ /* @__PURE__ */ jsx102("div", { className: "space-y-2", children: rows.map((sub) => /* @__PURE__ */ jsxs69(
6700
6709
  "div",
6701
6710
  {
6702
6711
  className: "flex items-center gap-4 rounded-xl bg-bg-elevated px-4 py-3",
6703
6712
  children: [
6704
- /* @__PURE__ */ jsx100("p", { className: "min-w-0 flex-1 text-sm font-semibold text-text-primary", children: sub.name }),
6705
- /* @__PURE__ */ jsx100(
6713
+ /* @__PURE__ */ jsx102("p", { className: "min-w-0 flex-1 text-sm font-semibold text-text-primary", children: sub.name }),
6714
+ /* @__PURE__ */ jsx102(
6706
6715
  ThresholdControl,
6707
6716
  {
6708
6717
  label: sub.name,
@@ -6716,10 +6725,10 @@ var NotificationSettings = React82.forwardRef(
6716
6725
  )) })
6717
6726
  ] }, scope);
6718
6727
  };
6719
- return /* @__PURE__ */ jsxs67("div", { ref, className: cn("space-y-5", className), children: [
6720
- products && products.length > 0 && /* @__PURE__ */ jsxs67("div", { children: [
6721
- /* @__PURE__ */ jsx100("p", { className: "mb-2 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Preferences for" }),
6722
- /* @__PURE__ */ jsx100("div", { className: "flex flex-wrap gap-2", children: [{ id: DEFAULT_KEY, label: "Default" }, ...products].map((t) => /* @__PURE__ */ jsx100(
6728
+ return /* @__PURE__ */ jsxs69("div", { ref, className: cn("space-y-5", className), children: [
6729
+ products && products.length > 0 && /* @__PURE__ */ jsxs69("div", { children: [
6730
+ /* @__PURE__ */ jsx102("p", { className: "mb-2 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Preferences for" }),
6731
+ /* @__PURE__ */ jsx102("div", { className: "flex flex-wrap gap-2", children: [{ id: DEFAULT_KEY, label: "Default" }, ...products].map((t) => /* @__PURE__ */ jsx102(
6723
6732
  "button",
6724
6733
  {
6725
6734
  type: "button",
@@ -6734,26 +6743,26 @@ var NotificationSettings = React82.forwardRef(
6734
6743
  t.id
6735
6744
  )) })
6736
6745
  ] }),
6737
- isDefault ? /* @__PURE__ */ jsxs67(Fragment14, { children: [
6738
- /* @__PURE__ */ jsx100("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." }),
6739
- /* @__PURE__ */ jsxs67(Card, { className: "border-none bg-bg-elevated p-5", children: [
6740
- /* @__PURE__ */ jsx100("p", { className: "mb-1.5 text-xs font-bold uppercase tracking-wide text-text-tertiary", children: "Push to" }),
6741
- /* @__PURE__ */ jsx100("p", { className: "mb-3 text-sm leading-relaxed text-text-secondary", children: "Forward notifications beyond the in-app record to a connected integration." }),
6742
- pushSlot ?? /* @__PURE__ */ jsx100("div", { className: "rounded-lg bg-bg-surface px-4 py-6 text-center", children: /* @__PURE__ */ jsx100("p", { className: "text-sm text-text-tertiary", children: "No integrations connected." }) })
6746
+ isDefault ? /* @__PURE__ */ jsxs69(Fragment14, { children: [
6747
+ /* @__PURE__ */ jsx102("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." }),
6748
+ /* @__PURE__ */ jsxs69(Card, { className: "border-none bg-bg-elevated p-5", children: [
6749
+ /* @__PURE__ */ jsx102("p", { className: "mb-1.5 text-xs font-bold uppercase tracking-wide text-text-tertiary", children: "Push to" }),
6750
+ /* @__PURE__ */ jsx102("p", { className: "mb-3 text-sm leading-relaxed text-text-secondary", children: "Forward notifications beyond the in-app record to a connected integration." }),
6751
+ pushSlot ?? /* @__PURE__ */ jsx102("div", { className: "rounded-lg bg-bg-surface px-4 py-6 text-center", children: /* @__PURE__ */ jsx102("p", { className: "text-sm text-text-tertiary", children: "No integrations connected." }) })
6743
6752
  ] }),
6744
- mutes.length > 0 && /* @__PURE__ */ jsxs67("div", { children: [
6745
- /* @__PURE__ */ jsx100("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Muted" }),
6746
- /* @__PURE__ */ jsx100(Card, { className: "border-none bg-bg-elevated p-2", children: mutes.map((m) => /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-3 rounded-lg px-3 py-2.5", children: [
6747
- /* @__PURE__ */ jsx100(Moon2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
6748
- /* @__PURE__ */ jsxs67("div", { className: "min-w-0 flex-1", children: [
6749
- /* @__PURE__ */ jsx100("p", { className: "text-sm font-medium text-text-primary", children: m.source }),
6750
- /* @__PURE__ */ jsxs67("p", { className: "text-sm text-text-tertiary", children: [
6753
+ mutes.length > 0 && /* @__PURE__ */ jsxs69("div", { children: [
6754
+ /* @__PURE__ */ jsx102("p", { className: "mb-1.5 px-0.5 text-xs font-bold uppercase tracking-wider text-text-tertiary", children: "Muted" }),
6755
+ /* @__PURE__ */ jsx102(Card, { className: "border-none bg-bg-elevated p-2", children: mutes.map((m) => /* @__PURE__ */ jsxs69("div", { className: "flex items-center gap-3 rounded-lg px-3 py-2.5", children: [
6756
+ /* @__PURE__ */ jsx102(Moon2, { className: "size-4 shrink-0 text-text-tertiary", "aria-hidden": "true" }),
6757
+ /* @__PURE__ */ jsxs69("div", { className: "min-w-0 flex-1", children: [
6758
+ /* @__PURE__ */ jsx102("p", { className: "text-sm font-medium text-text-primary", children: m.source }),
6759
+ /* @__PURE__ */ jsxs69("p", { className: "text-sm text-text-tertiary", children: [
6751
6760
  "Muted \u2014 ",
6752
6761
  m.label,
6753
6762
  ". Critical still comes through."
6754
6763
  ] })
6755
6764
  ] }),
6756
- /* @__PURE__ */ jsx100(
6765
+ /* @__PURE__ */ jsx102(
6757
6766
  "button",
6758
6767
  {
6759
6768
  type: "button",
@@ -6766,13 +6775,13 @@ var NotificationSettings = React82.forwardRef(
6766
6775
  ] }),
6767
6776
  scopeGroup("product"),
6768
6777
  scopeGroup("org"),
6769
- onSoundEnabledChange && /* @__PURE__ */ jsx100(Card, { className: "border-none bg-bg-elevated p-4", children: /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-3", children: [
6770
- /* @__PURE__ */ jsx100(Volume2, { className: "size-4 text-text-tertiary", "aria-hidden": "true" }),
6771
- /* @__PURE__ */ jsxs67("div", { className: "flex-1", children: [
6772
- /* @__PURE__ */ jsx100("p", { className: "text-sm font-medium text-text-primary", children: "Notification sound" }),
6773
- /* @__PURE__ */ jsx100("p", { className: "text-sm text-text-tertiary", children: "Play a tone when a notification arrives. Critical always chimes." })
6778
+ onSoundEnabledChange && /* @__PURE__ */ jsx102(Card, { className: "border-none bg-bg-elevated p-4", children: /* @__PURE__ */ jsxs69("div", { className: "flex items-center gap-3", children: [
6779
+ /* @__PURE__ */ jsx102(Volume2, { className: "size-4 text-text-tertiary", "aria-hidden": "true" }),
6780
+ /* @__PURE__ */ jsxs69("div", { className: "flex-1", children: [
6781
+ /* @__PURE__ */ jsx102("p", { className: "text-sm font-medium text-text-primary", children: "Notification sound" }),
6782
+ /* @__PURE__ */ jsx102("p", { className: "text-sm text-text-tertiary", children: "Play a tone when a notification arrives. Critical always chimes." })
6774
6783
  ] }),
6775
- /* @__PURE__ */ jsx100(
6784
+ /* @__PURE__ */ jsx102(
6776
6785
  Switch,
6777
6786
  {
6778
6787
  checked: soundEnabled ?? false,
@@ -6781,35 +6790,35 @@ var NotificationSettings = React82.forwardRef(
6781
6790
  }
6782
6791
  )
6783
6792
  ] }) })
6784
- ] }) : !customized ? /* @__PURE__ */ jsxs67(Card, { className: "border-none bg-bg-elevated p-8 text-center", children: [
6785
- /* @__PURE__ */ jsxs67("p", { className: "text-sm font-semibold text-text-primary", children: [
6793
+ ] }) : !customized ? /* @__PURE__ */ jsxs69(Card, { className: "border-none bg-bg-elevated p-8 text-center", children: [
6794
+ /* @__PURE__ */ jsxs69("p", { className: "text-sm font-semibold text-text-primary", children: [
6786
6795
  productLabel,
6787
6796
  " follows your Default preferences."
6788
6797
  ] }),
6789
- /* @__PURE__ */ jsx100("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." }),
6790
- /* @__PURE__ */ jsxs67(
6798
+ /* @__PURE__ */ jsx102("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." }),
6799
+ /* @__PURE__ */ jsxs69(
6791
6800
  "button",
6792
6801
  {
6793
6802
  type: "button",
6794
6803
  onClick: customize,
6795
6804
  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",
6796
6805
  children: [
6797
- /* @__PURE__ */ jsx100(Plus3, { className: "size-4", "aria-hidden": "true" }),
6806
+ /* @__PURE__ */ jsx102(Plus3, { className: "size-4", "aria-hidden": "true" }),
6798
6807
  " Customize for ",
6799
6808
  productLabel
6800
6809
  ]
6801
6810
  }
6802
6811
  )
6803
- ] }) : /* @__PURE__ */ jsxs67(Fragment14, { children: [
6804
- /* @__PURE__ */ jsx100(Card, { className: "border-none bg-bg-brand-subtle p-3.5", children: /* @__PURE__ */ jsxs67("div", { className: "flex items-center gap-3", children: [
6805
- /* @__PURE__ */ jsxs67("div", { className: "min-w-0 flex-1", children: [
6806
- /* @__PURE__ */ jsxs67("p", { className: "text-sm font-semibold text-text-brand", children: [
6812
+ ] }) : /* @__PURE__ */ jsxs69(Fragment14, { children: [
6813
+ /* @__PURE__ */ jsx102(Card, { className: "border-none bg-bg-brand-subtle p-3.5", children: /* @__PURE__ */ jsxs69("div", { className: "flex items-center gap-3", children: [
6814
+ /* @__PURE__ */ jsxs69("div", { className: "min-w-0 flex-1", children: [
6815
+ /* @__PURE__ */ jsxs69("p", { className: "text-sm font-semibold text-text-brand", children: [
6807
6816
  "Custom preferences for ",
6808
6817
  productLabel
6809
6818
  ] }),
6810
- /* @__PURE__ */ jsx100("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Only the interrupt thresholds below differ. Sound and forwarding follow Default." })
6819
+ /* @__PURE__ */ jsx102("p", { className: "text-sm leading-relaxed text-text-secondary", children: "Only the interrupt thresholds below differ. Sound and forwarding follow Default." })
6811
6820
  ] }),
6812
- /* @__PURE__ */ jsx100(
6821
+ /* @__PURE__ */ jsx102(
6813
6822
  "button",
6814
6823
  {
6815
6824
  type: "button",
@@ -6827,14 +6836,14 @@ var NotificationSettings = React82.forwardRef(
6827
6836
  NotificationSettings.displayName = "NotificationSettings";
6828
6837
 
6829
6838
  // src/components/notification-toast.tsx
6830
- import * as React83 from "react";
6839
+ import * as React85 from "react";
6831
6840
  import { X as X5 } from "lucide-react";
6832
- import { jsx as jsx101, jsxs as jsxs68 } from "react/jsx-runtime";
6841
+ import { jsx as jsx103, jsxs as jsxs70 } from "react/jsx-runtime";
6833
6842
  var chipBase2 = "rounded-lg px-2.5 py-1 text-sm font-medium transition-colors";
6834
6843
  var chipPrimary = "bg-bg-brand text-text-on-brand hover:bg-bg-brand-hover";
6835
6844
  var chipDestructive = "bg-bg-elevated text-text-danger hover:bg-bg-surface";
6836
6845
  var linkAction = "text-sm font-semibold text-text-brand transition-colors hover:text-text-primary";
6837
- var NotificationToast = React83.forwardRef(
6846
+ var NotificationToast = React85.forwardRef(
6838
6847
  ({
6839
6848
  item,
6840
6849
  showSource = true,
@@ -6851,9 +6860,9 @@ var NotificationToast = React83.forwardRef(
6851
6860
  const actions = item.actions ?? [];
6852
6861
  const percent = progress === void 0 || !Number.isFinite(progress) ? void 0 : Math.min(100, Math.max(0, progress));
6853
6862
  const progressLine = progressLabel === void 0 && percent !== void 0 ? `live, ${Math.round(percent)}%` : progressLabel;
6854
- const barId = React83.useId();
6863
+ const barId = React85.useId();
6855
6864
  const hasProgressLine = progressLine !== null && progressLine !== void 0;
6856
- return /* @__PURE__ */ jsxs68(
6865
+ return /* @__PURE__ */ jsxs70(
6857
6866
  "div",
6858
6867
  {
6859
6868
  ref,
@@ -6864,24 +6873,24 @@ var NotificationToast = React83.forwardRef(
6864
6873
  className
6865
6874
  ),
6866
6875
  children: [
6867
- /* @__PURE__ */ jsxs68("div", { className: "flex items-center gap-2", children: [
6868
- showSource && /* @__PURE__ */ jsx101("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
6869
- /* @__PURE__ */ jsx101(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
6870
- (overflow || onDismiss) && /* @__PURE__ */ jsxs68("span", { className: "-mr-1 ml-auto flex shrink-0 items-center gap-1", children: [
6876
+ /* @__PURE__ */ jsxs70("div", { className: "flex items-center gap-2", children: [
6877
+ showSource && /* @__PURE__ */ jsx103("span", { className: "text-xs font-semibold uppercase tracking-[0.09em] text-text-secondary", children: item.source }),
6878
+ /* @__PURE__ */ jsx103(Badge, { variant: severityBadgeVariant(item.severity), children: severityLabels[item.severity] }),
6879
+ (overflow || onDismiss) && /* @__PURE__ */ jsxs70("span", { className: "-mr-1 ml-auto flex shrink-0 items-center gap-1", children: [
6871
6880
  overflow,
6872
- onDismiss && /* @__PURE__ */ jsx101(
6881
+ onDismiss && /* @__PURE__ */ jsx103(
6873
6882
  "button",
6874
6883
  {
6875
6884
  type: "button",
6876
6885
  "aria-label": dismissLabel,
6877
6886
  onClick: () => onDismiss(item),
6878
6887
  className: "flex size-5 shrink-0 items-center justify-center rounded-md text-text-tertiary transition-colors hover:bg-bg-surface hover:text-text-primary",
6879
- children: /* @__PURE__ */ jsx101(X5, { className: "size-3.5", "aria-hidden": "true" })
6888
+ children: /* @__PURE__ */ jsx103(X5, { className: "size-3.5", "aria-hidden": "true" })
6880
6889
  }
6881
6890
  )
6882
6891
  ] })
6883
6892
  ] }),
6884
- onItemClick ? /* @__PURE__ */ jsx101(
6893
+ onItemClick ? /* @__PURE__ */ jsx103(
6885
6894
  "button",
6886
6895
  {
6887
6896
  type: "button",
@@ -6889,15 +6898,15 @@ var NotificationToast = React83.forwardRef(
6889
6898
  className: "mt-1 block text-left text-sm font-semibold leading-snug text-text-primary underline-offset-2 hover:underline",
6890
6899
  children: item.title
6891
6900
  }
6892
- ) : /* @__PURE__ */ jsx101("p", { className: "mt-1 text-sm font-semibold leading-snug text-text-primary", children: item.title }),
6893
- item.body && /* @__PURE__ */ jsx101("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
6894
- note && /* @__PURE__ */ jsx101("p", { className: "mt-1.5 text-xs font-medium text-text-warning", children: note }),
6901
+ ) : /* @__PURE__ */ jsx103("p", { className: "mt-1 text-sm font-semibold leading-snug text-text-primary", children: item.title }),
6902
+ item.body && /* @__PURE__ */ jsx103("p", { className: "mt-0.5 text-sm leading-snug text-text-secondary", children: item.body }),
6903
+ note && /* @__PURE__ */ jsx103("p", { className: "mt-1.5 text-xs font-medium text-text-warning", children: note }),
6895
6904
  percent !== void 0 && // The card is a `role="status"`, which implies `aria-atomic` — every tick of the bar would
6896
6905
  // otherwise re-announce the whole card. `aria-live="off"` on the subtree that moves is the
6897
6906
  // one cheap mitigation: the bar stays in the accessibility tree to be read on demand, it
6898
6907
  // just stops interrupting.
6899
- /* @__PURE__ */ jsxs68("div", { className: "mt-2", "aria-live": "off", children: [
6900
- /* @__PURE__ */ jsx101(
6908
+ /* @__PURE__ */ jsxs70("div", { className: "mt-2", "aria-live": "off", children: [
6909
+ /* @__PURE__ */ jsx103(
6901
6910
  Progress,
6902
6911
  {
6903
6912
  value: percent,
@@ -6906,11 +6915,11 @@ var NotificationToast = React83.forwardRef(
6906
6915
  "aria-label": hasProgressLine ? void 0 : "Progress"
6907
6916
  }
6908
6917
  ),
6909
- hasProgressLine && /* @__PURE__ */ jsx101("p", { id: barId, className: "mt-0.5 text-xs text-text-secondary", children: progressLine })
6918
+ hasProgressLine && /* @__PURE__ */ jsx103("p", { id: barId, className: "mt-0.5 text-xs text-text-secondary", children: progressLine })
6910
6919
  ] }),
6911
- actions.length > 0 && /* @__PURE__ */ jsx101("div", { className: "mt-2.5 flex flex-wrap items-center gap-2", children: actions.map((action) => {
6920
+ actions.length > 0 && /* @__PURE__ */ jsx103("div", { className: "mt-2.5 flex flex-wrap items-center gap-2", children: actions.map((action) => {
6912
6921
  const variant = action.variant ?? "link";
6913
- return /* @__PURE__ */ jsx101(
6922
+ return /* @__PURE__ */ jsx103(
6914
6923
  "button",
6915
6924
  {
6916
6925
  type: "button",
@@ -6929,15 +6938,15 @@ var NotificationToast = React83.forwardRef(
6929
6938
  NotificationToast.displayName = "NotificationToast";
6930
6939
 
6931
6940
  // src/components/notification-toaster.tsx
6932
- import * as React84 from "react";
6933
- import { jsx as jsx102 } from "react/jsx-runtime";
6941
+ import * as React86 from "react";
6942
+ import { jsx as jsx104 } from "react/jsx-runtime";
6934
6943
  var positions = {
6935
6944
  "bottom-right": "bottom-6 right-6 flex-col",
6936
6945
  "bottom-left": "bottom-6 left-6 flex-col",
6937
6946
  "top-right": "top-6 right-6 flex-col-reverse",
6938
6947
  "top-left": "top-6 left-6 flex-col-reverse"
6939
6948
  };
6940
- var NotificationToaster = React84.forwardRef(
6949
+ var NotificationToaster = React86.forwardRef(
6941
6950
  ({
6942
6951
  items,
6943
6952
  dwell,
@@ -6954,15 +6963,15 @@ var NotificationToaster = React84.forwardRef(
6954
6963
  className
6955
6964
  }, ref) => {
6956
6965
  const shown = items.slice(0, max);
6957
- const [paused, setPaused] = React84.useState(false);
6958
- const onDismissRef = React84.useRef(onDismiss);
6966
+ const [paused, setPaused] = React86.useState(false);
6967
+ const onDismissRef = React86.useRef(onDismiss);
6959
6968
  onDismissRef.current = onDismiss;
6960
6969
  const fyiDwell = dwell?.fyi;
6961
6970
  const importantDwell = dwell?.important;
6962
6971
  const criticalDwell = dwell?.critical;
6963
- const remaining = React84.useRef(/* @__PURE__ */ new Map());
6972
+ const remaining = React86.useRef(/* @__PURE__ */ new Map());
6964
6973
  const liveIds = shown.map((item) => `${item.id}:${item.severity}`).join(" ");
6965
- React84.useEffect(() => {
6974
+ React86.useEffect(() => {
6966
6975
  const owedById = remaining.current;
6967
6976
  const dwellSeconds = {
6968
6977
  fyi: fyiDwell ?? TOAST_DWELL.fyi,
@@ -7003,7 +7012,7 @@ var NotificationToaster = React84.forwardRef(
7003
7012
  };
7004
7013
  }, [liveIds, paused, fyiDwell, importantDwell, criticalDwell]);
7005
7014
  if (shown.length === 0) return null;
7006
- return /* @__PURE__ */ jsx102(
7015
+ return /* @__PURE__ */ jsx104(
7007
7016
  "div",
7008
7017
  {
7009
7018
  ref,
@@ -7016,7 +7025,7 @@ var NotificationToaster = React84.forwardRef(
7016
7025
  positions[position],
7017
7026
  className
7018
7027
  ),
7019
- children: shown.map((item, i) => /* @__PURE__ */ jsx102("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx102(
7028
+ children: shown.map((item, i) => /* @__PURE__ */ jsx104("div", { className: "pointer-events-auto", children: /* @__PURE__ */ jsx104(
7020
7029
  NotificationToast,
7021
7030
  {
7022
7031
  item,
@@ -7290,7 +7299,7 @@ var COUNTRY_OPTIONS = [
7290
7299
  ];
7291
7300
 
7292
7301
  // src/components/organization-onboarding-form.tsx
7293
- import * as React85 from "react";
7302
+ import * as React87 from "react";
7294
7303
 
7295
7304
  // src/lib/auth-surface.ts
7296
7305
  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]";
@@ -7298,7 +7307,7 @@ var AUTH_QUIET_BUTTON = "flex h-[46px] w-full items-center justify-center gap-[1
7298
7307
  var AUTH_BUTTON_SHADOW = "var(--auth-btn-shadow)";
7299
7308
 
7300
7309
  // src/components/organization-onboarding-form.tsx
7301
- import { jsx as jsx103, jsxs as jsxs69 } from "react/jsx-runtime";
7310
+ import { jsx as jsx105, jsxs as jsxs71 } from "react/jsx-runtime";
7302
7311
  var CONTROLLER_SHARE_PCT = 50;
7303
7312
  var MAX_BENEFICIAL_OWNERS = 50;
7304
7313
  var OWNERSHIP_CONFIRMATION_MESSAGE = "Please confirm the ownership details by ticking the box";
@@ -7333,22 +7342,22 @@ function OrganizationOnboardingForm({
7333
7342
  onCancel,
7334
7343
  className
7335
7344
  }) {
7336
- const [name, setName] = React85.useState(defaultValues?.name ?? "");
7337
- const [legalName, setLegalName] = React85.useState(defaultValues?.legal_name ?? "");
7338
- const [ownerName, setOwnerName] = React85.useState(defaultValues?.owner_name ?? "");
7339
- const [countryOfIncorporation, setCountryOfIncorporation] = React85.useState(
7345
+ const [name, setName] = React87.useState(defaultValues?.name ?? "");
7346
+ const [legalName, setLegalName] = React87.useState(defaultValues?.legal_name ?? "");
7347
+ const [ownerName, setOwnerName] = React87.useState(defaultValues?.owner_name ?? "");
7348
+ const [countryOfIncorporation, setCountryOfIncorporation] = React87.useState(
7340
7349
  defaultValues?.country_of_incorporation ?? ""
7341
7350
  );
7342
- const [residencyCountry, setResidencyCountry] = React85.useState(
7351
+ const [residencyCountry, setResidencyCountry] = React87.useState(
7343
7352
  defaultValues?.residency_country ?? ""
7344
7353
  );
7345
- const [owners, setOwners] = React85.useState(
7354
+ const [owners, setOwners] = React87.useState(
7346
7355
  () => initialRows(defaultValues?.beneficial_owners)
7347
7356
  );
7348
- const [ownershipConfirmed, setOwnershipConfirmed] = React85.useState(false);
7349
- const [confirmationAttempted, setConfirmationAttempted] = React85.useState(false);
7350
- const nextKeyRef = React85.useRef(owners.length);
7351
- const submittingRef = React85.useRef(false);
7357
+ const [ownershipConfirmed, setOwnershipConfirmed] = React87.useState(false);
7358
+ const [confirmationAttempted, setConfirmationAttempted] = React87.useState(false);
7359
+ const nextKeyRef = React87.useRef(owners.length);
7360
+ const submittingRef = React87.useRef(false);
7352
7361
  const trimmed = name.trim();
7353
7362
  const filledOwners = owners.filter((row) => !isRowBlank(row));
7354
7363
  const ownerShares = filledOwners.map((row) => parseShare(row.share));
@@ -7402,7 +7411,7 @@ function OrganizationOnboardingForm({
7402
7411
  ...needsOwnershipConfirmation ? { ownership_confirmed: ownershipConfirmed } : {}
7403
7412
  });
7404
7413
  };
7405
- React85.useEffect(() => {
7414
+ React87.useEffect(() => {
7406
7415
  submittingRef.current = false;
7407
7416
  }, [
7408
7417
  name,
@@ -7415,12 +7424,12 @@ function OrganizationOnboardingForm({
7415
7424
  submitting,
7416
7425
  serverError
7417
7426
  ]);
7418
- const countryField = (params) => /* @__PURE__ */ jsxs69("div", { className: "space-y-1.5", children: [
7419
- /* @__PURE__ */ jsxs69(Label2, { htmlFor: params.id, children: [
7427
+ const countryField = (params) => /* @__PURE__ */ jsxs71("div", { className: "space-y-1.5", children: [
7428
+ /* @__PURE__ */ jsxs71(Label2, { htmlFor: params.id, children: [
7420
7429
  params.label,
7421
- params.required && /* @__PURE__ */ jsx103("span", { className: "text-text-danger", children: " *" })
7430
+ params.required && /* @__PURE__ */ jsx105("span", { className: "text-text-danger", children: " *" })
7422
7431
  ] }),
7423
- /* @__PURE__ */ jsx103(
7432
+ /* @__PURE__ */ jsx105(
7424
7433
  Select,
7425
7434
  {
7426
7435
  id: params.id,
@@ -7433,10 +7442,10 @@ function OrganizationOnboardingForm({
7433
7442
  }
7434
7443
  )
7435
7444
  ] });
7436
- return /* @__PURE__ */ jsxs69("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
7437
- /* @__PURE__ */ jsxs69("div", { className: "space-y-1.5", children: [
7438
- /* @__PURE__ */ jsx103(Label2, { htmlFor: "create-org-name", children: "Organization name" }),
7439
- /* @__PURE__ */ jsx103(
7445
+ return /* @__PURE__ */ jsxs71("form", { onSubmit: handleSubmit, className: cn("space-y-4", className), children: [
7446
+ /* @__PURE__ */ jsxs71("div", { className: "space-y-1.5", children: [
7447
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: "create-org-name", children: "Organization name" }),
7448
+ /* @__PURE__ */ jsx105(
7440
7449
  Input,
7441
7450
  {
7442
7451
  id: "create-org-name",
@@ -7447,9 +7456,9 @@ function OrganizationOnboardingForm({
7447
7456
  }
7448
7457
  )
7449
7458
  ] }),
7450
- /* @__PURE__ */ jsxs69("div", { className: "space-y-1.5", children: [
7451
- /* @__PURE__ */ jsx103(Label2, { htmlFor: "create-org-legal-name", children: "Legal name" }),
7452
- /* @__PURE__ */ jsx103(
7459
+ /* @__PURE__ */ jsxs71("div", { className: "space-y-1.5", children: [
7460
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: "create-org-legal-name", children: "Legal name" }),
7461
+ /* @__PURE__ */ jsx105(
7453
7462
  Input,
7454
7463
  {
7455
7464
  id: "create-org-legal-name",
@@ -7460,9 +7469,9 @@ function OrganizationOnboardingForm({
7460
7469
  }
7461
7470
  )
7462
7471
  ] }),
7463
- /* @__PURE__ */ jsxs69("div", { className: "space-y-1.5", children: [
7464
- /* @__PURE__ */ jsx103(Label2, { htmlFor: "create-org-owner-name", children: "Owner name" }),
7465
- /* @__PURE__ */ jsx103(
7472
+ /* @__PURE__ */ jsxs71("div", { className: "space-y-1.5", children: [
7473
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: "create-org-owner-name", children: "Owner name" }),
7474
+ /* @__PURE__ */ jsx105(
7466
7475
  Input,
7467
7476
  {
7468
7477
  id: "create-org-owner-name",
@@ -7487,10 +7496,10 @@ function OrganizationOnboardingForm({
7487
7496
  onChange: setResidencyCountry,
7488
7497
  required: false
7489
7498
  }),
7490
- /* @__PURE__ */ jsxs69("div", { className: "space-y-2", children: [
7491
- /* @__PURE__ */ jsxs69("div", { className: "flex items-center justify-between", children: [
7492
- /* @__PURE__ */ jsx103(Label2, { children: "Beneficial owners" }),
7493
- /* @__PURE__ */ jsx103(
7499
+ /* @__PURE__ */ jsxs71("div", { className: "space-y-2", children: [
7500
+ /* @__PURE__ */ jsxs71("div", { className: "flex items-center justify-between", children: [
7501
+ /* @__PURE__ */ jsx105(Label2, { children: "Beneficial owners" }),
7502
+ /* @__PURE__ */ jsx105(
7494
7503
  Button,
7495
7504
  {
7496
7505
  type: "button",
@@ -7503,16 +7512,16 @@ function OrganizationOnboardingForm({
7503
7512
  }
7504
7513
  )
7505
7514
  ] }),
7506
- owners.length === 0 && /* @__PURE__ */ jsx103("p", { className: "text-xs text-text-tertiary", children: "List the natural persons who ultimately own or control the organization." }),
7507
- owners.map((row) => /* @__PURE__ */ jsxs69(
7515
+ owners.length === 0 && /* @__PURE__ */ jsx105("p", { className: "text-xs text-text-tertiary", children: "List the natural persons who ultimately own or control the organization." }),
7516
+ owners.map((row) => /* @__PURE__ */ jsxs71(
7508
7517
  "div",
7509
7518
  {
7510
7519
  "data-testid": `beneficial-owner-row-${row.key}`,
7511
7520
  className: "flex items-end gap-2",
7512
7521
  children: [
7513
- /* @__PURE__ */ jsxs69("div", { className: "flex-1 space-y-1", children: [
7514
- /* @__PURE__ */ jsx103(Label2, { htmlFor: `bo-name-${row.key}`, className: "text-xs", children: "Name" }),
7515
- /* @__PURE__ */ jsx103(
7522
+ /* @__PURE__ */ jsxs71("div", { className: "flex-1 space-y-1", children: [
7523
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: `bo-name-${row.key}`, className: "text-xs", children: "Name" }),
7524
+ /* @__PURE__ */ jsx105(
7516
7525
  Input,
7517
7526
  {
7518
7527
  id: `bo-name-${row.key}`,
@@ -7522,9 +7531,9 @@ function OrganizationOnboardingForm({
7522
7531
  }
7523
7532
  )
7524
7533
  ] }),
7525
- /* @__PURE__ */ jsxs69("div", { className: "w-40 space-y-1", children: [
7526
- /* @__PURE__ */ jsx103(Label2, { htmlFor: `bo-country-${row.key}`, className: "text-xs", children: "Country" }),
7527
- /* @__PURE__ */ jsx103(
7534
+ /* @__PURE__ */ jsxs71("div", { className: "w-40 space-y-1", children: [
7535
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: `bo-country-${row.key}`, className: "text-xs", children: "Country" }),
7536
+ /* @__PURE__ */ jsx105(
7528
7537
  Select,
7529
7538
  {
7530
7539
  id: `bo-country-${row.key}`,
@@ -7537,9 +7546,9 @@ function OrganizationOnboardingForm({
7537
7546
  }
7538
7547
  )
7539
7548
  ] }),
7540
- /* @__PURE__ */ jsxs69("div", { className: "w-24 space-y-1", children: [
7541
- /* @__PURE__ */ jsx103(Label2, { htmlFor: `bo-share-${row.key}`, className: "text-xs", children: "Share %" }),
7542
- /* @__PURE__ */ jsx103(
7549
+ /* @__PURE__ */ jsxs71("div", { className: "w-24 space-y-1", children: [
7550
+ /* @__PURE__ */ jsx105(Label2, { htmlFor: `bo-share-${row.key}`, className: "text-xs", children: "Share %" }),
7551
+ /* @__PURE__ */ jsx105(
7543
7552
  Input,
7544
7553
  {
7545
7554
  id: `bo-share-${row.key}`,
@@ -7550,7 +7559,7 @@ function OrganizationOnboardingForm({
7550
7559
  }
7551
7560
  )
7552
7561
  ] }),
7553
- /* @__PURE__ */ jsx103(
7562
+ /* @__PURE__ */ jsx105(
7554
7563
  Button,
7555
7564
  {
7556
7565
  type: "button",
@@ -7565,16 +7574,16 @@ function OrganizationOnboardingForm({
7565
7574
  },
7566
7575
  row.key
7567
7576
  )),
7568
- !ownersValid && /* @__PURE__ */ jsx103("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." }),
7569
- shareSum > 100 && /* @__PURE__ */ jsxs69("p", { "data-testid": "beneficial-owners-sum-warning", className: "text-xs text-text-warning", children: [
7577
+ !ownersValid && /* @__PURE__ */ jsx105("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." }),
7578
+ shareSum > 100 && /* @__PURE__ */ jsxs71("p", { "data-testid": "beneficial-owners-sum-warning", className: "text-xs text-text-warning", children: [
7570
7579
  "The listed shares add up to ",
7571
7580
  shareSum,
7572
7581
  "%, which is more than 100%."
7573
7582
  ] })
7574
7583
  ] }),
7575
- needsOwnershipConfirmation && /* @__PURE__ */ jsxs69("div", { className: "space-y-1", children: [
7576
- /* @__PURE__ */ jsxs69("div", { className: "flex items-start gap-2", children: [
7577
- /* @__PURE__ */ jsx103(
7584
+ needsOwnershipConfirmation && /* @__PURE__ */ jsxs71("div", { className: "space-y-1", children: [
7585
+ /* @__PURE__ */ jsxs71("div", { className: "flex items-start gap-2", children: [
7586
+ /* @__PURE__ */ jsx105(
7578
7587
  Checkbox,
7579
7588
  {
7580
7589
  id: "create-org-ownership-confirmed",
@@ -7584,19 +7593,19 @@ function OrganizationOnboardingForm({
7584
7593
  onCheckedChange: (value) => setOwnershipConfirmed(value === true)
7585
7594
  }
7586
7595
  ),
7587
- /* @__PURE__ */ jsxs69(
7596
+ /* @__PURE__ */ jsxs71(
7588
7597
  Label2,
7589
7598
  {
7590
7599
  htmlFor: "create-org-ownership-confirmed",
7591
7600
  className: "text-xs font-regular leading-snug",
7592
7601
  children: [
7593
7602
  "I confirm the ownership structure above is complete and correct",
7594
- /* @__PURE__ */ jsx103("span", { className: "text-text-danger", children: " *" })
7603
+ /* @__PURE__ */ jsx105("span", { className: "text-text-danger", children: " *" })
7595
7604
  ]
7596
7605
  }
7597
7606
  )
7598
7607
  ] }),
7599
- showConfirmationError && /* @__PURE__ */ jsx103(
7608
+ showConfirmationError && /* @__PURE__ */ jsx105(
7600
7609
  "p",
7601
7610
  {
7602
7611
  id: "create-org-ownership-error",
@@ -7606,12 +7615,12 @@ function OrganizationOnboardingForm({
7606
7615
  }
7607
7616
  )
7608
7617
  ] }),
7609
- (serverError || otherViolations.length > 0) && /* @__PURE__ */ jsxs69(InlineError, { children: [
7618
+ (serverError || otherViolations.length > 0) && /* @__PURE__ */ jsxs71(InlineError, { children: [
7610
7619
  serverError,
7611
- otherViolations.length > 0 && /* @__PURE__ */ jsx103("ul", { "data-testid": "create-org-violations", className: "mt-1 list-disc pl-4", children: otherViolations.map((violation) => /* @__PURE__ */ jsx103("li", { children: violation }, violation)) })
7620
+ otherViolations.length > 0 && /* @__PURE__ */ jsx105("ul", { "data-testid": "create-org-violations", className: "mt-1 list-disc pl-4", children: otherViolations.map((violation) => /* @__PURE__ */ jsx105("li", { children: violation }, violation)) })
7612
7621
  ] }),
7613
- /* @__PURE__ */ jsxs69("div", { className: "space-y-2 pt-1", children: [
7614
- /* @__PURE__ */ jsx103(
7622
+ /* @__PURE__ */ jsxs71("div", { className: "space-y-2 pt-1", children: [
7623
+ /* @__PURE__ */ jsx105(
7615
7624
  "button",
7616
7625
  {
7617
7626
  type: "submit",
@@ -7622,14 +7631,14 @@ function OrganizationOnboardingForm({
7622
7631
  children: submitting ? "Creating\u2026" : submitLabel
7623
7632
  }
7624
7633
  ),
7625
- onCancel && /* @__PURE__ */ jsx103("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
7634
+ onCancel && /* @__PURE__ */ jsx105("button", { type: "button", onClick: onCancel, className: AUTH_QUIET_BUTTON, children: "Cancel" })
7626
7635
  ] })
7627
7636
  ] });
7628
7637
  }
7629
7638
 
7630
7639
  // src/components/list-columns.tsx
7631
- import * as React86 from "react";
7632
- import { jsx as jsx104, jsxs as jsxs70 } from "react/jsx-runtime";
7640
+ import * as React88 from "react";
7641
+ import { jsx as jsx106, jsxs as jsxs72 } from "react/jsx-runtime";
7633
7642
  var CELL_WIDTH = { 20: "w-20", 24: "w-24", 28: "w-28", 32: "w-32" };
7634
7643
  var headerClass = "flex items-center gap-3 border-b border-border-subtle bg-bg-secondary px-4 py-1.5 text-xs text-text-tertiary";
7635
7644
  var cellsClass = "flex shrink-0 items-center gap-3";
@@ -7647,13 +7656,13 @@ function warnDuplicateKeys(columns, where) {
7647
7656
  seen.add(c.key);
7648
7657
  }
7649
7658
  }
7650
- var ListHeader = React86.forwardRef(function ListHeader2({ lead, columns, mark = true, trailing = true, className, ...props }, ref) {
7659
+ var ListHeader = React88.forwardRef(function ListHeader2({ lead, columns, mark = true, trailing = true, className, ...props }, ref) {
7651
7660
  warnDuplicateKeys(columns, "ListHeader");
7652
- return /* @__PURE__ */ jsxs70("div", { ref, className: cn(headerClass, className), ...props, children: [
7653
- mark && /* @__PURE__ */ jsx104("span", { className: "size-8 shrink-0", "aria-hidden": true }),
7654
- /* @__PURE__ */ jsx104("span", { className: "min-w-0 flex-1 truncate", children: lead }),
7655
- /* @__PURE__ */ jsx104("span", { className: cellsClass, children: columns.map((c) => /* @__PURE__ */ jsx104("span", { className: cn(CELL_WIDTH[c.width], cellClass), children: c.label }, c.key)) }),
7656
- trailing && /* @__PURE__ */ jsx104("span", { className: "size-4 shrink-0", "aria-hidden": true })
7661
+ return /* @__PURE__ */ jsxs72("div", { ref, className: cn(headerClass, className), ...props, children: [
7662
+ mark && /* @__PURE__ */ jsx106("span", { className: "size-8 shrink-0", "aria-hidden": true }),
7663
+ /* @__PURE__ */ jsx106("span", { className: "min-w-0 flex-1 truncate", children: lead }),
7664
+ /* @__PURE__ */ jsx106("span", { className: cellsClass, children: columns.map((c) => /* @__PURE__ */ jsx106("span", { className: cn(CELL_WIDTH[c.width], cellClass), children: c.label }, c.key)) }),
7665
+ trailing && /* @__PURE__ */ jsx106("span", { className: "size-4 shrink-0", "aria-hidden": true })
7657
7666
  ] });
7658
7667
  });
7659
7668
  function cellValue(values, column) {
@@ -7661,9 +7670,9 @@ function cellValue(values, column) {
7661
7670
  const value = values[column.key];
7662
7671
  return value === void 0 || value === null || value === "" ? column.fallback : value;
7663
7672
  }
7664
- var ListCells = React86.forwardRef(function ListCells2({ columns, values, className, ...props }, ref) {
7673
+ var ListCells = React88.forwardRef(function ListCells2({ columns, values, className, ...props }, ref) {
7665
7674
  warnDuplicateKeys(columns, "ListCells");
7666
- return /* @__PURE__ */ jsx104("span", { ref, className: cn(cellsClass, className), ...props, children: columns.map((c) => /* @__PURE__ */ jsx104(
7675
+ return /* @__PURE__ */ jsx106("span", { ref, className: cn(cellsClass, className), ...props, children: columns.map((c) => /* @__PURE__ */ jsx106(
7667
7676
  "span",
7668
7677
  {
7669
7678
  className: cn(CELL_WIDTH[c.width], cellClass, c.quiet && "text-text-tertiary"),
@@ -7676,9 +7685,9 @@ ListHeader.displayName = "ListHeader";
7676
7685
  ListCells.displayName = "ListCells";
7677
7686
 
7678
7687
  // src/components/theme-picker.tsx
7679
- import * as React87 from "react";
7680
- import { Check as Check11, Monitor as Monitor2 } from "lucide-react";
7681
- import { jsx as jsx105, jsxs as jsxs71 } from "react/jsx-runtime";
7688
+ import * as React89 from "react";
7689
+ import { Check as Check12, Monitor as Monitor2 } from "lucide-react";
7690
+ import { jsx as jsx107, jsxs as jsxs73 } from "react/jsx-runtime";
7682
7691
  var THEME_SWATCHES = {
7683
7692
  // --bg-surface --bg-sunken --bg-overlay --border-default --text-tertiary
7684
7693
  light: { canvas: "#f2f3f4", rail: "#e1e2e4", body: "#ffffff", quiet: "#bbbec7", strong: "#535a6e" },
@@ -7692,13 +7701,13 @@ var OPTIONS = [
7692
7701
  { value: "system", label: "Auto", name: "Auto, follows your device theme" }
7693
7702
  ];
7694
7703
  function Panels({ palette }) {
7695
- return /* @__PURE__ */ jsxs71("span", { className: "flex h-full gap-1.5 p-1.5", style: { background: palette.canvas }, children: [
7696
- /* @__PURE__ */ jsx105(
7704
+ return /* @__PURE__ */ jsxs73("span", { className: "flex h-full gap-1.5 p-1.5", style: { background: palette.canvas }, children: [
7705
+ /* @__PURE__ */ jsx107(
7697
7706
  "span",
7698
7707
  {
7699
7708
  className: "flex flex-col gap-1.5 p-1.5",
7700
7709
  style: { width: "28%", borderRadius: 5, background: palette.rail },
7701
- children: RAIL_BARS.map((w, i) => /* @__PURE__ */ jsx105(
7710
+ children: RAIL_BARS.map((w, i) => /* @__PURE__ */ jsx107(
7702
7711
  "span",
7703
7712
  {
7704
7713
  className: "rounded-full",
@@ -7708,12 +7717,12 @@ function Panels({ palette }) {
7708
7717
  ))
7709
7718
  }
7710
7719
  ),
7711
- /* @__PURE__ */ jsx105(
7720
+ /* @__PURE__ */ jsx107(
7712
7721
  "span",
7713
7722
  {
7714
7723
  className: "flex flex-1 flex-col gap-1.5 border p-2",
7715
7724
  style: { borderRadius: 5, background: palette.body, borderColor: palette.quiet },
7716
- children: BODY_BARS.map((w, i) => /* @__PURE__ */ jsx105(
7725
+ children: BODY_BARS.map((w, i) => /* @__PURE__ */ jsx107(
7717
7726
  "span",
7718
7727
  {
7719
7728
  className: "rounded-full",
@@ -7729,13 +7738,13 @@ var autoPlateClass = "flex h-full items-center justify-center bg-bg-secondary";
7729
7738
  var previewClass = "block h-28 overflow-hidden rounded-lg border border-border-default";
7730
7739
  var cardClass = "grid gap-2 rounded-lg p-1.5 text-left transition-colors hover:bg-bg-elevated focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus";
7731
7740
  var TRACK = { gridTemplateColumns: "repeat(auto-fit, minmax(8rem, 1fr))" };
7732
- var Picker = React87.forwardRef(function Picker2({ value, onValueChange, className, ...props }, ref) {
7733
- return /* @__PURE__ */ jsx105("div", { role: "group", "aria-label": "Theme", ...props, ref, className: cn("grid gap-4", className), style: { ...TRACK, ...props.style }, children: OPTIONS.map((o) => {
7741
+ var Picker = React89.forwardRef(function Picker2({ value, onValueChange, className, ...props }, ref) {
7742
+ return /* @__PURE__ */ jsx107("div", { role: "group", "aria-label": "Theme", ...props, ref, className: cn("grid gap-4", className), style: { ...TRACK, ...props.style }, children: OPTIONS.map((o) => {
7734
7743
  const selected = o.value === value;
7735
7744
  return (
7736
7745
  // Not a `Button` (Guidelines/When it isn't a Button): the preview is the control, and
7737
7746
  // `aria-pressed` is what says which one is on.
7738
- /* @__PURE__ */ jsxs71(
7747
+ /* @__PURE__ */ jsxs73(
7739
7748
  "button",
7740
7749
  {
7741
7750
  type: "button",
@@ -7744,8 +7753,8 @@ var Picker = React87.forwardRef(function Picker2({ value, onValueChange, classNa
7744
7753
  onClick: () => onValueChange(o.value),
7745
7754
  className: cardClass,
7746
7755
  children: [
7747
- /* @__PURE__ */ jsx105("span", { className: cn(previewClass, selected && "ring-2 ring-border-strong"), "aria-hidden": true, children: o.value === "system" ? /* @__PURE__ */ jsx105("span", { className: autoPlateClass, children: /* @__PURE__ */ jsx105(Monitor2, { className: "size-8 text-text-tertiary" }) }) : /* @__PURE__ */ jsx105(Panels, { palette: THEME_SWATCHES[o.value] }) }),
7748
- /* @__PURE__ */ jsxs71(
7756
+ /* @__PURE__ */ jsx107("span", { className: cn(previewClass, selected && "ring-2 ring-border-strong"), "aria-hidden": true, children: o.value === "system" ? /* @__PURE__ */ jsx107("span", { className: autoPlateClass, children: /* @__PURE__ */ jsx107(Monitor2, { className: "size-8 text-text-tertiary" }) }) : /* @__PURE__ */ jsx107(Panels, { palette: THEME_SWATCHES[o.value] }) }),
7757
+ /* @__PURE__ */ jsxs73(
7749
7758
  "span",
7750
7759
  {
7751
7760
  className: cn(
@@ -7753,7 +7762,7 @@ var Picker = React87.forwardRef(function Picker2({ value, onValueChange, classNa
7753
7762
  selected ? "font-semibold text-text-primary" : "text-text-secondary"
7754
7763
  ),
7755
7764
  children: [
7756
- /* @__PURE__ */ jsx105(Check11, { className: cn("size-4 shrink-0", !selected && "invisible"), "aria-hidden": true }),
7765
+ /* @__PURE__ */ jsx107(Check12, { className: cn("size-4 shrink-0", !selected && "invisible"), "aria-hidden": true }),
7757
7766
  o.label
7758
7767
  ]
7759
7768
  }
@@ -7765,9 +7774,9 @@ var Picker = React87.forwardRef(function Picker2({ value, onValueChange, classNa
7765
7774
  );
7766
7775
  }) });
7767
7776
  });
7768
- var WiredPicker = React87.forwardRef(function WiredPicker2({ onValueChange, ...props }, ref) {
7777
+ var WiredPicker = React89.forwardRef(function WiredPicker2({ onValueChange, ...props }, ref) {
7769
7778
  const { theme, setTheme } = useTheme();
7770
- return /* @__PURE__ */ jsx105(
7779
+ return /* @__PURE__ */ jsx107(
7771
7780
  Picker,
7772
7781
  {
7773
7782
  ...props,
@@ -7780,22 +7789,22 @@ var WiredPicker = React87.forwardRef(function WiredPicker2({ onValueChange, ...p
7780
7789
  }
7781
7790
  );
7782
7791
  });
7783
- var ThemePicker = React87.forwardRef(function ThemePicker2({ value, onValueChange, ...props }, ref) {
7784
- const controlled = React87.useRef(value !== void 0);
7792
+ var ThemePicker = React89.forwardRef(function ThemePicker2({ value, onValueChange, ...props }, ref) {
7793
+ const controlled = React89.useRef(value !== void 0);
7785
7794
  if (process.env.NODE_ENV !== "production" && controlled.current !== (value !== void 0)) {
7786
7795
  console.warn(
7787
7796
  "[ThemePicker] `value` went from " + (controlled.current ? "set to missing" : "missing to set") + " after mount. The picker stays " + (controlled.current ? "controlled" : "wired to the console theme") + " for its whole life: render it once its value is known, or leave `value` off entirely."
7788
7797
  );
7789
7798
  }
7790
- return controlled.current ? /* @__PURE__ */ jsx105(Picker, { ...props, ref, value: value ?? "system", onValueChange: onValueChange ?? (() => {
7791
- }) }) : /* @__PURE__ */ jsx105(WiredPicker, { ...props, ref, onValueChange });
7799
+ return controlled.current ? /* @__PURE__ */ jsx107(Picker, { ...props, ref, value: value ?? "system", onValueChange: onValueChange ?? (() => {
7800
+ }) }) : /* @__PURE__ */ jsx107(WiredPicker, { ...props, ref, onValueChange });
7792
7801
  });
7793
7802
  ThemePicker.displayName = "ThemePicker";
7794
7803
 
7795
7804
  // src/components/secret-reveal.tsx
7796
- import * as React88 from "react";
7805
+ import * as React90 from "react";
7797
7806
  import { Copy as Copy2, Download } from "lucide-react";
7798
- import { jsx as jsx106, jsxs as jsxs72 } from "react/jsx-runtime";
7807
+ import { jsx as jsx108, jsxs as jsxs74 } from "react/jsx-runtime";
7799
7808
  var asText = (value) => Array.isArray(value) ? value.join("\n") : value;
7800
7809
  var REVEALED = "A secret is on screen and will not be shown again.";
7801
7810
  var REFUSED = "The browser refused the clipboard. Select the value to copy it.";
@@ -7803,15 +7812,15 @@ function SecretValue({ value }) {
7803
7812
  if (Array.isArray(value)) {
7804
7813
  const half = Math.ceil(value.length / 2);
7805
7814
  const columns = [value.slice(0, half), value.slice(half)].filter((column) => column.length > 0);
7806
- return /* @__PURE__ */ jsx106("div", { className: "flex w-fit gap-x-12", children: columns.map((column, index) => (
7815
+ return /* @__PURE__ */ jsx108("div", { className: "flex w-fit gap-x-12", children: columns.map((column, index) => (
7807
7816
  // Neither the columns nor the values inside one are ever reordered, and two identical
7808
7817
  // values in a list are legal, so the index is the key and the value is not.
7809
- /* @__PURE__ */ jsx106("div", { className: "grid gap-y-1.5", children: column.map((line, row) => /* @__PURE__ */ jsx106("code", { className: "font-mono text-sm font-medium tabular-nums text-text-primary", children: line }, row)) }, index)
7818
+ /* @__PURE__ */ jsx108("div", { className: "grid gap-y-1.5", children: column.map((line, row) => /* @__PURE__ */ jsx108("code", { className: "font-mono text-sm font-medium tabular-nums text-text-primary", children: line }, row)) }, index)
7810
7819
  )) });
7811
7820
  }
7812
- return /* @__PURE__ */ jsx106("code", { className: "block break-all font-mono text-sm font-medium text-text-primary", children: value });
7821
+ return /* @__PURE__ */ jsx108("code", { className: "block break-all font-mono text-sm font-medium text-text-primary", children: value });
7813
7822
  }
7814
- var SecretReveal = React88.forwardRef(
7823
+ var SecretReveal = React90.forwardRef(
7815
7824
  ({
7816
7825
  value,
7817
7826
  caption,
@@ -7828,18 +7837,18 @@ var SecretReveal = React88.forwardRef(
7828
7837
  className,
7829
7838
  ...props
7830
7839
  }, ref) => {
7831
- const [takenText, setTakenText] = React88.useState(null);
7832
- const [refusedText, setRefusedText] = React88.useState(null);
7833
- const [announcedFor, setAnnouncedFor] = React88.useState(null);
7834
- const copyRef = React88.useRef(null);
7835
- const captionId = React88.useId();
7840
+ const [takenText, setTakenText] = React90.useState(null);
7841
+ const [refusedText, setRefusedText] = React90.useState(null);
7842
+ const [announcedFor, setAnnouncedFor] = React90.useState(null);
7843
+ const copyRef = React90.useRef(null);
7844
+ const captionId = React90.useId();
7836
7845
  const text = asText(value);
7837
7846
  const empty = text.length === 0;
7838
7847
  const taken = takenText === text;
7839
7848
  const refused = refusedText === text;
7840
- React88.useEffect(() => setAnnouncedFor(text), [text]);
7849
+ React90.useEffect(() => setAnnouncedFor(text), [text]);
7841
7850
  const announced = announcedFor === text ? REVEALED : "";
7842
- React88.useEffect(() => {
7851
+ React90.useEffect(() => {
7843
7852
  if (autoFocus) copyRef.current?.focus();
7844
7853
  }, [autoFocus]);
7845
7854
  const reportTaken = () => {
@@ -7865,12 +7874,12 @@ var SecretReveal = React88.forwardRef(
7865
7874
  reportTaken();
7866
7875
  onDownload?.();
7867
7876
  };
7868
- return /* @__PURE__ */ jsx106("div", { ref, className: cn("overflow-hidden rounded-lg bg-bg-sunken", className), ...props, children: /* @__PURE__ */ jsx106("div", { className: highlightClassName, ref: highlightRef, children: /* @__PURE__ */ jsxs72("div", { className: "grid gap-3 rounded-lg border border-border-strong px-4 py-3", children: [
7869
- /* @__PURE__ */ jsx106("span", { role: "status", className: "sr-only", children: announced }),
7870
- /* @__PURE__ */ jsx106("div", { id: captionId, className: "text-sm text-text-secondary", children: caption }),
7871
- /* @__PURE__ */ jsx106(SecretValue, { value }),
7872
- /* @__PURE__ */ jsxs72("div", { className: "flex flex-wrap items-center gap-2", children: [
7873
- /* @__PURE__ */ jsx106(
7877
+ return /* @__PURE__ */ jsx108("div", { ref, className: cn("overflow-hidden rounded-lg bg-bg-sunken", className), ...props, children: /* @__PURE__ */ jsx108("div", { className: highlightClassName, ref: highlightRef, children: /* @__PURE__ */ jsxs74("div", { className: "grid gap-3 rounded-lg border border-border-strong px-4 py-3", children: [
7878
+ /* @__PURE__ */ jsx108("span", { role: "status", className: "sr-only", children: announced }),
7879
+ /* @__PURE__ */ jsx108("div", { id: captionId, className: "text-sm text-text-secondary", children: caption }),
7880
+ /* @__PURE__ */ jsx108(SecretValue, { value }),
7881
+ /* @__PURE__ */ jsxs74("div", { className: "flex flex-wrap items-center gap-2", children: [
7882
+ /* @__PURE__ */ jsx108(
7874
7883
  Button,
7875
7884
  {
7876
7885
  ref: copyRef,
@@ -7878,12 +7887,12 @@ var SecretReveal = React88.forwardRef(
7878
7887
  "aria-describedby": captionId,
7879
7888
  variant: "outline",
7880
7889
  size: "sm",
7881
- icon: /* @__PURE__ */ jsx106(Copy2, {}),
7890
+ icon: /* @__PURE__ */ jsx108(Copy2, {}),
7882
7891
  children: copyLabel ?? (Array.isArray(value) ? "Copy all" : "Copy")
7883
7892
  }
7884
7893
  ),
7885
- onDownload && /* @__PURE__ */ jsx106(Button, { onClick: download, "aria-describedby": captionId, variant: "outline", size: "sm", icon: /* @__PURE__ */ jsx106(Download, {}), children: downloadLabel }),
7886
- /* @__PURE__ */ jsx106(
7894
+ onDownload && /* @__PURE__ */ jsx108(Button, { onClick: download, "aria-describedby": captionId, variant: "outline", size: "sm", icon: /* @__PURE__ */ jsx108(Download, {}), children: downloadLabel }),
7895
+ /* @__PURE__ */ jsx108(
7887
7896
  Button,
7888
7897
  {
7889
7898
  onClick: onConfirm,
@@ -7894,7 +7903,7 @@ var SecretReveal = React88.forwardRef(
7894
7903
  }
7895
7904
  )
7896
7905
  ] }),
7897
- refused && /* @__PURE__ */ jsx106("div", { role: "status", className: "text-xs text-text-tertiary", children: REFUSED })
7906
+ refused && /* @__PURE__ */ jsx108("div", { role: "status", className: "text-xs text-text-tertiary", children: REFUSED })
7898
7907
  ] }) }) });
7899
7908
  }
7900
7909
  );
@@ -8170,6 +8179,8 @@ export {
8170
8179
  TooltipContent,
8171
8180
  TooltipProvider,
8172
8181
  TooltipTrigger,
8182
+ TopBar,
8183
+ TopBarUtilities,
8173
8184
  UserMenu,
8174
8185
  WEIGHT_TONE,
8175
8186
  alertVariants,