@luxfi/ui 7.3.2 → 7.4.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.
Files changed (59) hide show
  1. package/dist/alert.cjs +2 -2
  2. package/dist/alert.js +1 -1
  3. package/dist/badge.cjs +6 -6
  4. package/dist/badge.js +1 -1
  5. package/dist/bank.cjs +13 -13
  6. package/dist/bank.d.cts +30 -23
  7. package/dist/bank.d.ts +30 -23
  8. package/dist/bank.js +1 -1
  9. package/dist/button.cjs +3 -3
  10. package/dist/button.js +1 -1
  11. package/dist/close-button.cjs +2 -2
  12. package/dist/close-button.js +1 -1
  13. package/dist/dialog.cjs +13 -14
  14. package/dist/dialog.d.cts +58 -5
  15. package/dist/dialog.d.ts +58 -5
  16. package/dist/dialog.js +1 -2
  17. package/dist/drawer.cjs +2 -2
  18. package/dist/drawer.js +1 -1
  19. package/dist/icon-button.cjs +2 -2
  20. package/dist/icon-button.js +1 -1
  21. package/dist/index.cjs +402 -327
  22. package/dist/index.d.cts +6 -2
  23. package/dist/index.d.ts +6 -2
  24. package/dist/index.js +360 -290
  25. package/dist/input.cjs +10 -2
  26. package/dist/input.d.cts +8 -0
  27. package/dist/input.d.ts +8 -0
  28. package/dist/input.js +10 -2
  29. package/dist/lux.config.cjs +56 -0
  30. package/dist/lux.config.d.cts +415 -0
  31. package/dist/lux.config.d.ts +415 -0
  32. package/dist/lux.config.js +48 -0
  33. package/dist/popover.cjs +8 -9
  34. package/dist/popover.js +1 -2
  35. package/dist/provider.cjs +68 -6
  36. package/dist/provider.d.cts +3 -2
  37. package/dist/provider.d.ts +3 -2
  38. package/dist/provider.js +64 -6
  39. package/dist/tag.cjs +7 -8
  40. package/dist/tag.js +1 -2
  41. package/dist/textarea.cjs +10 -2
  42. package/dist/textarea.d.cts +2 -0
  43. package/dist/textarea.d.ts +2 -0
  44. package/dist/textarea.js +10 -2
  45. package/dist/tooltip.cjs +6 -6
  46. package/dist/tooltip.js +1 -1
  47. package/package.json +24 -12
  48. package/src/bank.tsx +2 -2
  49. package/src/button.tsx +1 -1
  50. package/src/close-button.tsx +1 -1
  51. package/src/dialog.tsx +1 -1
  52. package/src/icon-button.tsx +1 -1
  53. package/src/index.ts +6 -0
  54. package/src/input.tsx +17 -1
  55. package/src/lux.config.ts +81 -0
  56. package/src/popover.tsx +1 -1
  57. package/src/provider.tsx +51 -12
  58. package/src/textarea.tsx +11 -1
  59. package/src/tooltip.tsx +2 -2
package/dist/index.js CHANGED
@@ -1,24 +1,22 @@
1
1
  "use client";
2
- import { createGui, styled, View, Text } from '@hanzogui/core';
2
+ import { createGui, styled, View, TooltipGroup, Tooltip as Tooltip$1, Dialog, Popover, Text, GuiProvider } from '@hanzo/gui';
3
3
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
4
+ import * as React30 from 'react';
5
+ import React30__default from 'react';
6
+ import { defaultConfig } from '@hanzogui/config/v5';
4
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
8
  import { clsx } from 'clsx';
6
9
  import { twMerge } from 'tailwind-merge';
7
10
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
8
- import * as React29 from 'react';
9
- import React29__default from 'react';
10
11
  import * as RadixAvatar from '@radix-ui/react-avatar';
11
- import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzogui/tooltip';
12
12
  import { useClickAway, useDebounce } from '@uidotdev/usehooks';
13
13
  import * as RadixCheckbox from '@radix-ui/react-checkbox';
14
14
  import * as Collapsible from '@radix-ui/react-collapsible';
15
- import { Dialog } from '@hanzogui/dialog';
16
15
  import * as RadixDialog from '@radix-ui/react-dialog';
17
16
  import * as LabelPrimitive from '@radix-ui/react-label';
18
17
  import { debounce, throttle } from 'es-toolkit';
19
18
  import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
20
19
  import { LuCheck, LuChevronRight } from 'react-icons/lu';
21
- import { Popover } from '@hanzogui/popover';
22
20
  import * as RadixProgress from '@radix-ui/react-progress';
23
21
  import * as RadixRadioGroup from '@radix-ui/react-radio-group';
24
22
  import * as RadixSelect from '@radix-ui/react-select';
@@ -28,20 +26,76 @@ import * as RadixTabs from '@radix-ui/react-tabs';
28
26
  import { toast, Toaster as Toaster$1 } from 'sonner';
29
27
 
30
28
  // src/provider.tsx
31
- if (typeof window !== "undefined") {
32
- createGui({ settings: { autocompleteSpecificTokens: "except-special" } });
33
- }
29
+ var LUX_BRAND = {
30
+ lux: "#7000FF",
31
+ zoo: "#6C5EFB",
32
+ hanzo: "#EA580C",
33
+ pars: "#1C3879"
34
+ };
35
+ var PARS_GOLD = "#C8A45C";
36
+ var TRUE_BLACK = "#000000";
37
+ var darkBase = {
38
+ ...defaultConfig.themes.dark,
39
+ background: TRUE_BLACK,
40
+ backgroundHover: "#0A0A0A",
41
+ backgroundPress: "#141414",
42
+ backgroundFocus: "#0A0A0A"
43
+ };
44
+ var brandTheme = (accent, extra = {}) => ({
45
+ ...darkBase,
46
+ accentBackground: accent,
47
+ accentColor: "#FFFFFF",
48
+ borderColorHover: accent,
49
+ colorHover: accent,
50
+ ...extra
51
+ });
52
+ var luxThemes = {
53
+ dark: darkBase,
54
+ dark_lux: brandTheme(LUX_BRAND.lux),
55
+ dark_zoo: brandTheme(LUX_BRAND.zoo),
56
+ dark_hanzo: brandTheme(LUX_BRAND.hanzo),
57
+ dark_pars: brandTheme(LUX_BRAND.pars, { accentColor: PARS_GOLD })
58
+ };
59
+ var config = createGui({
60
+ ...defaultConfig,
61
+ settings: {
62
+ ...defaultConfig.settings,
63
+ onlyAllowShorthands: false
64
+ },
65
+ themes: {
66
+ ...defaultConfig.themes,
67
+ ...luxThemes
68
+ }
69
+ });
70
+ var lux_config_default = config;
34
71
  var defaultQueryClient = new QueryClient({
35
72
  defaultOptions: { queries: { refetchOnWindowFocus: false, retry: 1, staleTime: 3e4 } }
36
73
  });
37
- var AppProvider = ({ children, queryClient }) => {
38
- return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient ?? defaultQueryClient, children });
74
+ var FONT_BODY_RESET_ID = "lux-ui-font-body-reset";
75
+ var FONT_BODY_RESET_CSS = "body .font_body{line-height:1.5}";
76
+ var useFontBodyReset = () => {
77
+ React30__default.useInsertionEffect(() => {
78
+ if (typeof document === "undefined") return;
79
+ if (document.getElementById(FONT_BODY_RESET_ID)) return;
80
+ const style = document.createElement("style");
81
+ style.id = FONT_BODY_RESET_ID;
82
+ style.textContent = FONT_BODY_RESET_CSS;
83
+ document.head.appendChild(style);
84
+ }, []);
85
+ };
86
+ var AppProvider = ({
87
+ children,
88
+ queryClient,
89
+ defaultTheme = "dark_lux"
90
+ }) => {
91
+ useFontBodyReset();
92
+ return /* @__PURE__ */ jsx(GuiProvider, { config: lux_config_default, defaultTheme, children: /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient ?? defaultQueryClient, children }) });
39
93
  };
40
94
  function cn(...inputs) {
41
95
  return twMerge(clsx(inputs));
42
96
  }
43
97
  var IndicatorIcon = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M7.5 15L12.5 10L7.5 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
44
- var AccordionRoot = React29.forwardRef(
98
+ var AccordionRoot = React30.forwardRef(
45
99
  function AccordionRoot2(props, ref) {
46
100
  const {
47
101
  multiple: _multiple,
@@ -60,7 +114,7 @@ var AccordionRoot = React29.forwardRef(
60
114
  borderRadius: _borderRadius,
61
115
  ...rest
62
116
  } = props;
63
- const handleValueChange = React29.useCallback(
117
+ const handleValueChange = React30.useCallback(
64
118
  (next) => {
65
119
  onValueChange?.({ value: next });
66
120
  },
@@ -88,7 +142,7 @@ var AccordionRoot = React29.forwardRef(
88
142
  );
89
143
  }
90
144
  );
91
- var AccordionItem = React29.forwardRef(
145
+ var AccordionItem = React30.forwardRef(
92
146
  function AccordionItem2(props, ref) {
93
147
  const { className, as: _as, _first, _last, display: _display, ...rest } = props;
94
148
  return /* @__PURE__ */ jsx(
@@ -104,7 +158,7 @@ var AccordionItem = React29.forwardRef(
104
158
  );
105
159
  }
106
160
  );
107
- var AccordionItemTrigger = React29.forwardRef(function AccordionItemTrigger2(props, ref) {
161
+ var AccordionItemTrigger = React30.forwardRef(function AccordionItemTrigger2(props, ref) {
108
162
  const {
109
163
  children,
110
164
  indicatorPlacement: indicatorPlacementProp,
@@ -169,7 +223,7 @@ var AccordionItemTrigger = React29.forwardRef(function AccordionItemTrigger2(pro
169
223
  }
170
224
  ) }) });
171
225
  });
172
- var AccordionItemContent = React29.forwardRef(function AccordionItemContent2(props, ref) {
226
+ var AccordionItemContent = React30.forwardRef(function AccordionItemContent2(props, ref) {
173
227
  const { className, children, pb: _pb, pr: _pr, pl: _pl, w: _w, display: _display, flexDir: _flexDir, rowGap: _rowGap, ...rest } = props;
174
228
  return /* @__PURE__ */ jsx(
175
229
  AccordionPrimitive.Content,
@@ -187,11 +241,11 @@ var AccordionItemContent = React29.forwardRef(function AccordionItemContent2(pro
187
241
  );
188
242
  });
189
243
  function useAccordion(items) {
190
- const [value, setValue] = React29.useState([]);
191
- const onValueChange = React29.useCallback(({ value: value2 }) => {
244
+ const [value, setValue] = React30.useState([]);
245
+ const onValueChange = React30.useCallback(({ value: value2 }) => {
192
246
  setValue(value2);
193
247
  }, []);
194
- const scrollToItemFromUrl = React29.useCallback(() => {
248
+ const scrollToItemFromUrl = React30.useCallback(() => {
195
249
  const hash = window.location.hash.replace("#", "");
196
250
  if (!hash) {
197
251
  return;
@@ -205,7 +259,7 @@ function useAccordion(items) {
205
259
  setValue([itemToScroll.id]);
206
260
  }
207
261
  }, [items]);
208
- return React29.useMemo(() => {
262
+ return React30.useMemo(() => {
209
263
  return {
210
264
  value,
211
265
  onValueChange,
@@ -248,7 +302,7 @@ var CLOSE_BUTTON_CLASSES = [
248
302
  "hover:text-[var(--hover-color,currentColor)]",
249
303
  "disabled:opacity-40"
250
304
  ].join(" ");
251
- var CloseButton = React29.forwardRef(function CloseButton2(props, ref) {
305
+ var CloseButton = React30.forwardRef(function CloseButton2(props, ref) {
252
306
  const { variant: _variant, size: _size, className, children, ...rest } = props;
253
307
  return /* @__PURE__ */ jsx(
254
308
  CloseButtonFrame,
@@ -395,7 +449,7 @@ var SKELETON_CLASSES = [
395
449
  "bg-[length:200%_100%]"
396
450
  ].join(" ");
397
451
  var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
398
- var Skeleton = React29.forwardRef(
452
+ var Skeleton = React30.forwardRef(
399
453
  function Skeleton2(props, ref) {
400
454
  const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
401
455
  const shimStyle = shimToStyle(props);
@@ -404,10 +458,10 @@ var Skeleton = React29.forwardRef(
404
458
  const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
405
459
  const htmlRest = stripShims(allRest);
406
460
  if (!loading) {
407
- if (asChild && React29.isValidElement(children)) return children;
461
+ if (asChild && React30.isValidElement(children)) return children;
408
462
  return /* @__PURE__ */ jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
409
463
  }
410
- if (asChild && React29.isValidElement(children)) {
464
+ if (asChild && React30.isValidElement(children)) {
411
465
  return /* @__PURE__ */ jsx(
412
466
  Component,
413
467
  {
@@ -433,7 +487,7 @@ var Skeleton = React29.forwardRef(
433
487
  );
434
488
  }
435
489
  );
436
- var SkeletonCircle = React29.forwardRef(
490
+ var SkeletonCircle = React30.forwardRef(
437
491
  function SkeletonCircle2(props, ref) {
438
492
  const { size = 40, loading = true, className, ...rest } = props;
439
493
  const dimension = typeof size === "number" ? `${size}px` : size;
@@ -449,7 +503,7 @@ var SkeletonCircle = React29.forwardRef(
449
503
  );
450
504
  }
451
505
  );
452
- var SkeletonText = React29.forwardRef(
506
+ var SkeletonText = React30.forwardRef(
453
507
  function SkeletonText2(props, ref) {
454
508
  const { noOfLines = 3, loading = true, className, ...rest } = props;
455
509
  return /* @__PURE__ */ jsx("div", { ref, className: cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsx(
@@ -479,7 +533,7 @@ var INDICATOR_SIZE_CLASSES = {
479
533
  sm: "w-5 h-5 my-0",
480
534
  md: "w-5 h-5 my-[2px]"
481
535
  };
482
- var Alert = React29.forwardRef(
536
+ var Alert = React30.forwardRef(
483
537
  function Alert2(props, ref) {
484
538
  const {
485
539
  title,
@@ -504,7 +558,7 @@ var Alert = React29.forwardRef(
504
558
  if (_mb !== void 0) shimStyle.marginBottom = typeof _mb === "number" ? `${_mb * 4}px` : _mb;
505
559
  if (_mt !== void 0) shimStyle.marginTop = typeof _mt === "number" ? `${_mt * 4}px` : _mt;
506
560
  const alertStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
507
- const [isOpen, setIsOpen] = React29.useState(true);
561
+ const [isOpen, setIsOpen] = React30.useState(true);
508
562
  const resolvedSize = size ?? "md";
509
563
  const defaultIcon = /* @__PURE__ */ jsx(IndicatorIcon2, { className: "w-5 h-5" });
510
564
  const iconElement = (() => {
@@ -519,7 +573,7 @@ var Alert = React29.forwardRef(
519
573
  INDICATOR_SIZE_CLASSES[resolvedSize]
520
574
  ), children: icon || defaultIcon });
521
575
  })();
522
- const handleClose = React29.useCallback(() => {
576
+ const handleClose = React30.useCallback(() => {
523
577
  setIsOpen(false);
524
578
  onClose?.();
525
579
  }, [onClose]);
@@ -595,11 +649,11 @@ var VARIANT_CLASSES = {
595
649
  };
596
650
  var DEFAULT_SIZE = "md";
597
651
  var DEFAULT_VARIANT = "subtle";
598
- var AvatarGroupContext = React29.createContext({});
652
+ var AvatarGroupContext = React30.createContext({});
599
653
  function useAvatarGroupContext() {
600
- return React29.useContext(AvatarGroupContext);
654
+ return React30.useContext(AvatarGroupContext);
601
655
  }
602
- var Avatar = React29.forwardRef(
656
+ var Avatar = React30.forwardRef(
603
657
  function Avatar2(props, ref) {
604
658
  const group = useAvatarGroupContext();
605
659
  const {
@@ -649,7 +703,7 @@ var Avatar = React29.forwardRef(
649
703
  );
650
704
  }
651
705
  );
652
- var AvatarFallback = React29.forwardRef(
706
+ var AvatarFallback = React30.forwardRef(
653
707
  function AvatarFallback2(props, ref) {
654
708
  const { name, icon, children, className, ...rest } = props;
655
709
  return /* @__PURE__ */ jsxs(
@@ -676,10 +730,10 @@ function getInitials(name) {
676
730
  const lastName = names.length > 1 ? names[names.length - 1] : "";
677
731
  return firstName && lastName ? `${firstName.charAt(0)}${lastName.charAt(0)}` : firstName.charAt(0);
678
732
  }
679
- var AvatarGroup = React29.forwardRef(
733
+ var AvatarGroup = React30.forwardRef(
680
734
  function AvatarGroup2(props, ref) {
681
735
  const { size, variant, borderless, className, ...rest } = props;
682
- const contextValue = React29.useMemo(
736
+ const contextValue = React30.useMemo(
683
737
  () => ({ size, variant, borderless }),
684
738
  [size, variant, borderless]
685
739
  );
@@ -695,11 +749,11 @@ var AvatarGroup = React29.forwardRef(
695
749
  );
696
750
  var LG_BREAKPOINT = 1024;
697
751
  function useIsMobile() {
698
- const [isMobile, setIsMobile] = React29.useState(() => {
752
+ const [isMobile, setIsMobile] = React30.useState(() => {
699
753
  if (typeof window === "undefined") return false;
700
754
  return window.innerWidth < LG_BREAKPOINT;
701
755
  });
702
- React29.useEffect(() => {
756
+ React30.useEffect(() => {
703
757
  const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
704
758
  const handler = (e) => setIsMobile(e.matches);
705
759
  setIsMobile(mql.matches);
@@ -712,7 +766,7 @@ function mapPlacement(p) {
712
766
  if (!p) return void 0;
713
767
  return p;
714
768
  }
715
- var Tooltip = React29.forwardRef(
769
+ var Tooltip = React30.forwardRef(
716
770
  function Tooltip2(props, ref) {
717
771
  const {
718
772
  showArrow: showArrowProp,
@@ -731,28 +785,28 @@ var Tooltip = React29.forwardRef(
731
785
  interactive,
732
786
  positioning
733
787
  } = props;
734
- const [open, setOpen] = React29.useState(defaultOpen);
735
- const timeoutRef = React29.useRef(null);
788
+ const [open, setOpen] = React30.useState(defaultOpen);
789
+ const timeoutRef = React30.useRef(null);
736
790
  const isMobile = useIsMobile();
737
- const handleOpenChange = React29.useCallback((nextOpen) => {
791
+ const handleOpenChange = React30.useCallback((nextOpen) => {
738
792
  setOpen(nextOpen);
739
793
  onOpenChange?.({ open: nextOpen });
740
794
  }, [onOpenChange]);
741
- const handleOpenChangeManual = React29.useCallback((nextOpen) => {
795
+ const handleOpenChangeManual = React30.useCallback((nextOpen) => {
742
796
  timeoutRef.current && window.clearTimeout(timeoutRef.current);
743
797
  timeoutRef.current = window.setTimeout(() => {
744
798
  setOpen(nextOpen);
745
799
  onOpenChange?.({ open: nextOpen });
746
800
  }, nextOpen ? openDelay : closeDelay);
747
801
  }, [closeDelay, openDelay, onOpenChange]);
748
- const handleClickAway = React29.useCallback(() => {
802
+ const handleClickAway = React30.useCallback(() => {
749
803
  handleOpenChangeManual(false);
750
804
  }, [handleOpenChangeManual]);
751
805
  const triggerRef = useClickAway(handleClickAway);
752
- const handleTriggerClick = React29.useCallback(() => {
806
+ const handleTriggerClick = React30.useCallback(() => {
753
807
  handleOpenChangeManual(!open);
754
808
  }, [handleOpenChangeManual, open]);
755
- const handleContentClick = React29.useCallback((event) => {
809
+ const handleContentClick = React30.useCallback((event) => {
756
810
  event.stopPropagation();
757
811
  if (interactive) {
758
812
  const closestLink = event.target?.closest("a");
@@ -761,7 +815,7 @@ var Tooltip = React29.forwardRef(
761
815
  }
762
816
  }
763
817
  }, [interactive, handleOpenChangeManual]);
764
- React29.useEffect(() => {
818
+ React30.useEffect(() => {
765
819
  return () => {
766
820
  if (timeoutRef.current) {
767
821
  clearTimeout(timeoutRef.current);
@@ -863,7 +917,7 @@ var COLOR_PALETTE_CLASSES = {
863
917
  bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
864
918
  };
865
919
  var S2 = 4;
866
- var Badge = React29__default.forwardRef(
920
+ var Badge = React30__default.forwardRef(
867
921
  function Badge2(props, ref) {
868
922
  const {
869
923
  loading,
@@ -1112,7 +1166,7 @@ function buildShimStyle(props) {
1112
1166
  if (props.borderTopRightRadius !== void 0) s.borderTopRightRadius = typeof props.borderTopRightRadius === "number" ? `${props.borderTopRightRadius}px` : props.borderTopRightRadius;
1113
1167
  return Object.keys(s).length > 0 ? s : void 0;
1114
1168
  }
1115
- var Button = React29.forwardRef(
1169
+ var Button = React30.forwardRef(
1116
1170
  function Button2(props, ref) {
1117
1171
  const {
1118
1172
  className,
@@ -1214,7 +1268,7 @@ function buttonVariants(opts) {
1214
1268
  const s = opts?.size ?? "md";
1215
1269
  return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES4[s] ?? ""].filter(Boolean).join(" ");
1216
1270
  }
1217
- var ButtonGroup = React29.forwardRef(
1271
+ var ButtonGroup = React30.forwardRef(
1218
1272
  function ButtonGroup2(props, ref) {
1219
1273
  const { className, ...rest } = props;
1220
1274
  return /* @__PURE__ */ jsx(
@@ -1228,7 +1282,7 @@ var ButtonGroup = React29.forwardRef(
1228
1282
  );
1229
1283
  }
1230
1284
  );
1231
- var ButtonGroupRadio = React29.forwardRef(
1285
+ var ButtonGroupRadio = React30.forwardRef(
1232
1286
  function ButtonGroupRadio2(props, ref) {
1233
1287
  const {
1234
1288
  children,
@@ -1240,24 +1294,24 @@ var ButtonGroupRadio = React29.forwardRef(
1240
1294
  className,
1241
1295
  ...rest
1242
1296
  } = props;
1243
- const firstChildValue = React29.useMemo(() => {
1297
+ const firstChildValue = React30.useMemo(() => {
1244
1298
  const firstChild = Array.isArray(children) ? children[0] : void 0;
1245
1299
  return typeof firstChild?.props.value === "string" ? firstChild.props.value : void 0;
1246
1300
  }, [children]);
1247
- const [value, setValue] = React29.useState(defaultValue ?? firstChildValue);
1248
- const handleItemClick = React29.useCallback((event) => {
1301
+ const [value, setValue] = React30.useState(defaultValue ?? firstChildValue);
1302
+ const handleItemClick = React30.useCallback((event) => {
1249
1303
  const v = event.currentTarget.value;
1250
1304
  setValue(v);
1251
1305
  onChange?.(v);
1252
1306
  }, [onChange]);
1253
- const clonedChildren = React29.Children.map(children, (child) => {
1254
- return React29.cloneElement(child, {
1307
+ const clonedChildren = React30.Children.map(children, (child) => {
1308
+ return React30.cloneElement(child, {
1255
1309
  onClick: handleItemClick,
1256
1310
  selected: value === child.props.value,
1257
1311
  variant
1258
1312
  });
1259
1313
  });
1260
- const childrenLength = React29.Children.count(children);
1314
+ const childrenLength = React30.Children.count(children);
1261
1315
  return /* @__PURE__ */ jsx(Skeleton, { loading, children: /* @__PURE__ */ jsx(
1262
1316
  "div",
1263
1317
  {
@@ -1277,11 +1331,11 @@ var ButtonGroupRadio = React29.forwardRef(
1277
1331
  );
1278
1332
  var NOOP = () => {
1279
1333
  };
1280
- var CheckboxGroupContext = React29.createContext(null);
1334
+ var CheckboxGroupContext = React30.createContext(null);
1281
1335
  function useCheckboxGroupContext() {
1282
- return React29.useContext(CheckboxGroupContext);
1336
+ return React30.useContext(CheckboxGroupContext);
1283
1337
  }
1284
- var CheckboxGroupBase = React29.forwardRef(
1338
+ var CheckboxGroupBase = React30.forwardRef(
1285
1339
  function CheckboxGroup(props, ref) {
1286
1340
  const {
1287
1341
  children,
@@ -1293,10 +1347,10 @@ var CheckboxGroupBase = React29.forwardRef(
1293
1347
  className,
1294
1348
  ...rest
1295
1349
  } = props;
1296
- const [uncontrolledValue, setUncontrolledValue] = React29.useState(defaultValue ?? []);
1350
+ const [uncontrolledValue, setUncontrolledValue] = React30.useState(defaultValue ?? []);
1297
1351
  const isControlled = controlledValue !== void 0;
1298
1352
  const value = isControlled ? controlledValue : uncontrolledValue;
1299
- const toggle = React29.useCallback(
1353
+ const toggle = React30.useCallback(
1300
1354
  (itemValue) => {
1301
1355
  const next = value.includes(itemValue) ? value.filter((v) => v !== itemValue) : [...value, itemValue];
1302
1356
  if (!isControlled) {
@@ -1306,12 +1360,12 @@ var CheckboxGroupBase = React29.forwardRef(
1306
1360
  },
1307
1361
  [value, isControlled, onValueChange]
1308
1362
  );
1309
- React29.useEffect(() => {
1363
+ React30.useEffect(() => {
1310
1364
  if (isControlled) {
1311
1365
  setUncontrolledValue(controlledValue);
1312
1366
  }
1313
1367
  }, [isControlled, controlledValue]);
1314
- const ctx = React29.useMemo(() => ({ value, toggle }), [value, toggle]);
1368
+ const ctx = React30.useMemo(() => ({ value, toggle }), [value, toggle]);
1315
1369
  return /* @__PURE__ */ jsx(CheckboxGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
1316
1370
  "div",
1317
1371
  {
@@ -1369,7 +1423,7 @@ var IndeterminateIcon = ({ className }) => /* @__PURE__ */ jsx(
1369
1423
  children: /* @__PURE__ */ jsx("path", { d: "M0 0H12V2H0V0Z", fill: "currentColor" })
1370
1424
  }
1371
1425
  );
1372
- var CheckboxBase = React29.forwardRef(
1426
+ var CheckboxBase = React30.forwardRef(
1373
1427
  function Checkbox(props, ref) {
1374
1428
  const {
1375
1429
  icon,
@@ -1390,8 +1444,8 @@ var CheckboxBase = React29.forwardRef(
1390
1444
  ...rest
1391
1445
  } = props;
1392
1446
  const group = useCheckboxGroupContext();
1393
- const hiddenInputRef = React29.useRef(null);
1394
- const setHiddenInputRef = React29.useCallback(
1447
+ const hiddenInputRef = React30.useRef(null);
1448
+ const setHiddenInputRef = React30.useCallback(
1395
1449
  (node) => {
1396
1450
  hiddenInputRef.current = node;
1397
1451
  if (typeof ref === "function") {
@@ -1404,7 +1458,7 @@ var CheckboxBase = React29.forwardRef(
1404
1458
  );
1405
1459
  const isInGroup = group !== null && value !== void 0;
1406
1460
  const groupChecked = isInGroup ? group.value.includes(value) : void 0;
1407
- const [internalChecked, setInternalChecked] = React29.useState(
1461
+ const [internalChecked, setInternalChecked] = React30.useState(
1408
1462
  defaultChecked ?? false
1409
1463
  );
1410
1464
  const isControlled = checkedProp !== void 0 || isInGroup;
@@ -1416,7 +1470,7 @@ var CheckboxBase = React29.forwardRef(
1416
1470
  } else {
1417
1471
  checkedState = internalChecked;
1418
1472
  }
1419
- const handleCheckedChange = React29.useCallback(
1473
+ const handleCheckedChange = React30.useCallback(
1420
1474
  (nextChecked) => {
1421
1475
  if (readOnly) return;
1422
1476
  if (!isControlled) {
@@ -1580,7 +1634,7 @@ function resolveSpacing(v) {
1580
1634
  }
1581
1635
  return void 0;
1582
1636
  }
1583
- var Link = React29__default.forwardRef(
1637
+ var Link = React30__default.forwardRef(
1584
1638
  function Link2(props, ref) {
1585
1639
  const {
1586
1640
  external,
@@ -1669,7 +1723,7 @@ var Link = React29__default.forwardRef(
1669
1723
  ) });
1670
1724
  }
1671
1725
  );
1672
- var LinkBox = React29__default.forwardRef(
1726
+ var LinkBox = React30__default.forwardRef(
1673
1727
  function LinkBox2(props, ref) {
1674
1728
  const { className, ...rest } = props;
1675
1729
  return /* @__PURE__ */ jsx(
@@ -1682,7 +1736,7 @@ var LinkBox = React29__default.forwardRef(
1682
1736
  );
1683
1737
  }
1684
1738
  );
1685
- var LinkOverlay = React29__default.forwardRef(
1739
+ var LinkOverlay = React30__default.forwardRef(
1686
1740
  function LinkOverlay2(props, ref) {
1687
1741
  const {
1688
1742
  children,
@@ -1763,8 +1817,8 @@ var LinkOverlay = React29__default.forwardRef(
1763
1817
  }
1764
1818
  );
1765
1819
  function useUpdateEffect(effect, deps) {
1766
- const isFirstMount = React29__default.useRef(true);
1767
- React29__default.useEffect(() => {
1820
+ const isFirstMount = React30__default.useRef(true);
1821
+ React30__default.useEffect(() => {
1768
1822
  if (isFirstMount.current) {
1769
1823
  isFirstMount.current = false;
1770
1824
  return;
@@ -1781,8 +1835,8 @@ function scrollToElement(id) {
1781
1835
  var CUT_ID = "CollapsibleDetails";
1782
1836
  var CollapsibleDetails = (props) => {
1783
1837
  const { children, id = CUT_ID, onClick, isExpanded: isExpandedProp = false, text: textProp, loading, noScroll, ...rest } = props;
1784
- const [isExpanded, setIsExpanded] = React29__default.useState(isExpandedProp);
1785
- const handleClick = React29__default.useCallback((event) => {
1838
+ const [isExpanded, setIsExpanded] = React30__default.useState(isExpandedProp);
1839
+ const handleClick = React30__default.useCallback((event) => {
1786
1840
  setIsExpanded((flag) => !flag);
1787
1841
  if (!noScroll) {
1788
1842
  scrollToElement(id);
@@ -1813,11 +1867,11 @@ var CollapsibleDetails = (props) => {
1813
1867
  var CollapsibleList = (props) => {
1814
1868
  const CUT_LENGTH = 3;
1815
1869
  const { items, renderItem, triggerProps, cutLength = CUT_LENGTH, text: textProp, defaultExpanded = false, className, ...rest } = props;
1816
- const [isExpanded, setIsExpanded] = React29__default.useState(defaultExpanded);
1817
- React29__default.useEffect(() => {
1870
+ const [isExpanded, setIsExpanded] = React30__default.useState(defaultExpanded);
1871
+ React30__default.useEffect(() => {
1818
1872
  setIsExpanded(defaultExpanded);
1819
1873
  }, [defaultExpanded]);
1820
- const handleToggle = React29__default.useCallback(() => {
1874
+ const handleToggle = React30__default.useCallback(() => {
1821
1875
  setIsExpanded((flag) => !flag);
1822
1876
  }, []);
1823
1877
  const text = isExpanded ? textProp?.[1] ?? "Hide" : textProp?.[0] ?? "Show all";
@@ -1834,10 +1888,10 @@ var CollapsibleList = (props) => {
1834
1888
  ) })
1835
1889
  ] }) });
1836
1890
  };
1837
- var ColorModeContext = React29.createContext(void 0);
1891
+ var ColorModeContext = React30.createContext(void 0);
1838
1892
  function ColorModeProvider(props) {
1839
1893
  const { children, defaultTheme = "light", value: controlledValue, onValueChange } = props;
1840
- const [internalMode, setInternalMode] = React29.useState(() => {
1894
+ const [internalMode, setInternalMode] = React30.useState(() => {
1841
1895
  if (controlledValue === "dark" || controlledValue === "light") {
1842
1896
  return controlledValue;
1843
1897
  }
@@ -1847,7 +1901,7 @@ function ColorModeProvider(props) {
1847
1901
  return defaultTheme === "dark" ? "dark" : "light";
1848
1902
  });
1849
1903
  const colorMode = controlledValue === "dark" || controlledValue === "light" ? controlledValue : internalMode;
1850
- const setColorMode = React29.useCallback((mode) => {
1904
+ const setColorMode = React30.useCallback((mode) => {
1851
1905
  const resolved = mode === "dark" ? "dark" : "light";
1852
1906
  setInternalMode(resolved);
1853
1907
  onValueChange?.(resolved);
@@ -1856,19 +1910,19 @@ function ColorModeProvider(props) {
1856
1910
  document.documentElement.classList.toggle("light", resolved === "light");
1857
1911
  }
1858
1912
  }, [onValueChange]);
1859
- const toggleColorMode = React29.useCallback(() => {
1913
+ const toggleColorMode = React30.useCallback(() => {
1860
1914
  setColorMode(colorMode === "dark" ? "light" : "dark");
1861
1915
  }, [colorMode, setColorMode]);
1862
- const ctx = React29.useMemo(
1916
+ const ctx = React30.useMemo(
1863
1917
  () => ({ colorMode, setColorMode, toggleColorMode }),
1864
1918
  [colorMode, setColorMode, toggleColorMode]
1865
1919
  );
1866
1920
  return /* @__PURE__ */ jsx(ColorModeContext.Provider, { value: ctx, children });
1867
1921
  }
1868
1922
  function useColorMode() {
1869
- const ctx = React29.useContext(ColorModeContext);
1923
+ const ctx = React30.useContext(ColorModeContext);
1870
1924
  if (!ctx) {
1871
- const [mode, setMode] = React29.useState(() => {
1925
+ const [mode, setMode] = React30.useState(() => {
1872
1926
  if (typeof document !== "undefined" && document.documentElement.classList.contains("dark")) {
1873
1927
  return "dark";
1874
1928
  }
@@ -1912,9 +1966,9 @@ function BackToButton({ onClick }) {
1912
1966
  }
1913
1967
  );
1914
1968
  }
1915
- var DialogSizeContext = React29.createContext({ size: "md" });
1969
+ var DialogSizeContext = React30.createContext({ size: "md" });
1916
1970
  function useDialogSizeContext() {
1917
- return React29.useContext(DialogSizeContext);
1971
+ return React30.useContext(DialogSizeContext);
1918
1972
  }
1919
1973
  var CONTENT_SIZE_MAP = {
1920
1974
  sm: "max-w-[400px]",
@@ -1946,13 +2000,13 @@ var DialogRoot = ({
1946
2000
  modal = true
1947
2001
  // motionPreset is intentionally unused -- kept for API compat
1948
2002
  }) => {
1949
- const handleOpenChange = React29.useCallback(
2003
+ const handleOpenChange = React30.useCallback(
1950
2004
  (nextOpen) => {
1951
2005
  onOpenChange?.({ open: nextOpen });
1952
2006
  },
1953
2007
  [onOpenChange]
1954
2008
  );
1955
- const ctx = React29.useMemo(() => ({ size }), [size]);
2009
+ const ctx = React30.useMemo(() => ({ size }), [size]);
1956
2010
  return /* @__PURE__ */ jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
1957
2011
  Dialog,
1958
2012
  {
@@ -1964,7 +2018,7 @@ var DialogRoot = ({
1964
2018
  }
1965
2019
  ) });
1966
2020
  };
1967
- var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
2021
+ var DialogContent = React30.forwardRef(function DialogContent2(props, ref) {
1968
2022
  const {
1969
2023
  children,
1970
2024
  portalled: _portalled = true,
@@ -2021,11 +2075,11 @@ var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
2021
2075
  )
2022
2076
  ] });
2023
2077
  });
2024
- var DialogCloseTrigger = React29.forwardRef(function DialogCloseTrigger2(props, ref) {
2078
+ var DialogCloseTrigger = React30.forwardRef(function DialogCloseTrigger2(props, ref) {
2025
2079
  const { className, ...rest } = props;
2026
2080
  return /* @__PURE__ */ jsx(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(CloseButton, { ref, className, ...rest, children: props.children }) });
2027
2081
  });
2028
- var DialogHeader = React29.forwardRef(function DialogHeader2(props, ref) {
2082
+ var DialogHeader = React30.forwardRef(function DialogHeader2(props, ref) {
2029
2083
  const { startElement: startElementProp, onBackToClick, className, children, ...rest } = props;
2030
2084
  const startElement = startElementProp ?? (onBackToClick ? /* @__PURE__ */ jsx(BackToButton, { onClick: onBackToClick }) : void 0);
2031
2085
  return /* @__PURE__ */ jsxs(
@@ -2055,7 +2109,7 @@ var DialogHeader = React29.forwardRef(function DialogHeader2(props, ref) {
2055
2109
  }
2056
2110
  );
2057
2111
  });
2058
- var DialogBody = React29.forwardRef(function DialogBody2({ className, pt, display, flexDir, style: styleProp, ...props }, ref) {
2112
+ var DialogBody = React30.forwardRef(function DialogBody2({ className, pt, display, flexDir, style: styleProp, ...props }, ref) {
2059
2113
  const bodyStyle = {
2060
2114
  ...styleProp,
2061
2115
  ...pt !== void 0 ? { paddingTop: typeof pt === "number" ? `${pt * 4}px` : pt } : {},
@@ -2072,7 +2126,7 @@ var DialogBody = React29.forwardRef(function DialogBody2({ className, pt, displa
2072
2126
  }
2073
2127
  );
2074
2128
  });
2075
- var DialogFooter = React29.forwardRef(function DialogFooter2({ className, ...props }, ref) {
2129
+ var DialogFooter = React30.forwardRef(function DialogFooter2({ className, ...props }, ref) {
2076
2130
  return /* @__PURE__ */ jsx(
2077
2131
  "div",
2078
2132
  {
@@ -2087,8 +2141,8 @@ var DialogTitle = Dialog.Title;
2087
2141
  var DialogDescription = Dialog.Description;
2088
2142
  var DialogTrigger = Dialog.Trigger;
2089
2143
  var DialogActionTrigger = Dialog.Close;
2090
- var DrawerPlacementContext = React29.createContext("right");
2091
- var DrawerSizeContext = React29.createContext("md");
2144
+ var DrawerPlacementContext = React30.createContext("right");
2145
+ var DrawerSizeContext = React30.createContext("md");
2092
2146
  var DrawerRoot = (props) => {
2093
2147
  const {
2094
2148
  children,
@@ -2099,7 +2153,7 @@ var DrawerRoot = (props) => {
2099
2153
  modal = true,
2100
2154
  size = "md"
2101
2155
  } = props;
2102
- const handleOpenChange = React29.useCallback((nextOpen) => {
2156
+ const handleOpenChange = React30.useCallback((nextOpen) => {
2103
2157
  onOpenChange?.({ open: nextOpen });
2104
2158
  }, [onOpenChange]);
2105
2159
  return /* @__PURE__ */ jsx(DrawerPlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx(DrawerSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx(
@@ -2141,11 +2195,11 @@ var SIZE_CLASSES6 = {
2141
2195
  top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
2142
2196
  bottom: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" }
2143
2197
  };
2144
- var DrawerContent = React29.forwardRef(
2198
+ var DrawerContent = React30.forwardRef(
2145
2199
  function DrawerContent2(props, ref) {
2146
2200
  const { children, portalled = true, portalRef, offset: _offset, backdrop = true, className, ...rest } = props;
2147
- const placement = React29.useContext(DrawerPlacementContext);
2148
- const size = React29.useContext(DrawerSizeContext);
2201
+ const placement = React30.useContext(DrawerPlacementContext);
2202
+ const size = React30.useContext(DrawerSizeContext);
2149
2203
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
2150
2204
  backdrop && /* @__PURE__ */ jsx(
2151
2205
  RadixDialog.Overlay,
@@ -2178,7 +2232,7 @@ var DrawerContent = React29.forwardRef(
2178
2232
  return content;
2179
2233
  }
2180
2234
  );
2181
- var DrawerCloseTrigger = React29.forwardRef(function DrawerCloseTrigger2(props, ref) {
2235
+ var DrawerCloseTrigger = React30.forwardRef(function DrawerCloseTrigger2(props, ref) {
2182
2236
  return /* @__PURE__ */ jsx(RadixDialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(
2183
2237
  CloseButton,
2184
2238
  {
@@ -2192,17 +2246,17 @@ var DrawerTrigger = (props) => {
2192
2246
  const { asChild = true, ...rest } = props;
2193
2247
  return /* @__PURE__ */ jsx(RadixDialog.Trigger, { asChild, ...rest });
2194
2248
  };
2195
- var DrawerHeader = React29.forwardRef(
2249
+ var DrawerHeader = React30.forwardRef(
2196
2250
  function DrawerHeader2({ className, ...props }, ref) {
2197
2251
  return /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 p-6 pb-0", className), ...props });
2198
2252
  }
2199
2253
  );
2200
- var DrawerBody = React29.forwardRef(
2254
+ var DrawerBody = React30.forwardRef(
2201
2255
  function DrawerBody2({ className, ...props }, ref) {
2202
2256
  return /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 overflow-auto p-6", className), ...props });
2203
2257
  }
2204
2258
  );
2205
- var DrawerFooter = React29.forwardRef(
2259
+ var DrawerFooter = React30.forwardRef(
2206
2260
  function DrawerFooter2({ className, ...props }, ref) {
2207
2261
  return /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center justify-end gap-2 p-6 pt-0", className), ...props });
2208
2262
  }
@@ -2215,7 +2269,7 @@ function upperFirst(str) {
2215
2269
  return str.charAt(0).toUpperCase() + str.slice(1);
2216
2270
  }
2217
2271
  var ICONS = {};
2218
- var EmptyState = React29.forwardRef(
2272
+ var EmptyState = React30.forwardRef(
2219
2273
  function EmptyState2(props, ref) {
2220
2274
  const { title, description, term, type = "query", icon, children, className, ...rest } = props;
2221
2275
  const titleContent = (() => {
@@ -2275,7 +2329,7 @@ function getComponentDisplayName(type) {
2275
2329
  if ("displayName" in type) return type.displayName;
2276
2330
  return void 0;
2277
2331
  }
2278
- var Field = React29.forwardRef(
2332
+ var Field = React30.forwardRef(
2279
2333
  function Field2(props, ref) {
2280
2334
  const {
2281
2335
  label,
@@ -2327,14 +2381,14 @@ var Field = React29.forwardRef(
2327
2381
  }
2328
2382
  );
2329
2383
  const helperTextElement = helperText ? /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-xs text-[var(--color-text-secondary,theme(colors.gray.400))]", children: helperText }) : null;
2330
- const child2 = React29.Children.only(children);
2384
+ const child2 = React30.Children.only(children);
2331
2385
  const isInputGroup = getComponentDisplayName(child2.type) === "InputGroup";
2332
2386
  if (isInputGroup) {
2333
- const inputElement2 = React29.cloneElement(
2334
- React29.Children.only(child2.props.children),
2387
+ const inputElement2 = React30.cloneElement(
2388
+ React30.Children.only(child2.props.children),
2335
2389
  injectedProps2
2336
2390
  );
2337
- const groupInputElement = React29.cloneElement(
2391
+ const groupInputElement = React30.cloneElement(
2338
2392
  child2,
2339
2393
  {},
2340
2394
  inputElement2,
@@ -2357,7 +2411,7 @@ var Field = React29.forwardRef(
2357
2411
  }
2358
2412
  );
2359
2413
  }
2360
- const inputElement = React29.cloneElement(child2, injectedProps2);
2414
+ const inputElement = React30.cloneElement(child2, injectedProps2);
2361
2415
  return /* @__PURE__ */ jsxs(
2362
2416
  "div",
2363
2417
  {
@@ -2379,8 +2433,8 @@ var Field = React29.forwardRef(
2379
2433
  const injectedProps = {
2380
2434
  size
2381
2435
  };
2382
- const child = React29.Children.only(children);
2383
- const clonedChild = React29.cloneElement(child, injectedProps);
2436
+ const child = React30.Children.only(children);
2437
+ const clonedChild = React30.cloneElement(child, injectedProps);
2384
2438
  return /* @__PURE__ */ jsxs(
2385
2439
  "div",
2386
2440
  {
@@ -2423,7 +2477,7 @@ var LEVEL_CLASSES = {
2423
2477
  "3": "text-[14px] leading-[20px] font-semibold lg:text-[18px] lg:leading-[24px] lg:font-medium"
2424
2478
  };
2425
2479
  var BASE_CLASSES4 = "font-heading text-heading";
2426
- var Heading = React29__default.forwardRef(
2480
+ var Heading = React30__default.forwardRef(
2427
2481
  function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
2428
2482
  const Tag3 = level ? LEVEL_TAG[level] : "h2";
2429
2483
  const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
@@ -2509,7 +2563,7 @@ var ICON_SIZE_CLASSES = {
2509
2563
  md: "[&_svg]:size-5"
2510
2564
  };
2511
2565
  var SP2 = 4;
2512
- var IconButton = React29.forwardRef(
2566
+ var IconButton = React30.forwardRef(
2513
2567
  function IconButton2(props, ref) {
2514
2568
  const {
2515
2569
  size,
@@ -2560,7 +2614,7 @@ var IconButton = React29.forwardRef(
2560
2614
  ref,
2561
2615
  size,
2562
2616
  disabled: !loadingSkeleton && (loading || disabled) || void 0,
2563
- render: _as ? React29.createElement(_as) : void 0,
2617
+ render: _as ? React30.createElement(_as) : void 0,
2564
2618
  className: combinedClassName,
2565
2619
  style: mergedStyle,
2566
2620
  ...expanded ? { "data-expanded": true } : {},
@@ -2731,31 +2785,31 @@ function extractStyleProps(props) {
2731
2785
  }
2732
2786
  return { styleProps, rest };
2733
2787
  }
2734
- var Image2 = React29__default.forwardRef(
2788
+ var Image2 = React30__default.forwardRef(
2735
2789
  function Image3(props, ref) {
2736
2790
  const { fallback, src, onLoad, onError, skeletonWidth, skeletonHeight, alt, className, style: styleProp, ...allRest } = props;
2737
2791
  const { styleProps, rest: extraProps } = extractStyleProps(allRest);
2738
- const [loading, setLoading] = React29__default.useState(true);
2739
- const [error, setError] = React29__default.useState(false);
2740
- const handleLoadError = React29__default.useCallback((event) => {
2792
+ const [loading, setLoading] = React30__default.useState(true);
2793
+ const [error, setError] = React30__default.useState(false);
2794
+ const handleLoadError = React30__default.useCallback((event) => {
2741
2795
  setError(true);
2742
2796
  setLoading(false);
2743
2797
  onError?.(event);
2744
2798
  }, [onError]);
2745
- const handleLoadSuccess = React29__default.useCallback((event) => {
2799
+ const handleLoadSuccess = React30__default.useCallback((event) => {
2746
2800
  setLoading(false);
2747
2801
  onLoad?.(event);
2748
2802
  }, [onLoad]);
2749
2803
  const passthroughProps = allRest;
2750
2804
  if (!src && fallback) {
2751
- if (React29__default.isValidElement(fallback)) {
2752
- return React29__default.cloneElement(fallback, passthroughProps);
2805
+ if (React30__default.isValidElement(fallback)) {
2806
+ return React30__default.cloneElement(fallback, passthroughProps);
2753
2807
  }
2754
2808
  return fallback;
2755
2809
  }
2756
2810
  if (error) {
2757
- if (React29__default.isValidElement(fallback)) {
2758
- return React29__default.cloneElement(fallback, passthroughProps);
2811
+ if (React30__default.isValidElement(fallback)) {
2812
+ return React30__default.cloneElement(fallback, passthroughProps);
2759
2813
  }
2760
2814
  return fallback;
2761
2815
  }
@@ -2811,14 +2865,22 @@ var INPUT_VARIANT_CLASSES = {
2811
2865
  filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
2812
2866
  unstyled: "border-0 bg-transparent p-0 h-auto"
2813
2867
  };
2814
- var Input = React29__default.forwardRef(
2815
- ({ size = "md", variant = "outline", className, ...rest }, ref) => {
2868
+ var Input = React30__default.forwardRef(
2869
+ ({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
2870
+ const handleChange = React30__default.useCallback(
2871
+ (event) => {
2872
+ onChange?.(event);
2873
+ onChangeText?.(event.target.value);
2874
+ },
2875
+ [onChange, onChangeText]
2876
+ );
2816
2877
  return /* @__PURE__ */ jsx(
2817
2878
  "input",
2818
2879
  {
2819
2880
  ref,
2820
2881
  className: cn(INPUT_BASE, INPUT_SIZE_CLASSES[size], INPUT_VARIANT_CLASSES[variant], className),
2821
- ...rest
2882
+ ...rest,
2883
+ onChange: handleChange
2822
2884
  }
2823
2885
  );
2824
2886
  }
@@ -2829,7 +2891,7 @@ function getComponentDisplayName2(type) {
2829
2891
  if ("displayName" in type) return type.displayName;
2830
2892
  return void 0;
2831
2893
  }
2832
- var InputGroup = React29.forwardRef(
2894
+ var InputGroup = React30.forwardRef(
2833
2895
  function InputGroup2(props, ref) {
2834
2896
  const {
2835
2897
  startElement,
@@ -2842,11 +2904,11 @@ var InputGroup = React29.forwardRef(
2842
2904
  className,
2843
2905
  ...rest
2844
2906
  } = props;
2845
- const startElementRef = React29.useRef(null);
2846
- const endElementRef = React29.useRef(null);
2847
- const groupRef = React29.useRef(null);
2848
- const [inlinePaddings, setInlinePaddings] = React29.useState();
2849
- const calculateInlinePaddings = React29.useCallback(() => {
2907
+ const startElementRef = React30.useRef(null);
2908
+ const endElementRef = React30.useRef(null);
2909
+ const groupRef = React30.useRef(null);
2910
+ const [inlinePaddings, setInlinePaddings] = React30.useState();
2911
+ const calculateInlinePaddings = React30.useCallback(() => {
2850
2912
  const startWidth = startElementRef.current?.getBoundingClientRect().width ?? 0;
2851
2913
  const endWidth = endElementRef.current?.getBoundingClientRect().width ?? 0;
2852
2914
  setInlinePaddings({
@@ -2854,7 +2916,7 @@ var InputGroup = React29.forwardRef(
2854
2916
  end: endWidth
2855
2917
  });
2856
2918
  }, []);
2857
- React29.useEffect(() => {
2919
+ React30.useEffect(() => {
2858
2920
  if (!groupRef.current) return;
2859
2921
  let timeoutId;
2860
2922
  const intersectionObserver = new IntersectionObserver(
@@ -2874,7 +2936,7 @@ var InputGroup = React29.forwardRef(
2874
2936
  }
2875
2937
  };
2876
2938
  }, [calculateInlinePaddings]);
2877
- React29.useEffect(() => {
2939
+ React30.useEffect(() => {
2878
2940
  calculateInlinePaddings();
2879
2941
  const resizeHandler = debounce(calculateInlinePaddings, 300);
2880
2942
  const resizeObserver = new ResizeObserver(resizeHandler);
@@ -2885,7 +2947,7 @@ var InputGroup = React29.forwardRef(
2885
2947
  resizeObserver.disconnect();
2886
2948
  };
2887
2949
  }, [calculateInlinePaddings]);
2888
- const combinedRef = React29.useCallback((node) => {
2950
+ const combinedRef = React30.useCallback((node) => {
2889
2951
  groupRef.current = node;
2890
2952
  if (typeof ref === "function") {
2891
2953
  ref(node);
@@ -2914,11 +2976,11 @@ var InputGroup = React29.forwardRef(
2914
2976
  children: startElement
2915
2977
  }
2916
2978
  ),
2917
- React29.Children.map(children, (child) => {
2979
+ React30.Children.map(children, (child) => {
2918
2980
  if (getComponentDisplayName2(child.type) !== "FieldInput") {
2919
2981
  return child;
2920
2982
  }
2921
- return React29.cloneElement(child, {
2983
+ return React30.cloneElement(child, {
2922
2984
  ...startElement && { ps: startOffset ?? (inlinePaddings?.start ? `${inlinePaddings.start}px` : void 0) },
2923
2985
  ...endElement && { pe: endOffset ?? (inlinePaddings?.end ? `${inlinePaddings.end}px` : void 0) },
2924
2986
  // hide input value and placeholder for the first render
@@ -2959,7 +3021,7 @@ function parsePlacement(placement) {
2959
3021
  }
2960
3022
  return { side, align };
2961
3023
  }
2962
- var PositioningContext = React29.createContext({
3024
+ var PositioningContext = React30.createContext({
2963
3025
  side: "bottom",
2964
3026
  align: "start",
2965
3027
  sideOffset: 4,
@@ -2989,13 +3051,13 @@ var MenuRoot = (props) => {
2989
3051
  }
2990
3052
  };
2991
3053
  const { side, align } = parsePlacement(mergedPositioning.placement);
2992
- const positioningValue = React29.useMemo(() => ({
3054
+ const positioningValue = React30.useMemo(() => ({
2993
3055
  side,
2994
3056
  align,
2995
3057
  sideOffset: mergedPositioning.offset?.mainAxis ?? 4,
2996
3058
  alignOffset: mergedPositioning.offset?.crossAxis ?? 0
2997
3059
  }), [side, align, mergedPositioning.offset?.mainAxis, mergedPositioning.offset?.crossAxis]);
2998
- const handleOpenChange = React29.useCallback((isOpen) => {
3060
+ const handleOpenChange = React30.useCallback((isOpen) => {
2999
3061
  onOpenChange?.({ open: isOpen });
3000
3062
  }, [onOpenChange]);
3001
3063
  return /* @__PURE__ */ jsx(PositioningContext.Provider, { value: positioningValue, children: /* @__PURE__ */ jsx(
@@ -3009,13 +3071,13 @@ var MenuRoot = (props) => {
3009
3071
  }
3010
3072
  ) });
3011
3073
  };
3012
- var MenuTrigger = React29.forwardRef(function MenuTrigger2(props, ref) {
3074
+ var MenuTrigger = React30.forwardRef(function MenuTrigger2(props, ref) {
3013
3075
  const { asChild = false, ...rest } = props;
3014
3076
  return /* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild, ref, ...rest });
3015
3077
  });
3016
- var MenuContent = React29.forwardRef(function MenuContent2(props, ref) {
3078
+ var MenuContent = React30.forwardRef(function MenuContent2(props, ref) {
3017
3079
  const { portalled = true, portalRef, className, zIndex, minW, style, ...rest } = props;
3018
- const positioning = React29.useContext(PositioningContext);
3080
+ const positioning = React30.useContext(PositioningContext);
3019
3081
  const mergedStyle = {
3020
3082
  ...style,
3021
3083
  ...zIndex !== void 0 ? { zIndex: typeof zIndex === "string" ? `var(--z-index-${zIndex}, ${zIndex})` : zIndex } : {},
@@ -3050,7 +3112,7 @@ var MenuContent = React29.forwardRef(function MenuContent2(props, ref) {
3050
3112
  }
3051
3113
  return /* @__PURE__ */ jsx(DropdownMenu.Portal, { container: portalRef?.current ?? void 0, children: content });
3052
3114
  });
3053
- var MenuItem = React29.forwardRef(function MenuItem2(props, ref) {
3115
+ var MenuItem = React30.forwardRef(function MenuItem2(props, ref) {
3054
3116
  const { className, value: _value, asChild, closeOnSelect: _closeOnSelect, disabled, children, onClick, ...rest } = props;
3055
3117
  return /* @__PURE__ */ jsx(
3056
3118
  DropdownMenu.Item,
@@ -3072,11 +3134,11 @@ var MenuItem = React29.forwardRef(function MenuItem2(props, ref) {
3072
3134
  }
3073
3135
  );
3074
3136
  });
3075
- var MenuItemText = React29.forwardRef(function MenuItemText2(props, ref) {
3137
+ var MenuItemText = React30.forwardRef(function MenuItemText2(props, ref) {
3076
3138
  const { className, ...rest } = props;
3077
3139
  return /* @__PURE__ */ jsx("span", { ref, className: cn("flex-1", className), ...rest });
3078
3140
  });
3079
- React29.forwardRef(function MenuItemCommand2(props, ref) {
3141
+ React30.forwardRef(function MenuItemCommand2(props, ref) {
3080
3142
  const { className, ...rest } = props;
3081
3143
  return /* @__PURE__ */ jsx(
3082
3144
  "span",
@@ -3087,7 +3149,7 @@ React29.forwardRef(function MenuItemCommand2(props, ref) {
3087
3149
  }
3088
3150
  );
3089
3151
  });
3090
- var MenuSeparator = React29.forwardRef(function MenuSeparator2(props, ref) {
3152
+ var MenuSeparator = React30.forwardRef(function MenuSeparator2(props, ref) {
3091
3153
  const { className, ...rest } = props;
3092
3154
  return /* @__PURE__ */ jsx(
3093
3155
  DropdownMenu.Separator,
@@ -3098,14 +3160,14 @@ var MenuSeparator = React29.forwardRef(function MenuSeparator2(props, ref) {
3098
3160
  }
3099
3161
  );
3100
3162
  });
3101
- var MenuItemGroup = React29.forwardRef(function MenuItemGroup2(props, ref) {
3163
+ var MenuItemGroup = React30.forwardRef(function MenuItemGroup2(props, ref) {
3102
3164
  const { title, children, className, ...rest } = props;
3103
3165
  return /* @__PURE__ */ jsxs(DropdownMenu.Group, { ref, className, ...rest, children: [
3104
3166
  title && /* @__PURE__ */ jsx(DropdownMenu.Label, { className: "px-2 py-1.5 text-xs font-semibold select-none opacity-60", children: title }),
3105
3167
  children
3106
3168
  ] });
3107
3169
  });
3108
- var MenuArrow = React29.forwardRef(function MenuArrow2(props, ref) {
3170
+ var MenuArrow = React30.forwardRef(function MenuArrow2(props, ref) {
3109
3171
  const { className, ...rest } = props;
3110
3172
  return /* @__PURE__ */ jsx(
3111
3173
  DropdownMenu.Arrow,
@@ -3116,7 +3178,7 @@ var MenuArrow = React29.forwardRef(function MenuArrow2(props, ref) {
3116
3178
  }
3117
3179
  );
3118
3180
  });
3119
- var MenuCheckboxItem = React29.forwardRef(function MenuCheckboxItem2(props, ref) {
3181
+ var MenuCheckboxItem = React30.forwardRef(function MenuCheckboxItem2(props, ref) {
3120
3182
  const { className, children, checked, onCheckedChange, onClick, ...rest } = props;
3121
3183
  return /* @__PURE__ */ jsxs(
3122
3184
  DropdownMenu.CheckboxItem,
@@ -3140,7 +3202,7 @@ var MenuCheckboxItem = React29.forwardRef(function MenuCheckboxItem2(props, ref)
3140
3202
  }
3141
3203
  );
3142
3204
  });
3143
- var MenuRadioItemGroup = React29.forwardRef(function MenuRadioItemGroup2(props, ref) {
3205
+ var MenuRadioItemGroup = React30.forwardRef(function MenuRadioItemGroup2(props, ref) {
3144
3206
  const { value, onValueChange, ...rest } = props;
3145
3207
  return /* @__PURE__ */ jsx(
3146
3208
  DropdownMenu.RadioGroup,
@@ -3152,7 +3214,7 @@ var MenuRadioItemGroup = React29.forwardRef(function MenuRadioItemGroup2(props,
3152
3214
  }
3153
3215
  );
3154
3216
  });
3155
- var MenuRadioItem = React29.forwardRef(function MenuRadioItem2(props, ref) {
3217
+ var MenuRadioItem = React30.forwardRef(function MenuRadioItem2(props, ref) {
3156
3218
  const { className, children, value, onClick, ...rest } = props;
3157
3219
  const { value: _v, ...radixRest } = rest;
3158
3220
  return /* @__PURE__ */ jsxs(
@@ -3175,11 +3237,11 @@ var MenuRadioItem = React29.forwardRef(function MenuRadioItem2(props, ref) {
3175
3237
  }
3176
3238
  );
3177
3239
  });
3178
- React29.forwardRef(function MenuContextTrigger2(props, ref) {
3240
+ React30.forwardRef(function MenuContextTrigger2(props, ref) {
3179
3241
  const { asChild: _asChild, ...rest } = props;
3180
3242
  return /* @__PURE__ */ jsx("span", { ref, ...rest });
3181
3243
  });
3182
- var MenuTriggerItem = React29.forwardRef(function MenuTriggerItem2(props, ref) {
3244
+ var MenuTriggerItem = React30.forwardRef(function MenuTriggerItem2(props, ref) {
3183
3245
  const { startIcon, children, className, ...rest } = props;
3184
3246
  return /* @__PURE__ */ jsx(DropdownMenu.Sub, { children: /* @__PURE__ */ jsxs(
3185
3247
  DropdownMenu.SubTrigger,
@@ -3214,7 +3276,7 @@ var INPUT_BASE2 = [
3214
3276
  ].join(" ");
3215
3277
  var INPUT_FILLED = "border-[var(--color-input-border)]";
3216
3278
  var INPUT_INVALID = "border-[var(--color-border-error)] hover:border-[var(--color-border-error)]";
3217
- var PinInput = React29.forwardRef(
3279
+ var PinInput = React30.forwardRef(
3218
3280
  function PinInput2(props, ref) {
3219
3281
  const {
3220
3282
  count = 6,
@@ -3232,12 +3294,12 @@ var PinInput = React29.forwardRef(
3232
3294
  bgColor,
3233
3295
  className
3234
3296
  } = props;
3235
- const inputRefs = React29.useRef([]);
3236
- const values = React29.useMemo(
3297
+ const inputRefs = React30.useRef([]);
3298
+ const values = React30.useMemo(
3237
3299
  () => controlledValue ?? Array.from({ length: count }).fill(""),
3238
3300
  [controlledValue, count]
3239
3301
  );
3240
- const updateValue = React29.useCallback((index, char) => {
3302
+ const updateValue = React30.useCallback((index, char) => {
3241
3303
  const next = [...values];
3242
3304
  next[index] = char;
3243
3305
  onValueChange?.({ value: next });
@@ -3245,11 +3307,11 @@ var PinInput = React29.forwardRef(
3245
3307
  onValueComplete?.({ value: next });
3246
3308
  }
3247
3309
  }, [values, onValueChange, onValueComplete]);
3248
- const focusInput = React29.useCallback((index) => {
3310
+ const focusInput = React30.useCallback((index) => {
3249
3311
  const clamped = Math.max(0, Math.min(index, count - 1));
3250
3312
  inputRefs.current[clamped]?.focus();
3251
3313
  }, [count]);
3252
- const handleInput = React29.useCallback((index, e) => {
3314
+ const handleInput = React30.useCallback((index, e) => {
3253
3315
  const target = e.currentTarget;
3254
3316
  const char = target.value.slice(-1);
3255
3317
  updateValue(index, char);
@@ -3257,7 +3319,7 @@ var PinInput = React29.forwardRef(
3257
3319
  focusInput(index + 1);
3258
3320
  }
3259
3321
  }, [count, updateValue, focusInput]);
3260
- const handleKeyDown = React29.useCallback((index, e) => {
3322
+ const handleKeyDown = React30.useCallback((index, e) => {
3261
3323
  if (e.key === "Backspace") {
3262
3324
  if (values[index]) {
3263
3325
  updateValue(index, "");
@@ -3274,7 +3336,7 @@ var PinInput = React29.forwardRef(
3274
3336
  e.preventDefault();
3275
3337
  }
3276
3338
  }, [count, values, updateValue, focusInput]);
3277
- const handlePaste = React29.useCallback((e) => {
3339
+ const handlePaste = React30.useCallback((e) => {
3278
3340
  e.preventDefault();
3279
3341
  const pasted = e.clipboardData.getData("text/plain").trim();
3280
3342
  if (!pasted) {
@@ -3291,18 +3353,18 @@ var PinInput = React29.forwardRef(
3291
3353
  }
3292
3354
  focusInput(Math.min(chars.length, count - 1));
3293
3355
  }, [count, values, onValueChange, onValueComplete, focusInput]);
3294
- const handleFocus = React29.useCallback((e) => {
3356
+ const handleFocus = React30.useCallback((e) => {
3295
3357
  e.currentTarget.select();
3296
3358
  }, []);
3297
- const handleNoop = React29.useCallback(() => {
3359
+ const handleNoop = React30.useCallback(() => {
3298
3360
  }, []);
3299
- const setInputRef = React29.useCallback((index) => (el) => {
3361
+ const setInputRef = React30.useCallback((index) => (el) => {
3300
3362
  inputRefs.current[index] = el;
3301
3363
  }, []);
3302
- const onInputAtIndex = React29.useCallback((index) => (e) => {
3364
+ const onInputAtIndex = React30.useCallback((index) => (e) => {
3303
3365
  handleInput(index, e);
3304
3366
  }, [handleInput]);
3305
- const onKeyDownAtIndex = React29.useCallback((index) => (e) => {
3367
+ const onKeyDownAtIndex = React30.useCallback((index) => (e) => {
3306
3368
  handleKeyDown(index, e);
3307
3369
  }, [handleKeyDown]);
3308
3370
  const bgStyle = bgColor ? { backgroundColor: `var(--color-${bgColor.replace(/\./g, "-")})` } : void 0;
@@ -3363,7 +3425,7 @@ function parsePlacement2(placement) {
3363
3425
  }
3364
3426
  return { side, align };
3365
3427
  }
3366
- var PositioningContext2 = React29.createContext({
3428
+ var PositioningContext2 = React30.createContext({
3367
3429
  side: "bottom",
3368
3430
  align: "start",
3369
3431
  sideOffset: 4,
@@ -3397,7 +3459,7 @@ var PopoverRoot = (props) => {
3397
3459
  }
3398
3460
  };
3399
3461
  const { side, align } = parsePlacement2(mergedPositioning.placement);
3400
- const positioningValue = React29.useMemo(() => ({
3462
+ const positioningValue = React30.useMemo(() => ({
3401
3463
  side,
3402
3464
  align,
3403
3465
  sideOffset: mergedPositioning.offset?.mainAxis ?? 4,
@@ -3414,7 +3476,7 @@ var PopoverRoot = (props) => {
3414
3476
  autoFocus,
3415
3477
  closeOnInteractOutside
3416
3478
  ]);
3417
- const handleOpenChange = React29.useCallback((isOpen) => {
3479
+ const handleOpenChange = React30.useCallback((isOpen) => {
3418
3480
  onOpenChange?.({ open: isOpen });
3419
3481
  }, [onOpenChange]);
3420
3482
  const placement = mergedPositioning.placement ?? "bottom-start";
@@ -3432,11 +3494,11 @@ var PopoverRoot = (props) => {
3432
3494
  }
3433
3495
  ) });
3434
3496
  };
3435
- var PopoverTrigger = React29.forwardRef(function PopoverTrigger2(props, ref) {
3497
+ var PopoverTrigger = React30.forwardRef(function PopoverTrigger2(props, ref) {
3436
3498
  const { asChild = true, ...rest } = props;
3437
3499
  return /* @__PURE__ */ jsx(Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
3438
3500
  });
3439
- var PopoverContent = React29.forwardRef(function PopoverContent2(props, ref) {
3501
+ var PopoverContent = React30.forwardRef(function PopoverContent2(props, ref) {
3440
3502
  const { portalled = true, portalRef: _portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
3441
3503
  const resolvedW = typeof w === "object" ? w.base ?? w.lg : w;
3442
3504
  const contentStyle = {
@@ -3467,7 +3529,7 @@ var PopoverContent = React29.forwardRef(function PopoverContent2(props, ref) {
3467
3529
  }
3468
3530
  );
3469
3531
  });
3470
- var PopoverArrow = React29.forwardRef(function PopoverArrow2(props, ref) {
3532
+ var PopoverArrow = React30.forwardRef(function PopoverArrow2(props, ref) {
3471
3533
  const { className, ...rest } = props;
3472
3534
  return /* @__PURE__ */ jsx(
3473
3535
  Popover.Arrow,
@@ -3479,7 +3541,7 @@ var PopoverArrow = React29.forwardRef(function PopoverArrow2(props, ref) {
3479
3541
  }
3480
3542
  );
3481
3543
  });
3482
- var PopoverCloseTrigger = React29.forwardRef(function PopoverCloseTrigger2(props, ref) {
3544
+ var PopoverCloseTrigger = React30.forwardRef(function PopoverCloseTrigger2(props, ref) {
3483
3545
  const { className, ...rest } = props;
3484
3546
  return /* @__PURE__ */ jsx(
3485
3547
  Popover.Close,
@@ -3493,14 +3555,14 @@ var PopoverCloseTrigger = React29.forwardRef(function PopoverCloseTrigger2(props
3493
3555
  }
3494
3556
  );
3495
3557
  });
3496
- var PopoverCloseTriggerWrapper = React29.forwardRef(function PopoverCloseTriggerWrapper2(props, ref) {
3558
+ var PopoverCloseTriggerWrapper = React30.forwardRef(function PopoverCloseTriggerWrapper2(props, ref) {
3497
3559
  const { disabled, children, ...rest } = props;
3498
3560
  if (disabled) {
3499
3561
  return children;
3500
3562
  }
3501
3563
  return /* @__PURE__ */ jsx(Popover.Close, { ref, ...rest, asChild: true, children });
3502
3564
  });
3503
- var PopoverBody = React29.forwardRef(function PopoverBody2(props, ref) {
3565
+ var PopoverBody = React30.forwardRef(function PopoverBody2(props, ref) {
3504
3566
  const {
3505
3567
  className,
3506
3568
  style: styleProp,
@@ -3538,7 +3600,7 @@ var PopoverBody = React29.forwardRef(function PopoverBody2(props, ref) {
3538
3600
  }
3539
3601
  );
3540
3602
  });
3541
- var PopoverHeader = React29.forwardRef(function PopoverHeader2(props, ref) {
3603
+ var PopoverHeader = React30.forwardRef(function PopoverHeader2(props, ref) {
3542
3604
  const { className, ...rest } = props;
3543
3605
  return /* @__PURE__ */ jsx(
3544
3606
  "div",
@@ -3549,7 +3611,7 @@ var PopoverHeader = React29.forwardRef(function PopoverHeader2(props, ref) {
3549
3611
  }
3550
3612
  );
3551
3613
  });
3552
- var PopoverFooter = React29.forwardRef(function PopoverFooter2(props, ref) {
3614
+ var PopoverFooter = React30.forwardRef(function PopoverFooter2(props, ref) {
3553
3615
  const { className, ...rest } = props;
3554
3616
  return /* @__PURE__ */ jsx(
3555
3617
  "div",
@@ -3560,7 +3622,7 @@ var PopoverFooter = React29.forwardRef(function PopoverFooter2(props, ref) {
3560
3622
  }
3561
3623
  );
3562
3624
  });
3563
- var PopoverTitle = React29.forwardRef(function PopoverTitle2(props, ref) {
3625
+ var PopoverTitle = React30.forwardRef(function PopoverTitle2(props, ref) {
3564
3626
  const { className, ...rest } = props;
3565
3627
  return /* @__PURE__ */ jsx(
3566
3628
  "h3",
@@ -3571,7 +3633,7 @@ var PopoverTitle = React29.forwardRef(function PopoverTitle2(props, ref) {
3571
3633
  }
3572
3634
  );
3573
3635
  });
3574
- var PopoverDescription = React29.forwardRef(function PopoverDescription2(props, ref) {
3636
+ var PopoverDescription = React30.forwardRef(function PopoverDescription2(props, ref) {
3575
3637
  const { className, ...rest } = props;
3576
3638
  return /* @__PURE__ */ jsx(
3577
3639
  "p",
@@ -3593,7 +3655,7 @@ function normalizeValue(value, min, max) {
3593
3655
  if (max <= min) return 0;
3594
3656
  return Math.round((value - min) / (max - min) * 100);
3595
3657
  }
3596
- var Progress = React29.forwardRef(
3658
+ var Progress = React30.forwardRef(
3597
3659
  function Progress2(props, ref) {
3598
3660
  const {
3599
3661
  value,
@@ -3670,12 +3732,12 @@ var SIZE_MAP = {
3670
3732
  lg: { size: 48, thickness: 7, textClass: "text-sm" },
3671
3733
  xl: { size: 64, thickness: 8, textClass: "text-sm" }
3672
3734
  };
3673
- var Ctx = React29.createContext({
3735
+ var Ctx = React30.createContext({
3674
3736
  value: 0,
3675
3737
  size: "md",
3676
3738
  colorPalette: "blue"
3677
3739
  });
3678
- var ProgressCircleRoot = React29.forwardRef(function ProgressCircleRoot2(props, ref) {
3740
+ var ProgressCircleRoot = React30.forwardRef(function ProgressCircleRoot2(props, ref) {
3679
3741
  const {
3680
3742
  value = 0,
3681
3743
  size = "md",
@@ -3684,7 +3746,7 @@ var ProgressCircleRoot = React29.forwardRef(function ProgressCircleRoot2(props,
3684
3746
  children,
3685
3747
  ...rest
3686
3748
  } = props;
3687
- const ctx = React29.useMemo(
3749
+ const ctx = React30.useMemo(
3688
3750
  () => ({ value: value ?? null, size, colorPalette }),
3689
3751
  [value, size, colorPalette]
3690
3752
  );
@@ -3702,9 +3764,9 @@ var ProgressCircleRoot = React29.forwardRef(function ProgressCircleRoot2(props,
3702
3764
  }
3703
3765
  ) });
3704
3766
  });
3705
- var ProgressCircleRing = React29.forwardRef(function ProgressCircleRing2(props, ref) {
3767
+ var ProgressCircleRing = React30.forwardRef(function ProgressCircleRing2(props, ref) {
3706
3768
  const { trackColor, cap, color, className, ...rest } = props;
3707
- const { value, size: sizeKey } = React29.useContext(Ctx);
3769
+ const { value, size: sizeKey } = React30.useContext(Ctx);
3708
3770
  const { size, thickness } = SIZE_MAP[sizeKey];
3709
3771
  const radius = size / 2 - thickness / 2;
3710
3772
  const circumference = 2 * Math.PI * radius;
@@ -3759,9 +3821,9 @@ var ProgressCircleRing = React29.forwardRef(function ProgressCircleRing2(props,
3759
3821
  }
3760
3822
  );
3761
3823
  });
3762
- var ProgressCircleValueText = React29.forwardRef(function ProgressCircleValueText2(props, ref) {
3824
+ var ProgressCircleValueText = React30.forwardRef(function ProgressCircleValueText2(props, ref) {
3763
3825
  const { className, children, ...rest } = props;
3764
- const { value, size: sizeKey } = React29.useContext(Ctx);
3826
+ const { value, size: sizeKey } = React30.useContext(Ctx);
3765
3827
  const { textClass } = SIZE_MAP[sizeKey];
3766
3828
  return /* @__PURE__ */ jsx(
3767
3829
  "div",
@@ -3805,8 +3867,8 @@ var SIZE_CLASSES8 = {
3805
3867
  label: "text-base"
3806
3868
  }
3807
3869
  };
3808
- var RadioSizeContext = React29.createContext("md");
3809
- var RadioGroupBase = React29.forwardRef(
3870
+ var RadioSizeContext = React30.createContext("md");
3871
+ var RadioGroupBase = React30.forwardRef(
3810
3872
  function RadioGroup2(props, ref) {
3811
3873
  const {
3812
3874
  children,
@@ -3823,7 +3885,7 @@ var RadioGroupBase = React29.forwardRef(
3823
3885
  className,
3824
3886
  ...rest
3825
3887
  } = props;
3826
- const handleValueChange = React29.useCallback(
3888
+ const handleValueChange = React30.useCallback(
3827
3889
  (nextValue) => {
3828
3890
  if (readOnly) return;
3829
3891
  onValueChange?.({ value: nextValue });
@@ -3856,10 +3918,10 @@ var RadioGroupBase = React29.forwardRef(
3856
3918
  var RadioGroup3 = RadioGroupBase;
3857
3919
  var NOOP2 = () => {
3858
3920
  };
3859
- var RadioBase = React29.forwardRef(
3921
+ var RadioBase = React30.forwardRef(
3860
3922
  function Radio(props, ref) {
3861
3923
  const { children, inputProps, rootRef, value, disabled, className, ...rest } = props;
3862
- const size = React29.useContext(RadioSizeContext);
3924
+ const size = React30.useContext(RadioSizeContext);
3863
3925
  const sizeClasses2 = SIZE_CLASSES8[size];
3864
3926
  return /* @__PURE__ */ jsxs(
3865
3927
  "label",
@@ -3921,23 +3983,23 @@ var RadioBase = React29.forwardRef(
3921
3983
  var Radio2 = RadioBase;
3922
3984
  var StarFilledIcon = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }) });
3923
3985
  var StarOutlineIcon = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z", strokeWidth: "1.5" }) });
3924
- var Rating = React29.forwardRef(
3986
+ var Rating = React30.forwardRef(
3925
3987
  function Rating2(props, ref) {
3926
3988
  const { count = 5, label: labelProp, defaultValue = 0, onValueChange, readOnly, className, ...rest } = props;
3927
- const [value, setValue] = React29.useState(defaultValue);
3928
- const [hoveredIndex, setHoveredIndex] = React29.useState(-1);
3989
+ const [value, setValue] = React30.useState(defaultValue);
3990
+ const [hoveredIndex, setHoveredIndex] = React30.useState(-1);
3929
3991
  const highlightedIndex = hoveredIndex >= 0 && !readOnly ? hoveredIndex + 1 : value;
3930
3992
  const label = Array.isArray(labelProp) ? labelProp[highlightedIndex - 1] : labelProp;
3931
- const handleClick = React29.useCallback((index) => () => {
3993
+ const handleClick = React30.useCallback((index) => () => {
3932
3994
  if (readOnly) return;
3933
3995
  setValue(index);
3934
3996
  onValueChange?.({ value: index });
3935
3997
  }, [readOnly, onValueChange]);
3936
- const handleMouseEnter = React29.useCallback((index) => () => {
3998
+ const handleMouseEnter = React30.useCallback((index) => () => {
3937
3999
  if (readOnly) return;
3938
4000
  setHoveredIndex(index);
3939
4001
  }, [readOnly]);
3940
- const handleMouseLeave = React29.useCallback(() => {
4002
+ const handleMouseLeave = React30.useCallback(() => {
3941
4003
  setHoveredIndex(-1);
3942
4004
  }, []);
3943
4005
  return /* @__PURE__ */ jsxs("div", { ref, className: cn("inline-flex items-center gap-1", className), ...rest, children: [
@@ -3965,14 +4027,14 @@ var Rating = React29.forwardRef(
3965
4027
  ] });
3966
4028
  }
3967
4029
  );
3968
- function createListCollection(config) {
3969
- return { items: config.items };
4030
+ function createListCollection(config2) {
4031
+ return { items: config2.items };
3970
4032
  }
3971
4033
  var ArrowIcon2 = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M7.5 15L12.5 10L7.5 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
3972
4034
  var CheckIcon2 = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M16.667 5L7.5 14.167 3.333 10", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
3973
4035
  function FilterInput({ placeholder, initialValue = "", onChange }) {
3974
- const [value, setValue] = React29.useState(initialValue);
3975
- const handleChange = React29.useCallback((e) => {
4036
+ const [value, setValue] = React30.useState(initialValue);
4037
+ const handleChange = React30.useCallback((e) => {
3976
4038
  setValue(e.target.value);
3977
4039
  onChange?.(e.target.value);
3978
4040
  }, [onChange]);
@@ -3991,15 +4053,15 @@ function FilterInput({ placeholder, initialValue = "", onChange }) {
3991
4053
  }
3992
4054
  );
3993
4055
  }
3994
- var SelectInternalContext = React29.createContext(null);
4056
+ var SelectInternalContext = React30.createContext(null);
3995
4057
  function useSelectInternalContext() {
3996
- const ctx = React29.useContext(SelectInternalContext);
4058
+ const ctx = React30.useContext(SelectInternalContext);
3997
4059
  if (!ctx) {
3998
4060
  throw new Error("Select compound components must be rendered inside <SelectRoot>");
3999
4061
  }
4000
4062
  return ctx;
4001
4063
  }
4002
- var SelectRoot = React29.forwardRef(
4064
+ var SelectRoot = React30.forwardRef(
4003
4065
  function SelectRoot2(props, ref) {
4004
4066
  const {
4005
4067
  children,
@@ -4030,21 +4092,21 @@ var SelectRoot = React29.forwardRef(
4030
4092
  hideFrom: _hideFrom
4031
4093
  } = props;
4032
4094
  const collection = collectionProp ?? createListCollection({ items: [] });
4033
- const [internalValue, setInternalValue] = React29.useState(defaultValueArr ?? []);
4095
+ const [internalValue, setInternalValue] = React30.useState(defaultValueArr ?? []);
4034
4096
  const currentValue = valueProp ?? internalValue;
4035
- const selectedItems = React29.useMemo(() => {
4097
+ const selectedItems = React30.useMemo(() => {
4036
4098
  return currentValue.map((v) => collection.items.find((item) => item.value === v)).filter(Boolean);
4037
4099
  }, [currentValue, collection.items]);
4038
- const [open, setOpen] = React29.useState(defaultOpen ?? false);
4100
+ const [open, setOpen] = React30.useState(defaultOpen ?? false);
4039
4101
  const isOpen = openProp ?? open;
4040
- const handleOpenChange = React29.useCallback((nextOpen) => {
4102
+ const handleOpenChange = React30.useCallback((nextOpen) => {
4041
4103
  setOpen(nextOpen);
4042
4104
  onOpenChange?.(nextOpen);
4043
4105
  if (!nextOpen) {
4044
4106
  onInteractOutside?.();
4045
4107
  }
4046
4108
  }, [onOpenChange, onInteractOutside]);
4047
- const handleRadixValueChange = React29.useCallback((radixValue) => {
4109
+ const handleRadixValueChange = React30.useCallback((radixValue) => {
4048
4110
  const nextArr = [radixValue];
4049
4111
  if (!valueProp) {
4050
4112
  setInternalValue(nextArr);
@@ -4052,7 +4114,7 @@ var SelectRoot = React29.forwardRef(
4052
4114
  const items = collection.items.filter((item) => nextArr.includes(item.value));
4053
4115
  onValueChangeProp?.({ value: nextArr, items });
4054
4116
  }, [valueProp, collection.items, onValueChangeProp]);
4055
- const ctxValue = React29.useMemo(() => ({
4117
+ const ctxValue = React30.useMemo(() => ({
4056
4118
  value: currentValue,
4057
4119
  selectedItems,
4058
4120
  collection,
@@ -4072,7 +4134,7 @@ var SelectRoot = React29.forwardRef(
4072
4134
  if (typeof v === "string") return v;
4073
4135
  return v.base ?? v.lg ?? Object.values(v)[0];
4074
4136
  };
4075
- const inlineStyle = React29.useMemo(() => {
4137
+ const inlineStyle = React30.useMemo(() => {
4076
4138
  const s = { ...style };
4077
4139
  const rw = resolveVal(w);
4078
4140
  if (rw) s.width = rw;
@@ -4110,7 +4172,7 @@ var SelectRoot = React29.forwardRef(
4110
4172
  ) });
4111
4173
  }
4112
4174
  );
4113
- var SelectControl = React29.forwardRef(
4175
+ var SelectControl = React30.forwardRef(
4114
4176
  function SelectControl2(props, ref) {
4115
4177
  const { children, noIndicator, triggerProps, loading, defaultValue } = props;
4116
4178
  const ctx = useSelectInternalContext();
@@ -4147,11 +4209,11 @@ var SelectControl = React29.forwardRef(
4147
4209
  return trigger;
4148
4210
  }
4149
4211
  );
4150
- var SelectClearTrigger = React29.forwardRef(
4212
+ var SelectClearTrigger = React30.forwardRef(
4151
4213
  function SelectClearTrigger2(props, ref) {
4152
4214
  const { className, ...rest } = props;
4153
4215
  const ctx = useSelectInternalContext();
4154
- const handleClick = React29.useCallback(() => {
4216
+ const handleClick = React30.useCallback(() => {
4155
4217
  ctx.onValueChange({ value: [], items: [] });
4156
4218
  }, [ctx]);
4157
4219
  return /* @__PURE__ */ jsx(
@@ -4168,7 +4230,7 @@ var SelectClearTrigger = React29.forwardRef(
4168
4230
  );
4169
4231
  }
4170
4232
  );
4171
- var SelectContent = React29.forwardRef(
4233
+ var SelectContent = React30.forwardRef(
4172
4234
  function SelectContent2(props, ref) {
4173
4235
  const { portalled = true, portalRef, children, className, ...rest } = props;
4174
4236
  const content = /* @__PURE__ */ jsx(
@@ -4195,7 +4257,7 @@ var SelectContent = React29.forwardRef(
4195
4257
  return content;
4196
4258
  }
4197
4259
  );
4198
- var SelectItem = React29.forwardRef(
4260
+ var SelectItem = React30.forwardRef(
4199
4261
  function SelectItem2(props, ref) {
4200
4262
  const { item, children, className, ...rest } = props;
4201
4263
  return /* @__PURE__ */ jsxs(
@@ -4223,7 +4285,7 @@ var SelectItem = React29.forwardRef(
4223
4285
  );
4224
4286
  }
4225
4287
  );
4226
- var SelectValueText = React29.forwardRef(
4288
+ var SelectValueText = React30.forwardRef(
4227
4289
  function SelectValueText2(props, ref) {
4228
4290
  const { children, size, required, invalid, errorText, mode, className, style, placeholder: placeholderProp, ...rest } = props;
4229
4291
  const ctx = useSelectInternalContext();
@@ -4279,7 +4341,7 @@ var SelectValueText = React29.forwardRef(
4279
4341
  );
4280
4342
  }
4281
4343
  );
4282
- var SelectItemGroup = React29.forwardRef(
4344
+ var SelectItemGroup = React30.forwardRef(
4283
4345
  function SelectItemGroup2(props, ref) {
4284
4346
  const { children, label, className, ...rest } = props;
4285
4347
  return /* @__PURE__ */ jsxs(RadixSelect.Group, { ref, className: cn("py-1", className), ...rest, children: [
@@ -4290,7 +4352,7 @@ var SelectItemGroup = React29.forwardRef(
4290
4352
  );
4291
4353
  var SelectLabel = RadixSelect.Label;
4292
4354
  var SelectItemText = RadixSelect.ItemText;
4293
- var Select = React29.forwardRef((props, ref) => {
4355
+ var Select = React30.forwardRef((props, ref) => {
4294
4356
  const { collection, placeholder, portalled = true, loading, errorText, contentProps, contentHeader, itemFilter, mode, ...rest } = props;
4295
4357
  return /* @__PURE__ */ jsxs(
4296
4358
  SelectRoot,
@@ -4312,7 +4374,7 @@ var Select = React29.forwardRef((props, ref) => {
4312
4374
  ) }),
4313
4375
  /* @__PURE__ */ jsxs(SelectContent, { portalled, ...contentProps, children: [
4314
4376
  contentHeader,
4315
- collection.items.filter(itemFilter ?? (() => true)).map((item) => /* @__PURE__ */ jsxs(React29.Fragment, { children: [
4377
+ collection.items.filter(itemFilter ?? (() => true)).map((item) => /* @__PURE__ */ jsxs(React30.Fragment, { children: [
4316
4378
  /* @__PURE__ */ jsx(SelectItem, { item, children: item.renderLabel ? item.renderLabel("item") : item.label }),
4317
4379
  item.afterElement
4318
4380
  ] }, item.value))
@@ -4321,19 +4383,19 @@ var Select = React29.forwardRef((props, ref) => {
4321
4383
  }
4322
4384
  );
4323
4385
  });
4324
- var SelectAsync = React29.forwardRef((props, ref) => {
4386
+ var SelectAsync = React30.forwardRef((props, ref) => {
4325
4387
  const { placeholder, portalled = true, loading, loadOptions, extraControls, onValueChange, errorText, mode, contentHeader, ...rest } = props;
4326
- const [collection, setCollection] = React29.useState(createListCollection({ items: [] }));
4327
- const [inputValue, setInputValue] = React29.useState("");
4328
- const [value, setValue] = React29.useState([]);
4388
+ const [collection, setCollection] = React30.useState(createListCollection({ items: [] }));
4389
+ const [inputValue, setInputValue] = React30.useState("");
4390
+ const [value, setValue] = React30.useState([]);
4329
4391
  const debouncedInputValue = useDebounce(inputValue, 300);
4330
- React29.useEffect(() => {
4392
+ React30.useEffect(() => {
4331
4393
  loadOptions(debouncedInputValue, value).then(setCollection);
4332
4394
  }, [debouncedInputValue, loadOptions, value]);
4333
- const handleFilterChange = React29.useCallback((val) => {
4395
+ const handleFilterChange = React30.useCallback((val) => {
4334
4396
  setInputValue(val);
4335
4397
  }, []);
4336
- const handleValueChange = React29.useCallback(({ value: v, items }) => {
4398
+ const handleValueChange = React30.useCallback(({ value: v, items }) => {
4337
4399
  setValue(v);
4338
4400
  onValueChange?.({ value: v, items });
4339
4401
  }, [onValueChange]);
@@ -4392,7 +4454,7 @@ var VERTICAL_SIZE_CLASSES = {
4392
4454
  md: "border-l-2",
4393
4455
  lg: "border-l-[3px]"
4394
4456
  };
4395
- var Separator2 = React29__default.forwardRef(
4457
+ var Separator2 = React30__default.forwardRef(
4396
4458
  function Separator3({ orientation = "horizontal", variant = "solid", size = "sm", className, ...rest }, ref) {
4397
4459
  const isVertical = orientation === "vertical";
4398
4460
  return /* @__PURE__ */ jsx(
@@ -4416,7 +4478,7 @@ var Separator2 = React29__default.forwardRef(
4416
4478
  );
4417
4479
  var THUMB_SIZE = 20;
4418
4480
  var TRACK_HEIGHT = 6;
4419
- var Slider = React29.forwardRef(
4481
+ var Slider = React30.forwardRef(
4420
4482
  function Slider2(props, ref) {
4421
4483
  const {
4422
4484
  marks: marksProp,
@@ -4535,7 +4597,7 @@ var SIZE_CLASSES9 = {
4535
4597
  label: "text-base"
4536
4598
  }
4537
4599
  };
4538
- var SwitchBase = React29.forwardRef(
4600
+ var SwitchBase = React30.forwardRef(
4539
4601
  function Switch(props, ref) {
4540
4602
  const {
4541
4603
  inputProps,
@@ -4554,10 +4616,10 @@ var SwitchBase = React29.forwardRef(
4554
4616
  className,
4555
4617
  ...rest
4556
4618
  } = props;
4557
- const [internalChecked, setInternalChecked] = React29.useState(defaultChecked ?? false);
4619
+ const [internalChecked, setInternalChecked] = React30.useState(defaultChecked ?? false);
4558
4620
  const isControlled = checkedProp !== void 0;
4559
4621
  const checkedState = isControlled ? checkedProp : internalChecked;
4560
- const handleCheckedChange = React29.useCallback(
4622
+ const handleCheckedChange = React30.useCallback(
4561
4623
  (nextChecked) => {
4562
4624
  if (!isControlled) {
4563
4625
  setInternalChecked(nextChecked);
@@ -4822,7 +4884,7 @@ function resolveResponsive(value) {
4822
4884
  }
4823
4885
  return void 0;
4824
4886
  }
4825
- var TableRoot = React29.forwardRef(
4887
+ var TableRoot = React30.forwardRef(
4826
4888
  function TableRoot2(props, ref) {
4827
4889
  const { className, style: styleProp, children, ...other } = props;
4828
4890
  const rawMinW = other.minWidth ?? other.minW;
@@ -4845,7 +4907,7 @@ var TableRoot = React29.forwardRef(
4845
4907
  );
4846
4908
  }
4847
4909
  );
4848
- var TableHeader = React29.forwardRef(
4910
+ var TableHeader = React30.forwardRef(
4849
4911
  function TableHeader2(props, ref) {
4850
4912
  const { className, style: styleProp, children, ...other } = props;
4851
4913
  const { style: extracted, rest } = extractStyles(other);
@@ -4862,7 +4924,7 @@ var TableHeader = React29.forwardRef(
4862
4924
  );
4863
4925
  }
4864
4926
  );
4865
- var TableBody = React29.forwardRef(
4927
+ var TableBody = React30.forwardRef(
4866
4928
  function TableBody2(props, ref) {
4867
4929
  const { className, style: styleProp, children, ...other } = props;
4868
4930
  const { style: extracted, rest } = extractStyles(other);
@@ -4879,7 +4941,7 @@ var TableBody = React29.forwardRef(
4879
4941
  );
4880
4942
  }
4881
4943
  );
4882
- var TableRow = React29.forwardRef(
4944
+ var TableRow = React30.forwardRef(
4883
4945
  function TableRow2(props, ref) {
4884
4946
  const { className, style: styleProp, children, ...other } = props;
4885
4947
  const { style: extracted, rest } = extractStyles(other);
@@ -4896,7 +4958,7 @@ var TableRow = React29.forwardRef(
4896
4958
  );
4897
4959
  }
4898
4960
  );
4899
- var TableCell = React29.forwardRef(
4961
+ var TableCell = React30.forwardRef(
4900
4962
  function TableCell2(props, ref) {
4901
4963
  const { isNumeric, className, style: styleProp, children, ...other } = props;
4902
4964
  const { style: extracted, rest } = extractStyles(other);
@@ -4917,7 +4979,7 @@ var TableCell = React29.forwardRef(
4917
4979
  );
4918
4980
  }
4919
4981
  );
4920
- var TableColumnHeader = React29.forwardRef(
4982
+ var TableColumnHeader = React30.forwardRef(
4921
4983
  function TableColumnHeader2(props, ref) {
4922
4984
  const { isNumeric, className, style: styleProp, children, ...other } = props;
4923
4985
  const { style: extracted, rest } = extractStyles(other);
@@ -4944,7 +5006,7 @@ var TableColumnHeader = React29.forwardRef(
4944
5006
  );
4945
5007
  var TableColumnHeaderSortable = (props) => {
4946
5008
  const { sortField, sortValue, onSortToggle, children, disabled, indicatorPosition = "left", contentAfter, ...rest } = props;
4947
- const handleSortToggle = React29.useCallback(() => {
5009
+ const handleSortToggle = React30.useCallback(() => {
4948
5010
  onSortToggle(sortField);
4949
5011
  }, [onSortToggle, sortField]);
4950
5012
  const isActive = sortValue.includes(sortField);
@@ -4970,16 +5032,16 @@ var TableColumnHeaderSortable = (props) => {
4970
5032
  var ACTION_BAR_SHADOW = "0 4px 4px -4px rgb(0 0 0 / 10%), 0 2px 4px -4px rgb(0 0 0 / 6%)";
4971
5033
  var TableHeaderSticky = (props) => {
4972
5034
  const { top, children, className, style: styleProp, ...rest } = props;
4973
- const ref = React29.useRef(null);
4974
- const [isStuck, setIsStuck] = React29.useState(false);
4975
- const handleScroll = React29.useCallback(() => {
5035
+ const ref = React30.useRef(null);
5036
+ const [isStuck, setIsStuck] = React30.useState(false);
5037
+ const handleScroll = React30.useCallback(() => {
4976
5038
  if (Number(ref.current?.getBoundingClientRect().y) <= (Number(top) || 0)) {
4977
5039
  setIsStuck(true);
4978
5040
  } else {
4979
5041
  setIsStuck(false);
4980
5042
  }
4981
5043
  }, [top]);
4982
- React29.useEffect(() => {
5044
+ React30.useEffect(() => {
4983
5045
  const throttledHandleScroll = throttle(handleScroll, 300);
4984
5046
  window.addEventListener("scroll", throttledHandleScroll);
4985
5047
  return () => {
@@ -5001,7 +5063,7 @@ var TableHeaderSticky = (props) => {
5001
5063
  }
5002
5064
  );
5003
5065
  };
5004
- var TableCaption = React29.forwardRef(
5066
+ var TableCaption = React30.forwardRef(
5005
5067
  function TableCaption2(props, ref) {
5006
5068
  const { className, style: styleProp, children, ...other } = props;
5007
5069
  const { style: extracted, rest } = extractStyles(other);
@@ -5018,7 +5080,7 @@ var TableCaption = React29.forwardRef(
5018
5080
  );
5019
5081
  }
5020
5082
  );
5021
- var TableFooter = React29.forwardRef(
5083
+ var TableFooter = React30.forwardRef(
5022
5084
  function TableFooter2(props, ref) {
5023
5085
  const { className, style: styleProp, children, ...other } = props;
5024
5086
  const { style: extracted, rest } = extractStyles(other);
@@ -5035,7 +5097,7 @@ var TableFooter = React29.forwardRef(
5035
5097
  );
5036
5098
  }
5037
5099
  );
5038
- var TableScrollWrapper = React29.forwardRef(
5100
+ var TableScrollWrapper = React30.forwardRef(
5039
5101
  function TableScrollWrapper2(props, ref) {
5040
5102
  const { className, children, ...rest } = props;
5041
5103
  return /* @__PURE__ */ jsx(
@@ -5054,7 +5116,7 @@ var ROOT_SIZE_CLASSES = {
5054
5116
  md: "[--tabs-height:2.5rem] [--tabs-content-padding:1.5rem]",
5055
5117
  free: ""
5056
5118
  };
5057
- var TabsRoot = React29.forwardRef(
5119
+ var TabsRoot = React30.forwardRef(
5058
5120
  function TabsRoot2(props, ref) {
5059
5121
  const {
5060
5122
  variant = "solid",
@@ -5066,7 +5128,7 @@ var TabsRoot = React29.forwardRef(
5066
5128
  className,
5067
5129
  ...rest
5068
5130
  } = props;
5069
- const handleValueChange = React29.useCallback(
5131
+ const handleValueChange = React30.useCallback(
5070
5132
  (value) => {
5071
5133
  if (!onValueChange) return;
5072
5134
  onValueChange({ value });
@@ -5091,7 +5153,7 @@ var TabsRoot = React29.forwardRef(
5091
5153
  );
5092
5154
  }
5093
5155
  );
5094
- var TabsList = React29.forwardRef(
5156
+ var TabsList = React30.forwardRef(
5095
5157
  function TabsList2(props, ref) {
5096
5158
  const {
5097
5159
  className,
@@ -5145,7 +5207,7 @@ var TRIGGER_VARIANT_CLASSES = {
5145
5207
  segmented: "bg-transparent text-text-primary border-2 border-solid border-selected-control-bg hover:text-hover data-[state=active]:text-selected-control-text data-[state=active]:bg-selected-control-bg data-[state=active]:border-selected-control-bg data-[state=active]:hover:text-selected-control-text",
5146
5208
  unstyled: ""
5147
5209
  };
5148
- var TabsTrigger = React29.forwardRef(
5210
+ var TabsTrigger = React30.forwardRef(
5149
5211
  function TabsTrigger2(props, ref) {
5150
5212
  const {
5151
5213
  className,
@@ -5165,7 +5227,7 @@ var TabsTrigger = React29.forwardRef(
5165
5227
  visibility: _visibility,
5166
5228
  ...rest
5167
5229
  } = props;
5168
- const internalRef = React29.useRef(null);
5230
+ const internalRef = React30.useRef(null);
5169
5231
  const mergedRef = useMergedRef(ref, internalRef);
5170
5232
  const { variant, size, fitted } = useTabsContext(internalRef);
5171
5233
  return /* @__PURE__ */ jsx(
@@ -5185,7 +5247,7 @@ var TabsTrigger = React29.forwardRef(
5185
5247
  );
5186
5248
  }
5187
5249
  );
5188
- var TabsContent = React29.forwardRef(
5250
+ var TabsContent = React30.forwardRef(
5189
5251
  function TabsContent2(props, ref) {
5190
5252
  const { className, padding: _padding, ...rest } = props;
5191
5253
  return /* @__PURE__ */ jsx(
@@ -5219,8 +5281,8 @@ var TabsCounter = ({ count }) => {
5219
5281
  );
5220
5282
  };
5221
5283
  function useTabsContext(triggerRef) {
5222
- const [ctx, setCtx] = React29.useState({ variant: "solid", size: "md", fitted: false });
5223
- React29.useEffect(() => {
5284
+ const [ctx, setCtx] = React30.useState({ variant: "solid", size: "md", fitted: false });
5285
+ React30.useEffect(() => {
5224
5286
  const el = triggerRef.current;
5225
5287
  if (!el) return;
5226
5288
  const root = el.closest("[data-variant]");
@@ -5234,7 +5296,7 @@ function useTabsContext(triggerRef) {
5234
5296
  return ctx;
5235
5297
  }
5236
5298
  function useMergedRef(...refs) {
5237
- return React29.useCallback(
5299
+ return React30.useCallback(
5238
5300
  (instance) => {
5239
5301
  for (const ref of refs) {
5240
5302
  if (!ref) continue;
@@ -5272,7 +5334,7 @@ var TAG_SELECTED_CLASSES = [
5272
5334
  "hover:opacity-76"
5273
5335
  ].join(" ");
5274
5336
  var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
5275
- var Tag = React29.forwardRef(
5337
+ var Tag = React30.forwardRef(
5276
5338
  function Tag2(props, ref) {
5277
5339
  const {
5278
5340
  variant,
@@ -5359,14 +5421,22 @@ var TEXTAREA_VARIANT_CLASSES = {
5359
5421
  filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
5360
5422
  unstyled: "border-0 bg-transparent p-0"
5361
5423
  };
5362
- var Textarea = React29__default.forwardRef(
5363
- ({ size = "md", variant = "outline", className, ...rest }, ref) => {
5424
+ var Textarea = React30__default.forwardRef(
5425
+ ({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
5426
+ const handleChange = React30__default.useCallback(
5427
+ (event) => {
5428
+ onChange?.(event);
5429
+ onChangeText?.(event.target.value);
5430
+ },
5431
+ [onChange, onChangeText]
5432
+ );
5364
5433
  return /* @__PURE__ */ jsx(
5365
5434
  "textarea",
5366
5435
  {
5367
5436
  ref,
5368
5437
  className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
5369
- ...rest
5438
+ ...rest,
5439
+ onChange: handleChange
5370
5440
  }
5371
5441
  );
5372
5442
  }
@@ -5495,7 +5565,7 @@ function QuoteCell({ value, highlight, align = "right", onClick, className }) {
5495
5565
  }
5496
5566
  var CALL_HEADERS = ["Bid", "Ask", "Last", "Vol", "OI", "IV", "Delta"];
5497
5567
  var PUT_HEADERS = ["Delta", "IV", "OI", "Vol", "Last", "Ask", "Bid"];
5498
- var OptionChain = React29.forwardRef(
5568
+ var OptionChain = React30.forwardRef(
5499
5569
  function OptionChain2(props, ref) {
5500
5570
  const {
5501
5571
  symbol: _symbol,
@@ -5506,7 +5576,7 @@ var OptionChain = React29.forwardRef(
5506
5576
  className,
5507
5577
  ...rest
5508
5578
  } = props;
5509
- const handleClick = React29.useCallback(
5579
+ const handleClick = React30.useCallback(
5510
5580
  (quote, type, strike) => {
5511
5581
  if (!quote || !onSelectContract) return;
5512
5582
  onSelectContract({
@@ -5686,7 +5756,7 @@ function GreekItem({ def, value, compact }) {
5686
5756
  }
5687
5757
  );
5688
5758
  }
5689
- var GreeksDisplay = React29.forwardRef(
5759
+ var GreeksDisplay = React30.forwardRef(
5690
5760
  function GreeksDisplay2(props, ref) {
5691
5761
  const {
5692
5762
  delta,
@@ -5917,7 +5987,7 @@ function LegRow({ leg, index, strikes, expirations, removable, onChange, onRemov
5917
5987
  )
5918
5988
  ] });
5919
5989
  }
5920
- var StrategyBuilder = React29.forwardRef(
5990
+ var StrategyBuilder = React30.forwardRef(
5921
5991
  function StrategyBuilder2(props, ref) {
5922
5992
  const {
5923
5993
  underlying,
@@ -5929,12 +5999,12 @@ var StrategyBuilder = React29.forwardRef(
5929
5999
  ...rest
5930
6000
  } = props;
5931
6001
  const defaultExp = expirations[0] ?? "";
5932
- const [strategyType, setStrategyType] = React29.useState("bull_call_spread");
5933
- const [legs, setLegs] = React29.useState(() => {
6002
+ const [strategyType, setStrategyType] = React30.useState("bull_call_spread");
6003
+ const [legs, setLegs] = React30.useState(() => {
5934
6004
  const preset = STRATEGY_PRESETS.find((p) => p.value === "bull_call_spread");
5935
6005
  return preset ? preset.buildLegs(strikes, spotPrice, defaultExp) : [];
5936
6006
  });
5937
- const handleStrategyChange = React29.useCallback(
6007
+ const handleStrategyChange = React30.useCallback(
5938
6008
  (e) => {
5939
6009
  const type = e.target.value;
5940
6010
  setStrategyType(type);
@@ -5945,7 +6015,7 @@ var StrategyBuilder = React29.forwardRef(
5945
6015
  },
5946
6016
  [strikes, spotPrice, defaultExp]
5947
6017
  );
5948
- const handleLegChange = React29.useCallback(
6018
+ const handleLegChange = React30.useCallback(
5949
6019
  (index, leg) => {
5950
6020
  setLegs((prev) => {
5951
6021
  const next = [...prev];
@@ -5955,13 +6025,13 @@ var StrategyBuilder = React29.forwardRef(
5955
6025
  },
5956
6026
  []
5957
6027
  );
5958
- const handleLegRemove = React29.useCallback(
6028
+ const handleLegRemove = React30.useCallback(
5959
6029
  (index) => {
5960
6030
  setLegs((prev) => prev.filter((_, i) => i !== index));
5961
6031
  },
5962
6032
  []
5963
6033
  );
5964
- const handleAddLeg = React29.useCallback(() => {
6034
+ const handleAddLeg = React30.useCallback(() => {
5965
6035
  if (legs.length >= 4) return;
5966
6036
  const atm = findATM(strikes, spotPrice);
5967
6037
  setLegs((prev) => [
@@ -5969,14 +6039,14 @@ var StrategyBuilder = React29.forwardRef(
5969
6039
  { action: "buy", type: "call", strike: atm, expiration: defaultExp, quantity: 1 }
5970
6040
  ]);
5971
6041
  }, [legs.length, strikes, spotPrice, defaultExp]);
5972
- const netPremium = React29.useMemo(() => {
6042
+ const netPremium = React30.useMemo(() => {
5973
6043
  return legs.reduce((sum, leg) => {
5974
6044
  if (leg.premium === void 0) return sum;
5975
6045
  const sign = leg.action === "buy" ? -1 : 1;
5976
6046
  return sum + sign * leg.premium * leg.quantity;
5977
6047
  }, 0);
5978
6048
  }, [legs]);
5979
- const handleSubmit = React29.useCallback(() => {
6049
+ const handleSubmit = React30.useCallback(() => {
5980
6050
  if (!onSubmit || legs.length === 0) return;
5981
6051
  onSubmit({
5982
6052
  type: strategyType,
@@ -6097,7 +6167,7 @@ function buildPath(points, vb, width, height) {
6097
6167
  return parts.join(" ");
6098
6168
  }
6099
6169
  var LEG_COLORS = ["#6366f1", "#f59e0b", "#ec4899", "#06b6d4"];
6100
- var PnlDiagram = React29.forwardRef(
6170
+ var PnlDiagram = React30.forwardRef(
6101
6171
  function PnlDiagram2(props, ref) {
6102
6172
  const {
6103
6173
  legs,
@@ -6106,10 +6176,10 @@ var PnlDiagram = React29.forwardRef(
6106
6176
  className,
6107
6177
  ...rest
6108
6178
  } = props;
6109
- const containerRef = React29.useRef(null);
6110
- const [hoverX, setHoverX] = React29.useState(null);
6111
- const [dims, setDims] = React29.useState({ width: 600, height: 240 });
6112
- React29.useEffect(() => {
6179
+ const containerRef = React30.useRef(null);
6180
+ const [hoverX, setHoverX] = React30.useState(null);
6181
+ const [dims, setDims] = React30.useState({ width: 600, height: 240 });
6182
+ React30.useEffect(() => {
6113
6183
  const el = containerRef.current;
6114
6184
  if (!el) return;
6115
6185
  const observer = new ResizeObserver((entries) => {
@@ -6132,7 +6202,7 @@ var PnlDiagram = React29.forwardRef(
6132
6202
  const xMax = maxStrike + range * 0.3;
6133
6203
  const SAMPLES = 200;
6134
6204
  const step = (xMax - xMin) / SAMPLES;
6135
- const combinedPoints = React29.useMemo(() => {
6205
+ const combinedPoints = React30.useMemo(() => {
6136
6206
  const pts = [];
6137
6207
  for (let i = 0; i <= SAMPLES; i++) {
6138
6208
  const price = xMin + i * step;
@@ -6140,7 +6210,7 @@ var PnlDiagram = React29.forwardRef(
6140
6210
  }
6141
6211
  return pts;
6142
6212
  }, [legs, multiplier, xMin, step]);
6143
- const legPointSets = React29.useMemo(() => {
6213
+ const legPointSets = React30.useMemo(() => {
6144
6214
  return legs.map((leg) => {
6145
6215
  const pts = [];
6146
6216
  for (let i = 0; i <= SAMPLES; i++) {
@@ -6161,7 +6231,7 @@ var PnlDiagram = React29.forwardRef(
6161
6231
  const chartH = height - PADDING.top - PADDING.bottom;
6162
6232
  const scaleX = (x) => PADDING.left + (x - vb.xMin) / (vb.xMax - vb.xMin) * chartW;
6163
6233
  const scaleY = (y) => PADDING.top + chartH - (y - vb.yMin) / (vb.yMax - vb.yMin) * chartH;
6164
- const breakevens = React29.useMemo(() => {
6234
+ const breakevens = React30.useMemo(() => {
6165
6235
  const pts = [];
6166
6236
  for (let i = 1; i < combinedPoints.length; i++) {
6167
6237
  const prev = combinedPoints[i - 1];
@@ -6178,7 +6248,7 @@ var PnlDiagram = React29.forwardRef(
6178
6248
  const maxGainPoint = combinedPoints.find((p) => p.y === maxGain);
6179
6249
  const maxLossPoint = combinedPoints.find((p) => p.y === maxLoss);
6180
6250
  const zeroY = scaleY(0);
6181
- const handleMouseMove = React29.useCallback(
6251
+ const handleMouseMove = React30.useCallback(
6182
6252
  (e) => {
6183
6253
  const rect = e.currentTarget.getBoundingClientRect();
6184
6254
  const mouseX = e.clientX - rect.left;
@@ -6191,7 +6261,7 @@ var PnlDiagram = React29.forwardRef(
6191
6261
  },
6192
6262
  [vb.xMin, vb.xMax, chartW]
6193
6263
  );
6194
- const handleMouseLeave = React29.useCallback(() => setHoverX(null), []);
6264
+ const handleMouseLeave = React30.useCallback(() => setHoverX(null), []);
6195
6265
  const hoverPnl = hoverX !== null ? calcTotalPnl(legs, hoverX, multiplier) : null;
6196
6266
  buildPath(
6197
6267
  combinedPoints.map((p) => ({ x: scaleX(p.x), y: scaleY(p.y) })).map((p) => ({ x: p.x - PADDING.left, y: p.y - PADDING.top })),
@@ -6495,7 +6565,7 @@ function formatDate(date) {
6495
6565
  const d = new Date(date);
6496
6566
  return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
6497
6567
  }
6498
- var OptionPositionCard = React29.forwardRef(
6568
+ var OptionPositionCard = React30.forwardRef(
6499
6569
  function OptionPositionCard2(props, ref) {
6500
6570
  const {
6501
6571
  position,
@@ -6657,7 +6727,7 @@ function ExpirationPill({ exp, isSelected, onClick }) {
6657
6727
  }
6658
6728
  );
6659
6729
  }
6660
- var ExpirationSelector = React29.forwardRef(
6730
+ var ExpirationSelector = React30.forwardRef(
6661
6731
  function ExpirationSelector2(props, ref) {
6662
6732
  const {
6663
6733
  expirations,
@@ -6667,8 +6737,8 @@ var ExpirationSelector = React29.forwardRef(
6667
6737
  className,
6668
6738
  ...rest
6669
6739
  } = props;
6670
- const scrollRef = React29.useRef(null);
6671
- React29.useEffect(() => {
6740
+ const scrollRef = React30.useRef(null);
6741
+ React30.useEffect(() => {
6672
6742
  const container = scrollRef.current;
6673
6743
  if (!container) return;
6674
6744
  const selectedEl = container.querySelector('[data-selected="true"]');
@@ -6980,4 +7050,4 @@ var BankPage = styled(View, {
6980
7050
  padding: 16
6981
7051
  });
6982
7052
 
6983
- export { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, Alert, AppProvider, Avatar, AvatarGroup, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Button, ButtonGroup, ButtonGroupRadio, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, CloseButton, CollapsibleDetails, CollapsibleList, ColorModeProvider, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerRoot, DrawerTitle, DrawerTrigger, EmptyState, ExpirationSelector, Field, GreeksDisplay, Heading, IconButton, Image2 as Image, Input, InputGroup, Link, LinkBox, LinkExternalIcon, LinkOverlay, MenuArrow, MenuCheckboxItem, MenuContent, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, OptionChain, OptionPositionCard, PinInput, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText, Radio2 as Radio, RadioGroup3 as RadioGroup, Rating, Select, SelectAsync, SelectClearTrigger, SelectContent, SelectControl, SelectItem, SelectItemGroup, SelectItemText, SelectLabel, SelectRoot, SelectValueText, Separator2 as Separator, Skeleton, SkeletonCircle, SkeletonText, Slider, StrategyBuilder, Switch2 as Switch, TableBody, TableCaption, TableCell, TableColumnHeader, TableColumnHeaderSortable, TableFooter, TableHeader, TableHeaderSticky, TableRoot, TableRow, TableScrollWrapper, TabsContent, TabsCounter, TabsList, TabsRoot, TabsTrigger, Tag, Textarea, Toaster, Tooltip, bankColors, buttonVariants, cn, createListCollection, toaster, useAccordion, useColorMode, useColorModeValue };
7053
+ export { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, Alert, AppProvider, Avatar, AvatarGroup, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Button, ButtonGroup, ButtonGroupRadio, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, CloseButton, CollapsibleDetails, CollapsibleList, ColorModeProvider, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerRoot, DrawerTitle, DrawerTrigger, EmptyState, ExpirationSelector, Field, GreeksDisplay, Heading, IconButton, Image2 as Image, Input, InputGroup, LUX_BRAND, Link, LinkBox, LinkExternalIcon, LinkOverlay, MenuArrow, MenuCheckboxItem, MenuContent, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, OptionChain, OptionPositionCard, PARS_GOLD, PinInput, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText, Radio2 as Radio, RadioGroup3 as RadioGroup, Rating, Select, SelectAsync, SelectClearTrigger, SelectContent, SelectControl, SelectItem, SelectItemGroup, SelectItemText, SelectLabel, SelectRoot, SelectValueText, Separator2 as Separator, Skeleton, SkeletonCircle, SkeletonText, Slider, StrategyBuilder, Switch2 as Switch, TableBody, TableCaption, TableCell, TableColumnHeader, TableColumnHeaderSortable, TableFooter, TableHeader, TableHeaderSticky, TableRoot, TableRow, TableScrollWrapper, TabsContent, TabsCounter, TabsList, TabsRoot, TabsTrigger, Tag, Textarea, Toaster, Tooltip, bankColors, buttonVariants, cn, config, createListCollection, lux_config_default as guiConfig, luxThemes, toaster, useAccordion, useColorMode, useColorModeValue };