@ai-matrx/design-system 0.49.2 → 0.49.4

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
@@ -55,12 +55,6 @@ function MoreHorizontalIcon(props) {
55
55
  function LucideCheckIcon(props) {
56
56
  return /* @__PURE__ */ jsx("svg", { ...lucideProps(props), children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" }) });
57
57
  }
58
- function ChevronsUpDownIcon(props) {
59
- return /* @__PURE__ */ jsxs("svg", { ...lucideProps(props), children: [
60
- /* @__PURE__ */ jsx("path", { d: "m7 15 5 5 5-5" }),
61
- /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" })
62
- ] });
63
- }
64
58
  function ExternalLinkIcon(props) {
65
59
  return /* @__PURE__ */ jsxs("svg", { ...lucideProps(props), children: [
66
60
  /* @__PURE__ */ jsx("path", { d: "M15 3h6v6" }),
@@ -1762,6 +1756,166 @@ var ContextMenuShortcut = ({
1762
1756
  );
1763
1757
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1764
1758
 
1759
+ // src/select.tsx
1760
+ import * as SelectPrimitive from "@radix-ui/react-select";
1761
+ import { cva as cva4 } from "class-variance-authority";
1762
+ import * as React18 from "react";
1763
+
1764
+ // src/field-surface.ts
1765
+ var FIELD_SURFACE_CLASS = "border border-border bg-card";
1766
+
1767
+ // src/select.tsx
1768
+ import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1769
+ var Select = SelectPrimitive.Root;
1770
+ var SelectGroup = SelectPrimitive.Group;
1771
+ var SelectValue = SelectPrimitive.Value;
1772
+ var selectTriggerVariants = cva4(
1773
+ `flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-md ${FIELD_SURFACE_CLASS} text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground transition-colors hover:bg-accent hover:border-accent-foreground/20 focus:outline-none focus:ring-1 focus:ring-primary/30 focus:border-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:min-w-0 [&>span]:line-clamp-1`,
1774
+ {
1775
+ variants: {
1776
+ size: {
1777
+ sm: "h-7 px-2 py-1 text-xs",
1778
+ default: "h-9 px-3 py-1",
1779
+ lg: "h-10 px-3 py-2"
1780
+ }
1781
+ },
1782
+ defaultVariants: {
1783
+ size: "default"
1784
+ }
1785
+ }
1786
+ );
1787
+ function SelectChevron({ className, size = "default" }) {
1788
+ return /* @__PURE__ */ jsx21(
1789
+ RadixChevronDownIcon,
1790
+ {
1791
+ "aria-hidden": "true",
1792
+ "data-select-chevron": "",
1793
+ className: cn(size === "sm" ? "h-3.5 w-3.5" : "h-4 w-4", "shrink-0 opacity-50", className)
1794
+ }
1795
+ );
1796
+ }
1797
+ var SelectTrigger = React18.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs11(
1798
+ SelectPrimitive.Trigger,
1799
+ {
1800
+ ref,
1801
+ className: cn(selectTriggerVariants({ size, className })),
1802
+ ...props,
1803
+ children: [
1804
+ children,
1805
+ !hideArrow && /* @__PURE__ */ jsx21(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx21(SelectChevron, { size: size === "sm" ? "sm" : "default" }) })
1806
+ ]
1807
+ }
1808
+ ));
1809
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
1810
+ var SelectScrollUpButton = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1811
+ SelectPrimitive.ScrollUpButton,
1812
+ {
1813
+ ref,
1814
+ className: cn(
1815
+ "flex cursor-default items-center justify-center py-1",
1816
+ className
1817
+ ),
1818
+ ...props,
1819
+ children: /* @__PURE__ */ jsx21(RadixChevronUpIcon, {})
1820
+ }
1821
+ ));
1822
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
1823
+ var SelectScrollDownButton = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1824
+ SelectPrimitive.ScrollDownButton,
1825
+ {
1826
+ ref,
1827
+ className: cn(
1828
+ "flex cursor-default items-center justify-center py-1",
1829
+ className
1830
+ ),
1831
+ ...props,
1832
+ children: /* @__PURE__ */ jsx21(RadixChevronDownIcon, {})
1833
+ }
1834
+ ));
1835
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
1836
+ var SelectContent = React18.forwardRef(
1837
+ ({
1838
+ className,
1839
+ children,
1840
+ position = "popper",
1841
+ container,
1842
+ animated = true,
1843
+ ...props
1844
+ }, ref) => {
1845
+ const portalContainer = usePortalContainer(container);
1846
+ return /* @__PURE__ */ jsx21(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs11(
1847
+ SelectPrimitive.Content,
1848
+ {
1849
+ ref,
1850
+ className: cn(
1851
+ "relative z-[10001] max-h-96 min-w-[8rem] max-w-[calc(100vw-2rem)] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md",
1852
+ animated && MOTION_POPPER,
1853
+ // The resting gap from the trigger. It is the `translate` property
1854
+ // (POPPER_OFFSET), never Tailwind translate utilities: those compose
1855
+ // with `transform` on a v4 host and are REPLACED by it on a v3 one,
1856
+ // so on v3 the animation ate the gap and the surface snapped 4px at
1857
+ // the end. Same law as the centred dialog card — see motion.ts.
1858
+ position === "popper" && POPPER_OFFSET,
1859
+ className
1860
+ ),
1861
+ position,
1862
+ ...props,
1863
+ children: [
1864
+ /* @__PURE__ */ jsx21(SelectScrollUpButton, {}),
1865
+ /* @__PURE__ */ jsx21(
1866
+ SelectPrimitive.Viewport,
1867
+ {
1868
+ className: cn(
1869
+ "max-w-full overflow-y-auto p-0.5",
1870
+ position === "popper" && "w-full min-w-[var(--radix-select-trigger-width)] max-h-[var(--radix-select-content-available-height)]"
1871
+ ),
1872
+ children
1873
+ }
1874
+ ),
1875
+ /* @__PURE__ */ jsx21(SelectScrollDownButton, {})
1876
+ ]
1877
+ }
1878
+ ) });
1879
+ }
1880
+ );
1881
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
1882
+ var SelectLabel = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1883
+ SelectPrimitive.Label,
1884
+ {
1885
+ ref,
1886
+ className: cn("px-2 py-1.5 text-sm font-semibold", className),
1887
+ ...props
1888
+ }
1889
+ ));
1890
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
1891
+ var SelectItem = React18.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs11(
1892
+ SelectPrimitive.Item,
1893
+ {
1894
+ ref,
1895
+ className: cn(
1896
+ "relative flex w-full min-w-0 cursor-default select-none rounded-sm py-1 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1897
+ description ? "flex-col items-start gap-0.5 py-1.5" : "items-center",
1898
+ className
1899
+ ),
1900
+ ...props,
1901
+ children: [
1902
+ /* @__PURE__ */ jsx21("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx21(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx21(CheckIcon, { className: "h-4 w-4" }) }) }),
1903
+ /* @__PURE__ */ jsx21("span", { className: "min-w-0 whitespace-normal break-words [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx21(SelectPrimitive.ItemText, { children }) }),
1904
+ description ? /* @__PURE__ */ jsx21("span", { className: "block min-w-0 break-words text-xs leading-snug text-muted-foreground [overflow-wrap:anywhere]", children: description }) : null
1905
+ ]
1906
+ }
1907
+ ));
1908
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
1909
+ var SelectSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1910
+ SelectPrimitive.Separator,
1911
+ {
1912
+ ref,
1913
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
1914
+ ...props
1915
+ }
1916
+ ));
1917
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
1918
+
1765
1919
  // src/creatable-picker.tsx
1766
1920
  import {
1767
1921
  useRef,
@@ -1770,12 +1924,12 @@ import {
1770
1924
 
1771
1925
  // src/popover.tsx
1772
1926
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1773
- import * as React18 from "react";
1774
- import { jsx as jsx21 } from "react/jsx-runtime";
1927
+ import * as React19 from "react";
1928
+ import { jsx as jsx22 } from "react/jsx-runtime";
1775
1929
  var Popover = PopoverPrimitive.Root;
1776
1930
  var PopoverTrigger = PopoverPrimitive.Trigger;
1777
1931
  var PopoverAnchor = PopoverPrimitive.Anchor;
1778
- var PopoverContent = React18.forwardRef(
1932
+ var PopoverContent = React19.forwardRef(
1779
1933
  ({
1780
1934
  className,
1781
1935
  align = "center",
@@ -1787,7 +1941,7 @@ var PopoverContent = React18.forwardRef(
1787
1941
  ...props
1788
1942
  }, ref) => {
1789
1943
  const portalContainer = usePortalContainer(container);
1790
- return /* @__PURE__ */ jsx21(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx21(
1944
+ return /* @__PURE__ */ jsx22(PopoverPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx22(
1791
1945
  PopoverPrimitive.Content,
1792
1946
  {
1793
1947
  ref,
@@ -1814,7 +1968,7 @@ var PopoverContent = React18.forwardRef(
1814
1968
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1815
1969
 
1816
1970
  // src/creatable-picker.tsx
1817
- import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
1971
+ import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
1818
1972
  function article(noun) {
1819
1973
  return /^[aeiou]/i.test(noun.trim()) ? `an ${noun}` : `a ${noun}`;
1820
1974
  }
@@ -1889,8 +2043,8 @@ function CreatablePicker({
1889
2043
  setBusy(false);
1890
2044
  }
1891
2045
  };
1892
- return /* @__PURE__ */ jsxs11(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
1893
- /* @__PURE__ */ jsx22(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs11(
2046
+ return /* @__PURE__ */ jsxs12(Popover, { open, onOpenChange: (next) => next ? setOpen(true) : close(), children: [
2047
+ /* @__PURE__ */ jsx23(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs12(
1894
2048
  "button",
1895
2049
  {
1896
2050
  type: "button",
@@ -1904,12 +2058,12 @@ function CreatablePicker({
1904
2058
  triggerClassName
1905
2059
  ),
1906
2060
  children: [
1907
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx22("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
1908
- /* @__PURE__ */ jsx22(ChevronsUpDownIcon, { className: "size-3.5 shrink-0 opacity-50" })
2061
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 flex-1 truncate", children: selected ? renderSelected ?? selected.render ?? selected.label : /* @__PURE__ */ jsx23("span", { className: "text-muted-foreground", children: loading ? "Loading\u2026" : placeholder }) }),
2062
+ /* @__PURE__ */ jsx23(SelectChevron, { size: "sm" })
1909
2063
  ]
1910
2064
  }
1911
2065
  ) }),
1912
- /* @__PURE__ */ jsx22(PopoverContent, { sizing: "content", align: "start", className: "p-0", children: /* @__PURE__ */ jsxs11(
2066
+ /* @__PURE__ */ jsx23(PopoverContent, { sizing: "content", align: "start", className: "p-0", children: /* @__PURE__ */ jsxs12(
1913
2067
  Command,
1914
2068
  {
1915
2069
  filter: (itemValue, search, keywords) => {
@@ -1917,7 +2071,7 @@ function CreatablePicker({
1917
2071
  return haystack.includes(search.toLowerCase()) ? 1 : 0;
1918
2072
  },
1919
2073
  children: [
1920
- /* @__PURE__ */ jsx22(
2074
+ /* @__PURE__ */ jsx23(
1921
2075
  CommandInput,
1922
2076
  {
1923
2077
  ref: inputRef,
@@ -1929,13 +2083,13 @@ function CreatablePicker({
1929
2083
  placeholder: searchPlaceholder ?? `Search or add ${article(noun)}\u2026`
1930
2084
  }
1931
2085
  ),
1932
- /* @__PURE__ */ jsxs11(CommandList, { children: [
1933
- /* @__PURE__ */ jsx22(CommandEmpty, { children: emptyLabel }),
1934
- groups.map((group) => /* @__PURE__ */ jsx22(
2086
+ /* @__PURE__ */ jsxs12(CommandList, { children: [
2087
+ /* @__PURE__ */ jsx23(CommandEmpty, { children: emptyLabel }),
2088
+ groups.map((group) => /* @__PURE__ */ jsx23(
1935
2089
  CommandGroup,
1936
2090
  {
1937
2091
  ...group.heading === void 0 ? {} : { heading: group.heading },
1938
- children: group.options.map((option) => /* @__PURE__ */ jsxs11(
2092
+ children: group.options.map((option) => /* @__PURE__ */ jsxs12(
1939
2093
  CommandItem,
1940
2094
  {
1941
2095
  value: option.label,
@@ -1946,7 +2100,7 @@ function CreatablePicker({
1946
2100
  },
1947
2101
  className: "gap-2 text-xs",
1948
2102
  children: [
1949
- /* @__PURE__ */ jsx22(
2103
+ /* @__PURE__ */ jsx23(
1950
2104
  LucideCheckIcon,
1951
2105
  {
1952
2106
  className: cn(
@@ -1955,8 +2109,8 @@ function CreatablePicker({
1955
2109
  )
1956
2110
  }
1957
2111
  ),
1958
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
1959
- option.hint ? /* @__PURE__ */ jsx22("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
2112
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 flex-1 truncate", children: option.render ?? option.label }),
2113
+ option.hint ? /* @__PURE__ */ jsx23("span", { className: "shrink-0 text-[10px] text-muted-foreground", children: option.hint }) : null
1960
2114
  ]
1961
2115
  },
1962
2116
  option.value
@@ -1965,9 +2119,9 @@ function CreatablePicker({
1965
2119
  group.heading ?? "__ungrouped__"
1966
2120
  ))
1967
2121
  ] }),
1968
- canCreate ? /* @__PURE__ */ jsxs11("div", { className: "space-y-1 border-t border-border p-1", children: [
1969
- createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx22("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
1970
- /* @__PURE__ */ jsxs11(
2122
+ canCreate ? /* @__PURE__ */ jsxs12("div", { className: "space-y-1 border-t border-border p-1", children: [
2123
+ createExtra && typed && !exactMatch ? /* @__PURE__ */ jsx23("div", { className: "px-1 pt-0.5", children: typeof createExtra === "function" ? createExtra(typed) : createExtra }) : null,
2124
+ /* @__PURE__ */ jsxs12(
1971
2125
  "button",
1972
2126
  {
1973
2127
  type: "button",
@@ -1975,22 +2129,22 @@ function CreatablePicker({
1975
2129
  onClick: () => void create(typed),
1976
2130
  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",
1977
2131
  children: [
1978
- busy ? /* @__PURE__ */ jsx22(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ jsx22(PlusIcon, { className: "size-3.5 shrink-0" }),
1979
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
2132
+ busy ? /* @__PURE__ */ jsx23(Loader2Icon, { className: "size-3.5 shrink-0 matrx-spin" }) : /* @__PURE__ */ jsx23(PlusIcon, { className: "size-3.5 shrink-0" }),
2133
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: typed && !exactMatch ? `Create \u201C${typed}\u201D` : `Add ${article(noun)}\u2026` })
1980
2134
  ]
1981
2135
  }
1982
2136
  ),
1983
- needsName ? /* @__PURE__ */ jsxs11("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
2137
+ needsName ? /* @__PURE__ */ jsxs12("p", { className: "px-2 pb-0.5 text-[11px] leading-snug text-muted-foreground", children: [
1984
2138
  "Type the name of the ",
1985
2139
  noun,
1986
2140
  " you want to add \u2014 then this creates it."
1987
2141
  ] }) : null
1988
2142
  ] }) : null,
1989
- footerActions?.length || manageAction ? /* @__PURE__ */ jsxs11("div", { className: "space-y-0.5 border-t border-border p-1", children: [
2143
+ footerActions?.length || manageAction ? /* @__PURE__ */ jsxs12("div", { className: "space-y-0.5 border-t border-border p-1", children: [
1990
2144
  footerActions?.map((action) => {
1991
2145
  const Icon2 = action.icon;
1992
- return /* @__PURE__ */ jsxs11("div", { children: [
1993
- /* @__PURE__ */ jsxs11(
2146
+ return /* @__PURE__ */ jsxs12("div", { children: [
2147
+ /* @__PURE__ */ jsxs12(
1994
2148
  "button",
1995
2149
  {
1996
2150
  type: "button",
@@ -2000,15 +2154,15 @@ function CreatablePicker({
2000
2154
  },
2001
2155
  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",
2002
2156
  children: [
2003
- Icon2 ? /* @__PURE__ */ jsx22(Icon2, { className: "size-3.5 shrink-0" }) : null,
2004
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: action.label })
2157
+ Icon2 ? /* @__PURE__ */ jsx23(Icon2, { className: "size-3.5 shrink-0" }) : null,
2158
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: action.label })
2005
2159
  ]
2006
2160
  }
2007
2161
  ),
2008
- action.note ? /* @__PURE__ */ jsx22("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
2162
+ action.note ? /* @__PURE__ */ jsx23("p", { className: "px-2 pb-1 text-[10px] leading-snug text-muted-foreground", children: action.note }) : null
2009
2163
  ] }, action.label);
2010
2164
  }),
2011
- manageAction ? /* @__PURE__ */ jsxs11(
2165
+ manageAction ? /* @__PURE__ */ jsxs12(
2012
2166
  "a",
2013
2167
  {
2014
2168
  href: manageAction.href,
@@ -2017,18 +2171,18 @@ function CreatablePicker({
2017
2171
  onClick: close,
2018
2172
  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",
2019
2173
  children: [
2020
- /* @__PURE__ */ jsx22(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
2021
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: manageAction.label })
2174
+ /* @__PURE__ */ jsx23(ExternalLinkIcon, { className: "size-3.5 shrink-0" }),
2175
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: manageAction.label })
2022
2176
  ]
2023
2177
  }
2024
2178
  ) : null
2025
2179
  ] }) : null,
2026
- lockedNote ? /* @__PURE__ */ jsxs11("div", { className: "space-y-1 border-t border-border p-2", children: [
2027
- /* @__PURE__ */ jsxs11("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
2028
- /* @__PURE__ */ jsx22(LockIcon, { className: "mt-px size-3 shrink-0" }),
2029
- /* @__PURE__ */ jsx22("span", { children: lockedNote })
2180
+ lockedNote ? /* @__PURE__ */ jsxs12("div", { className: "space-y-1 border-t border-border p-2", children: [
2181
+ /* @__PURE__ */ jsxs12("p", { className: "flex gap-1.5 text-[11px] leading-snug text-muted-foreground", children: [
2182
+ /* @__PURE__ */ jsx23(LockIcon, { className: "mt-px size-3 shrink-0" }),
2183
+ /* @__PURE__ */ jsx23("span", { children: lockedNote })
2030
2184
  ] }),
2031
- lockedAction ? /* @__PURE__ */ jsxs11(
2185
+ lockedAction ? /* @__PURE__ */ jsxs12(
2032
2186
  "button",
2033
2187
  {
2034
2188
  type: "button",
@@ -2038,8 +2192,8 @@ function CreatablePicker({
2038
2192
  },
2039
2193
  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",
2040
2194
  children: [
2041
- /* @__PURE__ */ jsx22(PlusIcon, { className: "size-3.5 shrink-0" }),
2042
- /* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: lockedAction.label })
2195
+ /* @__PURE__ */ jsx23(PlusIcon, { className: "size-3.5 shrink-0" }),
2196
+ /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: lockedAction.label })
2043
2197
  ]
2044
2198
  }
2045
2199
  ) : null
@@ -2054,7 +2208,7 @@ function CreatablePicker({
2054
2208
  import * as DialogPrimitive2 from "@radix-ui/react-dialog";
2055
2209
  import * as VisuallyHidden2 from "@radix-ui/react-visually-hidden";
2056
2210
  import { treeContainsComponent as treeContainsComponent3 } from "@ai-matrx/kit/react-tree";
2057
- import * as React19 from "react";
2211
+ import * as React20 from "react";
2058
2212
 
2059
2213
  // src/layer-front.ts
2060
2214
  var LAYER_FRONT_EVENT = "matrx:layer-front";
@@ -2066,15 +2220,15 @@ function announceLayerFront(element) {
2066
2220
  }
2067
2221
 
2068
2222
  // src/dialog.tsx
2069
- import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
2070
- var DialogWindowedByDefaultContext = React19.createContext(false);
2223
+ import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
2224
+ var DialogWindowedByDefaultContext = React20.createContext(false);
2071
2225
  var Dialog = ({
2072
2226
  children,
2073
2227
  ...props
2074
2228
  }) => {
2075
2229
  const isMobile = useIsMobile();
2076
2230
  const modal = props.modal ?? isMobile;
2077
- return /* @__PURE__ */ jsx23(DialogWindowedByDefaultContext.Provider, { value: props.modal === void 0, children: /* @__PURE__ */ jsx23(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx23(DialogPrimitive2.Root, { ...props, modal, children }) }) });
2231
+ return /* @__PURE__ */ jsx24(DialogWindowedByDefaultContext.Provider, { value: props.modal === void 0, children: /* @__PURE__ */ jsx24(RadixDialogModalProvider, { modal, children: /* @__PURE__ */ jsx24(DialogPrimitive2.Root, { ...props, modal, children }) }) });
2078
2232
  };
2079
2233
  Dialog.displayName = "Dialog";
2080
2234
  var DialogTrigger = DialogPrimitive2.Trigger;
@@ -2084,14 +2238,14 @@ var DialogPortal = ({
2084
2238
  ...props
2085
2239
  }) => {
2086
2240
  const resolved = usePortalContainer(container);
2087
- return /* @__PURE__ */ jsx23(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
2241
+ return /* @__PURE__ */ jsx24(DialogPrimitive2.Portal, { container: resolved ?? null, ...props });
2088
2242
  };
2089
2243
  DialogPortal.displayName = "DialogPortal";
2090
2244
  var CONTEXT_SLOT3 = /* @__PURE__ */ Symbol.for("ai-matrx.design-system.dialog-container-context");
2091
2245
  var contextRegistry3 = globalThis;
2092
- var DialogContainerContext = contextRegistry3[CONTEXT_SLOT3] ??= React19.createContext(null);
2093
- var useDialogContainer = () => React19.useContext(DialogContainerContext);
2094
- var DialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
2246
+ var DialogContainerContext = contextRegistry3[CONTEXT_SLOT3] ??= React20.createContext(null);
2247
+ var useDialogContainer = () => React20.useContext(DialogContainerContext);
2248
+ var DialogOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2095
2249
  DialogPrimitive2.Overlay,
2096
2250
  {
2097
2251
  ref,
@@ -2107,10 +2261,10 @@ var DialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__P
2107
2261
  }
2108
2262
  ));
2109
2263
  DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
2110
- var DialogContentPrimitive = React19.forwardRef(({ onInteractOutside, ...props }, ref) => {
2264
+ var DialogContentPrimitive = React20.forwardRef(({ onInteractOutside, ...props }, ref) => {
2111
2265
  const isModal = useRadixDialogModal();
2112
2266
  useModalLayer(isModal);
2113
- return /* @__PURE__ */ jsx23(
2267
+ return /* @__PURE__ */ jsx24(
2114
2268
  DialogPrimitive2.Content,
2115
2269
  {
2116
2270
  ...props,
@@ -2124,12 +2278,12 @@ DialogContentPrimitive.displayName = "DialogContentPrimitive";
2124
2278
  var DIALOG_DESKTOP_CLASSES2 = "matrx-dialog-card fixed inset-0 z-[10000] m-auto grid h-fit min-w-0 w-full max-w-lg 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";
2125
2279
  var DIALOG_MOBILE_SHEET_CLASSES2 = "matrx-mobile-sheet matrx-dialog-card 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] 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";
2126
2280
  var DIALOG_MOBILE_SHEET_OVERRIDE2 = "inset-x-0 bottom-0 left-0 right-0 top-auto translate-none w-full max-w-full max-h-[90dvh] rounded-b-none rounded-t-2xl overflow-y-auto";
2127
- var DialogWindowHandleContext = React19.createContext(null);
2281
+ var DialogWindowHandleContext = React20.createContext(null);
2128
2282
  var WINDOW_KEEP_VISIBLE = 80;
2129
2283
  function isInteractiveTarget(target) {
2130
2284
  return target instanceof Element && Boolean(target.closest("button, a, input, textarea, select, [role='button'], [contenteditable='true']"));
2131
2285
  }
2132
- var DialogContent = React19.forwardRef(
2286
+ var DialogContent = React20.forwardRef(
2133
2287
  ({
2134
2288
  className,
2135
2289
  children,
@@ -2150,13 +2304,13 @@ var DialogContent = React19.forwardRef(
2150
2304
  const injectedContainer = usePortalContainer(container);
2151
2305
  const asSheet = mobileSheet && isMobile;
2152
2306
  const windowed = !isModal && !asSheet;
2153
- const windowedByDefault = React19.useContext(DialogWindowedByDefaultContext);
2154
- const [containerEl, setContainerEl] = React19.useState(
2307
+ const windowedByDefault = React20.useContext(DialogWindowedByDefaultContext);
2308
+ const [containerEl, setContainerEl] = React20.useState(
2155
2309
  null
2156
2310
  );
2157
2311
  const stacks = windowed && windowedByDefault;
2158
- const [behind, setBehind] = React19.useState(false);
2159
- React19.useEffect(() => {
2312
+ const [behind, setBehind] = React20.useState(false);
2313
+ React20.useEffect(() => {
2160
2314
  if (!stacks || !containerEl) return;
2161
2315
  const onFront = (event) => {
2162
2316
  const element = event.detail?.element ?? null;
@@ -2172,9 +2326,9 @@ var DialogContent = React19.forwardRef(
2172
2326
  setBehind(false);
2173
2327
  announceLayerFront(containerEl);
2174
2328
  };
2175
- const [offset, setOffset] = React19.useState({ x: 0, y: 0 });
2176
- const dragRef = React19.useRef(null);
2177
- const handle = React19.useMemo(() => {
2329
+ const [offset, setOffset] = React20.useState({ x: 0, y: 0 });
2330
+ const dragRef = React20.useRef(null);
2331
+ const handle = React20.useMemo(() => {
2178
2332
  if (!windowed) return null;
2179
2333
  const clamp = (value, limit) => Math.max(-limit, Math.min(limit, value));
2180
2334
  return {
@@ -2202,7 +2356,7 @@ var DialogContent = React19.forwardRef(
2202
2356
  onDoubleClick: () => setOffset({ x: 0, y: 0 })
2203
2357
  };
2204
2358
  }, [windowed, offset.x, offset.y]);
2205
- const mergedRef = React19.useCallback(
2359
+ const mergedRef = React20.useCallback(
2206
2360
  (node) => {
2207
2361
  setContainerEl(node);
2208
2362
  if (typeof ref === "function") ref(node);
@@ -2213,9 +2367,9 @@ var DialogContent = React19.forwardRef(
2213
2367
  );
2214
2368
  const hasTitle = treeContainsComponent3(children, DialogTitle) || treeContainsComponent3(children, DialogPrimitive2.Title);
2215
2369
  const hasDescription = treeContainsComponent3(children, DialogDescription) || treeContainsComponent3(children, DialogPrimitive2.Description);
2216
- return /* @__PURE__ */ jsxs12(DialogPortal, { container, children: [
2217
- isModal ? /* @__PURE__ */ jsx23(DialogOverlay, {}) : null,
2218
- /* @__PURE__ */ jsxs12(
2370
+ return /* @__PURE__ */ jsxs13(DialogPortal, { container, children: [
2371
+ isModal ? /* @__PURE__ */ jsx24(DialogOverlay, {}) : null,
2372
+ /* @__PURE__ */ jsxs13(
2219
2373
  DialogContentPrimitive,
2220
2374
  {
2221
2375
  ref: mergedRef,
@@ -2258,23 +2412,23 @@ var DialogContent = React19.forwardRef(
2258
2412
  ...hasDescription ? {} : { "aria-describedby": void 0 },
2259
2413
  ...props,
2260
2414
  children: [
2261
- hasTitle ? null : /* @__PURE__ */ jsx23(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx23(DialogPrimitive2.Title, { children: "Dialog" }) }),
2262
- /* @__PURE__ */ jsx23(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx23(DialogWindowHandleContext.Provider, { value: handle, children: /* @__PURE__ */ jsx23(
2415
+ hasTitle ? null : /* @__PURE__ */ jsx24(VisuallyHidden2.Root, { children: /* @__PURE__ */ jsx24(DialogPrimitive2.Title, { children: "Dialog" }) }),
2416
+ /* @__PURE__ */ jsx24(DialogContainerContext.Provider, { value: containerEl, children: /* @__PURE__ */ jsx24(DialogWindowHandleContext.Provider, { value: handle, children: /* @__PURE__ */ jsx24(
2263
2417
  PortalContainerProvider,
2264
2418
  {
2265
2419
  container: containerEl ?? injectedContainer ?? null,
2266
2420
  children
2267
2421
  }
2268
2422
  ) }) }),
2269
- showCloseButton ? /* @__PURE__ */ jsxs12(
2423
+ showCloseButton ? /* @__PURE__ */ jsxs13(
2270
2424
  DialogPrimitive2.Close,
2271
2425
  {
2272
2426
  "data-slot": "dialog-close",
2273
2427
  "aria-label": "Close",
2274
2428
  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",
2275
2429
  children: [
2276
- /* @__PURE__ */ jsx23(XIcon, { className: "h-4 w-4" }),
2277
- /* @__PURE__ */ jsx23("span", { className: "sr-only", children: "Close" })
2430
+ /* @__PURE__ */ jsx24(XIcon, { className: "h-4 w-4" }),
2431
+ /* @__PURE__ */ jsx24("span", { className: "sr-only", children: "Close" })
2278
2432
  ]
2279
2433
  }
2280
2434
  ) : null
@@ -2289,8 +2443,8 @@ var DialogHeader = ({
2289
2443
  className,
2290
2444
  ...props
2291
2445
  }) => {
2292
- const handle = React19.useContext(DialogWindowHandleContext);
2293
- return /* @__PURE__ */ jsx23(
2446
+ const handle = React20.useContext(DialogWindowHandleContext);
2447
+ return /* @__PURE__ */ jsx24(
2294
2448
  "div",
2295
2449
  {
2296
2450
  "data-slot": "dialog-header",
@@ -2314,7 +2468,7 @@ DialogHeader.displayName = "DialogHeader";
2314
2468
  var DialogFooter = ({
2315
2469
  className,
2316
2470
  ...props
2317
- }) => /* @__PURE__ */ jsx23(
2471
+ }) => /* @__PURE__ */ jsx24(
2318
2472
  "div",
2319
2473
  {
2320
2474
  "data-slot": "dialog-footer",
@@ -2346,7 +2500,7 @@ var DialogFooter = ({
2346
2500
  }
2347
2501
  );
2348
2502
  DialogFooter.displayName = "DialogFooter";
2349
- var DialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
2503
+ var DialogTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2350
2504
  DialogPrimitive2.Title,
2351
2505
  {
2352
2506
  ref,
@@ -2356,7 +2510,7 @@ var DialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PUR
2356
2510
  }
2357
2511
  ));
2358
2512
  DialogTitle.displayName = DialogPrimitive2.Title.displayName;
2359
- var DialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
2513
+ var DialogDescription = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2360
2514
  DialogPrimitive2.Description,
2361
2515
  {
2362
2516
  ref,
@@ -2369,8 +2523,8 @@ DialogDescription.displayName = DialogPrimitive2.Description.displayName;
2369
2523
 
2370
2524
  // src/dropdown-menu.tsx
2371
2525
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2372
- import * as React20 from "react";
2373
- import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
2526
+ import * as React21 from "react";
2527
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
2374
2528
  var DropdownMenu = DropdownMenuPrimitive.Root;
2375
2529
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
2376
2530
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -2380,7 +2534,7 @@ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
2380
2534
  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";
2381
2535
  var MENU_ITEM_CLASS = "relative flex cursor-default select-none items-center gap-2 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";
2382
2536
  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";
2383
- var DropdownMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2537
+ var DropdownMenuSubTrigger = React21.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2384
2538
  DropdownMenuPrimitive.SubTrigger,
2385
2539
  {
2386
2540
  ref,
@@ -2393,14 +2547,14 @@ var DropdownMenuSubTrigger = React20.forwardRef(({ className, inset, children, .
2393
2547
  ...props,
2394
2548
  children: [
2395
2549
  children,
2396
- /* @__PURE__ */ jsx24(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
2550
+ /* @__PURE__ */ jsx25(RadixChevronRightIcon, { className: "ml-auto h-4 w-4" })
2397
2551
  ]
2398
2552
  }
2399
2553
  ));
2400
2554
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
2401
- var DropdownMenuSubContent = React20.forwardRef(({ className, container, sideOffset = 2, alignOffset = -4, collisionPadding = 8, ...props }, ref) => {
2555
+ var DropdownMenuSubContent = React21.forwardRef(({ className, container, sideOffset = 2, alignOffset = -4, collisionPadding = 8, ...props }, ref) => {
2402
2556
  const portalContainer = usePortalContainer(container);
2403
- return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx24(
2557
+ return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx25(
2404
2558
  DropdownMenuPrimitive.SubContent,
2405
2559
  {
2406
2560
  ref,
@@ -2414,9 +2568,9 @@ var DropdownMenuSubContent = React20.forwardRef(({ className, container, sideOff
2414
2568
  ) });
2415
2569
  });
2416
2570
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
2417
- var DropdownMenuContent = React20.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
2571
+ var DropdownMenuContent = React21.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
2418
2572
  const portalContainer = usePortalContainer(container);
2419
- return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx24(
2573
+ return /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx25(
2420
2574
  DropdownMenuPrimitive.Content,
2421
2575
  {
2422
2576
  ref,
@@ -2433,7 +2587,7 @@ var DropdownMenuContent = React20.forwardRef(({ className, sideOffset = 4, conta
2433
2587
  ) });
2434
2588
  });
2435
2589
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
2436
- var DropdownMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
2590
+ var DropdownMenuItem = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
2437
2591
  DropdownMenuPrimitive.Item,
2438
2592
  {
2439
2593
  ref,
@@ -2443,7 +2597,7 @@ var DropdownMenuItem = React20.forwardRef(({ className, inset, ...props }, ref)
2443
2597
  }
2444
2598
  ));
2445
2599
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
2446
- var DropdownMenuCheckboxItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2600
+ var DropdownMenuCheckboxItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2447
2601
  DropdownMenuPrimitive.CheckboxItem,
2448
2602
  {
2449
2603
  ref,
@@ -2451,13 +2605,13 @@ var DropdownMenuCheckboxItem = React20.forwardRef(({ className, children, ...pro
2451
2605
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
2452
2606
  ...props,
2453
2607
  children: [
2454
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon, { className: "h-4 w-4" }) }) }),
2608
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon, { className: "h-4 w-4" }) }) }),
2455
2609
  children
2456
2610
  ]
2457
2611
  }
2458
2612
  ));
2459
2613
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
2460
- var DropdownMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2614
+ var DropdownMenuRadioItem = React21.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2461
2615
  DropdownMenuPrimitive.RadioItem,
2462
2616
  {
2463
2617
  ref,
@@ -2465,13 +2619,13 @@ var DropdownMenuRadioItem = React20.forwardRef(({ className, children, ...props
2465
2619
  className: cn(MENU_INDICATOR_ITEM_CLASS, className),
2466
2620
  ...props,
2467
2621
  children: [
2468
- /* @__PURE__ */ jsx24("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2622
+ /* @__PURE__ */ jsx25("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
2469
2623
  children
2470
2624
  ]
2471
2625
  }
2472
2626
  ));
2473
2627
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2474
- var DropdownMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx24(
2628
+ var DropdownMenuLabel = React21.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
2475
2629
  DropdownMenuPrimitive.Label,
2476
2630
  {
2477
2631
  ref,
@@ -2481,7 +2635,7 @@ var DropdownMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref)
2481
2635
  }
2482
2636
  ));
2483
2637
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2484
- var DropdownMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
2638
+ var DropdownMenuSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
2485
2639
  DropdownMenuPrimitive.Separator,
2486
2640
  {
2487
2641
  ref,
@@ -2494,7 +2648,7 @@ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
2494
2648
  var DropdownMenuShortcut = ({
2495
2649
  className,
2496
2650
  ...props
2497
- }) => /* @__PURE__ */ jsx24(
2651
+ }) => /* @__PURE__ */ jsx25(
2498
2652
  "span",
2499
2653
  {
2500
2654
  "data-slot": "dropdown-menu-shortcut",
@@ -2506,7 +2660,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2506
2660
 
2507
2661
  // src/editable-label.tsx
2508
2662
  import { useCallback as useCallback3, useEffect as useEffect3, useRef as useRef3, useState as useState5 } from "react";
2509
- import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
2663
+ import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
2510
2664
  function EditableLabel({
2511
2665
  value,
2512
2666
  onCommit,
@@ -2613,8 +2767,8 @@ function EditableLabel({
2613
2767
  setEditing
2614
2768
  ]);
2615
2769
  if (editing) {
2616
- return /* @__PURE__ */ jsxs14("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2617
- /* @__PURE__ */ jsx25(
2770
+ return /* @__PURE__ */ jsxs15("span", { className: cn("relative flex min-w-0 flex-1 items-center", className), children: [
2771
+ /* @__PURE__ */ jsx26(
2618
2772
  "input",
2619
2773
  {
2620
2774
  ref: inputRef,
@@ -2654,12 +2808,12 @@ function EditableLabel({
2654
2808
  )
2655
2809
  }
2656
2810
  ),
2657
- busy && /* @__PURE__ */ jsx25(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2658
- error && /* @__PURE__ */ jsx25("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2811
+ busy && /* @__PURE__ */ jsx26(Loader2Icon, { className: "absolute right-1 h-3.5 w-3.5 matrx-spin text-muted-foreground" }),
2812
+ error && /* @__PURE__ */ jsx26("span", { className: "absolute left-0 top-full mt-0.5 whitespace-nowrap text-xs text-destructive", children: error })
2659
2813
  ] });
2660
2814
  }
2661
2815
  if (controlled) return null;
2662
- return /* @__PURE__ */ jsx25(
2816
+ return /* @__PURE__ */ jsx26(
2663
2817
  "button",
2664
2818
  {
2665
2819
  type: "button",
@@ -2693,13 +2847,8 @@ function EditableLabel({
2693
2847
  }
2694
2848
 
2695
2849
  // src/input.tsx
2696
- import * as React21 from "react";
2697
-
2698
- // src/field-surface.ts
2699
- var FIELD_SURFACE_CLASS = "border border-border bg-card";
2700
-
2701
- // src/input.tsx
2702
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
2850
+ import * as React22 from "react";
2851
+ import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2703
2852
  var getVariantStyles = (variant = "default") => {
2704
2853
  const baseStyles = `flex h-10 w-full ${FIELD_SURFACE_CLASS} text-foreground shadow-input rounded-md px-3 py-2 text-sm file:border-0 file:bg-transparent
2705
2854
  file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground
@@ -2727,9 +2876,9 @@ var getVariantStyles = (variant = "default") => {
2727
2876
  return baseStyles;
2728
2877
  }
2729
2878
  };
2730
- var Input = React21.forwardRef(
2879
+ var Input = React22.forwardRef(
2731
2880
  ({ className, type, variant = "default", ...props }, ref) => {
2732
- return /* @__PURE__ */ jsx26(
2881
+ return /* @__PURE__ */ jsx27(
2733
2882
  "input",
2734
2883
  {
2735
2884
  type,
@@ -2741,7 +2890,7 @@ var Input = React21.forwardRef(
2741
2890
  }
2742
2891
  );
2743
2892
  Input.displayName = "Input";
2744
- var EnterInput = React21.forwardRef(
2893
+ var EnterInput = React22.forwardRef(
2745
2894
  ({ onEnter, ...props }, ref) => {
2746
2895
  const handleKeyDown = (e) => {
2747
2896
  if (e.key === "Enter" && onEnter) {
@@ -2749,7 +2898,7 @@ var EnterInput = React21.forwardRef(
2749
2898
  onEnter();
2750
2899
  }
2751
2900
  };
2752
- return /* @__PURE__ */ jsx26(
2901
+ return /* @__PURE__ */ jsx27(
2753
2902
  Input,
2754
2903
  {
2755
2904
  ...props,
@@ -2765,11 +2914,11 @@ var EnterInput = React21.forwardRef(
2765
2914
  }
2766
2915
  );
2767
2916
  EnterInput.displayName = "EnterInput";
2768
- var BasicInput = React21.forwardRef(
2917
+ var BasicInput = React22.forwardRef(
2769
2918
  // `variant` is accepted (prop-compatible with Input) but intentionally
2770
2919
  // unused — and destructured so it never leaks onto the DOM element.
2771
2920
  ({ className, type, variant: _variant = "default", ...props }, ref) => {
2772
- return /* @__PURE__ */ jsx26(
2921
+ return /* @__PURE__ */ jsx27(
2773
2922
  "input",
2774
2923
  {
2775
2924
  type,
@@ -2784,10 +2933,10 @@ var BasicInput = React21.forwardRef(
2784
2933
  }
2785
2934
  );
2786
2935
  BasicInput.displayName = "BasicInput";
2787
- var InputWithPrefix = React21.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2788
- return /* @__PURE__ */ jsxs15("div", { className: cn("relative", wrapperClassName), children: [
2789
- prefix && /* @__PURE__ */ jsx26("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2790
- /* @__PURE__ */ jsx26(
2936
+ var InputWithPrefix = React22.forwardRef(({ prefix, className, wrapperClassName, ...props }, ref) => {
2937
+ return /* @__PURE__ */ jsxs16("div", { className: cn("relative", wrapperClassName), children: [
2938
+ prefix && /* @__PURE__ */ jsx27("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground", children: prefix }),
2939
+ /* @__PURE__ */ jsx27(
2791
2940
  Input,
2792
2941
  {
2793
2942
  ref,
@@ -2801,9 +2950,9 @@ InputWithPrefix.displayName = "InputWithPrefix";
2801
2950
 
2802
2951
  // src/label.tsx
2803
2952
  import * as LabelPrimitive from "@radix-ui/react-label";
2804
- import * as React22 from "react";
2805
- import { jsx as jsx27 } from "react/jsx-runtime";
2806
- var Label3 = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
2953
+ import * as React23 from "react";
2954
+ import { jsx as jsx28 } from "react/jsx-runtime";
2955
+ var Label4 = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
2807
2956
  LabelPrimitive.Root,
2808
2957
  {
2809
2958
  ref,
@@ -2814,11 +2963,11 @@ var Label3 = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
2814
2963
  ...props
2815
2964
  }
2816
2965
  ));
2817
- Label3.displayName = LabelPrimitive.Root.displayName;
2966
+ Label4.displayName = LabelPrimitive.Root.displayName;
2818
2967
 
2819
2968
  // src/overflow-toolbar.tsx
2820
2969
  import { useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef4, useState as useState6 } from "react";
2821
- import { Fragment as Fragment2, jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
2970
+ import { Fragment as Fragment2, jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
2822
2971
  var GAP_PX = 6;
2823
2972
  var TONE = {
2824
2973
  default: "border border-border bg-background hover:bg-accent text-foreground",
@@ -2840,16 +2989,16 @@ function ToolbarButton({
2840
2989
  action.hideLabel && !action.running ? "w-7 justify-center px-0" : "px-2",
2841
2990
  TONE[tone]
2842
2991
  );
2843
- const inner = /* @__PURE__ */ jsxs16(Fragment2, { children: [
2844
- /* @__PURE__ */ jsx28(
2992
+ const inner = /* @__PURE__ */ jsxs17(Fragment2, { children: [
2993
+ /* @__PURE__ */ jsx29(
2845
2994
  Icon2,
2846
2995
  {
2847
2996
  className: cn("w-3.5 h-3.5 shrink-0", action.running && "matrx-spin")
2848
2997
  }
2849
2998
  ),
2850
- showLabel && /* @__PURE__ */ jsx28("span", { children: text })
2999
+ showLabel && /* @__PURE__ */ jsx29("span", { children: text })
2851
3000
  ] });
2852
- const control = action.href && !action.disabled ? /* @__PURE__ */ jsx28(
3001
+ const control = action.href && !action.disabled ? /* @__PURE__ */ jsx29(
2853
3002
  "a",
2854
3003
  {
2855
3004
  href: action.href,
@@ -2859,7 +3008,7 @@ function ToolbarButton({
2859
3008
  "aria-label": action.label,
2860
3009
  children: inner
2861
3010
  }
2862
- ) : /* @__PURE__ */ jsx28(
3011
+ ) : /* @__PURE__ */ jsx29(
2863
3012
  "button",
2864
3013
  {
2865
3014
  type: "button",
@@ -2871,12 +3020,12 @@ function ToolbarButton({
2871
3020
  }
2872
3021
  );
2873
3022
  if (enableTooltip && action.hideLabel && renderTooltip) {
2874
- return /* @__PURE__ */ jsx28(Fragment2, { children: renderTooltip(control, action.label) });
3023
+ return /* @__PURE__ */ jsx29(Fragment2, { children: renderTooltip(control, action.label) });
2875
3024
  }
2876
3025
  return control;
2877
3026
  }
2878
3027
  function OverflowTrigger({ ariaLabel }) {
2879
- return /* @__PURE__ */ jsx28(
3028
+ return /* @__PURE__ */ jsx29(
2880
3029
  "button",
2881
3030
  {
2882
3031
  type: "button",
@@ -2887,7 +3036,7 @@ function OverflowTrigger({ ariaLabel }) {
2887
3036
  "inline-flex items-center justify-center h-7 w-7 rounded-md transition-colors",
2888
3037
  "border border-border bg-background hover:bg-accent text-foreground"
2889
3038
  ),
2890
- children: /* @__PURE__ */ jsx28(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
3039
+ children: /* @__PURE__ */ jsx29(MoreHorizontalIcon, { className: "w-3.5 h-3.5" })
2891
3040
  }
2892
3041
  );
2893
3042
  }
@@ -2947,22 +3096,22 @@ function OverflowToolbar({
2947
3096
  }, [signature, leading != null]);
2948
3097
  const shown = visibleActions.slice(0, visibleCount);
2949
3098
  const hidden = visibleActions.slice(visibleCount);
2950
- return /* @__PURE__ */ jsxs16("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
2951
- /* @__PURE__ */ jsxs16(
3099
+ return /* @__PURE__ */ jsxs17("div", { ref: containerRef, className: cn("relative min-w-0", className), children: [
3100
+ /* @__PURE__ */ jsxs17(
2952
3101
  "div",
2953
3102
  {
2954
3103
  ref: ghostRef,
2955
3104
  "aria-hidden": true,
2956
3105
  className: "pointer-events-none absolute left-0 top-0 flex items-center gap-1.5 opacity-0",
2957
3106
  children: [
2958
- visibleActions.map((a) => /* @__PURE__ */ jsx28(ToolbarButton, { action: a }, a.id)),
2959
- /* @__PURE__ */ jsx28(OverflowTrigger, { ariaLabel: overflowAriaLabel })
3107
+ visibleActions.map((a) => /* @__PURE__ */ jsx29(ToolbarButton, { action: a }, a.id)),
3108
+ /* @__PURE__ */ jsx29(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2960
3109
  ]
2961
3110
  }
2962
3111
  ),
2963
- /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-end gap-1.5", children: [
2964
- leading != null && /* @__PURE__ */ jsx28("span", { ref: leadingRef, className: "shrink-0", children: leading }),
2965
- shown.map((a) => /* @__PURE__ */ jsx28(
3112
+ /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-end gap-1.5", children: [
3113
+ leading != null && /* @__PURE__ */ jsx29("span", { ref: leadingRef, className: "shrink-0", children: leading }),
3114
+ shown.map((a) => /* @__PURE__ */ jsx29(
2966
3115
  ToolbarButton,
2967
3116
  {
2968
3117
  action: a,
@@ -2973,7 +3122,7 @@ function OverflowToolbar({
2973
3122
  )),
2974
3123
  hidden.length > 0 && renderOverflowMenu({
2975
3124
  actions: hidden,
2976
- trigger: /* @__PURE__ */ jsx28(OverflowTrigger, { ariaLabel: overflowAriaLabel })
3125
+ trigger: /* @__PURE__ */ jsx29(OverflowTrigger, { ariaLabel: overflowAriaLabel })
2977
3126
  })
2978
3127
  ] })
2979
3128
  ] });
@@ -2981,20 +3130,20 @@ function OverflowToolbar({
2981
3130
 
2982
3131
  // src/progress.tsx
2983
3132
  import * as ProgressPrimitive from "@radix-ui/react-progress";
2984
- import * as React24 from "react";
2985
- import { jsx as jsx29 } from "react/jsx-runtime";
3133
+ import * as React25 from "react";
3134
+ import { jsx as jsx30 } from "react/jsx-runtime";
2986
3135
  var PROGRESS_TONES = {
2987
3136
  default: "bg-primary",
2988
3137
  success: "bg-success",
2989
3138
  warning: "bg-warning",
2990
3139
  destructive: "bg-destructive"
2991
3140
  };
2992
- var Progress = React24.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
3141
+ var Progress = React25.forwardRef(({ className, tone = "default", indicatorClassName, ...props }, ref) => {
2993
3142
  const { value, max } = props;
2994
3143
  const ceiling = max ?? 100;
2995
3144
  const isIndeterminate = value === null || value === void 0;
2996
3145
  const pct = isIndeterminate ? 0 : Math.min(100, Math.max(0, value / ceiling * 100));
2997
- return /* @__PURE__ */ jsx29(
3146
+ return /* @__PURE__ */ jsx30(
2998
3147
  ProgressPrimitive.Root,
2999
3148
  {
3000
3149
  ref,
@@ -3004,7 +3153,7 @@ var Progress = React24.forwardRef(({ className, tone = "default", indicatorClass
3004
3153
  className
3005
3154
  ),
3006
3155
  ...props,
3007
- children: /* @__PURE__ */ jsx29(
3156
+ children: /* @__PURE__ */ jsx30(
3008
3157
  ProgressPrimitive.Indicator,
3009
3158
  {
3010
3159
  "data-slot": "progress-indicator",
@@ -3026,9 +3175,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
3026
3175
 
3027
3176
  // src/scroll-area.tsx
3028
3177
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3029
- import * as React25 from "react";
3030
- import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
3031
- var ScrollArea = React25.forwardRef(
3178
+ import * as React26 from "react";
3179
+ import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
3180
+ var ScrollArea = React26.forwardRef(
3032
3181
  ({
3033
3182
  className,
3034
3183
  children,
@@ -3037,7 +3186,7 @@ var ScrollArea = React25.forwardRef(
3037
3186
  scrollBarClassName,
3038
3187
  orientation = "vertical",
3039
3188
  ...props
3040
- }, ref) => /* @__PURE__ */ jsxs17(
3189
+ }, ref) => /* @__PURE__ */ jsxs18(
3041
3190
  ScrollAreaPrimitive.Root,
3042
3191
  {
3043
3192
  ref,
@@ -3045,7 +3194,7 @@ var ScrollArea = React25.forwardRef(
3045
3194
  className: cn("relative overflow-hidden", className),
3046
3195
  ...props,
3047
3196
  children: [
3048
- /* @__PURE__ */ jsx30(
3197
+ /* @__PURE__ */ jsx31(
3049
3198
  ScrollAreaPrimitive.Viewport,
3050
3199
  {
3051
3200
  ref: viewportRef,
@@ -3054,14 +3203,14 @@ var ScrollArea = React25.forwardRef(
3054
3203
  children
3055
3204
  }
3056
3205
  ),
3057
- /* @__PURE__ */ jsx30(ScrollBar, { orientation, className: scrollBarClassName }),
3058
- /* @__PURE__ */ jsx30(ScrollAreaPrimitive.Corner, {})
3206
+ /* @__PURE__ */ jsx31(ScrollBar, { orientation, className: scrollBarClassName }),
3207
+ /* @__PURE__ */ jsx31(ScrollAreaPrimitive.Corner, {})
3059
3208
  ]
3060
3209
  }
3061
3210
  )
3062
3211
  );
3063
3212
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3064
- var ScrollBar = React25.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx30(
3213
+ var ScrollBar = React26.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx31(
3065
3214
  ScrollAreaPrimitive.ScrollAreaScrollbar,
3066
3215
  {
3067
3216
  ref,
@@ -3074,7 +3223,7 @@ var ScrollBar = React25.forwardRef(({ className, orientation = "vertical", ...pr
3074
3223
  className
3075
3224
  ),
3076
3225
  ...props,
3077
- children: /* @__PURE__ */ jsx30(
3226
+ children: /* @__PURE__ */ jsx31(
3078
3227
  ScrollAreaPrimitive.ScrollAreaThumb,
3079
3228
  {
3080
3229
  "data-slot": "scroll-area-thumb",
@@ -3086,7 +3235,7 @@ var ScrollBar = React25.forwardRef(({ className, orientation = "vertical", ...pr
3086
3235
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3087
3236
 
3088
3237
  // src/score-ring.tsx
3089
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
3238
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
3090
3239
  var DEFAULT_SCORE_THRESHOLDS = {
3091
3240
  good: 75,
3092
3241
  warning: 50
@@ -3117,7 +3266,7 @@ function ScoreRing({
3117
3266
  const circumference = 2 * Math.PI * radius;
3118
3267
  const boundedPct = pct === null ? 0 : Math.max(0, Math.min(100, pct));
3119
3268
  const dashOffset = circumference * (1 - boundedPct / 100);
3120
- return /* @__PURE__ */ jsxs18(
3269
+ return /* @__PURE__ */ jsxs19(
3121
3270
  "div",
3122
3271
  {
3123
3272
  className: cn(
@@ -3128,8 +3277,8 @@ function ScoreRing({
3128
3277
  role: "img",
3129
3278
  "aria-label": `${label ?? "Score"}: ${pct === null ? "not available" : `${pct} out of 100`}`,
3130
3279
  children: [
3131
- /* @__PURE__ */ jsxs18("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
3132
- /* @__PURE__ */ jsx31(
3280
+ /* @__PURE__ */ jsxs19("svg", { viewBox: "0 0 100 100", className: "h-full w-full -rotate-90", children: [
3281
+ /* @__PURE__ */ jsx32(
3133
3282
  "circle",
3134
3283
  {
3135
3284
  cx: "50",
@@ -3140,7 +3289,7 @@ function ScoreRing({
3140
3289
  fill: "none"
3141
3290
  }
3142
3291
  ),
3143
- pct !== null ? /* @__PURE__ */ jsx31(
3292
+ pct !== null ? /* @__PURE__ */ jsx32(
3144
3293
  "circle",
3145
3294
  {
3146
3295
  cx: "50",
@@ -3159,8 +3308,8 @@ function ScoreRing({
3159
3308
  }
3160
3309
  ) : null
3161
3310
  ] }),
3162
- /* @__PURE__ */ jsxs18("div", { className: "absolute flex flex-col items-center justify-center", children: [
3163
- /* @__PURE__ */ jsx31(
3311
+ /* @__PURE__ */ jsxs19("div", { className: "absolute flex flex-col items-center justify-center", children: [
3312
+ /* @__PURE__ */ jsx32(
3164
3313
  "span",
3165
3314
  {
3166
3315
  className: cn(
@@ -3170,7 +3319,7 @@ function ScoreRing({
3170
3319
  children: pct === null ? "\u2014" : `${pct}${suffix}`
3171
3320
  }
3172
3321
  ),
3173
- label ? /* @__PURE__ */ jsx31("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
3322
+ label ? /* @__PURE__ */ jsx32("span", { className: "max-w-[74px] truncate text-[9px] font-semibold uppercase tracking-wide text-muted-foreground", children: label }) : null
3174
3323
  ] })
3175
3324
  ]
3176
3325
  }
@@ -3178,7 +3327,7 @@ function ScoreRing({
3178
3327
  }
3179
3328
 
3180
3329
  // src/segmented-control.tsx
3181
- import { jsx as jsx32 } from "react/jsx-runtime";
3330
+ import { jsx as jsx33 } from "react/jsx-runtime";
3182
3331
  function SegmentedControl({
3183
3332
  value,
3184
3333
  onValueChange,
@@ -3193,7 +3342,7 @@ function SegmentedControl({
3193
3342
  md: "h-9 text-sm",
3194
3343
  lg: "h-10 text-base"
3195
3344
  };
3196
- return /* @__PURE__ */ jsx32(
3345
+ return /* @__PURE__ */ jsx33(
3197
3346
  "div",
3198
3347
  {
3199
3348
  className: cn(
@@ -3204,7 +3353,7 @@ function SegmentedControl({
3204
3353
  role: "tablist",
3205
3354
  children: data.map((option) => {
3206
3355
  const isActive = value === option.value;
3207
- return /* @__PURE__ */ jsx32(
3356
+ return /* @__PURE__ */ jsx33(
3208
3357
  "button",
3209
3358
  {
3210
3359
  type: "button",
@@ -3230,8 +3379,8 @@ function SegmentedControl({
3230
3379
  }
3231
3380
 
3232
3381
  // src/archive-filter.tsx
3233
- import * as React26 from "react";
3234
- import { jsx as jsx33, jsxs as jsxs19 } from "react/jsx-runtime";
3382
+ import * as React27 from "react";
3383
+ import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
3235
3384
  var ARCHIVE_FILTER_VALUES = ["active", "archived", "all"];
3236
3385
  var DEFAULT_ARCHIVE_FILTER = "active";
3237
3386
  var ARCHIVE_LABEL = "Archived";
@@ -3256,7 +3405,7 @@ function ArchiveFilter({
3256
3405
  "aria-label": ariaLabel = "Archive filter",
3257
3406
  disabled = false
3258
3407
  }) {
3259
- const data = React26.useMemo(
3408
+ const data = React27.useMemo(
3260
3409
  () => ARCHIVE_FILTER_VALUES.map((state) => {
3261
3410
  const text = labels?.[state] ?? ARCHIVE_FILTER_LABELS[state];
3262
3411
  const count = counts?.[state];
@@ -3264,15 +3413,15 @@ function ArchiveFilter({
3264
3413
  value: state,
3265
3414
  disabled,
3266
3415
  ariaLabel: typeof count === "number" ? `${text} ${count}` : text,
3267
- label: typeof count === "number" ? /* @__PURE__ */ jsxs19("span", { className: "inline-flex items-center gap-1.5", children: [
3268
- /* @__PURE__ */ jsx33("span", { children: text }),
3269
- /* @__PURE__ */ jsx33("span", { className: "text-muted-foreground tabular-nums", children: count })
3416
+ label: typeof count === "number" ? /* @__PURE__ */ jsxs20("span", { className: "inline-flex items-center gap-1.5", children: [
3417
+ /* @__PURE__ */ jsx34("span", { children: text }),
3418
+ /* @__PURE__ */ jsx34("span", { className: "text-muted-foreground tabular-nums", children: count })
3270
3419
  ] }) : text
3271
3420
  };
3272
3421
  }),
3273
3422
  [counts, labels, disabled]
3274
3423
  );
3275
- return /* @__PURE__ */ jsx33("div", { role: "group", "aria-label": ariaLabel, className: cn("inline-flex", className), children: /* @__PURE__ */ jsx33(
3424
+ return /* @__PURE__ */ jsx34("div", { role: "group", "aria-label": ariaLabel, className: cn("inline-flex", className), children: /* @__PURE__ */ jsx34(
3276
3425
  SegmentedControl,
3277
3426
  {
3278
3427
  value,
@@ -3284,7 +3433,7 @@ function ArchiveFilter({
3284
3433
  }
3285
3434
 
3286
3435
  // src/archived-disclosure.tsx
3287
- import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
3436
+ import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
3288
3437
  function ArchivedDisclosure({
3289
3438
  count,
3290
3439
  open,
@@ -3298,8 +3447,8 @@ function ArchivedDisclosure({
3298
3447
  }) {
3299
3448
  if (count <= 0 && !(open && keepWhileOpen)) return null;
3300
3449
  const parenthetical = countLabel === void 0 ? String(count) : countLabel;
3301
- return /* @__PURE__ */ jsxs20("div", { className: cn("min-w-0", className), children: [
3302
- /* @__PURE__ */ jsxs20(
3450
+ return /* @__PURE__ */ jsxs21("div", { className: cn("min-w-0", className), children: [
3451
+ /* @__PURE__ */ jsxs21(
3303
3452
  "button",
3304
3453
  {
3305
3454
  type: "button",
@@ -3307,161 +3456,16 @@ function ArchivedDisclosure({
3307
3456
  "aria-expanded": open,
3308
3457
  className: "flex w-full items-center gap-2 rounded-lg px-2 py-2 text-sm text-muted-foreground hover:bg-accent active:bg-accent",
3309
3458
  children: [
3310
- open ? /* @__PURE__ */ jsx34(ChevronDownIcon, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ jsx34(ChevronRightIcon, { className: "h-4 w-4 shrink-0" }),
3311
- /* @__PURE__ */ jsx34(ArchiveIcon, { className: "h-4 w-4 shrink-0" }),
3312
- /* @__PURE__ */ jsx34("span", { className: "truncate", children: parenthetical === null ? label : `${label} (${parenthetical})` })
3459
+ open ? /* @__PURE__ */ jsx35(ChevronDownIcon, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ jsx35(ChevronRightIcon, { className: "h-4 w-4 shrink-0" }),
3460
+ /* @__PURE__ */ jsx35(ArchiveIcon, { className: "h-4 w-4 shrink-0" }),
3461
+ /* @__PURE__ */ jsx35("span", { className: "truncate", children: parenthetical === null ? label : `${label} (${parenthetical})` })
3313
3462
  ]
3314
3463
  }
3315
3464
  ),
3316
- open && children ? /* @__PURE__ */ jsx34("div", { className: cn("mt-1", contentClassName), children }) : null
3465
+ open && children ? /* @__PURE__ */ jsx35("div", { className: cn("mt-1", contentClassName), children }) : null
3317
3466
  ] });
3318
3467
  }
3319
3468
 
3320
- // src/select.tsx
3321
- import * as SelectPrimitive from "@radix-ui/react-select";
3322
- import { cva as cva4 } from "class-variance-authority";
3323
- import * as React27 from "react";
3324
- import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
3325
- var Select = SelectPrimitive.Root;
3326
- var SelectGroup = SelectPrimitive.Group;
3327
- var SelectValue = SelectPrimitive.Value;
3328
- var selectTriggerVariants = cva4(
3329
- `flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-md ${FIELD_SURFACE_CLASS} text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground transition-colors hover:bg-accent hover:border-accent-foreground/20 focus:outline-none focus:ring-1 focus:ring-primary/30 focus:border-primary/40 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:min-w-0 [&>span]:line-clamp-1`,
3330
- {
3331
- variants: {
3332
- size: {
3333
- sm: "h-7 px-2 py-1 text-xs",
3334
- default: "h-9 px-3 py-1",
3335
- lg: "h-10 px-3 py-2"
3336
- }
3337
- },
3338
- defaultVariants: {
3339
- size: "default"
3340
- }
3341
- }
3342
- );
3343
- var SelectTrigger = React27.forwardRef(({ className, children, hideArrow = false, size, ...props }, ref) => /* @__PURE__ */ jsxs21(
3344
- SelectPrimitive.Trigger,
3345
- {
3346
- ref,
3347
- className: cn(selectTriggerVariants({ size, className })),
3348
- ...props,
3349
- children: [
3350
- children,
3351
- !hideArrow && /* @__PURE__ */ jsx35(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx35(RadixChevronDownIcon, { className: "h-4 w-4 shrink-0 opacity-50" }) })
3352
- ]
3353
- }
3354
- ));
3355
- SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3356
- var SelectScrollUpButton = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3357
- SelectPrimitive.ScrollUpButton,
3358
- {
3359
- ref,
3360
- className: cn(
3361
- "flex cursor-default items-center justify-center py-1",
3362
- className
3363
- ),
3364
- ...props,
3365
- children: /* @__PURE__ */ jsx35(RadixChevronUpIcon, {})
3366
- }
3367
- ));
3368
- SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3369
- var SelectScrollDownButton = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3370
- SelectPrimitive.ScrollDownButton,
3371
- {
3372
- ref,
3373
- className: cn(
3374
- "flex cursor-default items-center justify-center py-1",
3375
- className
3376
- ),
3377
- ...props,
3378
- children: /* @__PURE__ */ jsx35(RadixChevronDownIcon, {})
3379
- }
3380
- ));
3381
- SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3382
- var SelectContent = React27.forwardRef(
3383
- ({
3384
- className,
3385
- children,
3386
- position = "popper",
3387
- container,
3388
- animated = true,
3389
- ...props
3390
- }, ref) => {
3391
- const portalContainer = usePortalContainer(container);
3392
- return /* @__PURE__ */ jsx35(SelectPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsxs21(
3393
- SelectPrimitive.Content,
3394
- {
3395
- ref,
3396
- className: cn(
3397
- "relative z-[10001] max-h-96 min-w-[8rem] max-w-[calc(100vw-2rem)] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md",
3398
- animated && MOTION_POPPER,
3399
- // The resting gap from the trigger. It is the `translate` property
3400
- // (POPPER_OFFSET), never Tailwind translate utilities: those compose
3401
- // with `transform` on a v4 host and are REPLACED by it on a v3 one,
3402
- // so on v3 the animation ate the gap and the surface snapped 4px at
3403
- // the end. Same law as the centred dialog card — see motion.ts.
3404
- position === "popper" && POPPER_OFFSET,
3405
- className
3406
- ),
3407
- position,
3408
- ...props,
3409
- children: [
3410
- /* @__PURE__ */ jsx35(SelectScrollUpButton, {}),
3411
- /* @__PURE__ */ jsx35(
3412
- SelectPrimitive.Viewport,
3413
- {
3414
- className: cn(
3415
- "max-w-full overflow-y-auto p-0.5",
3416
- position === "popper" && "w-full min-w-[var(--radix-select-trigger-width)] max-h-[var(--radix-select-content-available-height)]"
3417
- ),
3418
- children
3419
- }
3420
- ),
3421
- /* @__PURE__ */ jsx35(SelectScrollDownButton, {})
3422
- ]
3423
- }
3424
- ) });
3425
- }
3426
- );
3427
- SelectContent.displayName = SelectPrimitive.Content.displayName;
3428
- var SelectLabel = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3429
- SelectPrimitive.Label,
3430
- {
3431
- ref,
3432
- className: cn("px-2 py-1.5 text-sm font-semibold", className),
3433
- ...props
3434
- }
3435
- ));
3436
- SelectLabel.displayName = SelectPrimitive.Label.displayName;
3437
- var SelectItem = React27.forwardRef(({ className, children, description, ...props }, ref) => /* @__PURE__ */ jsxs21(
3438
- SelectPrimitive.Item,
3439
- {
3440
- ref,
3441
- className: cn(
3442
- "relative flex w-full min-w-0 cursor-default select-none rounded-sm py-1 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
3443
- description ? "flex-col items-start gap-0.5 py-1.5" : "items-center",
3444
- className
3445
- ),
3446
- ...props,
3447
- children: [
3448
- /* @__PURE__ */ jsx35("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx35(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx35(CheckIcon, { className: "h-4 w-4" }) }) }),
3449
- /* @__PURE__ */ jsx35("span", { className: "min-w-0 whitespace-normal break-words [overflow-wrap:anywhere]", children: /* @__PURE__ */ jsx35(SelectPrimitive.ItemText, { children }) }),
3450
- description ? /* @__PURE__ */ jsx35("span", { className: "block min-w-0 break-words text-xs leading-snug text-muted-foreground [overflow-wrap:anywhere]", children: description }) : null
3451
- ]
3452
- }
3453
- ));
3454
- SelectItem.displayName = SelectPrimitive.Item.displayName;
3455
- var SelectSeparator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
3456
- SelectPrimitive.Separator,
3457
- {
3458
- ref,
3459
- className: cn("-mx-1 my-1 h-px bg-muted", className),
3460
- ...props
3461
- }
3462
- ));
3463
- SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3464
-
3465
3469
  // src/separator.tsx
3466
3470
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
3467
3471
  import * as React28 from "react";
@@ -5363,7 +5367,7 @@ export {
5363
5367
  Input,
5364
5368
  InputWithPrefix,
5365
5369
  LAYER_FRONT_EVENT,
5366
- Label3 as Label,
5370
+ Label4 as Label,
5367
5371
  MOBILE_BREAKPOINT,
5368
5372
  MODAL_LAYER_Z,
5369
5373
  MOTION_BOTTOM_SHEET,
@@ -5394,6 +5398,7 @@ export {
5394
5398
  ScrollBar,
5395
5399
  SegmentedControl,
5396
5400
  Select,
5401
+ SelectChevron,
5397
5402
  SelectContent,
5398
5403
  SelectGroup,
5399
5404
  SelectItem,