@northslopetech/altitude-ui 2.0.17 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -85,6 +85,16 @@ __export(index_exports, {
85
85
  Exclamation: () => Exclamation,
86
86
  EyeClosed: () => EyeClosed,
87
87
  EyeOpen: () => EyeOpen,
88
+ Field: () => Field,
89
+ FieldContent: () => FieldContent,
90
+ FieldDescription: () => FieldDescription,
91
+ FieldError: () => FieldError,
92
+ FieldGroup: () => FieldGroup,
93
+ FieldLabel: () => FieldLabel,
94
+ FieldLegend: () => FieldLegend,
95
+ FieldSeparator: () => FieldSeparator,
96
+ FieldSet: () => FieldSet,
97
+ FieldTitle: () => FieldTitle,
88
98
  Filter: () => Filter,
89
99
  FilterDescending: () => FilterDescending,
90
100
  FormField: () => FormField,
@@ -96,7 +106,8 @@ __export(index_exports, {
96
106
  HamburgerMenu: () => HamburgerMenu,
97
107
  Home: () => Home,
98
108
  Information: () => Information,
99
- Input: () => TypedInput,
109
+ Input: () => Input,
110
+ Label: () => Label2,
100
111
  LineChart: () => LineChart,
101
112
  Location: () => Location,
102
113
  Lock: () => Lock,
@@ -118,6 +129,7 @@ __export(index_exports, {
118
129
  SelectSeparator: () => SelectSeparator,
119
130
  SelectTrigger: () => SelectTrigger,
120
131
  SelectValue: () => SelectValue,
132
+ Separator: () => Separator2,
121
133
  Share: () => Share,
122
134
  Star: () => Star,
123
135
  Statement: () => Statement,
@@ -127,6 +139,7 @@ __export(index_exports, {
127
139
  TabsContent: () => TabsContent,
128
140
  TabsList: () => TabsList,
129
141
  TabsTrigger: () => TabsTrigger,
142
+ Textarea: () => Textarea,
130
143
  TooltipContainer: () => TooltipContainer,
131
144
  TooltipItem: () => TooltipItem,
132
145
  Trash: () => Trash,
@@ -153,7 +166,6 @@ __export(index_exports, {
153
166
  getHeatmapColor: () => getHeatmapColor,
154
167
  getPerformanceColor: () => getPerformanceColor,
155
168
  getSeriesColor: () => getSeriesColor,
156
- inputVariants: () => inputVariants,
157
169
  selectTriggerVariants: () => selectTriggerVariants,
158
170
  tabsVariants: () => tabsVariants,
159
171
  typographyVariants: () => typographyVariants,
@@ -2076,32 +2088,276 @@ var FormField = React4.forwardRef(
2076
2088
  );
2077
2089
  FormField.displayName = "FormField";
2078
2090
 
2079
- // src/components/ui/date-picker.tsx
2080
- var React6 = __toESM(require("react"));
2081
- var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
2082
-
2083
- // src/components/ui/input.tsx
2084
- var React5 = __toESM(require("react"));
2091
+ // src/components/ui/field.tsx
2092
+ var import_react = require("react");
2085
2093
  var import_class_variance_authority5 = require("class-variance-authority");
2094
+
2095
+ // src/components/ui/label.tsx
2096
+ var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
2086
2097
  var import_jsx_runtime6 = require("react/jsx-runtime");
2087
- var inputVariants = (0, import_class_variance_authority5.cva)(
2088
- "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",
2098
+ function Label2({
2099
+ className,
2100
+ ...props
2101
+ }) {
2102
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2103
+ LabelPrimitive.Root,
2104
+ {
2105
+ "data-slot": "label",
2106
+ className: cn(
2107
+ "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",
2108
+ className
2109
+ ),
2110
+ ...props
2111
+ }
2112
+ );
2113
+ }
2114
+
2115
+ // src/components/ui/separator.tsx
2116
+ var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
2117
+ var import_jsx_runtime7 = require("react/jsx-runtime");
2118
+ function Separator2({
2119
+ className,
2120
+ orientation = "horizontal",
2121
+ decorative = true,
2122
+ ...props
2123
+ }) {
2124
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2125
+ SeparatorPrimitive.Root,
2126
+ {
2127
+ "data-slot": "separator",
2128
+ decorative,
2129
+ orientation,
2130
+ className: cn(
2131
+ "bg-subtle shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
2132
+ className
2133
+ ),
2134
+ ...props
2135
+ }
2136
+ );
2137
+ }
2138
+
2139
+ // src/components/ui/field.tsx
2140
+ var import_jsx_runtime8 = require("react/jsx-runtime");
2141
+ function FieldSet({ className, ...props }) {
2142
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2143
+ "fieldset",
2144
+ {
2145
+ "data-slot": "field-set",
2146
+ className: cn(
2147
+ "flex flex-col gap-6",
2148
+ "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
2149
+ className
2150
+ ),
2151
+ ...props
2152
+ }
2153
+ );
2154
+ }
2155
+ function FieldLegend({
2156
+ className,
2157
+ variant = "legend",
2158
+ ...props
2159
+ }) {
2160
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2161
+ "legend",
2162
+ {
2163
+ "data-slot": "field-legend",
2164
+ "data-variant": variant,
2165
+ className: cn(
2166
+ "mb-3 font-medium",
2167
+ "data-[variant=legend]:text-base",
2168
+ "data-[variant=label]:text-sm",
2169
+ className
2170
+ ),
2171
+ ...props
2172
+ }
2173
+ );
2174
+ }
2175
+ function FieldGroup({ className, ...props }) {
2176
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2177
+ "div",
2178
+ {
2179
+ "data-slot": "field-group",
2180
+ className: cn(
2181
+ "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",
2182
+ className
2183
+ ),
2184
+ ...props
2185
+ }
2186
+ );
2187
+ }
2188
+ var fieldVariants = (0, import_class_variance_authority5.cva)(
2189
+ "group/field data-[invalid=true]:text-error flex w-full gap-3",
2089
2190
  {
2090
2191
  variants: {
2091
- variant: {
2092
- input: "h-10 py-2",
2093
- textarea: "h-full resize-none pt-4 pb-2"
2192
+ orientation: {
2193
+ vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
2194
+ horizontal: [
2195
+ "flex-row items-center",
2196
+ "[&>[data-slot=field-label]]:flex-auto",
2197
+ "has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px has-[>[data-slot=field-content]]:items-start"
2198
+ ],
2199
+ responsive: [
2200
+ "@md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto flex-col [&>*]:w-full [&>.sr-only]:w-auto",
2201
+ "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
2202
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
2203
+ ]
2094
2204
  }
2095
2205
  },
2096
2206
  defaultVariants: {
2097
- variant: "input"
2207
+ orientation: "vertical"
2098
2208
  }
2099
2209
  }
2100
2210
  );
2211
+ function Field({
2212
+ className,
2213
+ orientation = "vertical",
2214
+ ...props
2215
+ }) {
2216
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2217
+ "div",
2218
+ {
2219
+ role: "group",
2220
+ "data-slot": "field",
2221
+ "data-orientation": orientation,
2222
+ className: cn(fieldVariants({ orientation }), className),
2223
+ ...props
2224
+ }
2225
+ );
2226
+ }
2227
+ function FieldContent({ className, ...props }) {
2228
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2229
+ "div",
2230
+ {
2231
+ "data-slot": "field-content",
2232
+ className: cn(
2233
+ "group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
2234
+ className
2235
+ ),
2236
+ ...props
2237
+ }
2238
+ );
2239
+ }
2240
+ function FieldLabel({
2241
+ className,
2242
+ ...props
2243
+ }) {
2244
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2245
+ Label2,
2246
+ {
2247
+ "data-slot": "field-label",
2248
+ className: cn(
2249
+ "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
2250
+ "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",
2251
+ "has-data-[state=checked]:bg-gray has-data-[state=checked]:border-dark",
2252
+ className
2253
+ ),
2254
+ ...props
2255
+ }
2256
+ );
2257
+ }
2258
+ function FieldTitle({ className, ...props }) {
2259
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2260
+ "div",
2261
+ {
2262
+ "data-slot": "field-label",
2263
+ className: cn(
2264
+ "flex w-fit items-center gap-2 text-sm font-medium leading-snug group-data-[disabled=true]/field:opacity-50",
2265
+ className
2266
+ ),
2267
+ ...props
2268
+ }
2269
+ );
2270
+ }
2271
+ function FieldDescription({ className, ...props }) {
2272
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2273
+ "p",
2274
+ {
2275
+ "data-slot": "field-description",
2276
+ className: cn(
2277
+ "text-secondary text-sm font-normal leading-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
2278
+ "nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5",
2279
+ "[&>a:hover]:text-dark [&>a]:underline [&>a]:underline-offset-4",
2280
+ className
2281
+ ),
2282
+ ...props
2283
+ }
2284
+ );
2285
+ }
2286
+ function FieldSeparator({
2287
+ children,
2288
+ className,
2289
+ ...props
2290
+ }) {
2291
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2292
+ "div",
2293
+ {
2294
+ "data-slot": "field-separator",
2295
+ "data-content": !!children,
2296
+ className: cn(
2297
+ "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
2298
+ className
2299
+ ),
2300
+ ...props,
2301
+ children: [
2302
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Separator2, { className: "absolute inset-0 top-1/2" }),
2303
+ children && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2304
+ "span",
2305
+ {
2306
+ className: "bg-light text-secondary relative mx-auto block w-fit px-2",
2307
+ "data-slot": "field-separator-content",
2308
+ children
2309
+ }
2310
+ )
2311
+ ]
2312
+ }
2313
+ );
2314
+ }
2315
+ function FieldError({
2316
+ className,
2317
+ children,
2318
+ errors,
2319
+ ...props
2320
+ }) {
2321
+ const content = (0, import_react.useMemo)(() => {
2322
+ if (children) {
2323
+ return children;
2324
+ }
2325
+ if (!errors) {
2326
+ return null;
2327
+ }
2328
+ if (errors?.length === 1 && errors[0]?.message) {
2329
+ return errors[0].message;
2330
+ }
2331
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
2332
+ (error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { children: error.message }, index)
2333
+ ) });
2334
+ }, [children, errors]);
2335
+ if (!content) {
2336
+ return null;
2337
+ }
2338
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2339
+ "div",
2340
+ {
2341
+ role: "alert",
2342
+ "data-slot": "field-error",
2343
+ className: cn("text-error text-sm font-normal", className),
2344
+ ...props,
2345
+ children: content
2346
+ }
2347
+ );
2348
+ }
2349
+
2350
+ // src/components/ui/date-picker.tsx
2351
+ var React6 = __toESM(require("react"));
2352
+ var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
2353
+
2354
+ // src/components/ui/input.tsx
2355
+ var React5 = __toESM(require("react"));
2356
+ var import_jsx_runtime9 = require("react/jsx-runtime");
2357
+ var inputBaseStyles = "flex h-10 py-2 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";
2101
2358
  var Input = React5.forwardRef(
2102
2359
  ({
2103
2360
  className,
2104
- variant = "input",
2105
2361
  style,
2106
2362
  value,
2107
2363
  onChange,
@@ -2123,15 +2379,7 @@ var Input = React5.forwardRef(
2123
2379
  if (!isControlled) {
2124
2380
  setInternalValue(e.target.value);
2125
2381
  }
2126
- if (variant === "input" && onChange) {
2127
- onChange(e);
2128
- }
2129
- };
2130
- const handleTextareaChange = (e) => {
2131
- if (!isControlled) {
2132
- setInternalValue(e.target.value);
2133
- }
2134
- if (variant === "textarea" && onChange) {
2382
+ if (onChange) {
2135
2383
  onChange(e);
2136
2384
  }
2137
2385
  };
@@ -2140,60 +2388,20 @@ var Input = React5.forwardRef(
2140
2388
  setInternalValue("");
2141
2389
  }
2142
2390
  if (onChange) {
2143
- if (variant === "input") {
2144
- const inputEvent = {
2145
- target: { value: "" },
2146
- currentTarget: { value: "" }
2147
- };
2148
- onChange(inputEvent);
2149
- } else {
2150
- const textareaEvent = {
2151
- target: { value: "" },
2152
- currentTarget: { value: "" }
2153
- };
2154
- onChange(
2155
- textareaEvent
2156
- );
2157
- }
2391
+ const inputEvent = {
2392
+ target: { value: "" },
2393
+ currentTarget: { value: "" }
2394
+ };
2395
+ onChange(inputEvent);
2158
2396
  }
2159
2397
  onClear?.();
2160
2398
  };
2161
- if (variant === "textarea") {
2162
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "relative", children: [
2163
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2164
- "textarea",
2165
- {
2166
- className: cn(
2167
- inputVariants({ variant }),
2168
- (showClear || showLock) && "pr-10",
2169
- className
2170
- ),
2171
- style: tokenStyles,
2172
- ref,
2173
- value: currentValue,
2174
- onChange: handleTextareaChange,
2175
- readOnly,
2176
- ...props
2177
- }
2178
- ),
2179
- showClear && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2180
- "button",
2181
- {
2182
- type: "button",
2183
- onClick: handleClear,
2184
- className: "absolute right-3 top-3 h-4 w-4 text-secondary hover:text-dark transition-colors",
2185
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(X, { className: "h-4 w-4" })
2186
- }
2187
- ),
2188
- showLock && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Lock, { className: "absolute right-3 top-3 h-4 w-4 text-secondary" })
2189
- ] });
2190
- }
2191
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "relative", children: [
2192
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2399
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "relative", children: [
2400
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2193
2401
  "input",
2194
2402
  {
2195
2403
  className: cn(
2196
- inputVariants({ variant }),
2404
+ inputBaseStyles,
2197
2405
  (showClear || showLock) && "pr-10",
2198
2406
  className
2199
2407
  ),
@@ -2205,24 +2413,23 @@ var Input = React5.forwardRef(
2205
2413
  ...props
2206
2414
  }
2207
2415
  ),
2208
- showClear && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
2416
+ showClear && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2209
2417
  "button",
2210
2418
  {
2211
2419
  type: "button",
2212
2420
  onClick: handleClear,
2213
2421
  className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary hover:text-dark transition-colors",
2214
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(X, { className: "h-4 w-4" })
2422
+ children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(X, { className: "h-4 w-4" })
2215
2423
  }
2216
2424
  ),
2217
- showLock && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Lock, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary" })
2425
+ showLock && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Lock, { className: "absolute right-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-secondary" })
2218
2426
  ] });
2219
2427
  }
2220
2428
  );
2221
2429
  Input.displayName = "Input";
2222
- var TypedInput = Input;
2223
2430
 
2224
2431
  // src/components/ui/date-picker.tsx
2225
- var import_jsx_runtime7 = require("react/jsx-runtime");
2432
+ var import_jsx_runtime10 = require("react/jsx-runtime");
2226
2433
  var getDayNames = () => {
2227
2434
  const days = [];
2228
2435
  for (let i = 0; i < 7; i++) {
@@ -2423,15 +2630,15 @@ var DatePicker = React6.forwardRef(
2423
2630
  const months = getMonthNames();
2424
2631
  const dayNames = getDayNames();
2425
2632
  const years = generateYears();
2426
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2633
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2427
2634
  PopoverPrimitive.Root,
2428
2635
  {
2429
2636
  open: disabled ? false : open,
2430
2637
  onOpenChange: disabled ? void 0 : setOpen,
2431
2638
  children: [
2432
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "relative", children: [
2433
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2434
- TypedInput,
2639
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "relative", children: [
2640
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2641
+ Input,
2435
2642
  {
2436
2643
  ref,
2437
2644
  value: inputValue,
@@ -2443,7 +2650,7 @@ var DatePicker = React6.forwardRef(
2443
2650
  ...props
2444
2651
  }
2445
2652
  ),
2446
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2653
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 hover:bg-gray rounded p-0.5 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2447
2654
  Calendar,
2448
2655
  {
2449
2656
  className: cn(
@@ -2453,7 +2660,7 @@ var DatePicker = React6.forwardRef(
2453
2660
  }
2454
2661
  ) }) })
2455
2662
  ] }),
2456
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2663
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2457
2664
  PopoverPrimitive.Content,
2458
2665
  {
2459
2666
  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",
@@ -2462,51 +2669,51 @@ var DatePicker = React6.forwardRef(
2462
2669
  alignOffset: -12,
2463
2670
  side: "bottom",
2464
2671
  sticky: "always",
2465
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "p-4", children: [
2466
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center justify-between mb-4 gap-1", children: [
2467
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2672
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "p-4", children: [
2673
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex items-center justify-between mb-4 gap-1", children: [
2674
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2468
2675
  "button",
2469
2676
  {
2470
2677
  onClick: () => handleMonthChange("prev"),
2471
2678
  className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
2472
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ChevronLeft, { className: "h-4 w-4" })
2679
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronLeft, { className: "h-4 w-4" })
2473
2680
  }
2474
2681
  ),
2475
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex gap-1 flex-1 min-w-0", children: [
2476
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2682
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex gap-1 flex-1 min-w-0", children: [
2683
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2477
2684
  Select,
2478
2685
  {
2479
2686
  value: currentMonth.getMonth().toString(),
2480
2687
  onValueChange: handleMonthSelect,
2481
2688
  children: [
2482
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectValue, {}) }),
2483
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectItem, { value: index.toString(), children: month }, month)) })
2689
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectValue, {}) }),
2690
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectContent, { children: months.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectItem, { value: index.toString(), children: month }, month)) })
2484
2691
  ]
2485
2692
  }
2486
2693
  ),
2487
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
2694
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2488
2695
  Select,
2489
2696
  {
2490
2697
  value: currentMonth.getFullYear().toString(),
2491
2698
  onValueChange: handleYearSelect,
2492
2699
  children: [
2493
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectValue, {}) }),
2494
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectContent, { children: years.map((year) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(SelectItem, { value: year.toString(), children: year }, year)) })
2700
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectTrigger, { className: "min-w-fit h-8 text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectValue, {}) }),
2701
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectContent, { children: years.map((year) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(SelectItem, { value: year.toString(), children: year }, year)) })
2495
2702
  ]
2496
2703
  }
2497
2704
  )
2498
2705
  ] }),
2499
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2706
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2500
2707
  "button",
2501
2708
  {
2502
2709
  onClick: () => handleMonthChange("next"),
2503
2710
  className: "p-1 hover:bg-gray rounded transition-colors flex-shrink-0",
2504
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ChevronRight, { className: "h-4 w-4" })
2711
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { className: "h-4 w-4" })
2505
2712
  }
2506
2713
  )
2507
2714
  ] }),
2508
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "space-y-1", children: [
2509
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2715
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "space-y-1", children: [
2716
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: dayNames.map((day) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2510
2717
  Typography,
2511
2718
  {
2512
2719
  variant: "label-xs-bold",
@@ -2516,11 +2723,11 @@ var DatePicker = React6.forwardRef(
2516
2723
  },
2517
2724
  day
2518
2725
  )) }),
2519
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2726
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "grid grid-cols-7 gap-1", children: days.map((date, index) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2520
2727
  "div",
2521
2728
  {
2522
2729
  className: "h-8 w-8 flex items-center justify-center",
2523
- children: date && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2730
+ children: date && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2524
2731
  "button",
2525
2732
  {
2526
2733
  onClick: () => handleDateSelect(date),
@@ -2534,7 +2741,7 @@ var DatePicker = React6.forwardRef(
2534
2741
  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",
2535
2742
  isDateDisabled(date) && "text-secondary/40 cursor-not-allowed opacity-50"
2536
2743
  ),
2537
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
2744
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Typography, { variant: "label-sm", as: "span", children: date.getDate() })
2538
2745
  }
2539
2746
  )
2540
2747
  },
@@ -2554,7 +2761,7 @@ DatePicker.displayName = "DatePicker";
2554
2761
  // src/components/ui/upload.tsx
2555
2762
  var React7 = __toESM(require("react"));
2556
2763
  var import_class_variance_authority6 = require("class-variance-authority");
2557
- var import_jsx_runtime8 = require("react/jsx-runtime");
2764
+ var import_jsx_runtime11 = require("react/jsx-runtime");
2558
2765
  var DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
2559
2766
  var uploadVariants = (0, import_class_variance_authority6.cva)(
2560
2767
  "relative flex flex-col items-center justify-center rounded-lg transition-all duration-200 ease-in-out overflow-hidden",
@@ -2656,17 +2863,17 @@ var Upload = React7.forwardRef(
2656
2863
  const renderContent = () => {
2657
2864
  switch (effectiveState) {
2658
2865
  case "error":
2659
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2866
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2660
2867
  "div",
2661
2868
  {
2662
2869
  className: "flex flex-col items-center text-center max-w-[289px]",
2663
2870
  style: { gap: "32px" },
2664
2871
  children: [
2665
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "space-y-4", children: [
2666
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "heading-sm", children: "Upload fail" }),
2667
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
2872
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-4", children: [
2873
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "heading-sm", children: "Upload fail" }),
2874
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "body-md", className: "text-error", children: errorMessage })
2668
2875
  ] }),
2669
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2876
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2670
2877
  Button,
2671
2878
  {
2672
2879
  variant: "destructive",
@@ -2680,22 +2887,22 @@ var Upload = React7.forwardRef(
2680
2887
  }
2681
2888
  );
2682
2889
  case "uploading":
2683
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2890
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2684
2891
  "div",
2685
2892
  {
2686
2893
  className: "flex flex-col items-center text-center max-w-[289px]",
2687
2894
  style: { gap: "32px" },
2688
2895
  children: [
2689
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Uploading files" }),
2690
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "w-full max-w-[720px] space-y-2", children: [
2691
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2896
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Uploading files" }),
2897
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "w-full max-w-[720px] space-y-2", children: [
2898
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "w-full bg-gray rounded-full h-2", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2692
2899
  "div",
2693
2900
  {
2694
2901
  className: "bg-canvas-primary h-2 rounded-full transition-all duration-300 ease-in-out",
2695
2902
  style: { width: `${progress}%` }
2696
2903
  }
2697
2904
  ) }),
2698
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2905
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2699
2906
  Typography,
2700
2907
  {
2701
2908
  variant: "body-sm",
@@ -2711,29 +2918,29 @@ var Upload = React7.forwardRef(
2711
2918
  }
2712
2919
  );
2713
2920
  case "success":
2714
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2921
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2715
2922
  "div",
2716
2923
  {
2717
2924
  className: "flex flex-col items-center text-center max-w-[289px]",
2718
2925
  style: { gap: "32px" },
2719
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "space-y-4", children: [
2720
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "heading-sm", className: "text-success", children: "Upload successful!" }),
2721
- selectedFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "body-sm", children: file.name }, index)) })
2926
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-4", children: [
2927
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "heading-sm", className: "text-success", children: "Upload successful!" }),
2928
+ selectedFiles.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "text-center", children: selectedFiles.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "body-sm", children: file.name }, index)) })
2722
2929
  ] })
2723
2930
  }
2724
2931
  );
2725
2932
  default:
2726
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2933
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2727
2934
  "div",
2728
2935
  {
2729
2936
  className: "flex flex-col items-center text-center max-w-[289px]",
2730
2937
  style: { gap: "32px" },
2731
2938
  children: [
2732
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "space-y-4", children: [
2733
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Drag & drop files here" }),
2734
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
2939
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "space-y-4", children: [
2940
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "heading-sm", className: "text-dark", children: "Drag & drop files here" }),
2941
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "or click to browse from your computer" })
2735
2942
  ] }),
2736
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2943
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2737
2944
  Button,
2738
2945
  {
2739
2946
  variant: "default",
@@ -2747,10 +2954,10 @@ var Upload = React7.forwardRef(
2747
2954
  children: "Choose files"
2748
2955
  }
2749
2956
  ),
2750
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(Typography, { variant: "body-sm", className: "text-secondary", children: [
2957
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Typography, { variant: "body-sm", className: "text-secondary", children: [
2751
2958
  "Supported file: ",
2752
2959
  getFileTypeDisplay(),
2753
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("br", {}),
2960
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("br", {}),
2754
2961
  "Max: ",
2755
2962
  Math.round(maxFileSize / 1024 / 1024),
2756
2963
  " MB each"
@@ -2760,7 +2967,7 @@ var Upload = React7.forwardRef(
2760
2967
  );
2761
2968
  }
2762
2969
  };
2763
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2970
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2764
2971
  "div",
2765
2972
  {
2766
2973
  ref,
@@ -2784,7 +2991,7 @@ var Upload = React7.forwardRef(
2784
2991
  "aria-disabled": disabled,
2785
2992
  ...props,
2786
2993
  children: [
2787
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2994
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2788
2995
  "input",
2789
2996
  {
2790
2997
  ref: fileInputRef,
@@ -2807,25 +3014,51 @@ Upload.displayName = "Upload";
2807
3014
  var React8 = __toESM(require("react"));
2808
3015
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
2809
3016
  var import_class_variance_authority7 = require("class-variance-authority");
2810
- var import_jsx_runtime9 = require("react/jsx-runtime");
3017
+ var import_jsx_runtime12 = require("react/jsx-runtime");
2811
3018
  var checkboxVariants = (0, import_class_variance_authority7.cva)(
2812
3019
  "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"
2813
3020
  );
2814
- var Checkbox = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
3021
+ var Checkbox = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2815
3022
  CheckboxPrimitive.Root,
2816
3023
  {
2817
3024
  ref,
2818
3025
  className: cn(checkboxVariants(), className),
2819
3026
  ...props,
2820
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CheckIcon, { variant: "light", className: "size-3" }) })
3027
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CheckIcon, { variant: "light", className: "size-3" }) })
2821
3028
  }
2822
3029
  ));
2823
3030
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
2824
3031
 
2825
- // src/components/ui/badge.tsx
3032
+ // src/components/ui/textarea.tsx
2826
3033
  var React9 = __toESM(require("react"));
3034
+ var import_jsx_runtime13 = require("react/jsx-runtime");
3035
+ var Textarea = React9.forwardRef(
3036
+ ({ className, style, error, ...props }, ref) => {
3037
+ const tokenStyles = {
3038
+ font: "var(--typography-label-md-regular)",
3039
+ ...style
3040
+ };
3041
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3042
+ "textarea",
3043
+ {
3044
+ className: cn(
3045
+ "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",
3046
+ error ? "border-error focus-visible:border-2 focus-visible:border-error" : "border-secondary focus-visible:border-2 focus-visible:border-strong disabled:border-secondary",
3047
+ className
3048
+ ),
3049
+ style: tokenStyles,
3050
+ ref,
3051
+ ...props
3052
+ }
3053
+ );
3054
+ }
3055
+ );
3056
+ Textarea.displayName = "Textarea";
3057
+
3058
+ // src/components/ui/badge.tsx
3059
+ var React10 = __toESM(require("react"));
2827
3060
  var import_class_variance_authority8 = require("class-variance-authority");
2828
- var import_jsx_runtime10 = require("react/jsx-runtime");
3061
+ var import_jsx_runtime14 = require("react/jsx-runtime");
2829
3062
  var badgeVariants = (0, import_class_variance_authority8.cva)(
2830
3063
  "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",
2831
3064
  {
@@ -2848,7 +3081,7 @@ var badgeVariants = (0, import_class_variance_authority8.cva)(
2848
3081
  function getBadgeTypographyStyles() {
2849
3082
  return { font: "var(--typography-label-sm-bold)" };
2850
3083
  }
2851
- var Badge = React9.forwardRef(
3084
+ var Badge = React10.forwardRef(
2852
3085
  ({ className, variant, style, ...props }, ref) => {
2853
3086
  if (!variant) {
2854
3087
  return null;
@@ -2858,7 +3091,7 @@ var Badge = React9.forwardRef(
2858
3091
  ...typographyStyles,
2859
3092
  ...style
2860
3093
  };
2861
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
3094
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2862
3095
  "span",
2863
3096
  {
2864
3097
  className: cn(
@@ -2876,9 +3109,9 @@ var Badge = React9.forwardRef(
2876
3109
  Badge.displayName = "Badge";
2877
3110
 
2878
3111
  // src/components/ui/tabs.tsx
2879
- var React10 = __toESM(require("react"));
3112
+ var React11 = __toESM(require("react"));
2880
3113
  var import_class_variance_authority9 = require("class-variance-authority");
2881
- var import_jsx_runtime11 = require("react/jsx-runtime");
3114
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2882
3115
  var tabsVariants = (0, import_class_variance_authority9.cva)(
2883
3116
  "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",
2884
3117
  {
@@ -2892,17 +3125,17 @@ var tabsVariants = (0, import_class_variance_authority9.cva)(
2892
3125
  }
2893
3126
  }
2894
3127
  );
2895
- var TabsContext = React10.createContext(
3128
+ var TabsContext = React11.createContext(
2896
3129
  void 0
2897
3130
  );
2898
3131
  function useTabsContext() {
2899
- const context = React10.useContext(TabsContext);
3132
+ const context = React11.useContext(TabsContext);
2900
3133
  if (!context) {
2901
3134
  throw new Error("Tabs components must be used within a Tabs provider");
2902
3135
  }
2903
3136
  return context;
2904
3137
  }
2905
- var Tabs = React10.forwardRef((props, ref) => {
3138
+ var Tabs = React11.forwardRef((props, ref) => {
2906
3139
  const {
2907
3140
  className,
2908
3141
  value,
@@ -2911,7 +3144,7 @@ var Tabs = React10.forwardRef((props, ref) => {
2911
3144
  children,
2912
3145
  ...restProps
2913
3146
  } = props;
2914
- const contextValue = React10.useMemo(
3147
+ const contextValue = React11.useMemo(
2915
3148
  () => ({
2916
3149
  activeTab: value,
2917
3150
  setActiveTab: onValueChange,
@@ -2919,13 +3152,13 @@ var Tabs = React10.forwardRef((props, ref) => {
2919
3152
  }),
2920
3153
  [value, onValueChange, variant]
2921
3154
  );
2922
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { ref, className: cn("w-full", className), ...restProps, children }) });
3155
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TabsContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ref, className: cn("w-full", className), ...restProps, children }) });
2923
3156
  });
2924
3157
  Tabs.displayName = "Tabs";
2925
- var TabsList = React10.forwardRef(
3158
+ var TabsList = React11.forwardRef(
2926
3159
  (props, ref) => {
2927
3160
  const { className, children, ...restProps } = props;
2928
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3161
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2929
3162
  "div",
2930
3163
  {
2931
3164
  ref,
@@ -2941,7 +3174,7 @@ TabsList.displayName = "TabsList";
2941
3174
  var getTabTypographyStyles = (isActive) => ({
2942
3175
  font: isActive ? "var(--typography-label-sm-bold)" : "var(--typography-label-sm-regular)"
2943
3176
  });
2944
- var TabsTrigger = React10.forwardRef(
3177
+ var TabsTrigger = React11.forwardRef(
2945
3178
  (props, ref) => {
2946
3179
  const { className, value, disabled, style, children, ...restProps } = props;
2947
3180
  const { activeTab, setActiveTab, variant } = useTabsContext();
@@ -2949,22 +3182,22 @@ var TabsTrigger = React10.forwardRef(
2949
3182
  throw new Error("TabsTrigger must have a value prop");
2950
3183
  }
2951
3184
  const isActive = activeTab === value;
2952
- const tokenStyles = React10.useMemo(
3185
+ const tokenStyles = React11.useMemo(
2953
3186
  () => ({
2954
3187
  ...getTabTypographyStyles(isActive),
2955
3188
  ...style
2956
3189
  }),
2957
3190
  [isActive, style]
2958
3191
  );
2959
- const triggerClassName = React10.useMemo(
3192
+ const triggerClassName = React11.useMemo(
2960
3193
  () => cn(tabsVariants({ variant }), className),
2961
3194
  [variant, className]
2962
3195
  );
2963
- const handleClick = React10.useCallback(() => {
3196
+ const handleClick = React11.useCallback(() => {
2964
3197
  if (disabled) return;
2965
3198
  setActiveTab(value);
2966
3199
  }, [disabled, setActiveTab, value]);
2967
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3200
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2968
3201
  "button",
2969
3202
  {
2970
3203
  ref,
@@ -2978,13 +3211,13 @@ var TabsTrigger = React10.forwardRef(
2978
3211
  disabled,
2979
3212
  onClick: handleClick,
2980
3213
  ...restProps,
2981
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "pl-3 pr-6 py-2", children })
3214
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "pl-3 pr-6 py-2", children })
2982
3215
  }
2983
3216
  );
2984
3217
  }
2985
3218
  );
2986
3219
  TabsTrigger.displayName = "TabsTrigger";
2987
- var TabsContent = React10.forwardRef(
3220
+ var TabsContent = React11.forwardRef(
2988
3221
  (props, ref) => {
2989
3222
  const { className, value, children, ...restProps } = props;
2990
3223
  const { activeTab } = useTabsContext();
@@ -2995,7 +3228,7 @@ var TabsContent = React10.forwardRef(
2995
3228
  if (!isActive) {
2996
3229
  return null;
2997
3230
  }
2998
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
3231
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2999
3232
  "div",
3000
3233
  {
3001
3234
  ref,
@@ -3013,11 +3246,11 @@ var TabsContent = React10.forwardRef(
3013
3246
  TabsContent.displayName = "TabsContent";
3014
3247
 
3015
3248
  // src/components/ui/dropdown-menu.tsx
3016
- var React11 = __toESM(require("react"));
3249
+ var React12 = __toESM(require("react"));
3017
3250
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
3018
- var import_jsx_runtime12 = require("react/jsx-runtime");
3251
+ var import_jsx_runtime16 = require("react/jsx-runtime");
3019
3252
  var DropdownMenu = DropdownMenuPrimitive.Root;
3020
- var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3253
+ var DropdownMenuTrigger = React12.forwardRef(({ className, icon, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3021
3254
  DropdownMenuPrimitive.Trigger,
3022
3255
  {
3023
3256
  ref,
@@ -3027,7 +3260,7 @@ var DropdownMenuTrigger = React11.forwardRef(({ className, icon, children, ...pr
3027
3260
  ),
3028
3261
  ...props,
3029
3262
  children: [
3030
- icon || /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(MoreMenu, { className: "size-4" }),
3263
+ icon || /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MoreMenu, { className: "size-4" }),
3031
3264
  children
3032
3265
  ]
3033
3266
  }
@@ -3037,7 +3270,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
3037
3270
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
3038
3271
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
3039
3272
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
3040
- var DropdownMenuSubTrigger = React11.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3273
+ var DropdownMenuSubTrigger = React12.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3041
3274
  DropdownMenuPrimitive.SubTrigger,
3042
3275
  {
3043
3276
  ref,
@@ -3050,12 +3283,12 @@ var DropdownMenuSubTrigger = React11.forwardRef(({ className, inset, children, .
3050
3283
  ...props,
3051
3284
  children: [
3052
3285
  children,
3053
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { className: "ml-auto" })
3286
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChevronRight, { className: "ml-auto" })
3054
3287
  ]
3055
3288
  }
3056
3289
  ));
3057
3290
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3058
- var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3291
+ var DropdownMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3059
3292
  DropdownMenuPrimitive.SubContent,
3060
3293
  {
3061
3294
  ref,
@@ -3067,7 +3300,7 @@ var DropdownMenuSubContent = React11.forwardRef(({ className, ...props }, ref) =
3067
3300
  }
3068
3301
  ));
3069
3302
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3070
- var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3303
+ var DropdownMenuContent = React12.forwardRef(({ className, sideOffset = 4, align = "end", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3071
3304
  DropdownMenuPrimitive.Content,
3072
3305
  {
3073
3306
  ref,
@@ -3081,7 +3314,7 @@ var DropdownMenuContent = React11.forwardRef(({ className, sideOffset = 4, align
3081
3314
  }
3082
3315
  ) }));
3083
3316
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3084
- var DropdownMenuItem = React11.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3317
+ var DropdownMenuItem = React12.forwardRef(({ className, inset, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3085
3318
  DropdownMenuPrimitive.Item,
3086
3319
  {
3087
3320
  ref,
@@ -3098,7 +3331,7 @@ var DropdownMenuItem = React11.forwardRef(({ className, inset, style, ...props }
3098
3331
  }
3099
3332
  ));
3100
3333
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3101
- var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3334
+ var DropdownMenuCheckboxItem = React12.forwardRef(({ className, children, style, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3102
3335
  DropdownMenuPrimitive.CheckboxItem,
3103
3336
  {
3104
3337
  ref,
@@ -3113,7 +3346,7 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
3113
3346
  },
3114
3347
  ...props,
3115
3348
  children: [
3116
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3349
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3117
3350
  Checkbox,
3118
3351
  {
3119
3352
  checked: checked === true,
@@ -3121,12 +3354,12 @@ var DropdownMenuCheckboxItem = React11.forwardRef(({ className, children, style,
3121
3354
  "aria-hidden": "true"
3122
3355
  }
3123
3356
  ),
3124
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex-1", children })
3357
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "flex-1", children })
3125
3358
  ]
3126
3359
  }
3127
3360
  ));
3128
3361
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3129
- var DropdownMenuRadioItem = React11.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
3362
+ var DropdownMenuRadioItem = React12.forwardRef(({ className, children, style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3130
3363
  DropdownMenuPrimitive.RadioItem,
3131
3364
  {
3132
3365
  ref,
@@ -3140,13 +3373,13 @@ var DropdownMenuRadioItem = React11.forwardRef(({ className, children, style, ..
3140
3373
  },
3141
3374
  ...props,
3142
3375
  children: [
3143
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
3376
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "h-2 w-2 rounded-full bg-current" }) }) }),
3144
3377
  children
3145
3378
  ]
3146
3379
  }
3147
3380
  ));
3148
3381
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3149
- var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3382
+ var DropdownMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3150
3383
  DropdownMenuPrimitive.Label,
3151
3384
  {
3152
3385
  ref,
@@ -3159,7 +3392,7 @@ var DropdownMenuLabel = React11.forwardRef(({ className, inset, ...props }, ref)
3159
3392
  }
3160
3393
  ));
3161
3394
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3162
- var DropdownMenuSeparator = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3395
+ var DropdownMenuSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3163
3396
  DropdownMenuPrimitive.Separator,
3164
3397
  {
3165
3398
  ref,
@@ -3172,7 +3405,7 @@ var DropdownMenuShortcut = ({
3172
3405
  className,
3173
3406
  ...props
3174
3407
  }) => {
3175
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
3408
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3176
3409
  "span",
3177
3410
  {
3178
3411
  className: cn("ml-auto text-xs tracking-widest opacity-60", className),
@@ -3183,21 +3416,21 @@ var DropdownMenuShortcut = ({
3183
3416
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
3184
3417
 
3185
3418
  // src/components/ui/charts/chart-legend.tsx
3186
- var import_jsx_runtime13 = require("react/jsx-runtime");
3419
+ var import_jsx_runtime17 = require("react/jsx-runtime");
3187
3420
  function ChartLegend({
3188
3421
  items,
3189
3422
  x = 0,
3190
3423
  y = 550,
3191
3424
  className = ""
3192
3425
  }) {
3193
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3426
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("foreignObject", { x, y, width: "100%", height: "40", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3194
3427
  "div",
3195
3428
  {
3196
3429
  className: `flex justify-center items-center gap-6 ${className}`,
3197
3430
  style: { height: "100%" },
3198
- children: items.map(({ key, color, label }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex items-center gap-2", children: [
3199
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
3200
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Typography, { variant: "body-xs", children: label || key })
3431
+ children: items.map(({ key, color, label }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-2", children: [
3432
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "w-3 h-3", style: { backgroundColor: color } }),
3433
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "body-xs", children: label || key })
3201
3434
  ] }, key))
3202
3435
  }
3203
3436
  ) });
@@ -3315,12 +3548,12 @@ var formatLargeNumber = (value) => {
3315
3548
  };
3316
3549
 
3317
3550
  // src/components/ui/charts/chart-labels.tsx
3318
- var import_jsx_runtime14 = require("react/jsx-runtime");
3551
+ var import_jsx_runtime18 = require("react/jsx-runtime");
3319
3552
  var createCustomXAxisLabel = (text, yOffset = 40) => {
3320
3553
  const CustomXAxisLabel = ({ viewBox }) => {
3321
3554
  if (!viewBox) return null;
3322
3555
  const { x, y, width } = viewBox;
3323
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3556
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("foreignObject", { x, y: y + yOffset, width, height: 20, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3324
3557
  };
3325
3558
  CustomXAxisLabel.displayName = "CustomXAxisLabel";
3326
3559
  return CustomXAxisLabel;
@@ -3330,7 +3563,7 @@ var createCustomYAxisLabel = (text, leftMargin) => {
3330
3563
  if (!viewBox) return null;
3331
3564
  const { x, y, height } = viewBox;
3332
3565
  const offset = leftMargin ? leftMargin + 10 : 110;
3333
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3566
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("foreignObject", { x: x - offset, y, width: 100, height, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-center h-full transform -rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3334
3567
  };
3335
3568
  CustomYAxisLabel.displayName = "CustomYAxisLabel";
3336
3569
  return CustomYAxisLabel;
@@ -3339,14 +3572,14 @@ var createCustomYAxisRightLabel = (text) => {
3339
3572
  const CustomYAxisRightLabel = ({ viewBox }) => {
3340
3573
  if (!viewBox) return null;
3341
3574
  const { x, y, width, height } = viewBox;
3342
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3575
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("g", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("foreignObject", { x: x + width - 70, y, width: 120, height, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-center h-full transform rotate-90 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "label-xs-bold", className: "text-secondary", children: text }) }) }) });
3343
3576
  };
3344
3577
  CustomYAxisRightLabel.displayName = "CustomYAxisRightLabel";
3345
3578
  return CustomYAxisRightLabel;
3346
3579
  };
3347
3580
  var customXAxisTick = (props) => {
3348
3581
  const { x, y, payload } = props;
3349
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3582
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3350
3583
  "foreignObject",
3351
3584
  {
3352
3585
  x: -20,
@@ -3354,12 +3587,12 @@ var customXAxisTick = (props) => {
3354
3587
  width: 40,
3355
3588
  height: 20,
3356
3589
  style: { overflow: "visible" },
3357
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3590
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3358
3591
  "div",
3359
3592
  {
3360
3593
  className: "flex items-start justify-center h-full",
3361
3594
  style: { overflow: "visible" },
3362
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3595
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3363
3596
  Typography,
3364
3597
  {
3365
3598
  variant: "body-xs",
@@ -3374,7 +3607,7 @@ var customXAxisTick = (props) => {
3374
3607
  };
3375
3608
  var customXAxisTickRotated = (props) => {
3376
3609
  const { x, y, payload } = props;
3377
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3610
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("g", { transform: `translate(${x},${y})`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3378
3611
  "text",
3379
3612
  {
3380
3613
  x: 0,
@@ -3393,25 +3626,25 @@ var customYAxisTick = (props) => {
3393
3626
  const { x, y, payload } = props;
3394
3627
  const text = String(payload.value);
3395
3628
  const estimatedWidth = Math.max(text.length * 8, 80);
3396
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
3629
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3397
3630
  "foreignObject",
3398
3631
  {
3399
3632
  x: x - estimatedWidth + 5,
3400
3633
  y: y - 6,
3401
3634
  width: estimatedWidth,
3402
3635
  height: 15,
3403
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
3636
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "body-xs", className: "text-secondary", children: payload.value }) })
3404
3637
  }
3405
3638
  );
3406
3639
  };
3407
3640
 
3408
3641
  // src/components/ui/charts/chart-tooltip.tsx
3409
- var import_jsx_runtime15 = require("react/jsx-runtime");
3642
+ var import_jsx_runtime19 = require("react/jsx-runtime");
3410
3643
  function TooltipContainer({
3411
3644
  children,
3412
3645
  className = ""
3413
3646
  }) {
3414
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3647
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3415
3648
  "div",
3416
3649
  {
3417
3650
  className: `bg-light border border-subtle rounded p-2.5 text-dark ${className}`,
@@ -3425,10 +3658,10 @@ function TooltipItem({
3425
3658
  value,
3426
3659
  className = ""
3427
3660
  }) {
3428
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
3429
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("br", {}),
3430
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Typography, { variant: "label-sm", className, children: [
3431
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3661
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
3662
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("br", {}),
3663
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Typography, { variant: "label-sm", className, children: [
3664
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3432
3665
  "span",
3433
3666
  {
3434
3667
  className: "inline-block w-3 h-3 mr-1.5",
@@ -3446,9 +3679,9 @@ function GenericTooltip({
3446
3679
  items,
3447
3680
  className = ""
3448
3681
  }) {
3449
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(TooltipContainer, { className, children: [
3450
- title && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Typography, { variant: "label-sm-bold", children: title }),
3451
- items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3682
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(TooltipContainer, { className, children: [
3683
+ title && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "label-sm-bold", children: title }),
3684
+ items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3452
3685
  TooltipItem,
3453
3686
  {
3454
3687
  color: item.color,
@@ -3461,10 +3694,10 @@ function GenericTooltip({
3461
3694
  }
3462
3695
 
3463
3696
  // src/components/ui/charts/bar-chart.tsx
3464
- var import_react = require("react");
3697
+ var import_react2 = require("react");
3465
3698
  var import_recharts = require("recharts");
3466
- var import_jsx_runtime16 = require("react/jsx-runtime");
3467
- var BarChart = (0, import_react.forwardRef)(
3699
+ var import_jsx_runtime20 = require("react/jsx-runtime");
3700
+ var BarChart = (0, import_react2.forwardRef)(
3468
3701
  ({
3469
3702
  data,
3470
3703
  xAxisKey,
@@ -3490,19 +3723,19 @@ var BarChart = (0, import_react.forwardRef)(
3490
3723
  };
3491
3724
  const defaultLegendItems = showLegend && legendItems.length === 0 ? [{ key: yAxisKey, color: barColor, label: yAxisKey }] : legendItems;
3492
3725
  const hasData = data && data.length > 0;
3493
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3726
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
3494
3727
  "div",
3495
3728
  {
3496
3729
  ref,
3497
3730
  className: `bg-light border border-subtle mx-6 ${className}`,
3498
3731
  children: [
3499
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3500
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3732
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3733
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3501
3734
  import_recharts.ResponsiveContainer,
3502
3735
  {
3503
3736
  width: "100%",
3504
3737
  height: CHART_CONSTANTS.STANDARD_HEIGHT,
3505
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
3738
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
3506
3739
  import_recharts.BarChart,
3507
3740
  {
3508
3741
  data,
@@ -3514,7 +3747,7 @@ var BarChart = (0, import_react.forwardRef)(
3514
3747
  onClick: handleClick,
3515
3748
  layout,
3516
3749
  children: [
3517
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3750
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3518
3751
  import_recharts.XAxis,
3519
3752
  {
3520
3753
  dataKey: xAxisKey,
@@ -3528,7 +3761,7 @@ var BarChart = (0, import_react.forwardRef)(
3528
3761
  label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel, 80) : void 0
3529
3762
  }
3530
3763
  ),
3531
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3764
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3532
3765
  import_recharts.YAxis,
3533
3766
  {
3534
3767
  axisLine: false,
@@ -3539,7 +3772,7 @@ var BarChart = (0, import_react.forwardRef)(
3539
3772
  type: yAxisType
3540
3773
  }
3541
3774
  ),
3542
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3775
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3543
3776
  import_recharts.Tooltip,
3544
3777
  {
3545
3778
  content: ({
@@ -3548,7 +3781,7 @@ var BarChart = (0, import_react.forwardRef)(
3548
3781
  label
3549
3782
  }) => {
3550
3783
  if (active && payload && payload.length) {
3551
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3784
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3552
3785
  GenericTooltip,
3553
3786
  {
3554
3787
  title: label?.toString(),
@@ -3564,7 +3797,7 @@ var BarChart = (0, import_react.forwardRef)(
3564
3797
  }
3565
3798
  }
3566
3799
  ),
3567
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3800
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3568
3801
  import_recharts.Bar,
3569
3802
  {
3570
3803
  dataKey: barDataKey || yAxisKey,
@@ -3572,12 +3805,12 @@ var BarChart = (0, import_react.forwardRef)(
3572
3805
  name: barDataKey || yAxisKey
3573
3806
  }
3574
3807
  ),
3575
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ChartLegend, { items: defaultLegendItems })
3808
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ChartLegend, { items: defaultLegendItems })
3576
3809
  ]
3577
3810
  }
3578
3811
  )
3579
3812
  }
3580
- ) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
3813
+ ) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
3581
3814
  ]
3582
3815
  }
3583
3816
  );
@@ -3586,10 +3819,10 @@ var BarChart = (0, import_react.forwardRef)(
3586
3819
  BarChart.displayName = "BarChart";
3587
3820
 
3588
3821
  // src/components/ui/charts/line-chart.tsx
3589
- var import_react2 = require("react");
3822
+ var import_react3 = require("react");
3590
3823
  var import_recharts2 = require("recharts");
3591
- var import_jsx_runtime17 = require("react/jsx-runtime");
3592
- var LineChart = (0, import_react2.forwardRef)(
3824
+ var import_jsx_runtime21 = require("react/jsx-runtime");
3825
+ var LineChart = (0, import_react3.forwardRef)(
3593
3826
  ({
3594
3827
  data,
3595
3828
  xAxisKey,
@@ -3617,19 +3850,19 @@ var LineChart = (0, import_react2.forwardRef)(
3617
3850
  )
3618
3851
  );
3619
3852
  const hasData = data && data.length > 0;
3620
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
3853
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3621
3854
  "div",
3622
3855
  {
3623
3856
  ref,
3624
3857
  className: `bg-light border border-subtle mx-6 ${className}`,
3625
3858
  children: [
3626
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3627
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3859
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3860
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3628
3861
  import_recharts2.ResponsiveContainer,
3629
3862
  {
3630
3863
  width: "100%",
3631
3864
  height: CHART_CONSTANTS.STANDARD_HEIGHT,
3632
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
3865
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3633
3866
  import_recharts2.LineChart,
3634
3867
  {
3635
3868
  data,
@@ -3640,7 +3873,7 @@ var LineChart = (0, import_react2.forwardRef)(
3640
3873
  },
3641
3874
  onClick: handleClick,
3642
3875
  children: [
3643
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3876
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3644
3877
  import_recharts2.XAxis,
3645
3878
  {
3646
3879
  dataKey: xAxisKey,
@@ -3652,7 +3885,7 @@ var LineChart = (0, import_react2.forwardRef)(
3652
3885
  label: xAxisLabel ? createCustomXAxisLabel(xAxisLabel) : void 0
3653
3886
  }
3654
3887
  ),
3655
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3888
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3656
3889
  import_recharts2.YAxis,
3657
3890
  {
3658
3891
  axisLine: false,
@@ -3661,7 +3894,7 @@ var LineChart = (0, import_react2.forwardRef)(
3661
3894
  label: yAxisLabel ? createCustomYAxisLabel(yAxisLabel, 40) : void 0
3662
3895
  }
3663
3896
  ),
3664
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3897
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3665
3898
  import_recharts2.Tooltip,
3666
3899
  {
3667
3900
  content: ({
@@ -3670,7 +3903,7 @@ var LineChart = (0, import_react2.forwardRef)(
3670
3903
  label
3671
3904
  }) => {
3672
3905
  if (active && payload && payload.length) {
3673
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3906
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3674
3907
  GenericTooltip,
3675
3908
  {
3676
3909
  title: label?.toString(),
@@ -3686,7 +3919,7 @@ var LineChart = (0, import_react2.forwardRef)(
3686
3919
  }
3687
3920
  }
3688
3921
  ),
3689
- series.map((s, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3922
+ series.map((s, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3690
3923
  import_recharts2.Line,
3691
3924
  {
3692
3925
  type: "monotone",
@@ -3698,12 +3931,12 @@ var LineChart = (0, import_react2.forwardRef)(
3698
3931
  },
3699
3932
  s.dataKey
3700
3933
  )),
3701
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ChartLegend, { items: defaultLegendItems })
3934
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ChartLegend, { items: defaultLegendItems })
3702
3935
  ]
3703
3936
  }
3704
3937
  )
3705
3938
  }
3706
- ) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
3939
+ ) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
3707
3940
  ]
3708
3941
  }
3709
3942
  );
@@ -3712,10 +3945,10 @@ var LineChart = (0, import_react2.forwardRef)(
3712
3945
  LineChart.displayName = "LineChart";
3713
3946
 
3714
3947
  // src/components/ui/charts/pie-chart.tsx
3715
- var import_react3 = require("react");
3948
+ var import_react4 = require("react");
3716
3949
  var import_recharts3 = require("recharts");
3717
- var import_jsx_runtime18 = require("react/jsx-runtime");
3718
- var PieChart = (0, import_react3.forwardRef)(
3950
+ var import_jsx_runtime22 = require("react/jsx-runtime");
3951
+ var PieChart = (0, import_react4.forwardRef)(
3719
3952
  ({
3720
3953
  data,
3721
3954
  title,
@@ -3742,20 +3975,20 @@ var PieChart = (0, import_react3.forwardRef)(
3742
3975
  )
3743
3976
  );
3744
3977
  const hasData = data && data.length > 0;
3745
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
3978
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3746
3979
  "div",
3747
3980
  {
3748
3981
  ref,
3749
3982
  className: `bg-light border border-subtle mx-6 ${className}`,
3750
3983
  children: [
3751
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3752
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
3984
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-between px-3 py-2 border-b border-subtle", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "label-sm-bold", children: title }) }),
3985
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "pt-2 px-2", children: hasData ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3753
3986
  import_recharts3.PieChart,
3754
3987
  {
3755
3988
  width: 600,
3756
3989
  height: CHART_CONSTANTS.LARGE_HEIGHT,
3757
3990
  children: [
3758
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3991
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3759
3992
  import_recharts3.Pie,
3760
3993
  {
3761
3994
  data,
@@ -3767,7 +4000,7 @@ var PieChart = (0, import_react3.forwardRef)(
3767
4000
  label: showLabels,
3768
4001
  labelLine: false,
3769
4002
  onClick: handleClick,
3770
- children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
4003
+ children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3771
4004
  import_recharts3.Cell,
3772
4005
  {
3773
4006
  fill: entry.color || getSeriesColor(index)
@@ -3776,7 +4009,7 @@ var PieChart = (0, import_react3.forwardRef)(
3776
4009
  ))
3777
4010
  }
3778
4011
  ),
3779
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
4012
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3780
4013
  import_recharts3.Tooltip,
3781
4014
  {
3782
4015
  content: ({
@@ -3785,7 +4018,7 @@ var PieChart = (0, import_react3.forwardRef)(
3785
4018
  }) => {
3786
4019
  if (active && payload && payload.length && payload[0]) {
3787
4020
  const data2 = payload[0].payload;
3788
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
4021
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3789
4022
  GenericTooltip,
3790
4023
  {
3791
4024
  title: data2.name,
@@ -3803,10 +4036,10 @@ var PieChart = (0, import_react3.forwardRef)(
3803
4036
  }
3804
4037
  }
3805
4038
  ),
3806
- showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
4039
+ showLegend && defaultLegendItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChartLegend, { items: defaultLegendItems, y: 400 })
3807
4040
  ]
3808
4041
  }
3809
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
4042
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex items-center justify-center h-[500px]", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Typography, { variant: "body-md", className: "text-secondary", children: "No data is available" }) }) })
3810
4043
  ]
3811
4044
  }
3812
4045
  );
@@ -3815,9 +4048,9 @@ var PieChart = (0, import_react3.forwardRef)(
3815
4048
  PieChart.displayName = "PieChart";
3816
4049
 
3817
4050
  // src/components/ui/table.tsx
3818
- var import_react4 = require("react");
4051
+ var import_react5 = require("react");
3819
4052
  var import_react_table = require("@tanstack/react-table");
3820
- var import_jsx_runtime19 = require("react/jsx-runtime");
4053
+ var import_jsx_runtime23 = require("react/jsx-runtime");
3821
4054
  function Table({
3822
4055
  table,
3823
4056
  className,
@@ -3829,33 +4062,33 @@ function Table({
3829
4062
  const totalPages = table.getPageCount();
3830
4063
  const totalRows = table.getFilteredRowModel().rows.length;
3831
4064
  const showingText = totalRows > 0 ? "Showing " + (currentPage * pageSize + 1) + "-" + Math.min((currentPage + 1) * pageSize, totalRows) + " of " + totalRows + " results" : "No results found";
3832
- const handlePreviousPage = (0, import_react4.useCallback)(() => {
4065
+ const handlePreviousPage = (0, import_react5.useCallback)(() => {
3833
4066
  table.previousPage();
3834
4067
  }, [table]);
3835
- const handleNextPage = (0, import_react4.useCallback)(() => {
4068
+ const handleNextPage = (0, import_react5.useCallback)(() => {
3836
4069
  table.nextPage();
3837
4070
  }, [table]);
3838
- const handlePageChange = (0, import_react4.useCallback)(
4071
+ const handlePageChange = (0, import_react5.useCallback)(
3839
4072
  (pageIndex) => {
3840
4073
  table.setPageIndex(pageIndex);
3841
4074
  },
3842
4075
  [table]
3843
4076
  );
3844
- const handlePageSizeChange = (0, import_react4.useCallback)(
4077
+ const handlePageSizeChange = (0, import_react5.useCallback)(
3845
4078
  (value) => {
3846
4079
  table.setPageSize(Number(value));
3847
4080
  },
3848
4081
  [table]
3849
4082
  );
3850
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { children: [
3851
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("table", { className: "min-w-full divide-y divide-border", children: [
3852
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4083
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { children: [
4084
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: cn("overflow-x-auto", className), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("table", { className: "min-w-full divide-y divide-border", children: [
4085
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("thead", { className: "bg-dark text-light", children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("tr", { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("th", { className: "px-6 py-3 text-left", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3853
4086
  "div",
3854
4087
  {
3855
4088
  className: `flex items-center space-x-1 ${header.column.getCanSort() ? "cursor-pointer select-none" : ""}`,
3856
4089
  onClick: header.column.getToggleSortingHandler(),
3857
4090
  children: [
3858
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4091
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3859
4092
  Typography,
3860
4093
  {
3861
4094
  variant: "label-xs",
@@ -3866,19 +4099,19 @@ function Table({
3866
4099
  )
3867
4100
  }
3868
4101
  ),
3869
- header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("span", { className: "ml-1", children: [
3870
- header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronUp, { className: "w-4 h-4 text-light" }),
3871
- header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronDown, { className: "w-4 h-4 text-light" })
4102
+ header.column.getCanSort() && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "ml-1", children: [
4103
+ header.column.getIsSorted() === "asc" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronUp, { className: "w-4 h-4 text-light" }),
4104
+ header.column.getIsSorted() === "desc" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronDown, { className: "w-4 h-4 text-light" })
3872
4105
  ] })
3873
4106
  ]
3874
4107
  }
3875
4108
  ) }, header.id)) }, headerGroup.id)) }),
3876
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "body-sm", children: (0, import_react_table.flexRender)(
4109
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("tbody", { className: "bg-light divide-y divide-border", children: table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("tr", { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "body-sm", children: (0, import_react_table.flexRender)(
3877
4110
  cell.column.columnDef.cell,
3878
4111
  cell.getContext()
3879
4112
  ) }) }, cell.id)) }, row.id)) })
3880
4113
  ] }) }),
3881
- showPagination && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4114
+ showPagination && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3882
4115
  "div",
3883
4116
  {
3884
4117
  className: cn(
@@ -3886,9 +4119,9 @@ function Table({
3886
4119
  paginationClassName
3887
4120
  ),
3888
4121
  children: [
3889
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
3890
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center space-x-1", children: [
3891
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4122
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: showingText }) }),
4123
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center space-x-1", children: [
4124
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3892
4125
  Button,
3893
4126
  {
3894
4127
  variant: "ghost",
@@ -3896,7 +4129,7 @@ function Table({
3896
4129
  onClick: handlePreviousPage,
3897
4130
  disabled: !table.getCanPreviousPage(),
3898
4131
  className: "p-2",
3899
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronLeft, { className: "w-4 h-4" })
4132
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronLeft, { className: "w-4 h-4" })
3900
4133
  }
3901
4134
  ),
3902
4135
  Array.from(
@@ -3913,7 +4146,7 @@ function Table({
3913
4146
  pageNumber = currentPage - 2 + i;
3914
4147
  }
3915
4148
  const isActive = pageNumber === currentPage;
3916
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4149
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3917
4150
  Button,
3918
4151
  {
3919
4152
  variant: isActive ? "default" : "ghost",
@@ -3926,11 +4159,11 @@ function Table({
3926
4159
  );
3927
4160
  }
3928
4161
  ),
3929
- table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
3930
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "px-1 text-secondary", children: "..." }),
3931
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
4162
+ table.getPageCount() > 5 && currentPage < totalPages - 3 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
4163
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "px-1 text-secondary", children: "..." }),
4164
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Typography, { variant: "body-sm", className: "text-secondary", children: totalPages })
3932
4165
  ] }),
3933
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4166
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3934
4167
  Button,
3935
4168
  {
3936
4169
  variant: "ghost",
@@ -3938,12 +4171,12 @@ function Table({
3938
4171
  onClick: handleNextPage,
3939
4172
  disabled: !table.getCanNextPage(),
3940
4173
  className: "p-2",
3941
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ChevronRight, { className: "w-4 h-4" })
4174
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ChevronRight, { className: "w-4 h-4" })
3942
4175
  }
3943
4176
  )
3944
4177
  ] }),
3945
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-3 w-48", children: [
3946
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
4178
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-3 w-48", children: [
4179
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3947
4180
  Typography,
3948
4181
  {
3949
4182
  variant: "body-sm",
@@ -3951,14 +4184,14 @@ function Table({
3951
4184
  children: "Rows per page:"
3952
4185
  }
3953
4186
  ),
3954
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
4187
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3955
4188
  Select,
3956
4189
  {
3957
4190
  value: table.getState().pagination.pageSize.toString(),
3958
4191
  onValueChange: handlePageSizeChange,
3959
4192
  children: [
3960
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectValue, {}) }),
3961
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SelectItem, { value: size.toString(), children: size }, size)) })
4193
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectTrigger, { className: "min-w-0 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectValue, {}) }),
4194
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectContent, { children: [10, 20, 50, 100].map((size) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SelectItem, { value: size.toString(), children: size }, size)) })
3962
4195
  ]
3963
4196
  }
3964
4197
  )
@@ -4025,6 +4258,16 @@ function Table({
4025
4258
  Exclamation,
4026
4259
  EyeClosed,
4027
4260
  EyeOpen,
4261
+ Field,
4262
+ FieldContent,
4263
+ FieldDescription,
4264
+ FieldError,
4265
+ FieldGroup,
4266
+ FieldLabel,
4267
+ FieldLegend,
4268
+ FieldSeparator,
4269
+ FieldSet,
4270
+ FieldTitle,
4028
4271
  Filter,
4029
4272
  FilterDescending,
4030
4273
  FormField,
@@ -4037,6 +4280,7 @@ function Table({
4037
4280
  Home,
4038
4281
  Information,
4039
4282
  Input,
4283
+ Label,
4040
4284
  LineChart,
4041
4285
  Location,
4042
4286
  Lock,
@@ -4058,6 +4302,7 @@ function Table({
4058
4302
  SelectSeparator,
4059
4303
  SelectTrigger,
4060
4304
  SelectValue,
4305
+ Separator,
4061
4306
  Share,
4062
4307
  Star,
4063
4308
  Statement,
@@ -4067,6 +4312,7 @@ function Table({
4067
4312
  TabsContent,
4068
4313
  TabsList,
4069
4314
  TabsTrigger,
4315
+ Textarea,
4070
4316
  TooltipContainer,
4071
4317
  TooltipItem,
4072
4318
  Trash,
@@ -4093,7 +4339,6 @@ function Table({
4093
4339
  getHeatmapColor,
4094
4340
  getPerformanceColor,
4095
4341
  getSeriesColor,
4096
- inputVariants,
4097
4342
  selectTriggerVariants,
4098
4343
  tabsVariants,
4099
4344
  typographyVariants,