@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.
- package/dist/alert.cjs +2 -2
- package/dist/alert.js +1 -1
- package/dist/badge.cjs +6 -6
- package/dist/badge.js +1 -1
- package/dist/bank.cjs +13 -13
- package/dist/bank.d.cts +30 -23
- package/dist/bank.d.ts +30 -23
- package/dist/bank.js +1 -1
- package/dist/button.cjs +3 -3
- package/dist/button.js +1 -1
- package/dist/close-button.cjs +2 -2
- package/dist/close-button.js +1 -1
- package/dist/dialog.cjs +13 -14
- package/dist/dialog.d.cts +58 -5
- package/dist/dialog.d.ts +58 -5
- package/dist/dialog.js +1 -2
- package/dist/drawer.cjs +2 -2
- package/dist/drawer.js +1 -1
- package/dist/icon-button.cjs +2 -2
- package/dist/icon-button.js +1 -1
- package/dist/index.cjs +402 -327
- package/dist/index.d.cts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +360 -290
- package/dist/input.cjs +10 -2
- package/dist/input.d.cts +8 -0
- package/dist/input.d.ts +8 -0
- package/dist/input.js +10 -2
- package/dist/lux.config.cjs +56 -0
- package/dist/lux.config.d.cts +415 -0
- package/dist/lux.config.d.ts +415 -0
- package/dist/lux.config.js +48 -0
- package/dist/popover.cjs +8 -9
- package/dist/popover.js +1 -2
- package/dist/provider.cjs +68 -6
- package/dist/provider.d.cts +3 -2
- package/dist/provider.d.ts +3 -2
- package/dist/provider.js +64 -6
- package/dist/tag.cjs +7 -8
- package/dist/tag.js +1 -2
- package/dist/textarea.cjs +10 -2
- package/dist/textarea.d.cts +2 -0
- package/dist/textarea.d.ts +2 -0
- package/dist/textarea.js +10 -2
- package/dist/tooltip.cjs +6 -6
- package/dist/tooltip.js +1 -1
- package/package.json +24 -12
- package/src/bank.tsx +2 -2
- package/src/button.tsx +1 -1
- package/src/close-button.tsx +1 -1
- package/src/dialog.tsx +1 -1
- package/src/icon-button.tsx +1 -1
- package/src/index.ts +6 -0
- package/src/input.tsx +17 -1
- package/src/lux.config.ts +81 -0
- package/src/popover.tsx +1 -1
- package/src/provider.tsx +51 -12
- package/src/textarea.tsx +11 -1
- 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
|
|
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
|
-
|
|
66
|
-
|
|
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
|
|
72
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
225
|
-
const onValueChange =
|
|
278
|
+
const [value, setValue] = React30__namespace.useState([]);
|
|
279
|
+
const onValueChange = React30__namespace.useCallback(({ value: value2 }) => {
|
|
226
280
|
setValue(value2);
|
|
227
281
|
}, []);
|
|
228
|
-
const scrollToItemFromUrl =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 &&
|
|
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 &&
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
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 =
|
|
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 =
|
|
686
|
+
var AvatarGroupContext = React30__namespace.createContext({});
|
|
633
687
|
function useAvatarGroupContext() {
|
|
634
|
-
return
|
|
688
|
+
return React30__namespace.useContext(AvatarGroupContext);
|
|
635
689
|
}
|
|
636
|
-
var Avatar =
|
|
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 =
|
|
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 =
|
|
767
|
+
var AvatarGroup = React30__namespace.forwardRef(
|
|
714
768
|
function AvatarGroup2(props, ref) {
|
|
715
769
|
const { size, variant, borderless, className, ...rest } = props;
|
|
716
|
-
const contextValue =
|
|
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] =
|
|
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
|
-
|
|
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 =
|
|
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] =
|
|
769
|
-
const timeoutRef =
|
|
822
|
+
const [open, setOpen] = React30__namespace.useState(defaultOpen);
|
|
823
|
+
const timeoutRef = React30__namespace.useRef(null);
|
|
770
824
|
const isMobile = useIsMobile();
|
|
771
|
-
const handleOpenChange =
|
|
825
|
+
const handleOpenChange = React30__namespace.useCallback((nextOpen) => {
|
|
772
826
|
setOpen(nextOpen);
|
|
773
827
|
onOpenChange?.({ open: nextOpen });
|
|
774
828
|
}, [onOpenChange]);
|
|
775
|
-
const handleOpenChangeManual =
|
|
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 =
|
|
836
|
+
const handleClickAway = React30__namespace.useCallback(() => {
|
|
783
837
|
handleOpenChangeManual(false);
|
|
784
838
|
}, [handleOpenChangeManual]);
|
|
785
839
|
const triggerRef = usehooks.useClickAway(handleClickAway);
|
|
786
|
-
const handleTriggerClick =
|
|
840
|
+
const handleTriggerClick = React30__namespace.useCallback(() => {
|
|
787
841
|
handleOpenChangeManual(!open);
|
|
788
842
|
}, [handleOpenChangeManual, open]);
|
|
789
|
-
const handleContentClick =
|
|
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
|
-
|
|
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(
|
|
812
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
1282
|
-
const handleItemClick =
|
|
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 =
|
|
1288
|
-
return
|
|
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 =
|
|
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 =
|
|
1368
|
+
var CheckboxGroupContext = React30__namespace.createContext(null);
|
|
1315
1369
|
function useCheckboxGroupContext() {
|
|
1316
|
-
return
|
|
1370
|
+
return React30__namespace.useContext(CheckboxGroupContext);
|
|
1317
1371
|
}
|
|
1318
|
-
var CheckboxGroupBase =
|
|
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] =
|
|
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 =
|
|
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
|
-
|
|
1397
|
+
React30__namespace.useEffect(() => {
|
|
1344
1398
|
if (isControlled) {
|
|
1345
1399
|
setUncontrolledValue(controlledValue);
|
|
1346
1400
|
}
|
|
1347
1401
|
}, [isControlled, controlledValue]);
|
|
1348
|
-
const ctx =
|
|
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 =
|
|
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 =
|
|
1428
|
-
const setHiddenInputRef =
|
|
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] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
1801
|
-
|
|
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] =
|
|
1819
|
-
const handleClick =
|
|
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] =
|
|
1851
|
-
|
|
1904
|
+
const [isExpanded, setIsExpanded] = React30__namespace.default.useState(defaultExpanded);
|
|
1905
|
+
React30__namespace.default.useEffect(() => {
|
|
1852
1906
|
setIsExpanded(defaultExpanded);
|
|
1853
1907
|
}, [defaultExpanded]);
|
|
1854
|
-
const handleToggle =
|
|
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 =
|
|
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] =
|
|
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 =
|
|
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 =
|
|
1947
|
+
const toggleColorMode = React30__namespace.useCallback(() => {
|
|
1894
1948
|
setColorMode(colorMode === "dark" ? "light" : "dark");
|
|
1895
1949
|
}, [colorMode, setColorMode]);
|
|
1896
|
-
const ctx =
|
|
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 =
|
|
1957
|
+
const ctx = React30__namespace.useContext(ColorModeContext);
|
|
1904
1958
|
if (!ctx) {
|
|
1905
|
-
const [mode, setMode] =
|
|
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 =
|
|
2003
|
+
var DialogSizeContext = React30__namespace.createContext({ size: "md" });
|
|
1950
2004
|
function useDialogSizeContext() {
|
|
1951
|
-
return
|
|
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 =
|
|
2037
|
+
const handleOpenChange = React30__namespace.useCallback(
|
|
1984
2038
|
(nextOpen) => {
|
|
1985
2039
|
onOpenChange?.({ open: nextOpen });
|
|
1986
2040
|
},
|
|
1987
2041
|
[onOpenChange]
|
|
1988
2042
|
);
|
|
1989
|
-
const ctx =
|
|
2043
|
+
const ctx = React30__namespace.useMemo(() => ({ size }), [size]);
|
|
1990
2044
|
return /* @__PURE__ */ jsxRuntime.jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1991
|
-
|
|
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 =
|
|
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(
|
|
2071
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(gui.Dialog.Portal, { children: [
|
|
2018
2072
|
backdrop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2019
|
-
|
|
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
|
-
|
|
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 =
|
|
2112
|
+
var DialogCloseTrigger = React30__namespace.forwardRef(function DialogCloseTrigger2(props, ref) {
|
|
2059
2113
|
const { className, ...rest } = props;
|
|
2060
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2120
|
-
var DialogTitle =
|
|
2121
|
-
var DialogDescription =
|
|
2122
|
-
var DialogTrigger =
|
|
2123
|
-
var DialogActionTrigger =
|
|
2124
|
-
var DrawerPlacementContext =
|
|
2125
|
-
var DrawerSizeContext =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2182
|
-
const size =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2418
|
+
const child2 = React30__namespace.Children.only(children);
|
|
2365
2419
|
const isInputGroup = getComponentDisplayName(child2.type) === "InputGroup";
|
|
2366
2420
|
if (isInputGroup) {
|
|
2367
|
-
const inputElement2 =
|
|
2368
|
-
|
|
2421
|
+
const inputElement2 = React30__namespace.cloneElement(
|
|
2422
|
+
React30__namespace.Children.only(child2.props.children),
|
|
2369
2423
|
injectedProps2
|
|
2370
2424
|
);
|
|
2371
|
-
const groupInputElement =
|
|
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 =
|
|
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 =
|
|
2417
|
-
const clonedChild =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 ?
|
|
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 =
|
|
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] =
|
|
2773
|
-
const [error, setError] =
|
|
2774
|
-
const handleLoadError =
|
|
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 =
|
|
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 (
|
|
2786
|
-
return
|
|
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 (
|
|
2792
|
-
return
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2880
|
-
const endElementRef =
|
|
2881
|
-
const groupRef =
|
|
2882
|
-
const [inlinePaddings, setInlinePaddings] =
|
|
2883
|
-
const calculateInlinePaddings =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
3013
|
+
React30__namespace.Children.map(children, (child) => {
|
|
2952
3014
|
if (getComponentDisplayName2(child.type) !== "FieldInput") {
|
|
2953
3015
|
return child;
|
|
2954
3016
|
}
|
|
2955
|
-
return
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
3270
|
-
const values =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
3390
|
+
const handleFocus = React30__namespace.useCallback((e) => {
|
|
3329
3391
|
e.currentTarget.select();
|
|
3330
3392
|
}, []);
|
|
3331
|
-
const handleNoop =
|
|
3393
|
+
const handleNoop = React30__namespace.useCallback(() => {
|
|
3332
3394
|
}, []);
|
|
3333
|
-
const setInputRef =
|
|
3395
|
+
const setInputRef = React30__namespace.useCallback((index) => (el) => {
|
|
3334
3396
|
inputRefs.current[index] = el;
|
|
3335
3397
|
}, []);
|
|
3336
|
-
const onInputAtIndex =
|
|
3398
|
+
const onInputAtIndex = React30__namespace.useCallback((index) => (e) => {
|
|
3337
3399
|
handleInput(index, e);
|
|
3338
3400
|
}, [handleInput]);
|
|
3339
|
-
const onKeyDownAtIndex =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
3531
|
+
var PopoverTrigger = React30__namespace.forwardRef(function PopoverTrigger2(props, ref) {
|
|
3470
3532
|
const { asChild = true, ...rest } = props;
|
|
3471
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3533
|
+
return /* @__PURE__ */ jsxRuntime.jsx(gui.Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
|
|
3472
3534
|
});
|
|
3473
|
-
var PopoverContent =
|
|
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
|
-
|
|
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 =
|
|
3566
|
+
var PopoverArrow = React30__namespace.forwardRef(function PopoverArrow2(props, ref) {
|
|
3505
3567
|
const { className, ...rest } = props;
|
|
3506
3568
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3507
|
-
|
|
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 =
|
|
3578
|
+
var PopoverCloseTrigger = React30__namespace.forwardRef(function PopoverCloseTrigger2(props, ref) {
|
|
3517
3579
|
const { className, ...rest } = props;
|
|
3518
3580
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3519
|
-
|
|
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 =
|
|
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(
|
|
3597
|
+
return /* @__PURE__ */ jsxRuntime.jsx(gui.Popover.Close, { ref, ...rest, asChild: true, children });
|
|
3536
3598
|
});
|
|
3537
|
-
var PopoverBody =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
3769
|
+
var Ctx = React30__namespace.createContext({
|
|
3708
3770
|
value: 0,
|
|
3709
3771
|
size: "md",
|
|
3710
3772
|
colorPalette: "blue"
|
|
3711
3773
|
});
|
|
3712
|
-
var ProgressCircleRoot =
|
|
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 =
|
|
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 =
|
|
3801
|
+
var ProgressCircleRing = React30__namespace.forwardRef(function ProgressCircleRing2(props, ref) {
|
|
3740
3802
|
const { trackColor, cap, color, className, ...rest } = props;
|
|
3741
|
-
const { value, size: sizeKey } =
|
|
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 =
|
|
3858
|
+
var ProgressCircleValueText = React30__namespace.forwardRef(function ProgressCircleValueText2(props, ref) {
|
|
3797
3859
|
const { className, children, ...rest } = props;
|
|
3798
|
-
const { value, size: sizeKey } =
|
|
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 =
|
|
3843
|
-
var RadioGroupBase =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
3962
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
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 =
|
|
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 =
|
|
4032
|
+
const handleMouseEnter = React30__namespace.useCallback((index) => () => {
|
|
3971
4033
|
if (readOnly) return;
|
|
3972
4034
|
setHoveredIndex(index);
|
|
3973
4035
|
}, [readOnly]);
|
|
3974
|
-
const handleMouseLeave =
|
|
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(
|
|
4003
|
-
return { 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] =
|
|
4009
|
-
const handleChange =
|
|
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 =
|
|
4090
|
+
var SelectInternalContext = React30__namespace.createContext(null);
|
|
4029
4091
|
function useSelectInternalContext() {
|
|
4030
|
-
const ctx =
|
|
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 =
|
|
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] =
|
|
4129
|
+
const [internalValue, setInternalValue] = React30__namespace.useState(defaultValueArr ?? []);
|
|
4068
4130
|
const currentValue = valueProp ?? internalValue;
|
|
4069
|
-
const selectedItems =
|
|
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] =
|
|
4134
|
+
const [open, setOpen] = React30__namespace.useState(defaultOpen ?? false);
|
|
4073
4135
|
const isOpen = openProp ?? open;
|
|
4074
|
-
const handleOpenChange =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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] =
|
|
4361
|
-
const [inputValue, setInputValue] =
|
|
4362
|
-
const [value, setValue] =
|
|
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
|
-
|
|
4426
|
+
React30__namespace.useEffect(() => {
|
|
4365
4427
|
loadOptions(debouncedInputValue, value).then(setCollection);
|
|
4366
4428
|
}, [debouncedInputValue, loadOptions, value]);
|
|
4367
|
-
const handleFilterChange =
|
|
4429
|
+
const handleFilterChange = React30__namespace.useCallback((val) => {
|
|
4368
4430
|
setInputValue(val);
|
|
4369
4431
|
}, []);
|
|
4370
|
-
const handleValueChange =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
5008
|
-
const [isStuck, setIsStuck] =
|
|
5009
|
-
const handleScroll =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
5257
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] =
|
|
5967
|
-
const [legs, setLegs] =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
6144
|
-
const [hoverX, setHoverX] =
|
|
6145
|
-
const [dims, setDims] =
|
|
6146
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
6705
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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;
|