@tutti-os/ui-system 0.0.15 → 0.0.17

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.
@@ -15,7 +15,7 @@ import {
15
15
  SuccessFilledIcon,
16
16
  WarningFilledIcon,
17
17
  WarningLinedIcon
18
- } from "./chunk-HSIAUUW7.js";
18
+ } from "./chunk-5NCZOQFO.js";
19
19
  import {
20
20
  cn
21
21
  } from "./chunk-DGPY4WP3.js";
@@ -1401,8 +1401,111 @@ function Input({
1401
1401
  );
1402
1402
  }
1403
1403
 
1404
+ // src/components/mention-pill/truncating-pill-label.tsx
1405
+ import * as React6 from "react";
1406
+
1407
+ // src/components/tooltip/tooltip.tsx
1408
+ import { Tooltip as TooltipPrimitive } from "radix-ui";
1409
+ import { jsx as jsx13 } from "react/jsx-runtime";
1410
+ function TooltipProvider({
1411
+ delayDuration = 0,
1412
+ ...props
1413
+ }) {
1414
+ return /* @__PURE__ */ jsx13(
1415
+ TooltipPrimitive.Provider,
1416
+ {
1417
+ "data-slot": "tooltip-provider",
1418
+ delayDuration,
1419
+ ...props
1420
+ }
1421
+ );
1422
+ }
1423
+ function Tooltip({
1424
+ ...props
1425
+ }) {
1426
+ return /* @__PURE__ */ jsx13(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
1427
+ }
1428
+ function TooltipTrigger({
1429
+ ...props
1430
+ }) {
1431
+ return /* @__PURE__ */ jsx13(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
1432
+ }
1433
+ function TooltipPortal({
1434
+ ...props
1435
+ }) {
1436
+ return /* @__PURE__ */ jsx13(TooltipPrimitive.Portal, { "data-slot": "tooltip-portal", ...props });
1437
+ }
1438
+ function TooltipContent({
1439
+ className,
1440
+ sideOffset = 8,
1441
+ children,
1442
+ style,
1443
+ ...props
1444
+ }) {
1445
+ return /* @__PURE__ */ jsx13(TooltipPortal, { children: /* @__PURE__ */ jsx13(
1446
+ TooltipPrimitive.Content,
1447
+ {
1448
+ "data-slot": "tooltip-content",
1449
+ sideOffset,
1450
+ className: cn(
1451
+ "inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-2 rounded-md border border-[var(--border-1)] bg-[var(--background-fronted)] px-2 py-1 text-[13px] leading-[1.3] text-popover-foreground shadow-soft outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1452
+ className
1453
+ ),
1454
+ style: { zIndex: "var(--z-tooltip, 100700)", ...style },
1455
+ ...props,
1456
+ children
1457
+ }
1458
+ ) });
1459
+ }
1460
+
1461
+ // src/components/mention-pill/truncating-pill-label.tsx
1462
+ import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
1463
+ function useTextOverflow(watch) {
1464
+ const ref = React6.useRef(null);
1465
+ const [overflowing, setOverflowing] = React6.useState(false);
1466
+ React6.useEffect(() => {
1467
+ const element = ref.current;
1468
+ if (!element || typeof ResizeObserver === "undefined") {
1469
+ return;
1470
+ }
1471
+ const measure = () => {
1472
+ setOverflowing(element.scrollWidth - element.clientWidth > 1);
1473
+ };
1474
+ measure();
1475
+ const observer = new ResizeObserver(measure);
1476
+ observer.observe(element);
1477
+ return () => observer.disconnect();
1478
+ }, [watch]);
1479
+ return { ref, overflowing };
1480
+ }
1481
+ function TruncatingPillLabel({
1482
+ tooltip,
1483
+ className,
1484
+ children
1485
+ }) {
1486
+ const { ref: labelRef, overflowing } = useTextOverflow(tooltip);
1487
+ const label = /* @__PURE__ */ jsx14(
1488
+ "span",
1489
+ {
1490
+ ref: labelRef,
1491
+ className: cn(
1492
+ "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap",
1493
+ className
1494
+ ),
1495
+ children
1496
+ }
1497
+ );
1498
+ if (!tooltip) {
1499
+ return label;
1500
+ }
1501
+ return /* @__PURE__ */ jsx14(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs6(Tooltip, { children: [
1502
+ /* @__PURE__ */ jsx14(TooltipTrigger, { asChild: true, children: label }),
1503
+ overflowing ? /* @__PURE__ */ jsx14(TooltipContent, { className: "max-w-[min(420px,calc(100vw-32px))] whitespace-normal text-left [overflow-wrap:anywhere]", children: tooltip }) : null
1504
+ ] }) });
1505
+ }
1506
+
1404
1507
  // src/components/mention-pill/mention-pill.tsx
1405
- import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
1508
+ import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
1406
1509
  var mentionPillTokenByKind = {
1407
1510
  app: "var(--rich-text-folder)",
1408
1511
  issue: "var(--rich-text-mention-issue)",
@@ -1434,11 +1537,14 @@ function MentionPill({
1434
1537
  const normalizedIconUrl = iconUrl?.trim() ?? "";
1435
1538
  const iconSizeClassName = "size-4";
1436
1539
  const iconShellClassName = isFile ? "size-4" : "size-[18px]";
1437
- return /* @__PURE__ */ jsxs6(
1540
+ const tooltipText = [label, summary].filter(
1541
+ (part) => typeof part === "string" && part.trim() !== ""
1542
+ ).join(" ");
1543
+ return /* @__PURE__ */ jsxs7(
1438
1544
  "span",
1439
1545
  {
1440
1546
  className: cn(
1441
- "group relative top-[3px] inline-flex max-w-full cursor-default items-center overflow-hidden rounded-[4px] border border-transparent bg-transparent py-0.5 align-baseline text-[13px] font-medium leading-5 no-underline transition-colors hover:border-transparent hover:bg-[color-mix(in_srgb,currentColor_12%,transparent)]",
1547
+ "group relative top-[3px] inline-flex max-w-[min(100%,var(--agent-mention-max-width,16rem))] cursor-default items-center overflow-hidden rounded-[4px] border border-transparent bg-transparent py-0.5 align-baseline text-[13px] font-medium leading-5 no-underline transition-colors hover:border-transparent hover:bg-[color-mix(in_srgb,currentColor_12%,transparent)]",
1442
1548
  isFile ? "gap-1.5 px-1.5" : "gap-1 px-1",
1443
1549
  className
1444
1550
  ),
@@ -1451,7 +1557,7 @@ function MentionPill({
1451
1557
  },
1452
1558
  ...props,
1453
1559
  children: [
1454
- /* @__PURE__ */ jsxs6(
1560
+ /* @__PURE__ */ jsxs7(
1455
1561
  "span",
1456
1562
  {
1457
1563
  "aria-hidden": removable ? void 0 : true,
@@ -1460,7 +1566,7 @@ function MentionPill({
1460
1566
  iconShellClassName
1461
1567
  ),
1462
1568
  children: [
1463
- normalizedIconUrl ? /* @__PURE__ */ jsx13(
1569
+ normalizedIconUrl ? /* @__PURE__ */ jsx15(
1464
1570
  "img",
1465
1571
  {
1466
1572
  src: normalizedIconUrl,
@@ -1473,7 +1579,7 @@ function MentionPill({
1473
1579
  loading: "lazy",
1474
1580
  draggable: false
1475
1581
  }
1476
- ) : /* @__PURE__ */ jsx13(
1582
+ ) : /* @__PURE__ */ jsx15(
1477
1583
  Icon,
1478
1584
  {
1479
1585
  className: cn(
@@ -1483,7 +1589,7 @@ function MentionPill({
1483
1589
  )
1484
1590
  }
1485
1591
  ),
1486
- removable ? /* @__PURE__ */ jsx13(
1592
+ removable ? /* @__PURE__ */ jsx15(
1487
1593
  "button",
1488
1594
  {
1489
1595
  "aria-label": removeButtonProps?.["aria-label"],
@@ -1493,15 +1599,15 @@ function MentionPill({
1493
1599
  "absolute top-1/2 left-1/2 inline-flex size-5 -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sm text-[var(--text-secondary)] opacity-0 transition-opacity group-hover:opacity-100 hover:bg-transparency-block hover:text-[var(--text-primary)] focus-visible:opacity-100",
1494
1600
  removeButtonProps?.className
1495
1601
  ),
1496
- children: /* @__PURE__ */ jsx13(CloseIcon, { className: "size-3.5" })
1602
+ children: /* @__PURE__ */ jsx15(CloseIcon, { className: "size-3.5" })
1497
1603
  }
1498
1604
  ) : null
1499
1605
  ]
1500
1606
  }
1501
1607
  ),
1502
- /* @__PURE__ */ jsxs6("span", { className: "min-w-0 overflow-hidden text-ellipsis whitespace-nowrap", children: [
1503
- /* @__PURE__ */ jsx13("span", { children: label }),
1504
- summary ? /* @__PURE__ */ jsxs6("span", { className: "text-current", children: [
1608
+ /* @__PURE__ */ jsxs7(TruncatingPillLabel, { tooltip: tooltipText, children: [
1609
+ /* @__PURE__ */ jsx15("span", { children: label }),
1610
+ summary ? /* @__PURE__ */ jsxs7("span", { className: "text-current", children: [
1505
1611
  " ",
1506
1612
  summary
1507
1613
  ] }) : null
@@ -1513,26 +1619,26 @@ function MentionPill({
1513
1619
 
1514
1620
  // src/components/popover/popover.tsx
1515
1621
  import { Popover as PopoverPrimitive } from "radix-ui";
1516
- import { jsx as jsx14 } from "react/jsx-runtime";
1622
+ import { jsx as jsx16 } from "react/jsx-runtime";
1517
1623
  function Popover({
1518
1624
  ...props
1519
1625
  }) {
1520
- return /* @__PURE__ */ jsx14(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1626
+ return /* @__PURE__ */ jsx16(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1521
1627
  }
1522
1628
  function PopoverTrigger({
1523
1629
  ...props
1524
1630
  }) {
1525
- return /* @__PURE__ */ jsx14(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1631
+ return /* @__PURE__ */ jsx16(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1526
1632
  }
1527
1633
  function PopoverPortal({
1528
1634
  ...props
1529
1635
  }) {
1530
- return /* @__PURE__ */ jsx14(PopoverPrimitive.Portal, { "data-slot": "popover-portal", ...props });
1636
+ return /* @__PURE__ */ jsx16(PopoverPrimitive.Portal, { "data-slot": "popover-portal", ...props });
1531
1637
  }
1532
1638
  function PopoverClose({
1533
1639
  ...props
1534
1640
  }) {
1535
- return /* @__PURE__ */ jsx14(PopoverPrimitive.Close, { "data-slot": "popover-close", ...props });
1641
+ return /* @__PURE__ */ jsx16(PopoverPrimitive.Close, { "data-slot": "popover-close", ...props });
1536
1642
  }
1537
1643
  function PopoverContent({
1538
1644
  className,
@@ -1540,7 +1646,7 @@ function PopoverContent({
1540
1646
  sideOffset = 4,
1541
1647
  ...props
1542
1648
  }) {
1543
- return /* @__PURE__ */ jsx14(PopoverPortal, { children: /* @__PURE__ */ jsx14(
1649
+ return /* @__PURE__ */ jsx16(PopoverPortal, { children: /* @__PURE__ */ jsx16(
1544
1650
  PopoverPrimitive.Content,
1545
1651
  {
1546
1652
  "data-slot": "popover-content",
@@ -1558,18 +1664,18 @@ function PopoverContent({
1558
1664
  function PopoverAnchor({
1559
1665
  ...props
1560
1666
  }) {
1561
- return /* @__PURE__ */ jsx14(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
1667
+ return /* @__PURE__ */ jsx16(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
1562
1668
  }
1563
1669
 
1564
1670
  // src/components/resizable/resizable.tsx
1565
1671
  import * as ResizablePrimitive from "react-resizable-panels";
1566
- import { jsx as jsx15 } from "react/jsx-runtime";
1672
+ import { jsx as jsx17 } from "react/jsx-runtime";
1567
1673
  function ResizablePanelGroup({
1568
1674
  className,
1569
1675
  orientation = "horizontal",
1570
1676
  ...props
1571
1677
  }) {
1572
- return /* @__PURE__ */ jsx15(
1678
+ return /* @__PURE__ */ jsx17(
1573
1679
  ResizablePrimitive.Group,
1574
1680
  {
1575
1681
  "data-orientation": orientation,
@@ -1584,14 +1690,14 @@ function ResizablePanelGroup({
1584
1690
  );
1585
1691
  }
1586
1692
  function ResizablePanel(props) {
1587
- return /* @__PURE__ */ jsx15(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
1693
+ return /* @__PURE__ */ jsx17(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
1588
1694
  }
1589
1695
  function ResizableHandle({
1590
1696
  className,
1591
1697
  withHandle,
1592
1698
  ...props
1593
1699
  }) {
1594
- return /* @__PURE__ */ jsx15(
1700
+ return /* @__PURE__ */ jsx17(
1595
1701
  ResizablePrimitive.Separator,
1596
1702
  {
1597
1703
  "data-slot": "resizable-handle",
@@ -1600,14 +1706,14 @@ function ResizableHandle({
1600
1706
  className
1601
1707
  ),
1602
1708
  ...props,
1603
- children: withHandle ? /* @__PURE__ */ jsx15("div", { className: "z-10 flex items-center justify-center rounded-full bg-border/85 opacity-0 transition-[background-color,opacity] group-hover:bg-border group-hover:opacity-100 group-focus-visible:bg-border group-focus-visible:opacity-100 group-aria-[orientation=horizontal]:h-[3px] group-aria-[orientation=horizontal]:w-10 group-aria-[orientation=vertical]:h-10 group-aria-[orientation=vertical]:w-[3px]" }) : null
1709
+ children: withHandle ? /* @__PURE__ */ jsx17("div", { className: "z-10 flex items-center justify-center rounded-full bg-border/85 opacity-0 transition-[background-color,opacity] group-hover:bg-border group-hover:opacity-100 group-focus-visible:bg-border group-focus-visible:opacity-100 group-aria-[orientation=horizontal]:h-[3px] group-aria-[orientation=horizontal]:w-10 group-aria-[orientation=vertical]:h-10 group-aria-[orientation=vertical]:w-[3px]" }) : null
1604
1710
  }
1605
1711
  );
1606
1712
  }
1607
1713
 
1608
1714
  // src/components/scroll-area/scroll-area.tsx
1609
- import * as React6 from "react";
1610
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
1715
+ import * as React7 from "react";
1716
+ import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
1611
1717
  var MIN_THUMB_SIZE_PX = 24;
1612
1718
  function ScrollArea({
1613
1719
  className,
@@ -1642,9 +1748,9 @@ function ScrollArea({
1642
1748
  ...props
1643
1749
  };
1644
1750
  if (scrollbarMode === "native") {
1645
- return /* @__PURE__ */ jsx16(NativeScrollArea, { ...implementationProps, children });
1751
+ return /* @__PURE__ */ jsx18(NativeScrollArea, { ...implementationProps, children });
1646
1752
  }
1647
- return /* @__PURE__ */ jsx16(CustomScrollArea, { ...implementationProps, children });
1753
+ return /* @__PURE__ */ jsx18(CustomScrollArea, { ...implementationProps, children });
1648
1754
  }
1649
1755
  function NativeScrollArea({
1650
1756
  className,
@@ -1663,7 +1769,7 @@ function NativeScrollArea({
1663
1769
  ...props
1664
1770
  }) {
1665
1771
  const alwaysVisible = type === "always" || type === "scroll" || hasAlwaysVisibleScrollbarSelector(className);
1666
- return /* @__PURE__ */ jsx16(
1772
+ return /* @__PURE__ */ jsx18(
1667
1773
  ScrollAreaFrame,
1668
1774
  {
1669
1775
  ...props,
@@ -1702,11 +1808,11 @@ function CustomScrollArea({
1702
1808
  viewportTestId,
1703
1809
  ...props
1704
1810
  }) {
1705
- const localViewportRef = React6.useRef(null);
1706
- const contentRef = React6.useRef(null);
1707
- const [active, setActive] = React6.useState(false);
1811
+ const localViewportRef = React7.useRef(null);
1812
+ const contentRef = React7.useRef(null);
1813
+ const [active, setActive] = React7.useState(false);
1708
1814
  const alwaysVisible = type === "always" || type === "scroll" || hasAlwaysVisibleScrollbarSelector(className);
1709
- return /* @__PURE__ */ jsxs7(
1815
+ return /* @__PURE__ */ jsxs8(
1710
1816
  ScrollAreaFrame,
1711
1817
  {
1712
1818
  ...props,
@@ -1742,7 +1848,7 @@ function CustomScrollArea({
1742
1848
  viewportTestId,
1743
1849
  children: [
1744
1850
  children,
1745
- /* @__PURE__ */ jsx16(
1851
+ /* @__PURE__ */ jsx18(
1746
1852
  ScrollAreaScrollbar,
1747
1853
  {
1748
1854
  active: active || alwaysVisible,
@@ -1767,7 +1873,7 @@ function ScrollAreaFrame({
1767
1873
  viewportTestId,
1768
1874
  ...props
1769
1875
  }) {
1770
- return /* @__PURE__ */ jsx16(
1876
+ return /* @__PURE__ */ jsx18(
1771
1877
  "div",
1772
1878
  {
1773
1879
  "data-slot": "scroll-area",
@@ -1777,7 +1883,7 @@ function ScrollAreaFrame({
1777
1883
  className
1778
1884
  ),
1779
1885
  ...props,
1780
- children: /* @__PURE__ */ jsx16(
1886
+ children: /* @__PURE__ */ jsx18(
1781
1887
  "div",
1782
1888
  {
1783
1889
  ...viewportProps,
@@ -1788,7 +1894,7 @@ function ScrollAreaFrame({
1788
1894
  "size-full overflow-auto rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",
1789
1895
  viewportClassName
1790
1896
  ),
1791
- children: /* @__PURE__ */ jsx16(
1897
+ children: /* @__PURE__ */ jsx18(
1792
1898
  "div",
1793
1899
  {
1794
1900
  ref: contentRef,
@@ -1812,15 +1918,15 @@ function ScrollAreaScrollbar({
1812
1918
  orientation,
1813
1919
  viewportRef
1814
1920
  }) {
1815
- const trackRef = React6.useRef(null);
1816
- const thumbRef = React6.useRef(null);
1817
- const dragStateRef = React6.useRef(null);
1818
- const frameRef = React6.useRef(null);
1819
- const scrollableRef = React6.useRef(false);
1820
- const [dragging, setDragging] = React6.useState(false);
1821
- const [scrollable, setScrollable] = React6.useState(false);
1822
- const [trackActive, setTrackActive] = React6.useState(false);
1823
- const syncScrollbarState = React6.useCallback(() => {
1921
+ const trackRef = React7.useRef(null);
1922
+ const thumbRef = React7.useRef(null);
1923
+ const dragStateRef = React7.useRef(null);
1924
+ const frameRef = React7.useRef(null);
1925
+ const scrollableRef = React7.useRef(false);
1926
+ const [dragging, setDragging] = React7.useState(false);
1927
+ const [scrollable, setScrollable] = React7.useState(false);
1928
+ const [trackActive, setTrackActive] = React7.useState(false);
1929
+ const syncScrollbarState = React7.useCallback(() => {
1824
1930
  const viewport = viewportRef.current;
1825
1931
  const track = trackRef.current;
1826
1932
  const thumb = thumbRef.current;
@@ -1859,7 +1965,7 @@ function ScrollAreaScrollbar({
1859
1965
  }
1860
1966
  updateScrollable(true, scrollableRef, setScrollable);
1861
1967
  }, [orientation, viewportRef]);
1862
- const scheduleSync = React6.useCallback(() => {
1968
+ const scheduleSync = React7.useCallback(() => {
1863
1969
  if (frameRef.current !== null) {
1864
1970
  return;
1865
1971
  }
@@ -1868,7 +1974,7 @@ function ScrollAreaScrollbar({
1868
1974
  syncScrollbarState();
1869
1975
  });
1870
1976
  }, [syncScrollbarState]);
1871
- const scrollViewportToThumbOffset = React6.useCallback(
1977
+ const scrollViewportToThumbOffset = React7.useCallback(
1872
1978
  (thumbOffset) => {
1873
1979
  const viewport = viewportRef.current;
1874
1980
  const track = trackRef.current;
@@ -1895,7 +2001,7 @@ function ScrollAreaScrollbar({
1895
2001
  },
1896
2002
  [orientation, syncScrollbarState, viewportRef]
1897
2003
  );
1898
- const handleTrackPointerDown = React6.useCallback(
2004
+ const handleTrackPointerDown = React7.useCallback(
1899
2005
  (event) => {
1900
2006
  if (event.button !== 0 || !scrollableRef.current) {
1901
2007
  return;
@@ -1915,7 +2021,7 @@ function ScrollAreaScrollbar({
1915
2021
  },
1916
2022
  [orientation, scrollViewportToThumbOffset]
1917
2023
  );
1918
- const handleThumbPointerDown = React6.useCallback(
2024
+ const handleThumbPointerDown = React7.useCallback(
1919
2025
  (event) => {
1920
2026
  if (event.button !== 0 || !scrollableRef.current) {
1921
2027
  return;
@@ -1947,7 +2053,7 @@ function ScrollAreaScrollbar({
1947
2053
  },
1948
2054
  [orientation, viewportRef]
1949
2055
  );
1950
- React6.useEffect(() => {
2056
+ React7.useEffect(() => {
1951
2057
  if (!dragging) {
1952
2058
  return;
1953
2059
  }
@@ -1978,7 +2084,7 @@ function ScrollAreaScrollbar({
1978
2084
  window.removeEventListener("pointerup", handlePointerUp);
1979
2085
  };
1980
2086
  }, [dragging, orientation, syncScrollbarState, viewportRef]);
1981
- React6.useEffect(() => {
2087
+ React7.useEffect(() => {
1982
2088
  const viewport = viewportRef.current;
1983
2089
  if (!viewport) {
1984
2090
  updateScrollable(false, scrollableRef, setScrollable);
@@ -2000,10 +2106,10 @@ function ScrollAreaScrollbar({
2000
2106
  resizeObserver?.disconnect();
2001
2107
  };
2002
2108
  }, [contentRef, scheduleSync, syncScrollbarState, viewportRef]);
2003
- React6.useEffect(() => {
2109
+ React7.useEffect(() => {
2004
2110
  scheduleSync();
2005
2111
  });
2006
- return /* @__PURE__ */ jsx16(
2112
+ return /* @__PURE__ */ jsx18(
2007
2113
  "div",
2008
2114
  {
2009
2115
  ref: trackRef,
@@ -2021,7 +2127,7 @@ function ScrollAreaScrollbar({
2021
2127
  onPointerEnter: () => setTrackActive(true),
2022
2128
  onPointerLeave: () => setTrackActive(false),
2023
2129
  onPointerDown: handleTrackPointerDown,
2024
- children: /* @__PURE__ */ jsx16(
2130
+ children: /* @__PURE__ */ jsx18(
2025
2131
  "div",
2026
2132
  {
2027
2133
  ref: thumbRef,
@@ -2040,7 +2146,7 @@ function ScrollBar({
2040
2146
  orientation = "vertical",
2041
2147
  ...props
2042
2148
  }) {
2043
- return /* @__PURE__ */ jsx16(
2149
+ return /* @__PURE__ */ jsx18(
2044
2150
  "div",
2045
2151
  {
2046
2152
  "data-slot": "scroll-area-scrollbar",
@@ -2048,7 +2154,7 @@ function ScrollBar({
2048
2154
  className: cn(scrollbarClassName(orientation), className),
2049
2155
  style: scrollbarStyle({ active: false, orientation, scrollable: true }),
2050
2156
  ...props,
2051
- children: /* @__PURE__ */ jsx16(
2157
+ children: /* @__PURE__ */ jsx18(
2052
2158
  "div",
2053
2159
  {
2054
2160
  "data-slot": "scroll-area-thumb",
@@ -2169,17 +2275,17 @@ function clamp(value, min, max) {
2169
2275
 
2170
2276
  // src/components/select/select.tsx
2171
2277
  import { Select as SelectPrimitive } from "radix-ui";
2172
- import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
2278
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
2173
2279
  function Select({
2174
2280
  ...props
2175
2281
  }) {
2176
- return /* @__PURE__ */ jsx17(SelectPrimitive.Root, { "data-slot": "select", ...props });
2282
+ return /* @__PURE__ */ jsx19(SelectPrimitive.Root, { "data-slot": "select", ...props });
2177
2283
  }
2178
2284
  function SelectGroup({
2179
2285
  className,
2180
2286
  ...props
2181
2287
  }) {
2182
- return /* @__PURE__ */ jsx17(
2288
+ return /* @__PURE__ */ jsx19(
2183
2289
  SelectPrimitive.Group,
2184
2290
  {
2185
2291
  "data-slot": "select-group",
@@ -2191,7 +2297,7 @@ function SelectGroup({
2191
2297
  function SelectValue({
2192
2298
  ...props
2193
2299
  }) {
2194
- return /* @__PURE__ */ jsx17(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
2300
+ return /* @__PURE__ */ jsx19(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
2195
2301
  }
2196
2302
  function SelectTrigger({
2197
2303
  className,
@@ -2200,7 +2306,7 @@ function SelectTrigger({
2200
2306
  children,
2201
2307
  ...props
2202
2308
  }) {
2203
- return /* @__PURE__ */ jsxs8(
2309
+ return /* @__PURE__ */ jsxs9(
2204
2310
  SelectPrimitive.Trigger,
2205
2311
  {
2206
2312
  "data-slot": "select-trigger",
@@ -2214,7 +2320,7 @@ function SelectTrigger({
2214
2320
  ...props,
2215
2321
  children: [
2216
2322
  children,
2217
- /* @__PURE__ */ jsx17(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx17(
2323
+ /* @__PURE__ */ jsx19(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx19(
2218
2324
  ChevronDownIcon,
2219
2325
  {
2220
2326
  className: cn("pointer-events-none size-4", "text-current")
@@ -2232,7 +2338,7 @@ function SelectContent({
2232
2338
  style,
2233
2339
  ...props
2234
2340
  }) {
2235
- return /* @__PURE__ */ jsx17(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
2341
+ return /* @__PURE__ */ jsx19(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
2236
2342
  SelectPrimitive.Content,
2237
2343
  {
2238
2344
  asChild: true,
@@ -2241,7 +2347,7 @@ function SelectContent({
2241
2347
  position,
2242
2348
  align,
2243
2349
  ...props,
2244
- children: /* @__PURE__ */ jsxs8(
2350
+ children: /* @__PURE__ */ jsxs9(
2245
2351
  MenuSurface,
2246
2352
  {
2247
2353
  "data-slot": "select-content",
@@ -2252,8 +2358,8 @@ function SelectContent({
2252
2358
  ),
2253
2359
  style: { zIndex: "var(--z-popover)", ...style },
2254
2360
  children: [
2255
- /* @__PURE__ */ jsx17(SelectScrollUpButton, {}),
2256
- /* @__PURE__ */ jsx17(
2361
+ /* @__PURE__ */ jsx19(SelectScrollUpButton, {}),
2362
+ /* @__PURE__ */ jsx19(
2257
2363
  SelectPrimitive.Viewport,
2258
2364
  {
2259
2365
  "data-position": position,
@@ -2263,7 +2369,7 @@ function SelectContent({
2263
2369
  children
2264
2370
  }
2265
2371
  ),
2266
- /* @__PURE__ */ jsx17(SelectScrollDownButton, {})
2372
+ /* @__PURE__ */ jsx19(SelectScrollDownButton, {})
2267
2373
  ]
2268
2374
  }
2269
2375
  )
@@ -2274,7 +2380,7 @@ function SelectLabel({
2274
2380
  className,
2275
2381
  ...props
2276
2382
  }) {
2277
- return /* @__PURE__ */ jsx17(
2383
+ return /* @__PURE__ */ jsx19(
2278
2384
  SelectPrimitive.Label,
2279
2385
  {
2280
2386
  "data-slot": "select-label",
@@ -2290,7 +2396,7 @@ function SelectSplitLayout({
2290
2396
  className,
2291
2397
  ...props
2292
2398
  }) {
2293
- return /* @__PURE__ */ jsx17(
2399
+ return /* @__PURE__ */ jsx19(
2294
2400
  "div",
2295
2401
  {
2296
2402
  "data-slot": "select-split-layout",
@@ -2306,7 +2412,7 @@ function SelectSplitColumn({
2306
2412
  className,
2307
2413
  ...props
2308
2414
  }) {
2309
- return /* @__PURE__ */ jsx17(
2415
+ return /* @__PURE__ */ jsx19(
2310
2416
  "div",
2311
2417
  {
2312
2418
  "data-slot": "select-split-column",
@@ -2319,7 +2425,7 @@ function SelectSplitColumnLabel({
2319
2425
  className,
2320
2426
  ...props
2321
2427
  }) {
2322
- return /* @__PURE__ */ jsx17(
2428
+ return /* @__PURE__ */ jsx19(
2323
2429
  "div",
2324
2430
  {
2325
2431
  "data-slot": "select-split-column-label",
@@ -2335,7 +2441,7 @@ function SelectSplitColumnItems({
2335
2441
  className,
2336
2442
  ...props
2337
2443
  }) {
2338
- return /* @__PURE__ */ jsx17(
2444
+ return /* @__PURE__ */ jsx19(
2339
2445
  "div",
2340
2446
  {
2341
2447
  "data-slot": "select-split-column-items",
@@ -2351,7 +2457,7 @@ function SelectSplitDivider({
2351
2457
  className,
2352
2458
  ...props
2353
2459
  }) {
2354
- return /* @__PURE__ */ jsx17(
2460
+ return /* @__PURE__ */ jsx19(
2355
2461
  "div",
2356
2462
  {
2357
2463
  "aria-hidden": "true",
@@ -2370,21 +2476,21 @@ function SelectItem({
2370
2476
  forceSelectedIndicator = false,
2371
2477
  ...props
2372
2478
  }) {
2373
- return /* @__PURE__ */ jsxs8(
2479
+ return /* @__PURE__ */ jsxs9(
2374
2480
  SelectPrimitive.Item,
2375
2481
  {
2376
2482
  "data-slot": "select-item",
2377
2483
  className: cn("w-full", menuItemWithIndicatorClassName, className),
2378
2484
  ...props,
2379
2485
  children: [
2380
- /* @__PURE__ */ jsx17("span", { className: menuItemIndicatorClassName, children: forceSelectedIndicator ? /* @__PURE__ */ jsx17(
2486
+ /* @__PURE__ */ jsx19("span", { className: menuItemIndicatorClassName, children: forceSelectedIndicator ? /* @__PURE__ */ jsx19(
2381
2487
  CheckIcon,
2382
2488
  {
2383
2489
  className: "pointer-events-none text-[var(--tutti-purple)]",
2384
2490
  "data-slot": "select-item-forced-indicator"
2385
2491
  }
2386
- ) : /* @__PURE__ */ jsx17(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(CheckIcon, { className: "pointer-events-none text-[var(--tutti-purple)]" }) }) }),
2387
- /* @__PURE__ */ jsx17(SelectPrimitive.ItemText, { children })
2492
+ ) : /* @__PURE__ */ jsx19(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx19(CheckIcon, { className: "pointer-events-none text-[var(--tutti-purple)]" }) }) }),
2493
+ /* @__PURE__ */ jsx19(SelectPrimitive.ItemText, { children })
2388
2494
  ]
2389
2495
  }
2390
2496
  );
@@ -2393,7 +2499,7 @@ function SelectSeparator({
2393
2499
  className,
2394
2500
  ...props
2395
2501
  }) {
2396
- return /* @__PURE__ */ jsx17(
2502
+ return /* @__PURE__ */ jsx19(
2397
2503
  SelectPrimitive.Separator,
2398
2504
  {
2399
2505
  "data-slot": "select-separator",
@@ -2409,7 +2515,7 @@ function SelectScrollUpButton({
2409
2515
  className,
2410
2516
  ...props
2411
2517
  }) {
2412
- return /* @__PURE__ */ jsx17(
2518
+ return /* @__PURE__ */ jsx19(
2413
2519
  SelectPrimitive.ScrollUpButton,
2414
2520
  {
2415
2521
  "data-slot": "select-scroll-up-button",
@@ -2418,7 +2524,7 @@ function SelectScrollUpButton({
2418
2524
  className
2419
2525
  ),
2420
2526
  ...props,
2421
- children: /* @__PURE__ */ jsx17(ChevronUpIcon, {})
2527
+ children: /* @__PURE__ */ jsx19(ChevronUpIcon, {})
2422
2528
  }
2423
2529
  );
2424
2530
  }
@@ -2426,7 +2532,7 @@ function SelectScrollDownButton({
2426
2532
  className,
2427
2533
  ...props
2428
2534
  }) {
2429
- return /* @__PURE__ */ jsx17(
2535
+ return /* @__PURE__ */ jsx19(
2430
2536
  SelectPrimitive.ScrollDownButton,
2431
2537
  {
2432
2538
  "data-slot": "select-scroll-down-button",
@@ -2435,21 +2541,21 @@ function SelectScrollDownButton({
2435
2541
  className
2436
2542
  ),
2437
2543
  ...props,
2438
- children: /* @__PURE__ */ jsx17(ChevronDownIcon, {})
2544
+ children: /* @__PURE__ */ jsx19(ChevronDownIcon, {})
2439
2545
  }
2440
2546
  );
2441
2547
  }
2442
2548
 
2443
2549
  // src/components/separator/separator.tsx
2444
2550
  import { Separator as SeparatorPrimitive } from "radix-ui";
2445
- import { jsx as jsx18 } from "react/jsx-runtime";
2551
+ import { jsx as jsx20 } from "react/jsx-runtime";
2446
2552
  function Separator2({
2447
2553
  className,
2448
2554
  orientation = "horizontal",
2449
2555
  decorative = true,
2450
2556
  ...props
2451
2557
  }) {
2452
- return /* @__PURE__ */ jsx18(
2558
+ return /* @__PURE__ */ jsx20(
2453
2559
  SeparatorPrimitive.Root,
2454
2560
  {
2455
2561
  "data-slot": "separator",
@@ -2465,7 +2571,7 @@ function Separator2({
2465
2571
  }
2466
2572
 
2467
2573
  // src/components/section-tabs/section-tabs.tsx
2468
- import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
2574
+ import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
2469
2575
  function SectionTabs({
2470
2576
  tabs,
2471
2577
  value,
@@ -2474,7 +2580,7 @@ function SectionTabs({
2474
2580
  className,
2475
2581
  testId
2476
2582
  }) {
2477
- return /* @__PURE__ */ jsx19(
2583
+ return /* @__PURE__ */ jsx21(
2478
2584
  "div",
2479
2585
  {
2480
2586
  "aria-label": ariaLabel,
@@ -2484,7 +2590,7 @@ function SectionTabs({
2484
2590
  role: "tablist",
2485
2591
  children: tabs.map((tab) => {
2486
2592
  const isActive = value === tab.value;
2487
- return /* @__PURE__ */ jsxs9(
2593
+ return /* @__PURE__ */ jsxs10(
2488
2594
  "button",
2489
2595
  {
2490
2596
  "aria-selected": isActive,
@@ -2499,8 +2605,8 @@ function SectionTabs({
2499
2605
  type: "button",
2500
2606
  onClick: () => onValueChange(tab.value),
2501
2607
  children: [
2502
- /* @__PURE__ */ jsx19("span", { className: "min-w-0 truncate", children: tab.label }),
2503
- tab.count !== void 0 ? /* @__PURE__ */ jsx19("span", { className: "text-[15px] font-semibold leading-5 text-[inherit]", children: tab.count }) : null
2608
+ /* @__PURE__ */ jsx21("span", { className: "min-w-0 truncate", children: tab.label }),
2609
+ tab.count !== void 0 ? /* @__PURE__ */ jsx21("span", { className: "text-[15px] font-semibold leading-5 text-[inherit]", children: tab.count }) : null
2504
2610
  ]
2505
2611
  },
2506
2612
  tab.value
@@ -2511,9 +2617,9 @@ function SectionTabs({
2511
2617
  }
2512
2618
 
2513
2619
  // src/components/shortcut-badge/shortcut-badge.tsx
2514
- import { jsx as jsx20 } from "react/jsx-runtime";
2620
+ import { jsx as jsx22 } from "react/jsx-runtime";
2515
2621
  function ShortcutBadge({ className, ...props }) {
2516
- return /* @__PURE__ */ jsx20(
2622
+ return /* @__PURE__ */ jsx22(
2517
2623
  "kbd",
2518
2624
  {
2519
2625
  "data-slot": "shortcut-badge",
@@ -2531,9 +2637,9 @@ import {
2531
2637
  Toaster as SonnerToaster,
2532
2638
  toast
2533
2639
  } from "sonner";
2534
- import { jsx as jsx21 } from "react/jsx-runtime";
2640
+ import { jsx as jsx23 } from "react/jsx-runtime";
2535
2641
  function Toaster({ toastOptions, style, ...props }) {
2536
- return /* @__PURE__ */ jsx21(
2642
+ return /* @__PURE__ */ jsx23(
2537
2643
  SonnerToaster,
2538
2644
  {
2539
2645
  closeButton: true,
@@ -2542,11 +2648,11 @@ function Toaster({ toastOptions, style, ...props }) {
2542
2648
  position: "top-right",
2543
2649
  visibleToasts: 4,
2544
2650
  icons: {
2545
- error: /* @__PURE__ */ jsx21(FailedFilledIcon, { className: "size-4" }),
2546
- info: /* @__PURE__ */ jsx21(WarningLinedIcon, { className: "size-4" }),
2547
- loading: /* @__PURE__ */ jsx21(LoadingIcon, { className: "size-4 animate-spin" }),
2548
- success: /* @__PURE__ */ jsx21(SuccessFilledIcon, { className: "size-4" }),
2549
- warning: /* @__PURE__ */ jsx21(WarningFilledIcon, { className: "size-4" })
2651
+ error: /* @__PURE__ */ jsx23(FailedFilledIcon, { className: "size-4" }),
2652
+ info: /* @__PURE__ */ jsx23(WarningLinedIcon, { className: "size-4" }),
2653
+ loading: /* @__PURE__ */ jsx23(LoadingIcon, { className: "size-4 animate-spin" }),
2654
+ success: /* @__PURE__ */ jsx23(SuccessFilledIcon, { className: "size-4" }),
2655
+ warning: /* @__PURE__ */ jsx23(WarningFilledIcon, { className: "size-4" })
2550
2656
  },
2551
2657
  style: {
2552
2658
  "--normal-bg": "var(--background-fronted)",
@@ -2575,7 +2681,7 @@ function Toaster({ toastOptions, style, ...props }) {
2575
2681
  }
2576
2682
 
2577
2683
  // src/components/spinner/spinner.tsx
2578
- import { jsx as jsx22 } from "react/jsx-runtime";
2684
+ import { jsx as jsx24 } from "react/jsx-runtime";
2579
2685
  function Spinner({
2580
2686
  className,
2581
2687
  size = 16,
@@ -2584,7 +2690,7 @@ function Spinner({
2584
2690
  testId,
2585
2691
  trackColor
2586
2692
  }) {
2587
- return /* @__PURE__ */ jsx22(
2693
+ return /* @__PURE__ */ jsx24(
2588
2694
  LoadingIcon,
2589
2695
  {
2590
2696
  "data-slot": "spinner",
@@ -2604,7 +2710,7 @@ function Spinner({
2604
2710
 
2605
2711
  // src/components/status-dot/status-dot.tsx
2606
2712
  import { cva as cva4 } from "class-variance-authority";
2607
- import { jsx as jsx23 } from "react/jsx-runtime";
2713
+ import { jsx as jsx25 } from "react/jsx-runtime";
2608
2714
  var statusDotVariants = cva4("inline-flex shrink-0 rounded-full", {
2609
2715
  variants: {
2610
2716
  tone: {
@@ -2638,7 +2744,7 @@ function StatusDot({
2638
2744
  title,
2639
2745
  className
2640
2746
  }) {
2641
- return /* @__PURE__ */ jsx23(
2747
+ return /* @__PURE__ */ jsx25(
2642
2748
  "span",
2643
2749
  {
2644
2750
  "aria-hidden": ariaLabel ? void 0 : true,
@@ -2656,13 +2762,13 @@ function StatusDot({
2656
2762
 
2657
2763
  // src/components/switch/switch.tsx
2658
2764
  import { Switch as SwitchPrimitive } from "radix-ui";
2659
- import { jsx as jsx24 } from "react/jsx-runtime";
2765
+ import { jsx as jsx26 } from "react/jsx-runtime";
2660
2766
  function Switch({
2661
2767
  className,
2662
2768
  size = "default",
2663
2769
  ...props
2664
2770
  }) {
2665
- return /* @__PURE__ */ jsx24(
2771
+ return /* @__PURE__ */ jsx26(
2666
2772
  SwitchPrimitive.Root,
2667
2773
  {
2668
2774
  "data-slot": "switch",
@@ -2672,7 +2778,7 @@ function Switch({
2672
2778
  className
2673
2779
  ),
2674
2780
  ...props,
2675
- children: /* @__PURE__ */ jsx24(
2781
+ children: /* @__PURE__ */ jsx26(
2676
2782
  SwitchPrimitive.Thumb,
2677
2783
  {
2678
2784
  "data-slot": "switch-thumb",
@@ -2684,9 +2790,9 @@ function Switch({
2684
2790
  }
2685
2791
 
2686
2792
  // src/components/textarea/textarea.tsx
2687
- import { jsx as jsx25 } from "react/jsx-runtime";
2793
+ import { jsx as jsx27 } from "react/jsx-runtime";
2688
2794
  function Textarea({ className, ...props }) {
2689
- return /* @__PURE__ */ jsx25(
2795
+ return /* @__PURE__ */ jsx27(
2690
2796
  "textarea",
2691
2797
  {
2692
2798
  "data-slot": "textarea",
@@ -2700,18 +2806,18 @@ function Textarea({ className, ...props }) {
2700
2806
  }
2701
2807
 
2702
2808
  // src/components/toast/toast.tsx
2703
- import * as React7 from "react";
2809
+ import * as React8 from "react";
2704
2810
  import { Toast as ToastPrimitive } from "radix-ui";
2705
2811
  import { cva as cva5 } from "class-variance-authority";
2706
- import { jsx as jsx26, jsxs as jsxs10 } from "react/jsx-runtime";
2812
+ import { jsx as jsx28, jsxs as jsxs11 } from "react/jsx-runtime";
2707
2813
  var toastDefaultDurationMs = 3e3;
2708
2814
  function ToastProvider({
2709
2815
  duration = toastDefaultDurationMs,
2710
2816
  ...props
2711
2817
  }) {
2712
- return /* @__PURE__ */ jsx26(ToastPrimitive.Provider, { duration, ...props });
2818
+ return /* @__PURE__ */ jsx28(ToastPrimitive.Provider, { duration, ...props });
2713
2819
  }
2714
- var ToastVisualContext = React7.createContext(null);
2820
+ var ToastVisualContext = React8.createContext(null);
2715
2821
  var toastStatusIconByVariant = {
2716
2822
  destructive: FailedFilledIcon,
2717
2823
  success: SuccessFilledIcon
@@ -2735,7 +2841,7 @@ function formatToastText(children) {
2735
2841
  if (typeof children === "string") {
2736
2842
  return stripToastTrailingSentencePunctuation(children);
2737
2843
  }
2738
- const flatChildren = React7.Children.toArray(children);
2844
+ const flatChildren = React8.Children.toArray(children);
2739
2845
  if (flatChildren.length === 1 && typeof flatChildren[0] === "string") {
2740
2846
  return stripToastTrailingSentencePunctuation(flatChildren[0]);
2741
2847
  }
@@ -2767,7 +2873,7 @@ function ToastRoot({
2767
2873
  ...props
2768
2874
  }) {
2769
2875
  const isDestructive = variant === "destructive";
2770
- return /* @__PURE__ */ jsx26(
2876
+ return /* @__PURE__ */ jsx28(
2771
2877
  ToastPrimitive.Root,
2772
2878
  {
2773
2879
  "aria-busy": busy,
@@ -2784,7 +2890,7 @@ function ToastRoot({
2784
2890
  ...style
2785
2891
  },
2786
2892
  ...props,
2787
- children: /* @__PURE__ */ jsx26(ToastVisualContext.Provider, { value: { busy, variant }, children: /* @__PURE__ */ jsx26("span", { className: "flex min-w-0 max-w-full flex-col items-center justify-center whitespace-normal break-words text-center", children }) })
2893
+ children: /* @__PURE__ */ jsx28(ToastVisualContext.Provider, { value: { busy, variant }, children: /* @__PURE__ */ jsx28("span", { className: "flex min-w-0 max-w-full flex-col items-center justify-center whitespace-normal break-words text-center", children }) })
2788
2894
  }
2789
2895
  );
2790
2896
  }
@@ -2793,9 +2899,9 @@ function ToastTitle({
2793
2899
  children,
2794
2900
  ...props
2795
2901
  }) {
2796
- const toastVisual = React7.useContext(ToastVisualContext);
2902
+ const toastVisual = React8.useContext(ToastVisualContext);
2797
2903
  const StatusIcon = toastVisual?.variant && hasToastStatusIcon(toastVisual.variant) ? toastStatusIconByVariant[toastVisual.variant] : null;
2798
- return /* @__PURE__ */ jsxs10(
2904
+ return /* @__PURE__ */ jsxs11(
2799
2905
  ToastPrimitive.Title,
2800
2906
  {
2801
2907
  "data-slot": "toast-title",
@@ -2805,7 +2911,7 @@ function ToastTitle({
2805
2911
  ),
2806
2912
  ...props,
2807
2913
  children: [
2808
- toastVisual?.busy ? /* @__PURE__ */ jsx26(
2914
+ toastVisual?.busy ? /* @__PURE__ */ jsx28(
2809
2915
  Spinner,
2810
2916
  {
2811
2917
  className: "shrink-0 text-current",
@@ -2813,8 +2919,8 @@ function ToastTitle({
2813
2919
  strokeWidth: 2,
2814
2920
  trackColor: "color-mix(in srgb, currentColor 28%, transparent)"
2815
2921
  }
2816
- ) : StatusIcon ? /* @__PURE__ */ jsx26(StatusIcon, { className: "size-4 shrink-0 text-current" }) : null,
2817
- /* @__PURE__ */ jsx26("span", { className: "min-w-0 break-words", children: formatToastText(children) })
2922
+ ) : StatusIcon ? /* @__PURE__ */ jsx28(StatusIcon, { className: "size-4 shrink-0 text-current" }) : null,
2923
+ /* @__PURE__ */ jsx28("span", { className: "min-w-0 break-words", children: formatToastText(children) })
2818
2924
  ]
2819
2925
  }
2820
2926
  );
@@ -2823,7 +2929,7 @@ function ToastDescription({
2823
2929
  className,
2824
2930
  ...props
2825
2931
  }) {
2826
- return /* @__PURE__ */ jsx26(
2932
+ return /* @__PURE__ */ jsx28(
2827
2933
  ToastPrimitive.Description,
2828
2934
  {
2829
2935
  "data-slot": "toast-description",
@@ -2839,7 +2945,7 @@ function ToastClose({
2839
2945
  className,
2840
2946
  ...props
2841
2947
  }) {
2842
- return /* @__PURE__ */ jsx26(
2948
+ return /* @__PURE__ */ jsx28(
2843
2949
  ToastPrimitive.Close,
2844
2950
  {
2845
2951
  "data-slot": "toast-close",
@@ -2848,7 +2954,7 @@ function ToastClose({
2848
2954
  className
2849
2955
  ),
2850
2956
  ...props,
2851
- children: /* @__PURE__ */ jsx26(CloseIcon, { className: "size-4" })
2957
+ children: /* @__PURE__ */ jsx28(CloseIcon, { className: "size-4" })
2852
2958
  }
2853
2959
  );
2854
2960
  }
@@ -2857,7 +2963,7 @@ function ToastViewport({
2857
2963
  style,
2858
2964
  ...props
2859
2965
  }) {
2860
- return /* @__PURE__ */ jsx26(
2966
+ return /* @__PURE__ */ jsx28(
2861
2967
  ToastPrimitive.Viewport,
2862
2968
  {
2863
2969
  "data-slot": "toast-viewport",
@@ -2871,63 +2977,9 @@ function ToastViewport({
2871
2977
  );
2872
2978
  }
2873
2979
 
2874
- // src/components/tooltip/tooltip.tsx
2875
- import { Tooltip as TooltipPrimitive } from "radix-ui";
2876
- import { jsx as jsx27 } from "react/jsx-runtime";
2877
- function TooltipProvider({
2878
- delayDuration = 0,
2879
- ...props
2880
- }) {
2881
- return /* @__PURE__ */ jsx27(
2882
- TooltipPrimitive.Provider,
2883
- {
2884
- "data-slot": "tooltip-provider",
2885
- delayDuration,
2886
- ...props
2887
- }
2888
- );
2889
- }
2890
- function Tooltip({
2891
- ...props
2892
- }) {
2893
- return /* @__PURE__ */ jsx27(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
2894
- }
2895
- function TooltipTrigger({
2896
- ...props
2897
- }) {
2898
- return /* @__PURE__ */ jsx27(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
2899
- }
2900
- function TooltipPortal({
2901
- ...props
2902
- }) {
2903
- return /* @__PURE__ */ jsx27(TooltipPrimitive.Portal, { "data-slot": "tooltip-portal", ...props });
2904
- }
2905
- function TooltipContent({
2906
- className,
2907
- sideOffset = 8,
2908
- children,
2909
- style,
2910
- ...props
2911
- }) {
2912
- return /* @__PURE__ */ jsx27(TooltipPortal, { children: /* @__PURE__ */ jsx27(
2913
- TooltipPrimitive.Content,
2914
- {
2915
- "data-slot": "tooltip-content",
2916
- sideOffset,
2917
- className: cn(
2918
- "inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-2 rounded-md border border-[var(--border-1)] bg-[var(--background-fronted)] px-2 py-1 text-[13px] leading-[1.3] text-popover-foreground shadow-soft outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2919
- className
2920
- ),
2921
- style: { zIndex: "var(--z-tooltip, 100700)", ...style },
2922
- ...props,
2923
- children
2924
- }
2925
- ) });
2926
- }
2927
-
2928
2980
  // src/components/underline-tabs/underline-tabs.tsx
2929
- import { useEffect as useEffect4, useLayoutEffect as useLayoutEffect2, useRef as useRef3, useState as useState4 } from "react";
2930
- import { jsx as jsx28, jsxs as jsxs11 } from "react/jsx-runtime";
2981
+ import { useEffect as useEffect5, useLayoutEffect as useLayoutEffect2, useRef as useRef4, useState as useState5 } from "react";
2982
+ import { jsx as jsx29, jsxs as jsxs12 } from "react/jsx-runtime";
2931
2983
  function UnderlineTabs({
2932
2984
  tabs,
2933
2985
  value,
@@ -2942,11 +2994,11 @@ function UnderlineTabs({
2942
2994
  scrollRightTestId,
2943
2995
  preventMouseDownDefault = false
2944
2996
  }) {
2945
- const viewportRef = useRef3(null);
2946
- const rowRef = useRef3(null);
2947
- const buttonRefs = useRef3({});
2948
- const [indicatorStyle, setIndicatorStyle] = useState4({ left: 0, width: 0 });
2949
- const [overflow, setOverflow] = useState4({
2997
+ const viewportRef = useRef4(null);
2998
+ const rowRef = useRef4(null);
2999
+ const buttonRefs = useRef4({});
3000
+ const [indicatorStyle, setIndicatorStyle] = useState5({ left: 0, width: 0 });
3001
+ const [overflow, setOverflow] = useState5({
2950
3002
  canScrollLeft: false,
2951
3003
  canScrollRight: false
2952
3004
  });
@@ -2967,7 +3019,7 @@ function UnderlineTabs({
2967
3019
  (current) => current.left === nextStyle.left && current.width === nextStyle.width ? current : nextStyle
2968
3020
  );
2969
3021
  }, [tabs, value]);
2970
- useEffect4(() => {
3022
+ useEffect5(() => {
2971
3023
  const viewport = viewportRef.current;
2972
3024
  if (!viewport) {
2973
3025
  return;
@@ -3010,7 +3062,7 @@ function UnderlineTabs({
3010
3062
  behavior: "smooth"
3011
3063
  });
3012
3064
  };
3013
- return /* @__PURE__ */ jsxs11(
3065
+ return /* @__PURE__ */ jsxs12(
3014
3066
  "div",
3015
3067
  {
3016
3068
  "aria-label": ariaLabel,
@@ -3022,7 +3074,7 @@ function UnderlineTabs({
3022
3074
  "data-testid": testId,
3023
3075
  role: "tablist",
3024
3076
  children: [
3025
- /* @__PURE__ */ jsx28(
3077
+ /* @__PURE__ */ jsx29(
3026
3078
  "div",
3027
3079
  {
3028
3080
  ref: viewportRef,
@@ -3036,7 +3088,7 @@ function UnderlineTabs({
3036
3088
  "data-can-scroll-right": overflow.canScrollRight ? "true" : "false",
3037
3089
  "data-slot": "underline-tabs-viewport",
3038
3090
  "data-testid": viewportTestId,
3039
- children: /* @__PURE__ */ jsxs11(
3091
+ children: /* @__PURE__ */ jsxs12(
3040
3092
  "div",
3041
3093
  {
3042
3094
  ref: rowRef,
@@ -3044,7 +3096,7 @@ function UnderlineTabs({
3044
3096
  children: [
3045
3097
  tabs.map((tab) => {
3046
3098
  const isActive = value === tab.value;
3047
- return /* @__PURE__ */ jsxs11(
3099
+ return /* @__PURE__ */ jsxs12(
3048
3100
  "button",
3049
3101
  {
3050
3102
  ref: (element) => {
@@ -3067,14 +3119,14 @@ function UnderlineTabs({
3067
3119
  onClick: () => onValueChange(tab.value),
3068
3120
  onMouseDown: preventMouseDownDefault ? (event) => event.preventDefault() : void 0,
3069
3121
  children: [
3070
- /* @__PURE__ */ jsx28("span", { children: tab.label }),
3071
- tab.count !== void 0 ? /* @__PURE__ */ jsx28("span", { className: "text-[11px] font-semibold leading-6 text-[inherit]", children: tab.count }) : null
3122
+ /* @__PURE__ */ jsx29("span", { children: tab.label }),
3123
+ tab.count !== void 0 ? /* @__PURE__ */ jsx29("span", { className: "text-[11px] font-semibold leading-6 text-[inherit]", children: tab.count }) : null
3072
3124
  ]
3073
3125
  },
3074
3126
  tab.value
3075
3127
  );
3076
3128
  }),
3077
- /* @__PURE__ */ jsx28(
3129
+ /* @__PURE__ */ jsx29(
3078
3130
  "div",
3079
3131
  {
3080
3132
  "aria-hidden": true,
@@ -3091,7 +3143,7 @@ function UnderlineTabs({
3091
3143
  )
3092
3144
  }
3093
3145
  ),
3094
- /* @__PURE__ */ jsx28(
3146
+ /* @__PURE__ */ jsx29(
3095
3147
  "button",
3096
3148
  {
3097
3149
  "aria-label": scrollLeftLabel,
@@ -3102,10 +3154,10 @@ function UnderlineTabs({
3102
3154
  disabled: !overflow.canScrollLeft,
3103
3155
  type: "button",
3104
3156
  onClick: () => scrollTabs("left"),
3105
- children: /* @__PURE__ */ jsx28(ArrowLeftIcon, { size: 16 })
3157
+ children: /* @__PURE__ */ jsx29(ArrowLeftIcon, { size: 16 })
3106
3158
  }
3107
3159
  ),
3108
- /* @__PURE__ */ jsx28(
3160
+ /* @__PURE__ */ jsx29(
3109
3161
  "button",
3110
3162
  {
3111
3163
  "aria-label": scrollRightLabel,
@@ -3116,7 +3168,7 @@ function UnderlineTabs({
3116
3168
  disabled: !overflow.canScrollRight,
3117
3169
  type: "button",
3118
3170
  onClick: () => scrollTabs("right"),
3119
- children: /* @__PURE__ */ jsx28(ArrowRightIcon, { size: 16 })
3171
+ children: /* @__PURE__ */ jsx29(ArrowRightIcon, { size: 16 })
3120
3172
  }
3121
3173
  )
3122
3174
  ]
@@ -3125,9 +3177,9 @@ function UnderlineTabs({
3125
3177
  }
3126
3178
 
3127
3179
  // src/components/viewport-menu-surface/viewport-menu-surface.tsx
3128
- import * as React8 from "react";
3180
+ import * as React9 from "react";
3129
3181
  import { createPortal as createPortal2 } from "react-dom";
3130
- import { jsx as jsx29 } from "react/jsx-runtime";
3182
+ import { jsx as jsx30 } from "react/jsx-runtime";
3131
3183
  var VIEWPORT_MENU_PADDING = 12;
3132
3184
  var MENU_BOUNDARY_PADDING = 8;
3133
3185
  function clampMenuCoordinate(origin, size, viewportExtent, padding) {
@@ -3239,7 +3291,7 @@ function assignRef(ref, value) {
3239
3291
  function callHandler(handler, event) {
3240
3292
  handler?.(event);
3241
3293
  }
3242
- var ViewportMenuSurface = React8.forwardRef(function ViewportMenuSurface2({
3294
+ var ViewportMenuSurface = React9.forwardRef(function ViewportMenuSurface2({
3243
3295
  open,
3244
3296
  placement,
3245
3297
  children,
@@ -3255,16 +3307,16 @@ var ViewportMenuSurface = React8.forwardRef(function ViewportMenuSurface2({
3255
3307
  className,
3256
3308
  ...rest
3257
3309
  }, forwardedRef) {
3258
- const surfaceRef = React8.useRef(null);
3259
- const [measuredSize, setMeasuredSize] = React8.useState(null);
3260
- const setRefs2 = React8.useCallback(
3310
+ const surfaceRef = React9.useRef(null);
3311
+ const [measuredSize, setMeasuredSize] = React9.useState(null);
3312
+ const setRefs2 = React9.useCallback(
3261
3313
  (node) => {
3262
3314
  surfaceRef.current = node;
3263
3315
  assignRef(forwardedRef, node);
3264
3316
  },
3265
3317
  [forwardedRef]
3266
3318
  );
3267
- React8.useLayoutEffect(() => {
3319
+ React9.useLayoutEffect(() => {
3268
3320
  if (!open) {
3269
3321
  setMeasuredSize(null);
3270
3322
  return;
@@ -3288,7 +3340,7 @@ var ViewportMenuSurface = React8.forwardRef(function ViewportMenuSurface2({
3288
3340
  observer.observe(element);
3289
3341
  return () => observer.disconnect();
3290
3342
  }, [open, placement]);
3291
- React8.useEffect(() => {
3343
+ React9.useEffect(() => {
3292
3344
  if (!open) {
3293
3345
  return;
3294
3346
  }
@@ -3345,7 +3397,7 @@ var ViewportMenuSurface = React8.forwardRef(function ViewportMenuSurface2({
3345
3397
  onDismiss,
3346
3398
  open
3347
3399
  ]);
3348
- const resolvedPlacement = React8.useMemo(() => {
3400
+ const resolvedPlacement = React9.useMemo(() => {
3349
3401
  if (placement.type === "absolute") {
3350
3402
  const boundary2 = resolveMenuBoundaryFromPoint({
3351
3403
  x: placement.left,
@@ -3390,7 +3442,7 @@ var ViewportMenuSurface = React8.forwardRef(function ViewportMenuSurface2({
3390
3442
  }
3391
3443
  const portalTarget = resolvedPlacement.portalTarget ?? document.body;
3392
3444
  return createPortal2(
3393
- /* @__PURE__ */ jsx29(
3445
+ /* @__PURE__ */ jsx30(
3394
3446
  MenuSurface,
3395
3447
  {
3396
3448
  ...rest,
@@ -3480,6 +3532,13 @@ export {
3480
3532
  DropdownMenuSubTrigger,
3481
3533
  DropdownMenuSubContent,
3482
3534
  Input,
3535
+ TooltipProvider,
3536
+ Tooltip,
3537
+ TooltipTrigger,
3538
+ TooltipPortal,
3539
+ TooltipContent,
3540
+ useTextOverflow,
3541
+ TruncatingPillLabel,
3483
3542
  MentionPill,
3484
3543
  Popover,
3485
3544
  PopoverTrigger,
@@ -3524,12 +3583,7 @@ export {
3524
3583
  ToastDescription,
3525
3584
  ToastClose,
3526
3585
  ToastViewport,
3527
- TooltipProvider,
3528
- Tooltip,
3529
- TooltipTrigger,
3530
- TooltipPortal,
3531
- TooltipContent,
3532
3586
  UnderlineTabs,
3533
3587
  ViewportMenuSurface
3534
3588
  };
3535
- //# sourceMappingURL=chunk-746EJAIH.js.map
3589
+ //# sourceMappingURL=chunk-K6IDLSMW.js.map