@luxfi/ui 7.4.0 → 7.4.3
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/avatar.cjs +7 -6
- package/dist/avatar.js +7 -5
- package/dist/badge.cjs +33 -35
- package/dist/badge.js +33 -35
- package/dist/bank.d.cts +3 -3
- package/dist/bank.d.ts +3 -3
- package/dist/checkbox.cjs +4 -4
- package/dist/checkbox.d.cts +3 -2
- package/dist/checkbox.d.ts +3 -2
- package/dist/checkbox.js +5 -4
- package/dist/chrome.cjs +960 -0
- package/dist/chrome.d.cts +93 -0
- package/dist/chrome.d.ts +93 -0
- package/dist/chrome.js +931 -0
- package/dist/drawer.cjs +86 -20
- package/dist/drawer.js +85 -19
- package/dist/expiration-selector.cjs +3 -2
- package/dist/expiration-selector.js +3 -2
- package/dist/greeks-display.cjs +6 -6
- package/dist/greeks-display.js +6 -6
- package/dist/gui.cjs +13 -0
- package/dist/gui.d.cts +2 -0
- package/dist/gui.d.ts +2 -0
- package/dist/gui.js +2 -0
- package/dist/heading.cjs +4 -2
- package/dist/heading.js +4 -2
- package/dist/iam.cjs +216 -0
- package/dist/iam.d.cts +65 -0
- package/dist/iam.d.ts +65 -0
- package/dist/iam.js +211 -0
- package/dist/icons.cjs +13 -0
- package/dist/icons.d.cts +1 -0
- package/dist/icons.d.ts +1 -0
- package/dist/icons.js +2 -0
- package/dist/identity.cjs +430 -0
- package/dist/identity.d.cts +64 -0
- package/dist/identity.d.ts +64 -0
- package/dist/identity.js +408 -0
- package/dist/index.cjs +1610 -836
- package/dist/index.d.cts +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +1587 -831
- package/dist/input.cjs +3 -1
- package/dist/input.d.cts +3 -5
- package/dist/input.d.ts +3 -5
- package/dist/input.js +3 -1
- package/dist/lux.config.cjs +23 -2
- package/dist/lux.config.d.cts +28 -10
- package/dist/lux.config.d.ts +28 -10
- package/dist/lux.config.js +23 -2
- package/dist/menu.cjs +4 -4
- package/dist/menu.js +4 -4
- package/dist/next.cjs +132 -0
- package/dist/next.d.cts +32 -0
- package/dist/next.d.ts +32 -0
- package/dist/next.js +129 -0
- package/dist/option-chain.cjs +1 -1
- package/dist/option-chain.js +1 -1
- package/dist/option-position.cjs +2 -1
- package/dist/option-position.js +2 -1
- package/dist/pnl-diagram.cjs +8 -6
- package/dist/pnl-diagram.js +8 -6
- package/dist/progress.cjs +7 -6
- package/dist/progress.js +7 -5
- package/dist/provider.cjs +146 -4
- package/dist/provider.d.cts +15 -3
- package/dist/provider.d.ts +15 -3
- package/dist/provider.js +146 -5
- package/dist/radio.cjs +9 -7
- package/dist/radio.js +10 -7
- package/dist/separator.cjs +3 -1
- package/dist/separator.js +3 -1
- package/dist/slider.cjs +28 -16
- package/dist/slider.js +28 -15
- package/dist/strategy-builder.cjs +2 -1
- package/dist/strategy-builder.js +2 -1
- package/dist/switch.cjs +11 -12
- package/dist/switch.js +12 -12
- package/dist/tag.cjs +34 -36
- package/dist/tag.js +33 -35
- package/dist/textarea.cjs +3 -1
- package/dist/textarea.js +3 -1
- package/dist/tooltip.cjs +28 -30
- package/dist/tooltip.js +27 -29
- package/dist/use-narrow.cjs +46 -0
- package/dist/use-narrow.d.cts +12 -0
- package/dist/use-narrow.d.ts +12 -0
- package/dist/use-narrow.js +20 -0
- package/dist/vite.cjs +109 -0
- package/dist/vite.d.cts +29 -0
- package/dist/vite.d.ts +29 -0
- package/dist/vite.js +107 -0
- package/dist/white-label.cjs +142 -0
- package/dist/white-label.d.cts +59 -0
- package/dist/white-label.d.ts +59 -0
- package/dist/white-label.js +134 -0
- package/package.json +85 -19
- package/src/avatar.tsx +22 -16
- package/src/checkbox.tsx +15 -10
- package/src/chrome.tsx +459 -0
- package/src/drawer.tsx +83 -10
- package/src/engine.ts +130 -0
- package/src/expiration-selector.tsx +3 -2
- package/src/greeks-display.tsx +9 -6
- package/src/gui.ts +17 -0
- package/src/heading.tsx +12 -8
- package/src/iam.ts +170 -0
- package/src/icons.ts +18 -0
- package/src/identity.tsx +318 -0
- package/src/index.ts +44 -1
- package/src/input.tsx +13 -9
- package/src/lux.config.ts +16 -15
- package/src/menu.tsx +4 -4
- package/src/next.ts +89 -0
- package/src/option-chain.tsx +1 -1
- package/src/option-position.tsx +2 -1
- package/src/pnl-diagram.tsx +11 -6
- package/src/progress.tsx +15 -8
- package/src/provider.tsx +48 -7
- package/src/radio.tsx +15 -11
- package/src/separator.tsx +8 -3
- package/src/slider.tsx +35 -19
- package/src/strategy-builder.tsx +3 -2
- package/src/switch.tsx +17 -16
- package/src/textarea.tsx +8 -4
- package/src/tooltip.tsx +15 -24
- package/src/use-narrow.ts +40 -0
- package/src/vite.ts +80 -0
- package/src/white-label.ts +254 -0
- package/tokens.css +613 -319
- package/src/tokens.css +0 -438
package/dist/switch.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import
|
|
2
|
+
import { Switch } from '@hanzo/gui';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -14,22 +14,22 @@ var NOOP = () => {
|
|
|
14
14
|
var SIZE_CLASSES = {
|
|
15
15
|
sm: {
|
|
16
16
|
root: "h-4 w-7",
|
|
17
|
-
thumb: "h-3 w-3
|
|
17
|
+
thumb: "h-3 w-3",
|
|
18
18
|
label: "text-xs"
|
|
19
19
|
},
|
|
20
20
|
md: {
|
|
21
21
|
root: "h-5 w-9",
|
|
22
|
-
thumb: "h-4 w-4
|
|
22
|
+
thumb: "h-4 w-4",
|
|
23
23
|
label: "text-sm"
|
|
24
24
|
},
|
|
25
25
|
lg: {
|
|
26
26
|
root: "h-6 w-11",
|
|
27
|
-
thumb: "h-5 w-5
|
|
27
|
+
thumb: "h-5 w-5",
|
|
28
28
|
label: "text-base"
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
31
|
var SwitchBase = React.forwardRef(
|
|
32
|
-
function Switch(props, ref) {
|
|
32
|
+
function Switch$1(props, ref) {
|
|
33
33
|
const {
|
|
34
34
|
inputProps,
|
|
35
35
|
children,
|
|
@@ -55,9 +55,7 @@ var SwitchBase = React.forwardRef(
|
|
|
55
55
|
if (!isControlled) {
|
|
56
56
|
setInternalChecked(nextChecked);
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
onCheckedChange({ checked: nextChecked });
|
|
60
|
-
}
|
|
58
|
+
onCheckedChange?.({ checked: nextChecked });
|
|
61
59
|
},
|
|
62
60
|
[isControlled, onCheckedChange]
|
|
63
61
|
);
|
|
@@ -78,8 +76,9 @@ var SwitchBase = React.forwardRef(
|
|
|
78
76
|
...rest,
|
|
79
77
|
children: [
|
|
80
78
|
/* @__PURE__ */ jsxs(
|
|
81
|
-
|
|
79
|
+
Switch,
|
|
82
80
|
{
|
|
81
|
+
unstyled: true,
|
|
83
82
|
checked: checkedState,
|
|
84
83
|
onCheckedChange: handleCheckedChange,
|
|
85
84
|
disabled,
|
|
@@ -94,12 +93,13 @@ var SwitchBase = React.forwardRef(
|
|
|
94
93
|
children: [
|
|
95
94
|
trackLabel && /* @__PURE__ */ jsx("span", { className: "absolute inset-0 flex items-center justify-center text-[8px] font-bold text-white pointer-events-none", children: checkedState ? trackLabel.on : trackLabel.off }),
|
|
96
95
|
/* @__PURE__ */ jsx(
|
|
97
|
-
|
|
96
|
+
Switch.Thumb,
|
|
98
97
|
{
|
|
98
|
+
unstyled: true,
|
|
99
|
+
"data-thumb": true,
|
|
100
|
+
transition: "quicker",
|
|
99
101
|
className: cn(
|
|
100
102
|
"block rounded-full bg-white shadow-sm",
|
|
101
|
-
"transition-transform duration-200",
|
|
102
|
-
"translate-x-0.5",
|
|
103
103
|
sizeClasses.thumb
|
|
104
104
|
),
|
|
105
105
|
children: thumbLabel && /* @__PURE__ */ jsx("span", { className: "flex items-center justify-center h-full w-full text-[8px]", children: checkedState ? thumbLabel.on : thumbLabel.off })
|
package/dist/tag.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var gui = require('@hanzo/gui');
|
|
@@ -26,7 +26,7 @@ function _interopNamespace(e) {
|
|
|
26
26
|
return Object.freeze(n);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
30
30
|
|
|
31
31
|
// src/tag.tsx
|
|
32
32
|
function cn(...inputs) {
|
|
@@ -67,7 +67,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
67
67
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
68
68
|
"disabled:opacity-40"
|
|
69
69
|
].join(" ");
|
|
70
|
-
var CloseButton =
|
|
70
|
+
var CloseButton = React4__namespace.forwardRef(function CloseButton2(props, ref) {
|
|
71
71
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
72
72
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
73
73
|
CloseButtonFrame,
|
|
@@ -214,7 +214,7 @@ var SKELETON_CLASSES = [
|
|
|
214
214
|
"bg-[length:200%_100%]"
|
|
215
215
|
].join(" ");
|
|
216
216
|
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
217
|
-
var Skeleton =
|
|
217
|
+
var Skeleton = React4__namespace.forwardRef(
|
|
218
218
|
function Skeleton2(props, ref) {
|
|
219
219
|
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
220
220
|
const shimStyle = shimToStyle(props);
|
|
@@ -223,10 +223,10 @@ var Skeleton = React3__namespace.forwardRef(
|
|
|
223
223
|
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
224
224
|
const htmlRest = stripShims(allRest);
|
|
225
225
|
if (!loading) {
|
|
226
|
-
if (asChild &&
|
|
226
|
+
if (asChild && React4__namespace.isValidElement(children)) return children;
|
|
227
227
|
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
228
228
|
}
|
|
229
|
-
if (asChild &&
|
|
229
|
+
if (asChild && React4__namespace.isValidElement(children)) {
|
|
230
230
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
231
231
|
Component,
|
|
232
232
|
{
|
|
@@ -252,7 +252,7 @@ var Skeleton = React3__namespace.forwardRef(
|
|
|
252
252
|
);
|
|
253
253
|
}
|
|
254
254
|
);
|
|
255
|
-
|
|
255
|
+
React4__namespace.forwardRef(
|
|
256
256
|
function SkeletonCircle2(props, ref) {
|
|
257
257
|
const { size = 40, loading = true, className, ...rest } = props;
|
|
258
258
|
const dimension = typeof size === "number" ? `${size}px` : size;
|
|
@@ -268,7 +268,7 @@ React3__namespace.forwardRef(
|
|
|
268
268
|
);
|
|
269
269
|
}
|
|
270
270
|
);
|
|
271
|
-
|
|
271
|
+
React4__namespace.forwardRef(
|
|
272
272
|
function SkeletonText2(props, ref) {
|
|
273
273
|
const { noOfLines = 3, loading = true, className, ...rest } = props;
|
|
274
274
|
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(
|
|
@@ -281,26 +281,24 @@ React3__namespace.forwardRef(
|
|
|
281
281
|
)) });
|
|
282
282
|
}
|
|
283
283
|
);
|
|
284
|
-
var
|
|
285
|
-
function
|
|
286
|
-
const [
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
return () => mql.removeEventListener("change", handler);
|
|
296
|
-
}, []);
|
|
297
|
-
return isMobile;
|
|
284
|
+
var TOUCH_PX = 1024;
|
|
285
|
+
function useBelow(px) {
|
|
286
|
+
const [below, setBelow] = React4__namespace.useState(false);
|
|
287
|
+
React4__namespace.useEffect(() => {
|
|
288
|
+
const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
|
|
289
|
+
const apply = () => setBelow(mql.matches);
|
|
290
|
+
apply();
|
|
291
|
+
mql.addEventListener("change", apply);
|
|
292
|
+
return () => mql.removeEventListener("change", apply);
|
|
293
|
+
}, [px]);
|
|
294
|
+
return below;
|
|
298
295
|
}
|
|
296
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
299
297
|
function mapPlacement(p) {
|
|
300
298
|
if (!p) return void 0;
|
|
301
299
|
return p;
|
|
302
300
|
}
|
|
303
|
-
var Tooltip =
|
|
301
|
+
var Tooltip = React4__namespace.forwardRef(
|
|
304
302
|
function Tooltip2(props, ref) {
|
|
305
303
|
const {
|
|
306
304
|
showArrow: showArrowProp,
|
|
@@ -319,28 +317,28 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
319
317
|
interactive,
|
|
320
318
|
positioning
|
|
321
319
|
} = props;
|
|
322
|
-
const [open, setOpen] =
|
|
323
|
-
const timeoutRef =
|
|
324
|
-
const isMobile =
|
|
325
|
-
const handleOpenChange =
|
|
320
|
+
const [open, setOpen] = React4__namespace.useState(defaultOpen);
|
|
321
|
+
const timeoutRef = React4__namespace.useRef(null);
|
|
322
|
+
const isMobile = useIsTouch();
|
|
323
|
+
const handleOpenChange = React4__namespace.useCallback((nextOpen) => {
|
|
326
324
|
setOpen(nextOpen);
|
|
327
325
|
onOpenChange?.({ open: nextOpen });
|
|
328
326
|
}, [onOpenChange]);
|
|
329
|
-
const handleOpenChangeManual =
|
|
327
|
+
const handleOpenChangeManual = React4__namespace.useCallback((nextOpen) => {
|
|
330
328
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
331
329
|
timeoutRef.current = window.setTimeout(() => {
|
|
332
330
|
setOpen(nextOpen);
|
|
333
331
|
onOpenChange?.({ open: nextOpen });
|
|
334
332
|
}, nextOpen ? openDelay : closeDelay);
|
|
335
333
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
336
|
-
const handleClickAway =
|
|
337
|
-
handleOpenChangeManual(false);
|
|
338
|
-
}, [handleOpenChangeManual]);
|
|
334
|
+
const handleClickAway = React4__namespace.useCallback(() => {
|
|
335
|
+
if (open) handleOpenChangeManual(false);
|
|
336
|
+
}, [open, handleOpenChangeManual]);
|
|
339
337
|
const triggerRef = usehooks.useClickAway(handleClickAway);
|
|
340
|
-
const handleTriggerClick =
|
|
338
|
+
const handleTriggerClick = React4__namespace.useCallback(() => {
|
|
341
339
|
handleOpenChangeManual(!open);
|
|
342
340
|
}, [handleOpenChangeManual, open]);
|
|
343
|
-
const handleContentClick =
|
|
341
|
+
const handleContentClick = React4__namespace.useCallback((event) => {
|
|
344
342
|
event.stopPropagation();
|
|
345
343
|
if (interactive) {
|
|
346
344
|
const closestLink = event.target?.closest("a");
|
|
@@ -349,7 +347,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
349
347
|
}
|
|
350
348
|
}
|
|
351
349
|
}, [interactive, handleOpenChangeManual]);
|
|
352
|
-
|
|
350
|
+
React4__namespace.useEffect(() => {
|
|
353
351
|
return () => {
|
|
354
352
|
if (timeoutRef.current) {
|
|
355
353
|
clearTimeout(timeoutRef.current);
|
|
@@ -375,7 +373,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
375
373
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
376
374
|
gui.Tooltip.Trigger,
|
|
377
375
|
{
|
|
378
|
-
ref:
|
|
376
|
+
ref: triggerRef,
|
|
379
377
|
asChild: true,
|
|
380
378
|
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
381
379
|
...triggerProps,
|
|
@@ -440,7 +438,7 @@ var TAG_SELECTED_CLASSES = [
|
|
|
440
438
|
"hover:opacity-76"
|
|
441
439
|
].join(" ");
|
|
442
440
|
var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
|
|
443
|
-
var Tag =
|
|
441
|
+
var Tag = React4__namespace.forwardRef(
|
|
444
442
|
function Tag2(props, ref) {
|
|
445
443
|
const {
|
|
446
444
|
variant,
|
package/dist/tag.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
2
|
+
import * as React4 from 'react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { styled, View, TooltipGroup, Tooltip as Tooltip$1 } from '@hanzo/gui';
|
|
@@ -45,7 +45,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
45
45
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
46
46
|
"disabled:opacity-40"
|
|
47
47
|
].join(" ");
|
|
48
|
-
var CloseButton =
|
|
48
|
+
var CloseButton = React4.forwardRef(function CloseButton2(props, ref) {
|
|
49
49
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
50
50
|
return /* @__PURE__ */ jsx(
|
|
51
51
|
CloseButtonFrame,
|
|
@@ -192,7 +192,7 @@ var SKELETON_CLASSES = [
|
|
|
192
192
|
"bg-[length:200%_100%]"
|
|
193
193
|
].join(" ");
|
|
194
194
|
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
195
|
-
var Skeleton =
|
|
195
|
+
var Skeleton = React4.forwardRef(
|
|
196
196
|
function Skeleton2(props, ref) {
|
|
197
197
|
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
198
198
|
const shimStyle = shimToStyle(props);
|
|
@@ -201,10 +201,10 @@ var Skeleton = React3.forwardRef(
|
|
|
201
201
|
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
202
202
|
const htmlRest = stripShims(allRest);
|
|
203
203
|
if (!loading) {
|
|
204
|
-
if (asChild &&
|
|
204
|
+
if (asChild && React4.isValidElement(children)) return children;
|
|
205
205
|
return /* @__PURE__ */ jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
206
206
|
}
|
|
207
|
-
if (asChild &&
|
|
207
|
+
if (asChild && React4.isValidElement(children)) {
|
|
208
208
|
return /* @__PURE__ */ jsx(
|
|
209
209
|
Component,
|
|
210
210
|
{
|
|
@@ -230,7 +230,7 @@ var Skeleton = React3.forwardRef(
|
|
|
230
230
|
);
|
|
231
231
|
}
|
|
232
232
|
);
|
|
233
|
-
|
|
233
|
+
React4.forwardRef(
|
|
234
234
|
function SkeletonCircle2(props, ref) {
|
|
235
235
|
const { size = 40, loading = true, className, ...rest } = props;
|
|
236
236
|
const dimension = typeof size === "number" ? `${size}px` : size;
|
|
@@ -246,7 +246,7 @@ React3.forwardRef(
|
|
|
246
246
|
);
|
|
247
247
|
}
|
|
248
248
|
);
|
|
249
|
-
|
|
249
|
+
React4.forwardRef(
|
|
250
250
|
function SkeletonText2(props, ref) {
|
|
251
251
|
const { noOfLines = 3, loading = true, className, ...rest } = props;
|
|
252
252
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsx(
|
|
@@ -259,26 +259,24 @@ React3.forwardRef(
|
|
|
259
259
|
)) });
|
|
260
260
|
}
|
|
261
261
|
);
|
|
262
|
-
var
|
|
263
|
-
function
|
|
264
|
-
const [
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
return () => mql.removeEventListener("change", handler);
|
|
274
|
-
}, []);
|
|
275
|
-
return isMobile;
|
|
262
|
+
var TOUCH_PX = 1024;
|
|
263
|
+
function useBelow(px) {
|
|
264
|
+
const [below, setBelow] = React4.useState(false);
|
|
265
|
+
React4.useEffect(() => {
|
|
266
|
+
const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
|
|
267
|
+
const apply = () => setBelow(mql.matches);
|
|
268
|
+
apply();
|
|
269
|
+
mql.addEventListener("change", apply);
|
|
270
|
+
return () => mql.removeEventListener("change", apply);
|
|
271
|
+
}, [px]);
|
|
272
|
+
return below;
|
|
276
273
|
}
|
|
274
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
277
275
|
function mapPlacement(p) {
|
|
278
276
|
if (!p) return void 0;
|
|
279
277
|
return p;
|
|
280
278
|
}
|
|
281
|
-
var Tooltip =
|
|
279
|
+
var Tooltip = React4.forwardRef(
|
|
282
280
|
function Tooltip2(props, ref) {
|
|
283
281
|
const {
|
|
284
282
|
showArrow: showArrowProp,
|
|
@@ -297,28 +295,28 @@ var Tooltip = React3.forwardRef(
|
|
|
297
295
|
interactive,
|
|
298
296
|
positioning
|
|
299
297
|
} = props;
|
|
300
|
-
const [open, setOpen] =
|
|
301
|
-
const timeoutRef =
|
|
302
|
-
const isMobile =
|
|
303
|
-
const handleOpenChange =
|
|
298
|
+
const [open, setOpen] = React4.useState(defaultOpen);
|
|
299
|
+
const timeoutRef = React4.useRef(null);
|
|
300
|
+
const isMobile = useIsTouch();
|
|
301
|
+
const handleOpenChange = React4.useCallback((nextOpen) => {
|
|
304
302
|
setOpen(nextOpen);
|
|
305
303
|
onOpenChange?.({ open: nextOpen });
|
|
306
304
|
}, [onOpenChange]);
|
|
307
|
-
const handleOpenChangeManual =
|
|
305
|
+
const handleOpenChangeManual = React4.useCallback((nextOpen) => {
|
|
308
306
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
309
307
|
timeoutRef.current = window.setTimeout(() => {
|
|
310
308
|
setOpen(nextOpen);
|
|
311
309
|
onOpenChange?.({ open: nextOpen });
|
|
312
310
|
}, nextOpen ? openDelay : closeDelay);
|
|
313
311
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
314
|
-
const handleClickAway =
|
|
315
|
-
handleOpenChangeManual(false);
|
|
316
|
-
}, [handleOpenChangeManual]);
|
|
312
|
+
const handleClickAway = React4.useCallback(() => {
|
|
313
|
+
if (open) handleOpenChangeManual(false);
|
|
314
|
+
}, [open, handleOpenChangeManual]);
|
|
317
315
|
const triggerRef = useClickAway(handleClickAway);
|
|
318
|
-
const handleTriggerClick =
|
|
316
|
+
const handleTriggerClick = React4.useCallback(() => {
|
|
319
317
|
handleOpenChangeManual(!open);
|
|
320
318
|
}, [handleOpenChangeManual, open]);
|
|
321
|
-
const handleContentClick =
|
|
319
|
+
const handleContentClick = React4.useCallback((event) => {
|
|
322
320
|
event.stopPropagation();
|
|
323
321
|
if (interactive) {
|
|
324
322
|
const closestLink = event.target?.closest("a");
|
|
@@ -327,7 +325,7 @@ var Tooltip = React3.forwardRef(
|
|
|
327
325
|
}
|
|
328
326
|
}
|
|
329
327
|
}, [interactive, handleOpenChangeManual]);
|
|
330
|
-
|
|
328
|
+
React4.useEffect(() => {
|
|
331
329
|
return () => {
|
|
332
330
|
if (timeoutRef.current) {
|
|
333
331
|
clearTimeout(timeoutRef.current);
|
|
@@ -353,7 +351,7 @@ var Tooltip = React3.forwardRef(
|
|
|
353
351
|
/* @__PURE__ */ jsx(
|
|
354
352
|
Tooltip$1.Trigger,
|
|
355
353
|
{
|
|
356
|
-
ref:
|
|
354
|
+
ref: triggerRef,
|
|
357
355
|
asChild: true,
|
|
358
356
|
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
359
357
|
...triggerProps,
|
|
@@ -418,7 +416,7 @@ var TAG_SELECTED_CLASSES = [
|
|
|
418
416
|
"hover:opacity-76"
|
|
419
417
|
].join(" ");
|
|
420
418
|
var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
|
|
421
|
-
var Tag =
|
|
419
|
+
var Tag = React4.forwardRef(
|
|
422
420
|
function Tag2(props, ref) {
|
|
423
421
|
const {
|
|
424
422
|
variant,
|
package/dist/textarea.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var gui = require('@hanzo/gui');
|
|
4
5
|
var React = require('react');
|
|
5
6
|
var clsx = require('clsx');
|
|
6
7
|
var tailwindMerge = require('tailwind-merge');
|
|
@@ -47,9 +48,10 @@ var Textarea = React__default.default.forwardRef(
|
|
|
47
48
|
[onChange, onChangeText]
|
|
48
49
|
);
|
|
49
50
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
-
|
|
51
|
+
gui.TextArea,
|
|
51
52
|
{
|
|
52
53
|
ref,
|
|
54
|
+
unstyled: true,
|
|
53
55
|
className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
|
|
54
56
|
...rest,
|
|
55
57
|
onChange: handleChange
|
package/dist/textarea.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { TextArea } from '@hanzo/gui';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { clsx } from 'clsx';
|
|
4
5
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -41,9 +42,10 @@ var Textarea = React.forwardRef(
|
|
|
41
42
|
[onChange, onChangeText]
|
|
42
43
|
);
|
|
43
44
|
return /* @__PURE__ */ jsx(
|
|
44
|
-
|
|
45
|
+
TextArea,
|
|
45
46
|
{
|
|
46
47
|
ref,
|
|
48
|
+
unstyled: true,
|
|
47
49
|
className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
|
|
48
50
|
...rest,
|
|
49
51
|
onChange: handleChange
|
package/dist/tooltip.cjs
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var gui = require('@hanzo/gui');
|
|
5
5
|
var usehooks = require('@uidotdev/usehooks');
|
|
6
|
-
var
|
|
6
|
+
var React2 = require('react');
|
|
7
7
|
var clsx = require('clsx');
|
|
8
8
|
var tailwindMerge = require('tailwind-merge');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -26,32 +26,30 @@ function _interopNamespace(e) {
|
|
|
26
26
|
return Object.freeze(n);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
|
|
30
30
|
|
|
31
31
|
// src/tooltip.tsx
|
|
32
|
+
var TOUCH_PX = 1024;
|
|
33
|
+
function useBelow(px) {
|
|
34
|
+
const [below, setBelow] = React2__namespace.useState(false);
|
|
35
|
+
React2__namespace.useEffect(() => {
|
|
36
|
+
const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
|
|
37
|
+
const apply = () => setBelow(mql.matches);
|
|
38
|
+
apply();
|
|
39
|
+
mql.addEventListener("change", apply);
|
|
40
|
+
return () => mql.removeEventListener("change", apply);
|
|
41
|
+
}, [px]);
|
|
42
|
+
return below;
|
|
43
|
+
}
|
|
44
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
32
45
|
function cn(...inputs) {
|
|
33
46
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
47
|
}
|
|
35
|
-
var LG_BREAKPOINT = 1024;
|
|
36
|
-
function useIsMobile() {
|
|
37
|
-
const [isMobile, setIsMobile] = React__namespace.useState(() => {
|
|
38
|
-
if (typeof window === "undefined") return false;
|
|
39
|
-
return window.innerWidth < LG_BREAKPOINT;
|
|
40
|
-
});
|
|
41
|
-
React__namespace.useEffect(() => {
|
|
42
|
-
const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
|
|
43
|
-
const handler = (e) => setIsMobile(e.matches);
|
|
44
|
-
setIsMobile(mql.matches);
|
|
45
|
-
mql.addEventListener("change", handler);
|
|
46
|
-
return () => mql.removeEventListener("change", handler);
|
|
47
|
-
}, []);
|
|
48
|
-
return isMobile;
|
|
49
|
-
}
|
|
50
48
|
function mapPlacement(p) {
|
|
51
49
|
if (!p) return void 0;
|
|
52
50
|
return p;
|
|
53
51
|
}
|
|
54
|
-
var Tooltip =
|
|
52
|
+
var Tooltip = React2__namespace.forwardRef(
|
|
55
53
|
function Tooltip2(props, ref) {
|
|
56
54
|
const {
|
|
57
55
|
showArrow: showArrowProp,
|
|
@@ -70,28 +68,28 @@ var Tooltip = React__namespace.forwardRef(
|
|
|
70
68
|
interactive,
|
|
71
69
|
positioning
|
|
72
70
|
} = props;
|
|
73
|
-
const [open, setOpen] =
|
|
74
|
-
const timeoutRef =
|
|
75
|
-
const isMobile =
|
|
76
|
-
const handleOpenChange =
|
|
71
|
+
const [open, setOpen] = React2__namespace.useState(defaultOpen);
|
|
72
|
+
const timeoutRef = React2__namespace.useRef(null);
|
|
73
|
+
const isMobile = useIsTouch();
|
|
74
|
+
const handleOpenChange = React2__namespace.useCallback((nextOpen) => {
|
|
77
75
|
setOpen(nextOpen);
|
|
78
76
|
onOpenChange?.({ open: nextOpen });
|
|
79
77
|
}, [onOpenChange]);
|
|
80
|
-
const handleOpenChangeManual =
|
|
78
|
+
const handleOpenChangeManual = React2__namespace.useCallback((nextOpen) => {
|
|
81
79
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
82
80
|
timeoutRef.current = window.setTimeout(() => {
|
|
83
81
|
setOpen(nextOpen);
|
|
84
82
|
onOpenChange?.({ open: nextOpen });
|
|
85
83
|
}, nextOpen ? openDelay : closeDelay);
|
|
86
84
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
87
|
-
const handleClickAway =
|
|
88
|
-
handleOpenChangeManual(false);
|
|
89
|
-
}, [handleOpenChangeManual]);
|
|
85
|
+
const handleClickAway = React2__namespace.useCallback(() => {
|
|
86
|
+
if (open) handleOpenChangeManual(false);
|
|
87
|
+
}, [open, handleOpenChangeManual]);
|
|
90
88
|
const triggerRef = usehooks.useClickAway(handleClickAway);
|
|
91
|
-
const handleTriggerClick =
|
|
89
|
+
const handleTriggerClick = React2__namespace.useCallback(() => {
|
|
92
90
|
handleOpenChangeManual(!open);
|
|
93
91
|
}, [handleOpenChangeManual, open]);
|
|
94
|
-
const handleContentClick =
|
|
92
|
+
const handleContentClick = React2__namespace.useCallback((event) => {
|
|
95
93
|
event.stopPropagation();
|
|
96
94
|
if (interactive) {
|
|
97
95
|
const closestLink = event.target?.closest("a");
|
|
@@ -100,7 +98,7 @@ var Tooltip = React__namespace.forwardRef(
|
|
|
100
98
|
}
|
|
101
99
|
}
|
|
102
100
|
}, [interactive, handleOpenChangeManual]);
|
|
103
|
-
|
|
101
|
+
React2__namespace.useEffect(() => {
|
|
104
102
|
return () => {
|
|
105
103
|
if (timeoutRef.current) {
|
|
106
104
|
clearTimeout(timeoutRef.current);
|
|
@@ -126,7 +124,7 @@ var Tooltip = React__namespace.forwardRef(
|
|
|
126
124
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
127
125
|
gui.Tooltip.Trigger,
|
|
128
126
|
{
|
|
129
|
-
ref:
|
|
127
|
+
ref: triggerRef,
|
|
130
128
|
asChild: true,
|
|
131
129
|
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
132
130
|
...triggerProps,
|
package/dist/tooltip.js
CHANGED
|
@@ -1,35 +1,33 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzo/gui';
|
|
3
3
|
import { useClickAway } from '@uidotdev/usehooks';
|
|
4
|
-
import * as
|
|
4
|
+
import * as React2 from 'react';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
// src/tooltip.tsx
|
|
10
|
+
var TOUCH_PX = 1024;
|
|
11
|
+
function useBelow(px) {
|
|
12
|
+
const [below, setBelow] = React2.useState(false);
|
|
13
|
+
React2.useEffect(() => {
|
|
14
|
+
const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
|
|
15
|
+
const apply = () => setBelow(mql.matches);
|
|
16
|
+
apply();
|
|
17
|
+
mql.addEventListener("change", apply);
|
|
18
|
+
return () => mql.removeEventListener("change", apply);
|
|
19
|
+
}, [px]);
|
|
20
|
+
return below;
|
|
21
|
+
}
|
|
22
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
10
23
|
function cn(...inputs) {
|
|
11
24
|
return twMerge(clsx(inputs));
|
|
12
25
|
}
|
|
13
|
-
var LG_BREAKPOINT = 1024;
|
|
14
|
-
function useIsMobile() {
|
|
15
|
-
const [isMobile, setIsMobile] = React.useState(() => {
|
|
16
|
-
if (typeof window === "undefined") return false;
|
|
17
|
-
return window.innerWidth < LG_BREAKPOINT;
|
|
18
|
-
});
|
|
19
|
-
React.useEffect(() => {
|
|
20
|
-
const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
|
|
21
|
-
const handler = (e) => setIsMobile(e.matches);
|
|
22
|
-
setIsMobile(mql.matches);
|
|
23
|
-
mql.addEventListener("change", handler);
|
|
24
|
-
return () => mql.removeEventListener("change", handler);
|
|
25
|
-
}, []);
|
|
26
|
-
return isMobile;
|
|
27
|
-
}
|
|
28
26
|
function mapPlacement(p) {
|
|
29
27
|
if (!p) return void 0;
|
|
30
28
|
return p;
|
|
31
29
|
}
|
|
32
|
-
var Tooltip =
|
|
30
|
+
var Tooltip = React2.forwardRef(
|
|
33
31
|
function Tooltip2(props, ref) {
|
|
34
32
|
const {
|
|
35
33
|
showArrow: showArrowProp,
|
|
@@ -48,28 +46,28 @@ var Tooltip = React.forwardRef(
|
|
|
48
46
|
interactive,
|
|
49
47
|
positioning
|
|
50
48
|
} = props;
|
|
51
|
-
const [open, setOpen] =
|
|
52
|
-
const timeoutRef =
|
|
53
|
-
const isMobile =
|
|
54
|
-
const handleOpenChange =
|
|
49
|
+
const [open, setOpen] = React2.useState(defaultOpen);
|
|
50
|
+
const timeoutRef = React2.useRef(null);
|
|
51
|
+
const isMobile = useIsTouch();
|
|
52
|
+
const handleOpenChange = React2.useCallback((nextOpen) => {
|
|
55
53
|
setOpen(nextOpen);
|
|
56
54
|
onOpenChange?.({ open: nextOpen });
|
|
57
55
|
}, [onOpenChange]);
|
|
58
|
-
const handleOpenChangeManual =
|
|
56
|
+
const handleOpenChangeManual = React2.useCallback((nextOpen) => {
|
|
59
57
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
60
58
|
timeoutRef.current = window.setTimeout(() => {
|
|
61
59
|
setOpen(nextOpen);
|
|
62
60
|
onOpenChange?.({ open: nextOpen });
|
|
63
61
|
}, nextOpen ? openDelay : closeDelay);
|
|
64
62
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
65
|
-
const handleClickAway =
|
|
66
|
-
handleOpenChangeManual(false);
|
|
67
|
-
}, [handleOpenChangeManual]);
|
|
63
|
+
const handleClickAway = React2.useCallback(() => {
|
|
64
|
+
if (open) handleOpenChangeManual(false);
|
|
65
|
+
}, [open, handleOpenChangeManual]);
|
|
68
66
|
const triggerRef = useClickAway(handleClickAway);
|
|
69
|
-
const handleTriggerClick =
|
|
67
|
+
const handleTriggerClick = React2.useCallback(() => {
|
|
70
68
|
handleOpenChangeManual(!open);
|
|
71
69
|
}, [handleOpenChangeManual, open]);
|
|
72
|
-
const handleContentClick =
|
|
70
|
+
const handleContentClick = React2.useCallback((event) => {
|
|
73
71
|
event.stopPropagation();
|
|
74
72
|
if (interactive) {
|
|
75
73
|
const closestLink = event.target?.closest("a");
|
|
@@ -78,7 +76,7 @@ var Tooltip = React.forwardRef(
|
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
78
|
}, [interactive, handleOpenChangeManual]);
|
|
81
|
-
|
|
79
|
+
React2.useEffect(() => {
|
|
82
80
|
return () => {
|
|
83
81
|
if (timeoutRef.current) {
|
|
84
82
|
clearTimeout(timeoutRef.current);
|
|
@@ -104,7 +102,7 @@ var Tooltip = React.forwardRef(
|
|
|
104
102
|
/* @__PURE__ */ jsx(
|
|
105
103
|
Tooltip$1.Trigger,
|
|
106
104
|
{
|
|
107
|
-
ref:
|
|
105
|
+
ref: triggerRef,
|
|
108
106
|
asChild: true,
|
|
109
107
|
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
110
108
|
...triggerProps,
|