@ai-matrx/design-system 0.10.1 → 0.11.1

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.cjs CHANGED
@@ -83,6 +83,8 @@ __export(src_exports, {
83
83
  CommandList: () => CommandList,
84
84
  CommandSeparator: () => CommandSeparator,
85
85
  CommandShortcut: () => CommandShortcut,
86
+ ConfirmDialog: () => ConfirmDialog,
87
+ ConfirmDialogHost: () => ConfirmDialogHost,
86
88
  ContextMenu: () => ContextMenu,
87
89
  ContextMenuCheckboxItem: () => ContextMenuCheckboxItem,
88
90
  ContextMenuContent: () => ContextMenuContent,
@@ -1543,10 +1545,119 @@ var CommandShortcut = ({
1543
1545
  };
1544
1546
  CommandShortcut.displayName = "CommandShortcut";
1545
1547
 
1548
+ // src/confirm-dialog.tsx
1549
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1550
+ function ConfirmDialog({
1551
+ open,
1552
+ onOpenChange,
1553
+ title,
1554
+ description,
1555
+ content,
1556
+ contentClassName,
1557
+ confirmLabel = "Confirm",
1558
+ cancelLabel = "Cancel",
1559
+ variant = "default",
1560
+ busy = false,
1561
+ confirmDisabled = false,
1562
+ portalContainer,
1563
+ onConfirm
1564
+ }) {
1565
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1566
+ AlertDialogContent,
1567
+ {
1568
+ className: contentClassName,
1569
+ ...portalContainer === void 0 ? {} : { container: portalContainer },
1570
+ children: [
1571
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AlertDialogHeader, { children: [
1572
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogTitle, { children: title }),
1573
+ description ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogDescription, { children: description }) : null
1574
+ ] }),
1575
+ content ?? null,
1576
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AlertDialogFooter, { children: [
1577
+ cancelLabel === null ? null : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogCancel, { className: "max-lg:min-h-11", disabled: busy, children: cancelLabel }),
1578
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1579
+ AlertDialogAction,
1580
+ {
1581
+ disabled: busy || confirmDisabled,
1582
+ onClick: (event) => {
1583
+ event.preventDefault();
1584
+ void onConfirm();
1585
+ },
1586
+ className: cn(
1587
+ "max-lg:min-h-11",
1588
+ // One source of button appearance: the destructive look comes
1589
+ // from `buttonVariants`, not a second hand-written copy of it.
1590
+ // tailwind-merge makes it WIN over the default variant classes.
1591
+ variant === "destructive" && buttonVariants({ variant: "destructive" })
1592
+ ),
1593
+ children: [
1594
+ busy ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Loader2Icon, { className: cn("mr-2 h-4 w-4", MOTION_SPIN) }) : null,
1595
+ confirmLabel
1596
+ ]
1597
+ }
1598
+ )
1599
+ ] })
1600
+ ]
1601
+ }
1602
+ ) });
1603
+ }
1604
+
1605
+ // src/confirm-host.tsx
1606
+ var import_confirm_opener = require("@ai-matrx/kit/confirm-opener");
1607
+ var React14 = __toESM(require("react"), 1);
1608
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1609
+ function ConfirmDialogHost() {
1610
+ const [active, setActive] = React14.useState(null);
1611
+ const [tick, setTick] = React14.useState(0);
1612
+ const queueRef = React14.useRef([]);
1613
+ React14.useEffect(() => {
1614
+ const controller = {
1615
+ show: (opts, resolve) => {
1616
+ queueRef.current.push({ opts, resolve });
1617
+ setTick((n) => n + 1);
1618
+ }
1619
+ };
1620
+ (0, import_confirm_opener._registerHost)(controller);
1621
+ return () => (0, import_confirm_opener._unregisterHost)(controller);
1622
+ }, []);
1623
+ React14.useEffect(() => {
1624
+ if (active === null && queueRef.current.length > 0) {
1625
+ setActive(queueRef.current.shift());
1626
+ }
1627
+ }, [active, tick]);
1628
+ const handleConfirm = React14.useCallback(() => {
1629
+ if (!active) return;
1630
+ active.resolve(true);
1631
+ setActive(null);
1632
+ }, [active]);
1633
+ const handleOpenChange = React14.useCallback(
1634
+ (open) => {
1635
+ if (!open && active) {
1636
+ active.resolve(false);
1637
+ setActive(null);
1638
+ }
1639
+ },
1640
+ [active]
1641
+ );
1642
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1643
+ ConfirmDialog,
1644
+ {
1645
+ open: !!active,
1646
+ onOpenChange: handleOpenChange,
1647
+ title: active?.opts.title ?? "",
1648
+ description: active?.opts.description,
1649
+ confirmLabel: active?.opts.confirmLabel,
1650
+ cancelLabel: active?.opts.cancelLabel,
1651
+ variant: active?.opts.variant,
1652
+ onConfirm: handleConfirm
1653
+ }
1654
+ );
1655
+ }
1656
+
1546
1657
  // src/context-menu.tsx
1547
1658
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
1548
- var React14 = __toESM(require("react"), 1);
1549
- var import_jsx_runtime16 = require("react/jsx-runtime");
1659
+ var React15 = __toESM(require("react"), 1);
1660
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1550
1661
  var ContextMenu = ContextMenuPrimitive.Root;
1551
1662
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1552
1663
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -1556,7 +1667,7 @@ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1556
1667
  var SURFACE_CLASS = "z-50 min-w-[8rem] max-h-[var(--radix-context-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
1557
1668
  var ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
1558
1669
  var INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
1559
- var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1670
+ var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1560
1671
  ContextMenuPrimitive.SubTrigger,
1561
1672
  {
1562
1673
  ref,
@@ -1569,12 +1680,12 @@ var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ..
1569
1680
  ...props,
1570
1681
  children: [
1571
1682
  children,
1572
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1683
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1573
1684
  ]
1574
1685
  }
1575
1686
  ));
1576
1687
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1577
- var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1688
+ var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1578
1689
  ContextMenuPrimitive.SubContent,
1579
1690
  {
1580
1691
  ref,
@@ -1584,9 +1695,9 @@ var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =>
1584
1695
  }
1585
1696
  ));
1586
1697
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1587
- var ContextMenuContent = React14.forwardRef(({ className, container, ...props }, ref) => {
1698
+ var ContextMenuContent = React15.forwardRef(({ className, container, ...props }, ref) => {
1588
1699
  const portalContainer = usePortalContainer(container);
1589
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1700
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1590
1701
  ContextMenuPrimitive.Content,
1591
1702
  {
1592
1703
  ref,
@@ -1597,7 +1708,7 @@ var ContextMenuContent = React14.forwardRef(({ className, container, ...props },
1597
1708
  ) });
1598
1709
  });
1599
1710
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1600
- var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1711
+ var ContextMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1601
1712
  ContextMenuPrimitive.Item,
1602
1713
  {
1603
1714
  ref,
@@ -1612,7 +1723,7 @@ var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) =
1612
1723
  }
1613
1724
  ));
1614
1725
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1615
- var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1726
+ var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1616
1727
  ContextMenuPrimitive.CheckboxItem,
1617
1728
  {
1618
1729
  ref,
@@ -1620,13 +1731,13 @@ var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...prop
1620
1731
  className: cn(INDICATOR_ITEM_CLASS, className),
1621
1732
  ...props,
1622
1733
  children: [
1623
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
1734
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
1624
1735
  children
1625
1736
  ]
1626
1737
  }
1627
1738
  ));
1628
1739
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1629
- var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1740
+ var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1630
1741
  ContextMenuPrimitive.RadioItem,
1631
1742
  {
1632
1743
  ref,
@@ -1634,13 +1745,13 @@ var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }
1634
1745
  className: cn(INDICATOR_ITEM_CLASS, className),
1635
1746
  ...props,
1636
1747
  children: [
1637
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
1748
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
1638
1749
  children
1639
1750
  ]
1640
1751
  }
1641
1752
  ));
1642
1753
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1643
- var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1754
+ var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1644
1755
  ContextMenuPrimitive.Label,
1645
1756
  {
1646
1757
  ref,
@@ -1654,7 +1765,7 @@ var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
1654
1765
  }
1655
1766
  ));
1656
1767
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1657
- var ContextMenuSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1768
+ var ContextMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1658
1769
  ContextMenuPrimitive.Separator,
1659
1770
  {
1660
1771
  ref,
@@ -1667,7 +1778,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
1667
1778
  var ContextMenuShortcut = ({
1668
1779
  className,
1669
1780
  ...props
1670
- }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1781
+ }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1671
1782
  "span",
1672
1783
  {
1673
1784
  "data-slot": "context-menu-shortcut",
@@ -1682,12 +1793,12 @@ var import_react = require("react");
1682
1793
 
1683
1794
  // src/popover.tsx
1684
1795
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
1685
- var React15 = __toESM(require("react"), 1);
1686
- var import_jsx_runtime17 = require("react/jsx-runtime");
1796
+ var React16 = __toESM(require("react"), 1);
1797
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1687
1798
  var Popover = PopoverPrimitive.Root;
1688
1799
  var PopoverTrigger = PopoverPrimitive.Trigger;
1689
1800
  var PopoverAnchor = PopoverPrimitive.Anchor;
1690
- var PopoverContent = React15.forwardRef(
1801
+ var PopoverContent = React16.forwardRef(
1691
1802
  ({
1692
1803
  className,
1693
1804
  align = "center",
@@ -1697,7 +1808,7 @@ var PopoverContent = React15.forwardRef(
1697
1808
  ...props
1698
1809
  }, ref) => {
1699
1810
  const portalContainer = usePortalContainer(container);
1700
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1811
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1701
1812
  PopoverPrimitive.Content,
1702
1813
  {
1703
1814
  ref,
@@ -1722,7 +1833,7 @@ var PopoverContent = React15.forwardRef(
1722
1833
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1723
1834
 
1724
1835
  // src/creatable-picker.tsx
1725
- var import_jsx_runtime18 = require("react/jsx-runtime");
1836
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1726
1837
  function article(noun) {
1727
1838
  return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
1728
1839
  }
@@ -1797,8 +1908,8 @@ function CreatablePicker({
1797
1908
  setBusy(false);
1798
1909
  }
1799
1910
  };
1800
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1801
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1911
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1912
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1802
1913
  "button",
1803
1914
  {
1804
1915
  type: "button",
@@ -1812,12 +1923,12 @@ function CreatablePicker({
1812
1923
  triggerClassName
1813
1924
  ),
1814
1925
  children: [
1815
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1816
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
1926
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1927
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
1817
1928
  ]
1818
1929
  }
1819
1930
  ) }),
1820
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1931
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1821
1932
  Command,
1822
1933
  {
1823
1934
  filter: (itemValue, search, keywords) => {
@@ -1825,7 +1936,7 @@ function CreatablePicker({
1825
1936
  return haystack.includes(search.toLowerCase()) ? 1 : 0;
1826
1937
  },
1827
1938
  children: [
1828
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1939
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1829
1940
  CommandInput,
1830
1941
  {
1831
1942
  ref: inputRef,
@@ -1837,13 +1948,13 @@ function CreatablePicker({
1837
1948
  placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
1838
1949
  }
1839
1950
  ),
1840
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(CommandList, { children: [
1841
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CommandEmpty, { children: emptyLabel }),
1842
- groups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1951
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(CommandList, { children: [
1952
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CommandEmpty, { children: emptyLabel }),
1953
+ groups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1843
1954
  CommandGroup,
1844
1955
  {
1845
1956
  ...group.heading === void 0 ? {} : { heading: group.heading },
1846
- children: group.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1957
+ children: group.options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1847
1958
  CommandItem,
1848
1959
  {
1849
1960
  value: option.label,
@@ -1854,7 +1965,7 @@ function CreatablePicker({
1854
1965
  },
1855
1966
  className: "gap-2 text-xs",
1856
1967
  children: [
1857
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1968
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1858
1969
  LucideCheckIcon,
1859
1970
  {
1860
1971
  className: cn(
@@ -1863,8 +1974,8 @@ function CreatablePicker({
1863
1974
  )
1864
1975
  }
1865
1976
  ),
1866
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1867
- option.hint ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
1977
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1978
+ option.hint ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
1868
1979
  ]
1869
1980
  },
1870
1981
  option.value
@@ -1873,9 +1984,9 @@ function CreatablePicker({
1873
1984
  group.heading ?? "__ungrouped__"
1874
1985
  ))
1875
1986
  ] }),
1876
- canCreate ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "space-y-1 border-t border-border p-1", children: [
1877
- createExtra && typed && !exactMatch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1878
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1987
+ canCreate ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "space-y-1 border-t border-border p-1", children: [
1988
+ createExtra && typed && !exactMatch ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1989
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1879
1990
  "button",
1880
1991
  {
1881
1992
  type: "button",
@@ -1883,22 +1994,22 @@ function CreatablePicker({
1883
1994
  onClick: () => void create(typed),
1884
1995
  className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground disabled:opacity-50",
1885
1996
  children: [
1886
- busy ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
1887
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
1997
+ busy ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
1998
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
1888
1999
  ]
1889
2000
  }
1890
2001
  ),
1891
- needsName ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
2002
+ needsName ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
1892
2003
  "Type the name of the ",
1893
2004
  noun,
1894
2005
  " you want to add \u2014 then this creates it."
1895
2006
  ] }) : null
1896
2007
  ] }) : null,
1897
- footerActions?.length || manageAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "space-y-0.5 border-t border-border p-1", children: [
2008
+ footerActions?.length || manageAction ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "space-y-0.5 border-t border-border p-1", children: [
1898
2009
  footerActions?.map((action) => {
1899
2010
  const Icon2 = action.icon;
1900
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [
1901
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2011
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { children: [
2012
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1902
2013
  "button",
1903
2014
  {
1904
2015
  type: "button",
@@ -1908,15 +2019,15 @@ function CreatablePicker({
1908
2019
  },
1909
2020
  className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
1910
2021
  children: [
1911
- Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon2, { className: "size-3.5 shrink-0" }) : null,
1912
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 truncate", children: action.label })
2022
+ Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Icon2, { className: "size-3.5 shrink-0" }) : null,
2023
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 truncate", children: action.label })
1913
2024
  ]
1914
2025
  }
1915
2026
  ),
1916
- action.note ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
2027
+ action.note ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
1917
2028
  ] }, action.label);
1918
2029
  }),
1919
- manageAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2030
+ manageAction ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1920
2031
  "a",
1921
2032
  {
1922
2033
  href: manageAction.href,
@@ -1925,18 +2036,18 @@ function CreatablePicker({
1925
2036
  onClick: close,
1926
2037
  className: "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
1927
2038
  children: [
1928
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
1929
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 truncate", children: manageAction.label })
2039
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
2040
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 truncate", children: manageAction.label })
1930
2041
  ]
1931
2042
  }
1932
2043
  ) : null
1933
2044
  ] }) : null,
1934
- lockedNote ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "space-y-1 border-t border-border p-2", children: [
1935
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
1936
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LockIcon, { className: "mt-px size-3 shrink-0" }),
1937
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: lockedNote })
2045
+ lockedNote ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "space-y-1 border-t border-border p-2", children: [
2046
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
2047
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(LockIcon, { className: "mt-px size-3 shrink-0" }),
2048
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { children: lockedNote })
1938
2049
  ] }),
1939
- lockedAction ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2050
+ lockedAction ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1940
2051
  "button",
1941
2052
  {
1942
2053
  type: "button",
@@ -1946,8 +2057,8 @@ function CreatablePicker({
1946
2057
  },
1947
2058
  className: "flex w-full items-center gap-2 rounded-sm px-1 py-1 text-left text-xs font-medium text-primary transition-colors hover:bg-accent",
1948
2059
  children: [
1949
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
1950
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 truncate", children: lockedAction.label })
2060
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PlusIcon, { className: "size-3.5 shrink-0" }),
2061
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "min-w-0 truncate", children: lockedAction.label })
1951
2062
  ]
1952
2063
  }
1953
2064
  ) : null
@@ -1962,14 +2073,14 @@ function CreatablePicker({
1962
2073
  var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
1963
2074
  var VisuallyHidden2 = __toESM(require("@radix-ui/react-visually-hidden"), 1);
1964
2075
  var import_react_tree3 = require("@ai-matrx/kit/react-tree");
1965
- var React16 = __toESM(require("react"), 1);
1966
- var import_jsx_runtime19 = require("react/jsx-runtime");
2076
+ var React17 = __toESM(require("react"), 1);
2077
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1967
2078
  var Dialog = ({
1968
2079
  children,
1969
2080
  ...props
1970
2081
  }) => {
1971
2082
  const modal = props.modal ?? true;
1972
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogPrimitive2.Root, { ...props, modal, children }) });
2083
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive2.Root, { ...props, modal, children }) });
1973
2084
  };
1974
2085
  Dialog.displayName = "Dialog";
1975
2086
  var DialogTrigger = DialogPrimitive2.Trigger;
@@ -1979,12 +2090,12 @@ var DialogPortal = ({
1979
2090
  ...props
1980
2091
  }) => {
1981
2092
  const resolved = usePortalContainer(container);
1982
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
2093
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1983
2094
  };
1984
2095
  DialogPortal.displayName = "DialogPortal";
1985
- var DialogContainerContext = React16.createContext(null);
1986
- var useDialogContainer = () => React16.useContext(DialogContainerContext);
1987
- var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2096
+ var DialogContainerContext = React17.createContext(null);
2097
+ var useDialogContainer = () => React17.useContext(DialogContainerContext);
2098
+ var DialogOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1988
2099
  DialogPrimitive2.Overlay,
1989
2100
  {
1990
2101
  ref,
@@ -2000,9 +2111,9 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
2000
2111
  }
2001
2112
  ));
2002
2113
  DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
2003
- var DialogContentPrimitive = React16.forwardRef((props, ref) => {
2114
+ var DialogContentPrimitive = React17.forwardRef((props, ref) => {
2004
2115
  const isModal = useRadixDialogModal();
2005
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2116
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2006
2117
  DialogPrimitive2.Content,
2007
2118
  {
2008
2119
  ...props,
@@ -2015,7 +2126,7 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
2015
2126
  var DIALOG_DESKTOP_CLASSES2 = `fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg ${CENTERED_DIALOG} gap-4 max-h-[85dvh] overflow-y-auto overscroll-contain [--dialog-pad:1.5rem] overflow-x-clip border bg-background p-6 shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full sm:rounded-lg`;
2016
2127
  var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet fixed inset-x-0 bottom-0 left-0 right-0 top-auto z-[10000] flex min-w-0 flex-col w-full max-w-full max-h-[90dvh] translate-x-0 translate-y-0 gap-4 [--dialog-pad:1rem] overflow-x-clip border-t bg-background p-4 pb-safe shadow-lg [overflow-wrap:anywhere] [&>*]:min-w-0 [&>*]:max-w-full rounded-t-2xl rounded-b-none overflow-y-auto overscroll-contain";
2017
2128
  var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-x-0 translate-y-0 w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
2018
- var DialogContent = React16.forwardRef(
2129
+ var DialogContent = React17.forwardRef(
2019
2130
  ({
2020
2131
  className,
2021
2132
  children,
@@ -2029,10 +2140,10 @@ var DialogContent = React16.forwardRef(
2029
2140
  const isModal = useRadixDialogModal();
2030
2141
  const injectedContainer = usePortalContainer(container);
2031
2142
  const asSheet = mobileSheet && isMobile;
2032
- const [containerEl, setContainerEl] = React16.useState(
2143
+ const [containerEl, setContainerEl] = React17.useState(
2033
2144
  null
2034
2145
  );
2035
- const mergedRef = React16.useCallback(
2146
+ const mergedRef = React17.useCallback(
2036
2147
  (node) => {
2037
2148
  setContainerEl(node);
2038
2149
  if (typeof ref === "function") ref(node);
@@ -2043,9 +2154,9 @@ var DialogContent = React16.forwardRef(
2043
2154
  );
2044
2155
  const hasTitle = (0, import_react_tree3.treeContainsComponent)(children, DialogTitle) || (0, import_react_tree3.treeContainsComponent)(children, DialogPrimitive2.Title);
2045
2156
  const hasDescription = (0, import_react_tree3.treeContainsComponent)(children, DialogDescription) || (0, import_react_tree3.treeContainsComponent)(children, DialogPrimitive2.Description);
2046
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DialogPortal, { container, children: [
2047
- isModal ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogOverlay, {}) : null,
2048
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2157
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DialogPortal, { container, children: [
2158
+ isModal ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogOverlay, {}) : null,
2159
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2049
2160
  DialogContentPrimitive,
2050
2161
  {
2051
2162
  ref: mergedRef,
@@ -2064,23 +2175,23 @@ var DialogContent = React16.forwardRef(
2064
2175
  ...hasDescription ? {} : { "aria-describedby": void 0 },
2065
2176
  ...props,
2066
2177
  children: [
2067
- hasTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(VisuallyHidden2.Root, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogPrimitive2.Title, { children: "Dialog" }) }),
2068
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2178
+ hasTitle ? null : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(VisuallyHidden2.Root, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogPrimitive2.Title, { children: "Dialog" }) }),
2179
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2069
2180
  PortalContainerProvider,
2070
2181
  {
2071
2182
  container: containerEl ?? injectedContainer ?? null,
2072
2183
  children
2073
2184
  }
2074
2185
  ) }),
2075
- showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
2186
+ showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2076
2187
  DialogPrimitive2.Close,
2077
2188
  {
2078
2189
  "data-slot": "dialog-close",
2079
2190
  "aria-label": "Close",
2080
2191
  className: "absolute right-2 top-4 flex h-11 w-11 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground sm:right-4 lg:h-10 lg:w-10",
2081
2192
  children: [
2082
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(XIcon, { className: "h-4 w-4" }),
2083
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "sr-only", children: "Close" })
2193
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(XIcon, { className: "h-4 w-4" }),
2194
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "sr-only", children: "Close" })
2084
2195
  ]
2085
2196
  }
2086
2197
  ) : null
@@ -2094,7 +2205,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
2094
2205
  var DialogHeader = ({
2095
2206
  className,
2096
2207
  ...props
2097
- }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2208
+ }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2098
2209
  "div",
2099
2210
  {
2100
2211
  "data-slot": "dialog-header",
@@ -2111,7 +2222,7 @@ DialogHeader.displayName = "DialogHeader";
2111
2222
  var DialogFooter = ({
2112
2223
  className,
2113
2224
  ...props
2114
- }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2225
+ }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2115
2226
  "div",
2116
2227
  {
2117
2228
  "data-slot": "dialog-footer",
@@ -2125,7 +2236,7 @@ var DialogFooter = ({
2125
2236
  }
2126
2237
  );
2127
2238
  DialogFooter.displayName = "DialogFooter";
2128
- var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2239
+ var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2129
2240
  DialogPrimitive2.Title,
2130
2241
  {
2131
2242
  ref,
@@ -2135,7 +2246,7 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
2135
2246
  }
2136
2247
  ));
2137
2248
  DialogTitle.displayName = DialogPrimitive2.Title.displayName;
2138
- var DialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2249
+ var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2139
2250
  DialogPrimitive2.Description,
2140
2251
  {
2141
2252
  ref,
@@ -2148,8 +2259,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
2148
2259
 
2149
2260
  // src/dropdown-menu.tsx
2150
2261
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
2151
- var React17 = __toESM(require("react"), 1);
2152
- var import_jsx_runtime20 = require("react/jsx-runtime");
2262
+ var React18 = __toESM(require("react"), 1);
2263
+ var import_jsx_runtime22 = require("react/jsx-runtime");
2153
2264
  var DropdownMenu = DropdownMenuPrimitive.Root;
2154
2265
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
2155
2266
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -2159,7 +2270,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
2159
2270
  var MENU_SURFACE_CLASS = "z-[10001] min-w-[8rem] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto overflow-x-hidden overscroll-contain rounded-md border bg-popover p-1 text-popover-foreground";
2160
2271
  var MENU_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
2161
2272
  var MENU_INDICATOR_ITEM_CLASS = "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
2162
- var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2273
+ var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2163
2274
  DropdownMenuPrimitive.SubTrigger,
2164
2275
  {
2165
2276
  ref,
@@ -2172,12 +2283,12 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
2172
2283
  ...props,
2173
2284
  children: [
2174
2285
  children,
2175
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
2286
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
2176
2287
  ]
2177
2288
  }
2178
2289
  ));
2179
2290
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
2180
- var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2291
+ var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2181
2292
  DropdownMenuPrimitive.SubContent,
2182
2293
  {
2183
2294
  ref,
@@ -2187,9 +2298,9 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
2187
2298
  }
2188
2299
  ));
2189
2300
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
2190
- var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
2301
+ var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
2191
2302
  const portalContainer = usePortalContainer(container);
2192
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2303
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2193
2304
  DropdownMenuPrimitive.Content,
2194
2305
  {
2195
2306
  ref,
@@ -2206,7 +2317,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, conta
2206
2317
  ) });
2207
2318
  });
2208
2319
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
2209
- var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2320
+ var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2210
2321
  DropdownMenuPrimitive.Item,
2211
2322
  {
2212
2323
  ref,
@@ -2216,7 +2327,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
2216
2327
  }
2217
2328
  ));
2218
2329
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
2219
- var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2330
+ var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2220
2331
  DropdownMenuPrimitive.CheckboxItem,
2221
2332
  {
2222
2333
  ref,
@@ -2224,13 +2335,13 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...pro
2224
2335
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
2225
2336
  ...props,
2226
2337
  children: [
2227
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
2338
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
2228
2339
  children
2229
2340
  ]
2230
2341
  }
2231
2342
  ));
2232
2343
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
2233
- var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2344
+ var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2234
2345
  DropdownMenuPrimitive.RadioItem,
2235
2346
  {
2236
2347
  ref,
@@ -2238,13 +2349,13 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
2238
2349
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
2239
2350
  ...props,
2240
2351
  children: [
2241
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2352
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2242
2353
  children
2243
2354
  ]
2244
2355
  }
2245
2356
  ));
2246
2357
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2247
- var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2358
+ var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2248
2359
  DropdownMenuPrimitive.Label,
2249
2360
  {
2250
2361
  ref,
@@ -2254,7 +2365,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
2254
2365
  }
2255
2366
  ));
2256
2367
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2257
- var DropdownMenuSeparator = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2368
+ var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2258
2369
  DropdownMenuPrimitive.Separator,
2259
2370
  {
2260
2371
  ref,
@@ -2267,7 +2378,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
2267
2378
  var DropdownMenuShortcut = ({
2268
2379
  className,
2269
2380
  ...props
2270
- }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2381
+ }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2271
2382
  "span",
2272
2383
  {
2273
2384
  "data-slot": "dropdown-menu-shortcut",
@@ -2279,7 +2390,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2279
2390
 
2280
2391
  // src/editable-label.tsx
2281
2392
  var import_react2 = require("react");
2282
- var import_jsx_runtime21 = require("react/jsx-runtime");
2393
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2283
2394
  function EditableLabel({
2284
2395
  value,
2285
2396
  onCommit,
@@ -2386,8 +2497,8 @@ function EditableLabel({
2386
2497
  setEditing
2387
2498
  ]);
2388
2499
  if (editing) {
2389
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2390
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2500
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2501
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2391
2502
  "input",
2392
2503
  {
2393
2504
  ref: inputRef,
@@ -2427,12 +2538,12 @@ function EditableLabel({
2427
2538
  )
2428
2539
  }
2429
2540
  ),
2430
- busy && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2431
- error && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2541
+ busy && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2542
+ error && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2432
2543
  ] });
2433
2544
  }
2434
2545
  if (controlled) return null;
2435
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2546
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2436
2547
  "button",
2437
2548
  {
2438
2549
  type: "button",
@@ -2466,8 +2577,8 @@ function EditableLabel({
2466
2577
  }
2467
2578
 
2468
2579
  // src/input.tsx
2469
- var React18 = __toESM(require("react"), 1);
2470
- var import_jsx_runtime22 = require("react/jsx-runtime");
2580
+ var React19 = __toESM(require("react"), 1);
2581
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2471
2582
  var getVariantStyles = (variant = "default") => {
2472
2583
  const baseStyles = `flex h-10 w-full border border-border bg-background text-foreground shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
2473
2584
  file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
@@ -2495,9 +2606,9 @@ var getVariantStyles = (variant = "default") => {
2495
2606
  return baseStyles;
2496
2607
  }
2497
2608
  };
2498
- var Input = React18.forwardRef(
2609
+ var Input = React19.forwardRef(
2499
2610
  ({ className, type, variant = "default", ...props }, ref) => {
2500
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2611
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2501
2612
  "input",
2502
2613
  {
2503
2614
  type,
@@ -2509,7 +2620,7 @@ var Input = React18.forwardRef(
2509
2620
  }
2510
2621
  );
2511
2622
  Input.displayName = "Input";
2512
- var EnterInput = React18.forwardRef(
2623
+ var EnterInput = React19.forwardRef(
2513
2624
  ({ onEnter, ...props }, ref) => {
2514
2625
  const handleKeyDown = (e) => {
2515
2626
  if (e.key === "Enter" && onEnter) {
@@ -2517,7 +2628,7 @@ var EnterInput = React18.forwardRef(
2517
2628
  onEnter();
2518
2629
  }
2519
2630
  };
2520
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2631
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2521
2632
  Input,
2522
2633
  {
2523
2634
  ...props,
@@ -2533,11 +2644,11 @@ var EnterInput = React18.forwardRef(
2533
2644
  }
2534
2645
  );
2535
2646
  EnterInput.displayName = "EnterInput";
2536
- var BasicInput = React18.forwardRef(
2647
+ var BasicInput = React19.forwardRef(
2537
2648
  // `variant` is accepted (prop-compatible with Input) but intentionally
2538
2649
  // unused — and destructured so it never leaks onto the DOM element.
2539
2650
  ({ className, type, variant: _variant = "default", ...props }, ref) => {
2540
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2651
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2541
2652
  "input",
2542
2653
  {
2543
2654
  type,
@@ -2552,10 +2663,10 @@ var BasicInput = React18.forwardRef(
2552
2663
  }
2553
2664
  );
2554
2665
  BasicInput.displayName = "BasicInput";
2555
- var InputWithPrefix = React18.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2556
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: cn("relative", wrapperClassName), children: [
2557
- prefix && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2558
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2666
+ var InputWithPrefix = React19.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2667
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: cn("relative", wrapperClassName), children: [
2668
+ prefix && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2669
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2559
2670
  Input,
2560
2671
  {
2561
2672
  ref,
@@ -2569,9 +2680,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
2569
2680
 
2570
2681
  // src/label.tsx
2571
2682
  var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
2572
- var React19 = __toESM(require("react"), 1);
2573
- var import_jsx_runtime23 = require("react/jsx-runtime");
2574
- var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2683
+ var React20 = __toESM(require("react"), 1);
2684
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2685
+ var Label3 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2575
2686
  LabelPrimitive.Root,
2576
2687
  {
2577
2688
  ref,
@@ -2586,7 +2697,7 @@ Label3.displayName = LabelPrimitive.Root.displayName;
2586
2697
 
2587
2698
  // src/overflow-toolbar.tsx
2588
2699
  var import_react3 = require("react");
2589
- var import_jsx_runtime24 = require("react/jsx-runtime");
2700
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2590
2701
  var GAP_PX = 6;
2591
2702
  var TONE = {
2592
2703
  default: "border border-border bg-background hover:bg-accent text-foreground",
@@ -2608,16 +2719,16 @@ function ToolbarButton({
2608
2719
  action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
2609
2720
  TONE[tone]
2610
2721
  );
2611
- const inner = /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
2612
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2722
+ const inner = /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
2723
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2613
2724
  Icon2,
2614
2725
  {
2615
2726
  className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
2616
2727
  }
2617
2728
  ),
2618
- showLabel && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { children: text })
2729
+ showLabel && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: text })
2619
2730
  ] });
2620
- const control = action.href && !action.disabled ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2731
+ const control = action.href && !action.disabled ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2621
2732
  "a",
2622
2733
  {
2623
2734
  href: action.href,
@@ -2627,7 +2738,7 @@ function ToolbarButton({
2627
2738
  "aria-label": action.label,
2628
2739
  children: inner
2629
2740
  }
2630
- ) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2741
+ ) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2631
2742
  "button",
2632
2743
  {
2633
2744
  type: "button",
@@ -2639,12 +2750,12 @@ function ToolbarButton({
2639
2750
  }
2640
2751
  );
2641
2752
  if (enableTooltip && action.hideLabel && renderTooltip) {
2642
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children: renderTooltip(control, action.label) });
2753
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_jsx_runtime26.Fragment, { children: renderTooltip(control, action.label) });
2643
2754
  }
2644
2755
  return control;
2645
2756
  }
2646
2757
  function OverflowTrigger({ ariaLabel }) {
2647
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2758
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2648
2759
  "button",
2649
2760
  {
2650
2761
  type: "button",
@@ -2655,7 +2766,7 @@ function OverflowTrigger({ ariaLabel }) {
2655
2766
  "inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
2656
2767
  "border border-border bg-background hover:bg-accent text-foreground"
2657
2768
  ),
2658
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2769
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2659
2770
  }
2660
2771
  );
2661
2772
  }
@@ -2715,22 +2826,22 @@ function OverflowToolbar({
2715
2826
  }, [signature, leading != null]);
2716
2827
  const shown = visibleActions.slice(0, visibleCount);
2717
2828
  const hidden = visibleActions.slice(visibleCount);
2718
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2719
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2829
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2830
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2720
2831
  "div",
2721
2832
  {
2722
2833
  ref: ghostRef,
2723
2834
  "aria-hidden": true,
2724
2835
  className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
2725
2836
  children: [
2726
- visibleActions.map((a) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(ToolbarButton, { action: a }, a.id)),
2727
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2837
+ visibleActions.map((a) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ToolbarButton, { action: a }, a.id)),
2838
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2728
2839
  ]
2729
2840
  }
2730
2841
  ),
2731
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center justify-end gap-1.5", children: [
2732
- leading != null && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2733
- shown.map((a) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2842
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-end gap-1.5", children: [
2843
+ leading != null && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2844
+ shown.map((a) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2734
2845
  ToolbarButton,
2735
2846
  {
2736
2847
  action: a,
@@ -2741,7 +2852,7 @@ function OverflowToolbar({
2741
2852
  )),
2742
2853
  hidden.length > 0 && renderOverflowMenu({
2743
2854
  actions: hidden,
2744
- trigger: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2855
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2745
2856
  })
2746
2857
  ] })
2747
2858
  ] });
@@ -2749,20 +2860,20 @@ function OverflowToolbar({
2749
2860
 
2750
2861
  // src/progress.tsx
2751
2862
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
2752
- var React21 = __toESM(require("react"), 1);
2753
- var import_jsx_runtime25 = require("react/jsx-runtime");
2863
+ var React22 = __toESM(require("react"), 1);
2864
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2754
2865
  var PROGRESS_TONES = {
2755
2866
  default: "bg-primary",
2756
2867
  success: "bg-success",
2757
2868
  warning: "bg-warning",
2758
2869
  destructive: "bg-destructive"
2759
2870
  };
2760
- var Progress = React21.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2871
+ var Progress = React22.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2761
2872
  const { value, max } = props;
2762
2873
  const ceiling = max ?? 100;
2763
2874
  const isIndeterminate = value === null || value === void 0;
2764
2875
  const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
2765
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2876
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2766
2877
  ProgressPrimitive.Root,
2767
2878
  {
2768
2879
  ref,
@@ -2772,7 +2883,7 @@ var Progress = React21.forwardRef(({ className, tone = "default", indicatorClass
2772
2883
  className
2773
2884
  ),
2774
2885
  ...props,
2775
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2886
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2776
2887
  ProgressPrimitive.Indicator,
2777
2888
  {
2778
2889
  "data-slot": "progress-indicator",
@@ -2792,9 +2903,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
2792
2903
 
2793
2904
  // src/scroll-area.tsx
2794
2905
  var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
2795
- var React22 = __toESM(require("react"), 1);
2796
- var import_jsx_runtime26 = require("react/jsx-runtime");
2797
- var ScrollArea = React22.forwardRef(
2906
+ var React23 = __toESM(require("react"), 1);
2907
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2908
+ var ScrollArea = React23.forwardRef(
2798
2909
  ({
2799
2910
  className,
2800
2911
  children,
@@ -2803,7 +2914,7 @@ var ScrollArea = React22.forwardRef(
2803
2914
  scrollBarClassName,
2804
2915
  orientation = "vertical",
2805
2916
  ...props
2806
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2917
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2807
2918
  ScrollAreaPrimitive.Root,
2808
2919
  {
2809
2920
  ref,
@@ -2811,7 +2922,7 @@ var ScrollArea = React22.forwardRef(
2811
2922
  className: cn("relative overflow-hidden", className),
2812
2923
  ...props,
2813
2924
  children: [
2814
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2925
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2815
2926
  ScrollAreaPrimitive.Viewport,
2816
2927
  {
2817
2928
  ref: viewportRef,
@@ -2820,14 +2931,14 @@ var ScrollArea = React22.forwardRef(
2820
2931
  children
2821
2932
  }
2822
2933
  ),
2823
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ScrollBar, { orientation, className: scrollBarClassName }),
2824
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ScrollAreaPrimitive.Corner, {})
2934
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ScrollBar, { orientation, className: scrollBarClassName }),
2935
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ScrollAreaPrimitive.Corner, {})
2825
2936
  ]
2826
2937
  }
2827
2938
  )
2828
2939
  );
2829
2940
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2830
- var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2941
+ var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2831
2942
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2832
2943
  {
2833
2944
  ref,
@@ -2840,7 +2951,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
2840
2951
  className
2841
2952
  ),
2842
2953
  ...props,
2843
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2954
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2844
2955
  ScrollAreaPrimitive.ScrollAreaThumb,
2845
2956
  {
2846
2957
  "data-slot": "scroll-area-thumb",
@@ -2852,7 +2963,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
2852
2963
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2853
2964
 
2854
2965
  // src/score-ring.tsx
2855
- var import_jsx_runtime27 = require("react/jsx-runtime");
2966
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2856
2967
  var DEFAULT_SCORE_THRESHOLDS = {
2857
2968
  good: 75,
2858
2969
  warning: 50
@@ -2883,7 +2994,7 @@ function ScoreRing({
2883
2994
  const circumference = 2 * Math.PI * radius;
2884
2995
  const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
2885
2996
  const dashOffset = circumference * (1 - boundedPct / 100);
2886
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2997
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2887
2998
  "div",
2888
2999
  {
2889
3000
  className: cn(
@@ -2894,8 +3005,8 @@ function ScoreRing({
2894
3005
  role: "img",
2895
3006
  "aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
2896
3007
  children: [
2897
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2898
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3008
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
3009
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2899
3010
  "circle",
2900
3011
  {
2901
3012
  cx: "50",
@@ -2906,7 +3017,7 @@ function ScoreRing({
2906
3017
  fill: "none"
2907
3018
  }
2908
3019
  ),
2909
- pct !== null ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3020
+ pct !== null ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2910
3021
  "circle",
2911
3022
  {
2912
3023
  cx: "50",
@@ -2925,8 +3036,8 @@ function ScoreRing({
2925
3036
  }
2926
3037
  ) : null
2927
3038
  ] }),
2928
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "absolute flex flex-col items-center justify-center", children: [
2929
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3039
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "absolute flex flex-col items-center justify-center", children: [
3040
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2930
3041
  "span",
2931
3042
  {
2932
3043
  className: cn(
@@ -2936,7 +3047,7 @@ function ScoreRing({
2936
3047
  children: pct === null ? "\u2014" : `${pct}${suffix}`
2937
3048
  }
2938
3049
  ),
2939
- label ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
3050
+ label ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
2940
3051
  ] })
2941
3052
  ]
2942
3053
  }
@@ -2944,7 +3055,7 @@ function ScoreRing({
2944
3055
  }
2945
3056
 
2946
3057
  // src/segmented-control.tsx
2947
- var import_jsx_runtime28 = require("react/jsx-runtime");
3058
+ var import_jsx_runtime30 = require("react/jsx-runtime");
2948
3059
  function SegmentedControl({
2949
3060
  value,
2950
3061
  onValueChange,
@@ -2959,7 +3070,7 @@ function SegmentedControl({
2959
3070
  md: "h-9 text-sm",
2960
3071
  lg: "h-10 text-base"
2961
3072
  };
2962
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3073
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2963
3074
  "div",
2964
3075
  {
2965
3076
  className: cn(
@@ -2970,7 +3081,7 @@ function SegmentedControl({
2970
3081
  role: "tablist",
2971
3082
  children: data.map((option) => {
2972
3083
  const isActive = value === option.value;
2973
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3084
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2974
3085
  "button",
2975
3086
  {
2976
3087
  type: "button",
@@ -2997,8 +3108,8 @@ function SegmentedControl({
2997
3108
  // src/select.tsx
2998
3109
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
2999
3110
  var import_class_variance_authority4 = require("class-variance-authority");
3000
- var React23 = __toESM(require("react"), 1);
3001
- var import_jsx_runtime29 = require("react/jsx-runtime");
3111
+ var React24 = __toESM(require("react"), 1);
3112
+ var import_jsx_runtime31 = require("react/jsx-runtime");
3002
3113
  var Select = SelectPrimitive.Root;
3003
3114
  var SelectGroup = SelectPrimitive.Group;
3004
3115
  var SelectValue = SelectPrimitive.Value;
@@ -3017,7 +3128,7 @@ var selectTriggerVariants = (0, import_class_variance_authority4.cva)(
3017
3128
  }
3018
3129
  }
3019
3130
  );
3020
- var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3131
+ var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3021
3132
  SelectPrimitive.Trigger,
3022
3133
  {
3023
3134
  ref,
@@ -3025,12 +3136,12 @@ var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false
3025
3136
  ...props,
3026
3137
  children: [
3027
3138
  children,
3028
- !hideArrow && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
3139
+ !hideArrow && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
3029
3140
  ]
3030
3141
  }
3031
3142
  ));
3032
3143
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3033
- var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3144
+ var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3034
3145
  SelectPrimitive.ScrollUpButton,
3035
3146
  {
3036
3147
  ref,
@@ -3039,11 +3150,11 @@ var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) =>
3039
3150
  className
3040
3151
  ),
3041
3152
  ...props,
3042
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixChevronUpIcon, {})
3153
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixChevronUpIcon, {})
3043
3154
  }
3044
3155
  ));
3045
3156
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3046
- var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3157
+ var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3047
3158
  SelectPrimitive.ScrollDownButton,
3048
3159
  {
3049
3160
  ref,
@@ -3052,11 +3163,11 @@ var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) =
3052
3163
  className
3053
3164
  ),
3054
3165
  ...props,
3055
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadixChevronDownIcon, {})
3166
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixChevronDownIcon, {})
3056
3167
  }
3057
3168
  ));
3058
3169
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3059
- var SelectContent = React23.forwardRef(
3170
+ var SelectContent = React24.forwardRef(
3060
3171
  ({
3061
3172
  className,
3062
3173
  children,
@@ -3066,7 +3177,7 @@ var SelectContent = React23.forwardRef(
3066
3177
  ...props
3067
3178
  }, ref) => {
3068
3179
  const portalContainer = usePortalContainer(container);
3069
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3180
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3070
3181
  SelectPrimitive.Content,
3071
3182
  {
3072
3183
  ref,
@@ -3084,8 +3195,8 @@ var SelectContent = React23.forwardRef(
3084
3195
  position,
3085
3196
  ...props,
3086
3197
  children: [
3087
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectScrollUpButton, {}),
3088
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3198
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectScrollUpButton, {}),
3199
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3089
3200
  SelectPrimitive.Viewport,
3090
3201
  {
3091
3202
  className: cn(
@@ -3095,14 +3206,14 @@ var SelectContent = React23.forwardRef(
3095
3206
  children
3096
3207
  }
3097
3208
  ),
3098
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectScrollDownButton, {})
3209
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectScrollDownButton, {})
3099
3210
  ]
3100
3211
  }
3101
3212
  ) });
3102
3213
  }
3103
3214
  );
3104
3215
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3105
- var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3216
+ var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3106
3217
  SelectPrimitive.Label,
3107
3218
  {
3108
3219
  ref,
@@ -3111,7 +3222,7 @@ var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
3111
3222
  }
3112
3223
  ));
3113
3224
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
3114
- var SelectItem = React23.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
3225
+ var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3115
3226
  SelectPrimitive.Item,
3116
3227
  {
3117
3228
  ref,
@@ -3122,14 +3233,14 @@ var SelectItem = React23.forwardRef(({ className, children, description, ...prop
3122
3233
  ),
3123
3234
  ...props,
3124
3235
  children: [
3125
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
3126
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.ItemText, { children }),
3127
- description ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
3236
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(CheckIcon, { className: "h-4 w-4" }) }) }),
3237
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SelectPrimitive.ItemText, { children }),
3238
+ description ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
3128
3239
  ]
3129
3240
  }
3130
3241
  ));
3131
3242
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3132
- var SelectSeparator = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3243
+ var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3133
3244
  SelectPrimitive.Separator,
3134
3245
  {
3135
3246
  ref,
@@ -3141,9 +3252,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3141
3252
 
3142
3253
  // src/separator.tsx
3143
3254
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
3144
- var React24 = __toESM(require("react"), 1);
3145
- var import_jsx_runtime30 = require("react/jsx-runtime");
3146
- var Separator4 = React24.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3255
+ var React25 = __toESM(require("react"), 1);
3256
+ var import_jsx_runtime32 = require("react/jsx-runtime");
3257
+ var Separator4 = React25.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3147
3258
  SeparatorPrimitive.Root,
3148
3259
  {
3149
3260
  ref,
@@ -3163,11 +3274,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
3163
3274
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
3164
3275
  var import_react_tree4 = require("@ai-matrx/kit/react-tree");
3165
3276
  var import_class_variance_authority5 = require("class-variance-authority");
3166
- var React25 = __toESM(require("react"), 1);
3167
- var import_jsx_runtime31 = require("react/jsx-runtime");
3168
- var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
3277
+ var React26 = __toESM(require("react"), 1);
3278
+ var import_jsx_runtime33 = require("react/jsx-runtime");
3279
+ var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
3169
3280
  const isModal = useRadixDialogModal();
3170
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3281
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3171
3282
  SheetPrimitive.Content,
3172
3283
  {
3173
3284
  ...props,
@@ -3177,15 +3288,15 @@ var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
3177
3288
  );
3178
3289
  });
3179
3290
  SheetContentBase.displayName = "SheetContentBase";
3180
- var Sheet = React25.forwardRef(({ children, ...props }, _ref) => {
3291
+ var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
3181
3292
  const modal = props.modal ?? true;
3182
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SheetPrimitive.Root, { ...props, modal, children }) });
3293
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SheetPrimitive.Root, { ...props, modal, children }) });
3183
3294
  });
3184
3295
  Sheet.displayName = "Sheet";
3185
3296
  var SheetTrigger = SheetPrimitive.Trigger;
3186
3297
  var SheetClose = SheetPrimitive.Close;
3187
3298
  var SheetPortal = SheetPrimitive.Portal;
3188
- var SheetOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3299
+ var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3189
3300
  SheetPrimitive.Overlay,
3190
3301
  {
3191
3302
  className: cn(
@@ -3222,7 +3333,7 @@ var sheetVariants = (0, import_class_variance_authority5.cva)(
3222
3333
  }
3223
3334
  }
3224
3335
  );
3225
- var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3336
+ var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3226
3337
  SheetPrimitive.Description,
3227
3338
  {
3228
3339
  ref,
@@ -3231,7 +3342,7 @@ var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @
3231
3342
  }
3232
3343
  ));
3233
3344
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
3234
- var SheetContent = React25.forwardRef(
3345
+ var SheetContent = React26.forwardRef(
3235
3346
  ({
3236
3347
  side = "right",
3237
3348
  className,
@@ -3243,9 +3354,9 @@ var SheetContent = React25.forwardRef(
3243
3354
  ...props
3244
3355
  }, ref) => {
3245
3356
  const hasDescription = (0, import_react_tree4.treeContainsComponent)(children, SheetDescription) || (0, import_react_tree4.treeContainsComponent)(children, SheetPrimitive.Description);
3246
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(SheetPortal, { children: [
3247
- !hideOverlay && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(SheetOverlay, { className: overlayClassName }),
3248
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3357
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(SheetPortal, { children: [
3358
+ !hideOverlay && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SheetOverlay, { className: overlayClassName }),
3359
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
3249
3360
  SheetContentBase,
3250
3361
  {
3251
3362
  ref,
@@ -3257,9 +3368,9 @@ var SheetContent = React25.forwardRef(
3257
3368
  ...hasDescription ? {} : { "aria-describedby": void 0 },
3258
3369
  ...props,
3259
3370
  children: [
3260
- !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
3261
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Cross2Icon, { className: "h-4 w-4" }),
3262
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "sr-only", children: "Close" })
3371
+ !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
3372
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Cross2Icon, { className: "h-4 w-4" }),
3373
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "sr-only", children: "Close" })
3263
3374
  ] }),
3264
3375
  children
3265
3376
  ]
@@ -3272,7 +3383,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
3272
3383
  var SheetHeader = ({
3273
3384
  className,
3274
3385
  ...props
3275
- }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3386
+ }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3276
3387
  "div",
3277
3388
  {
3278
3389
  className: cn(
@@ -3286,7 +3397,7 @@ SheetHeader.displayName = "SheetHeader";
3286
3397
  var SheetFooter = ({
3287
3398
  className,
3288
3399
  ...props
3289
- }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3400
+ }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3290
3401
  "div",
3291
3402
  {
3292
3403
  className: cn(
@@ -3297,7 +3408,7 @@ var SheetFooter = ({
3297
3408
  }
3298
3409
  );
3299
3410
  SheetFooter.displayName = "SheetFooter";
3300
- var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3411
+ var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3301
3412
  SheetPrimitive.Title,
3302
3413
  {
3303
3414
  ref,
@@ -3308,9 +3419,9 @@ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
3308
3419
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
3309
3420
 
3310
3421
  // src/skeleton.tsx
3311
- var import_jsx_runtime32 = require("react/jsx-runtime");
3422
+ var import_jsx_runtime34 = require("react/jsx-runtime");
3312
3423
  function Skeleton({ className, animated = true, ...props }) {
3313
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3424
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3314
3425
  "div",
3315
3426
  {
3316
3427
  "data-slot": "skeleton",
@@ -3326,8 +3437,8 @@ function Skeleton({ className, animated = true, ...props }) {
3326
3437
 
3327
3438
  // src/switch.tsx
3328
3439
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
3329
- var React26 = __toESM(require("react"), 1);
3330
- var import_jsx_runtime33 = require("react/jsx-runtime");
3440
+ var React27 = __toESM(require("react"), 1);
3441
+ var import_jsx_runtime35 = require("react/jsx-runtime");
3331
3442
  var SWITCH_SIZES = {
3332
3443
  sm: {
3333
3444
  root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
@@ -3338,7 +3449,7 @@ var SWITCH_SIZES = {
3338
3449
  thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
3339
3450
  }
3340
3451
  };
3341
- var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3452
+ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3342
3453
  SwitchPrimitives.Root,
3343
3454
  {
3344
3455
  ref,
@@ -3349,7 +3460,7 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
3349
3460
  className
3350
3461
  ),
3351
3462
  ...props,
3352
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3463
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3353
3464
  SwitchPrimitives.Thumb,
3354
3465
  {
3355
3466
  "data-slot": "switch-thumb",
@@ -3365,7 +3476,7 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
3365
3476
 
3366
3477
  // src/tabbed-bottom-sheet.tsx
3367
3478
  var import_react4 = require("react");
3368
- var import_jsx_runtime34 = require("react/jsx-runtime");
3479
+ var import_jsx_runtime36 = require("react/jsx-runtime");
3369
3480
  function TabbedBottomSheet({
3370
3481
  open,
3371
3482
  onOpenChange,
@@ -3379,15 +3490,15 @@ function TabbedBottomSheet({
3379
3490
  if (open) setSelectedTabId(null);
3380
3491
  }
3381
3492
  const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
3382
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3493
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3383
3494
  BottomSheet,
3384
3495
  {
3385
3496
  open,
3386
3497
  onOpenChange,
3387
3498
  title,
3388
3499
  size: "full",
3389
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3390
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3500
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3501
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3391
3502
  BottomSheetHeader,
3392
3503
  {
3393
3504
  title: selectedTab ? selectedTab.label : title,
@@ -3395,19 +3506,19 @@ function TabbedBottomSheet({
3395
3506
  onBack: () => setSelectedTabId(null)
3396
3507
  }
3397
3508
  ),
3398
- selectedTab ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(BottomSheetBody, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3509
+ selectedTab ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(BottomSheetBody, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3399
3510
  const Icon2 = tab.icon;
3400
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
3511
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3401
3512
  "button",
3402
3513
  {
3403
3514
  type: "button",
3404
3515
  onClick: () => setSelectedTabId(tab.id),
3405
3516
  className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
3406
3517
  children: [
3407
- Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3408
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3518
+ Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3519
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3409
3520
  tab.trailing,
3410
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3521
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3411
3522
  ]
3412
3523
  }
3413
3524
  ) }, tab.id);
@@ -3418,19 +3529,19 @@ function TabbedBottomSheet({
3418
3529
  }
3419
3530
 
3420
3531
  // src/table.tsx
3421
- var React27 = __toESM(require("react"), 1);
3422
- var import_jsx_runtime35 = require("react/jsx-runtime");
3532
+ var React28 = __toESM(require("react"), 1);
3533
+ var import_jsx_runtime37 = require("react/jsx-runtime");
3423
3534
  var TABLE_SIZES = {
3424
3535
  sm: { head: "px-2", cell: "p-2" },
3425
3536
  md: { head: "px-3", cell: "p-3" }
3426
3537
  };
3427
- var TableSizeContext = React27.createContext("md");
3538
+ var TableSizeContext = React28.createContext("md");
3428
3539
  function useTableSize() {
3429
- return React27.useContext(TableSizeContext);
3540
+ return React28.useContext(TableSizeContext);
3430
3541
  }
3431
- var Table = React27.forwardRef(
3542
+ var Table = React28.forwardRef(
3432
3543
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
3433
- const table = /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3544
+ const table = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3434
3545
  "table",
3435
3546
  {
3436
3547
  ref,
@@ -3440,7 +3551,7 @@ var Table = React27.forwardRef(
3440
3551
  ...props
3441
3552
  }
3442
3553
  );
3443
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3554
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3444
3555
  "div",
3445
3556
  {
3446
3557
  "data-slot": "table-wrapper",
@@ -3451,7 +3562,7 @@ var Table = React27.forwardRef(
3451
3562
  }
3452
3563
  );
3453
3564
  Table.displayName = "Table";
3454
- var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3565
+ var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3455
3566
  "thead",
3456
3567
  {
3457
3568
  ref,
@@ -3465,7 +3576,7 @@ var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, r
3465
3576
  }
3466
3577
  ));
3467
3578
  TableHeader.displayName = "TableHeader";
3468
- var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3579
+ var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3469
3580
  "tbody",
3470
3581
  {
3471
3582
  ref,
@@ -3475,7 +3586,7 @@ var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3475
3586
  }
3476
3587
  ));
3477
3588
  TableBody.displayName = "TableBody";
3478
- var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3589
+ var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3479
3590
  "tfoot",
3480
3591
  {
3481
3592
  ref,
@@ -3488,7 +3599,7 @@ var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
3488
3599
  }
3489
3600
  ));
3490
3601
  TableFooter.displayName = "TableFooter";
3491
- var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3602
+ var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3492
3603
  "tr",
3493
3604
  {
3494
3605
  ref,
@@ -3501,9 +3612,9 @@ var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3501
3612
  }
3502
3613
  ));
3503
3614
  TableRow.displayName = "TableRow";
3504
- var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
3615
+ var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3505
3616
  const size = useTableSize();
3506
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3617
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3507
3618
  "th",
3508
3619
  {
3509
3620
  ref,
@@ -3518,9 +3629,9 @@ var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
3518
3629
  );
3519
3630
  });
3520
3631
  TableHead.displayName = "TableHead";
3521
- var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
3632
+ var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3522
3633
  const size = useTableSize();
3523
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3634
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3524
3635
  "td",
3525
3636
  {
3526
3637
  ref,
@@ -3535,7 +3646,7 @@ var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
3535
3646
  );
3536
3647
  });
3537
3648
  TableCell.displayName = "TableCell";
3538
- var TableCaption = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3649
+ var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3539
3650
  "caption",
3540
3651
  {
3541
3652
  ref,
@@ -3548,11 +3659,11 @@ TableCaption.displayName = "TableCaption";
3548
3659
 
3549
3660
  // src/tabs.tsx
3550
3661
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
3551
- var React28 = __toESM(require("react"), 1);
3552
- var import_jsx_runtime36 = require("react/jsx-runtime");
3662
+ var React29 = __toESM(require("react"), 1);
3663
+ var import_jsx_runtime38 = require("react/jsx-runtime");
3553
3664
  var Tabs = TabsPrimitive.Root;
3554
3665
  var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
3555
- var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3666
+ var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3556
3667
  TabsPrimitive.List,
3557
3668
  {
3558
3669
  ref,
@@ -3565,7 +3676,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3565
3676
  }
3566
3677
  ));
3567
3678
  TabsList.displayName = TabsPrimitive.List.displayName;
3568
- var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3679
+ var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3569
3680
  TabsPrimitive.Trigger,
3570
3681
  {
3571
3682
  ref,
@@ -3579,7 +3690,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3579
3690
  }
3580
3691
  ));
3581
3692
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3582
- var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3693
+ var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3583
3694
  TabsPrimitive.Trigger,
3584
3695
  {
3585
3696
  ref,
@@ -3589,7 +3700,7 @@ var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @_
3589
3700
  }
3590
3701
  ));
3591
3702
  TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
3592
- var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3703
+ var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3593
3704
  TabsPrimitive.Content,
3594
3705
  {
3595
3706
  ref,
@@ -3605,8 +3716,8 @@ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3605
3716
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3606
3717
 
3607
3718
  // src/textarea.tsx
3608
- var React29 = __toESM(require("react"), 1);
3609
- var import_jsx_runtime37 = require("react/jsx-runtime");
3719
+ var React30 = __toESM(require("react"), 1);
3720
+ var import_jsx_runtime39 = require("react/jsx-runtime");
3610
3721
  var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
3611
3722
  var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
3612
3723
  function getStretchClasses(className) {
@@ -3619,7 +3730,7 @@ function getStretchClasses(className) {
3619
3730
  var TEXTAREA_ELEVATED_CLASS = "flex h-auto w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground shadow-textarea transition duration-400 placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[2px] focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
3620
3731
  var TEXTAREA_CONTROL_CLASS = "flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm text-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50";
3621
3732
  function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3622
- React29.useEffect(() => {
3733
+ React30.useEffect(() => {
3623
3734
  if (!autoGrow || !ref.current) return;
3624
3735
  const textarea = ref.current;
3625
3736
  textarea.style.height = "auto";
@@ -3635,8 +3746,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3635
3746
  }, [value, autoGrow, minHeight, maxHeight, ref]);
3636
3747
  }
3637
3748
  function useMergedTextareaRef(forwarded) {
3638
- const internal = React29.useRef(null);
3639
- const callback = React29.useCallback(
3749
+ const internal = React30.useRef(null);
3750
+ const callback = React30.useCallback(
3640
3751
  (node) => {
3641
3752
  internal.current = node;
3642
3753
  if (typeof forwarded === "function") forwarded(node);
@@ -3653,13 +3764,13 @@ function boxStyle(minHeight, maxHeight) {
3653
3764
  maxHeight: maxHeight ? `${maxHeight}px` : void 0
3654
3765
  };
3655
3766
  }
3656
- var Textarea = React29.forwardRef(
3767
+ var Textarea = React30.forwardRef(
3657
3768
  ({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
3658
3769
  const { ref, callback } = useMergedTextareaRef(forwarded);
3659
3770
  const stretchClasses = getStretchClasses(className);
3660
3771
  const needsWrapper = Boolean(wrapperClassName || stretchClasses);
3661
3772
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3662
- const textarea = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3773
+ const textarea = /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3663
3774
  "textarea",
3664
3775
  {
3665
3776
  ref: callback,
@@ -3675,15 +3786,15 @@ var Textarea = React29.forwardRef(
3675
3786
  }
3676
3787
  );
3677
3788
  if (!needsWrapper) return textarea;
3678
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3789
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3679
3790
  }
3680
3791
  );
3681
3792
  Textarea.displayName = "Textarea";
3682
- var BasicTextarea = React29.forwardRef(
3793
+ var BasicTextarea = React30.forwardRef(
3683
3794
  ({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
3684
3795
  const { ref, callback } = useMergedTextareaRef(forwarded);
3685
3796
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3686
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3797
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3687
3798
  "textarea",
3688
3799
  {
3689
3800
  ref: callback,
@@ -3701,7 +3812,7 @@ var BasicTextarea = React29.forwardRef(
3701
3812
  }
3702
3813
  );
3703
3814
  BasicTextarea.displayName = "BasicTextarea";
3704
- var TextareaWithPrefix = React29.forwardRef(
3815
+ var TextareaWithPrefix = React30.forwardRef(
3705
3816
  ({
3706
3817
  prefix,
3707
3818
  className,
@@ -3713,13 +3824,13 @@ var TextareaWithPrefix = React29.forwardRef(
3713
3824
  }, forwarded) => {
3714
3825
  const { ref, callback } = useMergedTextareaRef(forwarded);
3715
3826
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3716
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3827
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
3717
3828
  "div",
3718
3829
  {
3719
3830
  className: cn("relative", getStretchClasses(className), wrapperClassName),
3720
3831
  children: [
3721
- prefix ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3722
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3832
+ prefix ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3833
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3723
3834
  "textarea",
3724
3835
  {
3725
3836
  ref: callback,
@@ -3798,14 +3909,14 @@ function useScrollFade() {
3798
3909
 
3799
3910
  // src/hover-card.tsx
3800
3911
  var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
3801
- var React30 = __toESM(require("react"), 1);
3802
- var import_jsx_runtime38 = require("react/jsx-runtime");
3912
+ var React31 = __toESM(require("react"), 1);
3913
+ var import_jsx_runtime40 = require("react/jsx-runtime");
3803
3914
  var HoverCard = HoverCardPrimitive.Root;
3804
3915
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
3805
- var HoverCardContent = React30.forwardRef(
3916
+ var HoverCardContent = React31.forwardRef(
3806
3917
  ({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
3807
3918
  const resolved = usePortalContainer(container);
3808
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3919
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3809
3920
  HoverCardPrimitive.Content,
3810
3921
  {
3811
3922
  ref,
@@ -3826,9 +3937,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3826
3937
 
3827
3938
  // src/radio-group.tsx
3828
3939
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
3829
- var React31 = __toESM(require("react"), 1);
3830
- var import_jsx_runtime39 = require("react/jsx-runtime");
3831
- var RadioGroupSizeContext = React31.createContext("md");
3940
+ var React32 = __toESM(require("react"), 1);
3941
+ var import_jsx_runtime41 = require("react/jsx-runtime");
3942
+ var RadioGroupSizeContext = React32.createContext("md");
3832
3943
  var CONTROL_CLASSES = {
3833
3944
  sm: "h-3.5 w-3.5",
3834
3945
  md: "h-4 w-4",
@@ -3839,7 +3950,7 @@ var DOT_CLASSES = {
3839
3950
  md: "h-1.5 w-1.5",
3840
3951
  lg: "h-2 w-2"
3841
3952
  };
3842
- var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3953
+ var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3843
3954
  RadioGroupPrimitive.Root,
3844
3955
  {
3845
3956
  ref,
@@ -3849,10 +3960,10 @@ var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref)
3849
3960
  }
3850
3961
  ) }));
3851
3962
  RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
3852
- var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) => {
3853
- const groupSize = React31.useContext(RadioGroupSizeContext);
3963
+ var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
3964
+ const groupSize = React32.useContext(RadioGroupSizeContext);
3854
3965
  const resolved = size ?? groupSize;
3855
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3966
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3856
3967
  RadioGroupPrimitive.Item,
3857
3968
  {
3858
3969
  ref,
@@ -3869,7 +3980,7 @@ var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) =>
3869
3980
  className
3870
3981
  ),
3871
3982
  ...props,
3872
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3983
+ children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3873
3984
  "div",
3874
3985
  {
3875
3986
  className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
@@ -3882,7 +3993,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3882
3993
 
3883
3994
  // src/resizable.tsx
3884
3995
  var import_react_resizable_panels = require("react-resizable-panels");
3885
- var import_jsx_runtime40 = require("react/jsx-runtime");
3996
+ var import_jsx_runtime42 = require("react/jsx-runtime");
3886
3997
  var HANDLE_SIZES = {
3887
3998
  xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
3888
3999
  sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
@@ -3896,7 +4007,7 @@ var HANDLE_SIZES = {
3896
4007
  var ResizablePanelGroup = ({
3897
4008
  className,
3898
4009
  ...props
3899
- }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4010
+ }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3900
4011
  import_react_resizable_panels.Group,
3901
4012
  {
3902
4013
  "data-slot": "resizable-group",
@@ -3911,7 +4022,7 @@ var ResizableHandle = ({
3911
4022
  size = "xs",
3912
4023
  className,
3913
4024
  ...props
3914
- }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4025
+ }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3915
4026
  import_react_resizable_panels.Separator,
3916
4027
  {
3917
4028
  "data-slot": "resizable-handle",
@@ -3931,15 +4042,15 @@ var ResizableHandle = ({
3931
4042
  className
3932
4043
  ),
3933
4044
  ...props,
3934
- children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
4045
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
3935
4046
  }
3936
4047
  );
3937
4048
  ResizableHandle.displayName = "ResizableHandle";
3938
4049
 
3939
4050
  // src/slider.tsx
3940
4051
  var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
3941
- var React32 = __toESM(require("react"), 1);
3942
- var import_jsx_runtime41 = require("react/jsx-runtime");
4052
+ var React33 = __toESM(require("react"), 1);
4053
+ var import_jsx_runtime43 = require("react/jsx-runtime");
3943
4054
  var TRACK_CLASSES = {
3944
4055
  sm: "h-1",
3945
4056
  md: "h-1.5",
@@ -3950,12 +4061,12 @@ var THUMB_CLASSES = {
3950
4061
  md: "h-4 w-4",
3951
4062
  lg: "h-5 w-5"
3952
4063
  };
3953
- var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
4064
+ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
3954
4065
  const thumbCount = Math.max(
3955
4066
  1,
3956
4067
  (props.value ?? props.defaultValue ?? [0]).length
3957
4068
  );
3958
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
4069
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
3959
4070
  SliderPrimitive.Root,
3960
4071
  {
3961
4072
  ref,
@@ -3967,7 +4078,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3967
4078
  ),
3968
4079
  ...props,
3969
4080
  children: [
3970
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4081
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3971
4082
  SliderPrimitive.Track,
3972
4083
  {
3973
4084
  "data-slot": "slider-track",
@@ -3976,7 +4087,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3976
4087
  TRACK_CLASSES[size],
3977
4088
  "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
3978
4089
  ),
3979
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4090
+ children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3980
4091
  SliderPrimitive.Range,
3981
4092
  {
3982
4093
  "data-slot": "slider-range",
@@ -3985,7 +4096,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3985
4096
  )
3986
4097
  }
3987
4098
  ),
3988
- Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4099
+ Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3989
4100
  SliderPrimitive.Thumb,
3990
4101
  {
3991
4102
  "data-slot": "slider-thumb",
@@ -4012,8 +4123,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
4012
4123
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
4013
4124
  var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
4014
4125
  var import_class_variance_authority6 = require("class-variance-authority");
4015
- var React33 = __toESM(require("react"), 1);
4016
- var import_jsx_runtime42 = require("react/jsx-runtime");
4126
+ var React34 = __toESM(require("react"), 1);
4127
+ var import_jsx_runtime44 = require("react/jsx-runtime");
4017
4128
  var toggleVariants = (0, import_class_variance_authority6.cva)(
4018
4129
  "inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
4019
4130
  {
@@ -4034,7 +4145,7 @@ var toggleVariants = (0, import_class_variance_authority6.cva)(
4034
4145
  }
4035
4146
  }
4036
4147
  );
4037
- var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
4148
+ var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4038
4149
  TogglePrimitive.Root,
4039
4150
  {
4040
4151
  ref,
@@ -4044,21 +4155,21 @@ var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) =>
4044
4155
  }
4045
4156
  ));
4046
4157
  Toggle.displayName = TogglePrimitive.Root.displayName;
4047
- var ToggleGroupContext = React33.createContext({ size: "default", variant: "default" });
4048
- var ToggleGroup = React33.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
4158
+ var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
4159
+ var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4049
4160
  ToggleGroupPrimitive.Root,
4050
4161
  {
4051
4162
  ref,
4052
4163
  "data-slot": "toggle-group",
4053
4164
  className: cn("flex items-center justify-center gap-1", className),
4054
4165
  ...props,
4055
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
4166
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
4056
4167
  }
4057
4168
  ));
4058
4169
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
4059
- var ToggleGroupItem = React33.forwardRef(({ className, children, variant, size, ...props }, ref) => {
4060
- const context = React33.useContext(ToggleGroupContext);
4061
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
4170
+ var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
4171
+ const context = React34.useContext(ToggleGroupContext);
4172
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4062
4173
  ToggleGroupPrimitive.Item,
4063
4174
  {
4064
4175
  ref,
@@ -4079,14 +4190,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
4079
4190
 
4080
4191
  // src/tooltip.tsx
4081
4192
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
4082
- var React34 = __toESM(require("react"), 1);
4083
- var import_jsx_runtime43 = require("react/jsx-runtime");
4193
+ var React35 = __toESM(require("react"), 1);
4194
+ var import_jsx_runtime45 = require("react/jsx-runtime");
4084
4195
  var TooltipProvider = TooltipPrimitive.Provider;
4085
4196
  var Tooltip = TooltipPrimitive.Root;
4086
4197
  var TooltipTrigger = TooltipPrimitive.Trigger;
4087
- var TooltipContent = React34.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4198
+ var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
4088
4199
  const resolved = usePortalContainer(container);
4089
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
4200
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4090
4201
  TooltipPrimitive.Content,
4091
4202
  {
4092
4203
  ref,