@northslopetech/altitude-ui 2.0.17 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -16
- package/dist/index.d.mts +164 -176
- package/dist/index.d.ts +164 -176
- package/dist/index.js +506 -367
- package/dist/index.mjs +444 -316
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1654,7 +1654,7 @@ var Logout = ({
|
|
|
1654
1654
|
// src/components/ui/select.tsx
|
|
1655
1655
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1656
1656
|
var selectTriggerVariants = cva4(
|
|
1657
|
-
"flex items-center justify-between border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 transition-colors rounded-md px-3",
|
|
1657
|
+
"flex items-center justify-between border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 transition-colors rounded-md px-3 border-secondary focus-visible:border-2 focus-visible:border-strong aria-invalid:border-error aria-invalid:focus-visible:border-error",
|
|
1658
1658
|
{
|
|
1659
1659
|
variants: {
|
|
1660
1660
|
width: {
|
|
@@ -1699,7 +1699,7 @@ var SelectTrigger = React3.forwardRef(({ className, children, style, width, ...p
|
|
|
1699
1699
|
ref,
|
|
1700
1700
|
className: cn(
|
|
1701
1701
|
selectTriggerVariants({ width }),
|
|
1702
|
-
"
|
|
1702
|
+
"data-[state=open]:[&_svg]:rotate-180 data-[placeholder]:text-secondary h-10 py-2",
|
|
1703
1703
|
className
|
|
1704
1704
|
),
|
|
1705
1705
|
style: tokenStyles,
|
|
@@ -1810,135 +1810,276 @@ var SelectSeparator = React3.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
1810
1810
|
));
|
|
1811
1811
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
1812
1812
|
|
|
1813
|
-
// src/components/ui/
|
|
1814
|
-
import
|
|
1815
|
-
import {
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
const labelId = `${fieldId}-label`;
|
|
1832
|
-
if (compact) {
|
|
1833
|
-
return /* @__PURE__ */ jsxs4("div", { ref, className: cn("w-full space-y-2", className), ...props, children: [
|
|
1834
|
-
/* @__PURE__ */ jsxs4("div", { className: "relative", children: [
|
|
1835
|
-
React4.cloneElement(
|
|
1836
|
-
children,
|
|
1837
|
-
{
|
|
1838
|
-
id: fieldId,
|
|
1839
|
-
"aria-labelledby": label ? labelId : void 0,
|
|
1840
|
-
"aria-describedby": helperText ? helperTextId : void 0,
|
|
1841
|
-
"aria-required": required,
|
|
1842
|
-
"aria-invalid": error,
|
|
1843
|
-
className: cn(
|
|
1844
|
-
"pt-7 pb-2 h-14 items-end",
|
|
1845
|
-
error ? "border-2 border-error-500 focus:border-error-500" : "",
|
|
1846
|
-
children.props.className
|
|
1847
|
-
)
|
|
1848
|
-
}
|
|
1849
|
-
),
|
|
1850
|
-
label && /* @__PURE__ */ jsx4(
|
|
1851
|
-
"label",
|
|
1852
|
-
{
|
|
1853
|
-
id: labelId,
|
|
1854
|
-
htmlFor: fieldId,
|
|
1855
|
-
className: "absolute left-3 top-2 text-xs text-semantic-text-info [font:var(--typography-label-xs-bold)] pointer-events-none",
|
|
1856
|
-
children: label
|
|
1857
|
-
}
|
|
1858
|
-
)
|
|
1859
|
-
] }),
|
|
1860
|
-
helperText && /* @__PURE__ */ jsx4(
|
|
1861
|
-
Typography,
|
|
1862
|
-
{
|
|
1863
|
-
variant: "body-xs",
|
|
1864
|
-
id: helperTextId,
|
|
1865
|
-
className: cn(
|
|
1866
|
-
error ? "text-semantic-text-error" : "text-semantic-text-secondary"
|
|
1867
|
-
),
|
|
1868
|
-
children: helperText
|
|
1869
|
-
}
|
|
1870
|
-
)
|
|
1871
|
-
] });
|
|
1872
|
-
}
|
|
1873
|
-
return /* @__PURE__ */ jsxs4("div", { ref, className: cn("w-full space-y-3", className), ...props, children: [
|
|
1874
|
-
(label || required) && /* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between", children: [
|
|
1875
|
-
label && /* @__PURE__ */ jsx4(
|
|
1876
|
-
"label",
|
|
1877
|
-
{
|
|
1878
|
-
id: labelId,
|
|
1879
|
-
htmlFor: fieldId,
|
|
1880
|
-
className: "text-semantic-text-primary [font:var(--typography-label-sm-regular)]",
|
|
1881
|
-
children: label
|
|
1882
|
-
}
|
|
1883
|
-
),
|
|
1884
|
-
required && /* @__PURE__ */ jsx4("span", { className: "text-semantic-text-secondary [font:var(--typography-label-xs-regular)]", children: "*required" })
|
|
1885
|
-
] }),
|
|
1886
|
-
React4.cloneElement(
|
|
1887
|
-
children,
|
|
1888
|
-
{
|
|
1889
|
-
id: fieldId,
|
|
1890
|
-
"aria-labelledby": label ? labelId : void 0,
|
|
1891
|
-
"aria-describedby": helperText ? helperTextId : void 0,
|
|
1892
|
-
"aria-required": required,
|
|
1893
|
-
"aria-invalid": error,
|
|
1894
|
-
className: cn(
|
|
1895
|
-
error ? "border-2 border-error-500 focus:border-error-500" : "",
|
|
1896
|
-
children.props.className
|
|
1897
|
-
)
|
|
1898
|
-
}
|
|
1813
|
+
// src/components/ui/field.tsx
|
|
1814
|
+
import { useMemo } from "react";
|
|
1815
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
1816
|
+
|
|
1817
|
+
// src/components/ui/label.tsx
|
|
1818
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
1819
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
1820
|
+
function Label2({
|
|
1821
|
+
className,
|
|
1822
|
+
...props
|
|
1823
|
+
}) {
|
|
1824
|
+
return /* @__PURE__ */ jsx4(
|
|
1825
|
+
LabelPrimitive.Root,
|
|
1826
|
+
{
|
|
1827
|
+
"data-slot": "label",
|
|
1828
|
+
className: cn(
|
|
1829
|
+
"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
|
|
1830
|
+
className
|
|
1899
1831
|
),
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
id: helperTextId,
|
|
1905
|
-
className: cn(
|
|
1906
|
-
error ? "text-semantic-text-error" : "text-semantic-text-secondary"
|
|
1907
|
-
),
|
|
1908
|
-
children: helperText
|
|
1909
|
-
}
|
|
1910
|
-
)
|
|
1911
|
-
] });
|
|
1912
|
-
}
|
|
1913
|
-
);
|
|
1914
|
-
FormField.displayName = "FormField";
|
|
1832
|
+
...props
|
|
1833
|
+
}
|
|
1834
|
+
);
|
|
1835
|
+
}
|
|
1915
1836
|
|
|
1916
|
-
// src/components/ui/
|
|
1917
|
-
import * as
|
|
1918
|
-
import
|
|
1837
|
+
// src/components/ui/separator.tsx
|
|
1838
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
1839
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
1840
|
+
function Separator2({
|
|
1841
|
+
className,
|
|
1842
|
+
orientation = "horizontal",
|
|
1843
|
+
decorative = true,
|
|
1844
|
+
...props
|
|
1845
|
+
}) {
|
|
1846
|
+
return /* @__PURE__ */ jsx5(
|
|
1847
|
+
SeparatorPrimitive.Root,
|
|
1848
|
+
{
|
|
1849
|
+
"data-slot": "separator",
|
|
1850
|
+
decorative,
|
|
1851
|
+
orientation,
|
|
1852
|
+
className: cn(
|
|
1853
|
+
"bg-subtle shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
|
|
1854
|
+
className
|
|
1855
|
+
),
|
|
1856
|
+
...props
|
|
1857
|
+
}
|
|
1858
|
+
);
|
|
1859
|
+
}
|
|
1919
1860
|
|
|
1920
|
-
// src/components/ui/
|
|
1921
|
-
import
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1861
|
+
// src/components/ui/field.tsx
|
|
1862
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1863
|
+
function FieldSet({ className, ...props }) {
|
|
1864
|
+
return /* @__PURE__ */ jsx6(
|
|
1865
|
+
"fieldset",
|
|
1866
|
+
{
|
|
1867
|
+
"data-slot": "field-set",
|
|
1868
|
+
className: cn(
|
|
1869
|
+
"flex flex-col gap-6",
|
|
1870
|
+
"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
|
|
1871
|
+
className
|
|
1872
|
+
),
|
|
1873
|
+
...props
|
|
1874
|
+
}
|
|
1875
|
+
);
|
|
1876
|
+
}
|
|
1877
|
+
function FieldLegend({
|
|
1878
|
+
className,
|
|
1879
|
+
variant = "legend",
|
|
1880
|
+
...props
|
|
1881
|
+
}) {
|
|
1882
|
+
return /* @__PURE__ */ jsx6(
|
|
1883
|
+
"legend",
|
|
1884
|
+
{
|
|
1885
|
+
"data-slot": "field-legend",
|
|
1886
|
+
"data-variant": variant,
|
|
1887
|
+
className: cn(
|
|
1888
|
+
"mb-3 font-medium",
|
|
1889
|
+
"data-[variant=legend]:text-base",
|
|
1890
|
+
"data-[variant=label]:text-sm",
|
|
1891
|
+
className
|
|
1892
|
+
),
|
|
1893
|
+
...props
|
|
1894
|
+
}
|
|
1895
|
+
);
|
|
1896
|
+
}
|
|
1897
|
+
function FieldGroup({ className, ...props }) {
|
|
1898
|
+
return /* @__PURE__ */ jsx6(
|
|
1899
|
+
"div",
|
|
1900
|
+
{
|
|
1901
|
+
"data-slot": "field-group",
|
|
1902
|
+
className: cn(
|
|
1903
|
+
"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",
|
|
1904
|
+
className
|
|
1905
|
+
),
|
|
1906
|
+
...props
|
|
1907
|
+
}
|
|
1908
|
+
);
|
|
1909
|
+
}
|
|
1910
|
+
var fieldVariants = cva5(
|
|
1911
|
+
"group/field data-[invalid=true]:text-error flex w-full gap-3",
|
|
1926
1912
|
{
|
|
1927
1913
|
variants: {
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1914
|
+
orientation: {
|
|
1915
|
+
vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
|
|
1916
|
+
horizontal: [
|
|
1917
|
+
"flex-row items-center",
|
|
1918
|
+
"[&>[data-slot=field-label]]:flex-auto",
|
|
1919
|
+
"has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start"
|
|
1920
|
+
],
|
|
1921
|
+
responsive: [
|
|
1922
|
+
"@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto",
|
|
1923
|
+
"@md/field-group:[&>[data-slot=field-label]]:flex-auto",
|
|
1924
|
+
"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
|
|
1925
|
+
]
|
|
1931
1926
|
}
|
|
1932
1927
|
},
|
|
1933
1928
|
defaultVariants: {
|
|
1934
|
-
|
|
1929
|
+
orientation: "vertical"
|
|
1935
1930
|
}
|
|
1936
1931
|
}
|
|
1937
1932
|
);
|
|
1938
|
-
|
|
1933
|
+
function Field({
|
|
1934
|
+
className,
|
|
1935
|
+
orientation = "vertical",
|
|
1936
|
+
...props
|
|
1937
|
+
}) {
|
|
1938
|
+
return /* @__PURE__ */ jsx6(
|
|
1939
|
+
"div",
|
|
1940
|
+
{
|
|
1941
|
+
role: "group",
|
|
1942
|
+
"data-slot": "field",
|
|
1943
|
+
"data-orientation": orientation,
|
|
1944
|
+
className: cn(fieldVariants({ orientation }), className),
|
|
1945
|
+
...props
|
|
1946
|
+
}
|
|
1947
|
+
);
|
|
1948
|
+
}
|
|
1949
|
+
function FieldContent({ className, ...props }) {
|
|
1950
|
+
return /* @__PURE__ */ jsx6(
|
|
1951
|
+
"div",
|
|
1952
|
+
{
|
|
1953
|
+
"data-slot": "field-content",
|
|
1954
|
+
className: cn(
|
|
1955
|
+
"group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
|
|
1956
|
+
className
|
|
1957
|
+
),
|
|
1958
|
+
...props
|
|
1959
|
+
}
|
|
1960
|
+
);
|
|
1961
|
+
}
|
|
1962
|
+
function FieldLabel({
|
|
1963
|
+
className,
|
|
1964
|
+
...props
|
|
1965
|
+
}) {
|
|
1966
|
+
return /* @__PURE__ */ jsx6(
|
|
1967
|
+
Label2,
|
|
1968
|
+
{
|
|
1969
|
+
"data-slot": "field-label",
|
|
1970
|
+
className: cn(
|
|
1971
|
+
"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
|
|
1972
|
+
"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>[data-slot=field]]:p-4",
|
|
1973
|
+
"has-data-[state=checked]:bg-gray has-data-[state=checked]:border-dark",
|
|
1974
|
+
className
|
|
1975
|
+
),
|
|
1976
|
+
...props
|
|
1977
|
+
}
|
|
1978
|
+
);
|
|
1979
|
+
}
|
|
1980
|
+
function FieldTitle({ className, ...props }) {
|
|
1981
|
+
return /* @__PURE__ */ jsx6(
|
|
1982
|
+
"div",
|
|
1983
|
+
{
|
|
1984
|
+
"data-slot": "field-label",
|
|
1985
|
+
className: cn(
|
|
1986
|
+
"flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50",
|
|
1987
|
+
className
|
|
1988
|
+
),
|
|
1989
|
+
...props
|
|
1990
|
+
}
|
|
1991
|
+
);
|
|
1992
|
+
}
|
|
1993
|
+
function FieldDescription({ className, ...props }) {
|
|
1994
|
+
return /* @__PURE__ */ jsx6(
|
|
1995
|
+
"p",
|
|
1996
|
+
{
|
|
1997
|
+
"data-slot": "field-description",
|
|
1998
|
+
className: cn(
|
|
1999
|
+
"text-secondary text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
|
|
2000
|
+
"nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5",
|
|
2001
|
+
"[&>a:hover]:text-dark [&>a]:underline [&>a]:underline-offset-4",
|
|
2002
|
+
className
|
|
2003
|
+
),
|
|
2004
|
+
...props
|
|
2005
|
+
}
|
|
2006
|
+
);
|
|
2007
|
+
}
|
|
2008
|
+
function FieldSeparator({
|
|
2009
|
+
children,
|
|
2010
|
+
className,
|
|
2011
|
+
...props
|
|
2012
|
+
}) {
|
|
2013
|
+
return /* @__PURE__ */ jsxs4(
|
|
2014
|
+
"div",
|
|
2015
|
+
{
|
|
2016
|
+
"data-slot": "field-separator",
|
|
2017
|
+
"data-content": !!children,
|
|
2018
|
+
className: cn(
|
|
2019
|
+
"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
|
|
2020
|
+
className
|
|
2021
|
+
),
|
|
2022
|
+
...props,
|
|
2023
|
+
children: [
|
|
2024
|
+
/* @__PURE__ */ jsx6(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
2025
|
+
children && /* @__PURE__ */ jsx6(
|
|
2026
|
+
"span",
|
|
2027
|
+
{
|
|
2028
|
+
className: "bg-light text-secondary relative mx-auto block w-fit px-2",
|
|
2029
|
+
"data-slot": "field-separator-content",
|
|
2030
|
+
children
|
|
2031
|
+
}
|
|
2032
|
+
)
|
|
2033
|
+
]
|
|
2034
|
+
}
|
|
2035
|
+
);
|
|
2036
|
+
}
|
|
2037
|
+
function FieldError({
|
|
2038
|
+
className,
|
|
2039
|
+
children,
|
|
2040
|
+
errors,
|
|
2041
|
+
...props
|
|
2042
|
+
}) {
|
|
2043
|
+
const content = useMemo(() => {
|
|
2044
|
+
if (children) {
|
|
2045
|
+
return children;
|
|
2046
|
+
}
|
|
2047
|
+
if (!errors) {
|
|
2048
|
+
return null;
|
|
2049
|
+
}
|
|
2050
|
+
if (errors?.length === 1 && errors[0]?.message) {
|
|
2051
|
+
return errors[0].message;
|
|
2052
|
+
}
|
|
2053
|
+
return /* @__PURE__ */ jsx6("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
2054
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx6("li", { children: error.message }, index)
|
|
2055
|
+
) });
|
|
2056
|
+
}, [children, errors]);
|
|
2057
|
+
if (!content) {
|
|
2058
|
+
return null;
|
|
2059
|
+
}
|
|
2060
|
+
return /* @__PURE__ */ jsx6(
|
|
2061
|
+
"div",
|
|
2062
|
+
{
|
|
2063
|
+
role: "alert",
|
|
2064
|
+
"data-slot": "field-error",
|
|
2065
|
+
className: cn("text-error text-sm font-normal", className),
|
|
2066
|
+
...props,
|
|
2067
|
+
children: content
|
|
2068
|
+
}
|
|
2069
|
+
);
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
// src/components/ui/date-picker.tsx
|
|
2073
|
+
import * as React5 from "react";
|
|
2074
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
2075
|
+
|
|
2076
|
+
// src/components/ui/input.tsx
|
|
2077
|
+
import * as React4 from "react";
|
|
2078
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2079
|
+
var inputBaseStyles = "flex h-10 py-2 w-full border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 transition-colors rounded-md px-3 min-w-80 placeholder:text-secondary read-only:bg-gray read-only:cursor-default read-only:border-transparent read-only:text-secondary read-only:focus-visible:border-transparent border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:border-error";
|
|
2080
|
+
var Input = React4.forwardRef(
|
|
1939
2081
|
({
|
|
1940
2082
|
className,
|
|
1941
|
-
variant = "input",
|
|
1942
2083
|
style,
|
|
1943
2084
|
value,
|
|
1944
2085
|
onChange,
|
|
@@ -1947,7 +2088,7 @@ var Input = React5.forwardRef(
|
|
|
1947
2088
|
readOnly,
|
|
1948
2089
|
...props
|
|
1949
2090
|
}, ref) => {
|
|
1950
|
-
const [internalValue, setInternalValue] =
|
|
2091
|
+
const [internalValue, setInternalValue] = React4.useState(value || "");
|
|
1951
2092
|
const isControlled = value !== void 0;
|
|
1952
2093
|
const currentValue = isControlled ? value : internalValue;
|
|
1953
2094
|
const showClear = showClearProp !== false && currentValue && currentValue.toString().length > 0 && !readOnly;
|
|
@@ -1960,15 +2101,7 @@ var Input = React5.forwardRef(
|
|
|
1960
2101
|
if (!isControlled) {
|
|
1961
2102
|
setInternalValue(e.target.value);
|
|
1962
2103
|
}
|
|
1963
|
-
if (
|
|
1964
|
-
onChange(e);
|
|
1965
|
-
}
|
|
1966
|
-
};
|
|
1967
|
-
const handleTextareaChange = (e) => {
|
|
1968
|
-
if (!isControlled) {
|
|
1969
|
-
setInternalValue(e.target.value);
|
|
1970
|
-
}
|
|
1971
|
-
if (variant === "textarea" && onChange) {
|
|
2104
|
+
if (onChange) {
|
|
1972
2105
|
onChange(e);
|
|
1973
2106
|
}
|
|
1974
2107
|
};
|
|
@@ -1977,60 +2110,20 @@ var Input = React5.forwardRef(
|
|
|
1977
2110
|
setInternalValue("");
|
|
1978
2111
|
}
|
|
1979
2112
|
if (onChange) {
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
onChange(inputEvent);
|
|
1986
|
-
} else {
|
|
1987
|
-
const textareaEvent = {
|
|
1988
|
-
target: { value: "" },
|
|
1989
|
-
currentTarget: { value: "" }
|
|
1990
|
-
};
|
|
1991
|
-
onChange(
|
|
1992
|
-
textareaEvent
|
|
1993
|
-
);
|
|
1994
|
-
}
|
|
2113
|
+
const inputEvent = {
|
|
2114
|
+
target: { value: "" },
|
|
2115
|
+
currentTarget: { value: "" }
|
|
2116
|
+
};
|
|
2117
|
+
onChange(inputEvent);
|
|
1995
2118
|
}
|
|
1996
2119
|
onClear?.();
|
|
1997
2120
|
};
|
|
1998
|
-
if (variant === "textarea") {
|
|
1999
|
-
return /* @__PURE__ */ jsxs5("div", { className: "relative", children: [
|
|
2000
|
-
/* @__PURE__ */ jsx5(
|
|
2001
|
-
"textarea",
|
|
2002
|
-
{
|
|
2003
|
-
className: cn(
|
|
2004
|
-
inputVariants({ variant }),
|
|
2005
|
-
(showClear || showLock) && "pr-10",
|
|
2006
|
-
className
|
|
2007
|
-
),
|
|
2008
|
-
style: tokenStyles,
|
|
2009
|
-
ref,
|
|
2010
|
-
value: currentValue,
|
|
2011
|
-
onChange: handleTextareaChange,
|
|
2012
|
-
readOnly,
|
|
2013
|
-
...props
|
|
2014
|
-
}
|
|
2015
|
-
),
|
|
2016
|
-
showClear && /* @__PURE__ */ jsx5(
|
|
2017
|
-
"button",
|
|
2018
|
-
{
|
|
2019
|
-
type: "button",
|
|
2020
|
-
onClick: handleClear,
|
|
2021
|
-
className: "absolute right-3 top-3 h-4 w-4 text-secondary hover:text-dark transition-colors",
|
|
2022
|
-
children: /* @__PURE__ */ jsx5(X, { className: "h-4 w-4" })
|
|
2023
|
-
}
|
|
2024
|
-
),
|
|
2025
|
-
showLock && /* @__PURE__ */ jsx5(Lock, { className: "absolute right-3 top-3 h-4 w-4 text-secondary" })
|
|
2026
|
-
] });
|
|
2027
|
-
}
|
|
2028
2121
|
return /* @__PURE__ */ jsxs5("div", { className: "relative", children: [
|
|
2029
|
-
/* @__PURE__ */
|
|
2122
|
+
/* @__PURE__ */ jsx7(
|
|
2030
2123
|
"input",
|
|
2031
2124
|
{
|
|
2032
2125
|
className: cn(
|
|
2033
|
-
|
|
2126
|
+
inputBaseStyles,
|
|
2034
2127
|
(showClear || showLock) && "pr-10",
|
|
2035
2128
|
className
|
|
2036
2129
|
),
|
|
@@ -2042,24 +2135,23 @@ var Input = React5.forwardRef(
|
|
|
2042
2135
|
...props
|
|
2043
2136
|
}
|
|
2044
2137
|
),
|
|
2045
|
-
showClear && /* @__PURE__ */
|
|
2138
|
+
showClear && /* @__PURE__ */ jsx7(
|
|
2046
2139
|
"button",
|
|
2047
2140
|
{
|
|
2048
2141
|
type: "button",
|
|
2049
2142
|
onClick: handleClear,
|
|
2050
2143
|
className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary hover:text-dark transition-colors",
|
|
2051
|
-
children: /* @__PURE__ */
|
|
2144
|
+
children: /* @__PURE__ */ jsx7(X, { className: "h-4 w-4" })
|
|
2052
2145
|
}
|
|
2053
2146
|
),
|
|
2054
|
-
showLock && /* @__PURE__ */
|
|
2147
|
+
showLock && /* @__PURE__ */ jsx7(Lock, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary" })
|
|
2055
2148
|
] });
|
|
2056
2149
|
}
|
|
2057
2150
|
);
|
|
2058
2151
|
Input.displayName = "Input";
|
|
2059
|
-
var TypedInput = Input;
|
|
2060
2152
|
|
|
2061
2153
|
// src/components/ui/date-picker.tsx
|
|
2062
|
-
import { jsx as
|
|
2154
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2063
2155
|
var getDayNames = () => {
|
|
2064
2156
|
const days = [];
|
|
2065
2157
|
for (let i = 0; i < 7; i++) {
|
|
@@ -2095,7 +2187,7 @@ var formatDateInput = (date) => {
|
|
|
2095
2187
|
day: "2-digit"
|
|
2096
2188
|
});
|
|
2097
2189
|
};
|
|
2098
|
-
var DatePicker =
|
|
2190
|
+
var DatePicker = React5.forwardRef(
|
|
2099
2191
|
({
|
|
2100
2192
|
value,
|
|
2101
2193
|
onValueChange,
|
|
@@ -2114,19 +2206,19 @@ var DatePicker = React6.forwardRef(
|
|
|
2114
2206
|
if (isNaN(parsed.getTime())) return void 0;
|
|
2115
2207
|
return parsed;
|
|
2116
2208
|
};
|
|
2117
|
-
const [selectedDate, setSelectedDate] =
|
|
2209
|
+
const [selectedDate, setSelectedDate] = React5.useState(
|
|
2118
2210
|
value || parseDate(defaultValue)
|
|
2119
2211
|
);
|
|
2120
|
-
const [currentMonth, setCurrentMonth] =
|
|
2212
|
+
const [currentMonth, setCurrentMonth] = React5.useState(() => {
|
|
2121
2213
|
const date = value || parseDate(defaultValue) || /* @__PURE__ */ new Date();
|
|
2122
2214
|
return new Date(date.getFullYear(), date.getMonth());
|
|
2123
2215
|
});
|
|
2124
|
-
const [open, setOpen] =
|
|
2125
|
-
const [inputValue, setInputValue] =
|
|
2216
|
+
const [open, setOpen] = React5.useState(false);
|
|
2217
|
+
const [inputValue, setInputValue] = React5.useState(() => {
|
|
2126
2218
|
const initialDate = value || parseDate(defaultValue);
|
|
2127
2219
|
return initialDate ? formatDateInput(initialDate) : "";
|
|
2128
2220
|
});
|
|
2129
|
-
|
|
2221
|
+
React5.useEffect(() => {
|
|
2130
2222
|
setSelectedDate(value);
|
|
2131
2223
|
if (value) {
|
|
2132
2224
|
setCurrentMonth(new Date(value.getFullYear(), value.getMonth()));
|
|
@@ -2137,7 +2229,7 @@ var DatePicker = React6.forwardRef(
|
|
|
2137
2229
|
setInputValue("");
|
|
2138
2230
|
}
|
|
2139
2231
|
}, [value]);
|
|
2140
|
-
|
|
2232
|
+
React5.useEffect(() => {
|
|
2141
2233
|
if (value) return;
|
|
2142
2234
|
const parsedDefault = parseDate(defaultValue);
|
|
2143
2235
|
if (!parsedDefault) return;
|
|
@@ -2267,8 +2359,8 @@ var DatePicker = React6.forwardRef(
|
|
|
2267
2359
|
onOpenChange: disabled ? void 0 : setOpen,
|
|
2268
2360
|
children: [
|
|
2269
2361
|
/* @__PURE__ */ jsxs6("div", { className: "relative", children: [
|
|
2270
|
-
/* @__PURE__ */
|
|
2271
|
-
|
|
2362
|
+
/* @__PURE__ */ jsx8(
|
|
2363
|
+
Input,
|
|
2272
2364
|
{
|
|
2273
2365
|
ref,
|
|
2274
2366
|
value: inputValue,
|
|
@@ -2280,7 +2372,7 @@ var DatePicker = React6.forwardRef(
|
|
|
2280
2372
|
...props
|
|
2281
2373
|
}
|
|
2282
2374
|
),
|
|
2283
|
-
/* @__PURE__ */
|
|
2375
|
+
/* @__PURE__ */ jsx8(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsx8("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ jsx8(
|
|
2284
2376
|
Calendar,
|
|
2285
2377
|
{
|
|
2286
2378
|
className: cn(
|
|
@@ -2290,7 +2382,7 @@ var DatePicker = React6.forwardRef(
|
|
|
2290
2382
|
}
|
|
2291
2383
|
) }) })
|
|
2292
2384
|
] }),
|
|
2293
|
-
/* @__PURE__ */
|
|
2385
|
+
/* @__PURE__ */ jsx8(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx8(
|
|
2294
2386
|
PopoverPrimitive.Content,
|
|
2295
2387
|
{
|
|
2296
2388
|
className: "z-50 w-80 rounded-lg border border-secondary bg-light text-dark shadow-lg animate-in fade-in-0 zoom-in-95 duration-200",
|
|
@@ -2301,12 +2393,12 @@ var DatePicker = React6.forwardRef(
|
|
|
2301
2393
|
sticky: "always",
|
|
2302
2394
|
children: /* @__PURE__ */ jsxs6("div", { className: "p-4", children: [
|
|
2303
2395
|
/* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between mb-4 gap-1", children: [
|
|
2304
|
-
/* @__PURE__ */
|
|
2396
|
+
/* @__PURE__ */ jsx8(
|
|
2305
2397
|
"button",
|
|
2306
2398
|
{
|
|
2307
2399
|
onClick: () => handleMonthChange("prev"),
|
|
2308
2400
|
className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
|
|
2309
|
-
children: /* @__PURE__ */
|
|
2401
|
+
children: /* @__PURE__ */ jsx8(ChevronLeft, { className: "h-4 w-4" })
|
|
2310
2402
|
}
|
|
2311
2403
|
),
|
|
2312
2404
|
/* @__PURE__ */ jsxs6("div", { className: "flex gap-1 flex-1 min-w-0", children: [
|
|
@@ -2316,8 +2408,8 @@ var DatePicker = React6.forwardRef(
|
|
|
2316
2408
|
value: currentMonth.getMonth().toString(),
|
|
2317
2409
|
onValueChange: handleMonthSelect,
|
|
2318
2410
|
children: [
|
|
2319
|
-
/* @__PURE__ */
|
|
2320
|
-
/* @__PURE__ */
|
|
2411
|
+
/* @__PURE__ */ jsx8(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx8(SelectValue, {}) }),
|
|
2412
|
+
/* @__PURE__ */ jsx8(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ jsx8(SelectItem, { value: index.toString(), children: month }, month)) })
|
|
2321
2413
|
]
|
|
2322
2414
|
}
|
|
2323
2415
|
),
|
|
@@ -2327,23 +2419,23 @@ var DatePicker = React6.forwardRef(
|
|
|
2327
2419
|
value: currentMonth.getFullYear().toString(),
|
|
2328
2420
|
onValueChange: handleYearSelect,
|
|
2329
2421
|
children: [
|
|
2330
|
-
/* @__PURE__ */
|
|
2331
|
-
/* @__PURE__ */
|
|
2422
|
+
/* @__PURE__ */ jsx8(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx8(SelectValue, {}) }),
|
|
2423
|
+
/* @__PURE__ */ jsx8(SelectContent, { children: years.map((year) => /* @__PURE__ */ jsx8(SelectItem, { value: year.toString(), children: year }, year)) })
|
|
2332
2424
|
]
|
|
2333
2425
|
}
|
|
2334
2426
|
)
|
|
2335
2427
|
] }),
|
|
2336
|
-
/* @__PURE__ */
|
|
2428
|
+
/* @__PURE__ */ jsx8(
|
|
2337
2429
|
"button",
|
|
2338
2430
|
{
|
|
2339
2431
|
onClick: () => handleMonthChange("next"),
|
|
2340
2432
|
className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
|
|
2341
|
-
children: /* @__PURE__ */
|
|
2433
|
+
children: /* @__PURE__ */ jsx8(ChevronRight, { className: "h-4 w-4" })
|
|
2342
2434
|
}
|
|
2343
2435
|
)
|
|
2344
2436
|
] }),
|
|
2345
2437
|
/* @__PURE__ */ jsxs6("div", { className: "space-y-1", children: [
|
|
2346
|
-
/* @__PURE__ */
|
|
2438
|
+
/* @__PURE__ */ jsx8("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ jsx8(
|
|
2347
2439
|
Typography,
|
|
2348
2440
|
{
|
|
2349
2441
|
variant: "label-xs-bold",
|
|
@@ -2353,11 +2445,11 @@ var DatePicker = React6.forwardRef(
|
|
|
2353
2445
|
},
|
|
2354
2446
|
day
|
|
2355
2447
|
)) }),
|
|
2356
|
-
/* @__PURE__ */
|
|
2448
|
+
/* @__PURE__ */ jsx8("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ jsx8(
|
|
2357
2449
|
"div",
|
|
2358
2450
|
{
|
|
2359
2451
|
className: "h-8 w-8 flex items-center justify-center",
|
|
2360
|
-
children: date && /* @__PURE__ */
|
|
2452
|
+
children: date && /* @__PURE__ */ jsx8(
|
|
2361
2453
|
"button",
|
|
2362
2454
|
{
|
|
2363
2455
|
onClick: () => handleDateSelect(date),
|
|
@@ -2371,7 +2463,7 @@ var DatePicker = React6.forwardRef(
|
|
|
2371
2463
|
isToday(date) && !isDateSelected(date) && !isDateDisabled(date) && "text-blue-600 after:content-[''] after:absolute after:bottom-1 after:left-1/2 after:-translate-x-1/2 after:w-1 after:h-1 after:bg-blue-600 after:rounded-full",
|
|
2372
2464
|
isDateDisabled(date) && "text-secondary/40 cursor-not-allowed opacity-50"
|
|
2373
2465
|
),
|
|
2374
|
-
children: /* @__PURE__ */
|
|
2466
|
+
children: /* @__PURE__ */ jsx8(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
|
|
2375
2467
|
}
|
|
2376
2468
|
)
|
|
2377
2469
|
},
|
|
@@ -2389,9 +2481,9 @@ var DatePicker = React6.forwardRef(
|
|
|
2389
2481
|
DatePicker.displayName = "DatePicker";
|
|
2390
2482
|
|
|
2391
2483
|
// src/components/ui/upload.tsx
|
|
2392
|
-
import * as
|
|
2484
|
+
import * as React6 from "react";
|
|
2393
2485
|
import { cva as cva6 } from "class-variance-authority";
|
|
2394
|
-
import { jsx as
|
|
2486
|
+
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2395
2487
|
var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
|
|
2396
2488
|
var uploadVariants = cva6(
|
|
2397
2489
|
"relative flex flex-col items-center justify-center rounded-lg transition-all duration-200 ease-in-out overflow-hidden",
|
|
@@ -2415,7 +2507,7 @@ var uploadVariants = cva6(
|
|
|
2415
2507
|
}
|
|
2416
2508
|
}
|
|
2417
2509
|
);
|
|
2418
|
-
var Upload =
|
|
2510
|
+
var Upload = React6.forwardRef(
|
|
2419
2511
|
({
|
|
2420
2512
|
className,
|
|
2421
2513
|
onFileSelect,
|
|
@@ -2428,8 +2520,8 @@ var Upload = React7.forwardRef(
|
|
|
2428
2520
|
selectedFiles = [],
|
|
2429
2521
|
...props
|
|
2430
2522
|
}, ref) => {
|
|
2431
|
-
const fileInputRef =
|
|
2432
|
-
const [isDragOver, setIsDragOver] =
|
|
2523
|
+
const fileInputRef = React6.useRef(null);
|
|
2524
|
+
const [isDragOver, setIsDragOver] = React6.useState(false);
|
|
2433
2525
|
const getFileTypeDisplay = () => {
|
|
2434
2526
|
const typeMap = {
|
|
2435
2527
|
"application/pdf": "PDF",
|
|
@@ -2500,10 +2592,10 @@ var Upload = React7.forwardRef(
|
|
|
2500
2592
|
style: { gap: "32px" },
|
|
2501
2593
|
children: [
|
|
2502
2594
|
/* @__PURE__ */ jsxs7("div", { className: "space-y-4", children: [
|
|
2503
|
-
/* @__PURE__ */
|
|
2504
|
-
/* @__PURE__ */
|
|
2595
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "heading-sm", children: "Upload fail" }),
|
|
2596
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
|
|
2505
2597
|
] }),
|
|
2506
|
-
/* @__PURE__ */
|
|
2598
|
+
/* @__PURE__ */ jsx9(
|
|
2507
2599
|
Button,
|
|
2508
2600
|
{
|
|
2509
2601
|
variant: "destructive",
|
|
@@ -2523,9 +2615,9 @@ var Upload = React7.forwardRef(
|
|
|
2523
2615
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2524
2616
|
style: { gap: "32px" },
|
|
2525
2617
|
children: [
|
|
2526
|
-
/* @__PURE__ */
|
|
2618
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "heading-sm", className: "text-dark", children: "Uploading files" }),
|
|
2527
2619
|
/* @__PURE__ */ jsxs7("div", { className: "w-full max-w-[720px] space-y-2", children: [
|
|
2528
|
-
/* @__PURE__ */
|
|
2620
|
+
/* @__PURE__ */ jsx9("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ jsx9(
|
|
2529
2621
|
"div",
|
|
2530
2622
|
{
|
|
2531
2623
|
className: "bg-canvas-primary h-2 rounded-full transition-all duration-300 ease-in-out",
|
|
@@ -2548,14 +2640,14 @@ var Upload = React7.forwardRef(
|
|
|
2548
2640
|
}
|
|
2549
2641
|
);
|
|
2550
2642
|
case "success":
|
|
2551
|
-
return /* @__PURE__ */
|
|
2643
|
+
return /* @__PURE__ */ jsx9(
|
|
2552
2644
|
"div",
|
|
2553
2645
|
{
|
|
2554
2646
|
className: "flex flex-col items-center text-center max-w-[289px]",
|
|
2555
2647
|
style: { gap: "32px" },
|
|
2556
2648
|
children: /* @__PURE__ */ jsxs7("div", { className: "space-y-4", children: [
|
|
2557
|
-
/* @__PURE__ */
|
|
2558
|
-
selectedFiles.length > 0 && /* @__PURE__ */
|
|
2649
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "heading-sm", className: "text-success", children: "Upload successful!" }),
|
|
2650
|
+
selectedFiles.length > 0 && /* @__PURE__ */ jsx9("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsx9(Typography, { variant: "body-sm", children: file.name }, index)) })
|
|
2559
2651
|
] })
|
|
2560
2652
|
}
|
|
2561
2653
|
);
|
|
@@ -2567,10 +2659,10 @@ var Upload = React7.forwardRef(
|
|
|
2567
2659
|
style: { gap: "32px" },
|
|
2568
2660
|
children: [
|
|
2569
2661
|
/* @__PURE__ */ jsxs7("div", { className: "space-y-4", children: [
|
|
2570
|
-
/* @__PURE__ */
|
|
2571
|
-
/* @__PURE__ */
|
|
2662
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "heading-sm", className: "text-dark", children: "Drag & drop files here" }),
|
|
2663
|
+
/* @__PURE__ */ jsx9(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
|
|
2572
2664
|
] }),
|
|
2573
|
-
/* @__PURE__ */
|
|
2665
|
+
/* @__PURE__ */ jsx9(
|
|
2574
2666
|
Button,
|
|
2575
2667
|
{
|
|
2576
2668
|
variant: "default",
|
|
@@ -2587,7 +2679,7 @@ var Upload = React7.forwardRef(
|
|
|
2587
2679
|
/* @__PURE__ */ jsxs7(Typography, { variant: "body-sm", className: "text-secondary", children: [
|
|
2588
2680
|
"Supported file: ",
|
|
2589
2681
|
getFileTypeDisplay(),
|
|
2590
|
-
/* @__PURE__ */
|
|
2682
|
+
/* @__PURE__ */ jsx9("br", {}),
|
|
2591
2683
|
"Max: ",
|
|
2592
2684
|
Math.round(maxFileSize / 1024 / 1024),
|
|
2593
2685
|
" MB each"
|
|
@@ -2621,7 +2713,7 @@ var Upload = React7.forwardRef(
|
|
|
2621
2713
|
"aria-disabled": disabled,
|
|
2622
2714
|
...props,
|
|
2623
2715
|
children: [
|
|
2624
|
-
/* @__PURE__ */
|
|
2716
|
+
/* @__PURE__ */ jsx9(
|
|
2625
2717
|
"input",
|
|
2626
2718
|
{
|
|
2627
2719
|
ref: fileInputRef,
|
|
@@ -2641,28 +2733,53 @@ var Upload = React7.forwardRef(
|
|
|
2641
2733
|
Upload.displayName = "Upload";
|
|
2642
2734
|
|
|
2643
2735
|
// src/components/ui/checkbox.tsx
|
|
2644
|
-
import * as
|
|
2736
|
+
import * as React7 from "react";
|
|
2645
2737
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
2646
2738
|
import { cva as cva7 } from "class-variance-authority";
|
|
2647
|
-
import { jsx as
|
|
2739
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
2648
2740
|
var checkboxVariants = cva7(
|
|
2649
|
-
"peer size-4 shrink-0 rounded-[4px] border
|
|
2741
|
+
"peer size-4 shrink-0 rounded-[4px] border bg-light hover:bg-info-subtle transition-colors focus-visible:outline-none focus-visible:border-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-light [&_svg]:pointer-events-none [&_svg]:size-3 [&_svg]:shrink-0 border-strong focus-visible:border-interactive aria-invalid:border-error aria-invalid:focus-visible:border-error"
|
|
2650
2742
|
);
|
|
2651
|
-
var Checkbox =
|
|
2743
|
+
var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
2652
2744
|
CheckboxPrimitive.Root,
|
|
2653
2745
|
{
|
|
2654
2746
|
ref,
|
|
2655
2747
|
className: cn(checkboxVariants(), className),
|
|
2656
2748
|
...props,
|
|
2657
|
-
children: /* @__PURE__ */
|
|
2749
|
+
children: /* @__PURE__ */ jsx10(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx10(CheckIcon, { variant: "light", className: "size-3" }) })
|
|
2658
2750
|
}
|
|
2659
2751
|
));
|
|
2660
2752
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
2661
2753
|
|
|
2754
|
+
// src/components/ui/textarea.tsx
|
|
2755
|
+
import * as React8 from "react";
|
|
2756
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
2757
|
+
var Textarea = React8.forwardRef(
|
|
2758
|
+
({ className, style, ...props }, ref) => {
|
|
2759
|
+
const tokenStyles = {
|
|
2760
|
+
font: "var(--typography-label-md-regular)",
|
|
2761
|
+
...style
|
|
2762
|
+
};
|
|
2763
|
+
return /* @__PURE__ */ jsx11(
|
|
2764
|
+
"textarea",
|
|
2765
|
+
{
|
|
2766
|
+
className: cn(
|
|
2767
|
+
"flex min-h-[80px] w-full rounded-md border bg-light text-dark px-3 pt-3 pb-2 placeholder:text-secondary focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 transition-colors resize-y border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary aria-invalid:border-error aria-invalid:focus-visible:border-error",
|
|
2768
|
+
className
|
|
2769
|
+
),
|
|
2770
|
+
style: tokenStyles,
|
|
2771
|
+
ref,
|
|
2772
|
+
...props
|
|
2773
|
+
}
|
|
2774
|
+
);
|
|
2775
|
+
}
|
|
2776
|
+
);
|
|
2777
|
+
Textarea.displayName = "Textarea";
|
|
2778
|
+
|
|
2662
2779
|
// src/components/ui/badge.tsx
|
|
2663
2780
|
import * as React9 from "react";
|
|
2664
2781
|
import { cva as cva8 } from "class-variance-authority";
|
|
2665
|
-
import { jsx as
|
|
2782
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
2666
2783
|
var badgeVariants = cva8(
|
|
2667
2784
|
"inline-flex items-center justify-center gap-1 whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
2668
2785
|
{
|
|
@@ -2695,7 +2812,7 @@ var Badge = React9.forwardRef(
|
|
|
2695
2812
|
...typographyStyles,
|
|
2696
2813
|
...style
|
|
2697
2814
|
};
|
|
2698
|
-
return /* @__PURE__ */
|
|
2815
|
+
return /* @__PURE__ */ jsx12(
|
|
2699
2816
|
"span",
|
|
2700
2817
|
{
|
|
2701
2818
|
className: cn(
|
|
@@ -2715,7 +2832,7 @@ Badge.displayName = "Badge";
|
|
|
2715
2832
|
// src/components/ui/tabs.tsx
|
|
2716
2833
|
import * as React10 from "react";
|
|
2717
2834
|
import { cva as cva9 } from "class-variance-authority";
|
|
2718
|
-
import { jsx as
|
|
2835
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
2719
2836
|
var tabsVariants = cva9(
|
|
2720
2837
|
"inline-flex items-center justify-start whitespace-nowrap transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-interactive focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 h-10",
|
|
2721
2838
|
{
|
|
@@ -2756,13 +2873,13 @@ var Tabs = React10.forwardRef((props, ref) => {
|
|
|
2756
2873
|
}),
|
|
2757
2874
|
[value, onValueChange, variant]
|
|
2758
2875
|
);
|
|
2759
|
-
return /* @__PURE__ */
|
|
2876
|
+
return /* @__PURE__ */ jsx13(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx13("div", { ref, className: cn("w-full", className), ...restProps, children }) });
|
|
2760
2877
|
});
|
|
2761
2878
|
Tabs.displayName = "Tabs";
|
|
2762
2879
|
var TabsList = React10.forwardRef(
|
|
2763
2880
|
(props, ref) => {
|
|
2764
2881
|
const { className, children, ...restProps } = props;
|
|
2765
|
-
return /* @__PURE__ */
|
|
2882
|
+
return /* @__PURE__ */ jsx13(
|
|
2766
2883
|
"div",
|
|
2767
2884
|
{
|
|
2768
2885
|
ref,
|
|
@@ -2801,7 +2918,7 @@ var TabsTrigger = React10.forwardRef(
|
|
|
2801
2918
|
if (disabled) return;
|
|
2802
2919
|
setActiveTab(value);
|
|
2803
2920
|
}, [disabled, setActiveTab, value]);
|
|
2804
|
-
return /* @__PURE__ */
|
|
2921
|
+
return /* @__PURE__ */ jsx13(
|
|
2805
2922
|
"button",
|
|
2806
2923
|
{
|
|
2807
2924
|
ref,
|
|
@@ -2815,7 +2932,7 @@ var TabsTrigger = React10.forwardRef(
|
|
|
2815
2932
|
disabled,
|
|
2816
2933
|
onClick: handleClick,
|
|
2817
2934
|
...restProps,
|
|
2818
|
-
children: /* @__PURE__ */
|
|
2935
|
+
children: /* @__PURE__ */ jsx13("span", { className: "pl-3 pr-6 py-2", children })
|
|
2819
2936
|
}
|
|
2820
2937
|
);
|
|
2821
2938
|
}
|
|
@@ -2832,7 +2949,7 @@ var TabsContent = React10.forwardRef(
|
|
|
2832
2949
|
if (!isActive) {
|
|
2833
2950
|
return null;
|
|
2834
2951
|
}
|
|
2835
|
-
return /* @__PURE__ */
|
|
2952
|
+
return /* @__PURE__ */ jsx13(
|
|
2836
2953
|
"div",
|
|
2837
2954
|
{
|
|
2838
2955
|
ref,
|
|
@@ -2852,7 +2969,7 @@ TabsContent.displayName = "TabsContent";
|
|
|
2852
2969
|
// src/components/ui/dropdown-menu.tsx
|
|
2853
2970
|
import * as React11 from "react";
|
|
2854
2971
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
2855
|
-
import { jsx as
|
|
2972
|
+
import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2856
2973
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
2857
2974
|
var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
2858
2975
|
DropdownMenuPrimitive.Trigger,
|
|
@@ -2864,7 +2981,7 @@ var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...pr
|
|
|
2864
2981
|
),
|
|
2865
2982
|
...props,
|
|
2866
2983
|
children: [
|
|
2867
|
-
icon || /* @__PURE__ */
|
|
2984
|
+
icon || /* @__PURE__ */ jsx14(MoreMenu, { className: "size-4" }),
|
|
2868
2985
|
children
|
|
2869
2986
|
]
|
|
2870
2987
|
}
|
|
@@ -2887,12 +3004,12 @@ var DropdownMenuSubTrigger = React11.forwardRef(({ className, inset, children, .
|
|
|
2887
3004
|
...props,
|
|
2888
3005
|
children: [
|
|
2889
3006
|
children,
|
|
2890
|
-
/* @__PURE__ */
|
|
3007
|
+
/* @__PURE__ */ jsx14(ChevronRight, { className: "ml-auto" })
|
|
2891
3008
|
]
|
|
2892
3009
|
}
|
|
2893
3010
|
));
|
|
2894
3011
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
2895
|
-
var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
3012
|
+
var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
2896
3013
|
DropdownMenuPrimitive.SubContent,
|
|
2897
3014
|
{
|
|
2898
3015
|
ref,
|
|
@@ -2904,7 +3021,7 @@ var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) =
|
|
|
2904
3021
|
}
|
|
2905
3022
|
));
|
|
2906
3023
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
2907
|
-
var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */
|
|
3024
|
+
var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ jsx14(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx14(
|
|
2908
3025
|
DropdownMenuPrimitive.Content,
|
|
2909
3026
|
{
|
|
2910
3027
|
ref,
|
|
@@ -2918,7 +3035,7 @@ var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align
|
|
|
2918
3035
|
}
|
|
2919
3036
|
) }));
|
|
2920
3037
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2921
|
-
var DropdownMenuItem = React11.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */
|
|
3038
|
+
var DropdownMenuItem = React11.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
2922
3039
|
DropdownMenuPrimitive.Item,
|
|
2923
3040
|
{
|
|
2924
3041
|
ref,
|
|
@@ -2950,7 +3067,7 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
|
|
|
2950
3067
|
},
|
|
2951
3068
|
...props,
|
|
2952
3069
|
children: [
|
|
2953
|
-
/* @__PURE__ */
|
|
3070
|
+
/* @__PURE__ */ jsx14(
|
|
2954
3071
|
Checkbox,
|
|
2955
3072
|
{
|
|
2956
3073
|
checked: checked === true,
|
|
@@ -2958,7 +3075,7 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
|
|
|
2958
3075
|
"aria-hidden": "true"
|
|
2959
3076
|
}
|
|
2960
3077
|
),
|
|
2961
|
-
/* @__PURE__ */
|
|
3078
|
+
/* @__PURE__ */ jsx14("span", { className: "flex-1", children })
|
|
2962
3079
|
]
|
|
2963
3080
|
}
|
|
2964
3081
|
));
|
|
@@ -2977,13 +3094,13 @@ var DropdownMenuRadioItem = React11.forwardRef(({ className, children, style, ..
|
|
|
2977
3094
|
},
|
|
2978
3095
|
...props,
|
|
2979
3096
|
children: [
|
|
2980
|
-
/* @__PURE__ */
|
|
3097
|
+
/* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
|
|
2981
3098
|
children
|
|
2982
3099
|
]
|
|
2983
3100
|
}
|
|
2984
3101
|
));
|
|
2985
3102
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2986
|
-
var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
3103
|
+
var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
2987
3104
|
DropdownMenuPrimitive.Label,
|
|
2988
3105
|
{
|
|
2989
3106
|
ref,
|
|
@@ -2996,7 +3113,7 @@ var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2996
3113
|
}
|
|
2997
3114
|
));
|
|
2998
3115
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2999
|
-
var DropdownMenuSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
3116
|
+
var DropdownMenuSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
3000
3117
|
DropdownMenuPrimitive.Separator,
|
|
3001
3118
|
{
|
|
3002
3119
|
ref,
|
|
@@ -3009,7 +3126,7 @@ var DropdownMenuShortcut = ({
|
|
|
3009
3126
|
className,
|
|
3010
3127
|
...props
|
|
3011
3128
|
}) => {
|
|
3012
|
-
return /* @__PURE__ */
|
|
3129
|
+
return /* @__PURE__ */ jsx14(
|
|
3013
3130
|
"span",
|
|
3014
3131
|
{
|
|
3015
3132
|
className: cn("ml-auto text-xs tracking-widest opacity-60", className),
|
|
@@ -3020,21 +3137,21 @@ var DropdownMenuShortcut = ({
|
|
|
3020
3137
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
3021
3138
|
|
|
3022
3139
|
// src/components/ui/charts/chart-legend.tsx
|
|
3023
|
-
import { jsx as
|
|
3140
|
+
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
3024
3141
|
function ChartLegend({
|
|
3025
3142
|
items,
|
|
3026
3143
|
x = 0,
|
|
3027
3144
|
y = 550,
|
|
3028
3145
|
className = ""
|
|
3029
3146
|
}) {
|
|
3030
|
-
return /* @__PURE__ */
|
|
3147
|
+
return /* @__PURE__ */ jsx15("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ jsx15(
|
|
3031
3148
|
"div",
|
|
3032
3149
|
{
|
|
3033
3150
|
className: `flex justify-center items-center gap-6 ${className}`,
|
|
3034
3151
|
style: { height: "100%" },
|
|
3035
3152
|
children: items.map(({ key, color, label }) => /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2", children: [
|
|
3036
|
-
/* @__PURE__ */
|
|
3037
|
-
/* @__PURE__ */
|
|
3153
|
+
/* @__PURE__ */ jsx15("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
|
|
3154
|
+
/* @__PURE__ */ jsx15(Typography, { variant: "body-xs", children: label || key })
|
|
3038
3155
|
] }, key))
|
|
3039
3156
|
}
|
|
3040
3157
|
) });
|
|
@@ -3152,12 +3269,12 @@ var formatLargeNumber = (value) => {
|
|
|
3152
3269
|
};
|
|
3153
3270
|
|
|
3154
3271
|
// src/components/ui/charts/chart-labels.tsx
|
|
3155
|
-
import { jsx as
|
|
3272
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
3156
3273
|
var createCustomXAxisLabel = (text, yOffset = 40) => {
|
|
3157
3274
|
const CustomXAxisLabel = ({ viewBox }) => {
|
|
3158
3275
|
if (!viewBox) return null;
|
|
3159
3276
|
const { x, y, width } = viewBox;
|
|
3160
|
-
return /* @__PURE__ */
|
|
3277
|
+
return /* @__PURE__ */ jsx16("g", { children: /* @__PURE__ */ jsx16("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ jsx16("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx16(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3161
3278
|
};
|
|
3162
3279
|
CustomXAxisLabel.displayName = "CustomXAxisLabel";
|
|
3163
3280
|
return CustomXAxisLabel;
|
|
@@ -3167,7 +3284,7 @@ var createCustomYAxisLabel = (text, leftMargin) => {
|
|
|
3167
3284
|
if (!viewBox) return null;
|
|
3168
3285
|
const { x, y, height } = viewBox;
|
|
3169
3286
|
const offset = leftMargin ? leftMargin + 10 : 110;
|
|
3170
|
-
return /* @__PURE__ */
|
|
3287
|
+
return /* @__PURE__ */ jsx16("g", { children: /* @__PURE__ */ jsx16("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ jsx16("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx16(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3171
3288
|
};
|
|
3172
3289
|
CustomYAxisLabel.displayName = "CustomYAxisLabel";
|
|
3173
3290
|
return CustomYAxisLabel;
|
|
@@ -3176,14 +3293,14 @@ var createCustomYAxisRightLabel = (text) => {
|
|
|
3176
3293
|
const CustomYAxisRightLabel = ({ viewBox }) => {
|
|
3177
3294
|
if (!viewBox) return null;
|
|
3178
3295
|
const { x, y, width, height } = viewBox;
|
|
3179
|
-
return /* @__PURE__ */
|
|
3296
|
+
return /* @__PURE__ */ jsx16("g", { children: /* @__PURE__ */ jsx16("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ jsx16("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx16(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
|
|
3180
3297
|
};
|
|
3181
3298
|
CustomYAxisRightLabel.displayName = "CustomYAxisRightLabel";
|
|
3182
3299
|
return CustomYAxisRightLabel;
|
|
3183
3300
|
};
|
|
3184
3301
|
var customXAxisTick = (props) => {
|
|
3185
3302
|
const { x, y, payload } = props;
|
|
3186
|
-
return /* @__PURE__ */
|
|
3303
|
+
return /* @__PURE__ */ jsx16("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx16(
|
|
3187
3304
|
"foreignObject",
|
|
3188
3305
|
{
|
|
3189
3306
|
x: -20,
|
|
@@ -3191,12 +3308,12 @@ var customXAxisTick = (props) => {
|
|
|
3191
3308
|
width: 40,
|
|
3192
3309
|
height: 20,
|
|
3193
3310
|
style: { overflow: "visible" },
|
|
3194
|
-
children: /* @__PURE__ */
|
|
3311
|
+
children: /* @__PURE__ */ jsx16(
|
|
3195
3312
|
"div",
|
|
3196
3313
|
{
|
|
3197
3314
|
className: "flex items-start justify-center h-full",
|
|
3198
3315
|
style: { overflow: "visible" },
|
|
3199
|
-
children: /* @__PURE__ */
|
|
3316
|
+
children: /* @__PURE__ */ jsx16(
|
|
3200
3317
|
Typography,
|
|
3201
3318
|
{
|
|
3202
3319
|
variant: "body-xs",
|
|
@@ -3211,7 +3328,7 @@ var customXAxisTick = (props) => {
|
|
|
3211
3328
|
};
|
|
3212
3329
|
var customXAxisTickRotated = (props) => {
|
|
3213
3330
|
const { x, y, payload } = props;
|
|
3214
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsx16("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx16(
|
|
3215
3332
|
"text",
|
|
3216
3333
|
{
|
|
3217
3334
|
x: 0,
|
|
@@ -3230,25 +3347,25 @@ var customYAxisTick = (props) => {
|
|
|
3230
3347
|
const { x, y, payload } = props;
|
|
3231
3348
|
const text = String(payload.value);
|
|
3232
3349
|
const estimatedWidth = Math.max(text.length * 8, 80);
|
|
3233
|
-
return /* @__PURE__ */
|
|
3350
|
+
return /* @__PURE__ */ jsx16(
|
|
3234
3351
|
"foreignObject",
|
|
3235
3352
|
{
|
|
3236
3353
|
x: x - estimatedWidth + 5,
|
|
3237
3354
|
y: y - 6,
|
|
3238
3355
|
width: estimatedWidth,
|
|
3239
3356
|
height: 15,
|
|
3240
|
-
children: /* @__PURE__ */
|
|
3357
|
+
children: /* @__PURE__ */ jsx16("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ jsx16(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
|
|
3241
3358
|
}
|
|
3242
3359
|
);
|
|
3243
3360
|
};
|
|
3244
3361
|
|
|
3245
3362
|
// src/components/ui/charts/chart-tooltip.tsx
|
|
3246
|
-
import { Fragment, jsx as
|
|
3363
|
+
import { Fragment, jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3247
3364
|
function TooltipContainer({
|
|
3248
3365
|
children,
|
|
3249
3366
|
className = ""
|
|
3250
3367
|
}) {
|
|
3251
|
-
return /* @__PURE__ */
|
|
3368
|
+
return /* @__PURE__ */ jsx17(
|
|
3252
3369
|
"div",
|
|
3253
3370
|
{
|
|
3254
3371
|
className: `bg-light border border-subtle rounded p-2.5 text-dark ${className}`,
|
|
@@ -3263,9 +3380,9 @@ function TooltipItem({
|
|
|
3263
3380
|
className = ""
|
|
3264
3381
|
}) {
|
|
3265
3382
|
return /* @__PURE__ */ jsxs10(Fragment, { children: [
|
|
3266
|
-
/* @__PURE__ */
|
|
3383
|
+
/* @__PURE__ */ jsx17("br", {}),
|
|
3267
3384
|
/* @__PURE__ */ jsxs10(Typography, { variant: "label-sm", className, children: [
|
|
3268
|
-
/* @__PURE__ */
|
|
3385
|
+
/* @__PURE__ */ jsx17(
|
|
3269
3386
|
"span",
|
|
3270
3387
|
{
|
|
3271
3388
|
className: "inline-block w-3 h-3 mr-1.5",
|
|
@@ -3284,8 +3401,8 @@ function GenericTooltip({
|
|
|
3284
3401
|
className = ""
|
|
3285
3402
|
}) {
|
|
3286
3403
|
return /* @__PURE__ */ jsxs10(TooltipContainer, { className, children: [
|
|
3287
|
-
title && /* @__PURE__ */
|
|
3288
|
-
items.map((item, index) => /* @__PURE__ */
|
|
3404
|
+
title && /* @__PURE__ */ jsx17(Typography, { variant: "label-sm-bold", children: title }),
|
|
3405
|
+
items.map((item, index) => /* @__PURE__ */ jsx17(
|
|
3289
3406
|
TooltipItem,
|
|
3290
3407
|
{
|
|
3291
3408
|
color: item.color,
|
|
@@ -3307,7 +3424,7 @@ import {
|
|
|
3307
3424
|
Tooltip,
|
|
3308
3425
|
ResponsiveContainer
|
|
3309
3426
|
} from "recharts";
|
|
3310
|
-
import { jsx as
|
|
3427
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3311
3428
|
var BarChart = forwardRef12(
|
|
3312
3429
|
({
|
|
3313
3430
|
data,
|
|
@@ -3340,8 +3457,8 @@ var BarChart = forwardRef12(
|
|
|
3340
3457
|
ref,
|
|
3341
3458
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3342
3459
|
children: [
|
|
3343
|
-
/* @__PURE__ */
|
|
3344
|
-
/* @__PURE__ */
|
|
3460
|
+
/* @__PURE__ */ jsx18("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx18(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
3461
|
+
/* @__PURE__ */ jsx18("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx18(
|
|
3345
3462
|
ResponsiveContainer,
|
|
3346
3463
|
{
|
|
3347
3464
|
width: "100%",
|
|
@@ -3358,7 +3475,7 @@ var BarChart = forwardRef12(
|
|
|
3358
3475
|
onClick: handleClick,
|
|
3359
3476
|
layout,
|
|
3360
3477
|
children: [
|
|
3361
|
-
/* @__PURE__ */
|
|
3478
|
+
/* @__PURE__ */ jsx18(
|
|
3362
3479
|
XAxis,
|
|
3363
3480
|
{
|
|
3364
3481
|
dataKey: xAxisKey,
|
|
@@ -3372,7 +3489,7 @@ var BarChart = forwardRef12(
|
|
|
3372
3489
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel, 80) : void 0
|
|
3373
3490
|
}
|
|
3374
3491
|
),
|
|
3375
|
-
/* @__PURE__ */
|
|
3492
|
+
/* @__PURE__ */ jsx18(
|
|
3376
3493
|
YAxis,
|
|
3377
3494
|
{
|
|
3378
3495
|
axisLine: false,
|
|
@@ -3383,7 +3500,7 @@ var BarChart = forwardRef12(
|
|
|
3383
3500
|
type: yAxisType
|
|
3384
3501
|
}
|
|
3385
3502
|
),
|
|
3386
|
-
/* @__PURE__ */
|
|
3503
|
+
/* @__PURE__ */ jsx18(
|
|
3387
3504
|
Tooltip,
|
|
3388
3505
|
{
|
|
3389
3506
|
content: ({
|
|
@@ -3392,7 +3509,7 @@ var BarChart = forwardRef12(
|
|
|
3392
3509
|
label
|
|
3393
3510
|
}) => {
|
|
3394
3511
|
if (active && payload && payload.length) {
|
|
3395
|
-
return /* @__PURE__ */
|
|
3512
|
+
return /* @__PURE__ */ jsx18(
|
|
3396
3513
|
GenericTooltip,
|
|
3397
3514
|
{
|
|
3398
3515
|
title: label?.toString(),
|
|
@@ -3408,7 +3525,7 @@ var BarChart = forwardRef12(
|
|
|
3408
3525
|
}
|
|
3409
3526
|
}
|
|
3410
3527
|
),
|
|
3411
|
-
/* @__PURE__ */
|
|
3528
|
+
/* @__PURE__ */ jsx18(
|
|
3412
3529
|
Bar,
|
|
3413
3530
|
{
|
|
3414
3531
|
dataKey: barDataKey || yAxisKey,
|
|
@@ -3416,12 +3533,12 @@ var BarChart = forwardRef12(
|
|
|
3416
3533
|
name: barDataKey || yAxisKey
|
|
3417
3534
|
}
|
|
3418
3535
|
),
|
|
3419
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */
|
|
3536
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx18(ChartLegend, { items: defaultLegendItems })
|
|
3420
3537
|
]
|
|
3421
3538
|
}
|
|
3422
3539
|
)
|
|
3423
3540
|
}
|
|
3424
|
-
) : /* @__PURE__ */
|
|
3541
|
+
) : /* @__PURE__ */ jsx18("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx18(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
3425
3542
|
]
|
|
3426
3543
|
}
|
|
3427
3544
|
);
|
|
@@ -3439,7 +3556,7 @@ import {
|
|
|
3439
3556
|
Tooltip as Tooltip2,
|
|
3440
3557
|
ResponsiveContainer as ResponsiveContainer2
|
|
3441
3558
|
} from "recharts";
|
|
3442
|
-
import { jsx as
|
|
3559
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3443
3560
|
var LineChart = forwardRef13(
|
|
3444
3561
|
({
|
|
3445
3562
|
data,
|
|
@@ -3474,8 +3591,8 @@ var LineChart = forwardRef13(
|
|
|
3474
3591
|
ref,
|
|
3475
3592
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3476
3593
|
children: [
|
|
3477
|
-
/* @__PURE__ */
|
|
3478
|
-
/* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsx19("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx19(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
3595
|
+
/* @__PURE__ */ jsx19("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx19(
|
|
3479
3596
|
ResponsiveContainer2,
|
|
3480
3597
|
{
|
|
3481
3598
|
width: "100%",
|
|
@@ -3491,7 +3608,7 @@ var LineChart = forwardRef13(
|
|
|
3491
3608
|
},
|
|
3492
3609
|
onClick: handleClick,
|
|
3493
3610
|
children: [
|
|
3494
|
-
/* @__PURE__ */
|
|
3611
|
+
/* @__PURE__ */ jsx19(
|
|
3495
3612
|
XAxis2,
|
|
3496
3613
|
{
|
|
3497
3614
|
dataKey: xAxisKey,
|
|
@@ -3503,7 +3620,7 @@ var LineChart = forwardRef13(
|
|
|
3503
3620
|
label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel) : void 0
|
|
3504
3621
|
}
|
|
3505
3622
|
),
|
|
3506
|
-
/* @__PURE__ */
|
|
3623
|
+
/* @__PURE__ */ jsx19(
|
|
3507
3624
|
YAxis2,
|
|
3508
3625
|
{
|
|
3509
3626
|
axisLine: false,
|
|
@@ -3512,7 +3629,7 @@ var LineChart = forwardRef13(
|
|
|
3512
3629
|
label: yAxisLabel ? createCustomYAxisLabel(yAxisLabel, 40) : void 0
|
|
3513
3630
|
}
|
|
3514
3631
|
),
|
|
3515
|
-
/* @__PURE__ */
|
|
3632
|
+
/* @__PURE__ */ jsx19(
|
|
3516
3633
|
Tooltip2,
|
|
3517
3634
|
{
|
|
3518
3635
|
content: ({
|
|
@@ -3521,7 +3638,7 @@ var LineChart = forwardRef13(
|
|
|
3521
3638
|
label
|
|
3522
3639
|
}) => {
|
|
3523
3640
|
if (active && payload && payload.length) {
|
|
3524
|
-
return /* @__PURE__ */
|
|
3641
|
+
return /* @__PURE__ */ jsx19(
|
|
3525
3642
|
GenericTooltip,
|
|
3526
3643
|
{
|
|
3527
3644
|
title: label?.toString(),
|
|
@@ -3537,7 +3654,7 @@ var LineChart = forwardRef13(
|
|
|
3537
3654
|
}
|
|
3538
3655
|
}
|
|
3539
3656
|
),
|
|
3540
|
-
series.map((s, index) => /* @__PURE__ */
|
|
3657
|
+
series.map((s, index) => /* @__PURE__ */ jsx19(
|
|
3541
3658
|
Line,
|
|
3542
3659
|
{
|
|
3543
3660
|
type: "monotone",
|
|
@@ -3549,12 +3666,12 @@ var LineChart = forwardRef13(
|
|
|
3549
3666
|
},
|
|
3550
3667
|
s.dataKey
|
|
3551
3668
|
)),
|
|
3552
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */
|
|
3669
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx19(ChartLegend, { items: defaultLegendItems })
|
|
3553
3670
|
]
|
|
3554
3671
|
}
|
|
3555
3672
|
)
|
|
3556
3673
|
}
|
|
3557
|
-
) : /* @__PURE__ */
|
|
3674
|
+
) : /* @__PURE__ */ jsx19("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx19(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
3558
3675
|
]
|
|
3559
3676
|
}
|
|
3560
3677
|
);
|
|
@@ -3565,7 +3682,7 @@ LineChart.displayName = "LineChart";
|
|
|
3565
3682
|
// src/components/ui/charts/pie-chart.tsx
|
|
3566
3683
|
import { forwardRef as forwardRef14 } from "react";
|
|
3567
3684
|
import { PieChart as RechartsPieChart, Pie, Cell, Tooltip as Tooltip3 } from "recharts";
|
|
3568
|
-
import { jsx as
|
|
3685
|
+
import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3569
3686
|
var PieChart = forwardRef14(
|
|
3570
3687
|
({
|
|
3571
3688
|
data,
|
|
@@ -3599,14 +3716,14 @@ var PieChart = forwardRef14(
|
|
|
3599
3716
|
ref,
|
|
3600
3717
|
className: `bg-light border border-subtle mx-6 ${className}`,
|
|
3601
3718
|
children: [
|
|
3602
|
-
/* @__PURE__ */
|
|
3603
|
-
/* @__PURE__ */
|
|
3719
|
+
/* @__PURE__ */ jsx20("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx20(Typography, { variant: "label-sm-bold", children: title }) }),
|
|
3720
|
+
/* @__PURE__ */ jsx20("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx20("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs13(
|
|
3604
3721
|
RechartsPieChart,
|
|
3605
3722
|
{
|
|
3606
3723
|
width: 600,
|
|
3607
3724
|
height: CHART_CONSTANTS.LARGE_HEIGHT,
|
|
3608
3725
|
children: [
|
|
3609
|
-
/* @__PURE__ */
|
|
3726
|
+
/* @__PURE__ */ jsx20(
|
|
3610
3727
|
Pie,
|
|
3611
3728
|
{
|
|
3612
3729
|
data,
|
|
@@ -3618,7 +3735,7 @@ var PieChart = forwardRef14(
|
|
|
3618
3735
|
label: showLabels,
|
|
3619
3736
|
labelLine: false,
|
|
3620
3737
|
onClick: handleClick,
|
|
3621
|
-
children: data.map((entry, index) => /* @__PURE__ */
|
|
3738
|
+
children: data.map((entry, index) => /* @__PURE__ */ jsx20(
|
|
3622
3739
|
Cell,
|
|
3623
3740
|
{
|
|
3624
3741
|
fill: entry.color || getSeriesColor(index)
|
|
@@ -3627,7 +3744,7 @@ var PieChart = forwardRef14(
|
|
|
3627
3744
|
))
|
|
3628
3745
|
}
|
|
3629
3746
|
),
|
|
3630
|
-
/* @__PURE__ */
|
|
3747
|
+
/* @__PURE__ */ jsx20(
|
|
3631
3748
|
Tooltip3,
|
|
3632
3749
|
{
|
|
3633
3750
|
content: ({
|
|
@@ -3636,7 +3753,7 @@ var PieChart = forwardRef14(
|
|
|
3636
3753
|
}) => {
|
|
3637
3754
|
if (active && payload && payload.length && payload[0]) {
|
|
3638
3755
|
const data2 = payload[0].payload;
|
|
3639
|
-
return /* @__PURE__ */
|
|
3756
|
+
return /* @__PURE__ */ jsx20(
|
|
3640
3757
|
GenericTooltip,
|
|
3641
3758
|
{
|
|
3642
3759
|
title: data2.name,
|
|
@@ -3654,10 +3771,10 @@ var PieChart = forwardRef14(
|
|
|
3654
3771
|
}
|
|
3655
3772
|
}
|
|
3656
3773
|
),
|
|
3657
|
-
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */
|
|
3774
|
+
showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx20(ChartLegend, { items: defaultLegendItems, y: 400 })
|
|
3658
3775
|
]
|
|
3659
3776
|
}
|
|
3660
|
-
) }) : /* @__PURE__ */
|
|
3777
|
+
) }) : /* @__PURE__ */ jsx20("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx20(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
|
|
3661
3778
|
]
|
|
3662
3779
|
}
|
|
3663
3780
|
);
|
|
@@ -3670,7 +3787,7 @@ import { useCallback as useCallback2 } from "react";
|
|
|
3670
3787
|
import {
|
|
3671
3788
|
flexRender
|
|
3672
3789
|
} from "@tanstack/react-table";
|
|
3673
|
-
import { Fragment as Fragment2, jsx as
|
|
3790
|
+
import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3674
3791
|
function Table({
|
|
3675
3792
|
table,
|
|
3676
3793
|
className,
|
|
@@ -3701,14 +3818,14 @@ function Table({
|
|
|
3701
3818
|
[table]
|
|
3702
3819
|
);
|
|
3703
3820
|
return /* @__PURE__ */ jsxs14("div", { children: [
|
|
3704
|
-
/* @__PURE__ */
|
|
3705
|
-
/* @__PURE__ */
|
|
3821
|
+
/* @__PURE__ */ jsx21("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ jsxs14("table", { className: "min-w-full divide-y divide-border", children: [
|
|
3822
|
+
/* @__PURE__ */ jsx21("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx21("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx21("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ jsxs14(
|
|
3706
3823
|
"div",
|
|
3707
3824
|
{
|
|
3708
3825
|
className: `flex items-center space-x-1 ${header.column.getCanSort() ? "cursor-pointer select-none" : ""}`,
|
|
3709
3826
|
onClick: header.column.getToggleSortingHandler(),
|
|
3710
3827
|
children: [
|
|
3711
|
-
/* @__PURE__ */
|
|
3828
|
+
/* @__PURE__ */ jsx21(
|
|
3712
3829
|
Typography,
|
|
3713
3830
|
{
|
|
3714
3831
|
variant: "label-xs",
|
|
@@ -3720,13 +3837,13 @@ function Table({
|
|
|
3720
3837
|
}
|
|
3721
3838
|
),
|
|
3722
3839
|
header.column.getCanSort() && /* @__PURE__ */ jsxs14("span", { className: "ml-1", children: [
|
|
3723
|
-
header.column.getIsSorted() === "asc" && /* @__PURE__ */
|
|
3724
|
-
header.column.getIsSorted() === "desc" && /* @__PURE__ */
|
|
3840
|
+
header.column.getIsSorted() === "asc" && /* @__PURE__ */ jsx21(ChevronUp, { className: "w-4 h-4 text-light" }),
|
|
3841
|
+
header.column.getIsSorted() === "desc" && /* @__PURE__ */ jsx21(ChevronDown, { className: "w-4 h-4 text-light" })
|
|
3725
3842
|
] })
|
|
3726
3843
|
]
|
|
3727
3844
|
}
|
|
3728
3845
|
) }, header.id)) }, headerGroup.id)) }),
|
|
3729
|
-
/* @__PURE__ */
|
|
3846
|
+
/* @__PURE__ */ jsx21("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx21("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx21("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsx21(Typography, { variant: "body-sm", children: flexRender(
|
|
3730
3847
|
cell.column.columnDef.cell,
|
|
3731
3848
|
cell.getContext()
|
|
3732
3849
|
) }) }, cell.id)) }, row.id)) })
|
|
@@ -3739,9 +3856,9 @@ function Table({
|
|
|
3739
3856
|
paginationClassName
|
|
3740
3857
|
),
|
|
3741
3858
|
children: [
|
|
3742
|
-
/* @__PURE__ */
|
|
3859
|
+
/* @__PURE__ */ jsx21("div", { className: "flex items-center", children: /* @__PURE__ */ jsx21(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
|
|
3743
3860
|
/* @__PURE__ */ jsxs14("div", { className: "flex items-center space-x-1", children: [
|
|
3744
|
-
/* @__PURE__ */
|
|
3861
|
+
/* @__PURE__ */ jsx21(
|
|
3745
3862
|
Button,
|
|
3746
3863
|
{
|
|
3747
3864
|
variant: "ghost",
|
|
@@ -3749,7 +3866,7 @@ function Table({
|
|
|
3749
3866
|
onClick: handlePreviousPage,
|
|
3750
3867
|
disabled: !table.getCanPreviousPage(),
|
|
3751
3868
|
className: "p-2",
|
|
3752
|
-
children: /* @__PURE__ */
|
|
3869
|
+
children: /* @__PURE__ */ jsx21(ChevronLeft, { className: "w-4 h-4" })
|
|
3753
3870
|
}
|
|
3754
3871
|
),
|
|
3755
3872
|
Array.from(
|
|
@@ -3766,7 +3883,7 @@ function Table({
|
|
|
3766
3883
|
pageNumber = currentPage - 2 + i;
|
|
3767
3884
|
}
|
|
3768
3885
|
const isActive = pageNumber === currentPage;
|
|
3769
|
-
return /* @__PURE__ */
|
|
3886
|
+
return /* @__PURE__ */ jsx21(
|
|
3770
3887
|
Button,
|
|
3771
3888
|
{
|
|
3772
3889
|
variant: isActive ? "default" : "ghost",
|
|
@@ -3780,10 +3897,10 @@ function Table({
|
|
|
3780
3897
|
}
|
|
3781
3898
|
),
|
|
3782
3899
|
table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ jsxs14(Fragment2, { children: [
|
|
3783
|
-
/* @__PURE__ */
|
|
3784
|
-
/* @__PURE__ */
|
|
3900
|
+
/* @__PURE__ */ jsx21("span", { className: "px-1 text-secondary", children: "..." }),
|
|
3901
|
+
/* @__PURE__ */ jsx21(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
|
|
3785
3902
|
] }),
|
|
3786
|
-
/* @__PURE__ */
|
|
3903
|
+
/* @__PURE__ */ jsx21(
|
|
3787
3904
|
Button,
|
|
3788
3905
|
{
|
|
3789
3906
|
variant: "ghost",
|
|
@@ -3791,12 +3908,12 @@ function Table({
|
|
|
3791
3908
|
onClick: handleNextPage,
|
|
3792
3909
|
disabled: !table.getCanNextPage(),
|
|
3793
3910
|
className: "p-2",
|
|
3794
|
-
children: /* @__PURE__ */
|
|
3911
|
+
children: /* @__PURE__ */ jsx21(ChevronRight, { className: "w-4 h-4" })
|
|
3795
3912
|
}
|
|
3796
3913
|
)
|
|
3797
3914
|
] }),
|
|
3798
3915
|
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3 w-48", children: [
|
|
3799
|
-
/* @__PURE__ */
|
|
3916
|
+
/* @__PURE__ */ jsx21(
|
|
3800
3917
|
Typography,
|
|
3801
3918
|
{
|
|
3802
3919
|
variant: "body-sm",
|
|
@@ -3810,8 +3927,8 @@ function Table({
|
|
|
3810
3927
|
value: table.getState().pagination.pageSize.toString(),
|
|
3811
3928
|
onValueChange: handlePageSizeChange,
|
|
3812
3929
|
children: [
|
|
3813
|
-
/* @__PURE__ */
|
|
3814
|
-
/* @__PURE__ */
|
|
3930
|
+
/* @__PURE__ */ jsx21(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ jsx21(SelectValue, {}) }),
|
|
3931
|
+
/* @__PURE__ */ jsx21(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ jsx21(SelectItem, { value: size.toString(), children: size }, size)) })
|
|
3815
3932
|
]
|
|
3816
3933
|
}
|
|
3817
3934
|
)
|
|
@@ -3877,9 +3994,18 @@ export {
|
|
|
3877
3994
|
Exclamation,
|
|
3878
3995
|
EyeClosed,
|
|
3879
3996
|
EyeOpen,
|
|
3997
|
+
Field,
|
|
3998
|
+
FieldContent,
|
|
3999
|
+
FieldDescription,
|
|
4000
|
+
FieldError,
|
|
4001
|
+
FieldGroup,
|
|
4002
|
+
FieldLabel,
|
|
4003
|
+
FieldLegend,
|
|
4004
|
+
FieldSeparator,
|
|
4005
|
+
FieldSet,
|
|
4006
|
+
FieldTitle,
|
|
3880
4007
|
Filter,
|
|
3881
4008
|
FilterDescending,
|
|
3882
|
-
FormField,
|
|
3883
4009
|
GenericTooltip,
|
|
3884
4010
|
GraphBar,
|
|
3885
4011
|
GraphDonut,
|
|
@@ -3888,7 +4014,8 @@ export {
|
|
|
3888
4014
|
HamburgerMenu,
|
|
3889
4015
|
Home,
|
|
3890
4016
|
Information,
|
|
3891
|
-
|
|
4017
|
+
Input,
|
|
4018
|
+
Label2 as Label,
|
|
3892
4019
|
LineChart,
|
|
3893
4020
|
Location,
|
|
3894
4021
|
Lock,
|
|
@@ -3910,6 +4037,7 @@ export {
|
|
|
3910
4037
|
SelectSeparator,
|
|
3911
4038
|
SelectTrigger,
|
|
3912
4039
|
SelectValue,
|
|
4040
|
+
Separator2 as Separator,
|
|
3913
4041
|
Share,
|
|
3914
4042
|
Star,
|
|
3915
4043
|
Statement,
|
|
@@ -3919,6 +4047,7 @@ export {
|
|
|
3919
4047
|
TabsContent,
|
|
3920
4048
|
TabsList,
|
|
3921
4049
|
TabsTrigger,
|
|
4050
|
+
Textarea,
|
|
3922
4051
|
TooltipContainer,
|
|
3923
4052
|
TooltipItem,
|
|
3924
4053
|
Trash,
|
|
@@ -3945,7 +4074,6 @@ export {
|
|
|
3945
4074
|
getHeatmapColor,
|
|
3946
4075
|
getPerformanceColor,
|
|
3947
4076
|
getSeriesColor,
|
|
3948
|
-
inputVariants,
|
|
3949
4077
|
selectTriggerVariants,
|
|
3950
4078
|
tabsVariants,
|
|
3951
4079
|
typographyVariants,
|