@polastack/design-system 0.1.21 → 0.1.23
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/README.md +4 -3
- package/dist/index.d.ts +35 -1
- package/dist/index.js +615 -313
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/styles/base.css +6 -0
- package/src/styles/tokens.css +1 -0
package/dist/index.js
CHANGED
|
@@ -986,8 +986,8 @@ var Checkbox = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
986
986
|
"peer h-4 w-4 shrink-0 rounded-sm border border-[var(--color-border-input)] transition-colors duration-fast",
|
|
987
987
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]",
|
|
988
988
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
989
|
-
"data-[state=checked]:border-primary-
|
|
990
|
-
"data-[state=indeterminate]:border-primary-
|
|
989
|
+
"data-[state=checked]:border-primary-400 data-[state=checked]:bg-primary-400 data-[state=checked]:text-white",
|
|
990
|
+
"data-[state=indeterminate]:border-primary-400 data-[state=indeterminate]:bg-primary-400 data-[state=indeterminate]:text-white",
|
|
991
991
|
"touch:min-h-[--touch-target-min] touch:min-w-[--touch-target-min]",
|
|
992
992
|
className
|
|
993
993
|
),
|
|
@@ -1018,7 +1018,7 @@ var RadioGroupItem = React18.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1018
1018
|
"aspect-square h-4 w-4 rounded-full border border-[var(--color-border-input)] transition-colors duration-fast",
|
|
1019
1019
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]",
|
|
1020
1020
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
1021
|
-
"data-[state=checked]:border-primary-
|
|
1021
|
+
"data-[state=checked]:border-primary-400",
|
|
1022
1022
|
"touch:min-h-[--touch-target-min] touch:min-w-[--touch-target-min]",
|
|
1023
1023
|
className
|
|
1024
1024
|
),
|
|
@@ -1799,14 +1799,312 @@ var FormActions = React26.forwardRef(
|
|
|
1799
1799
|
);
|
|
1800
1800
|
FormActions.displayName = "FormActions";
|
|
1801
1801
|
|
|
1802
|
-
// src/components/
|
|
1802
|
+
// src/components/progress/progress.tsx
|
|
1803
1803
|
import * as React27 from "react";
|
|
1804
|
-
import * as
|
|
1804
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
1805
1805
|
import { cva as cva11 } from "class-variance-authority";
|
|
1806
|
-
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
1806
|
+
import { jsx as jsx26, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1807
|
+
var progressVariants = cva11(
|
|
1808
|
+
"relative w-full overflow-hidden rounded-full bg-[var(--color-surface-muted)]",
|
|
1809
|
+
{
|
|
1810
|
+
variants: {
|
|
1811
|
+
variant: {
|
|
1812
|
+
default: "",
|
|
1813
|
+
success: "",
|
|
1814
|
+
warning: "",
|
|
1815
|
+
error: "",
|
|
1816
|
+
info: ""
|
|
1817
|
+
},
|
|
1818
|
+
size: {
|
|
1819
|
+
sm: "h-1.5",
|
|
1820
|
+
md: "h-2.5",
|
|
1821
|
+
lg: "h-4"
|
|
1822
|
+
}
|
|
1823
|
+
},
|
|
1824
|
+
defaultVariants: {
|
|
1825
|
+
variant: "default",
|
|
1826
|
+
size: "md"
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
);
|
|
1830
|
+
var progressIndicatorVariants = cva11(
|
|
1831
|
+
"h-full rounded-full transition-[width] duration-normal ease-default",
|
|
1832
|
+
{
|
|
1833
|
+
variants: {
|
|
1834
|
+
variant: {
|
|
1835
|
+
default: "bg-primary-500",
|
|
1836
|
+
success: "bg-success-500",
|
|
1837
|
+
warning: "bg-warning-500",
|
|
1838
|
+
error: "bg-error-500",
|
|
1839
|
+
info: "bg-info-500"
|
|
1840
|
+
},
|
|
1841
|
+
indeterminate: {
|
|
1842
|
+
true: "w-1/3 animate-[progress-indeterminate_2s_ease-in-out_infinite]",
|
|
1843
|
+
false: ""
|
|
1844
|
+
}
|
|
1845
|
+
},
|
|
1846
|
+
defaultVariants: {
|
|
1847
|
+
variant: "default",
|
|
1848
|
+
indeterminate: false
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
);
|
|
1852
|
+
var Progress = React27.forwardRef(
|
|
1853
|
+
({
|
|
1854
|
+
className,
|
|
1855
|
+
variant,
|
|
1856
|
+
size,
|
|
1857
|
+
value,
|
|
1858
|
+
max = 100,
|
|
1859
|
+
showLabel,
|
|
1860
|
+
labelPosition = "right",
|
|
1861
|
+
...props
|
|
1862
|
+
}, ref) => {
|
|
1863
|
+
const isIndeterminate = value === null || value === void 0;
|
|
1864
|
+
const clampedValue = isIndeterminate ? null : Math.min(max, Math.max(0, value));
|
|
1865
|
+
const labelContent = showLabel ? typeof showLabel === "function" ? showLabel(clampedValue) : isIndeterminate ? null : `${Math.round(clampedValue)}%` : null;
|
|
1866
|
+
const bar = /* @__PURE__ */ jsx26(
|
|
1867
|
+
ProgressPrimitive.Root,
|
|
1868
|
+
{
|
|
1869
|
+
ref,
|
|
1870
|
+
value: clampedValue,
|
|
1871
|
+
max,
|
|
1872
|
+
className: cn(progressVariants({ variant, size }), className),
|
|
1873
|
+
...props,
|
|
1874
|
+
children: /* @__PURE__ */ jsx26(
|
|
1875
|
+
ProgressPrimitive.Indicator,
|
|
1876
|
+
{
|
|
1877
|
+
className: cn(
|
|
1878
|
+
progressIndicatorVariants({
|
|
1879
|
+
variant,
|
|
1880
|
+
indeterminate: isIndeterminate
|
|
1881
|
+
})
|
|
1882
|
+
),
|
|
1883
|
+
style: isIndeterminate ? void 0 : { width: `${clampedValue / max * 100}%` }
|
|
1884
|
+
}
|
|
1885
|
+
)
|
|
1886
|
+
}
|
|
1887
|
+
);
|
|
1888
|
+
if (!labelContent) return bar;
|
|
1889
|
+
if (labelPosition === "top") {
|
|
1890
|
+
return /* @__PURE__ */ jsxs10("div", { className: "flex flex-col gap-1.5", children: [
|
|
1891
|
+
/* @__PURE__ */ jsx26("span", { className: "text-sm font-medium text-[var(--color-on-surface-secondary)]", children: labelContent }),
|
|
1892
|
+
bar
|
|
1893
|
+
] });
|
|
1894
|
+
}
|
|
1895
|
+
return /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-3", children: [
|
|
1896
|
+
/* @__PURE__ */ jsx26("div", { className: "flex-1", children: bar }),
|
|
1897
|
+
/* @__PURE__ */ jsx26("span", { className: "shrink-0 text-sm font-medium tabular-nums text-[var(--color-on-surface-secondary)]", children: labelContent })
|
|
1898
|
+
] });
|
|
1899
|
+
}
|
|
1900
|
+
);
|
|
1901
|
+
Progress.displayName = "Progress";
|
|
1902
|
+
|
|
1903
|
+
// src/components/stepper/stepper.tsx
|
|
1904
|
+
import * as React28 from "react";
|
|
1905
|
+
import { cva as cva12 } from "class-variance-authority";
|
|
1906
|
+
import { Check as Check4 } from "lucide-react";
|
|
1907
|
+
import { Fragment as Fragment2, jsx as jsx27, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1908
|
+
var stepIndicatorVariants = cva12(
|
|
1909
|
+
"flex items-center justify-center rounded-full font-medium shrink-0 transition-colors duration-normal border-2",
|
|
1910
|
+
{
|
|
1911
|
+
variants: {
|
|
1912
|
+
status: {
|
|
1913
|
+
pending: "border-[var(--color-border)] bg-[var(--color-surface)] text-[var(--color-on-surface-muted)]",
|
|
1914
|
+
active: "border-primary-500 bg-primary-500 text-white",
|
|
1915
|
+
completed: "border-primary-500 bg-primary-500 text-white",
|
|
1916
|
+
error: "border-error-500 bg-error-500 text-white",
|
|
1917
|
+
loading: "border-primary-500 bg-primary-500 text-white"
|
|
1918
|
+
},
|
|
1919
|
+
size: {
|
|
1920
|
+
sm: "h-6 w-6 text-xs",
|
|
1921
|
+
md: "h-8 w-8 text-sm",
|
|
1922
|
+
lg: "h-10 w-10 text-base"
|
|
1923
|
+
}
|
|
1924
|
+
},
|
|
1925
|
+
defaultVariants: {
|
|
1926
|
+
status: "pending",
|
|
1927
|
+
size: "md"
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
);
|
|
1931
|
+
var connectorVariants = cva12("transition-colors duration-normal", {
|
|
1932
|
+
variants: {
|
|
1933
|
+
completed: {
|
|
1934
|
+
true: "bg-primary-500",
|
|
1935
|
+
false: "bg-[var(--color-border)]"
|
|
1936
|
+
},
|
|
1937
|
+
orientation: {
|
|
1938
|
+
horizontal: "h-0.5 flex-1 mx-2",
|
|
1939
|
+
vertical: "w-0.5 min-h-6"
|
|
1940
|
+
}
|
|
1941
|
+
},
|
|
1942
|
+
defaultVariants: {
|
|
1943
|
+
completed: false,
|
|
1944
|
+
orientation: "horizontal"
|
|
1945
|
+
}
|
|
1946
|
+
});
|
|
1947
|
+
var spinnerSizeMap = {
|
|
1948
|
+
sm: "sm",
|
|
1949
|
+
md: "sm",
|
|
1950
|
+
lg: "sm"
|
|
1951
|
+
};
|
|
1952
|
+
var checkSizeMap = {
|
|
1953
|
+
sm: 12,
|
|
1954
|
+
md: 16,
|
|
1955
|
+
lg: 20
|
|
1956
|
+
};
|
|
1957
|
+
function StepIndicatorContent({
|
|
1958
|
+
step,
|
|
1959
|
+
index,
|
|
1960
|
+
status,
|
|
1961
|
+
size
|
|
1962
|
+
}) {
|
|
1963
|
+
if (step.icon && status !== "completed" && status !== "loading") {
|
|
1964
|
+
return /* @__PURE__ */ jsx27(Fragment2, { children: step.icon });
|
|
1965
|
+
}
|
|
1966
|
+
if (status === "loading") {
|
|
1967
|
+
return /* @__PURE__ */ jsx27(Spinner, { size: spinnerSizeMap[size], className: "text-current" });
|
|
1968
|
+
}
|
|
1969
|
+
if (status === "completed") {
|
|
1970
|
+
const s = checkSizeMap[size];
|
|
1971
|
+
return /* @__PURE__ */ jsx27(Check4, { size: s, strokeWidth: 3 });
|
|
1972
|
+
}
|
|
1973
|
+
return /* @__PURE__ */ jsx27(Fragment2, { children: index + 1 });
|
|
1974
|
+
}
|
|
1975
|
+
var Stepper = React28.forwardRef(
|
|
1976
|
+
({
|
|
1977
|
+
className,
|
|
1978
|
+
steps,
|
|
1979
|
+
activeStep,
|
|
1980
|
+
orientation = "horizontal",
|
|
1981
|
+
size = "md",
|
|
1982
|
+
clickable = false,
|
|
1983
|
+
onStepClick,
|
|
1984
|
+
...props
|
|
1985
|
+
}, ref) => {
|
|
1986
|
+
return /* @__PURE__ */ jsx27(
|
|
1987
|
+
"ol",
|
|
1988
|
+
{
|
|
1989
|
+
ref,
|
|
1990
|
+
role: "list",
|
|
1991
|
+
"aria-label": "Progress",
|
|
1992
|
+
className: cn(
|
|
1993
|
+
orientation === "horizontal" ? "flex items-start" : "flex flex-col",
|
|
1994
|
+
className
|
|
1995
|
+
),
|
|
1996
|
+
...props,
|
|
1997
|
+
children: steps.map((step, index) => {
|
|
1998
|
+
const derivedStatus = step.status ?? (index < activeStep ? "completed" : index === activeStep ? "active" : "pending");
|
|
1999
|
+
const isLast = index === steps.length - 1;
|
|
2000
|
+
const isClickable = clickable && (derivedStatus === "completed" || derivedStatus === "active");
|
|
2001
|
+
const handleClick = () => {
|
|
2002
|
+
if (isClickable && onStepClick) onStepClick(index);
|
|
2003
|
+
};
|
|
2004
|
+
const connector = !isLast ? /* @__PURE__ */ jsx27(
|
|
2005
|
+
"div",
|
|
2006
|
+
{
|
|
2007
|
+
className: cn(
|
|
2008
|
+
connectorVariants({
|
|
2009
|
+
completed: index < activeStep,
|
|
2010
|
+
orientation
|
|
2011
|
+
})
|
|
2012
|
+
),
|
|
2013
|
+
"aria-hidden": "true"
|
|
2014
|
+
}
|
|
2015
|
+
) : null;
|
|
2016
|
+
const indicatorButton = /* @__PURE__ */ jsx27(
|
|
2017
|
+
"button",
|
|
2018
|
+
{
|
|
2019
|
+
type: "button",
|
|
2020
|
+
className: cn(
|
|
2021
|
+
stepIndicatorVariants({ status: derivedStatus, size }),
|
|
2022
|
+
isClickable && "cursor-pointer hover:ring-2 hover:ring-primary-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2",
|
|
2023
|
+
!isClickable && "cursor-default",
|
|
2024
|
+
"touch:min-h-[--touch-target-min] touch:min-w-[--touch-target-min]"
|
|
2025
|
+
),
|
|
2026
|
+
onClick: handleClick,
|
|
2027
|
+
disabled: !isClickable,
|
|
2028
|
+
tabIndex: isClickable ? 0 : -1,
|
|
2029
|
+
"aria-label": `Step ${index + 1}: ${step.label}${derivedStatus === "completed" ? " (completed)" : derivedStatus === "error" ? " (error)" : derivedStatus === "loading" ? " (loading)" : ""}`,
|
|
2030
|
+
children: /* @__PURE__ */ jsx27(
|
|
2031
|
+
StepIndicatorContent,
|
|
2032
|
+
{
|
|
2033
|
+
step,
|
|
2034
|
+
index,
|
|
2035
|
+
status: derivedStatus,
|
|
2036
|
+
size
|
|
2037
|
+
}
|
|
2038
|
+
)
|
|
2039
|
+
}
|
|
2040
|
+
);
|
|
2041
|
+
const labelEl = /* @__PURE__ */ jsx27(
|
|
2042
|
+
"span",
|
|
2043
|
+
{
|
|
2044
|
+
className: cn(
|
|
2045
|
+
"text-sm font-medium",
|
|
2046
|
+
derivedStatus === "active" && "text-[var(--color-on-surface)]",
|
|
2047
|
+
derivedStatus === "pending" && "text-[var(--color-on-surface-secondary)]",
|
|
2048
|
+
derivedStatus === "completed" && "text-[var(--color-on-surface-secondary)]",
|
|
2049
|
+
derivedStatus === "loading" && "text-[var(--color-on-surface)]",
|
|
2050
|
+
derivedStatus === "error" && "text-error-600 dark:text-error-400"
|
|
2051
|
+
),
|
|
2052
|
+
children: step.label
|
|
2053
|
+
}
|
|
2054
|
+
);
|
|
2055
|
+
const descEl = step.description ? /* @__PURE__ */ jsx27("span", { className: "text-xs text-[var(--color-on-surface-muted)] max-w-[140px]", children: step.description }) : null;
|
|
2056
|
+
if (orientation === "horizontal") {
|
|
2057
|
+
return /* @__PURE__ */ jsxs11(React28.Fragment, { children: [
|
|
2058
|
+
/* @__PURE__ */ jsxs11(
|
|
2059
|
+
"li",
|
|
2060
|
+
{
|
|
2061
|
+
role: "listitem",
|
|
2062
|
+
"aria-current": derivedStatus === "active" ? "step" : void 0,
|
|
2063
|
+
className: "flex flex-col items-center gap-1.5 text-center",
|
|
2064
|
+
children: [
|
|
2065
|
+
indicatorButton,
|
|
2066
|
+
labelEl,
|
|
2067
|
+
descEl
|
|
2068
|
+
]
|
|
2069
|
+
}
|
|
2070
|
+
),
|
|
2071
|
+
connector
|
|
2072
|
+
] }, index);
|
|
2073
|
+
}
|
|
2074
|
+
return /* @__PURE__ */ jsxs11(
|
|
2075
|
+
"li",
|
|
2076
|
+
{
|
|
2077
|
+
role: "listitem",
|
|
2078
|
+
"aria-current": derivedStatus === "active" ? "step" : void 0,
|
|
2079
|
+
className: "flex gap-3",
|
|
2080
|
+
children: [
|
|
2081
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col items-center", children: [
|
|
2082
|
+
indicatorButton,
|
|
2083
|
+
connector
|
|
2084
|
+
] }),
|
|
2085
|
+
/* @__PURE__ */ jsxs11("div", { className: cn("flex flex-col gap-0.5", !isLast && "pb-6"), children: [
|
|
2086
|
+
labelEl,
|
|
2087
|
+
descEl
|
|
2088
|
+
] })
|
|
2089
|
+
]
|
|
2090
|
+
},
|
|
2091
|
+
index
|
|
2092
|
+
);
|
|
2093
|
+
})
|
|
2094
|
+
}
|
|
2095
|
+
);
|
|
2096
|
+
}
|
|
2097
|
+
);
|
|
2098
|
+
Stepper.displayName = "Stepper";
|
|
2099
|
+
|
|
2100
|
+
// src/components/tabs/tabs.tsx
|
|
2101
|
+
import * as React29 from "react";
|
|
2102
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
2103
|
+
import { cva as cva13 } from "class-variance-authority";
|
|
2104
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1807
2105
|
var [TabsVariantProvider, useTabsVariant] = createContext2("TabsVariant");
|
|
1808
2106
|
var Tabs = TabsPrimitive.Root;
|
|
1809
|
-
var tabsListVariants =
|
|
2107
|
+
var tabsListVariants = cva13(
|
|
1810
2108
|
"inline-flex items-center justify-center overflow-x-auto max-w-full",
|
|
1811
2109
|
{
|
|
1812
2110
|
variants: {
|
|
@@ -1818,7 +2116,7 @@ var tabsListVariants = cva11(
|
|
|
1818
2116
|
defaultVariants: { variant: "default" }
|
|
1819
2117
|
}
|
|
1820
2118
|
);
|
|
1821
|
-
var TabsList =
|
|
2119
|
+
var TabsList = React29.forwardRef(({ className, variant = "default", ...props }, ref) => /* @__PURE__ */ jsx28(TabsVariantProvider, { value: { variant }, children: /* @__PURE__ */ jsx28(
|
|
1822
2120
|
TabsPrimitive.List,
|
|
1823
2121
|
{
|
|
1824
2122
|
ref,
|
|
@@ -1830,11 +2128,11 @@ TabsList.displayName = "TabsList";
|
|
|
1830
2128
|
var tabsTriggerBase = "inline-flex items-center justify-center whitespace-nowrap shrink-0 px-3 py-1.5 text-sm font-medium transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 touch:min-h-[--touch-target-min]";
|
|
1831
2129
|
var tabsTriggerVariantStyles = {
|
|
1832
2130
|
default: "rounded-md data-[state=active]:bg-[var(--color-surface-raised)] data-[state=active]:shadow-sm data-[state=active]:text-[var(--color-on-surface)] text-[var(--color-on-surface-secondary)]",
|
|
1833
|
-
underline: "border-b-2 border-transparent rounded-none data-[state=active]:border-primary-
|
|
2131
|
+
underline: "border-b-2 border-transparent rounded-none data-[state=active]:border-primary-400 data-[state=active]:text-[var(--color-on-surface)] text-[var(--color-on-surface-secondary)]"
|
|
1834
2132
|
};
|
|
1835
|
-
var TabsTrigger =
|
|
2133
|
+
var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => {
|
|
1836
2134
|
const { variant } = useTabsVariant();
|
|
1837
|
-
return /* @__PURE__ */
|
|
2135
|
+
return /* @__PURE__ */ jsx28(
|
|
1838
2136
|
TabsPrimitive.Trigger,
|
|
1839
2137
|
{
|
|
1840
2138
|
ref,
|
|
@@ -1848,7 +2146,7 @@ var TabsTrigger = React27.forwardRef(({ className, ...props }, ref) => {
|
|
|
1848
2146
|
);
|
|
1849
2147
|
});
|
|
1850
2148
|
TabsTrigger.displayName = "TabsTrigger";
|
|
1851
|
-
var TabsContent =
|
|
2149
|
+
var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
1852
2150
|
TabsPrimitive.Content,
|
|
1853
2151
|
{
|
|
1854
2152
|
ref,
|
|
@@ -1862,10 +2160,10 @@ var TabsContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1862
2160
|
TabsContent.displayName = "TabsContent";
|
|
1863
2161
|
|
|
1864
2162
|
// src/components/empty-state/empty-state.tsx
|
|
1865
|
-
import * as
|
|
1866
|
-
import { cva as
|
|
1867
|
-
import { jsx as
|
|
1868
|
-
var emptyStateVariants =
|
|
2163
|
+
import * as React30 from "react";
|
|
2164
|
+
import { cva as cva14 } from "class-variance-authority";
|
|
2165
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2166
|
+
var emptyStateVariants = cva14(
|
|
1869
2167
|
"flex flex-col items-center justify-center text-center",
|
|
1870
2168
|
{
|
|
1871
2169
|
variants: {
|
|
@@ -1878,8 +2176,8 @@ var emptyStateVariants = cva12(
|
|
|
1878
2176
|
defaultVariants: { size: "md" }
|
|
1879
2177
|
}
|
|
1880
2178
|
);
|
|
1881
|
-
var EmptyState =
|
|
1882
|
-
({ className, size, ...props }, ref) => /* @__PURE__ */
|
|
2179
|
+
var EmptyState = React30.forwardRef(
|
|
2180
|
+
({ className, size, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1883
2181
|
"div",
|
|
1884
2182
|
{
|
|
1885
2183
|
ref,
|
|
@@ -1889,7 +2187,7 @@ var EmptyState = React28.forwardRef(
|
|
|
1889
2187
|
)
|
|
1890
2188
|
);
|
|
1891
2189
|
EmptyState.displayName = "EmptyState";
|
|
1892
|
-
var EmptyStateIcon =
|
|
2190
|
+
var EmptyStateIcon = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1893
2191
|
"div",
|
|
1894
2192
|
{
|
|
1895
2193
|
ref,
|
|
@@ -1898,7 +2196,7 @@ var EmptyStateIcon = React28.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1898
2196
|
}
|
|
1899
2197
|
));
|
|
1900
2198
|
EmptyStateIcon.displayName = "EmptyStateIcon";
|
|
1901
|
-
var EmptyStateTitle =
|
|
2199
|
+
var EmptyStateTitle = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1902
2200
|
"h3",
|
|
1903
2201
|
{
|
|
1904
2202
|
ref,
|
|
@@ -1907,7 +2205,7 @@ var EmptyStateTitle = React28.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
1907
2205
|
}
|
|
1908
2206
|
));
|
|
1909
2207
|
EmptyStateTitle.displayName = "EmptyStateTitle";
|
|
1910
|
-
var EmptyStateDescription =
|
|
2208
|
+
var EmptyStateDescription = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1911
2209
|
"p",
|
|
1912
2210
|
{
|
|
1913
2211
|
ref,
|
|
@@ -1916,7 +2214,7 @@ var EmptyStateDescription = React28.forwardRef(({ className, ...props }, ref) =>
|
|
|
1916
2214
|
}
|
|
1917
2215
|
));
|
|
1918
2216
|
EmptyStateDescription.displayName = "EmptyStateDescription";
|
|
1919
|
-
var EmptyStateActions =
|
|
2217
|
+
var EmptyStateActions = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
1920
2218
|
"div",
|
|
1921
2219
|
{
|
|
1922
2220
|
ref,
|
|
@@ -1927,9 +2225,9 @@ var EmptyStateActions = React28.forwardRef(({ className, ...props }, ref) => /*
|
|
|
1927
2225
|
EmptyStateActions.displayName = "EmptyStateActions";
|
|
1928
2226
|
|
|
1929
2227
|
// src/components/table/table.tsx
|
|
1930
|
-
import * as
|
|
1931
|
-
import { jsx as
|
|
1932
|
-
var Table =
|
|
2228
|
+
import * as React31 from "react";
|
|
2229
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2230
|
+
var Table = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx30(
|
|
1933
2231
|
"table",
|
|
1934
2232
|
{
|
|
1935
2233
|
ref,
|
|
@@ -1938,9 +2236,9 @@ var Table = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
1938
2236
|
}
|
|
1939
2237
|
) }));
|
|
1940
2238
|
Table.displayName = "Table";
|
|
1941
|
-
var TableHeader =
|
|
2239
|
+
var TableHeader = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
1942
2240
|
TableHeader.displayName = "TableHeader";
|
|
1943
|
-
var TableBody =
|
|
2241
|
+
var TableBody = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1944
2242
|
"tbody",
|
|
1945
2243
|
{
|
|
1946
2244
|
ref,
|
|
@@ -1949,7 +2247,7 @@ var TableBody = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1949
2247
|
}
|
|
1950
2248
|
));
|
|
1951
2249
|
TableBody.displayName = "TableBody";
|
|
1952
|
-
var TableFooter =
|
|
2250
|
+
var TableFooter = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1953
2251
|
"tfoot",
|
|
1954
2252
|
{
|
|
1955
2253
|
ref,
|
|
@@ -1961,7 +2259,7 @@ var TableFooter = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
1961
2259
|
}
|
|
1962
2260
|
));
|
|
1963
2261
|
TableFooter.displayName = "TableFooter";
|
|
1964
|
-
var TableRow =
|
|
2262
|
+
var TableRow = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1965
2263
|
"tr",
|
|
1966
2264
|
{
|
|
1967
2265
|
ref,
|
|
@@ -1973,7 +2271,7 @@ var TableRow = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
1973
2271
|
}
|
|
1974
2272
|
));
|
|
1975
2273
|
TableRow.displayName = "TableRow";
|
|
1976
|
-
var TableHead =
|
|
2274
|
+
var TableHead = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1977
2275
|
"th",
|
|
1978
2276
|
{
|
|
1979
2277
|
ref,
|
|
@@ -1985,7 +2283,7 @@ var TableHead = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1985
2283
|
}
|
|
1986
2284
|
));
|
|
1987
2285
|
TableHead.displayName = "TableHead";
|
|
1988
|
-
var TableCell =
|
|
2286
|
+
var TableCell = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
1989
2287
|
"td",
|
|
1990
2288
|
{
|
|
1991
2289
|
ref,
|
|
@@ -1997,7 +2295,7 @@ var TableCell = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
1997
2295
|
}
|
|
1998
2296
|
));
|
|
1999
2297
|
TableCell.displayName = "TableCell";
|
|
2000
|
-
var TableCaption =
|
|
2298
|
+
var TableCaption = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx30(
|
|
2001
2299
|
"caption",
|
|
2002
2300
|
{
|
|
2003
2301
|
ref,
|
|
@@ -2008,7 +2306,7 @@ var TableCaption = React29.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2008
2306
|
TableCaption.displayName = "TableCaption";
|
|
2009
2307
|
|
|
2010
2308
|
// src/components/data-table/data-table.tsx
|
|
2011
|
-
import * as
|
|
2309
|
+
import * as React33 from "react";
|
|
2012
2310
|
import {
|
|
2013
2311
|
useReactTable,
|
|
2014
2312
|
getCoreRowModel,
|
|
@@ -2020,7 +2318,7 @@ import { ChevronsUpDown as ChevronsUpDown2 } from "lucide-react";
|
|
|
2020
2318
|
|
|
2021
2319
|
// src/components/data-table/data-table-pagination.tsx
|
|
2022
2320
|
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
2023
|
-
import { jsx as
|
|
2321
|
+
import { jsx as jsx31, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2024
2322
|
function DataTablePagination({
|
|
2025
2323
|
table,
|
|
2026
2324
|
pageSizeOptions = [10, 20, 30, 50],
|
|
@@ -2030,7 +2328,7 @@ function DataTablePagination({
|
|
|
2030
2328
|
const totalRows = table.getFilteredRowModel().rows.length;
|
|
2031
2329
|
const from = pageIndex * pageSize + 1;
|
|
2032
2330
|
const to = Math.min((pageIndex + 1) * pageSize, totalRows);
|
|
2033
|
-
return /* @__PURE__ */
|
|
2331
|
+
return /* @__PURE__ */ jsxs12(
|
|
2034
2332
|
"div",
|
|
2035
2333
|
{
|
|
2036
2334
|
className: cn(
|
|
@@ -2038,40 +2336,40 @@ function DataTablePagination({
|
|
|
2038
2336
|
className
|
|
2039
2337
|
),
|
|
2040
2338
|
children: [
|
|
2041
|
-
/* @__PURE__ */
|
|
2042
|
-
/* @__PURE__ */
|
|
2043
|
-
/* @__PURE__ */
|
|
2339
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-2", children: [
|
|
2340
|
+
/* @__PURE__ */ jsx31("span", { className: "hidden sm:inline", children: "Rows per page" }),
|
|
2341
|
+
/* @__PURE__ */ jsx31(
|
|
2044
2342
|
"select",
|
|
2045
2343
|
{
|
|
2046
2344
|
value: pageSize,
|
|
2047
2345
|
onChange: (e) => table.setPageSize(Number(e.target.value)),
|
|
2048
2346
|
className: "h-8 rounded-md border border-[var(--color-border-input)] bg-[var(--color-surface-raised)] px-2 text-sm",
|
|
2049
2347
|
"aria-label": "Rows per page",
|
|
2050
|
-
children: pageSizeOptions.map((size) => /* @__PURE__ */
|
|
2348
|
+
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx31("option", { value: size, children: size }, size))
|
|
2051
2349
|
}
|
|
2052
2350
|
)
|
|
2053
2351
|
] }),
|
|
2054
|
-
/* @__PURE__ */
|
|
2055
|
-
/* @__PURE__ */
|
|
2056
|
-
/* @__PURE__ */
|
|
2057
|
-
/* @__PURE__ */
|
|
2352
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-4", children: [
|
|
2353
|
+
/* @__PURE__ */ jsx31("span", { children: totalRows > 0 ? `${from}-${to} of ${totalRows}` : "0 results" }),
|
|
2354
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex items-center gap-1", children: [
|
|
2355
|
+
/* @__PURE__ */ jsx31(
|
|
2058
2356
|
"button",
|
|
2059
2357
|
{
|
|
2060
2358
|
className: "inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--color-border-input)] bg-[var(--color-surface-raised)] transition-colors hover:bg-[var(--color-surface-sunken)] disabled:opacity-50 disabled:pointer-events-none",
|
|
2061
2359
|
onClick: () => table.previousPage(),
|
|
2062
2360
|
disabled: !table.getCanPreviousPage(),
|
|
2063
2361
|
"aria-label": "Previous page",
|
|
2064
|
-
children: /* @__PURE__ */
|
|
2362
|
+
children: /* @__PURE__ */ jsx31(ChevronLeft, { className: "h-4 w-4" })
|
|
2065
2363
|
}
|
|
2066
2364
|
),
|
|
2067
|
-
/* @__PURE__ */
|
|
2365
|
+
/* @__PURE__ */ jsx31(
|
|
2068
2366
|
"button",
|
|
2069
2367
|
{
|
|
2070
2368
|
className: "inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--color-border-input)] bg-[var(--color-surface-raised)] transition-colors hover:bg-[var(--color-surface-sunken)] disabled:opacity-50 disabled:pointer-events-none",
|
|
2071
2369
|
onClick: () => table.nextPage(),
|
|
2072
2370
|
disabled: !table.getCanNextPage(),
|
|
2073
2371
|
"aria-label": "Next page",
|
|
2074
|
-
children: /* @__PURE__ */
|
|
2372
|
+
children: /* @__PURE__ */ jsx31(ChevronRight, { className: "h-4 w-4" })
|
|
2075
2373
|
}
|
|
2076
2374
|
)
|
|
2077
2375
|
] })
|
|
@@ -2083,19 +2381,19 @@ function DataTablePagination({
|
|
|
2083
2381
|
DataTablePagination.displayName = "DataTablePagination";
|
|
2084
2382
|
|
|
2085
2383
|
// src/components/data-table/data-table-toolbar.tsx
|
|
2086
|
-
import * as
|
|
2384
|
+
import * as React32 from "react";
|
|
2087
2385
|
import { Columns3 } from "lucide-react";
|
|
2088
|
-
import { jsx as
|
|
2386
|
+
import { jsx as jsx32, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2089
2387
|
function DataTableToolbar({
|
|
2090
2388
|
table,
|
|
2091
2389
|
enableColumnVisibility = false,
|
|
2092
2390
|
className,
|
|
2093
2391
|
children
|
|
2094
2392
|
}) {
|
|
2095
|
-
const [showColumnMenu, setShowColumnMenu] =
|
|
2096
|
-
const menuRef =
|
|
2393
|
+
const [showColumnMenu, setShowColumnMenu] = React32.useState(false);
|
|
2394
|
+
const menuRef = React32.useRef(null);
|
|
2097
2395
|
const selectedCount = table.getFilteredSelectedRowModel().rows.length;
|
|
2098
|
-
|
|
2396
|
+
React32.useEffect(() => {
|
|
2099
2397
|
function handleClickOutside(event) {
|
|
2100
2398
|
if (menuRef.current && !menuRef.current.contains(event.target)) {
|
|
2101
2399
|
setShowColumnMenu(false);
|
|
@@ -2106,7 +2404,7 @@ function DataTableToolbar({
|
|
|
2106
2404
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
2107
2405
|
}
|
|
2108
2406
|
}, [showColumnMenu]);
|
|
2109
|
-
return /* @__PURE__ */
|
|
2407
|
+
return /* @__PURE__ */ jsxs13(
|
|
2110
2408
|
"div",
|
|
2111
2409
|
{
|
|
2112
2410
|
className: cn(
|
|
@@ -2114,15 +2412,15 @@ function DataTableToolbar({
|
|
|
2114
2412
|
className
|
|
2115
2413
|
),
|
|
2116
2414
|
children: [
|
|
2117
|
-
/* @__PURE__ */
|
|
2118
|
-
selectedCount > 0 && /* @__PURE__ */
|
|
2415
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-2", children: [
|
|
2416
|
+
selectedCount > 0 && /* @__PURE__ */ jsxs13("span", { className: "text-sm text-[var(--color-on-surface-secondary)]", children: [
|
|
2119
2417
|
selectedCount,
|
|
2120
2418
|
" selected"
|
|
2121
2419
|
] }),
|
|
2122
2420
|
children
|
|
2123
2421
|
] }),
|
|
2124
|
-
enableColumnVisibility && /* @__PURE__ */
|
|
2125
|
-
/* @__PURE__ */
|
|
2422
|
+
enableColumnVisibility && /* @__PURE__ */ jsxs13("div", { className: "relative", ref: menuRef, children: [
|
|
2423
|
+
/* @__PURE__ */ jsxs13(
|
|
2126
2424
|
"button",
|
|
2127
2425
|
{
|
|
2128
2426
|
className: "inline-flex items-center gap-1 rounded-md border border-[var(--color-border-input)] bg-[var(--color-surface-raised)] px-3 py-1.5 text-sm transition-colors hover:bg-[var(--color-surface-sunken)]",
|
|
@@ -2130,17 +2428,17 @@ function DataTableToolbar({
|
|
|
2130
2428
|
"aria-label": "Toggle columns",
|
|
2131
2429
|
"aria-expanded": showColumnMenu,
|
|
2132
2430
|
children: [
|
|
2133
|
-
/* @__PURE__ */
|
|
2431
|
+
/* @__PURE__ */ jsx32(Columns3, { className: "h-3.5 w-3.5" }),
|
|
2134
2432
|
"Columns"
|
|
2135
2433
|
]
|
|
2136
2434
|
}
|
|
2137
2435
|
),
|
|
2138
|
-
showColumnMenu && /* @__PURE__ */
|
|
2436
|
+
showColumnMenu && /* @__PURE__ */ jsx32("div", { className: "absolute right-0 top-full z-popover mt-1 min-w-[10rem] rounded-md border border-[var(--color-border)] bg-[var(--color-surface-raised)] p-2 shadow-md", children: table.getAllColumns().filter((col) => col.getCanHide()).map((col) => /* @__PURE__ */ jsxs13(
|
|
2139
2437
|
"label",
|
|
2140
2438
|
{
|
|
2141
2439
|
className: "flex items-center gap-2 rounded px-2 py-1 text-sm hover:bg-[var(--color-surface-sunken)] cursor-pointer capitalize",
|
|
2142
2440
|
children: [
|
|
2143
|
-
/* @__PURE__ */
|
|
2441
|
+
/* @__PURE__ */ jsx32(
|
|
2144
2442
|
"input",
|
|
2145
2443
|
{
|
|
2146
2444
|
type: "checkbox",
|
|
@@ -2162,7 +2460,7 @@ function DataTableToolbar({
|
|
|
2162
2460
|
DataTableToolbar.displayName = "DataTableToolbar";
|
|
2163
2461
|
|
|
2164
2462
|
// src/components/data-table/data-table.tsx
|
|
2165
|
-
import { jsx as
|
|
2463
|
+
import { jsx as jsx33, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2166
2464
|
function DataTable({
|
|
2167
2465
|
columns,
|
|
2168
2466
|
data,
|
|
@@ -2177,14 +2475,14 @@ function DataTable({
|
|
|
2177
2475
|
className,
|
|
2178
2476
|
"aria-label": ariaLabel
|
|
2179
2477
|
}) {
|
|
2180
|
-
const [sorting, setSorting] =
|
|
2181
|
-
const [rowSelection, setRowSelection] =
|
|
2182
|
-
const [columnVisibility, setColumnVisibility] =
|
|
2183
|
-
const allColumns =
|
|
2478
|
+
const [sorting, setSorting] = React33.useState([]);
|
|
2479
|
+
const [rowSelection, setRowSelection] = React33.useState({});
|
|
2480
|
+
const [columnVisibility, setColumnVisibility] = React33.useState({});
|
|
2481
|
+
const allColumns = React33.useMemo(() => {
|
|
2184
2482
|
if (!enableRowSelection) return columns;
|
|
2185
2483
|
const selectColumn = {
|
|
2186
2484
|
id: "select",
|
|
2187
|
-
header: ({ table: table2 }) => /* @__PURE__ */
|
|
2485
|
+
header: ({ table: table2 }) => /* @__PURE__ */ jsx33(
|
|
2188
2486
|
Checkbox,
|
|
2189
2487
|
{
|
|
2190
2488
|
checked: table2.getIsAllPageRowsSelected() ? true : table2.getIsSomePageRowsSelected() ? "indeterminate" : false,
|
|
@@ -2192,7 +2490,7 @@ function DataTable({
|
|
|
2192
2490
|
"aria-label": "Select all"
|
|
2193
2491
|
}
|
|
2194
2492
|
),
|
|
2195
|
-
cell: ({ row }) => /* @__PURE__ */
|
|
2493
|
+
cell: ({ row }) => /* @__PURE__ */ jsx33(
|
|
2196
2494
|
Checkbox,
|
|
2197
2495
|
{
|
|
2198
2496
|
checked: row.getIsSelected(),
|
|
@@ -2220,23 +2518,23 @@ function DataTable({
|
|
|
2220
2518
|
enableRowSelection,
|
|
2221
2519
|
initialState: { pagination: { pageSize } }
|
|
2222
2520
|
});
|
|
2223
|
-
|
|
2521
|
+
React33.useEffect(() => {
|
|
2224
2522
|
if (onRowSelectionChange) {
|
|
2225
2523
|
const selectedRows = table.getFilteredSelectedRowModel().rows.map((row) => row.original);
|
|
2226
2524
|
onRowSelectionChange(selectedRows);
|
|
2227
2525
|
}
|
|
2228
2526
|
}, [rowSelection, table, onRowSelectionChange]);
|
|
2229
2527
|
const showToolbar = enableRowSelection || enableColumnVisibility;
|
|
2230
|
-
return /* @__PURE__ */
|
|
2231
|
-
showToolbar && /* @__PURE__ */
|
|
2528
|
+
return /* @__PURE__ */ jsxs14("div", { className: cn("rounded-md border border-[var(--color-border)]", className), children: [
|
|
2529
|
+
showToolbar && /* @__PURE__ */ jsx33(
|
|
2232
2530
|
DataTableToolbar,
|
|
2233
2531
|
{
|
|
2234
2532
|
table,
|
|
2235
2533
|
enableColumnVisibility
|
|
2236
2534
|
}
|
|
2237
2535
|
),
|
|
2238
|
-
/* @__PURE__ */
|
|
2239
|
-
/* @__PURE__ */
|
|
2536
|
+
/* @__PURE__ */ jsxs14(Table, { "aria-label": ariaLabel, children: [
|
|
2537
|
+
/* @__PURE__ */ jsx33(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx33(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx33(TableHead, { children: header.isPlaceholder ? null : header.column.getCanSort() ? /* @__PURE__ */ jsxs14(
|
|
2240
2538
|
"button",
|
|
2241
2539
|
{
|
|
2242
2540
|
className: "flex items-center gap-1 -ml-2 px-2 py-1 rounded-md hover:bg-[var(--color-surface-muted)] transition-colors duration-fast",
|
|
@@ -2247,7 +2545,7 @@ function DataTable({
|
|
|
2247
2545
|
header.column.columnDef.header,
|
|
2248
2546
|
header.getContext()
|
|
2249
2547
|
),
|
|
2250
|
-
/* @__PURE__ */
|
|
2548
|
+
/* @__PURE__ */ jsx33(
|
|
2251
2549
|
ChevronsUpDown2,
|
|
2252
2550
|
{
|
|
2253
2551
|
className: cn(
|
|
@@ -2262,14 +2560,14 @@ function DataTable({
|
|
|
2262
2560
|
header.column.columnDef.header,
|
|
2263
2561
|
header.getContext()
|
|
2264
2562
|
) }, header.id)) }, headerGroup.id)) }),
|
|
2265
|
-
/* @__PURE__ */
|
|
2563
|
+
/* @__PURE__ */ jsx33(TableBody, { children: table.getRowModel().rows.length > 0 ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx33(
|
|
2266
2564
|
TableRow,
|
|
2267
2565
|
{
|
|
2268
2566
|
"data-state": row.getIsSelected() ? "selected" : void 0,
|
|
2269
|
-
children: row.getVisibleCells().map((cell) => /* @__PURE__ */
|
|
2567
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx33(TableCell, { children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id))
|
|
2270
2568
|
},
|
|
2271
2569
|
row.id
|
|
2272
|
-
)) : /* @__PURE__ */
|
|
2570
|
+
)) : /* @__PURE__ */ jsx33(TableRow, { children: /* @__PURE__ */ jsx33(
|
|
2273
2571
|
TableCell,
|
|
2274
2572
|
{
|
|
2275
2573
|
colSpan: allColumns.length,
|
|
@@ -2278,7 +2576,7 @@ function DataTable({
|
|
|
2278
2576
|
}
|
|
2279
2577
|
) }) })
|
|
2280
2578
|
] }),
|
|
2281
|
-
enablePagination && /* @__PURE__ */
|
|
2579
|
+
enablePagination && /* @__PURE__ */ jsx33(
|
|
2282
2580
|
DataTablePagination,
|
|
2283
2581
|
{
|
|
2284
2582
|
table,
|
|
@@ -2291,17 +2589,17 @@ DataTable.displayName = "DataTable";
|
|
|
2291
2589
|
|
|
2292
2590
|
// src/components/data-table/data-table-column-header.tsx
|
|
2293
2591
|
import { ChevronsUpDown as ChevronsUpDown3 } from "lucide-react";
|
|
2294
|
-
import { jsx as
|
|
2592
|
+
import { jsx as jsx34, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2295
2593
|
function DataTableColumnHeader({
|
|
2296
2594
|
column,
|
|
2297
2595
|
title,
|
|
2298
2596
|
className
|
|
2299
2597
|
}) {
|
|
2300
2598
|
if (!column.getCanSort()) {
|
|
2301
|
-
return /* @__PURE__ */
|
|
2599
|
+
return /* @__PURE__ */ jsx34("div", { className: cn(className), children: title });
|
|
2302
2600
|
}
|
|
2303
2601
|
const sorted = column.getIsSorted();
|
|
2304
|
-
return /* @__PURE__ */
|
|
2602
|
+
return /* @__PURE__ */ jsxs15(
|
|
2305
2603
|
"button",
|
|
2306
2604
|
{
|
|
2307
2605
|
className: cn(
|
|
@@ -2312,7 +2610,7 @@ function DataTableColumnHeader({
|
|
|
2312
2610
|
"aria-label": `Sort by ${title}`,
|
|
2313
2611
|
children: [
|
|
2314
2612
|
title,
|
|
2315
|
-
/* @__PURE__ */
|
|
2613
|
+
/* @__PURE__ */ jsx34(
|
|
2316
2614
|
ChevronsUpDown3,
|
|
2317
2615
|
{
|
|
2318
2616
|
className: cn(
|
|
@@ -2321,8 +2619,8 @@ function DataTableColumnHeader({
|
|
|
2321
2619
|
)
|
|
2322
2620
|
}
|
|
2323
2621
|
),
|
|
2324
|
-
sorted === "asc" && /* @__PURE__ */
|
|
2325
|
-
sorted === "desc" && /* @__PURE__ */
|
|
2622
|
+
sorted === "asc" && /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "sorted ascending" }),
|
|
2623
|
+
sorted === "desc" && /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "sorted descending" })
|
|
2326
2624
|
]
|
|
2327
2625
|
}
|
|
2328
2626
|
);
|
|
@@ -2330,11 +2628,11 @@ function DataTableColumnHeader({
|
|
|
2330
2628
|
DataTableColumnHeader.displayName = "DataTableColumnHeader";
|
|
2331
2629
|
|
|
2332
2630
|
// src/components/filter-bar/filter-bar.tsx
|
|
2333
|
-
import * as
|
|
2334
|
-
import { cva as
|
|
2631
|
+
import * as React34 from "react";
|
|
2632
|
+
import { cva as cva15 } from "class-variance-authority";
|
|
2335
2633
|
import { X as X2 } from "lucide-react";
|
|
2336
|
-
import { jsx as
|
|
2337
|
-
var FilterBar =
|
|
2634
|
+
import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2635
|
+
var FilterBar = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2338
2636
|
"div",
|
|
2339
2637
|
{
|
|
2340
2638
|
ref,
|
|
@@ -2348,7 +2646,7 @@ var FilterBar = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2348
2646
|
}
|
|
2349
2647
|
));
|
|
2350
2648
|
FilterBar.displayName = "FilterBar";
|
|
2351
|
-
var FilterBarGroup =
|
|
2649
|
+
var FilterBarGroup = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2352
2650
|
"div",
|
|
2353
2651
|
{
|
|
2354
2652
|
ref,
|
|
@@ -2358,7 +2656,7 @@ var FilterBarGroup = React32.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2358
2656
|
}
|
|
2359
2657
|
));
|
|
2360
2658
|
FilterBarGroup.displayName = "FilterBarGroup";
|
|
2361
|
-
var filterChipVariants =
|
|
2659
|
+
var filterChipVariants = cva15(
|
|
2362
2660
|
"inline-flex items-center gap-1 rounded-full px-3 py-1 text-sm font-medium transition-colors duration-fast",
|
|
2363
2661
|
{
|
|
2364
2662
|
variants: {
|
|
@@ -2370,27 +2668,27 @@ var filterChipVariants = cva13(
|
|
|
2370
2668
|
defaultVariants: { variant: "default" }
|
|
2371
2669
|
}
|
|
2372
2670
|
);
|
|
2373
|
-
var FilterChip =
|
|
2374
|
-
({ className, variant, label, value, onRemove, ...props }, ref) => /* @__PURE__ */
|
|
2671
|
+
var FilterChip = React34.forwardRef(
|
|
2672
|
+
({ className, variant, label, value, onRemove, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2375
2673
|
"span",
|
|
2376
2674
|
{
|
|
2377
2675
|
ref,
|
|
2378
2676
|
className: cn(filterChipVariants({ variant }), className),
|
|
2379
2677
|
...props,
|
|
2380
2678
|
children: [
|
|
2381
|
-
/* @__PURE__ */
|
|
2679
|
+
/* @__PURE__ */ jsxs16("span", { className: "text-xs opacity-70", children: [
|
|
2382
2680
|
label,
|
|
2383
2681
|
":"
|
|
2384
2682
|
] }),
|
|
2385
|
-
/* @__PURE__ */
|
|
2386
|
-
onRemove && /* @__PURE__ */
|
|
2683
|
+
/* @__PURE__ */ jsx35("span", { children: value }),
|
|
2684
|
+
onRemove && /* @__PURE__ */ jsx35(
|
|
2387
2685
|
"button",
|
|
2388
2686
|
{
|
|
2389
2687
|
type: "button",
|
|
2390
2688
|
onClick: onRemove,
|
|
2391
2689
|
className: "ml-0.5 rounded-full p-0.5 hover:bg-black/10 transition-colors",
|
|
2392
2690
|
"aria-label": `Remove ${label} filter`,
|
|
2393
|
-
children: /* @__PURE__ */
|
|
2691
|
+
children: /* @__PURE__ */ jsx35(X2, { className: "h-3 w-3" })
|
|
2394
2692
|
}
|
|
2395
2693
|
)
|
|
2396
2694
|
]
|
|
@@ -2398,7 +2696,7 @@ var FilterChip = React32.forwardRef(
|
|
|
2398
2696
|
)
|
|
2399
2697
|
);
|
|
2400
2698
|
FilterChip.displayName = "FilterChip";
|
|
2401
|
-
var ActiveFilters =
|
|
2699
|
+
var ActiveFilters = React34.forwardRef(({ className, onClearAll, clearAllLabel = "Clear all", children, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2402
2700
|
"div",
|
|
2403
2701
|
{
|
|
2404
2702
|
ref,
|
|
@@ -2406,7 +2704,7 @@ var ActiveFilters = React32.forwardRef(({ className, onClearAll, clearAllLabel =
|
|
|
2406
2704
|
...props,
|
|
2407
2705
|
children: [
|
|
2408
2706
|
children,
|
|
2409
|
-
onClearAll && /* @__PURE__ */
|
|
2707
|
+
onClearAll && /* @__PURE__ */ jsx35(
|
|
2410
2708
|
"button",
|
|
2411
2709
|
{
|
|
2412
2710
|
type: "button",
|
|
@@ -2419,7 +2717,7 @@ var ActiveFilters = React32.forwardRef(({ className, onClearAll, clearAllLabel =
|
|
|
2419
2717
|
}
|
|
2420
2718
|
));
|
|
2421
2719
|
ActiveFilters.displayName = "ActiveFilters";
|
|
2422
|
-
var FilterBarActions =
|
|
2720
|
+
var FilterBarActions = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2423
2721
|
"div",
|
|
2424
2722
|
{
|
|
2425
2723
|
ref,
|
|
@@ -2430,13 +2728,13 @@ var FilterBarActions = React32.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
2430
2728
|
FilterBarActions.displayName = "FilterBarActions";
|
|
2431
2729
|
|
|
2432
2730
|
// src/components/popover/popover.tsx
|
|
2433
|
-
import * as
|
|
2731
|
+
import * as React35 from "react";
|
|
2434
2732
|
import * as PopoverPrimitive2 from "@radix-ui/react-popover";
|
|
2435
|
-
import { jsx as
|
|
2733
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
2436
2734
|
var Popover = PopoverPrimitive2.Root;
|
|
2437
2735
|
var PopoverTrigger = PopoverPrimitive2.Trigger;
|
|
2438
2736
|
var PopoverAnchor = PopoverPrimitive2.Anchor;
|
|
2439
|
-
var PopoverContent =
|
|
2737
|
+
var PopoverContent = React35.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx36(PopoverPrimitive2.Portal, { children: /* @__PURE__ */ jsx36(
|
|
2440
2738
|
PopoverPrimitive2.Content,
|
|
2441
2739
|
{
|
|
2442
2740
|
ref,
|
|
@@ -2456,17 +2754,17 @@ var PopoverContent = React33.forwardRef(({ className, align = "center", sideOffs
|
|
|
2456
2754
|
PopoverContent.displayName = "PopoverContent";
|
|
2457
2755
|
|
|
2458
2756
|
// src/components/dropdown-menu/dropdown-menu.tsx
|
|
2459
|
-
import * as
|
|
2757
|
+
import * as React36 from "react";
|
|
2460
2758
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
2461
|
-
import { Check as
|
|
2462
|
-
import { jsx as
|
|
2759
|
+
import { Check as Check5, ChevronRight as ChevronRight2 } from "lucide-react";
|
|
2760
|
+
import { jsx as jsx37, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2463
2761
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2464
2762
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
2465
2763
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
2466
2764
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
2467
2765
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
2468
2766
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
2469
|
-
var DropdownMenuContent =
|
|
2767
|
+
var DropdownMenuContent = React36.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx37(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx37(
|
|
2470
2768
|
DropdownMenuPrimitive.Content,
|
|
2471
2769
|
{
|
|
2472
2770
|
ref,
|
|
@@ -2483,7 +2781,7 @@ var DropdownMenuContent = React34.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
2483
2781
|
}
|
|
2484
2782
|
) }));
|
|
2485
2783
|
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
2486
|
-
var DropdownMenuSubTrigger =
|
|
2784
|
+
var DropdownMenuSubTrigger = React36.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2487
2785
|
DropdownMenuPrimitive.SubTrigger,
|
|
2488
2786
|
{
|
|
2489
2787
|
ref,
|
|
@@ -2498,12 +2796,12 @@ var DropdownMenuSubTrigger = React34.forwardRef(({ className, inset, children, .
|
|
|
2498
2796
|
...props,
|
|
2499
2797
|
children: [
|
|
2500
2798
|
children,
|
|
2501
|
-
/* @__PURE__ */
|
|
2799
|
+
/* @__PURE__ */ jsx37(ChevronRight2, { className: "ml-auto h-3.5 w-3.5" })
|
|
2502
2800
|
]
|
|
2503
2801
|
}
|
|
2504
2802
|
));
|
|
2505
2803
|
DropdownMenuSubTrigger.displayName = "DropdownMenuSubTrigger";
|
|
2506
|
-
var DropdownMenuSubContent =
|
|
2804
|
+
var DropdownMenuSubContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
2507
2805
|
DropdownMenuPrimitive.SubContent,
|
|
2508
2806
|
{
|
|
2509
2807
|
ref,
|
|
@@ -2518,7 +2816,7 @@ var DropdownMenuSubContent = React34.forwardRef(({ className, ...props }, ref) =
|
|
|
2518
2816
|
}
|
|
2519
2817
|
));
|
|
2520
2818
|
DropdownMenuSubContent.displayName = "DropdownMenuSubContent";
|
|
2521
|
-
var DropdownMenuItem =
|
|
2819
|
+
var DropdownMenuItem = React36.forwardRef(({ className, inset, destructive, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
2522
2820
|
DropdownMenuPrimitive.Item,
|
|
2523
2821
|
{
|
|
2524
2822
|
ref,
|
|
@@ -2535,7 +2833,7 @@ var DropdownMenuItem = React34.forwardRef(({ className, inset, destructive, ...p
|
|
|
2535
2833
|
}
|
|
2536
2834
|
));
|
|
2537
2835
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
2538
|
-
var DropdownMenuCheckboxItem =
|
|
2836
|
+
var DropdownMenuCheckboxItem = React36.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2539
2837
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2540
2838
|
{
|
|
2541
2839
|
ref,
|
|
@@ -2549,13 +2847,13 @@ var DropdownMenuCheckboxItem = React34.forwardRef(({ className, children, checke
|
|
|
2549
2847
|
checked,
|
|
2550
2848
|
...props,
|
|
2551
2849
|
children: [
|
|
2552
|
-
/* @__PURE__ */
|
|
2850
|
+
/* @__PURE__ */ jsx37("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx37(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx37(Check5, { className: "h-3.5 w-3.5" }) }) }),
|
|
2553
2851
|
children
|
|
2554
2852
|
]
|
|
2555
2853
|
}
|
|
2556
2854
|
));
|
|
2557
2855
|
DropdownMenuCheckboxItem.displayName = "DropdownMenuCheckboxItem";
|
|
2558
|
-
var DropdownMenuRadioItem =
|
|
2856
|
+
var DropdownMenuRadioItem = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs17(
|
|
2559
2857
|
DropdownMenuPrimitive.RadioItem,
|
|
2560
2858
|
{
|
|
2561
2859
|
ref,
|
|
@@ -2568,13 +2866,13 @@ var DropdownMenuRadioItem = React34.forwardRef(({ className, children, ...props
|
|
|
2568
2866
|
),
|
|
2569
2867
|
...props,
|
|
2570
2868
|
children: [
|
|
2571
|
-
/* @__PURE__ */
|
|
2869
|
+
/* @__PURE__ */ jsx37("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx37(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx37("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "currentColor", children: /* @__PURE__ */ jsx37("circle", { cx: "4", cy: "4", r: "4" }) }) }) }),
|
|
2572
2870
|
children
|
|
2573
2871
|
]
|
|
2574
2872
|
}
|
|
2575
2873
|
));
|
|
2576
2874
|
DropdownMenuRadioItem.displayName = "DropdownMenuRadioItem";
|
|
2577
|
-
var DropdownMenuLabel =
|
|
2875
|
+
var DropdownMenuLabel = React36.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
2578
2876
|
DropdownMenuPrimitive.Label,
|
|
2579
2877
|
{
|
|
2580
2878
|
ref,
|
|
@@ -2587,7 +2885,7 @@ var DropdownMenuLabel = React34.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2587
2885
|
}
|
|
2588
2886
|
));
|
|
2589
2887
|
DropdownMenuLabel.displayName = "DropdownMenuLabel";
|
|
2590
|
-
var DropdownMenuSeparator =
|
|
2888
|
+
var DropdownMenuSeparator = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
2591
2889
|
DropdownMenuPrimitive.Separator,
|
|
2592
2890
|
{
|
|
2593
2891
|
ref,
|
|
@@ -2599,7 +2897,7 @@ DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
|
2599
2897
|
var DropdownMenuShortcut = ({
|
|
2600
2898
|
className,
|
|
2601
2899
|
...props
|
|
2602
|
-
}) => /* @__PURE__ */
|
|
2900
|
+
}) => /* @__PURE__ */ jsx37(
|
|
2603
2901
|
"span",
|
|
2604
2902
|
{
|
|
2605
2903
|
className: cn(
|
|
@@ -2612,14 +2910,14 @@ var DropdownMenuShortcut = ({
|
|
|
2612
2910
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2613
2911
|
|
|
2614
2912
|
// src/components/dialog/dialog.tsx
|
|
2615
|
-
import * as
|
|
2913
|
+
import * as React37 from "react";
|
|
2616
2914
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
2617
2915
|
import { X as X3 } from "lucide-react";
|
|
2618
|
-
import { jsx as
|
|
2916
|
+
import { jsx as jsx38, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2619
2917
|
var Dialog = DialogPrimitive.Root;
|
|
2620
2918
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
2621
2919
|
var DialogClose = DialogPrimitive.Close;
|
|
2622
|
-
var DialogOverlay =
|
|
2920
|
+
var DialogOverlay = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
2623
2921
|
DialogPrimitive.Overlay,
|
|
2624
2922
|
{
|
|
2625
2923
|
ref,
|
|
@@ -2633,9 +2931,9 @@ var DialogOverlay = React35.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2633
2931
|
}
|
|
2634
2932
|
));
|
|
2635
2933
|
DialogOverlay.displayName = "DialogOverlay";
|
|
2636
|
-
var DialogContent =
|
|
2637
|
-
/* @__PURE__ */
|
|
2638
|
-
/* @__PURE__ */
|
|
2934
|
+
var DialogContent = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(DialogPrimitive.Portal, { children: [
|
|
2935
|
+
/* @__PURE__ */ jsx38(DialogOverlay, {}),
|
|
2936
|
+
/* @__PURE__ */ jsxs18(
|
|
2639
2937
|
DialogPrimitive.Content,
|
|
2640
2938
|
{
|
|
2641
2939
|
ref,
|
|
@@ -2657,9 +2955,9 @@ var DialogContent = React35.forwardRef(({ className, children, ...props }, ref)
|
|
|
2657
2955
|
...props,
|
|
2658
2956
|
children: [
|
|
2659
2957
|
children,
|
|
2660
|
-
/* @__PURE__ */
|
|
2661
|
-
/* @__PURE__ */
|
|
2662
|
-
/* @__PURE__ */
|
|
2958
|
+
/* @__PURE__ */ jsxs18(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 disabled:pointer-events-none", children: [
|
|
2959
|
+
/* @__PURE__ */ jsx38(X3, { className: "h-4 w-4" }),
|
|
2960
|
+
/* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Close" })
|
|
2663
2961
|
] })
|
|
2664
2962
|
]
|
|
2665
2963
|
}
|
|
@@ -2669,7 +2967,7 @@ DialogContent.displayName = "DialogContent";
|
|
|
2669
2967
|
var DialogHeader = ({
|
|
2670
2968
|
className,
|
|
2671
2969
|
...props
|
|
2672
|
-
}) => /* @__PURE__ */
|
|
2970
|
+
}) => /* @__PURE__ */ jsx38(
|
|
2673
2971
|
"div",
|
|
2674
2972
|
{
|
|
2675
2973
|
className: cn("flex flex-col gap-1.5 text-center sm:text-left", className),
|
|
@@ -2680,7 +2978,7 @@ DialogHeader.displayName = "DialogHeader";
|
|
|
2680
2978
|
var DialogFooter = ({
|
|
2681
2979
|
className,
|
|
2682
2980
|
...props
|
|
2683
|
-
}) => /* @__PURE__ */
|
|
2981
|
+
}) => /* @__PURE__ */ jsx38(
|
|
2684
2982
|
"div",
|
|
2685
2983
|
{
|
|
2686
2984
|
className: cn(
|
|
@@ -2691,7 +2989,7 @@ var DialogFooter = ({
|
|
|
2691
2989
|
}
|
|
2692
2990
|
);
|
|
2693
2991
|
DialogFooter.displayName = "DialogFooter";
|
|
2694
|
-
var DialogTitle =
|
|
2992
|
+
var DialogTitle = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
2695
2993
|
DialogPrimitive.Title,
|
|
2696
2994
|
{
|
|
2697
2995
|
ref,
|
|
@@ -2700,7 +2998,7 @@ var DialogTitle = React35.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2700
2998
|
}
|
|
2701
2999
|
));
|
|
2702
3000
|
DialogTitle.displayName = "DialogTitle";
|
|
2703
|
-
var DialogDescription =
|
|
3001
|
+
var DialogDescription = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
2704
3002
|
DialogPrimitive.Description,
|
|
2705
3003
|
{
|
|
2706
3004
|
ref,
|
|
@@ -2714,7 +3012,7 @@ DialogDescription.displayName = "DialogDescription";
|
|
|
2714
3012
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
2715
3013
|
import { Command as Command2 } from "cmdk";
|
|
2716
3014
|
import { Search } from "lucide-react";
|
|
2717
|
-
import { jsx as
|
|
3015
|
+
import { jsx as jsx39, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2718
3016
|
function CommandPalette({
|
|
2719
3017
|
open,
|
|
2720
3018
|
onOpenChange,
|
|
@@ -2722,9 +3020,9 @@ function CommandPalette({
|
|
|
2722
3020
|
className,
|
|
2723
3021
|
children
|
|
2724
3022
|
}) {
|
|
2725
|
-
return /* @__PURE__ */
|
|
2726
|
-
/* @__PURE__ */
|
|
2727
|
-
/* @__PURE__ */
|
|
3023
|
+
return /* @__PURE__ */ jsx39(DialogPrimitive2.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxs19(DialogPrimitive2.Portal, { children: [
|
|
3024
|
+
/* @__PURE__ */ jsx39(DialogPrimitive2.Overlay, { className: "fixed inset-0 z-modal bg-[var(--color-surface-overlay)] animate-in fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0" }),
|
|
3025
|
+
/* @__PURE__ */ jsx39(
|
|
2728
3026
|
DialogPrimitive2.Content,
|
|
2729
3027
|
{
|
|
2730
3028
|
className: cn(
|
|
@@ -2733,10 +3031,10 @@ function CommandPalette({
|
|
|
2733
3031
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
2734
3032
|
className
|
|
2735
3033
|
),
|
|
2736
|
-
children: /* @__PURE__ */
|
|
2737
|
-
/* @__PURE__ */
|
|
2738
|
-
/* @__PURE__ */
|
|
2739
|
-
/* @__PURE__ */
|
|
3034
|
+
children: /* @__PURE__ */ jsxs19(Command2, { shouldFilter: true, className: "flex flex-col", children: [
|
|
3035
|
+
/* @__PURE__ */ jsxs19("div", { className: "flex items-center border-b border-[var(--color-border)] px-4", children: [
|
|
3036
|
+
/* @__PURE__ */ jsx39(Search, { className: "h-[18px] w-[18px] shrink-0 text-[var(--color-on-surface-muted)]" }),
|
|
3037
|
+
/* @__PURE__ */ jsx39(
|
|
2740
3038
|
Command2.Input,
|
|
2741
3039
|
{
|
|
2742
3040
|
placeholder,
|
|
@@ -2744,7 +3042,7 @@ function CommandPalette({
|
|
|
2744
3042
|
}
|
|
2745
3043
|
)
|
|
2746
3044
|
] }),
|
|
2747
|
-
/* @__PURE__ */
|
|
3045
|
+
/* @__PURE__ */ jsx39(Command2.List, { className: "max-h-80 overflow-auto p-2", children })
|
|
2748
3046
|
] })
|
|
2749
3047
|
}
|
|
2750
3048
|
)
|
|
@@ -2755,7 +3053,7 @@ function CommandPaletteGroup({
|
|
|
2755
3053
|
heading,
|
|
2756
3054
|
children
|
|
2757
3055
|
}) {
|
|
2758
|
-
return /* @__PURE__ */
|
|
3056
|
+
return /* @__PURE__ */ jsx39(
|
|
2759
3057
|
Command2.Group,
|
|
2760
3058
|
{
|
|
2761
3059
|
heading,
|
|
@@ -2773,7 +3071,7 @@ function CommandPaletteItem({
|
|
|
2773
3071
|
className,
|
|
2774
3072
|
children
|
|
2775
3073
|
}) {
|
|
2776
|
-
return /* @__PURE__ */
|
|
3074
|
+
return /* @__PURE__ */ jsxs19(
|
|
2777
3075
|
Command2.Item,
|
|
2778
3076
|
{
|
|
2779
3077
|
onSelect,
|
|
@@ -2785,9 +3083,9 @@ function CommandPaletteItem({
|
|
|
2785
3083
|
className
|
|
2786
3084
|
),
|
|
2787
3085
|
children: [
|
|
2788
|
-
icon && /* @__PURE__ */
|
|
2789
|
-
/* @__PURE__ */
|
|
2790
|
-
shortcut && /* @__PURE__ */
|
|
3086
|
+
icon && /* @__PURE__ */ jsx39("span", { className: "mr-2 flex h-4 w-4 items-center justify-center text-[var(--color-on-surface-muted)]", children: icon }),
|
|
3087
|
+
/* @__PURE__ */ jsx39("span", { className: "flex-1", children }),
|
|
3088
|
+
shortcut && /* @__PURE__ */ jsx39(CommandPaletteShortcut, { children: shortcut })
|
|
2791
3089
|
]
|
|
2792
3090
|
}
|
|
2793
3091
|
);
|
|
@@ -2797,7 +3095,7 @@ function CommandPaletteSeparator({
|
|
|
2797
3095
|
className,
|
|
2798
3096
|
...props
|
|
2799
3097
|
}) {
|
|
2800
|
-
return /* @__PURE__ */
|
|
3098
|
+
return /* @__PURE__ */ jsx39(
|
|
2801
3099
|
Command2.Separator,
|
|
2802
3100
|
{
|
|
2803
3101
|
className: cn("-mx-1 my-1 h-px bg-[var(--color-border)]", className),
|
|
@@ -2811,7 +3109,7 @@ function CommandPaletteEmpty({
|
|
|
2811
3109
|
children = "No results found.",
|
|
2812
3110
|
...props
|
|
2813
3111
|
}) {
|
|
2814
|
-
return /* @__PURE__ */
|
|
3112
|
+
return /* @__PURE__ */ jsx39(
|
|
2815
3113
|
Command2.Empty,
|
|
2816
3114
|
{
|
|
2817
3115
|
className: cn("px-2 py-6 text-center text-sm text-[var(--color-on-surface-muted)]", className),
|
|
@@ -2825,7 +3123,7 @@ function CommandPaletteShortcut({
|
|
|
2825
3123
|
className,
|
|
2826
3124
|
...props
|
|
2827
3125
|
}) {
|
|
2828
|
-
return /* @__PURE__ */
|
|
3126
|
+
return /* @__PURE__ */ jsx39(
|
|
2829
3127
|
"span",
|
|
2830
3128
|
{
|
|
2831
3129
|
className: cn(
|
|
@@ -2839,33 +3137,33 @@ function CommandPaletteShortcut({
|
|
|
2839
3137
|
CommandPaletteShortcut.displayName = "CommandPaletteShortcut";
|
|
2840
3138
|
|
|
2841
3139
|
// src/components/drawer/drawer.tsx
|
|
2842
|
-
import * as
|
|
3140
|
+
import * as React38 from "react";
|
|
2843
3141
|
import * as DialogPrimitive3 from "@radix-ui/react-dialog";
|
|
2844
|
-
import { cva as
|
|
3142
|
+
import { cva as cva16 } from "class-variance-authority";
|
|
2845
3143
|
import { Pin, X as X4 } from "lucide-react";
|
|
2846
|
-
import { jsx as
|
|
3144
|
+
import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2847
3145
|
var [DrawerContextProvider, useDrawerContext] = createContext2("Drawer");
|
|
2848
|
-
var DrawerStackContext =
|
|
3146
|
+
var DrawerStackContext = React38.createContext(
|
|
2849
3147
|
null
|
|
2850
3148
|
);
|
|
2851
3149
|
function DrawerProvider({ children }) {
|
|
2852
|
-
const stackRef =
|
|
2853
|
-
const [, forceUpdate] =
|
|
2854
|
-
const register =
|
|
3150
|
+
const stackRef = React38.useRef([]);
|
|
3151
|
+
const [, forceUpdate] = React38.useState(0);
|
|
3152
|
+
const register = React38.useCallback((id) => {
|
|
2855
3153
|
const level = stackRef.current.length;
|
|
2856
3154
|
stackRef.current = [...stackRef.current, { id, level }];
|
|
2857
3155
|
forceUpdate((n) => n + 1);
|
|
2858
3156
|
return level;
|
|
2859
3157
|
}, []);
|
|
2860
|
-
const unregister =
|
|
3158
|
+
const unregister = React38.useCallback((id) => {
|
|
2861
3159
|
stackRef.current = stackRef.current.filter((e) => e.id !== id);
|
|
2862
3160
|
forceUpdate((n) => n + 1);
|
|
2863
3161
|
}, []);
|
|
2864
|
-
const ctx =
|
|
3162
|
+
const ctx = React38.useMemo(
|
|
2865
3163
|
() => ({ stack: stackRef.current, register, unregister }),
|
|
2866
3164
|
[register, unregister]
|
|
2867
3165
|
);
|
|
2868
|
-
return /* @__PURE__ */
|
|
3166
|
+
return /* @__PURE__ */ jsx40(DrawerStackContext.Provider, { value: ctx, children });
|
|
2869
3167
|
}
|
|
2870
3168
|
DrawerProvider.displayName = "DrawerProvider";
|
|
2871
3169
|
function Drawer({
|
|
@@ -2877,12 +3175,12 @@ function Drawer({
|
|
|
2877
3175
|
onPinnedChange,
|
|
2878
3176
|
children
|
|
2879
3177
|
}) {
|
|
2880
|
-
return /* @__PURE__ */
|
|
3178
|
+
return /* @__PURE__ */ jsx40(DrawerContextProvider, { value: { side, pinnable, pinned, onPinnedChange }, children: /* @__PURE__ */ jsx40(DialogPrimitive3.Root, { open, onOpenChange, children }) });
|
|
2881
3179
|
}
|
|
2882
3180
|
Drawer.displayName = "Drawer";
|
|
2883
3181
|
var DrawerTrigger = DialogPrimitive3.Trigger;
|
|
2884
3182
|
var DrawerClose = DialogPrimitive3.Close;
|
|
2885
|
-
var drawerSizeVariants =
|
|
3183
|
+
var drawerSizeVariants = cva16("", {
|
|
2886
3184
|
variants: {
|
|
2887
3185
|
size: {
|
|
2888
3186
|
sm: "w-80",
|
|
@@ -2894,12 +3192,12 @@ var drawerSizeVariants = cva14("", {
|
|
|
2894
3192
|
},
|
|
2895
3193
|
defaultVariants: { size: "md" }
|
|
2896
3194
|
});
|
|
2897
|
-
var DrawerContent =
|
|
3195
|
+
var DrawerContent = React38.forwardRef(({ className, size, children, ...props }, ref) => {
|
|
2898
3196
|
const { side, pinned } = useDrawerContext();
|
|
2899
|
-
const stackCtx =
|
|
2900
|
-
const drawerId =
|
|
2901
|
-
const [level, setLevel] =
|
|
2902
|
-
|
|
3197
|
+
const stackCtx = React38.useContext(DrawerStackContext);
|
|
3198
|
+
const drawerId = React38.useId();
|
|
3199
|
+
const [level, setLevel] = React38.useState(0);
|
|
3200
|
+
React38.useEffect(() => {
|
|
2903
3201
|
if (stackCtx) {
|
|
2904
3202
|
const l = stackCtx.register(drawerId);
|
|
2905
3203
|
setLevel(l);
|
|
@@ -2908,7 +3206,7 @@ var DrawerContent = React36.forwardRef(({ className, size, children, ...props },
|
|
|
2908
3206
|
}, [stackCtx, drawerId]);
|
|
2909
3207
|
const stackOffset = stackCtx ? level * 2 : 0;
|
|
2910
3208
|
if (pinned) {
|
|
2911
|
-
return /* @__PURE__ */
|
|
3209
|
+
return /* @__PURE__ */ jsx40(
|
|
2912
3210
|
"div",
|
|
2913
3211
|
{
|
|
2914
3212
|
className: cn(
|
|
@@ -2921,8 +3219,8 @@ var DrawerContent = React36.forwardRef(({ className, size, children, ...props },
|
|
|
2921
3219
|
}
|
|
2922
3220
|
);
|
|
2923
3221
|
}
|
|
2924
|
-
return /* @__PURE__ */
|
|
2925
|
-
/* @__PURE__ */
|
|
3222
|
+
return /* @__PURE__ */ jsxs20(DialogPrimitive3.Portal, { children: [
|
|
3223
|
+
/* @__PURE__ */ jsx40(
|
|
2926
3224
|
DialogPrimitive3.Overlay,
|
|
2927
3225
|
{
|
|
2928
3226
|
className: cn(
|
|
@@ -2933,7 +3231,7 @@ var DrawerContent = React36.forwardRef(({ className, size, children, ...props },
|
|
|
2933
3231
|
style: { zIndex: 200 + stackOffset }
|
|
2934
3232
|
}
|
|
2935
3233
|
),
|
|
2936
|
-
/* @__PURE__ */
|
|
3234
|
+
/* @__PURE__ */ jsx40(
|
|
2937
3235
|
DialogPrimitive3.Content,
|
|
2938
3236
|
{
|
|
2939
3237
|
ref,
|
|
@@ -2947,15 +3245,15 @@ var DrawerContent = React36.forwardRef(({ className, size, children, ...props },
|
|
|
2947
3245
|
),
|
|
2948
3246
|
style: { zIndex: 201 + stackOffset },
|
|
2949
3247
|
...props,
|
|
2950
|
-
children: /* @__PURE__ */
|
|
3248
|
+
children: /* @__PURE__ */ jsx40("div", { className: "flex h-full flex-col", children })
|
|
2951
3249
|
}
|
|
2952
3250
|
)
|
|
2953
3251
|
] });
|
|
2954
3252
|
});
|
|
2955
3253
|
DrawerContent.displayName = "DrawerContent";
|
|
2956
|
-
var DrawerHeader =
|
|
3254
|
+
var DrawerHeader = React38.forwardRef(({ className, ...props }, ref) => {
|
|
2957
3255
|
const { pinnable, pinned, onPinnedChange } = useDrawerContext();
|
|
2958
|
-
return /* @__PURE__ */
|
|
3256
|
+
return /* @__PURE__ */ jsxs20(
|
|
2959
3257
|
"div",
|
|
2960
3258
|
{
|
|
2961
3259
|
ref,
|
|
@@ -2965,9 +3263,9 @@ var DrawerHeader = React36.forwardRef(({ className, ...props }, ref) => {
|
|
|
2965
3263
|
),
|
|
2966
3264
|
...props,
|
|
2967
3265
|
children: [
|
|
2968
|
-
/* @__PURE__ */
|
|
2969
|
-
/* @__PURE__ */
|
|
2970
|
-
pinnable && /* @__PURE__ */
|
|
3266
|
+
/* @__PURE__ */ jsx40("div", { className: "flex-1", children: props.children }),
|
|
3267
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-1", children: [
|
|
3268
|
+
pinnable && /* @__PURE__ */ jsx40(
|
|
2971
3269
|
"button",
|
|
2972
3270
|
{
|
|
2973
3271
|
type: "button",
|
|
@@ -2977,12 +3275,12 @@ var DrawerHeader = React36.forwardRef(({ className, ...props }, ref) => {
|
|
|
2977
3275
|
pinned ? "opacity-100 text-primary-500" : "opacity-50"
|
|
2978
3276
|
),
|
|
2979
3277
|
"aria-label": pinned ? "Unpin drawer" : "Pin drawer",
|
|
2980
|
-
children: /* @__PURE__ */
|
|
3278
|
+
children: /* @__PURE__ */ jsx40(Pin, { className: "h-4 w-4", fill: pinned ? "currentColor" : "none" })
|
|
2981
3279
|
}
|
|
2982
3280
|
),
|
|
2983
|
-
/* @__PURE__ */
|
|
2984
|
-
/* @__PURE__ */
|
|
2985
|
-
/* @__PURE__ */
|
|
3281
|
+
/* @__PURE__ */ jsxs20(DialogPrimitive3.Close, { className: "rounded-sm p-1 opacity-50 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500", children: [
|
|
3282
|
+
/* @__PURE__ */ jsx40(X4, { className: "h-4 w-4" }),
|
|
3283
|
+
/* @__PURE__ */ jsx40("span", { className: "sr-only", children: "Close" })
|
|
2986
3284
|
] })
|
|
2987
3285
|
] })
|
|
2988
3286
|
]
|
|
@@ -2990,7 +3288,7 @@ var DrawerHeader = React36.forwardRef(({ className, ...props }, ref) => {
|
|
|
2990
3288
|
);
|
|
2991
3289
|
});
|
|
2992
3290
|
DrawerHeader.displayName = "DrawerHeader";
|
|
2993
|
-
var DrawerTitle =
|
|
3291
|
+
var DrawerTitle = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
2994
3292
|
DialogPrimitive3.Title,
|
|
2995
3293
|
{
|
|
2996
3294
|
ref,
|
|
@@ -2999,7 +3297,7 @@ var DrawerTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2999
3297
|
}
|
|
3000
3298
|
));
|
|
3001
3299
|
DrawerTitle.displayName = "DrawerTitle";
|
|
3002
|
-
var DrawerDescription =
|
|
3300
|
+
var DrawerDescription = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
3003
3301
|
DialogPrimitive3.Description,
|
|
3004
3302
|
{
|
|
3005
3303
|
ref,
|
|
@@ -3008,7 +3306,7 @@ var DrawerDescription = React36.forwardRef(({ className, ...props }, ref) => /*
|
|
|
3008
3306
|
}
|
|
3009
3307
|
));
|
|
3010
3308
|
DrawerDescription.displayName = "DrawerDescription";
|
|
3011
|
-
var DrawerFooter =
|
|
3309
|
+
var DrawerFooter = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
3012
3310
|
"div",
|
|
3013
3311
|
{
|
|
3014
3312
|
ref,
|
|
@@ -3022,11 +3320,11 @@ var DrawerFooter = React36.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
3022
3320
|
DrawerFooter.displayName = "DrawerFooter";
|
|
3023
3321
|
|
|
3024
3322
|
// src/components/app-shell/app-shell.tsx
|
|
3025
|
-
import * as
|
|
3323
|
+
import * as React39 from "react";
|
|
3026
3324
|
import { Menu } from "lucide-react";
|
|
3027
|
-
import { jsx as
|
|
3325
|
+
import { jsx as jsx41, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3028
3326
|
var [AppShellProvider, useAppShell] = createContext2("AppShell");
|
|
3029
|
-
var AppShell =
|
|
3327
|
+
var AppShell = React39.forwardRef(
|
|
3030
3328
|
({
|
|
3031
3329
|
className,
|
|
3032
3330
|
sidebarCollapsed: controlledCollapsed,
|
|
@@ -3038,11 +3336,11 @@ var AppShell = React37.forwardRef(
|
|
|
3038
3336
|
...props
|
|
3039
3337
|
}, ref) => {
|
|
3040
3338
|
const { isMobile } = useBreakpoint();
|
|
3041
|
-
const [internalCollapsed, setInternalCollapsed] =
|
|
3042
|
-
const [mobileSidebarOpen, setMobileSidebarOpen] =
|
|
3339
|
+
const [internalCollapsed, setInternalCollapsed] = React39.useState(false);
|
|
3340
|
+
const [mobileSidebarOpen, setMobileSidebarOpen] = React39.useState(false);
|
|
3043
3341
|
const collapsed = controlledCollapsed ?? internalCollapsed;
|
|
3044
3342
|
const setCollapsed = onSidebarCollapsedChange ?? setInternalCollapsed;
|
|
3045
|
-
return /* @__PURE__ */
|
|
3343
|
+
return /* @__PURE__ */ jsx41(
|
|
3046
3344
|
AppShellProvider,
|
|
3047
3345
|
{
|
|
3048
3346
|
value: {
|
|
@@ -3053,7 +3351,7 @@ var AppShell = React37.forwardRef(
|
|
|
3053
3351
|
mobileSidebarOpen,
|
|
3054
3352
|
setMobileSidebarOpen
|
|
3055
3353
|
},
|
|
3056
|
-
children: /* @__PURE__ */
|
|
3354
|
+
children: /* @__PURE__ */ jsx41(
|
|
3057
3355
|
"div",
|
|
3058
3356
|
{
|
|
3059
3357
|
ref,
|
|
@@ -3071,20 +3369,20 @@ var AppShell = React37.forwardRef(
|
|
|
3071
3369
|
}
|
|
3072
3370
|
);
|
|
3073
3371
|
AppShell.displayName = "AppShell";
|
|
3074
|
-
var AppShellSidebar =
|
|
3372
|
+
var AppShellSidebar = React39.forwardRef(({ className, children, ...props }, ref) => {
|
|
3075
3373
|
const { sidebarCollapsed, isMobile, mobileSidebarOpen, setMobileSidebarOpen } = useAppShell();
|
|
3076
3374
|
if (isMobile) {
|
|
3077
|
-
return /* @__PURE__ */
|
|
3375
|
+
return /* @__PURE__ */ jsx41(
|
|
3078
3376
|
Drawer,
|
|
3079
3377
|
{
|
|
3080
3378
|
open: mobileSidebarOpen,
|
|
3081
3379
|
onOpenChange: setMobileSidebarOpen,
|
|
3082
3380
|
side: "left",
|
|
3083
|
-
children: /* @__PURE__ */
|
|
3381
|
+
children: /* @__PURE__ */ jsx41(DrawerContent, { size: "sm", className, children })
|
|
3084
3382
|
}
|
|
3085
3383
|
);
|
|
3086
3384
|
}
|
|
3087
|
-
return /* @__PURE__ */
|
|
3385
|
+
return /* @__PURE__ */ jsx41(
|
|
3088
3386
|
"aside",
|
|
3089
3387
|
{
|
|
3090
3388
|
ref,
|
|
@@ -3101,9 +3399,9 @@ var AppShellSidebar = React37.forwardRef(({ className, children, ...props }, ref
|
|
|
3101
3399
|
);
|
|
3102
3400
|
});
|
|
3103
3401
|
AppShellSidebar.displayName = "AppShellSidebar";
|
|
3104
|
-
var AppShellHeader =
|
|
3402
|
+
var AppShellHeader = React39.forwardRef(({ className, children, ...props }, ref) => {
|
|
3105
3403
|
const { isMobile, setMobileSidebarOpen } = useAppShell();
|
|
3106
|
-
return /* @__PURE__ */
|
|
3404
|
+
return /* @__PURE__ */ jsxs21(
|
|
3107
3405
|
"header",
|
|
3108
3406
|
{
|
|
3109
3407
|
ref,
|
|
@@ -3113,14 +3411,14 @@ var AppShellHeader = React37.forwardRef(({ className, children, ...props }, ref)
|
|
|
3113
3411
|
),
|
|
3114
3412
|
...props,
|
|
3115
3413
|
children: [
|
|
3116
|
-
isMobile && /* @__PURE__ */
|
|
3414
|
+
isMobile && /* @__PURE__ */ jsx41(
|
|
3117
3415
|
"button",
|
|
3118
3416
|
{
|
|
3119
3417
|
type: "button",
|
|
3120
3418
|
onClick: () => setMobileSidebarOpen(true),
|
|
3121
3419
|
className: "rounded-md p-1.5 hover:bg-[var(--color-surface-muted)] transition-colors touch:min-h-[--touch-target-min] touch:min-w-[--touch-target-min] flex items-center justify-center",
|
|
3122
3420
|
"aria-label": "Open menu",
|
|
3123
|
-
children: /* @__PURE__ */
|
|
3421
|
+
children: /* @__PURE__ */ jsx41(Menu, { className: "h-5 w-5" })
|
|
3124
3422
|
}
|
|
3125
3423
|
),
|
|
3126
3424
|
children
|
|
@@ -3129,9 +3427,9 @@ var AppShellHeader = React37.forwardRef(({ className, children, ...props }, ref)
|
|
|
3129
3427
|
);
|
|
3130
3428
|
});
|
|
3131
3429
|
AppShellHeader.displayName = "AppShellHeader";
|
|
3132
|
-
var AppShellContent =
|
|
3430
|
+
var AppShellContent = React39.forwardRef(({ className, ...props }, ref) => {
|
|
3133
3431
|
const { withBottomNav } = useAppShell();
|
|
3134
|
-
return /* @__PURE__ */
|
|
3432
|
+
return /* @__PURE__ */ jsx41(
|
|
3135
3433
|
"main",
|
|
3136
3434
|
{
|
|
3137
3435
|
ref,
|
|
@@ -3145,7 +3443,7 @@ var AppShellContent = React37.forwardRef(({ className, ...props }, ref) => {
|
|
|
3145
3443
|
);
|
|
3146
3444
|
});
|
|
3147
3445
|
AppShellContent.displayName = "AppShellContent";
|
|
3148
|
-
var AppShellFooter =
|
|
3446
|
+
var AppShellFooter = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3149
3447
|
"footer",
|
|
3150
3448
|
{
|
|
3151
3449
|
ref,
|
|
@@ -3159,9 +3457,9 @@ var AppShellFooter = React37.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
3159
3457
|
AppShellFooter.displayName = "AppShellFooter";
|
|
3160
3458
|
|
|
3161
3459
|
// src/components/bottom-navigation/bottom-navigation.tsx
|
|
3162
|
-
import * as
|
|
3163
|
-
import { jsx as
|
|
3164
|
-
var BottomNavigation =
|
|
3460
|
+
import * as React40 from "react";
|
|
3461
|
+
import { jsx as jsx42, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3462
|
+
var BottomNavigation = React40.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
|
|
3165
3463
|
"nav",
|
|
3166
3464
|
{
|
|
3167
3465
|
ref,
|
|
@@ -3174,7 +3472,7 @@ var BottomNavigation = React38.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
3174
3472
|
}
|
|
3175
3473
|
));
|
|
3176
3474
|
BottomNavigation.displayName = "BottomNavigation";
|
|
3177
|
-
var BottomNavigationItem =
|
|
3475
|
+
var BottomNavigationItem = React40.forwardRef(({ className, icon, label, active = false, ...props }, ref) => /* @__PURE__ */ jsxs22(
|
|
3178
3476
|
"button",
|
|
3179
3477
|
{
|
|
3180
3478
|
ref,
|
|
@@ -3186,18 +3484,18 @@ var BottomNavigationItem = React38.forwardRef(({ className, icon, label, active
|
|
|
3186
3484
|
"aria-current": active ? "page" : void 0,
|
|
3187
3485
|
...props,
|
|
3188
3486
|
children: [
|
|
3189
|
-
/* @__PURE__ */
|
|
3190
|
-
/* @__PURE__ */
|
|
3487
|
+
/* @__PURE__ */ jsx42("span", { className: "flex h-6 w-6 items-center justify-center", children: icon }),
|
|
3488
|
+
/* @__PURE__ */ jsx42("span", { children: label })
|
|
3191
3489
|
]
|
|
3192
3490
|
}
|
|
3193
3491
|
));
|
|
3194
3492
|
BottomNavigationItem.displayName = "BottomNavigationItem";
|
|
3195
3493
|
|
|
3196
3494
|
// src/components/offline-indicator/offline-indicator.tsx
|
|
3197
|
-
import * as
|
|
3495
|
+
import * as React41 from "react";
|
|
3198
3496
|
import { WifiOff } from "lucide-react";
|
|
3199
|
-
import { jsx as
|
|
3200
|
-
var OfflineIndicator =
|
|
3497
|
+
import { jsx as jsx43, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3498
|
+
var OfflineIndicator = React41.forwardRef(
|
|
3201
3499
|
({
|
|
3202
3500
|
className,
|
|
3203
3501
|
isOffline,
|
|
@@ -3205,7 +3503,7 @@ var OfflineIndicator = React39.forwardRef(
|
|
|
3205
3503
|
...props
|
|
3206
3504
|
}, ref) => {
|
|
3207
3505
|
if (!isOffline) return null;
|
|
3208
|
-
return /* @__PURE__ */
|
|
3506
|
+
return /* @__PURE__ */ jsxs23(
|
|
3209
3507
|
"div",
|
|
3210
3508
|
{
|
|
3211
3509
|
ref,
|
|
@@ -3216,7 +3514,7 @@ var OfflineIndicator = React39.forwardRef(
|
|
|
3216
3514
|
),
|
|
3217
3515
|
...props,
|
|
3218
3516
|
children: [
|
|
3219
|
-
/* @__PURE__ */
|
|
3517
|
+
/* @__PURE__ */ jsx43(WifiOff, { className: "mr-2 h-3.5 w-3.5 shrink-0", "aria-hidden": "true" }),
|
|
3220
3518
|
message
|
|
3221
3519
|
]
|
|
3222
3520
|
}
|
|
@@ -3226,9 +3524,9 @@ var OfflineIndicator = React39.forwardRef(
|
|
|
3226
3524
|
OfflineIndicator.displayName = "OfflineIndicator";
|
|
3227
3525
|
|
|
3228
3526
|
// src/components/install-prompt/install-prompt.tsx
|
|
3229
|
-
import * as
|
|
3230
|
-
import { jsx as
|
|
3231
|
-
var InstallPrompt =
|
|
3527
|
+
import * as React42 from "react";
|
|
3528
|
+
import { jsx as jsx44, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3529
|
+
var InstallPrompt = React42.forwardRef(
|
|
3232
3530
|
({
|
|
3233
3531
|
className,
|
|
3234
3532
|
canInstall,
|
|
@@ -3241,7 +3539,7 @@ var InstallPrompt = React40.forwardRef(
|
|
|
3241
3539
|
...props
|
|
3242
3540
|
}, ref) => {
|
|
3243
3541
|
if (!canInstall) return null;
|
|
3244
|
-
return /* @__PURE__ */
|
|
3542
|
+
return /* @__PURE__ */ jsx44(
|
|
3245
3543
|
"div",
|
|
3246
3544
|
{
|
|
3247
3545
|
ref,
|
|
@@ -3252,12 +3550,12 @@ var InstallPrompt = React40.forwardRef(
|
|
|
3252
3550
|
className
|
|
3253
3551
|
),
|
|
3254
3552
|
...props,
|
|
3255
|
-
children: /* @__PURE__ */
|
|
3256
|
-
/* @__PURE__ */
|
|
3257
|
-
/* @__PURE__ */
|
|
3258
|
-
/* @__PURE__ */
|
|
3259
|
-
/* @__PURE__ */
|
|
3260
|
-
/* @__PURE__ */
|
|
3553
|
+
children: /* @__PURE__ */ jsxs24("div", { className: "mx-auto max-w-md", children: [
|
|
3554
|
+
/* @__PURE__ */ jsx44("p", { className: "text-sm font-semibold text-[var(--color-on-surface)]", children: title }),
|
|
3555
|
+
/* @__PURE__ */ jsx44("p", { className: "mt-1 text-xs text-[var(--color-on-surface-muted)]", children: description }),
|
|
3556
|
+
/* @__PURE__ */ jsxs24("div", { className: "mt-3 flex gap-2", children: [
|
|
3557
|
+
/* @__PURE__ */ jsx44(Button, { size: "sm", onClick: onInstall, className: "flex-1", children: installLabel }),
|
|
3558
|
+
/* @__PURE__ */ jsx44(
|
|
3261
3559
|
Button,
|
|
3262
3560
|
{
|
|
3263
3561
|
size: "sm",
|
|
@@ -3276,17 +3574,17 @@ var InstallPrompt = React40.forwardRef(
|
|
|
3276
3574
|
InstallPrompt.displayName = "InstallPrompt";
|
|
3277
3575
|
|
|
3278
3576
|
// src/components/pull-to-refresh/pull-to-refresh.tsx
|
|
3279
|
-
import * as
|
|
3577
|
+
import * as React43 from "react";
|
|
3280
3578
|
import { ArrowDown } from "lucide-react";
|
|
3281
|
-
import { jsx as
|
|
3282
|
-
var PullToRefresh =
|
|
3579
|
+
import { jsx as jsx45, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3580
|
+
var PullToRefresh = React43.forwardRef(
|
|
3283
3581
|
({ className, onRefresh, threshold = 80, disabled = false, children, ...props }, ref) => {
|
|
3284
|
-
const [pullDistance, setPullDistance] =
|
|
3285
|
-
const [isRefreshing, setIsRefreshing] =
|
|
3286
|
-
const startYRef =
|
|
3287
|
-
const containerRef =
|
|
3288
|
-
|
|
3289
|
-
const handleTouchStart =
|
|
3582
|
+
const [pullDistance, setPullDistance] = React43.useState(0);
|
|
3583
|
+
const [isRefreshing, setIsRefreshing] = React43.useState(false);
|
|
3584
|
+
const startYRef = React43.useRef(0);
|
|
3585
|
+
const containerRef = React43.useRef(null);
|
|
3586
|
+
React43.useImperativeHandle(ref, () => containerRef.current);
|
|
3587
|
+
const handleTouchStart = React43.useCallback(
|
|
3290
3588
|
(e) => {
|
|
3291
3589
|
if (disabled || isRefreshing) return;
|
|
3292
3590
|
const container = containerRef.current;
|
|
@@ -3296,7 +3594,7 @@ var PullToRefresh = React41.forwardRef(
|
|
|
3296
3594
|
},
|
|
3297
3595
|
[disabled, isRefreshing]
|
|
3298
3596
|
);
|
|
3299
|
-
const handleTouchMove =
|
|
3597
|
+
const handleTouchMove = React43.useCallback(
|
|
3300
3598
|
(e) => {
|
|
3301
3599
|
if (disabled || isRefreshing || startYRef.current === 0) return;
|
|
3302
3600
|
const distance = Math.max(
|
|
@@ -3309,7 +3607,7 @@ var PullToRefresh = React41.forwardRef(
|
|
|
3309
3607
|
},
|
|
3310
3608
|
[disabled, isRefreshing, threshold]
|
|
3311
3609
|
);
|
|
3312
|
-
const handleTouchEnd =
|
|
3610
|
+
const handleTouchEnd = React43.useCallback(async () => {
|
|
3313
3611
|
if (disabled || isRefreshing) return;
|
|
3314
3612
|
if (pullDistance >= threshold) {
|
|
3315
3613
|
setIsRefreshing(true);
|
|
@@ -3324,7 +3622,7 @@ var PullToRefresh = React41.forwardRef(
|
|
|
3324
3622
|
}, [disabled, isRefreshing, pullDistance, threshold, onRefresh]);
|
|
3325
3623
|
const indicatorOpacity = Math.min(pullDistance / threshold, 1);
|
|
3326
3624
|
const shouldTrigger = pullDistance >= threshold;
|
|
3327
|
-
return /* @__PURE__ */
|
|
3625
|
+
return /* @__PURE__ */ jsxs25(
|
|
3328
3626
|
"div",
|
|
3329
3627
|
{
|
|
3330
3628
|
ref: containerRef,
|
|
@@ -3334,18 +3632,18 @@ var PullToRefresh = React41.forwardRef(
|
|
|
3334
3632
|
onTouchEnd: handleTouchEnd,
|
|
3335
3633
|
...props,
|
|
3336
3634
|
children: [
|
|
3337
|
-
/* @__PURE__ */
|
|
3635
|
+
/* @__PURE__ */ jsx45(
|
|
3338
3636
|
"div",
|
|
3339
3637
|
{
|
|
3340
3638
|
className: "flex items-center justify-center overflow-hidden transition-[height] duration-normal",
|
|
3341
3639
|
style: { height: isRefreshing ? threshold * 0.6 : pullDistance },
|
|
3342
3640
|
"aria-hidden": "true",
|
|
3343
|
-
children: /* @__PURE__ */
|
|
3641
|
+
children: /* @__PURE__ */ jsx45(
|
|
3344
3642
|
"div",
|
|
3345
3643
|
{
|
|
3346
3644
|
className: "transition-opacity",
|
|
3347
3645
|
style: { opacity: isRefreshing ? 1 : indicatorOpacity },
|
|
3348
|
-
children: isRefreshing ? /* @__PURE__ */
|
|
3646
|
+
children: isRefreshing ? /* @__PURE__ */ jsx45(Spinner, { size: "sm" }) : /* @__PURE__ */ jsx45(
|
|
3349
3647
|
ArrowDown,
|
|
3350
3648
|
{
|
|
3351
3649
|
className: cn(
|
|
@@ -3367,10 +3665,10 @@ var PullToRefresh = React41.forwardRef(
|
|
|
3367
3665
|
PullToRefresh.displayName = "PullToRefresh";
|
|
3368
3666
|
|
|
3369
3667
|
// src/components/print/print-document.tsx
|
|
3370
|
-
import * as
|
|
3371
|
-
import { cva as
|
|
3372
|
-
import { jsx as
|
|
3373
|
-
var printDocumentVariants =
|
|
3668
|
+
import * as React44 from "react";
|
|
3669
|
+
import { cva as cva17 } from "class-variance-authority";
|
|
3670
|
+
import { jsx as jsx46, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
3671
|
+
var printDocumentVariants = cva17(
|
|
3374
3672
|
[
|
|
3375
3673
|
"bg-white text-neutral-900",
|
|
3376
3674
|
"flex flex-col",
|
|
@@ -3398,8 +3696,8 @@ var printDocumentVariants = cva15(
|
|
|
3398
3696
|
}
|
|
3399
3697
|
}
|
|
3400
3698
|
);
|
|
3401
|
-
var PrintDocument =
|
|
3402
|
-
({ className, size, orientation, padding = "20mm", style, children, ...props }, ref) => /* @__PURE__ */
|
|
3699
|
+
var PrintDocument = React44.forwardRef(
|
|
3700
|
+
({ className, size, orientation, padding = "20mm", style, children, ...props }, ref) => /* @__PURE__ */ jsx46(
|
|
3403
3701
|
"div",
|
|
3404
3702
|
{
|
|
3405
3703
|
ref,
|
|
@@ -3418,25 +3716,25 @@ var PrintDocument = React42.forwardRef(
|
|
|
3418
3716
|
)
|
|
3419
3717
|
);
|
|
3420
3718
|
PrintDocument.displayName = "PrintDocument";
|
|
3421
|
-
var PrintHeader =
|
|
3422
|
-
({ className, logo, title, subtitle, meta, children, ...props }, ref) => /* @__PURE__ */
|
|
3423
|
-
/* @__PURE__ */
|
|
3424
|
-
/* @__PURE__ */
|
|
3425
|
-
/* @__PURE__ */
|
|
3426
|
-
logo && /* @__PURE__ */
|
|
3427
|
-
/* @__PURE__ */
|
|
3428
|
-
title && /* @__PURE__ */
|
|
3429
|
-
subtitle && /* @__PURE__ */
|
|
3719
|
+
var PrintHeader = React44.forwardRef(
|
|
3720
|
+
({ className, logo, title, subtitle, meta, children, ...props }, ref) => /* @__PURE__ */ jsxs26("div", { ref, className: cn("mb-6", className), ...props, children: [
|
|
3721
|
+
/* @__PURE__ */ jsx46("div", { className: "h-1 bg-primary-400 rounded-full mb-5" }),
|
|
3722
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-start justify-between pb-4 border-b border-neutral-200", children: [
|
|
3723
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3", children: [
|
|
3724
|
+
logo && /* @__PURE__ */ jsx46("div", { className: "shrink-0", children: logo }),
|
|
3725
|
+
/* @__PURE__ */ jsxs26("div", { children: [
|
|
3726
|
+
title && /* @__PURE__ */ jsx46("h1", { className: "text-2xl font-bold text-neutral-900 leading-tight", children: title }),
|
|
3727
|
+
subtitle && /* @__PURE__ */ jsx46("p", { className: "text-[8pt] font-medium tracking-widest uppercase text-neutral-400 mt-0.5", children: subtitle })
|
|
3430
3728
|
] })
|
|
3431
3729
|
] }),
|
|
3432
|
-
meta && /* @__PURE__ */
|
|
3730
|
+
meta && /* @__PURE__ */ jsx46("div", { className: "text-right text-[9pt] text-neutral-600 leading-relaxed", children: meta }),
|
|
3433
3731
|
children
|
|
3434
3732
|
] })
|
|
3435
3733
|
] })
|
|
3436
3734
|
);
|
|
3437
3735
|
PrintHeader.displayName = "PrintHeader";
|
|
3438
|
-
var PrintFooter =
|
|
3439
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
3736
|
+
var PrintFooter = React44.forwardRef(
|
|
3737
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx46(
|
|
3440
3738
|
"div",
|
|
3441
3739
|
{
|
|
3442
3740
|
ref,
|
|
@@ -3449,10 +3747,10 @@ var PrintFooter = React42.forwardRef(
|
|
|
3449
3747
|
PrintFooter.displayName = "PrintFooter";
|
|
3450
3748
|
|
|
3451
3749
|
// src/components/print/print-table.tsx
|
|
3452
|
-
import * as
|
|
3453
|
-
import { jsx as
|
|
3454
|
-
var PrintTable =
|
|
3455
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3750
|
+
import * as React45 from "react";
|
|
3751
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3752
|
+
var PrintTable = React45.forwardRef(
|
|
3753
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
3456
3754
|
"table",
|
|
3457
3755
|
{
|
|
3458
3756
|
ref,
|
|
@@ -3462,20 +3760,20 @@ var PrintTable = React43.forwardRef(
|
|
|
3462
3760
|
)
|
|
3463
3761
|
);
|
|
3464
3762
|
PrintTable.displayName = "PrintTable";
|
|
3465
|
-
var PrintTableHeader =
|
|
3466
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3763
|
+
var PrintTableHeader = React45.forwardRef(
|
|
3764
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx47("thead", { ref, className: cn("", className), ...props })
|
|
3467
3765
|
);
|
|
3468
3766
|
PrintTableHeader.displayName = "PrintTableHeader";
|
|
3469
|
-
var PrintTableBody =
|
|
3470
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3767
|
+
var PrintTableBody = React45.forwardRef(
|
|
3768
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx47("tbody", { ref, className: cn("", className), ...props })
|
|
3471
3769
|
);
|
|
3472
3770
|
PrintTableBody.displayName = "PrintTableBody";
|
|
3473
|
-
var PrintTableFooter =
|
|
3474
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3771
|
+
var PrintTableFooter = React45.forwardRef(
|
|
3772
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx47("tfoot", { ref, className: cn("", className), ...props })
|
|
3475
3773
|
);
|
|
3476
3774
|
PrintTableFooter.displayName = "PrintTableFooter";
|
|
3477
|
-
var PrintTableRow =
|
|
3478
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3775
|
+
var PrintTableRow = React45.forwardRef(
|
|
3776
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
3479
3777
|
"tr",
|
|
3480
3778
|
{
|
|
3481
3779
|
ref,
|
|
@@ -3485,8 +3783,8 @@ var PrintTableRow = React43.forwardRef(
|
|
|
3485
3783
|
)
|
|
3486
3784
|
);
|
|
3487
3785
|
PrintTableRow.displayName = "PrintTableRow";
|
|
3488
|
-
var PrintTableHead =
|
|
3489
|
-
({ className, align = "left", ...props }, ref) => /* @__PURE__ */
|
|
3786
|
+
var PrintTableHead = React45.forwardRef(
|
|
3787
|
+
({ className, align = "left", ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
3490
3788
|
"th",
|
|
3491
3789
|
{
|
|
3492
3790
|
ref,
|
|
@@ -3502,8 +3800,8 @@ var PrintTableHead = React43.forwardRef(
|
|
|
3502
3800
|
)
|
|
3503
3801
|
);
|
|
3504
3802
|
PrintTableHead.displayName = "PrintTableHead";
|
|
3505
|
-
var PrintTableCell =
|
|
3506
|
-
({ className, align = "left", ...props }, ref) => /* @__PURE__ */
|
|
3803
|
+
var PrintTableCell = React45.forwardRef(
|
|
3804
|
+
({ className, align = "left", ...props }, ref) => /* @__PURE__ */ jsx47(
|
|
3507
3805
|
"td",
|
|
3508
3806
|
{
|
|
3509
3807
|
ref,
|
|
@@ -3521,17 +3819,17 @@ var PrintTableCell = React43.forwardRef(
|
|
|
3521
3819
|
PrintTableCell.displayName = "PrintTableCell";
|
|
3522
3820
|
|
|
3523
3821
|
// src/components/print/print-field.tsx
|
|
3524
|
-
import * as
|
|
3525
|
-
import { cva as
|
|
3526
|
-
import { jsx as
|
|
3527
|
-
var PrintField =
|
|
3528
|
-
({ className, label, value, children, ...props }, ref) => /* @__PURE__ */
|
|
3529
|
-
/* @__PURE__ */
|
|
3530
|
-
/* @__PURE__ */
|
|
3822
|
+
import * as React46 from "react";
|
|
3823
|
+
import { cva as cva18 } from "class-variance-authority";
|
|
3824
|
+
import { jsx as jsx48, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
3825
|
+
var PrintField = React46.forwardRef(
|
|
3826
|
+
({ className, label, value, children, ...props }, ref) => /* @__PURE__ */ jsxs27("div", { ref, className: cn("", className), ...props, children: [
|
|
3827
|
+
/* @__PURE__ */ jsx48("dt", { className: "text-[8pt] font-medium text-neutral-500 mb-0.5", children: label }),
|
|
3828
|
+
/* @__PURE__ */ jsx48("dd", { className: "text-[9pt] text-neutral-900", children: value ?? children })
|
|
3531
3829
|
] })
|
|
3532
3830
|
);
|
|
3533
3831
|
PrintField.displayName = "PrintField";
|
|
3534
|
-
var printFieldGroupVariants =
|
|
3832
|
+
var printFieldGroupVariants = cva18("grid gap-x-6 gap-y-2", {
|
|
3535
3833
|
variants: {
|
|
3536
3834
|
columns: {
|
|
3537
3835
|
1: "grid-cols-1",
|
|
@@ -3544,8 +3842,8 @@ var printFieldGroupVariants = cva16("grid gap-x-6 gap-y-2", {
|
|
|
3544
3842
|
columns: 2
|
|
3545
3843
|
}
|
|
3546
3844
|
});
|
|
3547
|
-
var PrintFieldGroup =
|
|
3548
|
-
({ className, columns, ...props }, ref) => /* @__PURE__ */
|
|
3845
|
+
var PrintFieldGroup = React46.forwardRef(
|
|
3846
|
+
({ className, columns, ...props }, ref) => /* @__PURE__ */ jsx48(
|
|
3549
3847
|
"dl",
|
|
3550
3848
|
{
|
|
3551
3849
|
ref,
|
|
@@ -3557,10 +3855,10 @@ var PrintFieldGroup = React44.forwardRef(
|
|
|
3557
3855
|
PrintFieldGroup.displayName = "PrintFieldGroup";
|
|
3558
3856
|
|
|
3559
3857
|
// src/components/print/print-divider.tsx
|
|
3560
|
-
import * as
|
|
3561
|
-
import { jsx as
|
|
3562
|
-
var PrintDivider =
|
|
3563
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3858
|
+
import * as React47 from "react";
|
|
3859
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
3860
|
+
var PrintDivider = React47.forwardRef(
|
|
3861
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
3564
3862
|
"hr",
|
|
3565
3863
|
{
|
|
3566
3864
|
ref,
|
|
@@ -3572,9 +3870,9 @@ var PrintDivider = React45.forwardRef(
|
|
|
3572
3870
|
PrintDivider.displayName = "PrintDivider";
|
|
3573
3871
|
|
|
3574
3872
|
// src/components/stat-card/stat-card.tsx
|
|
3575
|
-
import * as
|
|
3873
|
+
import * as React48 from "react";
|
|
3576
3874
|
import { ChevronUp as ChevronUp2, ChevronDown as ChevronDown3 } from "lucide-react";
|
|
3577
|
-
import { jsx as
|
|
3875
|
+
import { jsx as jsx50, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3578
3876
|
function inferDirection(trend) {
|
|
3579
3877
|
if (!trend) return "neutral";
|
|
3580
3878
|
if (trend.startsWith("+")) return "up";
|
|
@@ -3591,10 +3889,10 @@ var TREND_ICON_COMPONENTS = {
|
|
|
3591
3889
|
down: ChevronDown3,
|
|
3592
3890
|
neutral: null
|
|
3593
3891
|
};
|
|
3594
|
-
var StatCard =
|
|
3892
|
+
var StatCard = React48.forwardRef(
|
|
3595
3893
|
({ className, label, value, trend, trendDirection, icon, ...props }, ref) => {
|
|
3596
3894
|
const direction = trendDirection ?? inferDirection(trend);
|
|
3597
|
-
return /* @__PURE__ */
|
|
3895
|
+
return /* @__PURE__ */ jsxs28(
|
|
3598
3896
|
"div",
|
|
3599
3897
|
{
|
|
3600
3898
|
ref,
|
|
@@ -3604,16 +3902,16 @@ var StatCard = React46.forwardRef(
|
|
|
3604
3902
|
),
|
|
3605
3903
|
...props,
|
|
3606
3904
|
children: [
|
|
3607
|
-
/* @__PURE__ */
|
|
3608
|
-
/* @__PURE__ */
|
|
3609
|
-
icon && /* @__PURE__ */
|
|
3905
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between", children: [
|
|
3906
|
+
/* @__PURE__ */ jsx50("p", { className: "text-xs font-medium text-[var(--color-on-surface-muted)] uppercase tracking-wider", children: label }),
|
|
3907
|
+
icon && /* @__PURE__ */ jsx50("span", { className: "text-[var(--color-on-surface-muted)]", children: icon })
|
|
3610
3908
|
] }),
|
|
3611
|
-
/* @__PURE__ */
|
|
3612
|
-
/* @__PURE__ */
|
|
3613
|
-
trend && /* @__PURE__ */
|
|
3909
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-baseline gap-2 mt-2", children: [
|
|
3910
|
+
/* @__PURE__ */ jsx50("span", { className: "text-xl sm:text-2xl font-bold tabular-nums", children: value }),
|
|
3911
|
+
trend && /* @__PURE__ */ jsxs28("span", { className: cn("inline-flex items-center gap-0.5 text-xs font-medium", TREND_STYLES[direction]), children: [
|
|
3614
3912
|
(() => {
|
|
3615
3913
|
const TrendIcon = TREND_ICON_COMPONENTS[direction];
|
|
3616
|
-
return TrendIcon ? /* @__PURE__ */
|
|
3914
|
+
return TrendIcon ? /* @__PURE__ */ jsx50(TrendIcon, { className: "h-3 w-3", strokeWidth: 2.5 }) : null;
|
|
3617
3915
|
})(),
|
|
3618
3916
|
trend
|
|
3619
3917
|
] })
|
|
@@ -3626,10 +3924,10 @@ var StatCard = React46.forwardRef(
|
|
|
3626
3924
|
StatCard.displayName = "StatCard";
|
|
3627
3925
|
|
|
3628
3926
|
// src/components/chart-container/chart-container.tsx
|
|
3629
|
-
import * as
|
|
3630
|
-
import { jsx as
|
|
3631
|
-
var ChartContainer =
|
|
3632
|
-
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */
|
|
3927
|
+
import * as React49 from "react";
|
|
3928
|
+
import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
3929
|
+
var ChartContainer = React49.forwardRef(
|
|
3930
|
+
({ className, title, description, actions, children, ...props }, ref) => /* @__PURE__ */ jsxs29(
|
|
3633
3931
|
"div",
|
|
3634
3932
|
{
|
|
3635
3933
|
ref,
|
|
@@ -3639,14 +3937,14 @@ var ChartContainer = React47.forwardRef(
|
|
|
3639
3937
|
),
|
|
3640
3938
|
...props,
|
|
3641
3939
|
children: [
|
|
3642
|
-
/* @__PURE__ */
|
|
3643
|
-
/* @__PURE__ */
|
|
3644
|
-
/* @__PURE__ */
|
|
3645
|
-
description && /* @__PURE__ */
|
|
3940
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2 sm:gap-4 p-4 sm:p-5 pb-0", children: [
|
|
3941
|
+
/* @__PURE__ */ jsxs29("div", { children: [
|
|
3942
|
+
/* @__PURE__ */ jsx51("h3", { className: "text-sm font-semibold leading-none tracking-tight", children: title }),
|
|
3943
|
+
description && /* @__PURE__ */ jsx51("p", { className: "mt-1 text-xs text-[var(--color-on-surface-muted)]", children: description })
|
|
3646
3944
|
] }),
|
|
3647
|
-
actions && /* @__PURE__ */
|
|
3945
|
+
actions && /* @__PURE__ */ jsx51("div", { className: "flex items-center gap-2 shrink-0", children: actions })
|
|
3648
3946
|
] }),
|
|
3649
|
-
/* @__PURE__ */
|
|
3947
|
+
/* @__PURE__ */ jsx51("div", { className: "p-4 sm:p-5", children })
|
|
3650
3948
|
]
|
|
3651
3949
|
}
|
|
3652
3950
|
)
|
|
@@ -3759,7 +4057,7 @@ function getChartTheme() {
|
|
|
3759
4057
|
}
|
|
3760
4058
|
|
|
3761
4059
|
// src/components/chart/chart-tooltip.tsx
|
|
3762
|
-
import { jsx as
|
|
4060
|
+
import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
3763
4061
|
var ChartTooltip = ({
|
|
3764
4062
|
active,
|
|
3765
4063
|
payload,
|
|
@@ -3770,7 +4068,7 @@ var ChartTooltip = ({
|
|
|
3770
4068
|
}) => {
|
|
3771
4069
|
if (!active || !payload?.length) return null;
|
|
3772
4070
|
const displayLabel = labelFormatter ? labelFormatter(String(label)) : label;
|
|
3773
|
-
return /* @__PURE__ */
|
|
4071
|
+
return /* @__PURE__ */ jsxs30(
|
|
3774
4072
|
"div",
|
|
3775
4073
|
{
|
|
3776
4074
|
className: cn(
|
|
@@ -3779,17 +4077,17 @@ var ChartTooltip = ({
|
|
|
3779
4077
|
className
|
|
3780
4078
|
),
|
|
3781
4079
|
children: [
|
|
3782
|
-
displayLabel && /* @__PURE__ */
|
|
3783
|
-
/* @__PURE__ */
|
|
3784
|
-
/* @__PURE__ */
|
|
4080
|
+
displayLabel && /* @__PURE__ */ jsx52("p", { className: "font-medium text-[var(--color-on-surface)] mb-1", children: displayLabel }),
|
|
4081
|
+
/* @__PURE__ */ jsx52("div", { className: "flex flex-col gap-0.5", children: payload.map((entry, i) => /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
|
|
4082
|
+
/* @__PURE__ */ jsx52(
|
|
3785
4083
|
"span",
|
|
3786
4084
|
{
|
|
3787
4085
|
className: "inline-block h-2.5 w-2.5 shrink-0 rounded-full",
|
|
3788
4086
|
style: { backgroundColor: entry.color }
|
|
3789
4087
|
}
|
|
3790
4088
|
),
|
|
3791
|
-
/* @__PURE__ */
|
|
3792
|
-
/* @__PURE__ */
|
|
4089
|
+
/* @__PURE__ */ jsx52("span", { className: "text-[var(--color-on-surface-muted)]", children: entry.name }),
|
|
4090
|
+
/* @__PURE__ */ jsx52("span", { className: "ml-auto font-medium tabular-nums text-[var(--color-on-surface)]", children: formatter ? formatter(entry.value, entry.name) : entry.value.toLocaleString() })
|
|
3793
4091
|
] }, i)) })
|
|
3794
4092
|
]
|
|
3795
4093
|
}
|
|
@@ -3798,21 +4096,21 @@ var ChartTooltip = ({
|
|
|
3798
4096
|
ChartTooltip.displayName = "ChartTooltip";
|
|
3799
4097
|
|
|
3800
4098
|
// src/components/chart/chart-legend.tsx
|
|
3801
|
-
import { jsx as
|
|
4099
|
+
import { jsx as jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
3802
4100
|
var ChartLegend = ({
|
|
3803
4101
|
payload,
|
|
3804
4102
|
className
|
|
3805
4103
|
}) => {
|
|
3806
4104
|
if (!payload?.length) return null;
|
|
3807
|
-
return /* @__PURE__ */
|
|
3808
|
-
/* @__PURE__ */
|
|
4105
|
+
return /* @__PURE__ */ jsx53("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 pt-3", className), children: payload.map((entry, i) => /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1.5 text-xs text-[var(--color-on-surface-muted)]", children: [
|
|
4106
|
+
/* @__PURE__ */ jsx53(
|
|
3809
4107
|
"span",
|
|
3810
4108
|
{
|
|
3811
4109
|
className: "inline-block h-2.5 w-2.5 shrink-0 rounded-full",
|
|
3812
4110
|
style: { backgroundColor: entry.color }
|
|
3813
4111
|
}
|
|
3814
4112
|
),
|
|
3815
|
-
/* @__PURE__ */
|
|
4113
|
+
/* @__PURE__ */ jsx53("span", { children: entry.value })
|
|
3816
4114
|
] }, i)) });
|
|
3817
4115
|
};
|
|
3818
4116
|
ChartLegend.displayName = "ChartLegend";
|
|
@@ -3928,6 +4226,7 @@ export {
|
|
|
3928
4226
|
PrintTableHead,
|
|
3929
4227
|
PrintTableHeader,
|
|
3930
4228
|
PrintTableRow,
|
|
4229
|
+
Progress,
|
|
3931
4230
|
PullToRefresh,
|
|
3932
4231
|
RadioGroup,
|
|
3933
4232
|
RadioGroupItem,
|
|
@@ -3943,6 +4242,7 @@ export {
|
|
|
3943
4242
|
Skeleton,
|
|
3944
4243
|
Spinner,
|
|
3945
4244
|
StatCard,
|
|
4245
|
+
Stepper,
|
|
3946
4246
|
Switch,
|
|
3947
4247
|
Table,
|
|
3948
4248
|
TableBody,
|
|
@@ -3984,7 +4284,9 @@ export {
|
|
|
3984
4284
|
inputVariants,
|
|
3985
4285
|
printDocumentVariants,
|
|
3986
4286
|
printFieldGroupVariants,
|
|
4287
|
+
progressVariants,
|
|
3987
4288
|
spinnerVariants,
|
|
4289
|
+
stepIndicatorVariants,
|
|
3988
4290
|
switchVariants,
|
|
3989
4291
|
textareaVariants,
|
|
3990
4292
|
toast,
|