@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.cjs CHANGED
@@ -1,25 +1,23 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var core = require('@hanzogui/core');
4
+ var gui = require('@hanzo/gui');
5
5
  var reactQuery = require('@tanstack/react-query');
6
+ var React30 = require('react');
7
+ var v5 = require('@hanzogui/config/v5');
6
8
  var jsxRuntime = require('react/jsx-runtime');
7
9
  var clsx = require('clsx');
8
10
  var tailwindMerge = require('tailwind-merge');
9
11
  var AccordionPrimitive = require('@radix-ui/react-accordion');
10
- var React29 = require('react');
11
12
  var RadixAvatar = require('@radix-ui/react-avatar');
12
- var tooltip = require('@hanzogui/tooltip');
13
13
  var usehooks = require('@uidotdev/usehooks');
14
14
  var RadixCheckbox = require('@radix-ui/react-checkbox');
15
15
  var Collapsible = require('@radix-ui/react-collapsible');
16
- var dialog = require('@hanzogui/dialog');
17
16
  var RadixDialog = require('@radix-ui/react-dialog');
18
17
  var LabelPrimitive = require('@radix-ui/react-label');
19
18
  var esToolkit = require('es-toolkit');
20
19
  var DropdownMenu = require('@radix-ui/react-dropdown-menu');
21
20
  var lu = require('react-icons/lu');
22
- var popover = require('@hanzogui/popover');
23
21
  var RadixProgress = require('@radix-ui/react-progress');
24
22
  var RadixRadioGroup = require('@radix-ui/react-radio-group');
25
23
  var RadixSelect = require('@radix-ui/react-select');
@@ -46,8 +44,8 @@ function _interopNamespace(e) {
46
44
  return Object.freeze(n);
47
45
  }
48
46
 
47
+ var React30__namespace = /*#__PURE__*/_interopNamespace(React30);
49
48
  var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
50
- var React29__namespace = /*#__PURE__*/_interopNamespace(React29);
51
49
  var RadixAvatar__namespace = /*#__PURE__*/_interopNamespace(RadixAvatar);
52
50
  var RadixCheckbox__namespace = /*#__PURE__*/_interopNamespace(RadixCheckbox);
53
51
  var Collapsible__namespace = /*#__PURE__*/_interopNamespace(Collapsible);
@@ -62,20 +60,76 @@ var RadixSwitch__namespace = /*#__PURE__*/_interopNamespace(RadixSwitch);
62
60
  var RadixTabs__namespace = /*#__PURE__*/_interopNamespace(RadixTabs);
63
61
 
64
62
  // src/provider.tsx
65
- if (typeof window !== "undefined") {
66
- core.createGui({ settings: { autocompleteSpecificTokens: "except-special" } });
67
- }
63
+ var LUX_BRAND = {
64
+ lux: "#7000FF",
65
+ zoo: "#6C5EFB",
66
+ hanzo: "#EA580C",
67
+ pars: "#1C3879"
68
+ };
69
+ var PARS_GOLD = "#C8A45C";
70
+ var TRUE_BLACK = "#000000";
71
+ var darkBase = {
72
+ ...v5.defaultConfig.themes.dark,
73
+ background: TRUE_BLACK,
74
+ backgroundHover: "#0A0A0A",
75
+ backgroundPress: "#141414",
76
+ backgroundFocus: "#0A0A0A"
77
+ };
78
+ var brandTheme = (accent, extra = {}) => ({
79
+ ...darkBase,
80
+ accentBackground: accent,
81
+ accentColor: "#FFFFFF",
82
+ borderColorHover: accent,
83
+ colorHover: accent,
84
+ ...extra
85
+ });
86
+ var luxThemes = {
87
+ dark: darkBase,
88
+ dark_lux: brandTheme(LUX_BRAND.lux),
89
+ dark_zoo: brandTheme(LUX_BRAND.zoo),
90
+ dark_hanzo: brandTheme(LUX_BRAND.hanzo),
91
+ dark_pars: brandTheme(LUX_BRAND.pars, { accentColor: PARS_GOLD })
92
+ };
93
+ var config = gui.createGui({
94
+ ...v5.defaultConfig,
95
+ settings: {
96
+ ...v5.defaultConfig.settings,
97
+ onlyAllowShorthands: false
98
+ },
99
+ themes: {
100
+ ...v5.defaultConfig.themes,
101
+ ...luxThemes
102
+ }
103
+ });
104
+ var lux_config_default = config;
68
105
  var defaultQueryClient = new reactQuery.QueryClient({
69
106
  defaultOptions: { queries: { refetchOnWindowFocus: false, retry: 1, staleTime: 3e4 } }
70
107
  });
71
- var AppProvider = ({ children, queryClient }) => {
72
- return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient ?? defaultQueryClient, children });
108
+ var FONT_BODY_RESET_ID = "lux-ui-font-body-reset";
109
+ var FONT_BODY_RESET_CSS = "body .font_body{line-height:1.5}";
110
+ var useFontBodyReset = () => {
111
+ React30__namespace.default.useInsertionEffect(() => {
112
+ if (typeof document === "undefined") return;
113
+ if (document.getElementById(FONT_BODY_RESET_ID)) return;
114
+ const style = document.createElement("style");
115
+ style.id = FONT_BODY_RESET_ID;
116
+ style.textContent = FONT_BODY_RESET_CSS;
117
+ document.head.appendChild(style);
118
+ }, []);
119
+ };
120
+ var AppProvider = ({
121
+ children,
122
+ queryClient,
123
+ defaultTheme = "dark_lux"
124
+ }) => {
125
+ useFontBodyReset();
126
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.GuiProvider, { config: lux_config_default, defaultTheme, children: /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient ?? defaultQueryClient, children }) });
73
127
  };
74
128
  function cn(...inputs) {
75
129
  return tailwindMerge.twMerge(clsx.clsx(inputs));
76
130
  }
77
131
  var IndicatorIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 15L12.5 10L7.5 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
78
- var AccordionRoot = React29__namespace.forwardRef(
132
+ var AccordionRoot = React30__namespace.forwardRef(
79
133
  function AccordionRoot2(props, ref) {
80
134
  const {
81
135
  multiple: _multiple,
@@ -94,7 +148,7 @@ var AccordionRoot = React29__namespace.forwardRef(
94
148
  borderRadius: _borderRadius,
95
149
  ...rest
96
150
  } = props;
97
- const handleValueChange = React29__namespace.useCallback(
151
+ const handleValueChange = React30__namespace.useCallback(
98
152
  (next) => {
99
153
  onValueChange?.({ value: next });
100
154
  },
@@ -122,7 +176,7 @@ var AccordionRoot = React29__namespace.forwardRef(
122
176
  );
123
177
  }
124
178
  );
125
- var AccordionItem = React29__namespace.forwardRef(
179
+ var AccordionItem = React30__namespace.forwardRef(
126
180
  function AccordionItem2(props, ref) {
127
181
  const { className, as: _as, _first, _last, display: _display, ...rest } = props;
128
182
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -138,7 +192,7 @@ var AccordionItem = React29__namespace.forwardRef(
138
192
  );
139
193
  }
140
194
  );
141
- var AccordionItemTrigger = React29__namespace.forwardRef(function AccordionItemTrigger2(props, ref) {
195
+ var AccordionItemTrigger = React30__namespace.forwardRef(function AccordionItemTrigger2(props, ref) {
142
196
  const {
143
197
  children,
144
198
  indicatorPlacement: indicatorPlacementProp,
@@ -203,7 +257,7 @@ var AccordionItemTrigger = React29__namespace.forwardRef(function AccordionItemT
203
257
  }
204
258
  ) }) });
205
259
  });
206
- var AccordionItemContent = React29__namespace.forwardRef(function AccordionItemContent2(props, ref) {
260
+ var AccordionItemContent = React30__namespace.forwardRef(function AccordionItemContent2(props, ref) {
207
261
  const { className, children, pb: _pb, pr: _pr, pl: _pl, w: _w, display: _display, flexDir: _flexDir, rowGap: _rowGap, ...rest } = props;
208
262
  return /* @__PURE__ */ jsxRuntime.jsx(
209
263
  AccordionPrimitive__namespace.Content,
@@ -221,11 +275,11 @@ var AccordionItemContent = React29__namespace.forwardRef(function AccordionItemC
221
275
  );
222
276
  });
223
277
  function useAccordion(items) {
224
- const [value, setValue] = React29__namespace.useState([]);
225
- const onValueChange = React29__namespace.useCallback(({ value: value2 }) => {
278
+ const [value, setValue] = React30__namespace.useState([]);
279
+ const onValueChange = React30__namespace.useCallback(({ value: value2 }) => {
226
280
  setValue(value2);
227
281
  }, []);
228
- const scrollToItemFromUrl = React29__namespace.useCallback(() => {
282
+ const scrollToItemFromUrl = React30__namespace.useCallback(() => {
229
283
  const hash = window.location.hash.replace("#", "");
230
284
  if (!hash) {
231
285
  return;
@@ -239,7 +293,7 @@ function useAccordion(items) {
239
293
  setValue([itemToScroll.id]);
240
294
  }
241
295
  }, [items]);
242
- return React29__namespace.useMemo(() => {
296
+ return React30__namespace.useMemo(() => {
243
297
  return {
244
298
  value,
245
299
  onValueChange,
@@ -248,7 +302,7 @@ function useAccordion(items) {
248
302
  }, [value, onValueChange, scrollToItemFromUrl]);
249
303
  }
250
304
  var CLOSE_ICON_PATH = "M9.44 8.035a.791.791 0 0 0 1.12 0l3.802-3.803a.791.791 0 0 1 1.119 0l.287.287a.79.79 0 0 1 0 1.119L11.965 9.44a.79.79 0 0 0 0 1.118l3.803 3.803a.791.791 0 0 1 0 1.119l-.287.287a.791.791 0 0 1-1.119 0l-3.803-3.803a.79.79 0 0 0-1.118 0l-3.803 3.803a.79.79 0 0 1-1.119 0l-.287-.287a.791.791 0 0 1 0-1.119l3.803-3.803a.791.791 0 0 0 0-1.118L4.232 5.638a.791.791 0 0 1 0-1.119l.287-.287a.791.791 0 0 1 1.119 0L9.44 8.035Z";
251
- var CloseButtonFrame = core.styled(core.View, {
305
+ var CloseButtonFrame = gui.styled(gui.View, {
252
306
  name: "LuxCloseButton",
253
307
  render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", "aria-label": "Close" }),
254
308
  role: "button",
@@ -282,7 +336,7 @@ var CLOSE_BUTTON_CLASSES = [
282
336
  "hover:text-[var(--hover-color,currentColor)]",
283
337
  "disabled:opacity-40"
284
338
  ].join(" ");
285
- var CloseButton = React29__namespace.forwardRef(function CloseButton2(props, ref) {
339
+ var CloseButton = React30__namespace.forwardRef(function CloseButton2(props, ref) {
286
340
  const { variant: _variant, size: _size, className, children, ...rest } = props;
287
341
  return /* @__PURE__ */ jsxRuntime.jsx(
288
342
  CloseButtonFrame,
@@ -429,7 +483,7 @@ var SKELETON_CLASSES = [
429
483
  "bg-[length:200%_100%]"
430
484
  ].join(" ");
431
485
  var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
432
- var Skeleton = React29__namespace.forwardRef(
486
+ var Skeleton = React30__namespace.forwardRef(
433
487
  function Skeleton2(props, ref) {
434
488
  const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
435
489
  const shimStyle = shimToStyle(props);
@@ -438,10 +492,10 @@ var Skeleton = React29__namespace.forwardRef(
438
492
  const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
439
493
  const htmlRest = stripShims(allRest);
440
494
  if (!loading) {
441
- if (asChild && React29__namespace.isValidElement(children)) return children;
495
+ if (asChild && React30__namespace.isValidElement(children)) return children;
442
496
  return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
443
497
  }
444
- if (asChild && React29__namespace.isValidElement(children)) {
498
+ if (asChild && React30__namespace.isValidElement(children)) {
445
499
  return /* @__PURE__ */ jsxRuntime.jsx(
446
500
  Component,
447
501
  {
@@ -467,7 +521,7 @@ var Skeleton = React29__namespace.forwardRef(
467
521
  );
468
522
  }
469
523
  );
470
- var SkeletonCircle = React29__namespace.forwardRef(
524
+ var SkeletonCircle = React30__namespace.forwardRef(
471
525
  function SkeletonCircle2(props, ref) {
472
526
  const { size = 40, loading = true, className, ...rest } = props;
473
527
  const dimension = typeof size === "number" ? `${size}px` : size;
@@ -483,7 +537,7 @@ var SkeletonCircle = React29__namespace.forwardRef(
483
537
  );
484
538
  }
485
539
  );
486
- var SkeletonText = React29__namespace.forwardRef(
540
+ var SkeletonText = React30__namespace.forwardRef(
487
541
  function SkeletonText2(props, ref) {
488
542
  const { noOfLines = 3, loading = true, className, ...rest } = props;
489
543
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -513,7 +567,7 @@ var INDICATOR_SIZE_CLASSES = {
513
567
  sm: "w-5 h-5 my-0",
514
568
  md: "w-5 h-5 my-[2px]"
515
569
  };
516
- var Alert = React29__namespace.forwardRef(
570
+ var Alert = React30__namespace.forwardRef(
517
571
  function Alert2(props, ref) {
518
572
  const {
519
573
  title,
@@ -538,7 +592,7 @@ var Alert = React29__namespace.forwardRef(
538
592
  if (_mb !== void 0) shimStyle.marginBottom = typeof _mb === "number" ? `${_mb * 4}px` : _mb;
539
593
  if (_mt !== void 0) shimStyle.marginTop = typeof _mt === "number" ? `${_mt * 4}px` : _mt;
540
594
  const alertStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
541
- const [isOpen, setIsOpen] = React29__namespace.useState(true);
595
+ const [isOpen, setIsOpen] = React30__namespace.useState(true);
542
596
  const resolvedSize = size ?? "md";
543
597
  const defaultIcon = /* @__PURE__ */ jsxRuntime.jsx(IndicatorIcon2, { className: "w-5 h-5" });
544
598
  const iconElement = (() => {
@@ -553,7 +607,7 @@ var Alert = React29__namespace.forwardRef(
553
607
  INDICATOR_SIZE_CLASSES[resolvedSize]
554
608
  ), children: icon || defaultIcon });
555
609
  })();
556
- const handleClose = React29__namespace.useCallback(() => {
610
+ const handleClose = React30__namespace.useCallback(() => {
557
611
  setIsOpen(false);
558
612
  onClose?.();
559
613
  }, [onClose]);
@@ -629,11 +683,11 @@ var VARIANT_CLASSES = {
629
683
  };
630
684
  var DEFAULT_SIZE = "md";
631
685
  var DEFAULT_VARIANT = "subtle";
632
- var AvatarGroupContext = React29__namespace.createContext({});
686
+ var AvatarGroupContext = React30__namespace.createContext({});
633
687
  function useAvatarGroupContext() {
634
- return React29__namespace.useContext(AvatarGroupContext);
688
+ return React30__namespace.useContext(AvatarGroupContext);
635
689
  }
636
- var Avatar = React29__namespace.forwardRef(
690
+ var Avatar = React30__namespace.forwardRef(
637
691
  function Avatar2(props, ref) {
638
692
  const group = useAvatarGroupContext();
639
693
  const {
@@ -683,7 +737,7 @@ var Avatar = React29__namespace.forwardRef(
683
737
  );
684
738
  }
685
739
  );
686
- var AvatarFallback = React29__namespace.forwardRef(
740
+ var AvatarFallback = React30__namespace.forwardRef(
687
741
  function AvatarFallback2(props, ref) {
688
742
  const { name, icon, children, className, ...rest } = props;
689
743
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -710,10 +764,10 @@ function getInitials(name) {
710
764
  const lastName = names.length > 1 ? names[names.length - 1] : "";
711
765
  return firstName && lastName ? `${firstName.charAt(0)}${lastName.charAt(0)}` : firstName.charAt(0);
712
766
  }
713
- var AvatarGroup = React29__namespace.forwardRef(
767
+ var AvatarGroup = React30__namespace.forwardRef(
714
768
  function AvatarGroup2(props, ref) {
715
769
  const { size, variant, borderless, className, ...rest } = props;
716
- const contextValue = React29__namespace.useMemo(
770
+ const contextValue = React30__namespace.useMemo(
717
771
  () => ({ size, variant, borderless }),
718
772
  [size, variant, borderless]
719
773
  );
@@ -729,11 +783,11 @@ var AvatarGroup = React29__namespace.forwardRef(
729
783
  );
730
784
  var LG_BREAKPOINT = 1024;
731
785
  function useIsMobile() {
732
- const [isMobile, setIsMobile] = React29__namespace.useState(() => {
786
+ const [isMobile, setIsMobile] = React30__namespace.useState(() => {
733
787
  if (typeof window === "undefined") return false;
734
788
  return window.innerWidth < LG_BREAKPOINT;
735
789
  });
736
- React29__namespace.useEffect(() => {
790
+ React30__namespace.useEffect(() => {
737
791
  const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
738
792
  const handler = (e) => setIsMobile(e.matches);
739
793
  setIsMobile(mql.matches);
@@ -746,7 +800,7 @@ function mapPlacement(p) {
746
800
  if (!p) return void 0;
747
801
  return p;
748
802
  }
749
- var Tooltip = React29__namespace.forwardRef(
803
+ var Tooltip = React30__namespace.forwardRef(
750
804
  function Tooltip2(props, ref) {
751
805
  const {
752
806
  showArrow: showArrowProp,
@@ -765,28 +819,28 @@ var Tooltip = React29__namespace.forwardRef(
765
819
  interactive,
766
820
  positioning
767
821
  } = props;
768
- const [open, setOpen] = React29__namespace.useState(defaultOpen);
769
- const timeoutRef = React29__namespace.useRef(null);
822
+ const [open, setOpen] = React30__namespace.useState(defaultOpen);
823
+ const timeoutRef = React30__namespace.useRef(null);
770
824
  const isMobile = useIsMobile();
771
- const handleOpenChange = React29__namespace.useCallback((nextOpen) => {
825
+ const handleOpenChange = React30__namespace.useCallback((nextOpen) => {
772
826
  setOpen(nextOpen);
773
827
  onOpenChange?.({ open: nextOpen });
774
828
  }, [onOpenChange]);
775
- const handleOpenChangeManual = React29__namespace.useCallback((nextOpen) => {
829
+ const handleOpenChangeManual = React30__namespace.useCallback((nextOpen) => {
776
830
  timeoutRef.current && window.clearTimeout(timeoutRef.current);
777
831
  timeoutRef.current = window.setTimeout(() => {
778
832
  setOpen(nextOpen);
779
833
  onOpenChange?.({ open: nextOpen });
780
834
  }, nextOpen ? openDelay : closeDelay);
781
835
  }, [closeDelay, openDelay, onOpenChange]);
782
- const handleClickAway = React29__namespace.useCallback(() => {
836
+ const handleClickAway = React30__namespace.useCallback(() => {
783
837
  handleOpenChangeManual(false);
784
838
  }, [handleOpenChangeManual]);
785
839
  const triggerRef = usehooks.useClickAway(handleClickAway);
786
- const handleTriggerClick = React29__namespace.useCallback(() => {
840
+ const handleTriggerClick = React30__namespace.useCallback(() => {
787
841
  handleOpenChangeManual(!open);
788
842
  }, [handleOpenChangeManual, open]);
789
- const handleContentClick = React29__namespace.useCallback((event) => {
843
+ const handleContentClick = React30__namespace.useCallback((event) => {
790
844
  event.stopPropagation();
791
845
  if (interactive) {
792
846
  const closestLink = event.target?.closest("a");
@@ -795,7 +849,7 @@ var Tooltip = React29__namespace.forwardRef(
795
849
  }
796
850
  }
797
851
  }, [interactive, handleOpenChangeManual]);
798
- React29__namespace.useEffect(() => {
852
+ React30__namespace.useEffect(() => {
799
853
  return () => {
800
854
  if (timeoutRef.current) {
801
855
  clearTimeout(timeoutRef.current);
@@ -808,8 +862,8 @@ var Tooltip = React29__namespace.forwardRef(
808
862
  const isPopover = variant === "popover";
809
863
  const placement = mapPlacement(positioning?.placement) ?? "top";
810
864
  const offset = positioning?.offset?.mainAxis ?? 4;
811
- return /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
812
- tooltip.Tooltip,
865
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
866
+ gui.Tooltip,
813
867
  {
814
868
  open,
815
869
  onOpenChange: handleOpenChange,
@@ -819,7 +873,7 @@ var Tooltip = React29__namespace.forwardRef(
819
873
  unstyled: true,
820
874
  children: [
821
875
  /* @__PURE__ */ jsxRuntime.jsx(
822
- tooltip.Tooltip.Trigger,
876
+ gui.Tooltip.Trigger,
823
877
  {
824
878
  ref: open ? triggerRef : void 0,
825
879
  asChild: true,
@@ -829,7 +883,7 @@ var Tooltip = React29__namespace.forwardRef(
829
883
  }
830
884
  ),
831
885
  /* @__PURE__ */ jsxRuntime.jsxs(
832
- tooltip.Tooltip.Content,
886
+ gui.Tooltip.Content,
833
887
  {
834
888
  ref,
835
889
  unstyled: true,
@@ -846,7 +900,7 @@ var Tooltip = React29__namespace.forwardRef(
846
900
  ...contentProps,
847
901
  children: [
848
902
  showArrow && /* @__PURE__ */ jsxRuntime.jsx(
849
- tooltip.Tooltip.Arrow,
903
+ gui.Tooltip.Arrow,
850
904
  {
851
905
  unstyled: true,
852
906
  className: cn(
@@ -897,7 +951,7 @@ var COLOR_PALETTE_CLASSES = {
897
951
  bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
898
952
  };
899
953
  var S2 = 4;
900
- var Badge = React29__namespace.default.forwardRef(
954
+ var Badge = React30__namespace.default.forwardRef(
901
955
  function Badge2(props, ref) {
902
956
  const {
903
957
  loading,
@@ -956,7 +1010,7 @@ var Badge = React29__namespace.default.forwardRef(
956
1010
  return badgeElement;
957
1011
  }
958
1012
  );
959
- var SpinnerFrame = core.styled(core.View, {
1013
+ var SpinnerFrame = gui.styled(gui.View, {
960
1014
  name: "ButtonSpinner",
961
1015
  render: /* @__PURE__ */ jsxRuntime.jsx("span", {}),
962
1016
  width: 16,
@@ -980,7 +1034,7 @@ function Spinner({ className }) {
980
1034
  }
981
1035
  );
982
1036
  }
983
- var ButtonFrame = core.styled(core.View, {
1037
+ var ButtonFrame = gui.styled(gui.View, {
984
1038
  name: "LuxButton",
985
1039
  render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" }),
986
1040
  role: "button",
@@ -1146,7 +1200,7 @@ function buildShimStyle(props) {
1146
1200
  if (props.borderTopRightRadius !== void 0) s.borderTopRightRadius = typeof props.borderTopRightRadius === "number" ? `${props.borderTopRightRadius}px` : props.borderTopRightRadius;
1147
1201
  return Object.keys(s).length > 0 ? s : void 0;
1148
1202
  }
1149
- var Button = React29__namespace.forwardRef(
1203
+ var Button = React30__namespace.forwardRef(
1150
1204
  function Button2(props, ref) {
1151
1205
  const {
1152
1206
  className,
@@ -1248,7 +1302,7 @@ function buttonVariants(opts) {
1248
1302
  const s = opts?.size ?? "md";
1249
1303
  return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES4[s] ?? ""].filter(Boolean).join(" ");
1250
1304
  }
1251
- var ButtonGroup = React29__namespace.forwardRef(
1305
+ var ButtonGroup = React30__namespace.forwardRef(
1252
1306
  function ButtonGroup2(props, ref) {
1253
1307
  const { className, ...rest } = props;
1254
1308
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1262,7 +1316,7 @@ var ButtonGroup = React29__namespace.forwardRef(
1262
1316
  );
1263
1317
  }
1264
1318
  );
1265
- var ButtonGroupRadio = React29__namespace.forwardRef(
1319
+ var ButtonGroupRadio = React30__namespace.forwardRef(
1266
1320
  function ButtonGroupRadio2(props, ref) {
1267
1321
  const {
1268
1322
  children,
@@ -1274,24 +1328,24 @@ var ButtonGroupRadio = React29__namespace.forwardRef(
1274
1328
  className,
1275
1329
  ...rest
1276
1330
  } = props;
1277
- const firstChildValue = React29__namespace.useMemo(() => {
1331
+ const firstChildValue = React30__namespace.useMemo(() => {
1278
1332
  const firstChild = Array.isArray(children) ? children[0] : void 0;
1279
1333
  return typeof firstChild?.props.value === "string" ? firstChild.props.value : void 0;
1280
1334
  }, [children]);
1281
- const [value, setValue] = React29__namespace.useState(defaultValue ?? firstChildValue);
1282
- const handleItemClick = React29__namespace.useCallback((event) => {
1335
+ const [value, setValue] = React30__namespace.useState(defaultValue ?? firstChildValue);
1336
+ const handleItemClick = React30__namespace.useCallback((event) => {
1283
1337
  const v = event.currentTarget.value;
1284
1338
  setValue(v);
1285
1339
  onChange?.(v);
1286
1340
  }, [onChange]);
1287
- const clonedChildren = React29__namespace.Children.map(children, (child) => {
1288
- return React29__namespace.cloneElement(child, {
1341
+ const clonedChildren = React30__namespace.Children.map(children, (child) => {
1342
+ return React30__namespace.cloneElement(child, {
1289
1343
  onClick: handleItemClick,
1290
1344
  selected: value === child.props.value,
1291
1345
  variant
1292
1346
  });
1293
1347
  });
1294
- const childrenLength = React29__namespace.Children.count(children);
1348
+ const childrenLength = React30__namespace.Children.count(children);
1295
1349
  return /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { loading, children: /* @__PURE__ */ jsxRuntime.jsx(
1296
1350
  "div",
1297
1351
  {
@@ -1311,11 +1365,11 @@ var ButtonGroupRadio = React29__namespace.forwardRef(
1311
1365
  );
1312
1366
  var NOOP = () => {
1313
1367
  };
1314
- var CheckboxGroupContext = React29__namespace.createContext(null);
1368
+ var CheckboxGroupContext = React30__namespace.createContext(null);
1315
1369
  function useCheckboxGroupContext() {
1316
- return React29__namespace.useContext(CheckboxGroupContext);
1370
+ return React30__namespace.useContext(CheckboxGroupContext);
1317
1371
  }
1318
- var CheckboxGroupBase = React29__namespace.forwardRef(
1372
+ var CheckboxGroupBase = React30__namespace.forwardRef(
1319
1373
  function CheckboxGroup(props, ref) {
1320
1374
  const {
1321
1375
  children,
@@ -1327,10 +1381,10 @@ var CheckboxGroupBase = React29__namespace.forwardRef(
1327
1381
  className,
1328
1382
  ...rest
1329
1383
  } = props;
1330
- const [uncontrolledValue, setUncontrolledValue] = React29__namespace.useState(defaultValue ?? []);
1384
+ const [uncontrolledValue, setUncontrolledValue] = React30__namespace.useState(defaultValue ?? []);
1331
1385
  const isControlled = controlledValue !== void 0;
1332
1386
  const value = isControlled ? controlledValue : uncontrolledValue;
1333
- const toggle = React29__namespace.useCallback(
1387
+ const toggle = React30__namespace.useCallback(
1334
1388
  (itemValue) => {
1335
1389
  const next = value.includes(itemValue) ? value.filter((v) => v !== itemValue) : [...value, itemValue];
1336
1390
  if (!isControlled) {
@@ -1340,12 +1394,12 @@ var CheckboxGroupBase = React29__namespace.forwardRef(
1340
1394
  },
1341
1395
  [value, isControlled, onValueChange]
1342
1396
  );
1343
- React29__namespace.useEffect(() => {
1397
+ React30__namespace.useEffect(() => {
1344
1398
  if (isControlled) {
1345
1399
  setUncontrolledValue(controlledValue);
1346
1400
  }
1347
1401
  }, [isControlled, controlledValue]);
1348
- const ctx = React29__namespace.useMemo(() => ({ value, toggle }), [value, toggle]);
1402
+ const ctx = React30__namespace.useMemo(() => ({ value, toggle }), [value, toggle]);
1349
1403
  return /* @__PURE__ */ jsxRuntime.jsx(CheckboxGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
1350
1404
  "div",
1351
1405
  {
@@ -1403,7 +1457,7 @@ var IndeterminateIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx(
1403
1457
  children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M0 0H12V2H0V0Z", fill: "currentColor" })
1404
1458
  }
1405
1459
  );
1406
- var CheckboxBase = React29__namespace.forwardRef(
1460
+ var CheckboxBase = React30__namespace.forwardRef(
1407
1461
  function Checkbox(props, ref) {
1408
1462
  const {
1409
1463
  icon,
@@ -1424,8 +1478,8 @@ var CheckboxBase = React29__namespace.forwardRef(
1424
1478
  ...rest
1425
1479
  } = props;
1426
1480
  const group = useCheckboxGroupContext();
1427
- const hiddenInputRef = React29__namespace.useRef(null);
1428
- const setHiddenInputRef = React29__namespace.useCallback(
1481
+ const hiddenInputRef = React30__namespace.useRef(null);
1482
+ const setHiddenInputRef = React30__namespace.useCallback(
1429
1483
  (node) => {
1430
1484
  hiddenInputRef.current = node;
1431
1485
  if (typeof ref === "function") {
@@ -1438,7 +1492,7 @@ var CheckboxBase = React29__namespace.forwardRef(
1438
1492
  );
1439
1493
  const isInGroup = group !== null && value !== void 0;
1440
1494
  const groupChecked = isInGroup ? group.value.includes(value) : void 0;
1441
- const [internalChecked, setInternalChecked] = React29__namespace.useState(
1495
+ const [internalChecked, setInternalChecked] = React30__namespace.useState(
1442
1496
  defaultChecked ?? false
1443
1497
  );
1444
1498
  const isControlled = checkedProp !== void 0 || isInGroup;
@@ -1450,7 +1504,7 @@ var CheckboxBase = React29__namespace.forwardRef(
1450
1504
  } else {
1451
1505
  checkedState = internalChecked;
1452
1506
  }
1453
- const handleCheckedChange = React29__namespace.useCallback(
1507
+ const handleCheckedChange = React30__namespace.useCallback(
1454
1508
  (nextChecked) => {
1455
1509
  if (readOnly) return;
1456
1510
  if (!isControlled) {
@@ -1614,7 +1668,7 @@ function resolveSpacing(v) {
1614
1668
  }
1615
1669
  return void 0;
1616
1670
  }
1617
- var Link = React29__namespace.default.forwardRef(
1671
+ var Link = React30__namespace.default.forwardRef(
1618
1672
  function Link2(props, ref) {
1619
1673
  const {
1620
1674
  external,
@@ -1703,7 +1757,7 @@ var Link = React29__namespace.default.forwardRef(
1703
1757
  ) });
1704
1758
  }
1705
1759
  );
1706
- var LinkBox = React29__namespace.default.forwardRef(
1760
+ var LinkBox = React30__namespace.default.forwardRef(
1707
1761
  function LinkBox2(props, ref) {
1708
1762
  const { className, ...rest } = props;
1709
1763
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1716,7 +1770,7 @@ var LinkBox = React29__namespace.default.forwardRef(
1716
1770
  );
1717
1771
  }
1718
1772
  );
1719
- var LinkOverlay = React29__namespace.default.forwardRef(
1773
+ var LinkOverlay = React30__namespace.default.forwardRef(
1720
1774
  function LinkOverlay2(props, ref) {
1721
1775
  const {
1722
1776
  children,
@@ -1797,8 +1851,8 @@ var LinkOverlay = React29__namespace.default.forwardRef(
1797
1851
  }
1798
1852
  );
1799
1853
  function useUpdateEffect(effect, deps) {
1800
- const isFirstMount = React29__namespace.default.useRef(true);
1801
- React29__namespace.default.useEffect(() => {
1854
+ const isFirstMount = React30__namespace.default.useRef(true);
1855
+ React30__namespace.default.useEffect(() => {
1802
1856
  if (isFirstMount.current) {
1803
1857
  isFirstMount.current = false;
1804
1858
  return;
@@ -1815,8 +1869,8 @@ function scrollToElement(id) {
1815
1869
  var CUT_ID = "CollapsibleDetails";
1816
1870
  var CollapsibleDetails = (props) => {
1817
1871
  const { children, id = CUT_ID, onClick, isExpanded: isExpandedProp = false, text: textProp, loading, noScroll, ...rest } = props;
1818
- const [isExpanded, setIsExpanded] = React29__namespace.default.useState(isExpandedProp);
1819
- const handleClick = React29__namespace.default.useCallback((event) => {
1872
+ const [isExpanded, setIsExpanded] = React30__namespace.default.useState(isExpandedProp);
1873
+ const handleClick = React30__namespace.default.useCallback((event) => {
1820
1874
  setIsExpanded((flag) => !flag);
1821
1875
  if (!noScroll) {
1822
1876
  scrollToElement(id);
@@ -1847,11 +1901,11 @@ var CollapsibleDetails = (props) => {
1847
1901
  var CollapsibleList = (props) => {
1848
1902
  const CUT_LENGTH = 3;
1849
1903
  const { items, renderItem, triggerProps, cutLength = CUT_LENGTH, text: textProp, defaultExpanded = false, className, ...rest } = props;
1850
- const [isExpanded, setIsExpanded] = React29__namespace.default.useState(defaultExpanded);
1851
- React29__namespace.default.useEffect(() => {
1904
+ const [isExpanded, setIsExpanded] = React30__namespace.default.useState(defaultExpanded);
1905
+ React30__namespace.default.useEffect(() => {
1852
1906
  setIsExpanded(defaultExpanded);
1853
1907
  }, [defaultExpanded]);
1854
- const handleToggle = React29__namespace.default.useCallback(() => {
1908
+ const handleToggle = React30__namespace.default.useCallback(() => {
1855
1909
  setIsExpanded((flag) => !flag);
1856
1910
  }, []);
1857
1911
  const text = isExpanded ? textProp?.[1] ?? "Hide" : textProp?.[0] ?? "Show all";
@@ -1868,10 +1922,10 @@ var CollapsibleList = (props) => {
1868
1922
  ) })
1869
1923
  ] }) });
1870
1924
  };
1871
- var ColorModeContext = React29__namespace.createContext(void 0);
1925
+ var ColorModeContext = React30__namespace.createContext(void 0);
1872
1926
  function ColorModeProvider(props) {
1873
1927
  const { children, defaultTheme = "light", value: controlledValue, onValueChange } = props;
1874
- const [internalMode, setInternalMode] = React29__namespace.useState(() => {
1928
+ const [internalMode, setInternalMode] = React30__namespace.useState(() => {
1875
1929
  if (controlledValue === "dark" || controlledValue === "light") {
1876
1930
  return controlledValue;
1877
1931
  }
@@ -1881,7 +1935,7 @@ function ColorModeProvider(props) {
1881
1935
  return defaultTheme === "dark" ? "dark" : "light";
1882
1936
  });
1883
1937
  const colorMode = controlledValue === "dark" || controlledValue === "light" ? controlledValue : internalMode;
1884
- const setColorMode = React29__namespace.useCallback((mode) => {
1938
+ const setColorMode = React30__namespace.useCallback((mode) => {
1885
1939
  const resolved = mode === "dark" ? "dark" : "light";
1886
1940
  setInternalMode(resolved);
1887
1941
  onValueChange?.(resolved);
@@ -1890,19 +1944,19 @@ function ColorModeProvider(props) {
1890
1944
  document.documentElement.classList.toggle("light", resolved === "light");
1891
1945
  }
1892
1946
  }, [onValueChange]);
1893
- const toggleColorMode = React29__namespace.useCallback(() => {
1947
+ const toggleColorMode = React30__namespace.useCallback(() => {
1894
1948
  setColorMode(colorMode === "dark" ? "light" : "dark");
1895
1949
  }, [colorMode, setColorMode]);
1896
- const ctx = React29__namespace.useMemo(
1950
+ const ctx = React30__namespace.useMemo(
1897
1951
  () => ({ colorMode, setColorMode, toggleColorMode }),
1898
1952
  [colorMode, setColorMode, toggleColorMode]
1899
1953
  );
1900
1954
  return /* @__PURE__ */ jsxRuntime.jsx(ColorModeContext.Provider, { value: ctx, children });
1901
1955
  }
1902
1956
  function useColorMode() {
1903
- const ctx = React29__namespace.useContext(ColorModeContext);
1957
+ const ctx = React30__namespace.useContext(ColorModeContext);
1904
1958
  if (!ctx) {
1905
- const [mode, setMode] = React29__namespace.useState(() => {
1959
+ const [mode, setMode] = React30__namespace.useState(() => {
1906
1960
  if (typeof document !== "undefined" && document.documentElement.classList.contains("dark")) {
1907
1961
  return "dark";
1908
1962
  }
@@ -1946,9 +2000,9 @@ function BackToButton({ onClick }) {
1946
2000
  }
1947
2001
  );
1948
2002
  }
1949
- var DialogSizeContext = React29__namespace.createContext({ size: "md" });
2003
+ var DialogSizeContext = React30__namespace.createContext({ size: "md" });
1950
2004
  function useDialogSizeContext() {
1951
- return React29__namespace.useContext(DialogSizeContext);
2005
+ return React30__namespace.useContext(DialogSizeContext);
1952
2006
  }
1953
2007
  var CONTENT_SIZE_MAP = {
1954
2008
  sm: "max-w-[400px]",
@@ -1980,15 +2034,15 @@ var DialogRoot = ({
1980
2034
  modal = true
1981
2035
  // motionPreset is intentionally unused -- kept for API compat
1982
2036
  }) => {
1983
- const handleOpenChange = React29__namespace.useCallback(
2037
+ const handleOpenChange = React30__namespace.useCallback(
1984
2038
  (nextOpen) => {
1985
2039
  onOpenChange?.({ open: nextOpen });
1986
2040
  },
1987
2041
  [onOpenChange]
1988
2042
  );
1989
- const ctx = React29__namespace.useMemo(() => ({ size }), [size]);
2043
+ const ctx = React30__namespace.useMemo(() => ({ size }), [size]);
1990
2044
  return /* @__PURE__ */ jsxRuntime.jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
1991
- dialog.Dialog,
2045
+ gui.Dialog,
1992
2046
  {
1993
2047
  open,
1994
2048
  defaultOpen,
@@ -1998,7 +2052,7 @@ var DialogRoot = ({
1998
2052
  }
1999
2053
  ) });
2000
2054
  };
2001
- var DialogContent = React29__namespace.forwardRef(function DialogContent2(props, ref) {
2055
+ var DialogContent = React30__namespace.forwardRef(function DialogContent2(props, ref) {
2002
2056
  const {
2003
2057
  children,
2004
2058
  portalled: _portalled = true,
@@ -2014,9 +2068,9 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
2014
2068
  ..._paddingTop !== void 0 ? { paddingTop: typeof _paddingTop === "number" ? `${_paddingTop * 4}px` : _paddingTop } : {}
2015
2069
  };
2016
2070
  const { size } = useDialogSizeContext();
2017
- return /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Portal, { children: [
2071
+ return /* @__PURE__ */ jsxRuntime.jsxs(gui.Dialog.Portal, { children: [
2018
2072
  backdrop && /* @__PURE__ */ jsxRuntime.jsx(
2019
- dialog.Dialog.Overlay,
2073
+ gui.Dialog.Overlay,
2020
2074
  {
2021
2075
  unstyled: true,
2022
2076
  className: "fixed inset-0 z-[1400] bg-black/80"
@@ -2031,7 +2085,7 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
2031
2085
  "overflow-hidden"
2032
2086
  ),
2033
2087
  children: /* @__PURE__ */ jsxRuntime.jsx(
2034
- dialog.Dialog.Content,
2088
+ gui.Dialog.Content,
2035
2089
  {
2036
2090
  ref,
2037
2091
  unstyled: true,
@@ -2055,11 +2109,11 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
2055
2109
  )
2056
2110
  ] });
2057
2111
  });
2058
- var DialogCloseTrigger = React29__namespace.forwardRef(function DialogCloseTrigger2(props, ref) {
2112
+ var DialogCloseTrigger = React30__namespace.forwardRef(function DialogCloseTrigger2(props, ref) {
2059
2113
  const { className, ...rest } = props;
2060
- return /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { ref, className, ...rest, children: props.children }) });
2114
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { ref, className, ...rest, children: props.children }) });
2061
2115
  });
2062
- var DialogHeader = React29__namespace.forwardRef(function DialogHeader2(props, ref) {
2116
+ var DialogHeader = React30__namespace.forwardRef(function DialogHeader2(props, ref) {
2063
2117
  const { startElement: startElementProp, onBackToClick, className, children, ...rest } = props;
2064
2118
  const startElement = startElementProp ?? (onBackToClick ? /* @__PURE__ */ jsxRuntime.jsx(BackToButton, { onClick: onBackToClick }) : void 0);
2065
2119
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2074,7 +2128,7 @@ var DialogHeader = React29__namespace.forwardRef(function DialogHeader2(props, r
2074
2128
  children: [
2075
2129
  startElement,
2076
2130
  /* @__PURE__ */ jsxRuntime.jsx(
2077
- dialog.Dialog.Title,
2131
+ gui.Dialog.Title,
2078
2132
  {
2079
2133
  unstyled: true,
2080
2134
  className: cn(
@@ -2089,7 +2143,7 @@ var DialogHeader = React29__namespace.forwardRef(function DialogHeader2(props, r
2089
2143
  }
2090
2144
  );
2091
2145
  });
2092
- var DialogBody = React29__namespace.forwardRef(function DialogBody2({ className, pt, display, flexDir, style: styleProp, ...props }, ref) {
2146
+ var DialogBody = React30__namespace.forwardRef(function DialogBody2({ className, pt, display, flexDir, style: styleProp, ...props }, ref) {
2093
2147
  const bodyStyle = {
2094
2148
  ...styleProp,
2095
2149
  ...pt !== void 0 ? { paddingTop: typeof pt === "number" ? `${pt * 4}px` : pt } : {},
@@ -2106,7 +2160,7 @@ var DialogBody = React29__namespace.forwardRef(function DialogBody2({ className,
2106
2160
  }
2107
2161
  );
2108
2162
  });
2109
- var DialogFooter = React29__namespace.forwardRef(function DialogFooter2({ className, ...props }, ref) {
2163
+ var DialogFooter = React30__namespace.forwardRef(function DialogFooter2({ className, ...props }, ref) {
2110
2164
  return /* @__PURE__ */ jsxRuntime.jsx(
2111
2165
  "div",
2112
2166
  {
@@ -2116,13 +2170,13 @@ var DialogFooter = React29__namespace.forwardRef(function DialogFooter2({ classN
2116
2170
  }
2117
2171
  );
2118
2172
  });
2119
- var DialogBackdrop = dialog.Dialog.Overlay;
2120
- var DialogTitle = dialog.Dialog.Title;
2121
- var DialogDescription = dialog.Dialog.Description;
2122
- var DialogTrigger = dialog.Dialog.Trigger;
2123
- var DialogActionTrigger = dialog.Dialog.Close;
2124
- var DrawerPlacementContext = React29__namespace.createContext("right");
2125
- var DrawerSizeContext = React29__namespace.createContext("md");
2173
+ var DialogBackdrop = gui.Dialog.Overlay;
2174
+ var DialogTitle = gui.Dialog.Title;
2175
+ var DialogDescription = gui.Dialog.Description;
2176
+ var DialogTrigger = gui.Dialog.Trigger;
2177
+ var DialogActionTrigger = gui.Dialog.Close;
2178
+ var DrawerPlacementContext = React30__namespace.createContext("right");
2179
+ var DrawerSizeContext = React30__namespace.createContext("md");
2126
2180
  var DrawerRoot = (props) => {
2127
2181
  const {
2128
2182
  children,
@@ -2133,7 +2187,7 @@ var DrawerRoot = (props) => {
2133
2187
  modal = true,
2134
2188
  size = "md"
2135
2189
  } = props;
2136
- const handleOpenChange = React29__namespace.useCallback((nextOpen) => {
2190
+ const handleOpenChange = React30__namespace.useCallback((nextOpen) => {
2137
2191
  onOpenChange?.({ open: nextOpen });
2138
2192
  }, [onOpenChange]);
2139
2193
  return /* @__PURE__ */ jsxRuntime.jsx(DrawerPlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsxRuntime.jsx(DrawerSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2175,11 +2229,11 @@ var SIZE_CLASSES6 = {
2175
2229
  top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
2176
2230
  bottom: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" }
2177
2231
  };
2178
- var DrawerContent = React29__namespace.forwardRef(
2232
+ var DrawerContent = React30__namespace.forwardRef(
2179
2233
  function DrawerContent2(props, ref) {
2180
2234
  const { children, portalled = true, portalRef, offset: _offset, backdrop = true, className, ...rest } = props;
2181
- const placement = React29__namespace.useContext(DrawerPlacementContext);
2182
- const size = React29__namespace.useContext(DrawerSizeContext);
2235
+ const placement = React30__namespace.useContext(DrawerPlacementContext);
2236
+ const size = React30__namespace.useContext(DrawerSizeContext);
2183
2237
  const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2184
2238
  backdrop && /* @__PURE__ */ jsxRuntime.jsx(
2185
2239
  RadixDialog__namespace.Overlay,
@@ -2212,7 +2266,7 @@ var DrawerContent = React29__namespace.forwardRef(
2212
2266
  return content;
2213
2267
  }
2214
2268
  );
2215
- var DrawerCloseTrigger = React29__namespace.forwardRef(function DrawerCloseTrigger2(props, ref) {
2269
+ var DrawerCloseTrigger = React30__namespace.forwardRef(function DrawerCloseTrigger2(props, ref) {
2216
2270
  return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
2217
2271
  CloseButton,
2218
2272
  {
@@ -2226,17 +2280,17 @@ var DrawerTrigger = (props) => {
2226
2280
  const { asChild = true, ...rest } = props;
2227
2281
  return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild, ...rest });
2228
2282
  };
2229
- var DrawerHeader = React29__namespace.forwardRef(
2283
+ var DrawerHeader = React30__namespace.forwardRef(
2230
2284
  function DrawerHeader2({ className, ...props }, ref) {
2231
2285
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col gap-1.5 p-6 pb-0", className), ...props });
2232
2286
  }
2233
2287
  );
2234
- var DrawerBody = React29__namespace.forwardRef(
2288
+ var DrawerBody = React30__namespace.forwardRef(
2235
2289
  function DrawerBody2({ className, ...props }, ref) {
2236
2290
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 overflow-auto p-6", className), ...props });
2237
2291
  }
2238
2292
  );
2239
- var DrawerFooter = React29__namespace.forwardRef(
2293
+ var DrawerFooter = React30__namespace.forwardRef(
2240
2294
  function DrawerFooter2({ className, ...props }, ref) {
2241
2295
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center justify-end gap-2 p-6 pt-0", className), ...props });
2242
2296
  }
@@ -2249,7 +2303,7 @@ function upperFirst(str) {
2249
2303
  return str.charAt(0).toUpperCase() + str.slice(1);
2250
2304
  }
2251
2305
  var ICONS = {};
2252
- var EmptyState = React29__namespace.forwardRef(
2306
+ var EmptyState = React30__namespace.forwardRef(
2253
2307
  function EmptyState2(props, ref) {
2254
2308
  const { title, description, term, type = "query", icon, children, className, ...rest } = props;
2255
2309
  const titleContent = (() => {
@@ -2309,7 +2363,7 @@ function getComponentDisplayName(type) {
2309
2363
  if ("displayName" in type) return type.displayName;
2310
2364
  return void 0;
2311
2365
  }
2312
- var Field = React29__namespace.forwardRef(
2366
+ var Field = React30__namespace.forwardRef(
2313
2367
  function Field2(props, ref) {
2314
2368
  const {
2315
2369
  label,
@@ -2361,14 +2415,14 @@ var Field = React29__namespace.forwardRef(
2361
2415
  }
2362
2416
  );
2363
2417
  const helperTextElement = helperText ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1.5 text-xs text-[var(--color-text-secondary,theme(colors.gray.400))]", children: helperText }) : null;
2364
- const child2 = React29__namespace.Children.only(children);
2418
+ const child2 = React30__namespace.Children.only(children);
2365
2419
  const isInputGroup = getComponentDisplayName(child2.type) === "InputGroup";
2366
2420
  if (isInputGroup) {
2367
- const inputElement2 = React29__namespace.cloneElement(
2368
- React29__namespace.Children.only(child2.props.children),
2421
+ const inputElement2 = React30__namespace.cloneElement(
2422
+ React30__namespace.Children.only(child2.props.children),
2369
2423
  injectedProps2
2370
2424
  );
2371
- const groupInputElement = React29__namespace.cloneElement(
2425
+ const groupInputElement = React30__namespace.cloneElement(
2372
2426
  child2,
2373
2427
  {},
2374
2428
  inputElement2,
@@ -2391,7 +2445,7 @@ var Field = React29__namespace.forwardRef(
2391
2445
  }
2392
2446
  );
2393
2447
  }
2394
- const inputElement = React29__namespace.cloneElement(child2, injectedProps2);
2448
+ const inputElement = React30__namespace.cloneElement(child2, injectedProps2);
2395
2449
  return /* @__PURE__ */ jsxRuntime.jsxs(
2396
2450
  "div",
2397
2451
  {
@@ -2413,8 +2467,8 @@ var Field = React29__namespace.forwardRef(
2413
2467
  const injectedProps = {
2414
2468
  size
2415
2469
  };
2416
- const child = React29__namespace.Children.only(children);
2417
- const clonedChild = React29__namespace.cloneElement(child, injectedProps);
2470
+ const child = React30__namespace.Children.only(children);
2471
+ const clonedChild = React30__namespace.cloneElement(child, injectedProps);
2418
2472
  return /* @__PURE__ */ jsxRuntime.jsxs(
2419
2473
  "div",
2420
2474
  {
@@ -2457,7 +2511,7 @@ var LEVEL_CLASSES = {
2457
2511
  "3": "text-[14px] leading-[20px] font-semibold lg:text-[18px] lg:leading-[24px] lg:font-medium"
2458
2512
  };
2459
2513
  var BASE_CLASSES4 = "font-heading text-heading";
2460
- var Heading = React29__namespace.default.forwardRef(
2514
+ var Heading = React30__namespace.default.forwardRef(
2461
2515
  function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
2462
2516
  const Tag3 = level ? LEVEL_TAG[level] : "h2";
2463
2517
  const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
@@ -2473,7 +2527,7 @@ var Heading = React29__namespace.default.forwardRef(
2473
2527
  );
2474
2528
  }
2475
2529
  );
2476
- var IconButtonFrame = core.styled(core.View, {
2530
+ var IconButtonFrame = gui.styled(gui.View, {
2477
2531
  name: "LuxIconButton",
2478
2532
  render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" }),
2479
2533
  role: "button",
@@ -2543,7 +2597,7 @@ var ICON_SIZE_CLASSES = {
2543
2597
  md: "[&_svg]:size-5"
2544
2598
  };
2545
2599
  var SP2 = 4;
2546
- var IconButton = React29__namespace.forwardRef(
2600
+ var IconButton = React30__namespace.forwardRef(
2547
2601
  function IconButton2(props, ref) {
2548
2602
  const {
2549
2603
  size,
@@ -2594,7 +2648,7 @@ var IconButton = React29__namespace.forwardRef(
2594
2648
  ref,
2595
2649
  size,
2596
2650
  disabled: !loadingSkeleton && (loading || disabled) || void 0,
2597
- render: _as ? React29__namespace.createElement(_as) : void 0,
2651
+ render: _as ? React30__namespace.createElement(_as) : void 0,
2598
2652
  className: combinedClassName,
2599
2653
  style: mergedStyle,
2600
2654
  ...expanded ? { "data-expanded": true } : {},
@@ -2765,31 +2819,31 @@ function extractStyleProps(props) {
2765
2819
  }
2766
2820
  return { styleProps, rest };
2767
2821
  }
2768
- var Image2 = React29__namespace.default.forwardRef(
2822
+ var Image2 = React30__namespace.default.forwardRef(
2769
2823
  function Image3(props, ref) {
2770
2824
  const { fallback, src, onLoad, onError, skeletonWidth, skeletonHeight, alt, className, style: styleProp, ...allRest } = props;
2771
2825
  const { styleProps, rest: extraProps } = extractStyleProps(allRest);
2772
- const [loading, setLoading] = React29__namespace.default.useState(true);
2773
- const [error, setError] = React29__namespace.default.useState(false);
2774
- const handleLoadError = React29__namespace.default.useCallback((event) => {
2826
+ const [loading, setLoading] = React30__namespace.default.useState(true);
2827
+ const [error, setError] = React30__namespace.default.useState(false);
2828
+ const handleLoadError = React30__namespace.default.useCallback((event) => {
2775
2829
  setError(true);
2776
2830
  setLoading(false);
2777
2831
  onError?.(event);
2778
2832
  }, [onError]);
2779
- const handleLoadSuccess = React29__namespace.default.useCallback((event) => {
2833
+ const handleLoadSuccess = React30__namespace.default.useCallback((event) => {
2780
2834
  setLoading(false);
2781
2835
  onLoad?.(event);
2782
2836
  }, [onLoad]);
2783
2837
  const passthroughProps = allRest;
2784
2838
  if (!src && fallback) {
2785
- if (React29__namespace.default.isValidElement(fallback)) {
2786
- return React29__namespace.default.cloneElement(fallback, passthroughProps);
2839
+ if (React30__namespace.default.isValidElement(fallback)) {
2840
+ return React30__namespace.default.cloneElement(fallback, passthroughProps);
2787
2841
  }
2788
2842
  return fallback;
2789
2843
  }
2790
2844
  if (error) {
2791
- if (React29__namespace.default.isValidElement(fallback)) {
2792
- return React29__namespace.default.cloneElement(fallback, passthroughProps);
2845
+ if (React30__namespace.default.isValidElement(fallback)) {
2846
+ return React30__namespace.default.cloneElement(fallback, passthroughProps);
2793
2847
  }
2794
2848
  return fallback;
2795
2849
  }
@@ -2845,14 +2899,22 @@ var INPUT_VARIANT_CLASSES = {
2845
2899
  filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
2846
2900
  unstyled: "border-0 bg-transparent p-0 h-auto"
2847
2901
  };
2848
- var Input = React29__namespace.default.forwardRef(
2849
- ({ size = "md", variant = "outline", className, ...rest }, ref) => {
2902
+ var Input = React30__namespace.default.forwardRef(
2903
+ ({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
2904
+ const handleChange = React30__namespace.default.useCallback(
2905
+ (event) => {
2906
+ onChange?.(event);
2907
+ onChangeText?.(event.target.value);
2908
+ },
2909
+ [onChange, onChangeText]
2910
+ );
2850
2911
  return /* @__PURE__ */ jsxRuntime.jsx(
2851
2912
  "input",
2852
2913
  {
2853
2914
  ref,
2854
2915
  className: cn(INPUT_BASE, INPUT_SIZE_CLASSES[size], INPUT_VARIANT_CLASSES[variant], className),
2855
- ...rest
2916
+ ...rest,
2917
+ onChange: handleChange
2856
2918
  }
2857
2919
  );
2858
2920
  }
@@ -2863,7 +2925,7 @@ function getComponentDisplayName2(type) {
2863
2925
  if ("displayName" in type) return type.displayName;
2864
2926
  return void 0;
2865
2927
  }
2866
- var InputGroup = React29__namespace.forwardRef(
2928
+ var InputGroup = React30__namespace.forwardRef(
2867
2929
  function InputGroup2(props, ref) {
2868
2930
  const {
2869
2931
  startElement,
@@ -2876,11 +2938,11 @@ var InputGroup = React29__namespace.forwardRef(
2876
2938
  className,
2877
2939
  ...rest
2878
2940
  } = props;
2879
- const startElementRef = React29__namespace.useRef(null);
2880
- const endElementRef = React29__namespace.useRef(null);
2881
- const groupRef = React29__namespace.useRef(null);
2882
- const [inlinePaddings, setInlinePaddings] = React29__namespace.useState();
2883
- const calculateInlinePaddings = React29__namespace.useCallback(() => {
2941
+ const startElementRef = React30__namespace.useRef(null);
2942
+ const endElementRef = React30__namespace.useRef(null);
2943
+ const groupRef = React30__namespace.useRef(null);
2944
+ const [inlinePaddings, setInlinePaddings] = React30__namespace.useState();
2945
+ const calculateInlinePaddings = React30__namespace.useCallback(() => {
2884
2946
  const startWidth = startElementRef.current?.getBoundingClientRect().width ?? 0;
2885
2947
  const endWidth = endElementRef.current?.getBoundingClientRect().width ?? 0;
2886
2948
  setInlinePaddings({
@@ -2888,7 +2950,7 @@ var InputGroup = React29__namespace.forwardRef(
2888
2950
  end: endWidth
2889
2951
  });
2890
2952
  }, []);
2891
- React29__namespace.useEffect(() => {
2953
+ React30__namespace.useEffect(() => {
2892
2954
  if (!groupRef.current) return;
2893
2955
  let timeoutId;
2894
2956
  const intersectionObserver = new IntersectionObserver(
@@ -2908,7 +2970,7 @@ var InputGroup = React29__namespace.forwardRef(
2908
2970
  }
2909
2971
  };
2910
2972
  }, [calculateInlinePaddings]);
2911
- React29__namespace.useEffect(() => {
2973
+ React30__namespace.useEffect(() => {
2912
2974
  calculateInlinePaddings();
2913
2975
  const resizeHandler = esToolkit.debounce(calculateInlinePaddings, 300);
2914
2976
  const resizeObserver = new ResizeObserver(resizeHandler);
@@ -2919,7 +2981,7 @@ var InputGroup = React29__namespace.forwardRef(
2919
2981
  resizeObserver.disconnect();
2920
2982
  };
2921
2983
  }, [calculateInlinePaddings]);
2922
- const combinedRef = React29__namespace.useCallback((node) => {
2984
+ const combinedRef = React30__namespace.useCallback((node) => {
2923
2985
  groupRef.current = node;
2924
2986
  if (typeof ref === "function") {
2925
2987
  ref(node);
@@ -2948,11 +3010,11 @@ var InputGroup = React29__namespace.forwardRef(
2948
3010
  children: startElement
2949
3011
  }
2950
3012
  ),
2951
- React29__namespace.Children.map(children, (child) => {
3013
+ React30__namespace.Children.map(children, (child) => {
2952
3014
  if (getComponentDisplayName2(child.type) !== "FieldInput") {
2953
3015
  return child;
2954
3016
  }
2955
- return React29__namespace.cloneElement(child, {
3017
+ return React30__namespace.cloneElement(child, {
2956
3018
  ...startElement && { ps: startOffset ?? (inlinePaddings?.start ? `${inlinePaddings.start}px` : void 0) },
2957
3019
  ...endElement && { pe: endOffset ?? (inlinePaddings?.end ? `${inlinePaddings.end}px` : void 0) },
2958
3020
  // hide input value and placeholder for the first render
@@ -2993,7 +3055,7 @@ function parsePlacement(placement) {
2993
3055
  }
2994
3056
  return { side, align };
2995
3057
  }
2996
- var PositioningContext = React29__namespace.createContext({
3058
+ var PositioningContext = React30__namespace.createContext({
2997
3059
  side: "bottom",
2998
3060
  align: "start",
2999
3061
  sideOffset: 4,
@@ -3023,13 +3085,13 @@ var MenuRoot = (props) => {
3023
3085
  }
3024
3086
  };
3025
3087
  const { side, align } = parsePlacement(mergedPositioning.placement);
3026
- const positioningValue = React29__namespace.useMemo(() => ({
3088
+ const positioningValue = React30__namespace.useMemo(() => ({
3027
3089
  side,
3028
3090
  align,
3029
3091
  sideOffset: mergedPositioning.offset?.mainAxis ?? 4,
3030
3092
  alignOffset: mergedPositioning.offset?.crossAxis ?? 0
3031
3093
  }), [side, align, mergedPositioning.offset?.mainAxis, mergedPositioning.offset?.crossAxis]);
3032
- const handleOpenChange = React29__namespace.useCallback((isOpen) => {
3094
+ const handleOpenChange = React30__namespace.useCallback((isOpen) => {
3033
3095
  onOpenChange?.({ open: isOpen });
3034
3096
  }, [onOpenChange]);
3035
3097
  return /* @__PURE__ */ jsxRuntime.jsx(PositioningContext.Provider, { value: positioningValue, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -3043,13 +3105,13 @@ var MenuRoot = (props) => {
3043
3105
  }
3044
3106
  ) });
3045
3107
  };
3046
- var MenuTrigger = React29__namespace.forwardRef(function MenuTrigger2(props, ref) {
3108
+ var MenuTrigger = React30__namespace.forwardRef(function MenuTrigger2(props, ref) {
3047
3109
  const { asChild = false, ...rest } = props;
3048
3110
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Trigger, { asChild, ref, ...rest });
3049
3111
  });
3050
- var MenuContent = React29__namespace.forwardRef(function MenuContent2(props, ref) {
3112
+ var MenuContent = React30__namespace.forwardRef(function MenuContent2(props, ref) {
3051
3113
  const { portalled = true, portalRef, className, zIndex, minW, style, ...rest } = props;
3052
- const positioning = React29__namespace.useContext(PositioningContext);
3114
+ const positioning = React30__namespace.useContext(PositioningContext);
3053
3115
  const mergedStyle = {
3054
3116
  ...style,
3055
3117
  ...zIndex !== void 0 ? { zIndex: typeof zIndex === "string" ? `var(--z-index-${zIndex}, ${zIndex})` : zIndex } : {},
@@ -3084,7 +3146,7 @@ var MenuContent = React29__namespace.forwardRef(function MenuContent2(props, ref
3084
3146
  }
3085
3147
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Portal, { container: portalRef?.current ?? void 0, children: content });
3086
3148
  });
3087
- var MenuItem = React29__namespace.forwardRef(function MenuItem2(props, ref) {
3149
+ var MenuItem = React30__namespace.forwardRef(function MenuItem2(props, ref) {
3088
3150
  const { className, value: _value, asChild, closeOnSelect: _closeOnSelect, disabled, children, onClick, ...rest } = props;
3089
3151
  return /* @__PURE__ */ jsxRuntime.jsx(
3090
3152
  DropdownMenu__namespace.Item,
@@ -3106,11 +3168,11 @@ var MenuItem = React29__namespace.forwardRef(function MenuItem2(props, ref) {
3106
3168
  }
3107
3169
  );
3108
3170
  });
3109
- var MenuItemText = React29__namespace.forwardRef(function MenuItemText2(props, ref) {
3171
+ var MenuItemText = React30__namespace.forwardRef(function MenuItemText2(props, ref) {
3110
3172
  const { className, ...rest } = props;
3111
3173
  return /* @__PURE__ */ jsxRuntime.jsx("span", { ref, className: cn("flex-1", className), ...rest });
3112
3174
  });
3113
- React29__namespace.forwardRef(function MenuItemCommand2(props, ref) {
3175
+ React30__namespace.forwardRef(function MenuItemCommand2(props, ref) {
3114
3176
  const { className, ...rest } = props;
3115
3177
  return /* @__PURE__ */ jsxRuntime.jsx(
3116
3178
  "span",
@@ -3121,7 +3183,7 @@ React29__namespace.forwardRef(function MenuItemCommand2(props, ref) {
3121
3183
  }
3122
3184
  );
3123
3185
  });
3124
- var MenuSeparator = React29__namespace.forwardRef(function MenuSeparator2(props, ref) {
3186
+ var MenuSeparator = React30__namespace.forwardRef(function MenuSeparator2(props, ref) {
3125
3187
  const { className, ...rest } = props;
3126
3188
  return /* @__PURE__ */ jsxRuntime.jsx(
3127
3189
  DropdownMenu__namespace.Separator,
@@ -3132,14 +3194,14 @@ var MenuSeparator = React29__namespace.forwardRef(function MenuSeparator2(props,
3132
3194
  }
3133
3195
  );
3134
3196
  });
3135
- var MenuItemGroup = React29__namespace.forwardRef(function MenuItemGroup2(props, ref) {
3197
+ var MenuItemGroup = React30__namespace.forwardRef(function MenuItemGroup2(props, ref) {
3136
3198
  const { title, children, className, ...rest } = props;
3137
3199
  return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenu__namespace.Group, { ref, className, ...rest, children: [
3138
3200
  title && /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Label, { className: "px-2 py-1.5 text-xs font-semibold select-none opacity-60", children: title }),
3139
3201
  children
3140
3202
  ] });
3141
3203
  });
3142
- var MenuArrow = React29__namespace.forwardRef(function MenuArrow2(props, ref) {
3204
+ var MenuArrow = React30__namespace.forwardRef(function MenuArrow2(props, ref) {
3143
3205
  const { className, ...rest } = props;
3144
3206
  return /* @__PURE__ */ jsxRuntime.jsx(
3145
3207
  DropdownMenu__namespace.Arrow,
@@ -3150,7 +3212,7 @@ var MenuArrow = React29__namespace.forwardRef(function MenuArrow2(props, ref) {
3150
3212
  }
3151
3213
  );
3152
3214
  });
3153
- var MenuCheckboxItem = React29__namespace.forwardRef(function MenuCheckboxItem2(props, ref) {
3215
+ var MenuCheckboxItem = React30__namespace.forwardRef(function MenuCheckboxItem2(props, ref) {
3154
3216
  const { className, children, checked, onCheckedChange, onClick, ...rest } = props;
3155
3217
  return /* @__PURE__ */ jsxRuntime.jsxs(
3156
3218
  DropdownMenu__namespace.CheckboxItem,
@@ -3174,7 +3236,7 @@ var MenuCheckboxItem = React29__namespace.forwardRef(function MenuCheckboxItem2(
3174
3236
  }
3175
3237
  );
3176
3238
  });
3177
- var MenuRadioItemGroup = React29__namespace.forwardRef(function MenuRadioItemGroup2(props, ref) {
3239
+ var MenuRadioItemGroup = React30__namespace.forwardRef(function MenuRadioItemGroup2(props, ref) {
3178
3240
  const { value, onValueChange, ...rest } = props;
3179
3241
  return /* @__PURE__ */ jsxRuntime.jsx(
3180
3242
  DropdownMenu__namespace.RadioGroup,
@@ -3186,7 +3248,7 @@ var MenuRadioItemGroup = React29__namespace.forwardRef(function MenuRadioItemGro
3186
3248
  }
3187
3249
  );
3188
3250
  });
3189
- var MenuRadioItem = React29__namespace.forwardRef(function MenuRadioItem2(props, ref) {
3251
+ var MenuRadioItem = React30__namespace.forwardRef(function MenuRadioItem2(props, ref) {
3190
3252
  const { className, children, value, onClick, ...rest } = props;
3191
3253
  const { value: _v, ...radixRest } = rest;
3192
3254
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3209,11 +3271,11 @@ var MenuRadioItem = React29__namespace.forwardRef(function MenuRadioItem2(props,
3209
3271
  }
3210
3272
  );
3211
3273
  });
3212
- React29__namespace.forwardRef(function MenuContextTrigger2(props, ref) {
3274
+ React30__namespace.forwardRef(function MenuContextTrigger2(props, ref) {
3213
3275
  const { asChild: _asChild, ...rest } = props;
3214
3276
  return /* @__PURE__ */ jsxRuntime.jsx("span", { ref, ...rest });
3215
3277
  });
3216
- var MenuTriggerItem = React29__namespace.forwardRef(function MenuTriggerItem2(props, ref) {
3278
+ var MenuTriggerItem = React30__namespace.forwardRef(function MenuTriggerItem2(props, ref) {
3217
3279
  const { startIcon, children, className, ...rest } = props;
3218
3280
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenu__namespace.Sub, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3219
3281
  DropdownMenu__namespace.SubTrigger,
@@ -3248,7 +3310,7 @@ var INPUT_BASE2 = [
3248
3310
  ].join(" ");
3249
3311
  var INPUT_FILLED = "border-[var(--color-input-border)]";
3250
3312
  var INPUT_INVALID = "border-[var(--color-border-error)] hover:border-[var(--color-border-error)]";
3251
- var PinInput = React29__namespace.forwardRef(
3313
+ var PinInput = React30__namespace.forwardRef(
3252
3314
  function PinInput2(props, ref) {
3253
3315
  const {
3254
3316
  count = 6,
@@ -3266,12 +3328,12 @@ var PinInput = React29__namespace.forwardRef(
3266
3328
  bgColor,
3267
3329
  className
3268
3330
  } = props;
3269
- const inputRefs = React29__namespace.useRef([]);
3270
- const values = React29__namespace.useMemo(
3331
+ const inputRefs = React30__namespace.useRef([]);
3332
+ const values = React30__namespace.useMemo(
3271
3333
  () => controlledValue ?? Array.from({ length: count }).fill(""),
3272
3334
  [controlledValue, count]
3273
3335
  );
3274
- const updateValue = React29__namespace.useCallback((index, char) => {
3336
+ const updateValue = React30__namespace.useCallback((index, char) => {
3275
3337
  const next = [...values];
3276
3338
  next[index] = char;
3277
3339
  onValueChange?.({ value: next });
@@ -3279,11 +3341,11 @@ var PinInput = React29__namespace.forwardRef(
3279
3341
  onValueComplete?.({ value: next });
3280
3342
  }
3281
3343
  }, [values, onValueChange, onValueComplete]);
3282
- const focusInput = React29__namespace.useCallback((index) => {
3344
+ const focusInput = React30__namespace.useCallback((index) => {
3283
3345
  const clamped = Math.max(0, Math.min(index, count - 1));
3284
3346
  inputRefs.current[clamped]?.focus();
3285
3347
  }, [count]);
3286
- const handleInput = React29__namespace.useCallback((index, e) => {
3348
+ const handleInput = React30__namespace.useCallback((index, e) => {
3287
3349
  const target = e.currentTarget;
3288
3350
  const char = target.value.slice(-1);
3289
3351
  updateValue(index, char);
@@ -3291,7 +3353,7 @@ var PinInput = React29__namespace.forwardRef(
3291
3353
  focusInput(index + 1);
3292
3354
  }
3293
3355
  }, [count, updateValue, focusInput]);
3294
- const handleKeyDown = React29__namespace.useCallback((index, e) => {
3356
+ const handleKeyDown = React30__namespace.useCallback((index, e) => {
3295
3357
  if (e.key === "Backspace") {
3296
3358
  if (values[index]) {
3297
3359
  updateValue(index, "");
@@ -3308,7 +3370,7 @@ var PinInput = React29__namespace.forwardRef(
3308
3370
  e.preventDefault();
3309
3371
  }
3310
3372
  }, [count, values, updateValue, focusInput]);
3311
- const handlePaste = React29__namespace.useCallback((e) => {
3373
+ const handlePaste = React30__namespace.useCallback((e) => {
3312
3374
  e.preventDefault();
3313
3375
  const pasted = e.clipboardData.getData("text/plain").trim();
3314
3376
  if (!pasted) {
@@ -3325,18 +3387,18 @@ var PinInput = React29__namespace.forwardRef(
3325
3387
  }
3326
3388
  focusInput(Math.min(chars.length, count - 1));
3327
3389
  }, [count, values, onValueChange, onValueComplete, focusInput]);
3328
- const handleFocus = React29__namespace.useCallback((e) => {
3390
+ const handleFocus = React30__namespace.useCallback((e) => {
3329
3391
  e.currentTarget.select();
3330
3392
  }, []);
3331
- const handleNoop = React29__namespace.useCallback(() => {
3393
+ const handleNoop = React30__namespace.useCallback(() => {
3332
3394
  }, []);
3333
- const setInputRef = React29__namespace.useCallback((index) => (el) => {
3395
+ const setInputRef = React30__namespace.useCallback((index) => (el) => {
3334
3396
  inputRefs.current[index] = el;
3335
3397
  }, []);
3336
- const onInputAtIndex = React29__namespace.useCallback((index) => (e) => {
3398
+ const onInputAtIndex = React30__namespace.useCallback((index) => (e) => {
3337
3399
  handleInput(index, e);
3338
3400
  }, [handleInput]);
3339
- const onKeyDownAtIndex = React29__namespace.useCallback((index) => (e) => {
3401
+ const onKeyDownAtIndex = React30__namespace.useCallback((index) => (e) => {
3340
3402
  handleKeyDown(index, e);
3341
3403
  }, [handleKeyDown]);
3342
3404
  const bgStyle = bgColor ? { backgroundColor: `var(--color-${bgColor.replace(/\./g, "-")})` } : void 0;
@@ -3397,7 +3459,7 @@ function parsePlacement2(placement) {
3397
3459
  }
3398
3460
  return { side, align };
3399
3461
  }
3400
- var PositioningContext2 = React29__namespace.createContext({
3462
+ var PositioningContext2 = React30__namespace.createContext({
3401
3463
  side: "bottom",
3402
3464
  align: "start",
3403
3465
  sideOffset: 4,
@@ -3431,7 +3493,7 @@ var PopoverRoot = (props) => {
3431
3493
  }
3432
3494
  };
3433
3495
  const { side, align } = parsePlacement2(mergedPositioning.placement);
3434
- const positioningValue = React29__namespace.useMemo(() => ({
3496
+ const positioningValue = React30__namespace.useMemo(() => ({
3435
3497
  side,
3436
3498
  align,
3437
3499
  sideOffset: mergedPositioning.offset?.mainAxis ?? 4,
@@ -3448,13 +3510,13 @@ var PopoverRoot = (props) => {
3448
3510
  autoFocus,
3449
3511
  closeOnInteractOutside
3450
3512
  ]);
3451
- const handleOpenChange = React29__namespace.useCallback((isOpen) => {
3513
+ const handleOpenChange = React30__namespace.useCallback((isOpen) => {
3452
3514
  onOpenChange?.({ open: isOpen });
3453
3515
  }, [onOpenChange]);
3454
3516
  const placement = mergedPositioning.placement ?? "bottom-start";
3455
3517
  const offset = mergedPositioning.offset?.mainAxis ?? 4;
3456
3518
  return /* @__PURE__ */ jsxRuntime.jsx(PositioningContext2.Provider, { value: positioningValue, children: /* @__PURE__ */ jsxRuntime.jsx(
3457
- popover.Popover,
3519
+ gui.Popover,
3458
3520
  {
3459
3521
  open,
3460
3522
  defaultOpen,
@@ -3466,11 +3528,11 @@ var PopoverRoot = (props) => {
3466
3528
  }
3467
3529
  ) });
3468
3530
  };
3469
- var PopoverTrigger = React29__namespace.forwardRef(function PopoverTrigger2(props, ref) {
3531
+ var PopoverTrigger = React30__namespace.forwardRef(function PopoverTrigger2(props, ref) {
3470
3532
  const { asChild = true, ...rest } = props;
3471
- return /* @__PURE__ */ jsxRuntime.jsx(popover.Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
3533
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
3472
3534
  });
3473
- var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(props, ref) {
3535
+ var PopoverContent = React30__namespace.forwardRef(function PopoverContent2(props, ref) {
3474
3536
  const { portalled = true, portalRef: _portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
3475
3537
  const resolvedW = typeof w === "object" ? w.base ?? w.lg : w;
3476
3538
  const contentStyle = {
@@ -3481,7 +3543,7 @@ var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(prop
3481
3543
  ...paddingTop !== void 0 ? { paddingTop: typeof paddingTop === "number" ? `${paddingTop * 4}px` : paddingTop } : {}
3482
3544
  };
3483
3545
  return /* @__PURE__ */ jsxRuntime.jsx(
3484
- popover.Popover.Content,
3546
+ gui.Popover.Content,
3485
3547
  {
3486
3548
  ref,
3487
3549
  unstyled: true,
@@ -3501,10 +3563,10 @@ var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(prop
3501
3563
  }
3502
3564
  );
3503
3565
  });
3504
- var PopoverArrow = React29__namespace.forwardRef(function PopoverArrow2(props, ref) {
3566
+ var PopoverArrow = React30__namespace.forwardRef(function PopoverArrow2(props, ref) {
3505
3567
  const { className, ...rest } = props;
3506
3568
  return /* @__PURE__ */ jsxRuntime.jsx(
3507
- popover.Popover.Arrow,
3569
+ gui.Popover.Arrow,
3508
3570
  {
3509
3571
  ref,
3510
3572
  unstyled: true,
@@ -3513,10 +3575,10 @@ var PopoverArrow = React29__namespace.forwardRef(function PopoverArrow2(props, r
3513
3575
  }
3514
3576
  );
3515
3577
  });
3516
- var PopoverCloseTrigger = React29__namespace.forwardRef(function PopoverCloseTrigger2(props, ref) {
3578
+ var PopoverCloseTrigger = React30__namespace.forwardRef(function PopoverCloseTrigger2(props, ref) {
3517
3579
  const { className, ...rest } = props;
3518
3580
  return /* @__PURE__ */ jsxRuntime.jsx(
3519
- popover.Popover.Close,
3581
+ gui.Popover.Close,
3520
3582
  {
3521
3583
  unstyled: true,
3522
3584
  className: cn("absolute top-1 right-1", className),
@@ -3527,14 +3589,14 @@ var PopoverCloseTrigger = React29__namespace.forwardRef(function PopoverCloseTri
3527
3589
  }
3528
3590
  );
3529
3591
  });
3530
- var PopoverCloseTriggerWrapper = React29__namespace.forwardRef(function PopoverCloseTriggerWrapper2(props, ref) {
3592
+ var PopoverCloseTriggerWrapper = React30__namespace.forwardRef(function PopoverCloseTriggerWrapper2(props, ref) {
3531
3593
  const { disabled, children, ...rest } = props;
3532
3594
  if (disabled) {
3533
3595
  return children;
3534
3596
  }
3535
- return /* @__PURE__ */ jsxRuntime.jsx(popover.Popover.Close, { ref, ...rest, asChild: true, children });
3597
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.Popover.Close, { ref, ...rest, asChild: true, children });
3536
3598
  });
3537
- var PopoverBody = React29__namespace.forwardRef(function PopoverBody2(props, ref) {
3599
+ var PopoverBody = React30__namespace.forwardRef(function PopoverBody2(props, ref) {
3538
3600
  const {
3539
3601
  className,
3540
3602
  style: styleProp,
@@ -3572,7 +3634,7 @@ var PopoverBody = React29__namespace.forwardRef(function PopoverBody2(props, ref
3572
3634
  }
3573
3635
  );
3574
3636
  });
3575
- var PopoverHeader = React29__namespace.forwardRef(function PopoverHeader2(props, ref) {
3637
+ var PopoverHeader = React30__namespace.forwardRef(function PopoverHeader2(props, ref) {
3576
3638
  const { className, ...rest } = props;
3577
3639
  return /* @__PURE__ */ jsxRuntime.jsx(
3578
3640
  "div",
@@ -3583,7 +3645,7 @@ var PopoverHeader = React29__namespace.forwardRef(function PopoverHeader2(props,
3583
3645
  }
3584
3646
  );
3585
3647
  });
3586
- var PopoverFooter = React29__namespace.forwardRef(function PopoverFooter2(props, ref) {
3648
+ var PopoverFooter = React30__namespace.forwardRef(function PopoverFooter2(props, ref) {
3587
3649
  const { className, ...rest } = props;
3588
3650
  return /* @__PURE__ */ jsxRuntime.jsx(
3589
3651
  "div",
@@ -3594,7 +3656,7 @@ var PopoverFooter = React29__namespace.forwardRef(function PopoverFooter2(props,
3594
3656
  }
3595
3657
  );
3596
3658
  });
3597
- var PopoverTitle = React29__namespace.forwardRef(function PopoverTitle2(props, ref) {
3659
+ var PopoverTitle = React30__namespace.forwardRef(function PopoverTitle2(props, ref) {
3598
3660
  const { className, ...rest } = props;
3599
3661
  return /* @__PURE__ */ jsxRuntime.jsx(
3600
3662
  "h3",
@@ -3605,7 +3667,7 @@ var PopoverTitle = React29__namespace.forwardRef(function PopoverTitle2(props, r
3605
3667
  }
3606
3668
  );
3607
3669
  });
3608
- var PopoverDescription = React29__namespace.forwardRef(function PopoverDescription2(props, ref) {
3670
+ var PopoverDescription = React30__namespace.forwardRef(function PopoverDescription2(props, ref) {
3609
3671
  const { className, ...rest } = props;
3610
3672
  return /* @__PURE__ */ jsxRuntime.jsx(
3611
3673
  "p",
@@ -3627,7 +3689,7 @@ function normalizeValue(value, min, max) {
3627
3689
  if (max <= min) return 0;
3628
3690
  return Math.round((value - min) / (max - min) * 100);
3629
3691
  }
3630
- var Progress = React29__namespace.forwardRef(
3692
+ var Progress = React30__namespace.forwardRef(
3631
3693
  function Progress2(props, ref) {
3632
3694
  const {
3633
3695
  value,
@@ -3704,12 +3766,12 @@ var SIZE_MAP = {
3704
3766
  lg: { size: 48, thickness: 7, textClass: "text-sm" },
3705
3767
  xl: { size: 64, thickness: 8, textClass: "text-sm" }
3706
3768
  };
3707
- var Ctx = React29__namespace.createContext({
3769
+ var Ctx = React30__namespace.createContext({
3708
3770
  value: 0,
3709
3771
  size: "md",
3710
3772
  colorPalette: "blue"
3711
3773
  });
3712
- var ProgressCircleRoot = React29__namespace.forwardRef(function ProgressCircleRoot2(props, ref) {
3774
+ var ProgressCircleRoot = React30__namespace.forwardRef(function ProgressCircleRoot2(props, ref) {
3713
3775
  const {
3714
3776
  value = 0,
3715
3777
  size = "md",
@@ -3718,7 +3780,7 @@ var ProgressCircleRoot = React29__namespace.forwardRef(function ProgressCircleRo
3718
3780
  children,
3719
3781
  ...rest
3720
3782
  } = props;
3721
- const ctx = React29__namespace.useMemo(
3783
+ const ctx = React30__namespace.useMemo(
3722
3784
  () => ({ value: value ?? null, size, colorPalette }),
3723
3785
  [value, size, colorPalette]
3724
3786
  );
@@ -3736,9 +3798,9 @@ var ProgressCircleRoot = React29__namespace.forwardRef(function ProgressCircleRo
3736
3798
  }
3737
3799
  ) });
3738
3800
  });
3739
- var ProgressCircleRing = React29__namespace.forwardRef(function ProgressCircleRing2(props, ref) {
3801
+ var ProgressCircleRing = React30__namespace.forwardRef(function ProgressCircleRing2(props, ref) {
3740
3802
  const { trackColor, cap, color, className, ...rest } = props;
3741
- const { value, size: sizeKey } = React29__namespace.useContext(Ctx);
3803
+ const { value, size: sizeKey } = React30__namespace.useContext(Ctx);
3742
3804
  const { size, thickness } = SIZE_MAP[sizeKey];
3743
3805
  const radius = size / 2 - thickness / 2;
3744
3806
  const circumference = 2 * Math.PI * radius;
@@ -3793,9 +3855,9 @@ var ProgressCircleRing = React29__namespace.forwardRef(function ProgressCircleRi
3793
3855
  }
3794
3856
  );
3795
3857
  });
3796
- var ProgressCircleValueText = React29__namespace.forwardRef(function ProgressCircleValueText2(props, ref) {
3858
+ var ProgressCircleValueText = React30__namespace.forwardRef(function ProgressCircleValueText2(props, ref) {
3797
3859
  const { className, children, ...rest } = props;
3798
- const { value, size: sizeKey } = React29__namespace.useContext(Ctx);
3860
+ const { value, size: sizeKey } = React30__namespace.useContext(Ctx);
3799
3861
  const { textClass } = SIZE_MAP[sizeKey];
3800
3862
  return /* @__PURE__ */ jsxRuntime.jsx(
3801
3863
  "div",
@@ -3839,8 +3901,8 @@ var SIZE_CLASSES8 = {
3839
3901
  label: "text-base"
3840
3902
  }
3841
3903
  };
3842
- var RadioSizeContext = React29__namespace.createContext("md");
3843
- var RadioGroupBase = React29__namespace.forwardRef(
3904
+ var RadioSizeContext = React30__namespace.createContext("md");
3905
+ var RadioGroupBase = React30__namespace.forwardRef(
3844
3906
  function RadioGroup2(props, ref) {
3845
3907
  const {
3846
3908
  children,
@@ -3857,7 +3919,7 @@ var RadioGroupBase = React29__namespace.forwardRef(
3857
3919
  className,
3858
3920
  ...rest
3859
3921
  } = props;
3860
- const handleValueChange = React29__namespace.useCallback(
3922
+ const handleValueChange = React30__namespace.useCallback(
3861
3923
  (nextValue) => {
3862
3924
  if (readOnly) return;
3863
3925
  onValueChange?.({ value: nextValue });
@@ -3890,10 +3952,10 @@ var RadioGroupBase = React29__namespace.forwardRef(
3890
3952
  var RadioGroup3 = RadioGroupBase;
3891
3953
  var NOOP2 = () => {
3892
3954
  };
3893
- var RadioBase = React29__namespace.forwardRef(
3955
+ var RadioBase = React30__namespace.forwardRef(
3894
3956
  function Radio(props, ref) {
3895
3957
  const { children, inputProps, rootRef, value, disabled, className, ...rest } = props;
3896
- const size = React29__namespace.useContext(RadioSizeContext);
3958
+ const size = React30__namespace.useContext(RadioSizeContext);
3897
3959
  const sizeClasses2 = SIZE_CLASSES8[size];
3898
3960
  return /* @__PURE__ */ jsxRuntime.jsxs(
3899
3961
  "label",
@@ -3955,23 +4017,23 @@ var RadioBase = React29__namespace.forwardRef(
3955
4017
  var Radio2 = RadioBase;
3956
4018
  var StarFilledIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.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" }) });
3957
4019
  var StarOutlineIcon = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.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" }) });
3958
- var Rating = React29__namespace.forwardRef(
4020
+ var Rating = React30__namespace.forwardRef(
3959
4021
  function Rating2(props, ref) {
3960
4022
  const { count = 5, label: labelProp, defaultValue = 0, onValueChange, readOnly, className, ...rest } = props;
3961
- const [value, setValue] = React29__namespace.useState(defaultValue);
3962
- const [hoveredIndex, setHoveredIndex] = React29__namespace.useState(-1);
4023
+ const [value, setValue] = React30__namespace.useState(defaultValue);
4024
+ const [hoveredIndex, setHoveredIndex] = React30__namespace.useState(-1);
3963
4025
  const highlightedIndex = hoveredIndex >= 0 && !readOnly ? hoveredIndex + 1 : value;
3964
4026
  const label = Array.isArray(labelProp) ? labelProp[highlightedIndex - 1] : labelProp;
3965
- const handleClick = React29__namespace.useCallback((index) => () => {
4027
+ const handleClick = React30__namespace.useCallback((index) => () => {
3966
4028
  if (readOnly) return;
3967
4029
  setValue(index);
3968
4030
  onValueChange?.({ value: index });
3969
4031
  }, [readOnly, onValueChange]);
3970
- const handleMouseEnter = React29__namespace.useCallback((index) => () => {
4032
+ const handleMouseEnter = React30__namespace.useCallback((index) => () => {
3971
4033
  if (readOnly) return;
3972
4034
  setHoveredIndex(index);
3973
4035
  }, [readOnly]);
3974
- const handleMouseLeave = React29__namespace.useCallback(() => {
4036
+ const handleMouseLeave = React30__namespace.useCallback(() => {
3975
4037
  setHoveredIndex(-1);
3976
4038
  }, []);
3977
4039
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("inline-flex items-center gap-1", className), ...rest, children: [
@@ -3999,14 +4061,14 @@ var Rating = React29__namespace.forwardRef(
3999
4061
  ] });
4000
4062
  }
4001
4063
  );
4002
- function createListCollection(config) {
4003
- return { items: config.items };
4064
+ function createListCollection(config2) {
4065
+ return { items: config2.items };
4004
4066
  }
4005
4067
  var ArrowIcon2 = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7.5 15L12.5 10L7.5 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
4006
4068
  var CheckIcon2 = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16.667 5L7.5 14.167 3.333 10", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
4007
4069
  function FilterInput({ placeholder, initialValue = "", onChange }) {
4008
- const [value, setValue] = React29__namespace.useState(initialValue);
4009
- const handleChange = React29__namespace.useCallback((e) => {
4070
+ const [value, setValue] = React30__namespace.useState(initialValue);
4071
+ const handleChange = React30__namespace.useCallback((e) => {
4010
4072
  setValue(e.target.value);
4011
4073
  onChange?.(e.target.value);
4012
4074
  }, [onChange]);
@@ -4025,15 +4087,15 @@ function FilterInput({ placeholder, initialValue = "", onChange }) {
4025
4087
  }
4026
4088
  );
4027
4089
  }
4028
- var SelectInternalContext = React29__namespace.createContext(null);
4090
+ var SelectInternalContext = React30__namespace.createContext(null);
4029
4091
  function useSelectInternalContext() {
4030
- const ctx = React29__namespace.useContext(SelectInternalContext);
4092
+ const ctx = React30__namespace.useContext(SelectInternalContext);
4031
4093
  if (!ctx) {
4032
4094
  throw new Error("Select compound components must be rendered inside <SelectRoot>");
4033
4095
  }
4034
4096
  return ctx;
4035
4097
  }
4036
- var SelectRoot = React29__namespace.forwardRef(
4098
+ var SelectRoot = React30__namespace.forwardRef(
4037
4099
  function SelectRoot2(props, ref) {
4038
4100
  const {
4039
4101
  children,
@@ -4064,21 +4126,21 @@ var SelectRoot = React29__namespace.forwardRef(
4064
4126
  hideFrom: _hideFrom
4065
4127
  } = props;
4066
4128
  const collection = collectionProp ?? createListCollection({ items: [] });
4067
- const [internalValue, setInternalValue] = React29__namespace.useState(defaultValueArr ?? []);
4129
+ const [internalValue, setInternalValue] = React30__namespace.useState(defaultValueArr ?? []);
4068
4130
  const currentValue = valueProp ?? internalValue;
4069
- const selectedItems = React29__namespace.useMemo(() => {
4131
+ const selectedItems = React30__namespace.useMemo(() => {
4070
4132
  return currentValue.map((v) => collection.items.find((item) => item.value === v)).filter(Boolean);
4071
4133
  }, [currentValue, collection.items]);
4072
- const [open, setOpen] = React29__namespace.useState(defaultOpen ?? false);
4134
+ const [open, setOpen] = React30__namespace.useState(defaultOpen ?? false);
4073
4135
  const isOpen = openProp ?? open;
4074
- const handleOpenChange = React29__namespace.useCallback((nextOpen) => {
4136
+ const handleOpenChange = React30__namespace.useCallback((nextOpen) => {
4075
4137
  setOpen(nextOpen);
4076
4138
  onOpenChange?.(nextOpen);
4077
4139
  if (!nextOpen) {
4078
4140
  onInteractOutside?.();
4079
4141
  }
4080
4142
  }, [onOpenChange, onInteractOutside]);
4081
- const handleRadixValueChange = React29__namespace.useCallback((radixValue) => {
4143
+ const handleRadixValueChange = React30__namespace.useCallback((radixValue) => {
4082
4144
  const nextArr = [radixValue];
4083
4145
  if (!valueProp) {
4084
4146
  setInternalValue(nextArr);
@@ -4086,7 +4148,7 @@ var SelectRoot = React29__namespace.forwardRef(
4086
4148
  const items = collection.items.filter((item) => nextArr.includes(item.value));
4087
4149
  onValueChangeProp?.({ value: nextArr, items });
4088
4150
  }, [valueProp, collection.items, onValueChangeProp]);
4089
- const ctxValue = React29__namespace.useMemo(() => ({
4151
+ const ctxValue = React30__namespace.useMemo(() => ({
4090
4152
  value: currentValue,
4091
4153
  selectedItems,
4092
4154
  collection,
@@ -4106,7 +4168,7 @@ var SelectRoot = React29__namespace.forwardRef(
4106
4168
  if (typeof v === "string") return v;
4107
4169
  return v.base ?? v.lg ?? Object.values(v)[0];
4108
4170
  };
4109
- const inlineStyle = React29__namespace.useMemo(() => {
4171
+ const inlineStyle = React30__namespace.useMemo(() => {
4110
4172
  const s = { ...style };
4111
4173
  const rw = resolveVal(w);
4112
4174
  if (rw) s.width = rw;
@@ -4144,7 +4206,7 @@ var SelectRoot = React29__namespace.forwardRef(
4144
4206
  ) });
4145
4207
  }
4146
4208
  );
4147
- var SelectControl = React29__namespace.forwardRef(
4209
+ var SelectControl = React30__namespace.forwardRef(
4148
4210
  function SelectControl2(props, ref) {
4149
4211
  const { children, noIndicator, triggerProps, loading, defaultValue } = props;
4150
4212
  const ctx = useSelectInternalContext();
@@ -4181,11 +4243,11 @@ var SelectControl = React29__namespace.forwardRef(
4181
4243
  return trigger;
4182
4244
  }
4183
4245
  );
4184
- var SelectClearTrigger = React29__namespace.forwardRef(
4246
+ var SelectClearTrigger = React30__namespace.forwardRef(
4185
4247
  function SelectClearTrigger2(props, ref) {
4186
4248
  const { className, ...rest } = props;
4187
4249
  const ctx = useSelectInternalContext();
4188
- const handleClick = React29__namespace.useCallback(() => {
4250
+ const handleClick = React30__namespace.useCallback(() => {
4189
4251
  ctx.onValueChange({ value: [], items: [] });
4190
4252
  }, [ctx]);
4191
4253
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4202,7 +4264,7 @@ var SelectClearTrigger = React29__namespace.forwardRef(
4202
4264
  );
4203
4265
  }
4204
4266
  );
4205
- var SelectContent = React29__namespace.forwardRef(
4267
+ var SelectContent = React30__namespace.forwardRef(
4206
4268
  function SelectContent2(props, ref) {
4207
4269
  const { portalled = true, portalRef, children, className, ...rest } = props;
4208
4270
  const content = /* @__PURE__ */ jsxRuntime.jsx(
@@ -4229,7 +4291,7 @@ var SelectContent = React29__namespace.forwardRef(
4229
4291
  return content;
4230
4292
  }
4231
4293
  );
4232
- var SelectItem = React29__namespace.forwardRef(
4294
+ var SelectItem = React30__namespace.forwardRef(
4233
4295
  function SelectItem2(props, ref) {
4234
4296
  const { item, children, className, ...rest } = props;
4235
4297
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -4257,7 +4319,7 @@ var SelectItem = React29__namespace.forwardRef(
4257
4319
  );
4258
4320
  }
4259
4321
  );
4260
- var SelectValueText = React29__namespace.forwardRef(
4322
+ var SelectValueText = React30__namespace.forwardRef(
4261
4323
  function SelectValueText2(props, ref) {
4262
4324
  const { children, size, required, invalid, errorText, mode, className, style, placeholder: placeholderProp, ...rest } = props;
4263
4325
  const ctx = useSelectInternalContext();
@@ -4313,7 +4375,7 @@ var SelectValueText = React29__namespace.forwardRef(
4313
4375
  );
4314
4376
  }
4315
4377
  );
4316
- var SelectItemGroup = React29__namespace.forwardRef(
4378
+ var SelectItemGroup = React30__namespace.forwardRef(
4317
4379
  function SelectItemGroup2(props, ref) {
4318
4380
  const { children, label, className, ...rest } = props;
4319
4381
  return /* @__PURE__ */ jsxRuntime.jsxs(RadixSelect__namespace.Group, { ref, className: cn("py-1", className), ...rest, children: [
@@ -4324,7 +4386,7 @@ var SelectItemGroup = React29__namespace.forwardRef(
4324
4386
  );
4325
4387
  var SelectLabel = RadixSelect__namespace.Label;
4326
4388
  var SelectItemText = RadixSelect__namespace.ItemText;
4327
- var Select = React29__namespace.forwardRef((props, ref) => {
4389
+ var Select = React30__namespace.forwardRef((props, ref) => {
4328
4390
  const { collection, placeholder, portalled = true, loading, errorText, contentProps, contentHeader, itemFilter, mode, ...rest } = props;
4329
4391
  return /* @__PURE__ */ jsxRuntime.jsxs(
4330
4392
  SelectRoot,
@@ -4346,7 +4408,7 @@ var Select = React29__namespace.forwardRef((props, ref) => {
4346
4408
  ) }),
4347
4409
  /* @__PURE__ */ jsxRuntime.jsxs(SelectContent, { portalled, ...contentProps, children: [
4348
4410
  contentHeader,
4349
- collection.items.filter(itemFilter ?? (() => true)).map((item) => /* @__PURE__ */ jsxRuntime.jsxs(React29__namespace.Fragment, { children: [
4411
+ collection.items.filter(itemFilter ?? (() => true)).map((item) => /* @__PURE__ */ jsxRuntime.jsxs(React30__namespace.Fragment, { children: [
4350
4412
  /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { item, children: item.renderLabel ? item.renderLabel("item") : item.label }),
4351
4413
  item.afterElement
4352
4414
  ] }, item.value))
@@ -4355,19 +4417,19 @@ var Select = React29__namespace.forwardRef((props, ref) => {
4355
4417
  }
4356
4418
  );
4357
4419
  });
4358
- var SelectAsync = React29__namespace.forwardRef((props, ref) => {
4420
+ var SelectAsync = React30__namespace.forwardRef((props, ref) => {
4359
4421
  const { placeholder, portalled = true, loading, loadOptions, extraControls, onValueChange, errorText, mode, contentHeader, ...rest } = props;
4360
- const [collection, setCollection] = React29__namespace.useState(createListCollection({ items: [] }));
4361
- const [inputValue, setInputValue] = React29__namespace.useState("");
4362
- const [value, setValue] = React29__namespace.useState([]);
4422
+ const [collection, setCollection] = React30__namespace.useState(createListCollection({ items: [] }));
4423
+ const [inputValue, setInputValue] = React30__namespace.useState("");
4424
+ const [value, setValue] = React30__namespace.useState([]);
4363
4425
  const debouncedInputValue = usehooks.useDebounce(inputValue, 300);
4364
- React29__namespace.useEffect(() => {
4426
+ React30__namespace.useEffect(() => {
4365
4427
  loadOptions(debouncedInputValue, value).then(setCollection);
4366
4428
  }, [debouncedInputValue, loadOptions, value]);
4367
- const handleFilterChange = React29__namespace.useCallback((val) => {
4429
+ const handleFilterChange = React30__namespace.useCallback((val) => {
4368
4430
  setInputValue(val);
4369
4431
  }, []);
4370
- const handleValueChange = React29__namespace.useCallback(({ value: v, items }) => {
4432
+ const handleValueChange = React30__namespace.useCallback(({ value: v, items }) => {
4371
4433
  setValue(v);
4372
4434
  onValueChange?.({ value: v, items });
4373
4435
  }, [onValueChange]);
@@ -4426,7 +4488,7 @@ var VERTICAL_SIZE_CLASSES = {
4426
4488
  md: "border-l-2",
4427
4489
  lg: "border-l-[3px]"
4428
4490
  };
4429
- var Separator2 = React29__namespace.default.forwardRef(
4491
+ var Separator2 = React30__namespace.default.forwardRef(
4430
4492
  function Separator3({ orientation = "horizontal", variant = "solid", size = "sm", className, ...rest }, ref) {
4431
4493
  const isVertical = orientation === "vertical";
4432
4494
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4450,7 +4512,7 @@ var Separator2 = React29__namespace.default.forwardRef(
4450
4512
  );
4451
4513
  var THUMB_SIZE = 20;
4452
4514
  var TRACK_HEIGHT = 6;
4453
- var Slider = React29__namespace.forwardRef(
4515
+ var Slider = React30__namespace.forwardRef(
4454
4516
  function Slider2(props, ref) {
4455
4517
  const {
4456
4518
  marks: marksProp,
@@ -4569,7 +4631,7 @@ var SIZE_CLASSES9 = {
4569
4631
  label: "text-base"
4570
4632
  }
4571
4633
  };
4572
- var SwitchBase = React29__namespace.forwardRef(
4634
+ var SwitchBase = React30__namespace.forwardRef(
4573
4635
  function Switch(props, ref) {
4574
4636
  const {
4575
4637
  inputProps,
@@ -4588,10 +4650,10 @@ var SwitchBase = React29__namespace.forwardRef(
4588
4650
  className,
4589
4651
  ...rest
4590
4652
  } = props;
4591
- const [internalChecked, setInternalChecked] = React29__namespace.useState(defaultChecked ?? false);
4653
+ const [internalChecked, setInternalChecked] = React30__namespace.useState(defaultChecked ?? false);
4592
4654
  const isControlled = checkedProp !== void 0;
4593
4655
  const checkedState = isControlled ? checkedProp : internalChecked;
4594
- const handleCheckedChange = React29__namespace.useCallback(
4656
+ const handleCheckedChange = React30__namespace.useCallback(
4595
4657
  (nextChecked) => {
4596
4658
  if (!isControlled) {
4597
4659
  setInternalChecked(nextChecked);
@@ -4856,7 +4918,7 @@ function resolveResponsive(value) {
4856
4918
  }
4857
4919
  return void 0;
4858
4920
  }
4859
- var TableRoot = React29__namespace.forwardRef(
4921
+ var TableRoot = React30__namespace.forwardRef(
4860
4922
  function TableRoot2(props, ref) {
4861
4923
  const { className, style: styleProp, children, ...other } = props;
4862
4924
  const rawMinW = other.minWidth ?? other.minW;
@@ -4879,7 +4941,7 @@ var TableRoot = React29__namespace.forwardRef(
4879
4941
  );
4880
4942
  }
4881
4943
  );
4882
- var TableHeader = React29__namespace.forwardRef(
4944
+ var TableHeader = React30__namespace.forwardRef(
4883
4945
  function TableHeader2(props, ref) {
4884
4946
  const { className, style: styleProp, children, ...other } = props;
4885
4947
  const { style: extracted, rest } = extractStyles(other);
@@ -4896,7 +4958,7 @@ var TableHeader = React29__namespace.forwardRef(
4896
4958
  );
4897
4959
  }
4898
4960
  );
4899
- var TableBody = React29__namespace.forwardRef(
4961
+ var TableBody = React30__namespace.forwardRef(
4900
4962
  function TableBody2(props, ref) {
4901
4963
  const { className, style: styleProp, children, ...other } = props;
4902
4964
  const { style: extracted, rest } = extractStyles(other);
@@ -4913,7 +4975,7 @@ var TableBody = React29__namespace.forwardRef(
4913
4975
  );
4914
4976
  }
4915
4977
  );
4916
- var TableRow = React29__namespace.forwardRef(
4978
+ var TableRow = React30__namespace.forwardRef(
4917
4979
  function TableRow2(props, ref) {
4918
4980
  const { className, style: styleProp, children, ...other } = props;
4919
4981
  const { style: extracted, rest } = extractStyles(other);
@@ -4930,7 +4992,7 @@ var TableRow = React29__namespace.forwardRef(
4930
4992
  );
4931
4993
  }
4932
4994
  );
4933
- var TableCell = React29__namespace.forwardRef(
4995
+ var TableCell = React30__namespace.forwardRef(
4934
4996
  function TableCell2(props, ref) {
4935
4997
  const { isNumeric, className, style: styleProp, children, ...other } = props;
4936
4998
  const { style: extracted, rest } = extractStyles(other);
@@ -4951,7 +5013,7 @@ var TableCell = React29__namespace.forwardRef(
4951
5013
  );
4952
5014
  }
4953
5015
  );
4954
- var TableColumnHeader = React29__namespace.forwardRef(
5016
+ var TableColumnHeader = React30__namespace.forwardRef(
4955
5017
  function TableColumnHeader2(props, ref) {
4956
5018
  const { isNumeric, className, style: styleProp, children, ...other } = props;
4957
5019
  const { style: extracted, rest } = extractStyles(other);
@@ -4978,7 +5040,7 @@ var TableColumnHeader = React29__namespace.forwardRef(
4978
5040
  );
4979
5041
  var TableColumnHeaderSortable = (props) => {
4980
5042
  const { sortField, sortValue, onSortToggle, children, disabled, indicatorPosition = "left", contentAfter, ...rest } = props;
4981
- const handleSortToggle = React29__namespace.useCallback(() => {
5043
+ const handleSortToggle = React30__namespace.useCallback(() => {
4982
5044
  onSortToggle(sortField);
4983
5045
  }, [onSortToggle, sortField]);
4984
5046
  const isActive = sortValue.includes(sortField);
@@ -5004,16 +5066,16 @@ var TableColumnHeaderSortable = (props) => {
5004
5066
  var ACTION_BAR_SHADOW = "0 4px 4px -4px rgb(0 0 0 / 10%), 0 2px 4px -4px rgb(0 0 0 / 6%)";
5005
5067
  var TableHeaderSticky = (props) => {
5006
5068
  const { top, children, className, style: styleProp, ...rest } = props;
5007
- const ref = React29__namespace.useRef(null);
5008
- const [isStuck, setIsStuck] = React29__namespace.useState(false);
5009
- const handleScroll = React29__namespace.useCallback(() => {
5069
+ const ref = React30__namespace.useRef(null);
5070
+ const [isStuck, setIsStuck] = React30__namespace.useState(false);
5071
+ const handleScroll = React30__namespace.useCallback(() => {
5010
5072
  if (Number(ref.current?.getBoundingClientRect().y) <= (Number(top) || 0)) {
5011
5073
  setIsStuck(true);
5012
5074
  } else {
5013
5075
  setIsStuck(false);
5014
5076
  }
5015
5077
  }, [top]);
5016
- React29__namespace.useEffect(() => {
5078
+ React30__namespace.useEffect(() => {
5017
5079
  const throttledHandleScroll = esToolkit.throttle(handleScroll, 300);
5018
5080
  window.addEventListener("scroll", throttledHandleScroll);
5019
5081
  return () => {
@@ -5035,7 +5097,7 @@ var TableHeaderSticky = (props) => {
5035
5097
  }
5036
5098
  );
5037
5099
  };
5038
- var TableCaption = React29__namespace.forwardRef(
5100
+ var TableCaption = React30__namespace.forwardRef(
5039
5101
  function TableCaption2(props, ref) {
5040
5102
  const { className, style: styleProp, children, ...other } = props;
5041
5103
  const { style: extracted, rest } = extractStyles(other);
@@ -5052,7 +5114,7 @@ var TableCaption = React29__namespace.forwardRef(
5052
5114
  );
5053
5115
  }
5054
5116
  );
5055
- var TableFooter = React29__namespace.forwardRef(
5117
+ var TableFooter = React30__namespace.forwardRef(
5056
5118
  function TableFooter2(props, ref) {
5057
5119
  const { className, style: styleProp, children, ...other } = props;
5058
5120
  const { style: extracted, rest } = extractStyles(other);
@@ -5069,7 +5131,7 @@ var TableFooter = React29__namespace.forwardRef(
5069
5131
  );
5070
5132
  }
5071
5133
  );
5072
- var TableScrollWrapper = React29__namespace.forwardRef(
5134
+ var TableScrollWrapper = React30__namespace.forwardRef(
5073
5135
  function TableScrollWrapper2(props, ref) {
5074
5136
  const { className, children, ...rest } = props;
5075
5137
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -5088,7 +5150,7 @@ var ROOT_SIZE_CLASSES = {
5088
5150
  md: "[--tabs-height:2.5rem] [--tabs-content-padding:1.5rem]",
5089
5151
  free: ""
5090
5152
  };
5091
- var TabsRoot = React29__namespace.forwardRef(
5153
+ var TabsRoot = React30__namespace.forwardRef(
5092
5154
  function TabsRoot2(props, ref) {
5093
5155
  const {
5094
5156
  variant = "solid",
@@ -5100,7 +5162,7 @@ var TabsRoot = React29__namespace.forwardRef(
5100
5162
  className,
5101
5163
  ...rest
5102
5164
  } = props;
5103
- const handleValueChange = React29__namespace.useCallback(
5165
+ const handleValueChange = React30__namespace.useCallback(
5104
5166
  (value) => {
5105
5167
  if (!onValueChange) return;
5106
5168
  onValueChange({ value });
@@ -5125,7 +5187,7 @@ var TabsRoot = React29__namespace.forwardRef(
5125
5187
  );
5126
5188
  }
5127
5189
  );
5128
- var TabsList = React29__namespace.forwardRef(
5190
+ var TabsList = React30__namespace.forwardRef(
5129
5191
  function TabsList2(props, ref) {
5130
5192
  const {
5131
5193
  className,
@@ -5179,7 +5241,7 @@ var TRIGGER_VARIANT_CLASSES = {
5179
5241
  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",
5180
5242
  unstyled: ""
5181
5243
  };
5182
- var TabsTrigger = React29__namespace.forwardRef(
5244
+ var TabsTrigger = React30__namespace.forwardRef(
5183
5245
  function TabsTrigger2(props, ref) {
5184
5246
  const {
5185
5247
  className,
@@ -5199,7 +5261,7 @@ var TabsTrigger = React29__namespace.forwardRef(
5199
5261
  visibility: _visibility,
5200
5262
  ...rest
5201
5263
  } = props;
5202
- const internalRef = React29__namespace.useRef(null);
5264
+ const internalRef = React30__namespace.useRef(null);
5203
5265
  const mergedRef = useMergedRef(ref, internalRef);
5204
5266
  const { variant, size, fitted } = useTabsContext(internalRef);
5205
5267
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -5219,7 +5281,7 @@ var TabsTrigger = React29__namespace.forwardRef(
5219
5281
  );
5220
5282
  }
5221
5283
  );
5222
- var TabsContent = React29__namespace.forwardRef(
5284
+ var TabsContent = React30__namespace.forwardRef(
5223
5285
  function TabsContent2(props, ref) {
5224
5286
  const { className, padding: _padding, ...rest } = props;
5225
5287
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -5253,8 +5315,8 @@ var TabsCounter = ({ count }) => {
5253
5315
  );
5254
5316
  };
5255
5317
  function useTabsContext(triggerRef) {
5256
- const [ctx, setCtx] = React29__namespace.useState({ variant: "solid", size: "md", fitted: false });
5257
- React29__namespace.useEffect(() => {
5318
+ const [ctx, setCtx] = React30__namespace.useState({ variant: "solid", size: "md", fitted: false });
5319
+ React30__namespace.useEffect(() => {
5258
5320
  const el = triggerRef.current;
5259
5321
  if (!el) return;
5260
5322
  const root = el.closest("[data-variant]");
@@ -5268,7 +5330,7 @@ function useTabsContext(triggerRef) {
5268
5330
  return ctx;
5269
5331
  }
5270
5332
  function useMergedRef(...refs) {
5271
- return React29__namespace.useCallback(
5333
+ return React30__namespace.useCallback(
5272
5334
  (instance) => {
5273
5335
  for (const ref of refs) {
5274
5336
  if (!ref) continue;
@@ -5306,7 +5368,7 @@ var TAG_SELECTED_CLASSES = [
5306
5368
  "hover:opacity-76"
5307
5369
  ].join(" ");
5308
5370
  var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
5309
- var Tag = React29__namespace.forwardRef(
5371
+ var Tag = React30__namespace.forwardRef(
5310
5372
  function Tag2(props, ref) {
5311
5373
  const {
5312
5374
  variant,
@@ -5393,14 +5455,22 @@ var TEXTAREA_VARIANT_CLASSES = {
5393
5455
  filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
5394
5456
  unstyled: "border-0 bg-transparent p-0"
5395
5457
  };
5396
- var Textarea = React29__namespace.default.forwardRef(
5397
- ({ size = "md", variant = "outline", className, ...rest }, ref) => {
5458
+ var Textarea = React30__namespace.default.forwardRef(
5459
+ ({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
5460
+ const handleChange = React30__namespace.default.useCallback(
5461
+ (event) => {
5462
+ onChange?.(event);
5463
+ onChangeText?.(event.target.value);
5464
+ },
5465
+ [onChange, onChangeText]
5466
+ );
5398
5467
  return /* @__PURE__ */ jsxRuntime.jsx(
5399
5468
  "textarea",
5400
5469
  {
5401
5470
  ref,
5402
5471
  className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
5403
- ...rest
5472
+ ...rest,
5473
+ onChange: handleChange
5404
5474
  }
5405
5475
  );
5406
5476
  }
@@ -5529,7 +5599,7 @@ function QuoteCell({ value, highlight, align = "right", onClick, className }) {
5529
5599
  }
5530
5600
  var CALL_HEADERS = ["Bid", "Ask", "Last", "Vol", "OI", "IV", "Delta"];
5531
5601
  var PUT_HEADERS = ["Delta", "IV", "OI", "Vol", "Last", "Ask", "Bid"];
5532
- var OptionChain = React29__namespace.forwardRef(
5602
+ var OptionChain = React30__namespace.forwardRef(
5533
5603
  function OptionChain2(props, ref) {
5534
5604
  const {
5535
5605
  symbol: _symbol,
@@ -5540,7 +5610,7 @@ var OptionChain = React29__namespace.forwardRef(
5540
5610
  className,
5541
5611
  ...rest
5542
5612
  } = props;
5543
- const handleClick = React29__namespace.useCallback(
5613
+ const handleClick = React30__namespace.useCallback(
5544
5614
  (quote, type, strike) => {
5545
5615
  if (!quote || !onSelectContract) return;
5546
5616
  onSelectContract({
@@ -5720,7 +5790,7 @@ function GreekItem({ def, value, compact }) {
5720
5790
  }
5721
5791
  );
5722
5792
  }
5723
- var GreeksDisplay = React29__namespace.forwardRef(
5793
+ var GreeksDisplay = React30__namespace.forwardRef(
5724
5794
  function GreeksDisplay2(props, ref) {
5725
5795
  const {
5726
5796
  delta,
@@ -5951,7 +6021,7 @@ function LegRow({ leg, index, strikes, expirations, removable, onChange, onRemov
5951
6021
  )
5952
6022
  ] });
5953
6023
  }
5954
- var StrategyBuilder = React29__namespace.forwardRef(
6024
+ var StrategyBuilder = React30__namespace.forwardRef(
5955
6025
  function StrategyBuilder2(props, ref) {
5956
6026
  const {
5957
6027
  underlying,
@@ -5963,12 +6033,12 @@ var StrategyBuilder = React29__namespace.forwardRef(
5963
6033
  ...rest
5964
6034
  } = props;
5965
6035
  const defaultExp = expirations[0] ?? "";
5966
- const [strategyType, setStrategyType] = React29__namespace.useState("bull_call_spread");
5967
- const [legs, setLegs] = React29__namespace.useState(() => {
6036
+ const [strategyType, setStrategyType] = React30__namespace.useState("bull_call_spread");
6037
+ const [legs, setLegs] = React30__namespace.useState(() => {
5968
6038
  const preset = STRATEGY_PRESETS.find((p) => p.value === "bull_call_spread");
5969
6039
  return preset ? preset.buildLegs(strikes, spotPrice, defaultExp) : [];
5970
6040
  });
5971
- const handleStrategyChange = React29__namespace.useCallback(
6041
+ const handleStrategyChange = React30__namespace.useCallback(
5972
6042
  (e) => {
5973
6043
  const type = e.target.value;
5974
6044
  setStrategyType(type);
@@ -5979,7 +6049,7 @@ var StrategyBuilder = React29__namespace.forwardRef(
5979
6049
  },
5980
6050
  [strikes, spotPrice, defaultExp]
5981
6051
  );
5982
- const handleLegChange = React29__namespace.useCallback(
6052
+ const handleLegChange = React30__namespace.useCallback(
5983
6053
  (index, leg) => {
5984
6054
  setLegs((prev) => {
5985
6055
  const next = [...prev];
@@ -5989,13 +6059,13 @@ var StrategyBuilder = React29__namespace.forwardRef(
5989
6059
  },
5990
6060
  []
5991
6061
  );
5992
- const handleLegRemove = React29__namespace.useCallback(
6062
+ const handleLegRemove = React30__namespace.useCallback(
5993
6063
  (index) => {
5994
6064
  setLegs((prev) => prev.filter((_, i) => i !== index));
5995
6065
  },
5996
6066
  []
5997
6067
  );
5998
- const handleAddLeg = React29__namespace.useCallback(() => {
6068
+ const handleAddLeg = React30__namespace.useCallback(() => {
5999
6069
  if (legs.length >= 4) return;
6000
6070
  const atm = findATM(strikes, spotPrice);
6001
6071
  setLegs((prev) => [
@@ -6003,14 +6073,14 @@ var StrategyBuilder = React29__namespace.forwardRef(
6003
6073
  { action: "buy", type: "call", strike: atm, expiration: defaultExp, quantity: 1 }
6004
6074
  ]);
6005
6075
  }, [legs.length, strikes, spotPrice, defaultExp]);
6006
- const netPremium = React29__namespace.useMemo(() => {
6076
+ const netPremium = React30__namespace.useMemo(() => {
6007
6077
  return legs.reduce((sum, leg) => {
6008
6078
  if (leg.premium === void 0) return sum;
6009
6079
  const sign = leg.action === "buy" ? -1 : 1;
6010
6080
  return sum + sign * leg.premium * leg.quantity;
6011
6081
  }, 0);
6012
6082
  }, [legs]);
6013
- const handleSubmit = React29__namespace.useCallback(() => {
6083
+ const handleSubmit = React30__namespace.useCallback(() => {
6014
6084
  if (!onSubmit || legs.length === 0) return;
6015
6085
  onSubmit({
6016
6086
  type: strategyType,
@@ -6131,7 +6201,7 @@ function buildPath(points, vb, width, height) {
6131
6201
  return parts.join(" ");
6132
6202
  }
6133
6203
  var LEG_COLORS = ["#6366f1", "#f59e0b", "#ec4899", "#06b6d4"];
6134
- var PnlDiagram = React29__namespace.forwardRef(
6204
+ var PnlDiagram = React30__namespace.forwardRef(
6135
6205
  function PnlDiagram2(props, ref) {
6136
6206
  const {
6137
6207
  legs,
@@ -6140,10 +6210,10 @@ var PnlDiagram = React29__namespace.forwardRef(
6140
6210
  className,
6141
6211
  ...rest
6142
6212
  } = props;
6143
- const containerRef = React29__namespace.useRef(null);
6144
- const [hoverX, setHoverX] = React29__namespace.useState(null);
6145
- const [dims, setDims] = React29__namespace.useState({ width: 600, height: 240 });
6146
- React29__namespace.useEffect(() => {
6213
+ const containerRef = React30__namespace.useRef(null);
6214
+ const [hoverX, setHoverX] = React30__namespace.useState(null);
6215
+ const [dims, setDims] = React30__namespace.useState({ width: 600, height: 240 });
6216
+ React30__namespace.useEffect(() => {
6147
6217
  const el = containerRef.current;
6148
6218
  if (!el) return;
6149
6219
  const observer = new ResizeObserver((entries) => {
@@ -6166,7 +6236,7 @@ var PnlDiagram = React29__namespace.forwardRef(
6166
6236
  const xMax = maxStrike + range * 0.3;
6167
6237
  const SAMPLES = 200;
6168
6238
  const step = (xMax - xMin) / SAMPLES;
6169
- const combinedPoints = React29__namespace.useMemo(() => {
6239
+ const combinedPoints = React30__namespace.useMemo(() => {
6170
6240
  const pts = [];
6171
6241
  for (let i = 0; i <= SAMPLES; i++) {
6172
6242
  const price = xMin + i * step;
@@ -6174,7 +6244,7 @@ var PnlDiagram = React29__namespace.forwardRef(
6174
6244
  }
6175
6245
  return pts;
6176
6246
  }, [legs, multiplier, xMin, step]);
6177
- const legPointSets = React29__namespace.useMemo(() => {
6247
+ const legPointSets = React30__namespace.useMemo(() => {
6178
6248
  return legs.map((leg) => {
6179
6249
  const pts = [];
6180
6250
  for (let i = 0; i <= SAMPLES; i++) {
@@ -6195,7 +6265,7 @@ var PnlDiagram = React29__namespace.forwardRef(
6195
6265
  const chartH = height - PADDING.top - PADDING.bottom;
6196
6266
  const scaleX = (x) => PADDING.left + (x - vb.xMin) / (vb.xMax - vb.xMin) * chartW;
6197
6267
  const scaleY = (y) => PADDING.top + chartH - (y - vb.yMin) / (vb.yMax - vb.yMin) * chartH;
6198
- const breakevens = React29__namespace.useMemo(() => {
6268
+ const breakevens = React30__namespace.useMemo(() => {
6199
6269
  const pts = [];
6200
6270
  for (let i = 1; i < combinedPoints.length; i++) {
6201
6271
  const prev = combinedPoints[i - 1];
@@ -6212,7 +6282,7 @@ var PnlDiagram = React29__namespace.forwardRef(
6212
6282
  const maxGainPoint = combinedPoints.find((p) => p.y === maxGain);
6213
6283
  const maxLossPoint = combinedPoints.find((p) => p.y === maxLoss);
6214
6284
  const zeroY = scaleY(0);
6215
- const handleMouseMove = React29__namespace.useCallback(
6285
+ const handleMouseMove = React30__namespace.useCallback(
6216
6286
  (e) => {
6217
6287
  const rect = e.currentTarget.getBoundingClientRect();
6218
6288
  const mouseX = e.clientX - rect.left;
@@ -6225,7 +6295,7 @@ var PnlDiagram = React29__namespace.forwardRef(
6225
6295
  },
6226
6296
  [vb.xMin, vb.xMax, chartW]
6227
6297
  );
6228
- const handleMouseLeave = React29__namespace.useCallback(() => setHoverX(null), []);
6298
+ const handleMouseLeave = React30__namespace.useCallback(() => setHoverX(null), []);
6229
6299
  const hoverPnl = hoverX !== null ? calcTotalPnl(legs, hoverX, multiplier) : null;
6230
6300
  buildPath(
6231
6301
  combinedPoints.map((p) => ({ x: scaleX(p.x), y: scaleY(p.y) })).map((p) => ({ x: p.x - PADDING.left, y: p.y - PADDING.top })),
@@ -6529,7 +6599,7 @@ function formatDate(date) {
6529
6599
  const d = new Date(date);
6530
6600
  return d.toLocaleDateString("en-US", { month: "short", day: "numeric" });
6531
6601
  }
6532
- var OptionPositionCard = React29__namespace.forwardRef(
6602
+ var OptionPositionCard = React30__namespace.forwardRef(
6533
6603
  function OptionPositionCard2(props, ref) {
6534
6604
  const {
6535
6605
  position,
@@ -6691,7 +6761,7 @@ function ExpirationPill({ exp, isSelected, onClick }) {
6691
6761
  }
6692
6762
  );
6693
6763
  }
6694
- var ExpirationSelector = React29__namespace.forwardRef(
6764
+ var ExpirationSelector = React30__namespace.forwardRef(
6695
6765
  function ExpirationSelector2(props, ref) {
6696
6766
  const {
6697
6767
  expirations,
@@ -6701,8 +6771,8 @@ var ExpirationSelector = React29__namespace.forwardRef(
6701
6771
  className,
6702
6772
  ...rest
6703
6773
  } = props;
6704
- const scrollRef = React29__namespace.useRef(null);
6705
- React29__namespace.useEffect(() => {
6774
+ const scrollRef = React30__namespace.useRef(null);
6775
+ React30__namespace.useEffect(() => {
6706
6776
  const container = scrollRef.current;
6707
6777
  if (!container) return;
6708
6778
  const selectedEl = container.querySelector('[data-selected="true"]');
@@ -6784,7 +6854,7 @@ var bankColors = {
6784
6854
  divider: "#222222",
6785
6855
  disabled: "#444444"
6786
6856
  };
6787
- var BankCard = core.styled(core.View, {
6857
+ var BankCard = gui.styled(gui.View, {
6788
6858
  name: "BankCard",
6789
6859
  backgroundColor: bankColors.card,
6790
6860
  borderRadius: 24,
@@ -6805,7 +6875,7 @@ var BankCard = core.styled(core.View, {
6805
6875
  size: "md"
6806
6876
  }
6807
6877
  });
6808
- var BankInput = core.styled(core.Text, {
6878
+ var BankInput = gui.styled(gui.Text, {
6809
6879
  name: "BankInput",
6810
6880
  render: "input",
6811
6881
  backgroundColor: bankColors.input,
@@ -6841,7 +6911,7 @@ var BankInput = core.styled(core.Text, {
6841
6911
  size: "md"
6842
6912
  }
6843
6913
  });
6844
- var BankButton = core.styled(core.View, {
6914
+ var BankButton = gui.styled(gui.View, {
6845
6915
  name: "BankButton",
6846
6916
  render: "button",
6847
6917
  backgroundColor: bankColors.accent,
@@ -6886,7 +6956,7 @@ var BankButton = core.styled(core.View, {
6886
6956
  variant: "primary"
6887
6957
  }
6888
6958
  });
6889
- var BankButtonText = core.styled(core.Text, {
6959
+ var BankButtonText = gui.styled(gui.Text, {
6890
6960
  name: "BankButtonText",
6891
6961
  color: "#000000",
6892
6962
  fontSize: 16,
@@ -6900,7 +6970,7 @@ var BankButtonText = core.styled(core.Text, {
6900
6970
  }
6901
6971
  }
6902
6972
  });
6903
- var BankHeading = core.styled(core.Text, {
6973
+ var BankHeading = gui.styled(gui.Text, {
6904
6974
  name: "BankHeading",
6905
6975
  color: bankColors.text,
6906
6976
  fontWeight: "700",
@@ -6917,7 +6987,7 @@ var BankHeading = core.styled(core.Text, {
6917
6987
  size: "lg"
6918
6988
  }
6919
6989
  });
6920
- var BankText = core.styled(core.Text, {
6990
+ var BankText = gui.styled(gui.Text, {
6921
6991
  name: "BankText",
6922
6992
  color: bankColors.textMuted,
6923
6993
  fontSize: 16,
@@ -6941,13 +7011,13 @@ function BankField({
6941
7011
  error,
6942
7012
  children
6943
7013
  }) {
6944
- return /* @__PURE__ */ jsxRuntime.jsxs(core.View, { gap: 8, width: "100%", children: [
7014
+ return /* @__PURE__ */ jsxRuntime.jsxs(gui.View, { gap: 8, width: "100%", children: [
6945
7015
  label && /* @__PURE__ */ jsxRuntime.jsx(BankText, { variant: "label", children: label }),
6946
7016
  children,
6947
7017
  error && /* @__PURE__ */ jsxRuntime.jsx(BankText, { variant: "error", children: error })
6948
7018
  ] });
6949
7019
  }
6950
- var BankAlert = core.styled(core.View, {
7020
+ var BankAlert = gui.styled(gui.View, {
6951
7021
  name: "BankAlert",
6952
7022
  borderRadius: 12,
6953
7023
  padding: 16,
@@ -6966,7 +7036,7 @@ var BankAlert = core.styled(core.View, {
6966
7036
  }
6967
7037
  }
6968
7038
  });
6969
- var BankAlertText = core.styled(core.Text, {
7039
+ var BankAlertText = gui.styled(gui.Text, {
6970
7040
  name: "BankAlertText",
6971
7041
  fontSize: 14,
6972
7042
  variants: {
@@ -6976,7 +7046,7 @@ var BankAlertText = core.styled(core.Text, {
6976
7046
  }
6977
7047
  }
6978
7048
  });
6979
- var BankPinBox = core.styled(core.Text, {
7049
+ var BankPinBox = gui.styled(gui.Text, {
6980
7050
  name: "BankPinBox",
6981
7051
  render: "input",
6982
7052
  backgroundColor: bankColors.input,
@@ -6999,13 +7069,13 @@ var BankPinBox = core.styled(core.Text, {
6999
7069
  }
7000
7070
  }
7001
7071
  });
7002
- var BankDivider = core.styled(core.View, {
7072
+ var BankDivider = gui.styled(gui.View, {
7003
7073
  name: "BankDivider",
7004
7074
  height: 1,
7005
7075
  width: "100%",
7006
7076
  backgroundColor: bankColors.divider
7007
7077
  });
7008
- var BankPage = core.styled(core.View, {
7078
+ var BankPage = gui.styled(gui.View, {
7009
7079
  name: "BankPage",
7010
7080
  backgroundColor: bankColors.bg,
7011
7081
  minHeight: "100vh",
@@ -7074,6 +7144,7 @@ exports.IconButton = IconButton;
7074
7144
  exports.Image = Image2;
7075
7145
  exports.Input = Input;
7076
7146
  exports.InputGroup = InputGroup;
7147
+ exports.LUX_BRAND = LUX_BRAND;
7077
7148
  exports.Link = Link;
7078
7149
  exports.LinkBox = LinkBox;
7079
7150
  exports.LinkExternalIcon = LinkExternalIcon;
@@ -7092,6 +7163,7 @@ exports.MenuTrigger = MenuTrigger;
7092
7163
  exports.MenuTriggerItem = MenuTriggerItem;
7093
7164
  exports.OptionChain = OptionChain;
7094
7165
  exports.OptionPositionCard = OptionPositionCard;
7166
+ exports.PARS_GOLD = PARS_GOLD;
7095
7167
  exports.PinInput = PinInput;
7096
7168
  exports.PnlDiagram = PnlDiagram;
7097
7169
  exports.PopoverArrow = PopoverArrow;
@@ -7153,7 +7225,10 @@ exports.Tooltip = Tooltip;
7153
7225
  exports.bankColors = bankColors;
7154
7226
  exports.buttonVariants = buttonVariants;
7155
7227
  exports.cn = cn;
7228
+ exports.config = config;
7156
7229
  exports.createListCollection = createListCollection;
7230
+ exports.guiConfig = lux_config_default;
7231
+ exports.luxThemes = luxThemes;
7157
7232
  exports.toaster = toaster;
7158
7233
  exports.useAccordion = useAccordion;
7159
7234
  exports.useColorMode = useColorMode;