@luxfi/ui 7.3.2 → 7.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alert.cjs +2 -2
- package/dist/alert.js +1 -1
- package/dist/avatar.cjs +7 -6
- package/dist/avatar.js +7 -5
- package/dist/badge.cjs +36 -38
- package/dist/badge.js +31 -33
- package/dist/bank.cjs +13 -13
- package/dist/bank.d.cts +31 -24
- package/dist/bank.d.ts +31 -24
- package/dist/bank.js +1 -1
- package/dist/button.cjs +3 -3
- package/dist/button.js +1 -1
- 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 +950 -0
- package/dist/chrome.d.cts +93 -0
- package/dist/chrome.d.ts +93 -0
- package/dist/chrome.js +921 -0
- 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 +87 -21
- 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 +206 -0
- package/dist/iam.d.cts +65 -0
- package/dist/iam.d.ts +65 -0
- package/dist/iam.js +201 -0
- package/dist/icon-button.cjs +2 -2
- package/dist/icon-button.js +1 -1
- 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 +420 -0
- package/dist/identity.d.cts +64 -0
- package/dist/identity.d.ts +64 -0
- package/dist/identity.js +398 -0
- package/dist/index.cjs +1699 -860
- package/dist/index.d.cts +12 -4
- package/dist/index.d.ts +12 -4
- package/dist/index.js +1618 -802
- package/dist/input.cjs +13 -3
- package/dist/input.d.cts +6 -0
- package/dist/input.d.ts +6 -0
- package/dist/input.js +13 -3
- package/dist/lux.config.cjs +77 -0
- package/dist/lux.config.d.cts +433 -0
- package/dist/lux.config.d.ts +433 -0
- package/dist/lux.config.js +69 -0
- package/dist/menu.cjs +4 -4
- package/dist/menu.js +4 -4
- package/dist/next.cjs +99 -0
- package/dist/next.d.cts +29 -0
- package/dist/next.d.ts +29 -0
- package/dist/next.js +96 -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/popover.cjs +8 -9
- package/dist/popover.js +1 -2
- package/dist/progress.cjs +7 -6
- package/dist/progress.js +7 -5
- package/dist/provider.cjs +199 -5
- package/dist/provider.d.cts +16 -3
- package/dist/provider.d.ts +16 -3
- package/dist/provider.js +195 -6
- 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 +38 -41
- package/dist/tag.js +31 -34
- package/dist/textarea.cjs +13 -3
- package/dist/textarea.d.cts +2 -0
- package/dist/textarea.d.ts +2 -0
- package/dist/textarea.js +13 -3
- package/dist/tooltip.cjs +31 -33
- package/dist/tooltip.js +25 -27
- 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 +40 -0
- package/dist/vite.d.cts +29 -0
- package/dist/vite.d.ts +29 -0
- package/dist/vite.js +38 -0
- package/dist/white-label.cjs +132 -0
- package/dist/white-label.d.cts +59 -0
- package/dist/white-label.d.ts +59 -0
- package/dist/white-label.js +124 -0
- package/package.json +95 -17
- package/src/avatar.tsx +22 -16
- package/src/bank.tsx +2 -2
- package/src/button.tsx +1 -1
- package/src/checkbox.tsx +15 -10
- package/src/chrome.tsx +459 -0
- package/src/close-button.tsx +1 -1
- package/src/dialog.tsx +1 -1
- package/src/drawer.tsx +83 -10
- 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/icon-button.tsx +1 -1
- package/src/icons.ts +18 -0
- package/src/identity.tsx +318 -0
- package/src/index.ts +50 -1
- package/src/input.tsx +24 -4
- package/src/lux.config.ts +82 -0
- package/src/menu.tsx +4 -4
- package/src/next.ts +142 -0
- package/src/option-chain.tsx +1 -1
- package/src/option-position.tsx +2 -1
- package/src/pnl-diagram.tsx +11 -6
- package/src/popover.tsx +1 -1
- package/src/progress.tsx +15 -8
- package/src/provider.tsx +92 -12
- 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 +18 -4
- package/src/tooltip.tsx +4 -23
- package/src/use-narrow.ts +40 -0
- package/src/vite.ts +78 -0
- package/src/white-label.ts +240 -0
- package/tokens.css +544 -319
- package/src/tokens.css +0 -438
package/dist/switch.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var gui = require('@hanzo/gui');
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var clsx = require('clsx');
|
|
7
7
|
var tailwindMerge = require('tailwind-merge');
|
|
@@ -25,7 +25,6 @@ function _interopNamespace(e) {
|
|
|
25
25
|
return Object.freeze(n);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
var RadixSwitch__namespace = /*#__PURE__*/_interopNamespace(RadixSwitch);
|
|
29
28
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
29
|
|
|
31
30
|
// src/switch.tsx
|
|
@@ -37,17 +36,17 @@ var NOOP = () => {
|
|
|
37
36
|
var SIZE_CLASSES = {
|
|
38
37
|
sm: {
|
|
39
38
|
root: "h-4 w-7",
|
|
40
|
-
thumb: "h-3 w-3
|
|
39
|
+
thumb: "h-3 w-3",
|
|
41
40
|
label: "text-xs"
|
|
42
41
|
},
|
|
43
42
|
md: {
|
|
44
43
|
root: "h-5 w-9",
|
|
45
|
-
thumb: "h-4 w-4
|
|
44
|
+
thumb: "h-4 w-4",
|
|
46
45
|
label: "text-sm"
|
|
47
46
|
},
|
|
48
47
|
lg: {
|
|
49
48
|
root: "h-6 w-11",
|
|
50
|
-
thumb: "h-5 w-5
|
|
49
|
+
thumb: "h-5 w-5",
|
|
51
50
|
label: "text-base"
|
|
52
51
|
}
|
|
53
52
|
};
|
|
@@ -78,9 +77,7 @@ var SwitchBase = React__namespace.forwardRef(
|
|
|
78
77
|
if (!isControlled) {
|
|
79
78
|
setInternalChecked(nextChecked);
|
|
80
79
|
}
|
|
81
|
-
|
|
82
|
-
onCheckedChange({ checked: nextChecked });
|
|
83
|
-
}
|
|
80
|
+
onCheckedChange?.({ checked: nextChecked });
|
|
84
81
|
},
|
|
85
82
|
[isControlled, onCheckedChange]
|
|
86
83
|
);
|
|
@@ -101,8 +98,9 @@ var SwitchBase = React__namespace.forwardRef(
|
|
|
101
98
|
...rest,
|
|
102
99
|
children: [
|
|
103
100
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
104
|
-
|
|
101
|
+
gui.Switch,
|
|
105
102
|
{
|
|
103
|
+
unstyled: true,
|
|
106
104
|
checked: checkedState,
|
|
107
105
|
onCheckedChange: handleCheckedChange,
|
|
108
106
|
disabled,
|
|
@@ -117,12 +115,13 @@ var SwitchBase = React__namespace.forwardRef(
|
|
|
117
115
|
children: [
|
|
118
116
|
trackLabel && /* @__PURE__ */ jsxRuntime.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 }),
|
|
119
117
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
-
|
|
118
|
+
gui.Switch.Thumb,
|
|
121
119
|
{
|
|
120
|
+
unstyled: true,
|
|
121
|
+
"data-thumb": true,
|
|
122
|
+
transition: "quicker",
|
|
122
123
|
className: cn(
|
|
123
124
|
"block rounded-full bg-white shadow-sm",
|
|
124
|
-
"transition-transform duration-200",
|
|
125
|
-
"translate-x-0.5",
|
|
126
125
|
sizeClasses.thumb
|
|
127
126
|
),
|
|
128
127
|
children: thumbLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center justify-center h-full w-full text-[8px]", children: checkedState ? thumbLabel.on : thumbLabel.off })
|
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,12 +1,11 @@
|
|
|
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
|
-
var
|
|
7
|
+
var gui = require('@hanzo/gui');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
-
var tooltip = require('@hanzogui/tooltip');
|
|
10
9
|
var usehooks = require('@uidotdev/usehooks');
|
|
11
10
|
|
|
12
11
|
function _interopNamespace(e) {
|
|
@@ -27,14 +26,14 @@ function _interopNamespace(e) {
|
|
|
27
26
|
return Object.freeze(n);
|
|
28
27
|
}
|
|
29
28
|
|
|
30
|
-
var
|
|
29
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
31
30
|
|
|
32
31
|
// src/tag.tsx
|
|
33
32
|
function cn(...inputs) {
|
|
34
33
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
34
|
}
|
|
36
35
|
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";
|
|
37
|
-
var CloseButtonFrame =
|
|
36
|
+
var CloseButtonFrame = gui.styled(gui.View, {
|
|
38
37
|
name: "LuxCloseButton",
|
|
39
38
|
render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", "aria-label": "Close" }),
|
|
40
39
|
role: "button",
|
|
@@ -68,7 +67,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
68
67
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
69
68
|
"disabled:opacity-40"
|
|
70
69
|
].join(" ");
|
|
71
|
-
var CloseButton =
|
|
70
|
+
var CloseButton = React4__namespace.forwardRef(function CloseButton2(props, ref) {
|
|
72
71
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
73
72
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
74
73
|
CloseButtonFrame,
|
|
@@ -215,7 +214,7 @@ var SKELETON_CLASSES = [
|
|
|
215
214
|
"bg-[length:200%_100%]"
|
|
216
215
|
].join(" ");
|
|
217
216
|
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
218
|
-
var Skeleton =
|
|
217
|
+
var Skeleton = React4__namespace.forwardRef(
|
|
219
218
|
function Skeleton2(props, ref) {
|
|
220
219
|
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
221
220
|
const shimStyle = shimToStyle(props);
|
|
@@ -224,10 +223,10 @@ var Skeleton = React3__namespace.forwardRef(
|
|
|
224
223
|
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
225
224
|
const htmlRest = stripShims(allRest);
|
|
226
225
|
if (!loading) {
|
|
227
|
-
if (asChild &&
|
|
226
|
+
if (asChild && React4__namespace.isValidElement(children)) return children;
|
|
228
227
|
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
229
228
|
}
|
|
230
|
-
if (asChild &&
|
|
229
|
+
if (asChild && React4__namespace.isValidElement(children)) {
|
|
231
230
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
232
231
|
Component,
|
|
233
232
|
{
|
|
@@ -253,7 +252,7 @@ var Skeleton = React3__namespace.forwardRef(
|
|
|
253
252
|
);
|
|
254
253
|
}
|
|
255
254
|
);
|
|
256
|
-
|
|
255
|
+
React4__namespace.forwardRef(
|
|
257
256
|
function SkeletonCircle2(props, ref) {
|
|
258
257
|
const { size = 40, loading = true, className, ...rest } = props;
|
|
259
258
|
const dimension = typeof size === "number" ? `${size}px` : size;
|
|
@@ -269,7 +268,7 @@ React3__namespace.forwardRef(
|
|
|
269
268
|
);
|
|
270
269
|
}
|
|
271
270
|
);
|
|
272
|
-
|
|
271
|
+
React4__namespace.forwardRef(
|
|
273
272
|
function SkeletonText2(props, ref) {
|
|
274
273
|
const { noOfLines = 3, loading = true, className, ...rest } = props;
|
|
275
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(
|
|
@@ -282,26 +281,24 @@ React3__namespace.forwardRef(
|
|
|
282
281
|
)) });
|
|
283
282
|
}
|
|
284
283
|
);
|
|
285
|
-
var
|
|
286
|
-
function
|
|
287
|
-
const [
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
return () => mql.removeEventListener("change", handler);
|
|
297
|
-
}, []);
|
|
298
|
-
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;
|
|
299
295
|
}
|
|
296
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
300
297
|
function mapPlacement(p) {
|
|
301
298
|
if (!p) return void 0;
|
|
302
299
|
return p;
|
|
303
300
|
}
|
|
304
|
-
var Tooltip =
|
|
301
|
+
var Tooltip = React4__namespace.forwardRef(
|
|
305
302
|
function Tooltip2(props, ref) {
|
|
306
303
|
const {
|
|
307
304
|
showArrow: showArrowProp,
|
|
@@ -320,28 +317,28 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
320
317
|
interactive,
|
|
321
318
|
positioning
|
|
322
319
|
} = props;
|
|
323
|
-
const [open, setOpen] =
|
|
324
|
-
const timeoutRef =
|
|
325
|
-
const isMobile =
|
|
326
|
-
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) => {
|
|
327
324
|
setOpen(nextOpen);
|
|
328
325
|
onOpenChange?.({ open: nextOpen });
|
|
329
326
|
}, [onOpenChange]);
|
|
330
|
-
const handleOpenChangeManual =
|
|
327
|
+
const handleOpenChangeManual = React4__namespace.useCallback((nextOpen) => {
|
|
331
328
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
332
329
|
timeoutRef.current = window.setTimeout(() => {
|
|
333
330
|
setOpen(nextOpen);
|
|
334
331
|
onOpenChange?.({ open: nextOpen });
|
|
335
332
|
}, nextOpen ? openDelay : closeDelay);
|
|
336
333
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
337
|
-
const handleClickAway =
|
|
334
|
+
const handleClickAway = React4__namespace.useCallback(() => {
|
|
338
335
|
handleOpenChangeManual(false);
|
|
339
336
|
}, [handleOpenChangeManual]);
|
|
340
337
|
const triggerRef = usehooks.useClickAway(handleClickAway);
|
|
341
|
-
const handleTriggerClick =
|
|
338
|
+
const handleTriggerClick = React4__namespace.useCallback(() => {
|
|
342
339
|
handleOpenChangeManual(!open);
|
|
343
340
|
}, [handleOpenChangeManual, open]);
|
|
344
|
-
const handleContentClick =
|
|
341
|
+
const handleContentClick = React4__namespace.useCallback((event) => {
|
|
345
342
|
event.stopPropagation();
|
|
346
343
|
if (interactive) {
|
|
347
344
|
const closestLink = event.target?.closest("a");
|
|
@@ -350,7 +347,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
350
347
|
}
|
|
351
348
|
}
|
|
352
349
|
}, [interactive, handleOpenChangeManual]);
|
|
353
|
-
|
|
350
|
+
React4__namespace.useEffect(() => {
|
|
354
351
|
return () => {
|
|
355
352
|
if (timeoutRef.current) {
|
|
356
353
|
clearTimeout(timeoutRef.current);
|
|
@@ -363,8 +360,8 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
363
360
|
const isPopover = variant === "popover";
|
|
364
361
|
const placement = mapPlacement(positioning?.placement) ?? "top";
|
|
365
362
|
const offset = positioning?.offset?.mainAxis ?? 4;
|
|
366
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
367
|
-
|
|
363
|
+
return /* @__PURE__ */ jsxRuntime.jsx(gui.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
364
|
+
gui.Tooltip,
|
|
368
365
|
{
|
|
369
366
|
open,
|
|
370
367
|
onOpenChange: handleOpenChange,
|
|
@@ -374,7 +371,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
374
371
|
unstyled: true,
|
|
375
372
|
children: [
|
|
376
373
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
377
|
-
|
|
374
|
+
gui.Tooltip.Trigger,
|
|
378
375
|
{
|
|
379
376
|
ref: open ? triggerRef : void 0,
|
|
380
377
|
asChild: true,
|
|
@@ -384,7 +381,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
384
381
|
}
|
|
385
382
|
),
|
|
386
383
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
387
|
-
|
|
384
|
+
gui.Tooltip.Content,
|
|
388
385
|
{
|
|
389
386
|
ref,
|
|
390
387
|
unstyled: true,
|
|
@@ -401,7 +398,7 @@ var Tooltip = React3__namespace.forwardRef(
|
|
|
401
398
|
...contentProps,
|
|
402
399
|
children: [
|
|
403
400
|
showArrow && /* @__PURE__ */ jsxRuntime.jsx(
|
|
404
|
-
|
|
401
|
+
gui.Tooltip.Arrow,
|
|
405
402
|
{
|
|
406
403
|
unstyled: true,
|
|
407
404
|
className: cn(
|
|
@@ -441,7 +438,7 @@ var TAG_SELECTED_CLASSES = [
|
|
|
441
438
|
"hover:opacity-76"
|
|
442
439
|
].join(" ");
|
|
443
440
|
var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
|
|
444
|
-
var Tag =
|
|
441
|
+
var Tag = React4__namespace.forwardRef(
|
|
445
442
|
function Tag2(props, ref) {
|
|
446
443
|
const {
|
|
447
444
|
variant,
|
package/dist/tag.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
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
|
-
import { styled, View } from '@
|
|
5
|
+
import { styled, View, TooltipGroup, Tooltip as Tooltip$1 } from '@hanzo/gui';
|
|
6
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
-
import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzogui/tooltip';
|
|
8
7
|
import { useClickAway } from '@uidotdev/usehooks';
|
|
9
8
|
|
|
10
9
|
// src/tag.tsx
|
|
@@ -46,7 +45,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
46
45
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
47
46
|
"disabled:opacity-40"
|
|
48
47
|
].join(" ");
|
|
49
|
-
var CloseButton =
|
|
48
|
+
var CloseButton = React4.forwardRef(function CloseButton2(props, ref) {
|
|
50
49
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
51
50
|
return /* @__PURE__ */ jsx(
|
|
52
51
|
CloseButtonFrame,
|
|
@@ -193,7 +192,7 @@ var SKELETON_CLASSES = [
|
|
|
193
192
|
"bg-[length:200%_100%]"
|
|
194
193
|
].join(" ");
|
|
195
194
|
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
196
|
-
var Skeleton =
|
|
195
|
+
var Skeleton = React4.forwardRef(
|
|
197
196
|
function Skeleton2(props, ref) {
|
|
198
197
|
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
199
198
|
const shimStyle = shimToStyle(props);
|
|
@@ -202,10 +201,10 @@ var Skeleton = React3.forwardRef(
|
|
|
202
201
|
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
203
202
|
const htmlRest = stripShims(allRest);
|
|
204
203
|
if (!loading) {
|
|
205
|
-
if (asChild &&
|
|
204
|
+
if (asChild && React4.isValidElement(children)) return children;
|
|
206
205
|
return /* @__PURE__ */ jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
207
206
|
}
|
|
208
|
-
if (asChild &&
|
|
207
|
+
if (asChild && React4.isValidElement(children)) {
|
|
209
208
|
return /* @__PURE__ */ jsx(
|
|
210
209
|
Component,
|
|
211
210
|
{
|
|
@@ -231,7 +230,7 @@ var Skeleton = React3.forwardRef(
|
|
|
231
230
|
);
|
|
232
231
|
}
|
|
233
232
|
);
|
|
234
|
-
|
|
233
|
+
React4.forwardRef(
|
|
235
234
|
function SkeletonCircle2(props, ref) {
|
|
236
235
|
const { size = 40, loading = true, className, ...rest } = props;
|
|
237
236
|
const dimension = typeof size === "number" ? `${size}px` : size;
|
|
@@ -247,7 +246,7 @@ React3.forwardRef(
|
|
|
247
246
|
);
|
|
248
247
|
}
|
|
249
248
|
);
|
|
250
|
-
|
|
249
|
+
React4.forwardRef(
|
|
251
250
|
function SkeletonText2(props, ref) {
|
|
252
251
|
const { noOfLines = 3, loading = true, className, ...rest } = props;
|
|
253
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(
|
|
@@ -260,26 +259,24 @@ React3.forwardRef(
|
|
|
260
259
|
)) });
|
|
261
260
|
}
|
|
262
261
|
);
|
|
263
|
-
var
|
|
264
|
-
function
|
|
265
|
-
const [
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
return () => mql.removeEventListener("change", handler);
|
|
275
|
-
}, []);
|
|
276
|
-
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;
|
|
277
273
|
}
|
|
274
|
+
var useIsTouch = () => useBelow(TOUCH_PX);
|
|
278
275
|
function mapPlacement(p) {
|
|
279
276
|
if (!p) return void 0;
|
|
280
277
|
return p;
|
|
281
278
|
}
|
|
282
|
-
var Tooltip =
|
|
279
|
+
var Tooltip = React4.forwardRef(
|
|
283
280
|
function Tooltip2(props, ref) {
|
|
284
281
|
const {
|
|
285
282
|
showArrow: showArrowProp,
|
|
@@ -298,28 +295,28 @@ var Tooltip = React3.forwardRef(
|
|
|
298
295
|
interactive,
|
|
299
296
|
positioning
|
|
300
297
|
} = props;
|
|
301
|
-
const [open, setOpen] =
|
|
302
|
-
const timeoutRef =
|
|
303
|
-
const isMobile =
|
|
304
|
-
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) => {
|
|
305
302
|
setOpen(nextOpen);
|
|
306
303
|
onOpenChange?.({ open: nextOpen });
|
|
307
304
|
}, [onOpenChange]);
|
|
308
|
-
const handleOpenChangeManual =
|
|
305
|
+
const handleOpenChangeManual = React4.useCallback((nextOpen) => {
|
|
309
306
|
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
310
307
|
timeoutRef.current = window.setTimeout(() => {
|
|
311
308
|
setOpen(nextOpen);
|
|
312
309
|
onOpenChange?.({ open: nextOpen });
|
|
313
310
|
}, nextOpen ? openDelay : closeDelay);
|
|
314
311
|
}, [closeDelay, openDelay, onOpenChange]);
|
|
315
|
-
const handleClickAway =
|
|
312
|
+
const handleClickAway = React4.useCallback(() => {
|
|
316
313
|
handleOpenChangeManual(false);
|
|
317
314
|
}, [handleOpenChangeManual]);
|
|
318
315
|
const triggerRef = useClickAway(handleClickAway);
|
|
319
|
-
const handleTriggerClick =
|
|
316
|
+
const handleTriggerClick = React4.useCallback(() => {
|
|
320
317
|
handleOpenChangeManual(!open);
|
|
321
318
|
}, [handleOpenChangeManual, open]);
|
|
322
|
-
const handleContentClick =
|
|
319
|
+
const handleContentClick = React4.useCallback((event) => {
|
|
323
320
|
event.stopPropagation();
|
|
324
321
|
if (interactive) {
|
|
325
322
|
const closestLink = event.target?.closest("a");
|
|
@@ -328,7 +325,7 @@ var Tooltip = React3.forwardRef(
|
|
|
328
325
|
}
|
|
329
326
|
}
|
|
330
327
|
}, [interactive, handleOpenChangeManual]);
|
|
331
|
-
|
|
328
|
+
React4.useEffect(() => {
|
|
332
329
|
return () => {
|
|
333
330
|
if (timeoutRef.current) {
|
|
334
331
|
clearTimeout(timeoutRef.current);
|
|
@@ -419,7 +416,7 @@ var TAG_SELECTED_CLASSES = [
|
|
|
419
416
|
"hover:opacity-76"
|
|
420
417
|
].join(" ");
|
|
421
418
|
var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
|
|
422
|
-
var Tag =
|
|
419
|
+
var Tag = React4.forwardRef(
|
|
423
420
|
function Tag2(props, ref) {
|
|
424
421
|
const {
|
|
425
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');
|
|
@@ -38,13 +39,22 @@ var TEXTAREA_VARIANT_CLASSES = {
|
|
|
38
39
|
unstyled: "border-0 bg-transparent p-0"
|
|
39
40
|
};
|
|
40
41
|
var Textarea = React__default.default.forwardRef(
|
|
41
|
-
({ size = "md", variant = "outline", className, ...rest }, ref) => {
|
|
42
|
+
({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
|
|
43
|
+
const handleChange = React__default.default.useCallback(
|
|
44
|
+
(event) => {
|
|
45
|
+
onChange?.(event);
|
|
46
|
+
onChangeText?.(event.target.value);
|
|
47
|
+
},
|
|
48
|
+
[onChange, onChangeText]
|
|
49
|
+
);
|
|
42
50
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
43
|
-
|
|
51
|
+
gui.TextArea,
|
|
44
52
|
{
|
|
45
53
|
ref,
|
|
54
|
+
unstyled: true,
|
|
46
55
|
className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
|
|
47
|
-
...rest
|
|
56
|
+
...rest,
|
|
57
|
+
onChange: handleChange
|
|
48
58
|
}
|
|
49
59
|
);
|
|
50
60
|
}
|
package/dist/textarea.d.cts
CHANGED
|
@@ -5,6 +5,8 @@ type TextareaVariant = 'outline' | 'filled' | 'unstyled';
|
|
|
5
5
|
interface TextareaProps extends Omit<React__default.ComponentPropsWithRef<'textarea'>, 'size'> {
|
|
6
6
|
readonly size?: TextareaSize;
|
|
7
7
|
readonly variant?: TextareaVariant;
|
|
8
|
+
/** Tamagui / React-Native convention — bridged to native `onChange` (see Input). */
|
|
9
|
+
readonly onChangeText?: (text: string) => void;
|
|
8
10
|
}
|
|
9
11
|
declare const Textarea: React__default.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
10
12
|
|
package/dist/textarea.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ type TextareaVariant = 'outline' | 'filled' | 'unstyled';
|
|
|
5
5
|
interface TextareaProps extends Omit<React__default.ComponentPropsWithRef<'textarea'>, 'size'> {
|
|
6
6
|
readonly size?: TextareaSize;
|
|
7
7
|
readonly variant?: TextareaVariant;
|
|
8
|
+
/** Tamagui / React-Native convention — bridged to native `onChange` (see Input). */
|
|
9
|
+
readonly onChangeText?: (text: string) => void;
|
|
8
10
|
}
|
|
9
11
|
declare const Textarea: React__default.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React__default.RefAttributes<HTMLTextAreaElement>>;
|
|
10
12
|
|
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';
|
|
@@ -32,13 +33,22 @@ var TEXTAREA_VARIANT_CLASSES = {
|
|
|
32
33
|
unstyled: "border-0 bg-transparent p-0"
|
|
33
34
|
};
|
|
34
35
|
var Textarea = React.forwardRef(
|
|
35
|
-
({ size = "md", variant = "outline", className, ...rest }, ref) => {
|
|
36
|
+
({ size = "md", variant = "outline", className, onChange, onChangeText, ...rest }, ref) => {
|
|
37
|
+
const handleChange = React.useCallback(
|
|
38
|
+
(event) => {
|
|
39
|
+
onChange?.(event);
|
|
40
|
+
onChangeText?.(event.target.value);
|
|
41
|
+
},
|
|
42
|
+
[onChange, onChangeText]
|
|
43
|
+
);
|
|
36
44
|
return /* @__PURE__ */ jsx(
|
|
37
|
-
|
|
45
|
+
TextArea,
|
|
38
46
|
{
|
|
39
47
|
ref,
|
|
48
|
+
unstyled: true,
|
|
40
49
|
className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
|
|
41
|
-
...rest
|
|
50
|
+
...rest,
|
|
51
|
+
onChange: handleChange
|
|
42
52
|
}
|
|
43
53
|
);
|
|
44
54
|
}
|