@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/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
- "border-secondary focus-visible:border-2 focus-visible:border-strong data-[state=open]:[&_svg]:rotate-180 data-[placeholder]:text-secondary h-10 py-2",
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/form-field.tsx
1814
- import * as React4 from "react";
1815
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1816
- var FormField = React4.forwardRef(
1817
- ({
1818
- label,
1819
- helperText,
1820
- error = false,
1821
- required = false,
1822
- children,
1823
- className,
1824
- id,
1825
- compact = false,
1826
- ...props
1827
- }, ref) => {
1828
- const generatedId = React4.useId();
1829
- const fieldId = id || generatedId;
1830
- const helperTextId = `${fieldId}-helper`;
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
- helperText && /* @__PURE__ */ jsx4(
1901
- Typography,
1902
- {
1903
- variant: "body-xs",
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/date-picker.tsx
1917
- import * as React6 from "react";
1918
- import * as PopoverPrimitive from "@radix-ui/react-popover";
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/input.tsx
1921
- import * as React5 from "react";
1922
- import { cva as cva5 } from "class-variance-authority";
1923
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1924
- var inputVariants = cva5(
1925
- "flex w-full border bg-light text-dark focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 disabled:border-secondary transition-colors rounded-md px-3 min-w-80 border-secondary focus-visible:border-2 focus-visible:border-strong 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",
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
- variant: {
1929
- input: "h-10 py-2",
1930
- textarea: "h-full resize-none pt-4 pb-2"
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
- variant: "input"
1929
+ orientation: "vertical"
1935
1930
  }
1936
1931
  }
1937
1932
  );
1938
- var Input = React5.forwardRef(
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] = React5.useState(value || "");
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 (variant === "input" && onChange) {
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
- if (variant === "input") {
1981
- const inputEvent = {
1982
- target: { value: "" },
1983
- currentTarget: { value: "" }
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__ */ jsx5(
2122
+ /* @__PURE__ */ jsx7(
2030
2123
  "input",
2031
2124
  {
2032
2125
  className: cn(
2033
- inputVariants({ variant }),
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__ */ jsx5(
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__ */ jsx5(X, { className: "h-4 w-4" })
2144
+ children: /* @__PURE__ */ jsx7(X, { className: "h-4 w-4" })
2052
2145
  }
2053
2146
  ),
2054
- showLock && /* @__PURE__ */ jsx5(Lock, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary" })
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 jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
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 = React6.forwardRef(
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] = React6.useState(
2209
+ const [selectedDate, setSelectedDate] = React5.useState(
2118
2210
  value || parseDate(defaultValue)
2119
2211
  );
2120
- const [currentMonth, setCurrentMonth] = React6.useState(() => {
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] = React6.useState(false);
2125
- const [inputValue, setInputValue] = React6.useState(() => {
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
- React6.useEffect(() => {
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
- React6.useEffect(() => {
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__ */ jsx6(
2271
- TypedInput,
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__ */ jsx6(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsx6("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ jsx6(
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__ */ jsx6(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx6(
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__ */ jsx6(
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__ */ jsx6(ChevronLeft, { className: "h-4 w-4" })
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__ */ jsx6(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx6(SelectValue, {}) }),
2320
- /* @__PURE__ */ jsx6(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ jsx6(SelectItem, { value: index.toString(), children: month }, month)) })
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__ */ jsx6(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ jsx6(SelectValue, {}) }),
2331
- /* @__PURE__ */ jsx6(SelectContent, { children: years.map((year) => /* @__PURE__ */ jsx6(SelectItem, { value: year.toString(), children: year }, year)) })
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__ */ jsx6(
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__ */ jsx6(ChevronRight, { className: "h-4 w-4" })
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__ */ jsx6("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ jsx6(
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__ */ jsx6("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ jsx6(
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__ */ jsx6(
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__ */ jsx6(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
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 React7 from "react";
2484
+ import * as React6 from "react";
2393
2485
  import { cva as cva6 } from "class-variance-authority";
2394
- import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
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 = React7.forwardRef(
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 = React7.useRef(null);
2432
- const [isDragOver, setIsDragOver] = React7.useState(false);
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__ */ jsx7(Typography, { variant: "heading-sm", children: "Upload fail" }),
2504
- /* @__PURE__ */ jsx7(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
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__ */ jsx7(
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__ */ jsx7(Typography, { variant: "heading-sm", className: "text-dark", children: "Uploading files" }),
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__ */ jsx7("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ jsx7(
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__ */ jsx7(
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__ */ jsx7(Typography, { variant: "heading-sm", className: "text-success", children: "Upload successful!" }),
2558
- selectedFiles.length > 0 && /* @__PURE__ */ jsx7("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ jsx7(Typography, { variant: "body-sm", children: file.name }, index)) })
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__ */ jsx7(Typography, { variant: "heading-sm", className: "text-dark", children: "Drag & drop files here" }),
2571
- /* @__PURE__ */ jsx7(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
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__ */ jsx7(
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__ */ jsx7("br", {}),
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__ */ jsx7(
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 React8 from "react";
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 jsx8 } from "react/jsx-runtime";
2739
+ import { jsx as jsx10 } from "react/jsx-runtime";
2648
2740
  var checkboxVariants = cva7(
2649
- "peer size-4 shrink-0 rounded-[4px] border border-strong bg-light hover:bg-info-subtle transition-colors focus-visible:outline-none focus-visible:border-2 focus-visible:border-interactive 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"
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 = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
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__ */ jsx8(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ jsx8(CheckIcon, { variant: "light", className: "size-3" }) })
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 jsx9 } from "react/jsx-runtime";
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__ */ jsx9(
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 jsx10 } from "react/jsx-runtime";
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__ */ jsx10(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx10("div", { ref, className: cn("w-full", className), ...restProps, children }) });
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__ */ jsx10(
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__ */ jsx10(
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__ */ jsx10("span", { className: "pl-3 pr-6 py-2", children })
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__ */ jsx10(
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 jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsx11(MoreMenu, { className: "size-4" }),
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__ */ jsx11(ChevronRight, { className: "ml-auto" })
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__ */ jsx11(
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__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11("span", { className: "flex-1", children })
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__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
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__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11(
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 jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsx12("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ jsx12(
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__ */ jsx12("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
3037
- /* @__PURE__ */ jsx12(Typography, { variant: "body-xs", children: label || key })
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 jsx13 } from "react/jsx-runtime";
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__ */ jsx13("g", { children: /* @__PURE__ */ jsx13("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ jsx13("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ jsx13(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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__ */ jsx13("g", { children: /* @__PURE__ */ jsx13("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ jsx13("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx13(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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__ */ jsx13("g", { children: /* @__PURE__ */ jsx13("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ jsx13("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ jsx13(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
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__ */ jsx13("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx13(
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__ */ jsx13(
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__ */ jsx13(
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__ */ jsx13("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ jsx13(
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__ */ jsx13(
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__ */ jsx13("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ jsx13(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
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 jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsx14(
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__ */ jsx14("br", {}),
3383
+ /* @__PURE__ */ jsx17("br", {}),
3267
3384
  /* @__PURE__ */ jsxs10(Typography, { variant: "label-sm", className, children: [
3268
- /* @__PURE__ */ jsx14(
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__ */ jsx14(Typography, { variant: "label-sm-bold", children: title }),
3288
- items.map((item, index) => /* @__PURE__ */ jsx14(
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 jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsx15("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx15(Typography, { variant: "label-sm-bold", children: title }) }),
3344
- /* @__PURE__ */ jsx15("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx15(
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__ */ jsx15(
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__ */ jsx15(
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__ */ jsx15(
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__ */ jsx15(
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__ */ jsx15(
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__ */ jsx15(ChartLegend, { items: defaultLegendItems })
3536
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx18(ChartLegend, { items: defaultLegendItems })
3420
3537
  ]
3421
3538
  }
3422
3539
  )
3423
3540
  }
3424
- ) : /* @__PURE__ */ jsx15("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx15(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsx16("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx16(Typography, { variant: "label-sm-bold", children: title }) }),
3478
- /* @__PURE__ */ jsx16("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(
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__ */ jsx16(ChartLegend, { items: defaultLegendItems })
3669
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx19(ChartLegend, { items: defaultLegendItems })
3553
3670
  ]
3554
3671
  }
3555
3672
  )
3556
3673
  }
3557
- ) : /* @__PURE__ */ jsx16("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx16(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsx17("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ jsx17(Typography, { variant: "label-sm-bold", children: title }) }),
3603
- /* @__PURE__ */ jsx17("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ jsx17("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxs13(
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__ */ jsx17(
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__ */ jsx17(
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__ */ jsx17(
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__ */ jsx17(
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__ */ jsx17(ChartLegend, { items: defaultLegendItems, y: 400 })
3774
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ jsx20(ChartLegend, { items: defaultLegendItems, y: 400 })
3658
3775
  ]
3659
3776
  }
3660
- ) }) : /* @__PURE__ */ jsx17("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ jsx17(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
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 jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsx18("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ jsxs14("table", { className: "min-w-full divide-y divide-border", children: [
3705
- /* @__PURE__ */ jsx18("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx18("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx18("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ jsxs14(
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__ */ jsx18(
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__ */ jsx18(ChevronUp, { className: "w-4 h-4 text-light" }),
3724
- header.column.getIsSorted() === "desc" && /* @__PURE__ */ jsx18(ChevronDown, { className: "w-4 h-4 text-light" })
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__ */ jsx18("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx18("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx18("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ jsx18(Typography, { variant: "body-sm", children: flexRender(
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__ */ jsx18("div", { className: "flex items-center", children: /* @__PURE__ */ jsx18(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
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__ */ jsx18(
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__ */ jsx18(ChevronLeft, { className: "w-4 h-4" })
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__ */ jsx18(
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__ */ jsx18("span", { className: "px-1 text-secondary", children: "..." }),
3784
- /* @__PURE__ */ jsx18(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
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__ */ jsx18(
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__ */ jsx18(ChevronRight, { className: "w-4 h-4" })
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__ */ jsx18(
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__ */ jsx18(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ jsx18(SelectValue, {}) }),
3814
- /* @__PURE__ */ jsx18(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ jsx18(SelectItem, { value: size.toString(), children: size }, size)) })
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
- TypedInput as Input,
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,