@ai-matrx/design-system 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1300,10 +1300,122 @@ var CommandShortcut = ({
1300
1300
  };
1301
1301
  CommandShortcut.displayName = "CommandShortcut";
1302
1302
 
1303
+ // src/confirm-dialog.tsx
1304
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
1305
+ function ConfirmDialog({
1306
+ open,
1307
+ onOpenChange,
1308
+ title,
1309
+ description,
1310
+ content,
1311
+ contentClassName,
1312
+ confirmLabel = "Confirm",
1313
+ cancelLabel = "Cancel",
1314
+ variant = "default",
1315
+ busy = false,
1316
+ confirmDisabled = false,
1317
+ portalContainer,
1318
+ onConfirm
1319
+ }) {
1320
+ return /* @__PURE__ */ jsx16(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs7(
1321
+ AlertDialogContent,
1322
+ {
1323
+ className: contentClassName,
1324
+ ...portalContainer === void 0 ? {} : { container: portalContainer },
1325
+ children: [
1326
+ /* @__PURE__ */ jsxs7(AlertDialogHeader, { children: [
1327
+ /* @__PURE__ */ jsx16(AlertDialogTitle, { children: title }),
1328
+ description ? /* @__PURE__ */ jsx16(AlertDialogDescription, { children: description }) : null
1329
+ ] }),
1330
+ content ?? null,
1331
+ /* @__PURE__ */ jsxs7(AlertDialogFooter, { children: [
1332
+ cancelLabel === null ? null : /* @__PURE__ */ jsx16(AlertDialogCancel, { className: "max-lg:min-h-11", disabled: busy, children: cancelLabel }),
1333
+ /* @__PURE__ */ jsxs7(
1334
+ AlertDialogAction,
1335
+ {
1336
+ disabled: busy || confirmDisabled,
1337
+ onClick: (event) => {
1338
+ event.preventDefault();
1339
+ void onConfirm();
1340
+ },
1341
+ className: cn(
1342
+ "max-lg:min-h-11",
1343
+ // One source of button appearance: the destructive look comes
1344
+ // from `buttonVariants`, not a second hand-written copy of it.
1345
+ // tailwind-merge makes it WIN over the default variant classes.
1346
+ variant === "destructive" && buttonVariants({ variant: "destructive" })
1347
+ ),
1348
+ children: [
1349
+ busy ? /* @__PURE__ */ jsx16(Loader2Icon, { className: cn("mr-2 h-4 w-4", MOTION_SPIN) }) : null,
1350
+ confirmLabel
1351
+ ]
1352
+ }
1353
+ )
1354
+ ] })
1355
+ ]
1356
+ }
1357
+ ) });
1358
+ }
1359
+
1360
+ // src/confirm-host.tsx
1361
+ import {
1362
+ _registerHost,
1363
+ _unregisterHost
1364
+ } from "@ai-matrx/kit/confirm-opener";
1365
+ import * as React14 from "react";
1366
+ import { jsx as jsx17 } from "react/jsx-runtime";
1367
+ function ConfirmDialogHost() {
1368
+ const [active, setActive] = React14.useState(null);
1369
+ const [tick, setTick] = React14.useState(0);
1370
+ const queueRef = React14.useRef([]);
1371
+ React14.useEffect(() => {
1372
+ const controller = {
1373
+ show: (opts, resolve) => {
1374
+ queueRef.current.push({ opts, resolve });
1375
+ setTick((n) => n + 1);
1376
+ }
1377
+ };
1378
+ _registerHost(controller);
1379
+ return () => _unregisterHost(controller);
1380
+ }, []);
1381
+ React14.useEffect(() => {
1382
+ if (active === null && queueRef.current.length > 0) {
1383
+ setActive(queueRef.current.shift());
1384
+ }
1385
+ }, [active, tick]);
1386
+ const handleConfirm = React14.useCallback(() => {
1387
+ if (!active) return;
1388
+ active.resolve(true);
1389
+ setActive(null);
1390
+ }, [active]);
1391
+ const handleOpenChange = React14.useCallback(
1392
+ (open) => {
1393
+ if (!open && active) {
1394
+ active.resolve(false);
1395
+ setActive(null);
1396
+ }
1397
+ },
1398
+ [active]
1399
+ );
1400
+ return /* @__PURE__ */ jsx17(
1401
+ ConfirmDialog,
1402
+ {
1403
+ open: !!active,
1404
+ onOpenChange: handleOpenChange,
1405
+ title: active?.opts.title ?? "",
1406
+ description: active?.opts.description,
1407
+ confirmLabel: active?.opts.confirmLabel,
1408
+ cancelLabel: active?.opts.cancelLabel,
1409
+ variant: active?.opts.variant,
1410
+ onConfirm: handleConfirm
1411
+ }
1412
+ );
1413
+ }
1414
+
1303
1415
  // src/context-menu.tsx
1304
1416
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1305
- import * as React14 from "react";
1306
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
1417
+ import * as React15 from "react";
1418
+ import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
1307
1419
  var ContextMenu = ContextMenuPrimitive.Root;
1308
1420
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1309
1421
  var ContextMenuGroup = ContextMenuPrimitive.Group;
@@ -1313,7 +1425,7 @@ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1313
1425
  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";
1314
1426
  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";
1315
1427
  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";
1316
- var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1428
+ var ContextMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1317
1429
  ContextMenuPrimitive.SubTrigger,
1318
1430
  {
1319
1431
  ref,
@@ -1326,12 +1438,12 @@ var ContextMenuSubTrigger = React14.forwardRef(({ className, inset, children, ..
1326
1438
  ...props,
1327
1439
  children: [
1328
1440
  children,
1329
- /* @__PURE__ */ jsx16(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1441
+ /* @__PURE__ */ jsx18(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1330
1442
  ]
1331
1443
  }
1332
1444
  ));
1333
1445
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1334
- var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1446
+ var ContextMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1335
1447
  ContextMenuPrimitive.SubContent,
1336
1448
  {
1337
1449
  ref,
@@ -1341,9 +1453,9 @@ var ContextMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =>
1341
1453
  }
1342
1454
  ));
1343
1455
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1344
- var ContextMenuContent = React14.forwardRef(({ className, container, ...props }, ref) => {
1456
+ var ContextMenuContent = React15.forwardRef(({ className, container, ...props }, ref) => {
1345
1457
  const portalContainer = usePortalContainer(container);
1346
- return /* @__PURE__ */ jsx16(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx16(
1458
+ return /* @__PURE__ */ jsx18(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx18(
1347
1459
  ContextMenuPrimitive.Content,
1348
1460
  {
1349
1461
  ref,
@@ -1354,7 +1466,7 @@ var ContextMenuContent = React14.forwardRef(({ className, container, ...props },
1354
1466
  ) });
1355
1467
  });
1356
1468
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1357
- var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
1469
+ var ContextMenuItem = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1358
1470
  ContextMenuPrimitive.Item,
1359
1471
  {
1360
1472
  ref,
@@ -1369,7 +1481,7 @@ var ContextMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) =
1369
1481
  }
1370
1482
  ));
1371
1483
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1372
- var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1484
+ var ContextMenuCheckboxItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1373
1485
  ContextMenuPrimitive.CheckboxItem,
1374
1486
  {
1375
1487
  ref,
@@ -1377,13 +1489,13 @@ var ContextMenuCheckboxItem = React14.forwardRef(({ className, children, ...prop
1377
1489
  className: cn(INDICATOR_ITEM_CLASS, className),
1378
1490
  ...props,
1379
1491
  children: [
1380
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(CheckIcon, { className: "h-4 w-4" }) }) }),
1492
+ /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(CheckIcon, { className: "h-4 w-4" }) }) }),
1381
1493
  children
1382
1494
  ]
1383
1495
  }
1384
1496
  ));
1385
1497
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1386
- var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
1498
+ var ContextMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1387
1499
  ContextMenuPrimitive.RadioItem,
1388
1500
  {
1389
1501
  ref,
@@ -1391,13 +1503,13 @@ var ContextMenuRadioItem = React14.forwardRef(({ className, children, ...props }
1391
1503
  className: cn(INDICATOR_ITEM_CLASS, className),
1392
1504
  ...props,
1393
1505
  children: [
1394
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
1506
+ /* @__PURE__ */ jsx18("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx18(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx18(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
1395
1507
  children
1396
1508
  ]
1397
1509
  }
1398
1510
  ));
1399
1511
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1400
- var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
1512
+ var ContextMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx18(
1401
1513
  ContextMenuPrimitive.Label,
1402
1514
  {
1403
1515
  ref,
@@ -1411,7 +1523,7 @@ var ContextMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
1411
1523
  }
1412
1524
  ));
1413
1525
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1414
- var ContextMenuSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
1526
+ var ContextMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1415
1527
  ContextMenuPrimitive.Separator,
1416
1528
  {
1417
1529
  ref,
@@ -1424,7 +1536,7 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
1424
1536
  var ContextMenuShortcut = ({
1425
1537
  className,
1426
1538
  ...props
1427
- }) => /* @__PURE__ */ jsx16(
1539
+ }) => /* @__PURE__ */ jsx18(
1428
1540
  "span",
1429
1541
  {
1430
1542
  "data-slot": "context-menu-shortcut",
@@ -1436,18 +1548,18 @@ ContextMenuShortcut.displayName = "ContextMenuShortcut";
1436
1548
 
1437
1549
  // src/creatable-picker.tsx
1438
1550
  import {
1439
- useRef,
1440
- useState as useState2
1551
+ useRef as useRef2,
1552
+ useState as useState3
1441
1553
  } from "react";
1442
1554
 
1443
1555
  // src/popover.tsx
1444
1556
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1445
- import * as React15 from "react";
1446
- import { jsx as jsx17 } from "react/jsx-runtime";
1557
+ import * as React16 from "react";
1558
+ import { jsx as jsx19 } from "react/jsx-runtime";
1447
1559
  var Popover = PopoverPrimitive.Root;
1448
1560
  var PopoverTrigger = PopoverPrimitive.Trigger;
1449
1561
  var PopoverAnchor = PopoverPrimitive.Anchor;
1450
- var PopoverContent = React15.forwardRef(
1562
+ var PopoverContent = React16.forwardRef(
1451
1563
  ({
1452
1564
  className,
1453
1565
  align = "center",
@@ -1457,7 +1569,7 @@ var PopoverContent = React15.forwardRef(
1457
1569
  ...props
1458
1570
  }, ref) => {
1459
1571
  const portalContainer = usePortalContainer(container);
1460
- return /* @__PURE__ */ jsx17(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx17(
1572
+ return /* @__PURE__ */ jsx19(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx19(
1461
1573
  PopoverPrimitive.Content,
1462
1574
  {
1463
1575
  ref,
@@ -1482,7 +1594,7 @@ var PopoverContent = React15.forwardRef(
1482
1594
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1483
1595
 
1484
1596
  // src/creatable-picker.tsx
1485
- import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
1597
+ import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
1486
1598
  function article(noun) {
1487
1599
  return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
1488
1600
  }
@@ -1509,11 +1621,11 @@ function CreatablePicker({
1509
1621
  renderSelected,
1510
1622
  size = "sm"
1511
1623
  }) {
1512
- const [open, setOpen] = useState2(false);
1513
- const [query, setQuery] = useState2("");
1514
- const [busy, setBusy] = useState2(false);
1515
- const inputRef = useRef(null);
1516
- const [needsName, setNeedsName] = useState2(false);
1624
+ const [open, setOpen] = useState3(false);
1625
+ const [query, setQuery] = useState3("");
1626
+ const [busy, setBusy] = useState3(false);
1627
+ const inputRef = useRef2(null);
1628
+ const [needsName, setNeedsName] = useState3(false);
1517
1629
  const selected = options.find((option) => option.value === value) ?? null;
1518
1630
  const groups = [];
1519
1631
  for (const option of options) {
@@ -1557,8 +1669,8 @@ function CreatablePicker({
1557
1669
  setBusy(false);
1558
1670
  }
1559
1671
  };
1560
- return /* @__PURE__ */ jsxs8(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1561
- /* @__PURE__ */ jsx18(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs8(
1672
+ return /* @__PURE__ */ jsxs9(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1673
+ /* @__PURE__ */ jsx20(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs9(
1562
1674
  "button",
1563
1675
  {
1564
1676
  type: "button",
@@ -1572,12 +1684,12 @@ function CreatablePicker({
1572
1684
  triggerClassName
1573
1685
  ),
1574
1686
  children: [
1575
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx18("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1576
- /* @__PURE__ */ jsx18(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
1687
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx20("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1688
+ /* @__PURE__ */ jsx20(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
1577
1689
  ]
1578
1690
  }
1579
1691
  ) }),
1580
- /* @__PURE__ */ jsx18(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs8(
1692
+ /* @__PURE__ */ jsx20(PopoverContent, { align: "start", className: "w-[--radix-popover-trigger-width] min-w-56 p-0", children: /* @__PURE__ */ jsxs9(
1581
1693
  Command,
1582
1694
  {
1583
1695
  filter: (itemValue, search, keywords) => {
@@ -1585,7 +1697,7 @@ function CreatablePicker({
1585
1697
  return haystack.includes(search.toLowerCase()) ? 1 : 0;
1586
1698
  },
1587
1699
  children: [
1588
- /* @__PURE__ */ jsx18(
1700
+ /* @__PURE__ */ jsx20(
1589
1701
  CommandInput,
1590
1702
  {
1591
1703
  ref: inputRef,
@@ -1597,13 +1709,13 @@ function CreatablePicker({
1597
1709
  placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
1598
1710
  }
1599
1711
  ),
1600
- /* @__PURE__ */ jsxs8(CommandList, { children: [
1601
- /* @__PURE__ */ jsx18(CommandEmpty, { children: emptyLabel }),
1602
- groups.map((group) => /* @__PURE__ */ jsx18(
1712
+ /* @__PURE__ */ jsxs9(CommandList, { children: [
1713
+ /* @__PURE__ */ jsx20(CommandEmpty, { children: emptyLabel }),
1714
+ groups.map((group) => /* @__PURE__ */ jsx20(
1603
1715
  CommandGroup,
1604
1716
  {
1605
1717
  ...group.heading === void 0 ? {} : { heading: group.heading },
1606
- children: group.options.map((option) => /* @__PURE__ */ jsxs8(
1718
+ children: group.options.map((option) => /* @__PURE__ */ jsxs9(
1607
1719
  CommandItem,
1608
1720
  {
1609
1721
  value: option.label,
@@ -1614,7 +1726,7 @@ function CreatablePicker({
1614
1726
  },
1615
1727
  className: "gap-2 text-xs",
1616
1728
  children: [
1617
- /* @__PURE__ */ jsx18(
1729
+ /* @__PURE__ */ jsx20(
1618
1730
  LucideCheckIcon,
1619
1731
  {
1620
1732
  className: cn(
@@ -1623,8 +1735,8 @@ function CreatablePicker({
1623
1735
  )
1624
1736
  }
1625
1737
  ),
1626
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1627
- option.hint ? /* @__PURE__ */ jsx18("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
1738
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1739
+ option.hint ? /* @__PURE__ */ jsx20("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
1628
1740
  ]
1629
1741
  },
1630
1742
  option.value
@@ -1633,9 +1745,9 @@ function CreatablePicker({
1633
1745
  group.heading ?? "__ungrouped__"
1634
1746
  ))
1635
1747
  ] }),
1636
- canCreate ? /* @__PURE__ */ jsxs8("div", { className: "space-y-1 border-t border-border p-1", children: [
1637
- createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx18("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1638
- /* @__PURE__ */ jsxs8(
1748
+ canCreate ? /* @__PURE__ */ jsxs9("div", { className: "space-y-1 border-t border-border p-1", children: [
1749
+ createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx20("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1750
+ /* @__PURE__ */ jsxs9(
1639
1751
  "button",
1640
1752
  {
1641
1753
  type: "button",
@@ -1643,22 +1755,22 @@ function CreatablePicker({
1643
1755
  onClick: () => void create(typed),
1644
1756
  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",
1645
1757
  children: [
1646
- busy ? /* @__PURE__ */ jsx18(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ jsx18(PlusIcon, { className: "size-3.5 shrink-0" }),
1647
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
1758
+ busy ? /* @__PURE__ */ jsx20(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ jsx20(PlusIcon, { className: "size-3.5 shrink-0" }),
1759
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
1648
1760
  ]
1649
1761
  }
1650
1762
  ),
1651
- needsName ? /* @__PURE__ */ jsxs8("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
1763
+ needsName ? /* @__PURE__ */ jsxs9("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
1652
1764
  "Type the name of the ",
1653
1765
  noun,
1654
1766
  " you want to add \u2014 then this creates it."
1655
1767
  ] }) : null
1656
1768
  ] }) : null,
1657
- footerActions?.length || manageAction ? /* @__PURE__ */ jsxs8("div", { className: "space-y-0.5 border-t border-border p-1", children: [
1769
+ footerActions?.length || manageAction ? /* @__PURE__ */ jsxs9("div", { className: "space-y-0.5 border-t border-border p-1", children: [
1658
1770
  footerActions?.map((action) => {
1659
1771
  const Icon2 = action.icon;
1660
- return /* @__PURE__ */ jsxs8("div", { children: [
1661
- /* @__PURE__ */ jsxs8(
1772
+ return /* @__PURE__ */ jsxs9("div", { children: [
1773
+ /* @__PURE__ */ jsxs9(
1662
1774
  "button",
1663
1775
  {
1664
1776
  type: "button",
@@ -1668,15 +1780,15 @@ function CreatablePicker({
1668
1780
  },
1669
1781
  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",
1670
1782
  children: [
1671
- Icon2 ? /* @__PURE__ */ jsx18(Icon2, { className: "size-3.5 shrink-0" }) : null,
1672
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate", children: action.label })
1783
+ Icon2 ? /* @__PURE__ */ jsx20(Icon2, { className: "size-3.5 shrink-0" }) : null,
1784
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: action.label })
1673
1785
  ]
1674
1786
  }
1675
1787
  ),
1676
- action.note ? /* @__PURE__ */ jsx18("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
1788
+ action.note ? /* @__PURE__ */ jsx20("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
1677
1789
  ] }, action.label);
1678
1790
  }),
1679
- manageAction ? /* @__PURE__ */ jsxs8(
1791
+ manageAction ? /* @__PURE__ */ jsxs9(
1680
1792
  "a",
1681
1793
  {
1682
1794
  href: manageAction.href,
@@ -1685,18 +1797,18 @@ function CreatablePicker({
1685
1797
  onClick: close,
1686
1798
  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",
1687
1799
  children: [
1688
- /* @__PURE__ */ jsx18(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
1689
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate", children: manageAction.label })
1800
+ /* @__PURE__ */ jsx20(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
1801
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: manageAction.label })
1690
1802
  ]
1691
1803
  }
1692
1804
  ) : null
1693
1805
  ] }) : null,
1694
- lockedNote ? /* @__PURE__ */ jsxs8("div", { className: "space-y-1 border-t border-border p-2", children: [
1695
- /* @__PURE__ */ jsxs8("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
1696
- /* @__PURE__ */ jsx18(LockIcon, { className: "mt-px size-3 shrink-0" }),
1697
- /* @__PURE__ */ jsx18("span", { children: lockedNote })
1806
+ lockedNote ? /* @__PURE__ */ jsxs9("div", { className: "space-y-1 border-t border-border p-2", children: [
1807
+ /* @__PURE__ */ jsxs9("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
1808
+ /* @__PURE__ */ jsx20(LockIcon, { className: "mt-px size-3 shrink-0" }),
1809
+ /* @__PURE__ */ jsx20("span", { children: lockedNote })
1698
1810
  ] }),
1699
- lockedAction ? /* @__PURE__ */ jsxs8(
1811
+ lockedAction ? /* @__PURE__ */ jsxs9(
1700
1812
  "button",
1701
1813
  {
1702
1814
  type: "button",
@@ -1706,8 +1818,8 @@ function CreatablePicker({
1706
1818
  },
1707
1819
  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",
1708
1820
  children: [
1709
- /* @__PURE__ */ jsx18(PlusIcon, { className: "size-3.5 shrink-0" }),
1710
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate", children: lockedAction.label })
1821
+ /* @__PURE__ */ jsx20(PlusIcon, { className: "size-3.5 shrink-0" }),
1822
+ /* @__PURE__ */ jsx20("span", { className: "min-w-0 truncate", children: lockedAction.label })
1711
1823
  ]
1712
1824
  }
1713
1825
  ) : null
@@ -1722,14 +1834,14 @@ function CreatablePicker({
1722
1834
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
1723
1835
  import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
1724
1836
  import { treeContainsComponent as treeContainsComponent3 } from "@ai-matrx/kit/react-tree";
1725
- import * as React16 from "react";
1726
- import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
1837
+ import * as React17 from "react";
1838
+ import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
1727
1839
  var Dialog = ({
1728
1840
  children,
1729
1841
  ...props
1730
1842
  }) => {
1731
1843
  const modal = props.modal ?? true;
1732
- return /* @__PURE__ */ jsx19(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx19(DialogPrimitive2.Root, { ...props, modal, children }) });
1844
+ return /* @__PURE__ */ jsx21(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx21(DialogPrimitive2.Root, { ...props, modal, children }) });
1733
1845
  };
1734
1846
  Dialog.displayName = "Dialog";
1735
1847
  var DialogTrigger = DialogPrimitive2.Trigger;
@@ -1739,12 +1851,12 @@ var DialogPortal = ({
1739
1851
  ...props
1740
1852
  }) => {
1741
1853
  const resolved = usePortalContainer(container);
1742
- return /* @__PURE__ */ jsx19(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1854
+ return /* @__PURE__ */ jsx21(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
1743
1855
  };
1744
1856
  DialogPortal.displayName = "DialogPortal";
1745
- var DialogContainerContext = React16.createContext(null);
1746
- var useDialogContainer = () => React16.useContext(DialogContainerContext);
1747
- var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
1857
+ var DialogContainerContext = React17.createContext(null);
1858
+ var useDialogContainer = () => React17.useContext(DialogContainerContext);
1859
+ var DialogOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1748
1860
  DialogPrimitive2.Overlay,
1749
1861
  {
1750
1862
  ref,
@@ -1760,9 +1872,9 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
1760
1872
  }
1761
1873
  ));
1762
1874
  DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
1763
- var DialogContentPrimitive = React16.forwardRef((props, ref) => {
1875
+ var DialogContentPrimitive = React17.forwardRef((props, ref) => {
1764
1876
  const isModal = useRadixDialogModal();
1765
- return /* @__PURE__ */ jsx19(
1877
+ return /* @__PURE__ */ jsx21(
1766
1878
  DialogPrimitive2.Content,
1767
1879
  {
1768
1880
  ...props,
@@ -1775,7 +1887,7 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
1775
1887
  var DIALOG_DESKTOP_CLASSES2 = "fixed left-[50%] top-[50%] z-[10000] grid min-w-0 w-full max-w-lg translate-x-[-50%] translate-y-[-50%] 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";
1776
1888
  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";
1777
1889
  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";
1778
- var DialogContent = React16.forwardRef(
1890
+ var DialogContent = React17.forwardRef(
1779
1891
  ({
1780
1892
  className,
1781
1893
  children,
@@ -1789,10 +1901,10 @@ var DialogContent = React16.forwardRef(
1789
1901
  const isModal = useRadixDialogModal();
1790
1902
  const injectedContainer = usePortalContainer(container);
1791
1903
  const asSheet = mobileSheet && isMobile;
1792
- const [containerEl, setContainerEl] = React16.useState(
1904
+ const [containerEl, setContainerEl] = React17.useState(
1793
1905
  null
1794
1906
  );
1795
- const mergedRef = React16.useCallback(
1907
+ const mergedRef = React17.useCallback(
1796
1908
  (node) => {
1797
1909
  setContainerEl(node);
1798
1910
  if (typeof ref === "function") ref(node);
@@ -1803,9 +1915,9 @@ var DialogContent = React16.forwardRef(
1803
1915
  );
1804
1916
  const hasTitle = treeContainsComponent3(children, DialogTitle) || treeContainsComponent3(children, DialogPrimitive2.Title);
1805
1917
  const hasDescription = treeContainsComponent3(children, DialogDescription) || treeContainsComponent3(children, DialogPrimitive2.Description);
1806
- return /* @__PURE__ */ jsxs9(DialogPortal, { container, children: [
1807
- isModal ? /* @__PURE__ */ jsx19(DialogOverlay, {}) : null,
1808
- /* @__PURE__ */ jsxs9(
1918
+ return /* @__PURE__ */ jsxs10(DialogPortal, { container, children: [
1919
+ isModal ? /* @__PURE__ */ jsx21(DialogOverlay, {}) : null,
1920
+ /* @__PURE__ */ jsxs10(
1809
1921
  DialogContentPrimitive,
1810
1922
  {
1811
1923
  ref: mergedRef,
@@ -1824,23 +1936,23 @@ var DialogContent = React16.forwardRef(
1824
1936
  ...hasDescription ? {} : { "aria-describedby": void 0 },
1825
1937
  ...props,
1826
1938
  children: [
1827
- hasTitle ? null : /* @__PURE__ */ jsx19(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx19(DialogPrimitive2.Title, { children: "Dialog" }) }),
1828
- /* @__PURE__ */ jsx19(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx19(
1939
+ hasTitle ? null : /* @__PURE__ */ jsx21(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx21(DialogPrimitive2.Title, { children: "Dialog" }) }),
1940
+ /* @__PURE__ */ jsx21(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx21(
1829
1941
  PortalContainerProvider,
1830
1942
  {
1831
1943
  container: containerEl ?? injectedContainer ?? null,
1832
1944
  children
1833
1945
  }
1834
1946
  ) }),
1835
- showCloseButton ? /* @__PURE__ */ jsxs9(
1947
+ showCloseButton ? /* @__PURE__ */ jsxs10(
1836
1948
  DialogPrimitive2.Close,
1837
1949
  {
1838
1950
  "data-slot": "dialog-close",
1839
1951
  "aria-label": "Close",
1840
1952
  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",
1841
1953
  children: [
1842
- /* @__PURE__ */ jsx19(XIcon, { className: "h-4 w-4" }),
1843
- /* @__PURE__ */ jsx19("span", { className: "sr-only", children: "Close" })
1954
+ /* @__PURE__ */ jsx21(XIcon, { className: "h-4 w-4" }),
1955
+ /* @__PURE__ */ jsx21("span", { className: "sr-only", children: "Close" })
1844
1956
  ]
1845
1957
  }
1846
1958
  ) : null
@@ -1854,7 +1966,7 @@ DialogContent.displayName = DialogPrimitive2.Content.displayName;
1854
1966
  var DialogHeader = ({
1855
1967
  className,
1856
1968
  ...props
1857
- }) => /* @__PURE__ */ jsx19(
1969
+ }) => /* @__PURE__ */ jsx21(
1858
1970
  "div",
1859
1971
  {
1860
1972
  "data-slot": "dialog-header",
@@ -1871,7 +1983,7 @@ DialogHeader.displayName = "DialogHeader";
1871
1983
  var DialogFooter = ({
1872
1984
  className,
1873
1985
  ...props
1874
- }) => /* @__PURE__ */ jsx19(
1986
+ }) => /* @__PURE__ */ jsx21(
1875
1987
  "div",
1876
1988
  {
1877
1989
  "data-slot": "dialog-footer",
@@ -1885,7 +1997,7 @@ var DialogFooter = ({
1885
1997
  }
1886
1998
  );
1887
1999
  DialogFooter.displayName = "DialogFooter";
1888
- var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
2000
+ var DialogTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1889
2001
  DialogPrimitive2.Title,
1890
2002
  {
1891
2003
  ref,
@@ -1895,7 +2007,7 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
1895
2007
  }
1896
2008
  ));
1897
2009
  DialogTitle.displayName = DialogPrimitive2.Title.displayName;
1898
- var DialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
2010
+ var DialogDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1899
2011
  DialogPrimitive2.Description,
1900
2012
  {
1901
2013
  ref,
@@ -1908,8 +2020,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
1908
2020
 
1909
2021
  // src/dropdown-menu.tsx
1910
2022
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1911
- import * as React17 from "react";
1912
- import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
2023
+ import * as React18 from "react";
2024
+ import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
1913
2025
  var DropdownMenu = DropdownMenuPrimitive.Root;
1914
2026
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1915
2027
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -1919,7 +2031,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
1919
2031
  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";
1920
2032
  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";
1921
2033
  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";
1922
- var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
2034
+ var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1923
2035
  DropdownMenuPrimitive.SubTrigger,
1924
2036
  {
1925
2037
  ref,
@@ -1932,12 +2044,12 @@ var DropdownMenuSubTrigger = React17.forwardRef(({ className, inset, children, .
1932
2044
  ...props,
1933
2045
  children: [
1934
2046
  children,
1935
- /* @__PURE__ */ jsx20(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
2047
+ /* @__PURE__ */ jsx22(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
1936
2048
  ]
1937
2049
  }
1938
2050
  ));
1939
2051
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1940
- var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
2052
+ var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1941
2053
  DropdownMenuPrimitive.SubContent,
1942
2054
  {
1943
2055
  ref,
@@ -1947,9 +2059,9 @@ var DropdownMenuSubContent = React17.forwardRef(({ className, ...props }, ref) =
1947
2059
  }
1948
2060
  ));
1949
2061
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1950
- var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
2062
+ var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
1951
2063
  const portalContainer = usePortalContainer(container);
1952
- return /* @__PURE__ */ jsx20(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx20(
2064
+ return /* @__PURE__ */ jsx22(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx22(
1953
2065
  DropdownMenuPrimitive.Content,
1954
2066
  {
1955
2067
  ref,
@@ -1966,7 +2078,7 @@ var DropdownMenuContent = React17.forwardRef(({ className, sideOffset = 4, conta
1966
2078
  ) });
1967
2079
  });
1968
2080
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1969
- var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx20(
2081
+ var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
1970
2082
  DropdownMenuPrimitive.Item,
1971
2083
  {
1972
2084
  ref,
@@ -1976,7 +2088,7 @@ var DropdownMenuItem = React17.forwardRef(({ className, inset, ...props }, ref)
1976
2088
  }
1977
2089
  ));
1978
2090
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1979
- var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
2091
+ var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1980
2092
  DropdownMenuPrimitive.CheckboxItem,
1981
2093
  {
1982
2094
  ref,
@@ -1984,13 +2096,13 @@ var DropdownMenuCheckboxItem = React17.forwardRef(({ className, children, ...pro
1984
2096
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
1985
2097
  ...props,
1986
2098
  children: [
1987
- /* @__PURE__ */ jsx20("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx20(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx20(CheckIcon, { className: "h-4 w-4" }) }) }),
2099
+ /* @__PURE__ */ jsx22("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(CheckIcon, { className: "h-4 w-4" }) }) }),
1988
2100
  children
1989
2101
  ]
1990
2102
  }
1991
2103
  ));
1992
2104
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1993
- var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs10(
2105
+ var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(
1994
2106
  DropdownMenuPrimitive.RadioItem,
1995
2107
  {
1996
2108
  ref,
@@ -1998,13 +2110,13 @@ var DropdownMenuRadioItem = React17.forwardRef(({ className, children, ...props
1998
2110
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
1999
2111
  ...props,
2000
2112
  children: [
2001
- /* @__PURE__ */ jsx20("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx20(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx20(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2113
+ /* @__PURE__ */ jsx22("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx22(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx22(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2002
2114
  children
2003
2115
  ]
2004
2116
  }
2005
2117
  ));
2006
2118
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2007
- var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx20(
2119
+ var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx22(
2008
2120
  DropdownMenuPrimitive.Label,
2009
2121
  {
2010
2122
  ref,
@@ -2014,7 +2126,7 @@ var DropdownMenuLabel = React17.forwardRef(({ className, inset, ...props }, ref)
2014
2126
  }
2015
2127
  ));
2016
2128
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2017
- var DropdownMenuSeparator = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
2129
+ var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
2018
2130
  DropdownMenuPrimitive.Separator,
2019
2131
  {
2020
2132
  ref,
@@ -2027,7 +2139,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
2027
2139
  var DropdownMenuShortcut = ({
2028
2140
  className,
2029
2141
  ...props
2030
- }) => /* @__PURE__ */ jsx20(
2142
+ }) => /* @__PURE__ */ jsx22(
2031
2143
  "span",
2032
2144
  {
2033
2145
  "data-slot": "dropdown-menu-shortcut",
@@ -2038,8 +2150,8 @@ var DropdownMenuShortcut = ({
2038
2150
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2039
2151
 
2040
2152
  // src/editable-label.tsx
2041
- import { useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useState as useState4 } from "react";
2042
- import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
2153
+ import { useCallback as useCallback3, useEffect as useEffect3, useRef as useRef3, useState as useState5 } from "react";
2154
+ import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
2043
2155
  function EditableLabel({
2044
2156
  value,
2045
2157
  onCommit,
@@ -2059,22 +2171,22 @@ function EditableLabel({
2059
2171
  inputClassName
2060
2172
  }) {
2061
2173
  const controlled = activation === "controlled";
2062
- const [internalEditing, setInternalEditing] = useState4(false);
2174
+ const [internalEditing, setInternalEditing] = useState5(false);
2063
2175
  const editing = controlled ? !!editingProp : internalEditing;
2064
- const [draft, setDraft] = useState4(value);
2065
- const [error, setError] = useState4(null);
2066
- const [busy, setBusy] = useState4(false);
2067
- const inputRef = useRef2(null);
2068
- useEffect2(() => {
2176
+ const [draft, setDraft] = useState5(value);
2177
+ const [error, setError] = useState5(null);
2178
+ const [busy, setBusy] = useState5(false);
2179
+ const inputRef = useRef3(null);
2180
+ useEffect3(() => {
2069
2181
  if (!editing) setDraft(value);
2070
2182
  }, [value, editing]);
2071
- useEffect2(() => {
2183
+ useEffect3(() => {
2072
2184
  if (editing && inputRef.current) {
2073
2185
  inputRef.current.focus();
2074
2186
  if (selectOnEdit) inputRef.current.select();
2075
2187
  }
2076
2188
  }, [editing, selectOnEdit]);
2077
- const setEditing = useCallback2(
2189
+ const setEditing = useCallback3(
2078
2190
  (next) => {
2079
2191
  if (controlled) {
2080
2192
  onEditingChange?.(next);
@@ -2085,18 +2197,18 @@ function EditableLabel({
2085
2197
  },
2086
2198
  [controlled, onEditingChange]
2087
2199
  );
2088
- const startEdit = useCallback2(() => {
2200
+ const startEdit = useCallback3(() => {
2089
2201
  setDraft(value);
2090
2202
  setError(null);
2091
2203
  setEditing(true);
2092
2204
  }, [value, setEditing]);
2093
- const cancel = useCallback2(() => {
2205
+ const cancel = useCallback3(() => {
2094
2206
  setDraft(value);
2095
2207
  setError(null);
2096
2208
  setBusy(false);
2097
2209
  setEditing(false);
2098
2210
  }, [value, setEditing]);
2099
- const commit = useCallback2(() => {
2211
+ const commit = useCallback3(() => {
2100
2212
  if (busy) return;
2101
2213
  const trimmed = draft.trim();
2102
2214
  const next = trimmed || emptyFallback;
@@ -2146,8 +2258,8 @@ function EditableLabel({
2146
2258
  setEditing
2147
2259
  ]);
2148
2260
  if (editing) {
2149
- return /* @__PURE__ */ jsxs11("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2150
- /* @__PURE__ */ jsx21(
2261
+ return /* @__PURE__ */ jsxs12("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2262
+ /* @__PURE__ */ jsx23(
2151
2263
  "input",
2152
2264
  {
2153
2265
  ref: inputRef,
@@ -2187,12 +2299,12 @@ function EditableLabel({
2187
2299
  )
2188
2300
  }
2189
2301
  ),
2190
- busy && /* @__PURE__ */ jsx21(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2191
- error && /* @__PURE__ */ jsx21("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2302
+ busy && /* @__PURE__ */ jsx23(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2303
+ error && /* @__PURE__ */ jsx23("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2192
2304
  ] });
2193
2305
  }
2194
2306
  if (controlled) return null;
2195
- return /* @__PURE__ */ jsx21(
2307
+ return /* @__PURE__ */ jsx23(
2196
2308
  "button",
2197
2309
  {
2198
2310
  type: "button",
@@ -2226,8 +2338,8 @@ function EditableLabel({
2226
2338
  }
2227
2339
 
2228
2340
  // src/input.tsx
2229
- import * as React18 from "react";
2230
- import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
2341
+ import * as React19 from "react";
2342
+ import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
2231
2343
  var getVariantStyles = (variant = "default") => {
2232
2344
  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
2233
2345
  file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
@@ -2255,9 +2367,9 @@ var getVariantStyles = (variant = "default") => {
2255
2367
  return baseStyles;
2256
2368
  }
2257
2369
  };
2258
- var Input = React18.forwardRef(
2370
+ var Input = React19.forwardRef(
2259
2371
  ({ className, type, variant = "default", ...props }, ref) => {
2260
- return /* @__PURE__ */ jsx22(
2372
+ return /* @__PURE__ */ jsx24(
2261
2373
  "input",
2262
2374
  {
2263
2375
  type,
@@ -2269,7 +2381,7 @@ var Input = React18.forwardRef(
2269
2381
  }
2270
2382
  );
2271
2383
  Input.displayName = "Input";
2272
- var EnterInput = React18.forwardRef(
2384
+ var EnterInput = React19.forwardRef(
2273
2385
  ({ onEnter, ...props }, ref) => {
2274
2386
  const handleKeyDown = (e) => {
2275
2387
  if (e.key === "Enter" && onEnter) {
@@ -2277,7 +2389,7 @@ var EnterInput = React18.forwardRef(
2277
2389
  onEnter();
2278
2390
  }
2279
2391
  };
2280
- return /* @__PURE__ */ jsx22(
2392
+ return /* @__PURE__ */ jsx24(
2281
2393
  Input,
2282
2394
  {
2283
2395
  ...props,
@@ -2293,11 +2405,11 @@ var EnterInput = React18.forwardRef(
2293
2405
  }
2294
2406
  );
2295
2407
  EnterInput.displayName = "EnterInput";
2296
- var BasicInput = React18.forwardRef(
2408
+ var BasicInput = React19.forwardRef(
2297
2409
  // `variant` is accepted (prop-compatible with Input) but intentionally
2298
2410
  // unused — and destructured so it never leaks onto the DOM element.
2299
2411
  ({ className, type, variant: _variant = "default", ...props }, ref) => {
2300
- return /* @__PURE__ */ jsx22(
2412
+ return /* @__PURE__ */ jsx24(
2301
2413
  "input",
2302
2414
  {
2303
2415
  type,
@@ -2312,10 +2424,10 @@ var BasicInput = React18.forwardRef(
2312
2424
  }
2313
2425
  );
2314
2426
  BasicInput.displayName = "BasicInput";
2315
- var InputWithPrefix = React18.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2316
- return /* @__PURE__ */ jsxs12("div", { className: cn("relative", wrapperClassName), children: [
2317
- prefix && /* @__PURE__ */ jsx22("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2318
- /* @__PURE__ */ jsx22(
2427
+ var InputWithPrefix = React19.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2428
+ return /* @__PURE__ */ jsxs13("div", { className: cn("relative", wrapperClassName), children: [
2429
+ prefix && /* @__PURE__ */ jsx24("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2430
+ /* @__PURE__ */ jsx24(
2319
2431
  Input,
2320
2432
  {
2321
2433
  ref,
@@ -2329,9 +2441,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
2329
2441
 
2330
2442
  // src/label.tsx
2331
2443
  import * as LabelPrimitive from "@radix-ui/react-label";
2332
- import * as React19 from "react";
2333
- import { jsx as jsx23 } from "react/jsx-runtime";
2334
- var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
2444
+ import * as React20 from "react";
2445
+ import { jsx as jsx25 } from "react/jsx-runtime";
2446
+ var Label3 = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
2335
2447
  LabelPrimitive.Root,
2336
2448
  {
2337
2449
  ref,
@@ -2345,8 +2457,8 @@ var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
2345
2457
  Label3.displayName = LabelPrimitive.Root.displayName;
2346
2458
 
2347
2459
  // src/overflow-toolbar.tsx
2348
- import { useLayoutEffect, useMemo, useRef as useRef3, useState as useState5 } from "react";
2349
- import { Fragment, jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
2460
+ import { useLayoutEffect, useMemo, useRef as useRef4, useState as useState6 } from "react";
2461
+ import { Fragment, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2350
2462
  var GAP_PX = 6;
2351
2463
  var TONE = {
2352
2464
  default: "border border-border bg-background hover:bg-accent text-foreground",
@@ -2368,16 +2480,16 @@ function ToolbarButton({
2368
2480
  action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
2369
2481
  TONE[tone]
2370
2482
  );
2371
- const inner = /* @__PURE__ */ jsxs13(Fragment, { children: [
2372
- /* @__PURE__ */ jsx24(
2483
+ const inner = /* @__PURE__ */ jsxs14(Fragment, { children: [
2484
+ /* @__PURE__ */ jsx26(
2373
2485
  Icon2,
2374
2486
  {
2375
2487
  className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
2376
2488
  }
2377
2489
  ),
2378
- showLabel && /* @__PURE__ */ jsx24("span", { children: text })
2490
+ showLabel && /* @__PURE__ */ jsx26("span", { children: text })
2379
2491
  ] });
2380
- const control = action.href && !action.disabled ? /* @__PURE__ */ jsx24(
2492
+ const control = action.href && !action.disabled ? /* @__PURE__ */ jsx26(
2381
2493
  "a",
2382
2494
  {
2383
2495
  href: action.href,
@@ -2387,7 +2499,7 @@ function ToolbarButton({
2387
2499
  "aria-label": action.label,
2388
2500
  children: inner
2389
2501
  }
2390
- ) : /* @__PURE__ */ jsx24(
2502
+ ) : /* @__PURE__ */ jsx26(
2391
2503
  "button",
2392
2504
  {
2393
2505
  type: "button",
@@ -2399,12 +2511,12 @@ function ToolbarButton({
2399
2511
  }
2400
2512
  );
2401
2513
  if (enableTooltip && action.hideLabel && renderTooltip) {
2402
- return /* @__PURE__ */ jsx24(Fragment, { children: renderTooltip(control, action.label) });
2514
+ return /* @__PURE__ */ jsx26(Fragment, { children: renderTooltip(control, action.label) });
2403
2515
  }
2404
2516
  return control;
2405
2517
  }
2406
2518
  function OverflowTrigger({ ariaLabel }) {
2407
- return /* @__PURE__ */ jsx24(
2519
+ return /* @__PURE__ */ jsx26(
2408
2520
  "button",
2409
2521
  {
2410
2522
  type: "button",
@@ -2415,7 +2527,7 @@ function OverflowTrigger({ ariaLabel }) {
2415
2527
  "inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
2416
2528
  "border border-border bg-background hover:bg-accent text-foreground"
2417
2529
  ),
2418
- children: /* @__PURE__ */ jsx24(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2530
+ children: /* @__PURE__ */ jsx26(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2419
2531
  }
2420
2532
  );
2421
2533
  }
@@ -2431,10 +2543,10 @@ function OverflowToolbar({
2431
2543
  () => actions.filter((a) => !a.hidden),
2432
2544
  [actions]
2433
2545
  );
2434
- const containerRef = useRef3(null);
2435
- const ghostRef = useRef3(null);
2436
- const leadingRef = useRef3(null);
2437
- const [visibleCount, setVisibleCount] = useState5(visibleActions.length);
2546
+ const containerRef = useRef4(null);
2547
+ const ghostRef = useRef4(null);
2548
+ const leadingRef = useRef4(null);
2549
+ const [visibleCount, setVisibleCount] = useState6(visibleActions.length);
2438
2550
  const signature = visibleActions.map(
2439
2551
  (a) => `${a.id}:${a.hideLabel ? 1 : 0}:${a.running ? 1 : 0}:${a.runningLabel ?? ""}:${a.label}`
2440
2552
  ).join("|");
@@ -2475,22 +2587,22 @@ function OverflowToolbar({
2475
2587
  }, [signature, leading != null]);
2476
2588
  const shown = visibleActions.slice(0, visibleCount);
2477
2589
  const hidden = visibleActions.slice(visibleCount);
2478
- return /* @__PURE__ */ jsxs13("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2479
- /* @__PURE__ */ jsxs13(
2590
+ return /* @__PURE__ */ jsxs14("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2591
+ /* @__PURE__ */ jsxs14(
2480
2592
  "div",
2481
2593
  {
2482
2594
  ref: ghostRef,
2483
2595
  "aria-hidden": true,
2484
2596
  className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
2485
2597
  children: [
2486
- visibleActions.map((a) => /* @__PURE__ */ jsx24(ToolbarButton, { action: a }, a.id)),
2487
- /* @__PURE__ */ jsx24(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2598
+ visibleActions.map((a) => /* @__PURE__ */ jsx26(ToolbarButton, { action: a }, a.id)),
2599
+ /* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2488
2600
  ]
2489
2601
  }
2490
2602
  ),
2491
- /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-end gap-1.5", children: [
2492
- leading != null && /* @__PURE__ */ jsx24("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2493
- shown.map((a) => /* @__PURE__ */ jsx24(
2603
+ /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-end gap-1.5", children: [
2604
+ leading != null && /* @__PURE__ */ jsx26("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2605
+ shown.map((a) => /* @__PURE__ */ jsx26(
2494
2606
  ToolbarButton,
2495
2607
  {
2496
2608
  action: a,
@@ -2501,7 +2613,7 @@ function OverflowToolbar({
2501
2613
  )),
2502
2614
  hidden.length > 0 && renderOverflowMenu({
2503
2615
  actions: hidden,
2504
- trigger: /* @__PURE__ */ jsx24(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2616
+ trigger: /* @__PURE__ */ jsx26(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2505
2617
  })
2506
2618
  ] })
2507
2619
  ] });
@@ -2509,20 +2621,20 @@ function OverflowToolbar({
2509
2621
 
2510
2622
  // src/progress.tsx
2511
2623
  import * as ProgressPrimitive from "@radix-ui/react-progress";
2512
- import * as React21 from "react";
2513
- import { jsx as jsx25 } from "react/jsx-runtime";
2624
+ import * as React22 from "react";
2625
+ import { jsx as jsx27 } from "react/jsx-runtime";
2514
2626
  var PROGRESS_TONES = {
2515
2627
  default: "bg-primary",
2516
2628
  success: "bg-success",
2517
2629
  warning: "bg-warning",
2518
2630
  destructive: "bg-destructive"
2519
2631
  };
2520
- var Progress = React21.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2632
+ var Progress = React22.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2521
2633
  const { value, max } = props;
2522
2634
  const ceiling = max ?? 100;
2523
2635
  const isIndeterminate = value === null || value === void 0;
2524
2636
  const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
2525
- return /* @__PURE__ */ jsx25(
2637
+ return /* @__PURE__ */ jsx27(
2526
2638
  ProgressPrimitive.Root,
2527
2639
  {
2528
2640
  ref,
@@ -2532,7 +2644,7 @@ var Progress = React21.forwardRef(({ className, tone = "default", indicatorClass
2532
2644
  className
2533
2645
  ),
2534
2646
  ...props,
2535
- children: /* @__PURE__ */ jsx25(
2647
+ children: /* @__PURE__ */ jsx27(
2536
2648
  ProgressPrimitive.Indicator,
2537
2649
  {
2538
2650
  "data-slot": "progress-indicator",
@@ -2552,9 +2664,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
2552
2664
 
2553
2665
  // src/scroll-area.tsx
2554
2666
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2555
- import * as React22 from "react";
2556
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
2557
- var ScrollArea = React22.forwardRef(
2667
+ import * as React23 from "react";
2668
+ import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
2669
+ var ScrollArea = React23.forwardRef(
2558
2670
  ({
2559
2671
  className,
2560
2672
  children,
@@ -2563,7 +2675,7 @@ var ScrollArea = React22.forwardRef(
2563
2675
  scrollBarClassName,
2564
2676
  orientation = "vertical",
2565
2677
  ...props
2566
- }, ref) => /* @__PURE__ */ jsxs14(
2678
+ }, ref) => /* @__PURE__ */ jsxs15(
2567
2679
  ScrollAreaPrimitive.Root,
2568
2680
  {
2569
2681
  ref,
@@ -2571,7 +2683,7 @@ var ScrollArea = React22.forwardRef(
2571
2683
  className: cn("relative overflow-hidden", className),
2572
2684
  ...props,
2573
2685
  children: [
2574
- /* @__PURE__ */ jsx26(
2686
+ /* @__PURE__ */ jsx28(
2575
2687
  ScrollAreaPrimitive.Viewport,
2576
2688
  {
2577
2689
  ref: viewportRef,
@@ -2580,14 +2692,14 @@ var ScrollArea = React22.forwardRef(
2580
2692
  children
2581
2693
  }
2582
2694
  ),
2583
- /* @__PURE__ */ jsx26(ScrollBar, { orientation, className: scrollBarClassName }),
2584
- /* @__PURE__ */ jsx26(ScrollAreaPrimitive.Corner, {})
2695
+ /* @__PURE__ */ jsx28(ScrollBar, { orientation, className: scrollBarClassName }),
2696
+ /* @__PURE__ */ jsx28(ScrollAreaPrimitive.Corner, {})
2585
2697
  ]
2586
2698
  }
2587
2699
  )
2588
2700
  );
2589
2701
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2590
- var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx26(
2702
+ var ScrollBar = React23.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx28(
2591
2703
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2592
2704
  {
2593
2705
  ref,
@@ -2600,7 +2712,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
2600
2712
  className
2601
2713
  ),
2602
2714
  ...props,
2603
- children: /* @__PURE__ */ jsx26(
2715
+ children: /* @__PURE__ */ jsx28(
2604
2716
  ScrollAreaPrimitive.ScrollAreaThumb,
2605
2717
  {
2606
2718
  "data-slot": "scroll-area-thumb",
@@ -2612,7 +2724,7 @@ var ScrollBar = React22.forwardRef(({ className, orientation = "vertical", ...pr
2612
2724
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2613
2725
 
2614
2726
  // src/score-ring.tsx
2615
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
2727
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
2616
2728
  var DEFAULT_SCORE_THRESHOLDS = {
2617
2729
  good: 75,
2618
2730
  warning: 50
@@ -2643,7 +2755,7 @@ function ScoreRing({
2643
2755
  const circumference = 2 * Math.PI * radius;
2644
2756
  const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
2645
2757
  const dashOffset = circumference * (1 - boundedPct / 100);
2646
- return /* @__PURE__ */ jsxs15(
2758
+ return /* @__PURE__ */ jsxs16(
2647
2759
  "div",
2648
2760
  {
2649
2761
  className: cn(
@@ -2654,8 +2766,8 @@ function ScoreRing({
2654
2766
  role: "img",
2655
2767
  "aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
2656
2768
  children: [
2657
- /* @__PURE__ */ jsxs15("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2658
- /* @__PURE__ */ jsx27(
2769
+ /* @__PURE__ */ jsxs16("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
2770
+ /* @__PURE__ */ jsx29(
2659
2771
  "circle",
2660
2772
  {
2661
2773
  cx: "50",
@@ -2666,7 +2778,7 @@ function ScoreRing({
2666
2778
  fill: "none"
2667
2779
  }
2668
2780
  ),
2669
- pct !== null ? /* @__PURE__ */ jsx27(
2781
+ pct !== null ? /* @__PURE__ */ jsx29(
2670
2782
  "circle",
2671
2783
  {
2672
2784
  cx: "50",
@@ -2685,8 +2797,8 @@ function ScoreRing({
2685
2797
  }
2686
2798
  ) : null
2687
2799
  ] }),
2688
- /* @__PURE__ */ jsxs15("div", { className: "absolute flex flex-col items-center justify-center", children: [
2689
- /* @__PURE__ */ jsx27(
2800
+ /* @__PURE__ */ jsxs16("div", { className: "absolute flex flex-col items-center justify-center", children: [
2801
+ /* @__PURE__ */ jsx29(
2690
2802
  "span",
2691
2803
  {
2692
2804
  className: cn(
@@ -2696,7 +2808,7 @@ function ScoreRing({
2696
2808
  children: pct === null ? "\u2014" : `${pct}${suffix}`
2697
2809
  }
2698
2810
  ),
2699
- label ? /* @__PURE__ */ jsx27("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
2811
+ label ? /* @__PURE__ */ jsx29("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
2700
2812
  ] })
2701
2813
  ]
2702
2814
  }
@@ -2704,7 +2816,7 @@ function ScoreRing({
2704
2816
  }
2705
2817
 
2706
2818
  // src/segmented-control.tsx
2707
- import { jsx as jsx28 } from "react/jsx-runtime";
2819
+ import { jsx as jsx30 } from "react/jsx-runtime";
2708
2820
  function SegmentedControl({
2709
2821
  value,
2710
2822
  onValueChange,
@@ -2719,7 +2831,7 @@ function SegmentedControl({
2719
2831
  md: "h-9 text-sm",
2720
2832
  lg: "h-10 text-base"
2721
2833
  };
2722
- return /* @__PURE__ */ jsx28(
2834
+ return /* @__PURE__ */ jsx30(
2723
2835
  "div",
2724
2836
  {
2725
2837
  className: cn(
@@ -2730,7 +2842,7 @@ function SegmentedControl({
2730
2842
  role: "tablist",
2731
2843
  children: data.map((option) => {
2732
2844
  const isActive = value === option.value;
2733
- return /* @__PURE__ */ jsx28(
2845
+ return /* @__PURE__ */ jsx30(
2734
2846
  "button",
2735
2847
  {
2736
2848
  type: "button",
@@ -2757,8 +2869,8 @@ function SegmentedControl({
2757
2869
  // src/select.tsx
2758
2870
  import * as SelectPrimitive from "@radix-ui/react-select";
2759
2871
  import { cva as cva4 } from "class-variance-authority";
2760
- import * as React23 from "react";
2761
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
2872
+ import * as React24 from "react";
2873
+ import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
2762
2874
  var Select = SelectPrimitive.Root;
2763
2875
  var SelectGroup = SelectPrimitive.Group;
2764
2876
  var SelectValue = SelectPrimitive.Value;
@@ -2777,7 +2889,7 @@ var selectTriggerVariants = cva4(
2777
2889
  }
2778
2890
  }
2779
2891
  );
2780
- var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs16(
2892
+ var SelectTrigger = React24.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs17(
2781
2893
  SelectPrimitive.Trigger,
2782
2894
  {
2783
2895
  ref,
@@ -2785,12 +2897,12 @@ var SelectTrigger = React23.forwardRef(({ className, children, hideArrow = false
2785
2897
  ...props,
2786
2898
  children: [
2787
2899
  children,
2788
- !hideArrow && /* @__PURE__ */ jsx29(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx29(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
2900
+ !hideArrow && /* @__PURE__ */ jsx31(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, { className: "h-4 w-4 opacity-50" }) })
2789
2901
  ]
2790
2902
  }
2791
2903
  ));
2792
2904
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2793
- var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2905
+ var SelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
2794
2906
  SelectPrimitive.ScrollUpButton,
2795
2907
  {
2796
2908
  ref,
@@ -2799,11 +2911,11 @@ var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) =>
2799
2911
  className
2800
2912
  ),
2801
2913
  ...props,
2802
- children: /* @__PURE__ */ jsx29(RadixChevronUpIcon, {})
2914
+ children: /* @__PURE__ */ jsx31(RadixChevronUpIcon, {})
2803
2915
  }
2804
2916
  ));
2805
2917
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2806
- var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2918
+ var SelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
2807
2919
  SelectPrimitive.ScrollDownButton,
2808
2920
  {
2809
2921
  ref,
@@ -2812,11 +2924,11 @@ var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) =
2812
2924
  className
2813
2925
  ),
2814
2926
  ...props,
2815
- children: /* @__PURE__ */ jsx29(RadixChevronDownIcon, {})
2927
+ children: /* @__PURE__ */ jsx31(RadixChevronDownIcon, {})
2816
2928
  }
2817
2929
  ));
2818
2930
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2819
- var SelectContent = React23.forwardRef(
2931
+ var SelectContent = React24.forwardRef(
2820
2932
  ({
2821
2933
  className,
2822
2934
  children,
@@ -2826,7 +2938,7 @@ var SelectContent = React23.forwardRef(
2826
2938
  ...props
2827
2939
  }, ref) => {
2828
2940
  const portalContainer = usePortalContainer(container);
2829
- return /* @__PURE__ */ jsx29(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs16(
2941
+ return /* @__PURE__ */ jsx31(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs17(
2830
2942
  SelectPrimitive.Content,
2831
2943
  {
2832
2944
  ref,
@@ -2839,8 +2951,8 @@ var SelectContent = React23.forwardRef(
2839
2951
  position,
2840
2952
  ...props,
2841
2953
  children: [
2842
- /* @__PURE__ */ jsx29(SelectScrollUpButton, {}),
2843
- /* @__PURE__ */ jsx29(
2954
+ /* @__PURE__ */ jsx31(SelectScrollUpButton, {}),
2955
+ /* @__PURE__ */ jsx31(
2844
2956
  SelectPrimitive.Viewport,
2845
2957
  {
2846
2958
  className: cn(
@@ -2850,14 +2962,14 @@ var SelectContent = React23.forwardRef(
2850
2962
  children
2851
2963
  }
2852
2964
  ),
2853
- /* @__PURE__ */ jsx29(SelectScrollDownButton, {})
2965
+ /* @__PURE__ */ jsx31(SelectScrollDownButton, {})
2854
2966
  ]
2855
2967
  }
2856
2968
  ) });
2857
2969
  }
2858
2970
  );
2859
2971
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2860
- var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2972
+ var SelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
2861
2973
  SelectPrimitive.Label,
2862
2974
  {
2863
2975
  ref,
@@ -2866,7 +2978,7 @@ var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PUR
2866
2978
  }
2867
2979
  ));
2868
2980
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2869
- var SelectItem = React23.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs16(
2981
+ var SelectItem = React24.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs17(
2870
2982
  SelectPrimitive.Item,
2871
2983
  {
2872
2984
  ref,
@@ -2877,14 +2989,14 @@ var SelectItem = React23.forwardRef(({ className, children, description, ...prop
2877
2989
  ),
2878
2990
  ...props,
2879
2991
  children: [
2880
- /* @__PURE__ */ jsx29("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(CheckIcon, { className: "h-4 w-4" }) }) }),
2881
- /* @__PURE__ */ jsx29(SelectPrimitive.ItemText, { children }),
2882
- description ? /* @__PURE__ */ jsx29("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
2992
+ /* @__PURE__ */ jsx31("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx31(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx31(CheckIcon, { className: "h-4 w-4" }) }) }),
2993
+ /* @__PURE__ */ jsx31(SelectPrimitive.ItemText, { children }),
2994
+ description ? /* @__PURE__ */ jsx31("span", { className: "block text-xs leading-snug text-muted-foreground", children: description }) : null
2883
2995
  ]
2884
2996
  }
2885
2997
  ));
2886
2998
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2887
- var SelectSeparator = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
2999
+ var SelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
2888
3000
  SelectPrimitive.Separator,
2889
3001
  {
2890
3002
  ref,
@@ -2896,9 +3008,9 @@ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2896
3008
 
2897
3009
  // src/separator.tsx
2898
3010
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
2899
- import * as React24 from "react";
2900
- import { jsx as jsx30 } from "react/jsx-runtime";
2901
- var Separator4 = React24.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx30(
3011
+ import * as React25 from "react";
3012
+ import { jsx as jsx32 } from "react/jsx-runtime";
3013
+ var Separator4 = React25.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx32(
2902
3014
  SeparatorPrimitive.Root,
2903
3015
  {
2904
3016
  ref,
@@ -2918,11 +3030,11 @@ Separator4.displayName = SeparatorPrimitive.Root.displayName;
2918
3030
  import * as SheetPrimitive from "@radix-ui/react-dialog";
2919
3031
  import { treeContainsComponent as treeContainsComponent4 } from "@ai-matrx/kit/react-tree";
2920
3032
  import { cva as cva5 } from "class-variance-authority";
2921
- import * as React25 from "react";
2922
- import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
2923
- var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
3033
+ import * as React26 from "react";
3034
+ import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
3035
+ var SheetContentBase = React26.forwardRef(({ ...props }, ref) => {
2924
3036
  const isModal = useRadixDialogModal();
2925
- return /* @__PURE__ */ jsx31(
3037
+ return /* @__PURE__ */ jsx33(
2926
3038
  SheetPrimitive.Content,
2927
3039
  {
2928
3040
  ...props,
@@ -2932,15 +3044,15 @@ var SheetContentBase = React25.forwardRef(({ ...props }, ref) => {
2932
3044
  );
2933
3045
  });
2934
3046
  SheetContentBase.displayName = "SheetContentBase";
2935
- var Sheet = React25.forwardRef(({ children, ...props }, _ref) => {
3047
+ var Sheet = React26.forwardRef(({ children, ...props }, _ref) => {
2936
3048
  const modal = props.modal ?? true;
2937
- return /* @__PURE__ */ jsx31(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx31(SheetPrimitive.Root, { ...props, modal, children }) });
3049
+ return /* @__PURE__ */ jsx33(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx33(SheetPrimitive.Root, { ...props, modal, children }) });
2938
3050
  });
2939
3051
  Sheet.displayName = "Sheet";
2940
3052
  var SheetTrigger = SheetPrimitive.Trigger;
2941
3053
  var SheetClose = SheetPrimitive.Close;
2942
3054
  var SheetPortal = SheetPrimitive.Portal;
2943
- var SheetOverlay = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3055
+ var SheetOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2944
3056
  SheetPrimitive.Overlay,
2945
3057
  {
2946
3058
  className: cn(
@@ -2977,7 +3089,7 @@ var sheetVariants = cva5(
2977
3089
  }
2978
3090
  }
2979
3091
  );
2980
- var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3092
+ var SheetDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
2981
3093
  SheetPrimitive.Description,
2982
3094
  {
2983
3095
  ref,
@@ -2986,7 +3098,7 @@ var SheetDescription = React25.forwardRef(({ className, ...props }, ref) => /* @
2986
3098
  }
2987
3099
  ));
2988
3100
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
2989
- var SheetContent = React25.forwardRef(
3101
+ var SheetContent = React26.forwardRef(
2990
3102
  ({
2991
3103
  side = "right",
2992
3104
  className,
@@ -2998,9 +3110,9 @@ var SheetContent = React25.forwardRef(
2998
3110
  ...props
2999
3111
  }, ref) => {
3000
3112
  const hasDescription = treeContainsComponent4(children, SheetDescription) || treeContainsComponent4(children, SheetPrimitive.Description);
3001
- return /* @__PURE__ */ jsxs17(SheetPortal, { children: [
3002
- !hideOverlay && /* @__PURE__ */ jsx31(SheetOverlay, { className: overlayClassName }),
3003
- /* @__PURE__ */ jsxs17(
3113
+ return /* @__PURE__ */ jsxs18(SheetPortal, { children: [
3114
+ !hideOverlay && /* @__PURE__ */ jsx33(SheetOverlay, { className: overlayClassName }),
3115
+ /* @__PURE__ */ jsxs18(
3004
3116
  SheetContentBase,
3005
3117
  {
3006
3118
  ref,
@@ -3012,9 +3124,9 @@ var SheetContent = React25.forwardRef(
3012
3124
  ...hasDescription ? {} : { "aria-describedby": void 0 },
3013
3125
  ...props,
3014
3126
  children: [
3015
- !hideCloseButton && /* @__PURE__ */ jsxs17(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: [
3016
- /* @__PURE__ */ jsx31(Cross2Icon, { className: "h-4 w-4" }),
3017
- /* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Close" })
3127
+ !hideCloseButton && /* @__PURE__ */ jsxs18(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: [
3128
+ /* @__PURE__ */ jsx33(Cross2Icon, { className: "h-4 w-4" }),
3129
+ /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Close" })
3018
3130
  ] }),
3019
3131
  children
3020
3132
  ]
@@ -3027,7 +3139,7 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
3027
3139
  var SheetHeader = ({
3028
3140
  className,
3029
3141
  ...props
3030
- }) => /* @__PURE__ */ jsx31(
3142
+ }) => /* @__PURE__ */ jsx33(
3031
3143
  "div",
3032
3144
  {
3033
3145
  className: cn(
@@ -3041,7 +3153,7 @@ SheetHeader.displayName = "SheetHeader";
3041
3153
  var SheetFooter = ({
3042
3154
  className,
3043
3155
  ...props
3044
- }) => /* @__PURE__ */ jsx31(
3156
+ }) => /* @__PURE__ */ jsx33(
3045
3157
  "div",
3046
3158
  {
3047
3159
  className: cn(
@@ -3052,7 +3164,7 @@ var SheetFooter = ({
3052
3164
  }
3053
3165
  );
3054
3166
  SheetFooter.displayName = "SheetFooter";
3055
- var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx31(
3167
+ var SheetTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx33(
3056
3168
  SheetPrimitive.Title,
3057
3169
  {
3058
3170
  ref,
@@ -3063,9 +3175,9 @@ var SheetTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE
3063
3175
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
3064
3176
 
3065
3177
  // src/skeleton.tsx
3066
- import { jsx as jsx32 } from "react/jsx-runtime";
3178
+ import { jsx as jsx34 } from "react/jsx-runtime";
3067
3179
  function Skeleton({ className, animated = true, ...props }) {
3068
- return /* @__PURE__ */ jsx32(
3180
+ return /* @__PURE__ */ jsx34(
3069
3181
  "div",
3070
3182
  {
3071
3183
  "data-slot": "skeleton",
@@ -3081,8 +3193,8 @@ function Skeleton({ className, animated = true, ...props }) {
3081
3193
 
3082
3194
  // src/switch.tsx
3083
3195
  import * as SwitchPrimitives from "@radix-ui/react-switch";
3084
- import * as React26 from "react";
3085
- import { jsx as jsx33 } from "react/jsx-runtime";
3196
+ import * as React27 from "react";
3197
+ import { jsx as jsx35 } from "react/jsx-runtime";
3086
3198
  var SWITCH_SIZES = {
3087
3199
  sm: {
3088
3200
  root: "h-4 w-9 border-border data-[state=unchecked]:bg-input",
@@ -3093,7 +3205,7 @@ var SWITCH_SIZES = {
3093
3205
  thumb: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
3094
3206
  }
3095
3207
  };
3096
- var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx33(
3208
+ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx35(
3097
3209
  SwitchPrimitives.Root,
3098
3210
  {
3099
3211
  ref,
@@ -3104,7 +3216,7 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
3104
3216
  className
3105
3217
  ),
3106
3218
  ...props,
3107
- children: /* @__PURE__ */ jsx33(
3219
+ children: /* @__PURE__ */ jsx35(
3108
3220
  SwitchPrimitives.Thumb,
3109
3221
  {
3110
3222
  "data-slot": "switch-thumb",
@@ -3119,30 +3231,30 @@ var Switch = React26.forwardRef(({ className, size = "md", ...props }, ref) => /
3119
3231
  Switch.displayName = SwitchPrimitives.Root.displayName;
3120
3232
 
3121
3233
  // src/tabbed-bottom-sheet.tsx
3122
- import { useState as useState6 } from "react";
3123
- import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
3234
+ import { useState as useState7 } from "react";
3235
+ import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
3124
3236
  function TabbedBottomSheet({
3125
3237
  open,
3126
3238
  onOpenChange,
3127
3239
  title,
3128
3240
  tabs
3129
3241
  }) {
3130
- const [selectedTabId, setSelectedTabId] = useState6(null);
3131
- const [wasOpen, setWasOpen] = useState6(open);
3242
+ const [selectedTabId, setSelectedTabId] = useState7(null);
3243
+ const [wasOpen, setWasOpen] = useState7(open);
3132
3244
  if (open !== wasOpen) {
3133
3245
  setWasOpen(open);
3134
3246
  if (open) setSelectedTabId(null);
3135
3247
  }
3136
3248
  const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
3137
- return /* @__PURE__ */ jsx34(
3249
+ return /* @__PURE__ */ jsx36(
3138
3250
  BottomSheet,
3139
3251
  {
3140
3252
  open,
3141
3253
  onOpenChange,
3142
3254
  title,
3143
3255
  size: "full",
3144
- children: /* @__PURE__ */ jsxs18("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3145
- /* @__PURE__ */ jsx34(
3256
+ children: /* @__PURE__ */ jsxs19("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
3257
+ /* @__PURE__ */ jsx36(
3146
3258
  BottomSheetHeader,
3147
3259
  {
3148
3260
  title: selectedTab ? selectedTab.label : title,
@@ -3150,19 +3262,19 @@ function TabbedBottomSheet({
3150
3262
  onBack: () => setSelectedTabId(null)
3151
3263
  }
3152
3264
  ),
3153
- selectedTab ? /* @__PURE__ */ jsx34("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx34(BottomSheetBody, { children: /* @__PURE__ */ jsx34("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3265
+ selectedTab ? /* @__PURE__ */ jsx36("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ jsx36(BottomSheetBody, { children: /* @__PURE__ */ jsx36("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
3154
3266
  const Icon2 = tab.icon;
3155
- return /* @__PURE__ */ jsx34("li", { children: /* @__PURE__ */ jsxs18(
3267
+ return /* @__PURE__ */ jsx36("li", { children: /* @__PURE__ */ jsxs19(
3156
3268
  "button",
3157
3269
  {
3158
3270
  type: "button",
3159
3271
  onClick: () => setSelectedTabId(tab.id),
3160
3272
  className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
3161
3273
  children: [
3162
- Icon2 ? /* @__PURE__ */ jsx34(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3163
- /* @__PURE__ */ jsx34("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3274
+ Icon2 ? /* @__PURE__ */ jsx36(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
3275
+ /* @__PURE__ */ jsx36("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
3164
3276
  tab.trailing,
3165
- /* @__PURE__ */ jsx34(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3277
+ /* @__PURE__ */ jsx36(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
3166
3278
  ]
3167
3279
  }
3168
3280
  ) }, tab.id);
@@ -3173,19 +3285,19 @@ function TabbedBottomSheet({
3173
3285
  }
3174
3286
 
3175
3287
  // src/table.tsx
3176
- import * as React27 from "react";
3177
- import { jsx as jsx35 } from "react/jsx-runtime";
3288
+ import * as React28 from "react";
3289
+ import { jsx as jsx37 } from "react/jsx-runtime";
3178
3290
  var TABLE_SIZES = {
3179
3291
  sm: { head: "px-2", cell: "p-2" },
3180
3292
  md: { head: "px-3", cell: "p-3" }
3181
3293
  };
3182
- var TableSizeContext = React27.createContext("md");
3294
+ var TableSizeContext = React28.createContext("md");
3183
3295
  function useTableSize() {
3184
- return React27.useContext(TableSizeContext);
3296
+ return React28.useContext(TableSizeContext);
3185
3297
  }
3186
- var Table = React27.forwardRef(
3298
+ var Table = React28.forwardRef(
3187
3299
  ({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
3188
- const table = /* @__PURE__ */ jsx35(
3300
+ const table = /* @__PURE__ */ jsx37(
3189
3301
  "table",
3190
3302
  {
3191
3303
  ref,
@@ -3195,7 +3307,7 @@ var Table = React27.forwardRef(
3195
3307
  ...props
3196
3308
  }
3197
3309
  );
3198
- return /* @__PURE__ */ jsx35(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx35(
3310
+ return /* @__PURE__ */ jsx37(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ jsx37(
3199
3311
  "div",
3200
3312
  {
3201
3313
  "data-slot": "table-wrapper",
@@ -3206,7 +3318,7 @@ var Table = React27.forwardRef(
3206
3318
  }
3207
3319
  );
3208
3320
  Table.displayName = "Table";
3209
- var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx35(
3321
+ var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ jsx37(
3210
3322
  "thead",
3211
3323
  {
3212
3324
  ref,
@@ -3220,7 +3332,7 @@ var TableHeader = React27.forwardRef(({ className, sticky = false, ...props }, r
3220
3332
  }
3221
3333
  ));
3222
3334
  TableHeader.displayName = "TableHeader";
3223
- var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3335
+ var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3224
3336
  "tbody",
3225
3337
  {
3226
3338
  ref,
@@ -3230,7 +3342,7 @@ var TableBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3230
3342
  }
3231
3343
  ));
3232
3344
  TableBody.displayName = "TableBody";
3233
- var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3345
+ var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3234
3346
  "tfoot",
3235
3347
  {
3236
3348
  ref,
@@ -3243,7 +3355,7 @@ var TableFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
3243
3355
  }
3244
3356
  ));
3245
3357
  TableFooter.displayName = "TableFooter";
3246
- var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3358
+ var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3247
3359
  "tr",
3248
3360
  {
3249
3361
  ref,
@@ -3256,9 +3368,9 @@ var TableRow = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3256
3368
  }
3257
3369
  ));
3258
3370
  TableRow.displayName = "TableRow";
3259
- var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
3371
+ var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
3260
3372
  const size = useTableSize();
3261
- return /* @__PURE__ */ jsx35(
3373
+ return /* @__PURE__ */ jsx37(
3262
3374
  "th",
3263
3375
  {
3264
3376
  ref,
@@ -3273,9 +3385,9 @@ var TableHead = React27.forwardRef(({ className, ...props }, ref) => {
3273
3385
  );
3274
3386
  });
3275
3387
  TableHead.displayName = "TableHead";
3276
- var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
3388
+ var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
3277
3389
  const size = useTableSize();
3278
- return /* @__PURE__ */ jsx35(
3390
+ return /* @__PURE__ */ jsx37(
3279
3391
  "td",
3280
3392
  {
3281
3393
  ref,
@@ -3290,7 +3402,7 @@ var TableCell = React27.forwardRef(({ className, ...props }, ref) => {
3290
3402
  );
3291
3403
  });
3292
3404
  TableCell.displayName = "TableCell";
3293
- var TableCaption = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3405
+ var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
3294
3406
  "caption",
3295
3407
  {
3296
3408
  ref,
@@ -3303,11 +3415,11 @@ TableCaption.displayName = "TableCaption";
3303
3415
 
3304
3416
  // src/tabs.tsx
3305
3417
  import * as TabsPrimitive from "@radix-ui/react-tabs";
3306
- import * as React28 from "react";
3307
- import { jsx as jsx36 } from "react/jsx-runtime";
3418
+ import * as React29 from "react";
3419
+ import { jsx as jsx38 } from "react/jsx-runtime";
3308
3420
  var Tabs = TabsPrimitive.Root;
3309
3421
  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";
3310
- var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
3422
+ var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3311
3423
  TabsPrimitive.List,
3312
3424
  {
3313
3425
  ref,
@@ -3320,7 +3432,7 @@ var TabsList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
3320
3432
  }
3321
3433
  ));
3322
3434
  TabsList.displayName = TabsPrimitive.List.displayName;
3323
- var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
3435
+ var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3324
3436
  TabsPrimitive.Trigger,
3325
3437
  {
3326
3438
  ref,
@@ -3334,7 +3446,7 @@ var TabsTrigger = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3334
3446
  }
3335
3447
  ));
3336
3448
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3337
- var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
3449
+ var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3338
3450
  TabsPrimitive.Trigger,
3339
3451
  {
3340
3452
  ref,
@@ -3344,7 +3456,7 @@ var TabsTriggerCore = React28.forwardRef(({ className, ...props }, ref) => /* @_
3344
3456
  }
3345
3457
  ));
3346
3458
  TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
3347
- var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
3459
+ var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
3348
3460
  TabsPrimitive.Content,
3349
3461
  {
3350
3462
  ref,
@@ -3360,8 +3472,8 @@ var TabsContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
3360
3472
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3361
3473
 
3362
3474
  // src/textarea.tsx
3363
- import * as React29 from "react";
3364
- import { jsx as jsx37, jsxs as jsxs19 } from "react/jsx-runtime";
3475
+ import * as React30 from "react";
3476
+ import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
3365
3477
  var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
3366
3478
  var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
3367
3479
  function getStretchClasses(className) {
@@ -3374,7 +3486,7 @@ function getStretchClasses(className) {
3374
3486
  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";
3375
3487
  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";
3376
3488
  function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3377
- React29.useEffect(() => {
3489
+ React30.useEffect(() => {
3378
3490
  if (!autoGrow || !ref.current) return;
3379
3491
  const textarea = ref.current;
3380
3492
  textarea.style.height = "auto";
@@ -3390,8 +3502,8 @@ function useAutoGrow(ref, value, autoGrow = false, minHeight, maxHeight) {
3390
3502
  }, [value, autoGrow, minHeight, maxHeight, ref]);
3391
3503
  }
3392
3504
  function useMergedTextareaRef(forwarded) {
3393
- const internal = React29.useRef(null);
3394
- const callback = React29.useCallback(
3505
+ const internal = React30.useRef(null);
3506
+ const callback = React30.useCallback(
3395
3507
  (node) => {
3396
3508
  internal.current = node;
3397
3509
  if (typeof forwarded === "function") forwarded(node);
@@ -3408,13 +3520,13 @@ function boxStyle(minHeight, maxHeight) {
3408
3520
  maxHeight: maxHeight ? `${maxHeight}px` : void 0
3409
3521
  };
3410
3522
  }
3411
- var Textarea = React29.forwardRef(
3523
+ var Textarea = React30.forwardRef(
3412
3524
  ({ className, autoGrow, minHeight, maxHeight, wrapperClassName, ...props }, forwarded) => {
3413
3525
  const { ref, callback } = useMergedTextareaRef(forwarded);
3414
3526
  const stretchClasses = getStretchClasses(className);
3415
3527
  const needsWrapper = Boolean(wrapperClassName || stretchClasses);
3416
3528
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3417
- const textarea = /* @__PURE__ */ jsx37(
3529
+ const textarea = /* @__PURE__ */ jsx39(
3418
3530
  "textarea",
3419
3531
  {
3420
3532
  ref: callback,
@@ -3430,15 +3542,15 @@ var Textarea = React29.forwardRef(
3430
3542
  }
3431
3543
  );
3432
3544
  if (!needsWrapper) return textarea;
3433
- return /* @__PURE__ */ jsx37("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3545
+ return /* @__PURE__ */ jsx39("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
3434
3546
  }
3435
3547
  );
3436
3548
  Textarea.displayName = "Textarea";
3437
- var BasicTextarea = React29.forwardRef(
3549
+ var BasicTextarea = React30.forwardRef(
3438
3550
  ({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
3439
3551
  const { ref, callback } = useMergedTextareaRef(forwarded);
3440
3552
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3441
- return /* @__PURE__ */ jsx37(
3553
+ return /* @__PURE__ */ jsx39(
3442
3554
  "textarea",
3443
3555
  {
3444
3556
  ref: callback,
@@ -3456,7 +3568,7 @@ var BasicTextarea = React29.forwardRef(
3456
3568
  }
3457
3569
  );
3458
3570
  BasicTextarea.displayName = "BasicTextarea";
3459
- var TextareaWithPrefix = React29.forwardRef(
3571
+ var TextareaWithPrefix = React30.forwardRef(
3460
3572
  ({
3461
3573
  prefix,
3462
3574
  className,
@@ -3468,13 +3580,13 @@ var TextareaWithPrefix = React29.forwardRef(
3468
3580
  }, forwarded) => {
3469
3581
  const { ref, callback } = useMergedTextareaRef(forwarded);
3470
3582
  useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
3471
- return /* @__PURE__ */ jsxs19(
3583
+ return /* @__PURE__ */ jsxs20(
3472
3584
  "div",
3473
3585
  {
3474
3586
  className: cn("relative", getStretchClasses(className), wrapperClassName),
3475
3587
  children: [
3476
- prefix ? /* @__PURE__ */ jsx37("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3477
- /* @__PURE__ */ jsx37(
3588
+ prefix ? /* @__PURE__ */ jsx39("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
3589
+ /* @__PURE__ */ jsx39(
3478
3590
  "textarea",
3479
3591
  {
3480
3592
  ref: callback,
@@ -3498,16 +3610,16 @@ var TextareaWithPrefix = React29.forwardRef(
3498
3610
  TextareaWithPrefix.displayName = "TextareaWithPrefix";
3499
3611
 
3500
3612
  // src/use-scroll-fade.ts
3501
- import { useCallback as useCallback4, useEffect as useEffect4, useRef as useRef5, useState as useState7 } from "react";
3613
+ import { useCallback as useCallback5, useEffect as useEffect5, useRef as useRef6, useState as useState8 } from "react";
3502
3614
  var EPSILON = 2;
3503
3615
  function useScrollFade() {
3504
- const [state, setState] = useState7({
3616
+ const [state, setState] = useState8({
3505
3617
  top: false,
3506
3618
  bottom: false
3507
3619
  });
3508
- const nodeRef = useRef5(null);
3509
- const cleanupRef = useRef5(null);
3510
- const measure = useCallback4(() => {
3620
+ const nodeRef = useRef6(null);
3621
+ const cleanupRef = useRef6(null);
3622
+ const measure = useCallback5(() => {
3511
3623
  const el = nodeRef.current;
3512
3624
  if (!el) return;
3513
3625
  const overflowing = el.scrollHeight - el.clientHeight > EPSILON;
@@ -3519,7 +3631,7 @@ function useScrollFade() {
3519
3631
  (prev) => prev.top === next.top && prev.bottom === next.bottom ? prev : next
3520
3632
  );
3521
3633
  }, []);
3522
- const ref = useCallback4(
3634
+ const ref = useCallback5(
3523
3635
  (node) => {
3524
3636
  cleanupRef.current?.();
3525
3637
  cleanupRef.current = null;
@@ -3539,7 +3651,7 @@ function useScrollFade() {
3539
3651
  },
3540
3652
  [measure]
3541
3653
  );
3542
- useEffect4(() => () => cleanupRef.current?.(), []);
3654
+ useEffect5(() => () => cleanupRef.current?.(), []);
3543
3655
  return {
3544
3656
  ref,
3545
3657
  state,
@@ -3553,14 +3665,14 @@ function useScrollFade() {
3553
3665
 
3554
3666
  // src/hover-card.tsx
3555
3667
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
3556
- import * as React30 from "react";
3557
- import { jsx as jsx38 } from "react/jsx-runtime";
3668
+ import * as React31 from "react";
3669
+ import { jsx as jsx40 } from "react/jsx-runtime";
3558
3670
  var HoverCard = HoverCardPrimitive.Root;
3559
3671
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
3560
- var HoverCardContent = React30.forwardRef(
3672
+ var HoverCardContent = React31.forwardRef(
3561
3673
  ({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
3562
3674
  const resolved = usePortalContainer(container);
3563
- return /* @__PURE__ */ jsx38(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx38(
3675
+ return /* @__PURE__ */ jsx40(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx40(
3564
3676
  HoverCardPrimitive.Content,
3565
3677
  {
3566
3678
  ref,
@@ -3581,9 +3693,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
3581
3693
 
3582
3694
  // src/radio-group.tsx
3583
3695
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3584
- import * as React31 from "react";
3585
- import { jsx as jsx39 } from "react/jsx-runtime";
3586
- var RadioGroupSizeContext = React31.createContext("md");
3696
+ import * as React32 from "react";
3697
+ import { jsx as jsx41 } from "react/jsx-runtime";
3698
+ var RadioGroupSizeContext = React32.createContext("md");
3587
3699
  var CONTROL_CLASSES = {
3588
3700
  sm: "h-3.5 w-3.5",
3589
3701
  md: "h-4 w-4",
@@ -3594,7 +3706,7 @@ var DOT_CLASSES = {
3594
3706
  md: "h-1.5 w-1.5",
3595
3707
  lg: "h-2 w-2"
3596
3708
  };
3597
- var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx39(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx39(
3709
+ var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ jsx41(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx41(
3598
3710
  RadioGroupPrimitive.Root,
3599
3711
  {
3600
3712
  ref,
@@ -3604,10 +3716,10 @@ var RadioGroup3 = React31.forwardRef(({ className, size = "md", ...props }, ref)
3604
3716
  }
3605
3717
  ) }));
3606
3718
  RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
3607
- var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) => {
3608
- const groupSize = React31.useContext(RadioGroupSizeContext);
3719
+ var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
3720
+ const groupSize = React32.useContext(RadioGroupSizeContext);
3609
3721
  const resolved = size ?? groupSize;
3610
- return /* @__PURE__ */ jsx39(
3722
+ return /* @__PURE__ */ jsx41(
3611
3723
  RadioGroupPrimitive.Item,
3612
3724
  {
3613
3725
  ref,
@@ -3624,7 +3736,7 @@ var RadioGroupItem = React31.forwardRef(({ className, size, ...props }, ref) =>
3624
3736
  className
3625
3737
  ),
3626
3738
  ...props,
3627
- children: /* @__PURE__ */ jsx39(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx39(
3739
+ children: /* @__PURE__ */ jsx41(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx41(
3628
3740
  "div",
3629
3741
  {
3630
3742
  className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
@@ -3637,7 +3749,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3637
3749
 
3638
3750
  // src/resizable.tsx
3639
3751
  import { Group as Group4, Panel, Separator as Separator5 } from "react-resizable-panels";
3640
- import { jsx as jsx40 } from "react/jsx-runtime";
3752
+ import { jsx as jsx42 } from "react/jsx-runtime";
3641
3753
  var HANDLE_SIZES = {
3642
3754
  xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
3643
3755
  sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
@@ -3651,7 +3763,7 @@ var HANDLE_SIZES = {
3651
3763
  var ResizablePanelGroup = ({
3652
3764
  className,
3653
3765
  ...props
3654
- }) => /* @__PURE__ */ jsx40(
3766
+ }) => /* @__PURE__ */ jsx42(
3655
3767
  Group4,
3656
3768
  {
3657
3769
  "data-slot": "resizable-group",
@@ -3666,7 +3778,7 @@ var ResizableHandle = ({
3666
3778
  size = "xs",
3667
3779
  className,
3668
3780
  ...props
3669
- }) => /* @__PURE__ */ jsx40(
3781
+ }) => /* @__PURE__ */ jsx42(
3670
3782
  Separator5,
3671
3783
  {
3672
3784
  "data-slot": "resizable-handle",
@@ -3686,15 +3798,15 @@ var ResizableHandle = ({
3686
3798
  className
3687
3799
  ),
3688
3800
  ...props,
3689
- children: withHandle ? /* @__PURE__ */ jsx40("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__ */ jsx40(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
3801
+ children: withHandle ? /* @__PURE__ */ jsx42("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__ */ jsx42(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
3690
3802
  }
3691
3803
  );
3692
3804
  ResizableHandle.displayName = "ResizableHandle";
3693
3805
 
3694
3806
  // src/slider.tsx
3695
3807
  import * as SliderPrimitive from "@radix-ui/react-slider";
3696
- import * as React32 from "react";
3697
- import { jsx as jsx41, jsxs as jsxs20 } from "react/jsx-runtime";
3808
+ import * as React33 from "react";
3809
+ import { jsx as jsx43, jsxs as jsxs21 } from "react/jsx-runtime";
3698
3810
  var TRACK_CLASSES = {
3699
3811
  sm: "h-1",
3700
3812
  md: "h-1.5",
@@ -3705,12 +3817,12 @@ var THUMB_CLASSES = {
3705
3817
  md: "h-4 w-4",
3706
3818
  lg: "h-5 w-5"
3707
3819
  };
3708
- var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3820
+ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
3709
3821
  const thumbCount = Math.max(
3710
3822
  1,
3711
3823
  (props.value ?? props.defaultValue ?? [0]).length
3712
3824
  );
3713
- return /* @__PURE__ */ jsxs20(
3825
+ return /* @__PURE__ */ jsxs21(
3714
3826
  SliderPrimitive.Root,
3715
3827
  {
3716
3828
  ref,
@@ -3722,7 +3834,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3722
3834
  ),
3723
3835
  ...props,
3724
3836
  children: [
3725
- /* @__PURE__ */ jsx41(
3837
+ /* @__PURE__ */ jsx43(
3726
3838
  SliderPrimitive.Track,
3727
3839
  {
3728
3840
  "data-slot": "slider-track",
@@ -3731,7 +3843,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3731
3843
  TRACK_CLASSES[size],
3732
3844
  "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
3733
3845
  ),
3734
- children: /* @__PURE__ */ jsx41(
3846
+ children: /* @__PURE__ */ jsx43(
3735
3847
  SliderPrimitive.Range,
3736
3848
  {
3737
3849
  "data-slot": "slider-range",
@@ -3740,7 +3852,7 @@ var Slider = React32.forwardRef(({ className, size = "md", ...props }, ref) => {
3740
3852
  )
3741
3853
  }
3742
3854
  ),
3743
- Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx41(
3855
+ Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx43(
3744
3856
  SliderPrimitive.Thumb,
3745
3857
  {
3746
3858
  "data-slot": "slider-thumb",
@@ -3767,8 +3879,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
3767
3879
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
3768
3880
  import * as TogglePrimitive from "@radix-ui/react-toggle";
3769
3881
  import { cva as cva6 } from "class-variance-authority";
3770
- import * as React33 from "react";
3771
- import { jsx as jsx42 } from "react/jsx-runtime";
3882
+ import * as React34 from "react";
3883
+ import { jsx as jsx44 } from "react/jsx-runtime";
3772
3884
  var toggleVariants = cva6(
3773
3885
  "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",
3774
3886
  {
@@ -3789,7 +3901,7 @@ var toggleVariants = cva6(
3789
3901
  }
3790
3902
  }
3791
3903
  );
3792
- var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx42(
3904
+ var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx44(
3793
3905
  TogglePrimitive.Root,
3794
3906
  {
3795
3907
  ref,
@@ -3799,21 +3911,21 @@ var Toggle = React33.forwardRef(({ className, variant, size, ...props }, ref) =>
3799
3911
  }
3800
3912
  ));
3801
3913
  Toggle.displayName = TogglePrimitive.Root.displayName;
3802
- var ToggleGroupContext = React33.createContext({ size: "default", variant: "default" });
3803
- var ToggleGroup = React33.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx42(
3914
+ var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
3915
+ var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx44(
3804
3916
  ToggleGroupPrimitive.Root,
3805
3917
  {
3806
3918
  ref,
3807
3919
  "data-slot": "toggle-group",
3808
3920
  className: cn("flex items-center justify-center gap-1", className),
3809
3921
  ...props,
3810
- children: /* @__PURE__ */ jsx42(ToggleGroupContext.Provider, { value: { variant, size }, children })
3922
+ children: /* @__PURE__ */ jsx44(ToggleGroupContext.Provider, { value: { variant, size }, children })
3811
3923
  }
3812
3924
  ));
3813
3925
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
3814
- var ToggleGroupItem = React33.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3815
- const context = React33.useContext(ToggleGroupContext);
3816
- return /* @__PURE__ */ jsx42(
3926
+ var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3927
+ const context = React34.useContext(ToggleGroupContext);
3928
+ return /* @__PURE__ */ jsx44(
3817
3929
  ToggleGroupPrimitive.Item,
3818
3930
  {
3819
3931
  ref,
@@ -3834,14 +3946,14 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
3834
3946
 
3835
3947
  // src/tooltip.tsx
3836
3948
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3837
- import * as React34 from "react";
3838
- import { jsx as jsx43 } from "react/jsx-runtime";
3949
+ import * as React35 from "react";
3950
+ import { jsx as jsx45 } from "react/jsx-runtime";
3839
3951
  var TooltipProvider = TooltipPrimitive.Provider;
3840
3952
  var Tooltip = TooltipPrimitive.Root;
3841
3953
  var TooltipTrigger = TooltipPrimitive.Trigger;
3842
- var TooltipContent = React34.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
3954
+ var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
3843
3955
  const resolved = usePortalContainer(container);
3844
- return /* @__PURE__ */ jsx43(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx43(
3956
+ return /* @__PURE__ */ jsx45(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ jsx45(
3845
3957
  TooltipPrimitive.Content,
3846
3958
  {
3847
3959
  ref,
@@ -3909,6 +4021,8 @@ export {
3909
4021
  CommandList,
3910
4022
  CommandSeparator,
3911
4023
  CommandShortcut,
4024
+ ConfirmDialog,
4025
+ ConfirmDialogHost,
3912
4026
  ContextMenu,
3913
4027
  ContextMenuCheckboxItem,
3914
4028
  ContextMenuContent,