@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/CHANGELOG.md +12 -0
- package/dist/data-table/index.cjs +32 -6
- package/dist/data-table/index.cjs.map +1 -1
- package/dist/data-table/index.js +32 -6
- package/dist/data-table/index.js.map +1 -1
- package/dist/data-table/pagination.cjs +11 -1
- package/dist/data-table/pagination.cjs.map +1 -1
- package/dist/data-table/pagination.js +11 -1
- package/dist/data-table/pagination.js.map +1 -1
- package/dist/index.cjs +329 -324
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +329 -324
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
1774
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
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
|
|
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__ */
|
|
1893
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1908
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1933
|
-
/* @__PURE__ */
|
|
1934
|
-
groups.map((group) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1959
|
-
option.hint ? /* @__PURE__ */
|
|
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__ */
|
|
1969
|
-
createExtra && typed && !exactMatch ? /* @__PURE__ */
|
|
1970
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1993
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2004
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2021
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2027
|
-
/* @__PURE__ */
|
|
2028
|
-
/* @__PURE__ */
|
|
2029
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
2070
|
-
var DialogWindowedByDefaultContext =
|
|
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__ */
|
|
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__ */
|
|
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] ??=
|
|
2093
|
-
var useDialogContainer = () =>
|
|
2094
|
-
var DialogOverlay =
|
|
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 =
|
|
2264
|
+
var DialogContentPrimitive = React20.forwardRef(({ onInteractOutside, ...props }, ref) => {
|
|
2111
2265
|
const isModal = useRadixDialogModal();
|
|
2112
2266
|
useModalLayer(isModal);
|
|
2113
|
-
return /* @__PURE__ */
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2154
|
-
const [containerEl, setContainerEl] =
|
|
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] =
|
|
2159
|
-
|
|
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] =
|
|
2176
|
-
const dragRef =
|
|
2177
|
-
const handle =
|
|
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 =
|
|
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__ */
|
|
2217
|
-
isModal ? /* @__PURE__ */
|
|
2218
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2262
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2277
|
-
/* @__PURE__ */
|
|
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 =
|
|
2293
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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 =
|
|
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
|
|
2373
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
2555
|
+
var DropdownMenuSubContent = React21.forwardRef(({ className, container, sideOffset = 2, alignOffset = -4, collisionPadding = 8, ...props }, ref) => {
|
|
2402
2556
|
const portalContainer = usePortalContainer(container);
|
|
2403
|
-
return /* @__PURE__ */
|
|
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 =
|
|
2571
|
+
var DropdownMenuContent = React21.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => {
|
|
2418
2572
|
const portalContainer = usePortalContainer(container);
|
|
2419
|
-
return /* @__PURE__ */
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
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
|
|
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__ */
|
|
2617
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2658
|
-
error && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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 =
|
|
2879
|
+
var Input = React22.forwardRef(
|
|
2731
2880
|
({ className, type, variant = "default", ...props }, ref) => {
|
|
2732
|
-
return /* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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 =
|
|
2788
|
-
return /* @__PURE__ */
|
|
2789
|
-
prefix && /* @__PURE__ */
|
|
2790
|
-
/* @__PURE__ */
|
|
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
|
|
2805
|
-
import { jsx as
|
|
2806
|
-
var
|
|
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
|
-
|
|
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
|
|
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__ */
|
|
2844
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2999
|
+
showLabel && /* @__PURE__ */ jsx29("span", { children: text })
|
|
2851
3000
|
] });
|
|
2852
|
-
const control = action.href && !action.disabled ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2951
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2959
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2964
|
-
leading != null && /* @__PURE__ */
|
|
2965
|
-
shown.map((a) => /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2985
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3030
|
-
import { jsx as
|
|
3031
|
-
var ScrollArea =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3058
|
-
/* @__PURE__ */
|
|
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 =
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
3132
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
3163
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3234
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
3268
|
-
/* @__PURE__ */
|
|
3269
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
3302
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3311
|
-
/* @__PURE__ */
|
|
3312
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
-
|
|
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,
|