@luxfi/ui 7.4.11 → 7.4.13
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 +68 -46
- package/dist/alert.js +69 -46
- package/dist/avatar.cjs +49 -47
- package/dist/avatar.js +52 -49
- package/dist/badge.cjs +82 -49
- package/dist/badge.js +83 -50
- package/dist/checkbox.cjs +42 -75
- package/dist/checkbox.js +43 -76
- package/dist/chrome.cjs +3 -7
- package/dist/chrome.js +3 -7
- package/dist/close-button.cjs +3 -7
- package/dist/close-button.js +3 -7
- package/dist/dialog.cjs +3 -7
- package/dist/dialog.js +3 -7
- package/dist/drawer.cjs +3 -7
- package/dist/drawer.js +3 -7
- package/dist/empty-state.cjs +13 -13
- package/dist/empty-state.js +13 -13
- package/dist/expiration-selector.cjs +58 -63
- package/dist/expiration-selector.js +58 -63
- package/dist/greeks-display.cjs +48 -39
- package/dist/greeks-display.js +48 -39
- package/dist/index.cjs +1053 -888
- package/dist/index.js +1054 -889
- package/dist/input-group.cjs +36 -19
- package/dist/input-group.js +37 -19
- package/dist/option-chain.cjs +89 -67
- package/dist/option-chain.js +89 -67
- package/dist/option-position.cjs +88 -85
- package/dist/option-position.js +88 -85
- package/dist/pin-input.cjs +30 -29
- package/dist/pin-input.js +30 -29
- package/dist/pnl-diagram.cjs +20 -20
- package/dist/pnl-diagram.js +20 -20
- package/dist/popover.cjs +3 -7
- package/dist/popover.js +3 -7
- package/dist/progress-circle.cjs +40 -22
- package/dist/progress-circle.d.cts +5 -5
- package/dist/progress-circle.d.ts +5 -5
- package/dist/progress-circle.js +41 -22
- package/dist/progress.cjs +15 -22
- package/dist/progress.d.cts +6 -6
- package/dist/progress.d.ts +6 -6
- package/dist/progress.js +15 -22
- package/dist/radio.cjs +35 -68
- package/dist/radio.d.cts +18 -18
- package/dist/radio.d.ts +18 -18
- package/dist/radio.js +36 -69
- package/dist/rating.cjs +15 -17
- package/dist/rating.js +15 -17
- package/dist/slider.cjs +33 -50
- package/dist/slider.js +34 -51
- package/dist/strategy-builder.cjs +194 -115
- package/dist/strategy-builder.js +194 -115
- package/dist/switch.cjs +48 -55
- package/dist/switch.js +49 -56
- package/dist/tag.cjs +115 -69
- package/dist/tag.js +116 -69
- package/dist/tooltip.cjs +28 -17
- package/dist/tooltip.js +30 -18
- package/package.json +1 -1
- package/src/alert.tsx +78 -45
- package/src/avatar.tsx +54 -38
- package/src/badge.tsx +65 -44
- package/src/checkbox.tsx +70 -89
- package/src/close-button.tsx +3 -8
- package/src/empty-state.tsx +21 -17
- package/src/expiration-selector.tsx +84 -66
- package/src/greeks-display.tsx +59 -51
- package/src/input-group.tsx +38 -24
- package/src/option-chain.tsx +154 -104
- package/src/option-position.tsx +143 -114
- package/src/pin-input.tsx +37 -29
- package/src/pnl-diagram.tsx +36 -28
- package/src/progress-circle.tsx +52 -28
- package/src/progress.tsx +17 -21
- package/src/radio.tsx +56 -76
- package/src/rating.tsx +22 -20
- package/src/slider.tsx +43 -45
- package/src/strategy-builder.tsx +260 -162
- package/src/switch.tsx +63 -64
- package/src/tag.tsx +89 -51
- package/src/tooltip.tsx +21 -13
- package/tokens.css +18 -0
package/dist/switch.js
CHANGED
|
@@ -1,33 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Switch } from '@hanzo/gui';
|
|
2
|
+
import { Label, Switch, Text, VisuallyHidden } from '@hanzo/gui';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { clsx } from 'clsx';
|
|
5
|
-
import { twMerge } from 'tailwind-merge';
|
|
6
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
5
|
|
|
8
6
|
// src/switch.tsx
|
|
9
|
-
function cn(...inputs) {
|
|
10
|
-
return twMerge(clsx(inputs));
|
|
11
|
-
}
|
|
12
7
|
var NOOP = () => {
|
|
13
8
|
};
|
|
14
|
-
var
|
|
15
|
-
sm: {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
label: "text-xs"
|
|
19
|
-
},
|
|
20
|
-
md: {
|
|
21
|
-
root: "h-5 w-9",
|
|
22
|
-
thumb: "h-4 w-4",
|
|
23
|
-
label: "text-sm"
|
|
24
|
-
},
|
|
25
|
-
lg: {
|
|
26
|
-
root: "h-6 w-11",
|
|
27
|
-
thumb: "h-5 w-5",
|
|
28
|
-
label: "text-base"
|
|
29
|
-
}
|
|
9
|
+
var SIZE = {
|
|
10
|
+
sm: { width: 28, height: 16, thumb: 12, label: 12 },
|
|
11
|
+
md: { width: 36, height: 20, thumb: 16, label: 14 },
|
|
12
|
+
lg: { width: 44, height: 24, thumb: 20, label: 16 }
|
|
30
13
|
};
|
|
14
|
+
var TRACK_ON = "var(--color-text-primary)";
|
|
15
|
+
var TRACK_OFF = "var(--color-switch-bg)";
|
|
16
|
+
var OUTLINE = "var(--color-gray-500)";
|
|
17
|
+
var WHITE = "var(--color-white)";
|
|
31
18
|
var SwitchBase = React.forwardRef(
|
|
32
19
|
function Switch$1(props, ref) {
|
|
33
20
|
const {
|
|
@@ -44,7 +31,6 @@ var SwitchBase = React.forwardRef(
|
|
|
44
31
|
disabled = false,
|
|
45
32
|
size = "md",
|
|
46
33
|
direction,
|
|
47
|
-
className,
|
|
48
34
|
...rest
|
|
49
35
|
} = props;
|
|
50
36
|
const [internalChecked, setInternalChecked] = React.useState(defaultChecked ?? false);
|
|
@@ -59,18 +45,19 @@ var SwitchBase = React.forwardRef(
|
|
|
59
45
|
},
|
|
60
46
|
[isControlled, onCheckedChange]
|
|
61
47
|
);
|
|
62
|
-
const
|
|
48
|
+
const s = SIZE[size];
|
|
63
49
|
const isRtl = direction === "rtl";
|
|
64
50
|
return /* @__PURE__ */ jsxs(
|
|
65
|
-
|
|
51
|
+
Label,
|
|
66
52
|
{
|
|
67
53
|
ref: rootRef,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
54
|
+
unstyled: true,
|
|
55
|
+
flexDirection: isRtl ? "row-reverse" : "row",
|
|
56
|
+
alignItems: "center",
|
|
57
|
+
gap: 8,
|
|
58
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
59
|
+
userSelect: "none",
|
|
60
|
+
opacity: disabled ? 0.5 : 1,
|
|
74
61
|
onChange,
|
|
75
62
|
"data-disabled": disabled || void 0,
|
|
76
63
|
...rest,
|
|
@@ -82,38 +69,51 @@ var SwitchBase = React.forwardRef(
|
|
|
82
69
|
checked: checkedState,
|
|
83
70
|
onCheckedChange: handleCheckedChange,
|
|
84
71
|
disabled,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
72
|
+
position: "relative",
|
|
73
|
+
flexShrink: 0,
|
|
74
|
+
alignItems: "center",
|
|
75
|
+
width: s.width,
|
|
76
|
+
height: s.height,
|
|
77
|
+
borderRadius: 9999,
|
|
78
|
+
backgroundColor: checkedState ? TRACK_ON : TRACK_OFF,
|
|
79
|
+
transition: "quick",
|
|
80
|
+
focusStyle: { outlineWidth: 2, outlineStyle: "solid", outlineColor: OUTLINE, outlineOffset: 2 },
|
|
93
81
|
children: [
|
|
94
|
-
trackLabel && /* @__PURE__ */ jsx(
|
|
82
|
+
trackLabel && /* @__PURE__ */ jsx(
|
|
83
|
+
Text,
|
|
84
|
+
{
|
|
85
|
+
position: "absolute",
|
|
86
|
+
width: "100%",
|
|
87
|
+
textAlign: "center",
|
|
88
|
+
fontSize: 8,
|
|
89
|
+
fontWeight: "700",
|
|
90
|
+
color: WHITE,
|
|
91
|
+
pointerEvents: "none",
|
|
92
|
+
children: checkedState ? trackLabel.on : trackLabel.off
|
|
93
|
+
}
|
|
94
|
+
),
|
|
95
95
|
/* @__PURE__ */ jsx(
|
|
96
96
|
Switch.Thumb,
|
|
97
97
|
{
|
|
98
98
|
unstyled: true,
|
|
99
99
|
"data-thumb": true,
|
|
100
100
|
transition: "quicker",
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
width: s.thumb,
|
|
102
|
+
height: s.thumb,
|
|
103
|
+
borderRadius: 9999,
|
|
104
|
+
backgroundColor: WHITE,
|
|
105
|
+
boxShadow: "0 1px 2px 0 rgba(0,0,0,0.05)",
|
|
106
|
+
children: thumbLabel && /* @__PURE__ */ jsx(Text, { width: "100%", height: "100%", textAlign: "center", fontSize: 8, children: checkedState ? thumbLabel.on : thumbLabel.off })
|
|
106
107
|
}
|
|
107
108
|
)
|
|
108
109
|
]
|
|
109
110
|
}
|
|
110
111
|
),
|
|
111
|
-
/* @__PURE__ */ jsx(
|
|
112
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(
|
|
112
113
|
"input",
|
|
113
114
|
{
|
|
114
115
|
ref,
|
|
115
116
|
type: "checkbox",
|
|
116
|
-
className: "sr-only",
|
|
117
117
|
checked: checkedState,
|
|
118
118
|
disabled,
|
|
119
119
|
tabIndex: -1,
|
|
@@ -121,15 +121,8 @@ var SwitchBase = React.forwardRef(
|
|
|
121
121
|
onChange: NOOP,
|
|
122
122
|
...inputProps
|
|
123
123
|
}
|
|
124
|
-
),
|
|
125
|
-
children != null && /* @__PURE__ */ jsx(
|
|
126
|
-
"span",
|
|
127
|
-
{
|
|
128
|
-
...labelProps,
|
|
129
|
-
className: cn(sizeClasses.label, labelProps?.className),
|
|
130
|
-
children
|
|
131
|
-
}
|
|
132
|
-
)
|
|
124
|
+
) }),
|
|
125
|
+
children != null && /* @__PURE__ */ jsx(Text, { ...labelProps, fontSize: s.label, children })
|
|
133
126
|
]
|
|
134
127
|
}
|
|
135
128
|
);
|
package/dist/tag.cjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var gui = require('@hanzo/gui');
|
|
4
5
|
var React4 = require('react');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
7
|
var clsx = require('clsx');
|
|
6
8
|
var tailwindMerge = require('tailwind-merge');
|
|
7
|
-
var gui = require('@hanzo/gui');
|
|
8
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
var usehooks = require('@uidotdev/usehooks');
|
|
10
10
|
|
|
11
11
|
function _interopNamespace(e) {
|
|
@@ -29,9 +29,6 @@ function _interopNamespace(e) {
|
|
|
29
29
|
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
30
30
|
|
|
31
31
|
// src/tag.tsx
|
|
32
|
-
function cn(...inputs) {
|
|
33
|
-
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
|
-
}
|
|
35
32
|
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";
|
|
36
33
|
var CloseButtonFrame = gui.styled(gui.View, {
|
|
37
34
|
name: "LuxCloseButton",
|
|
@@ -62,23 +59,19 @@ var CloseButtonFrame = gui.styled(gui.View, {
|
|
|
62
59
|
}
|
|
63
60
|
}
|
|
64
61
|
});
|
|
65
|
-
var CLOSE_BUTTON_CLASSES = [
|
|
66
|
-
"text-[var(--closeButton-fg,currentColor)]",
|
|
67
|
-
"hover:text-[var(--hover-color,currentColor)]",
|
|
68
|
-
"disabled:opacity-40"
|
|
69
|
-
].join(" ");
|
|
70
62
|
var CloseButton = React4__namespace.forwardRef(function CloseButton2(props, ref) {
|
|
71
63
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
72
64
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
73
65
|
CloseButtonFrame,
|
|
74
66
|
{
|
|
75
67
|
ref,
|
|
76
|
-
className
|
|
68
|
+
className,
|
|
77
69
|
...rest,
|
|
78
70
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
71
|
"svg",
|
|
80
72
|
{
|
|
81
|
-
|
|
73
|
+
width: 20,
|
|
74
|
+
height: 20,
|
|
82
75
|
viewBox: "0 0 20 20",
|
|
83
76
|
fill: "none",
|
|
84
77
|
"aria-hidden": "true",
|
|
@@ -94,6 +87,9 @@ var CloseButton = React4__namespace.forwardRef(function CloseButton2(props, ref)
|
|
|
94
87
|
}
|
|
95
88
|
);
|
|
96
89
|
});
|
|
90
|
+
function cn(...inputs) {
|
|
91
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
92
|
+
}
|
|
97
93
|
var SHIM_PROPS = [
|
|
98
94
|
"w",
|
|
99
95
|
"h",
|
|
@@ -277,6 +273,14 @@ React4__namespace.forwardRef(
|
|
|
277
273
|
)) });
|
|
278
274
|
}
|
|
279
275
|
);
|
|
276
|
+
var ink = (children, Wrap = gui.Text, props = {}) => {
|
|
277
|
+
let hasText = false;
|
|
278
|
+
React4.Children.forEach(children, (child) => {
|
|
279
|
+
if (typeof child === "string" || typeof child === "number") hasText = true;
|
|
280
|
+
});
|
|
281
|
+
if (!hasText) return children;
|
|
282
|
+
return React4.Children.map(children, (child) => typeof child === "string" || typeof child === "number" ? React4.createElement(Wrap, props, child) : child);
|
|
283
|
+
};
|
|
280
284
|
var TOUCH_PX = 1024;
|
|
281
285
|
function useBelow(px) {
|
|
282
286
|
const [below, setBelow] = React4__namespace.useState(false);
|
|
@@ -381,14 +385,21 @@ var Tooltip = React4__namespace.forwardRef(
|
|
|
381
385
|
{
|
|
382
386
|
ref,
|
|
383
387
|
unstyled: true,
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
388
|
+
zIndex: 9999,
|
|
389
|
+
overflow: "hidden",
|
|
390
|
+
borderRadius: 8,
|
|
391
|
+
paddingHorizontal: 12,
|
|
392
|
+
paddingVertical: 8,
|
|
393
|
+
maxWidth: isPopover ? 384 : 320,
|
|
394
|
+
backgroundColor: isPopover ? "var(--color-popover-bg)" : "var(--color-tooltip-bg)",
|
|
395
|
+
transition: "quick",
|
|
396
|
+
enterStyle: { opacity: 0, scale: 0.95 },
|
|
397
|
+
exitStyle: { opacity: 0, scale: 0.95 },
|
|
398
|
+
...isPopover ? {
|
|
399
|
+
borderWidth: 1,
|
|
400
|
+
borderColor: "var(--color-border-divider)",
|
|
401
|
+
shadowColor: "var(--shadow-popover)"
|
|
402
|
+
} : {},
|
|
392
403
|
onClick: interactive ? handleContentClick : void 0,
|
|
393
404
|
...selected ? { "data-selected": true } : {},
|
|
394
405
|
...contentProps,
|
|
@@ -397,12 +408,13 @@ var Tooltip = React4__namespace.forwardRef(
|
|
|
397
408
|
gui.Tooltip.Arrow,
|
|
398
409
|
{
|
|
399
410
|
unstyled: true,
|
|
400
|
-
|
|
401
|
-
isPopover ? "fill-[var(--color-popover-bg)]" : "fill-[var(--color-tooltip-bg)]"
|
|
402
|
-
)
|
|
411
|
+
backgroundColor: isPopover ? "var(--color-popover-bg)" : "var(--color-tooltip-bg)"
|
|
403
412
|
}
|
|
404
413
|
),
|
|
405
|
-
content
|
|
414
|
+
ink(content, void 0, {
|
|
415
|
+
fontSize: 14,
|
|
416
|
+
color: isPopover ? "var(--color-text-primary)" : "var(--color-tooltip-fg)"
|
|
417
|
+
})
|
|
406
418
|
]
|
|
407
419
|
}
|
|
408
420
|
)
|
|
@@ -415,25 +427,24 @@ var nbsp = String.fromCharCode(160);
|
|
|
415
427
|
function TruncatedTextTooltip({ label, children }) {
|
|
416
428
|
return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
|
|
417
429
|
}
|
|
418
|
-
var
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
430
|
+
var TAG_VARIANT = {
|
|
431
|
+
subtle: { backgroundColor: "var(--color-tag-subtle-bg)" },
|
|
432
|
+
clickable: { backgroundColor: "var(--color-tag-clickable-bg)", cursor: "pointer", hoverStyle: { opacity: 0.76 } },
|
|
433
|
+
filter: { backgroundColor: "var(--color-tag-filter-bg)" },
|
|
434
|
+
select: { backgroundColor: "var(--color-tag-select-bg)", cursor: "pointer", hoverStyle: { opacity: 0.76 } }
|
|
435
|
+
};
|
|
436
|
+
var TAG_VARIANT_FG = {
|
|
437
|
+
subtle: "var(--color-tag-subtle-fg)",
|
|
438
|
+
clickable: "var(--color-tag-clickable-fg)",
|
|
439
|
+
filter: void 0,
|
|
440
|
+
select: "var(--color-tag-select-fg)"
|
|
424
441
|
};
|
|
425
|
-
var
|
|
426
|
-
sm:
|
|
427
|
-
md:
|
|
428
|
-
lg:
|
|
442
|
+
var TAG_SIZE = {
|
|
443
|
+
sm: { paddingHorizontal: 4, paddingVertical: 2, minHeight: 20, gap: 4 },
|
|
444
|
+
md: { paddingHorizontal: 4, paddingVertical: 2, minHeight: 24, gap: 4 },
|
|
445
|
+
lg: { paddingHorizontal: 6, paddingVertical: 6, minHeight: 32, minWidth: 32, gap: 4 }
|
|
429
446
|
};
|
|
430
|
-
var
|
|
431
|
-
"bg-[var(--color-tag-select-selected-bg)]",
|
|
432
|
-
"text-[var(--color-tag-select-selected-fg)]",
|
|
433
|
-
"hover:text-[var(--color-tag-select-selected-fg)]",
|
|
434
|
-
"hover:opacity-76"
|
|
435
|
-
].join(" ");
|
|
436
|
-
var TAG_DISABLED_CLASSES = "opacity-40 pointer-events-none cursor-not-allowed";
|
|
447
|
+
var TAG_SIZE_FONT = { sm: 12, md: 14, lg: 14 };
|
|
437
448
|
var Tag = React4__namespace.forwardRef(
|
|
438
449
|
function Tag2(props, ref) {
|
|
439
450
|
const {
|
|
@@ -453,46 +464,81 @@ var Tag = React4__namespace.forwardRef(
|
|
|
453
464
|
className,
|
|
454
465
|
...rest
|
|
455
466
|
} = props;
|
|
456
|
-
const
|
|
467
|
+
const resolvedVariant = variant ?? "subtle";
|
|
468
|
+
const resolvedSize = size ?? "md";
|
|
469
|
+
const isSelected = Boolean(selected) && !loading;
|
|
470
|
+
const backgroundColor = isSelected ? "var(--color-tag-select-selected-bg)" : TAG_VARIANT[resolvedVariant].backgroundColor;
|
|
471
|
+
const color = isSelected ? "var(--color-tag-select-selected-fg)" : TAG_VARIANT_FG[resolvedVariant];
|
|
472
|
+
const hoverStyle = isSelected ? { opacity: 0.76 } : TAG_VARIANT[resolvedVariant].hoverStyle;
|
|
473
|
+
const textHoverColor = !isSelected && resolvedVariant === "select" ? "var(--color-hover)" : void 0;
|
|
474
|
+
const labelElement = label ? /* @__PURE__ */ jsxRuntime.jsxs(gui.Text, { fontSize: TAG_SIZE_FONT[resolvedSize], fontWeight: "500", color: "var(--color-text-secondary)", children: [
|
|
457
475
|
label,
|
|
458
476
|
":",
|
|
459
477
|
nbsp
|
|
460
478
|
] }) : null;
|
|
461
|
-
const labelSpan =
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
479
|
+
const labelSpan = (
|
|
480
|
+
// `ellipsis` is Text's own built-in single-line-truncation variant —
|
|
481
|
+
// the same rule Tailwind's `line-clamp-1`/`text-ellipsis` drew, through
|
|
482
|
+
// the component's variants rather than three separate style props.
|
|
483
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
484
|
+
gui.Text,
|
|
485
|
+
{
|
|
486
|
+
ellipsis: true,
|
|
487
|
+
fontWeight: "500",
|
|
488
|
+
fontSize: TAG_SIZE_FONT[resolvedSize],
|
|
489
|
+
color,
|
|
490
|
+
hoverStyle: textHoverColor ? { color: textHoverColor } : void 0,
|
|
491
|
+
children: [
|
|
492
|
+
labelElement,
|
|
493
|
+
children
|
|
494
|
+
]
|
|
495
|
+
}
|
|
496
|
+
)
|
|
497
|
+
);
|
|
465
498
|
const contentElement = truncated ? /* @__PURE__ */ jsxRuntime.jsx(TruncatedTextTooltip, { label: children, children: labelSpan }) : labelSpan;
|
|
466
499
|
return /* @__PURE__ */ jsxRuntime.jsx(Skeleton, { loading, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
467
|
-
|
|
500
|
+
gui.XStack,
|
|
468
501
|
{
|
|
469
502
|
ref,
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
503
|
+
render: /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
504
|
+
display: "inline-flex",
|
|
505
|
+
alignItems: "center",
|
|
506
|
+
verticalAlign: "top",
|
|
507
|
+
maxWidth: "100%",
|
|
508
|
+
userSelect: "text",
|
|
509
|
+
...TAG_SIZE[resolvedSize],
|
|
510
|
+
backgroundColor,
|
|
511
|
+
hoverStyle,
|
|
512
|
+
focusVisibleStyle: {
|
|
513
|
+
outlineWidth: 2,
|
|
514
|
+
outlineOffset: 2,
|
|
515
|
+
outlineColor: "var(--color-gray-500)",
|
|
516
|
+
outlineStyle: "solid"
|
|
517
|
+
},
|
|
518
|
+
cursor: disabled ? "not-allowed" : TAG_VARIANT[resolvedVariant].cursor,
|
|
519
|
+
...disabled ? { opacity: 0.4, pointerEvents: "none" } : {},
|
|
520
|
+
...isSelected && { "data-selected": true },
|
|
479
521
|
...disabled && { "data-disabled": true },
|
|
522
|
+
className,
|
|
480
523
|
...rest,
|
|
481
524
|
children: [
|
|
482
|
-
startElement && /* @__PURE__ */ jsxRuntime.jsx(
|
|
525
|
+
startElement && /* @__PURE__ */ jsxRuntime.jsx(gui.XStack, { flexShrink: 0, alignItems: "center", justifyContent: "center", children: startElement }),
|
|
483
526
|
contentElement,
|
|
484
|
-
endElement &&
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
527
|
+
endElement && (() => {
|
|
528
|
+
const { className: endClassName, ...endElementRest } = endElementProps ?? {};
|
|
529
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
530
|
+
gui.XStack,
|
|
531
|
+
{
|
|
532
|
+
...endElementRest,
|
|
533
|
+
flexShrink: 0,
|
|
534
|
+
alignItems: "center",
|
|
535
|
+
justifyContent: "center",
|
|
536
|
+
className: endClassName,
|
|
537
|
+
children: endElement
|
|
538
|
+
}
|
|
539
|
+
);
|
|
540
|
+
})(),
|
|
541
|
+
closable && /* @__PURE__ */ jsxRuntime.jsx(gui.XStack, { flexShrink: 0, alignItems: "center", justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { onClick: onClose }) })
|
|
496
542
|
]
|
|
497
543
|
}
|
|
498
544
|
) });
|