@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/drawer.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 RadixDialog = require('@radix-ui/react-dialog');
|
|
5
|
-
var
|
|
6
|
+
var React3 = require('react');
|
|
6
7
|
var clsx = require('clsx');
|
|
7
8
|
var tailwindMerge = require('tailwind-merge');
|
|
8
|
-
var gui = require('@hanzo/gui');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
10
|
|
|
11
11
|
function _interopNamespace(e) {
|
|
@@ -27,9 +27,22 @@ function _interopNamespace(e) {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
var RadixDialog__namespace = /*#__PURE__*/_interopNamespace(RadixDialog);
|
|
30
|
-
var
|
|
30
|
+
var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
|
|
31
31
|
|
|
32
32
|
// src/drawer.tsx
|
|
33
|
+
var NARROW_PX = 640;
|
|
34
|
+
function useBelow(px) {
|
|
35
|
+
const [below, setBelow] = React3__namespace.useState(false);
|
|
36
|
+
React3__namespace.useEffect(() => {
|
|
37
|
+
const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
|
|
38
|
+
const apply = () => setBelow(mql.matches);
|
|
39
|
+
apply();
|
|
40
|
+
mql.addEventListener("change", apply);
|
|
41
|
+
return () => mql.removeEventListener("change", apply);
|
|
42
|
+
}, [px]);
|
|
43
|
+
return below;
|
|
44
|
+
}
|
|
45
|
+
var useIsNarrow = () => useBelow(NARROW_PX);
|
|
33
46
|
function cn(...inputs) {
|
|
34
47
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
48
|
}
|
|
@@ -68,7 +81,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
68
81
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
69
82
|
"disabled:opacity-40"
|
|
70
83
|
].join(" ");
|
|
71
|
-
var CloseButton =
|
|
84
|
+
var CloseButton = React3__namespace.forwardRef(function CloseButton2(props, ref) {
|
|
72
85
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
73
86
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
74
87
|
CloseButtonFrame,
|
|
@@ -95,8 +108,14 @@ var CloseButton = React2__namespace.forwardRef(function CloseButton2(props, ref)
|
|
|
95
108
|
}
|
|
96
109
|
);
|
|
97
110
|
});
|
|
98
|
-
var DrawerPlacementContext =
|
|
99
|
-
var DrawerSizeContext =
|
|
111
|
+
var DrawerPlacementContext = React3__namespace.createContext("right");
|
|
112
|
+
var DrawerSizeContext = React3__namespace.createContext("md");
|
|
113
|
+
var DrawerStateContext = React3__namespace.createContext({
|
|
114
|
+
open: false,
|
|
115
|
+
setOpen: () => {
|
|
116
|
+
},
|
|
117
|
+
modal: true
|
|
118
|
+
});
|
|
100
119
|
var DrawerRoot = (props) => {
|
|
101
120
|
const {
|
|
102
121
|
children,
|
|
@@ -107,19 +126,26 @@ var DrawerRoot = (props) => {
|
|
|
107
126
|
modal = true,
|
|
108
127
|
size = "md"
|
|
109
128
|
} = props;
|
|
110
|
-
const
|
|
129
|
+
const [uncontrolled, setUncontrolled] = React3__namespace.useState(defaultOpen ?? false);
|
|
130
|
+
const isControlled = open !== void 0;
|
|
131
|
+
const isOpen = isControlled ? open : uncontrolled;
|
|
132
|
+
const setOpen = React3__namespace.useCallback((nextOpen) => {
|
|
133
|
+
if (!isControlled) setUncontrolled(nextOpen);
|
|
111
134
|
onOpenChange?.({ open: nextOpen });
|
|
112
|
-
}, [onOpenChange]);
|
|
113
|
-
|
|
135
|
+
}, [isControlled, onOpenChange]);
|
|
136
|
+
const state = React3__namespace.useMemo(
|
|
137
|
+
() => ({ open: isOpen, setOpen, modal }),
|
|
138
|
+
[isOpen, setOpen, modal]
|
|
139
|
+
);
|
|
140
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DrawerPlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsxRuntime.jsx(DrawerSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsxRuntime.jsx(DrawerStateContext.Provider, { value: state, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
114
141
|
RadixDialog__namespace.Root,
|
|
115
142
|
{
|
|
116
|
-
open,
|
|
117
|
-
|
|
118
|
-
onOpenChange: handleOpenChange,
|
|
143
|
+
open: isOpen,
|
|
144
|
+
onOpenChange: setOpen,
|
|
119
145
|
modal,
|
|
120
146
|
children
|
|
121
147
|
}
|
|
122
|
-
) }) });
|
|
148
|
+
) }) }) });
|
|
123
149
|
};
|
|
124
150
|
var PLACEMENT_CLASSES = {
|
|
125
151
|
right: [
|
|
@@ -149,11 +175,51 @@ var SIZE_CLASSES = {
|
|
|
149
175
|
top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
|
|
150
176
|
bottom: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" }
|
|
151
177
|
};
|
|
152
|
-
var DrawerContent =
|
|
178
|
+
var DrawerContent = React3__namespace.forwardRef(
|
|
153
179
|
function DrawerContent2(props, ref) {
|
|
154
180
|
const { children, portalled = true, portalRef, offset: _offset, backdrop = true, className, ...rest } = props;
|
|
155
|
-
const placement =
|
|
156
|
-
const size =
|
|
181
|
+
const placement = React3__namespace.useContext(DrawerPlacementContext);
|
|
182
|
+
const size = React3__namespace.useContext(DrawerSizeContext);
|
|
183
|
+
const { open, setOpen, modal } = React3__namespace.useContext(DrawerStateContext);
|
|
184
|
+
const isNarrow = useIsNarrow();
|
|
185
|
+
if (isNarrow) {
|
|
186
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
187
|
+
gui.Sheet,
|
|
188
|
+
{
|
|
189
|
+
open,
|
|
190
|
+
onOpenChange: setOpen,
|
|
191
|
+
modal,
|
|
192
|
+
dismissOnSnapToBottom: true,
|
|
193
|
+
snapPointsMode: "percent",
|
|
194
|
+
snapPoints: [88],
|
|
195
|
+
transition: "medium",
|
|
196
|
+
children: [
|
|
197
|
+
backdrop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
198
|
+
gui.Sheet.Overlay,
|
|
199
|
+
{
|
|
200
|
+
transition: "lazy",
|
|
201
|
+
enterStyle: { opacity: 0 },
|
|
202
|
+
exitStyle: { opacity: 0 },
|
|
203
|
+
className: "bg-black/50"
|
|
204
|
+
}
|
|
205
|
+
),
|
|
206
|
+
/* @__PURE__ */ jsxRuntime.jsx(gui.Sheet.Handle, {}),
|
|
207
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
208
|
+
gui.Sheet.Frame,
|
|
209
|
+
{
|
|
210
|
+
unstyled: true,
|
|
211
|
+
className: cn(
|
|
212
|
+
"flex flex-col rounded-t-2xl bg-[var(--color-drawer-bg)] shadow-[var(--shadow-drawer)]",
|
|
213
|
+
className
|
|
214
|
+
),
|
|
215
|
+
...rest,
|
|
216
|
+
children
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
}
|
|
157
223
|
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
158
224
|
backdrop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
159
225
|
RadixDialog__namespace.Overlay,
|
|
@@ -186,7 +252,7 @@ var DrawerContent = React2__namespace.forwardRef(
|
|
|
186
252
|
return content;
|
|
187
253
|
}
|
|
188
254
|
);
|
|
189
|
-
var DrawerCloseTrigger =
|
|
255
|
+
var DrawerCloseTrigger = React3__namespace.forwardRef(function DrawerCloseTrigger2(props, ref) {
|
|
190
256
|
return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
191
257
|
CloseButton,
|
|
192
258
|
{
|
|
@@ -200,17 +266,17 @@ var DrawerTrigger = (props) => {
|
|
|
200
266
|
const { asChild = true, ...rest } = props;
|
|
201
267
|
return /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild, ...rest });
|
|
202
268
|
};
|
|
203
|
-
var DrawerHeader =
|
|
269
|
+
var DrawerHeader = React3__namespace.forwardRef(
|
|
204
270
|
function DrawerHeader2({ className, ...props }, ref) {
|
|
205
271
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col gap-1.5 p-6 pb-0", className), ...props });
|
|
206
272
|
}
|
|
207
273
|
);
|
|
208
|
-
var DrawerBody =
|
|
274
|
+
var DrawerBody = React3__namespace.forwardRef(
|
|
209
275
|
function DrawerBody2({ className, ...props }, ref) {
|
|
210
276
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex-1 overflow-auto p-6", className), ...props });
|
|
211
277
|
}
|
|
212
278
|
);
|
|
213
|
-
var DrawerFooter =
|
|
279
|
+
var DrawerFooter = React3__namespace.forwardRef(
|
|
214
280
|
function DrawerFooter2({ className, ...props }, ref) {
|
|
215
281
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center justify-end gap-2 p-6 pt-0", className), ...props });
|
|
216
282
|
}
|
package/dist/drawer.js
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { styled, View, Sheet } from '@hanzo/gui';
|
|
2
3
|
import * as RadixDialog from '@radix-ui/react-dialog';
|
|
3
|
-
import * as
|
|
4
|
+
import * as React3 from 'react';
|
|
4
5
|
import { clsx } from 'clsx';
|
|
5
6
|
import { twMerge } from 'tailwind-merge';
|
|
6
|
-
import { styled, View } from '@hanzo/gui';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
// src/drawer.tsx
|
|
10
|
+
var NARROW_PX = 640;
|
|
11
|
+
function useBelow(px) {
|
|
12
|
+
const [below, setBelow] = React3.useState(false);
|
|
13
|
+
React3.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 useIsNarrow = () => useBelow(NARROW_PX);
|
|
10
23
|
function cn(...inputs) {
|
|
11
24
|
return twMerge(clsx(inputs));
|
|
12
25
|
}
|
|
@@ -45,7 +58,7 @@ var CLOSE_BUTTON_CLASSES = [
|
|
|
45
58
|
"hover:text-[var(--hover-color,currentColor)]",
|
|
46
59
|
"disabled:opacity-40"
|
|
47
60
|
].join(" ");
|
|
48
|
-
var CloseButton =
|
|
61
|
+
var CloseButton = React3.forwardRef(function CloseButton2(props, ref) {
|
|
49
62
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
50
63
|
return /* @__PURE__ */ jsx(
|
|
51
64
|
CloseButtonFrame,
|
|
@@ -72,8 +85,14 @@ var CloseButton = React2.forwardRef(function CloseButton2(props, ref) {
|
|
|
72
85
|
}
|
|
73
86
|
);
|
|
74
87
|
});
|
|
75
|
-
var DrawerPlacementContext =
|
|
76
|
-
var DrawerSizeContext =
|
|
88
|
+
var DrawerPlacementContext = React3.createContext("right");
|
|
89
|
+
var DrawerSizeContext = React3.createContext("md");
|
|
90
|
+
var DrawerStateContext = React3.createContext({
|
|
91
|
+
open: false,
|
|
92
|
+
setOpen: () => {
|
|
93
|
+
},
|
|
94
|
+
modal: true
|
|
95
|
+
});
|
|
77
96
|
var DrawerRoot = (props) => {
|
|
78
97
|
const {
|
|
79
98
|
children,
|
|
@@ -84,19 +103,26 @@ var DrawerRoot = (props) => {
|
|
|
84
103
|
modal = true,
|
|
85
104
|
size = "md"
|
|
86
105
|
} = props;
|
|
87
|
-
const
|
|
106
|
+
const [uncontrolled, setUncontrolled] = React3.useState(defaultOpen ?? false);
|
|
107
|
+
const isControlled = open !== void 0;
|
|
108
|
+
const isOpen = isControlled ? open : uncontrolled;
|
|
109
|
+
const setOpen = React3.useCallback((nextOpen) => {
|
|
110
|
+
if (!isControlled) setUncontrolled(nextOpen);
|
|
88
111
|
onOpenChange?.({ open: nextOpen });
|
|
89
|
-
}, [onOpenChange]);
|
|
90
|
-
|
|
112
|
+
}, [isControlled, onOpenChange]);
|
|
113
|
+
const state = React3.useMemo(
|
|
114
|
+
() => ({ open: isOpen, setOpen, modal }),
|
|
115
|
+
[isOpen, setOpen, modal]
|
|
116
|
+
);
|
|
117
|
+
return /* @__PURE__ */ jsx(DrawerPlacementContext.Provider, { value: placement, children: /* @__PURE__ */ jsx(DrawerSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx(DrawerStateContext.Provider, { value: state, children: /* @__PURE__ */ jsx(
|
|
91
118
|
RadixDialog.Root,
|
|
92
119
|
{
|
|
93
|
-
open,
|
|
94
|
-
|
|
95
|
-
onOpenChange: handleOpenChange,
|
|
120
|
+
open: isOpen,
|
|
121
|
+
onOpenChange: setOpen,
|
|
96
122
|
modal,
|
|
97
123
|
children
|
|
98
124
|
}
|
|
99
|
-
) }) });
|
|
125
|
+
) }) }) });
|
|
100
126
|
};
|
|
101
127
|
var PLACEMENT_CLASSES = {
|
|
102
128
|
right: [
|
|
@@ -126,11 +152,51 @@ var SIZE_CLASSES = {
|
|
|
126
152
|
top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
|
|
127
153
|
bottom: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" }
|
|
128
154
|
};
|
|
129
|
-
var DrawerContent =
|
|
155
|
+
var DrawerContent = React3.forwardRef(
|
|
130
156
|
function DrawerContent2(props, ref) {
|
|
131
157
|
const { children, portalled = true, portalRef, offset: _offset, backdrop = true, className, ...rest } = props;
|
|
132
|
-
const placement =
|
|
133
|
-
const size =
|
|
158
|
+
const placement = React3.useContext(DrawerPlacementContext);
|
|
159
|
+
const size = React3.useContext(DrawerSizeContext);
|
|
160
|
+
const { open, setOpen, modal } = React3.useContext(DrawerStateContext);
|
|
161
|
+
const isNarrow = useIsNarrow();
|
|
162
|
+
if (isNarrow) {
|
|
163
|
+
return /* @__PURE__ */ jsxs(
|
|
164
|
+
Sheet,
|
|
165
|
+
{
|
|
166
|
+
open,
|
|
167
|
+
onOpenChange: setOpen,
|
|
168
|
+
modal,
|
|
169
|
+
dismissOnSnapToBottom: true,
|
|
170
|
+
snapPointsMode: "percent",
|
|
171
|
+
snapPoints: [88],
|
|
172
|
+
transition: "medium",
|
|
173
|
+
children: [
|
|
174
|
+
backdrop && /* @__PURE__ */ jsx(
|
|
175
|
+
Sheet.Overlay,
|
|
176
|
+
{
|
|
177
|
+
transition: "lazy",
|
|
178
|
+
enterStyle: { opacity: 0 },
|
|
179
|
+
exitStyle: { opacity: 0 },
|
|
180
|
+
className: "bg-black/50"
|
|
181
|
+
}
|
|
182
|
+
),
|
|
183
|
+
/* @__PURE__ */ jsx(Sheet.Handle, {}),
|
|
184
|
+
/* @__PURE__ */ jsx(
|
|
185
|
+
Sheet.Frame,
|
|
186
|
+
{
|
|
187
|
+
unstyled: true,
|
|
188
|
+
className: cn(
|
|
189
|
+
"flex flex-col rounded-t-2xl bg-[var(--color-drawer-bg)] shadow-[var(--shadow-drawer)]",
|
|
190
|
+
className
|
|
191
|
+
),
|
|
192
|
+
...rest,
|
|
193
|
+
children
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
}
|
|
134
200
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
135
201
|
backdrop && /* @__PURE__ */ jsx(
|
|
136
202
|
RadixDialog.Overlay,
|
|
@@ -163,7 +229,7 @@ var DrawerContent = React2.forwardRef(
|
|
|
163
229
|
return content;
|
|
164
230
|
}
|
|
165
231
|
);
|
|
166
|
-
var DrawerCloseTrigger =
|
|
232
|
+
var DrawerCloseTrigger = React3.forwardRef(function DrawerCloseTrigger2(props, ref) {
|
|
167
233
|
return /* @__PURE__ */ jsx(RadixDialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
168
234
|
CloseButton,
|
|
169
235
|
{
|
|
@@ -177,17 +243,17 @@ var DrawerTrigger = (props) => {
|
|
|
177
243
|
const { asChild = true, ...rest } = props;
|
|
178
244
|
return /* @__PURE__ */ jsx(RadixDialog.Trigger, { asChild, ...rest });
|
|
179
245
|
};
|
|
180
|
-
var DrawerHeader =
|
|
246
|
+
var DrawerHeader = React3.forwardRef(
|
|
181
247
|
function DrawerHeader2({ className, ...props }, ref) {
|
|
182
248
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 p-6 pb-0", className), ...props });
|
|
183
249
|
}
|
|
184
250
|
);
|
|
185
|
-
var DrawerBody =
|
|
251
|
+
var DrawerBody = React3.forwardRef(
|
|
186
252
|
function DrawerBody2({ className, ...props }, ref) {
|
|
187
253
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 overflow-auto p-6", className), ...props });
|
|
188
254
|
}
|
|
189
255
|
);
|
|
190
|
-
var DrawerFooter =
|
|
256
|
+
var DrawerFooter = React3.forwardRef(
|
|
191
257
|
function DrawerFooter2({ className, ...props }, ref) {
|
|
192
258
|
return /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center justify-end gap-2 p-6 pt-0", className), ...props });
|
|
193
259
|
}
|
|
@@ -54,8 +54,9 @@ function ExpirationPill({ exp, isSelected, onClick }) {
|
|
|
54
54
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium whitespace-nowrap", children: formatExpDate(exp.date) }),
|
|
55
55
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn(
|
|
56
56
|
"font-mono tabular-nums text-[10px]",
|
|
57
|
-
isSelected ? "text-
|
|
58
|
-
|
|
57
|
+
isSelected ? "text-[var(--foreground)]" : "text-[var(--muted-foreground)]",
|
|
58
|
+
// Near expiry is a notice, and a notice in Lux is the loudest neutral.
|
|
59
|
+
exp.dte <= 7 && !isSelected && "text-[var(--color-status-warn)]"
|
|
59
60
|
), children: [
|
|
60
61
|
exp.dte,
|
|
61
62
|
"d"
|
|
@@ -32,8 +32,9 @@ function ExpirationPill({ exp, isSelected, onClick }) {
|
|
|
32
32
|
/* @__PURE__ */ jsx("span", { className: "font-medium whitespace-nowrap", children: formatExpDate(exp.date) }),
|
|
33
33
|
/* @__PURE__ */ jsxs("span", { className: cn(
|
|
34
34
|
"font-mono tabular-nums text-[10px]",
|
|
35
|
-
isSelected ? "text-
|
|
36
|
-
|
|
35
|
+
isSelected ? "text-[var(--foreground)]" : "text-[var(--muted-foreground)]",
|
|
36
|
+
// Near expiry is a notice, and a notice in Lux is the loudest neutral.
|
|
37
|
+
exp.dte <= 7 && !isSelected && "text-[var(--color-status-warn)]"
|
|
37
38
|
), children: [
|
|
38
39
|
exp.dte,
|
|
39
40
|
"d"
|
package/dist/greeks-display.cjs
CHANGED
|
@@ -30,12 +30,12 @@ function cn(...inputs) {
|
|
|
30
30
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
31
31
|
}
|
|
32
32
|
var GREEKS = [
|
|
33
|
-
{ key: "delta", label: "Delta", symbol: "\u0394", color: "text-
|
|
34
|
-
{ key: "gamma", label: "Gamma", symbol: "\u0393", color: "text-
|
|
35
|
-
{ key: "theta", label: "Theta", symbol: "\u0398", color: "text-
|
|
36
|
-
{ key: "vega", label: "Vega", symbol: "\u03BD", color: "text-
|
|
37
|
-
{ key: "rho", label: "Rho", symbol: "\u03C1", color: "text-
|
|
38
|
-
{ key: "iv", label: "IV", symbol: "\u03C3", color: "text-
|
|
33
|
+
{ key: "delta", label: "Delta", symbol: "\u0394", color: "text-[var(--foreground)]", barColor: "bg-[var(--foreground)]", decimals: 4, maxMagnitude: 1 },
|
|
34
|
+
{ key: "gamma", label: "Gamma", symbol: "\u0393", color: "text-[var(--chart-1)]", barColor: "bg-[var(--chart-1)]", decimals: 4, maxMagnitude: 0.1 },
|
|
35
|
+
{ key: "theta", label: "Theta", symbol: "\u0398", color: "text-[var(--chart-4)]", barColor: "bg-[var(--chart-4)]", decimals: 4, maxMagnitude: 1 },
|
|
36
|
+
{ key: "vega", label: "Vega", symbol: "\u03BD", color: "text-[var(--chart-2)]", barColor: "bg-[var(--chart-2)]", decimals: 4, maxMagnitude: 1 },
|
|
37
|
+
{ key: "rho", label: "Rho", symbol: "\u03C1", color: "text-[var(--chart-3)]", barColor: "bg-[var(--chart-3)]", decimals: 4, maxMagnitude: 1 },
|
|
38
|
+
{ key: "iv", label: "IV", symbol: "\u03C3", color: "text-[var(--chart-5)]", barColor: "bg-[var(--chart-5)]", decimals: 1, maxMagnitude: 100 }
|
|
39
39
|
];
|
|
40
40
|
function GreekItem({ def, value, compact }) {
|
|
41
41
|
const magnitude = Math.min(Math.abs(value) / def.maxMagnitude, 1);
|
package/dist/greeks-display.js
CHANGED
|
@@ -8,12 +8,12 @@ function cn(...inputs) {
|
|
|
8
8
|
return twMerge(clsx(inputs));
|
|
9
9
|
}
|
|
10
10
|
var GREEKS = [
|
|
11
|
-
{ key: "delta", label: "Delta", symbol: "\u0394", color: "text-
|
|
12
|
-
{ key: "gamma", label: "Gamma", symbol: "\u0393", color: "text-
|
|
13
|
-
{ key: "theta", label: "Theta", symbol: "\u0398", color: "text-
|
|
14
|
-
{ key: "vega", label: "Vega", symbol: "\u03BD", color: "text-
|
|
15
|
-
{ key: "rho", label: "Rho", symbol: "\u03C1", color: "text-
|
|
16
|
-
{ key: "iv", label: "IV", symbol: "\u03C3", color: "text-
|
|
11
|
+
{ key: "delta", label: "Delta", symbol: "\u0394", color: "text-[var(--foreground)]", barColor: "bg-[var(--foreground)]", decimals: 4, maxMagnitude: 1 },
|
|
12
|
+
{ key: "gamma", label: "Gamma", symbol: "\u0393", color: "text-[var(--chart-1)]", barColor: "bg-[var(--chart-1)]", decimals: 4, maxMagnitude: 0.1 },
|
|
13
|
+
{ key: "theta", label: "Theta", symbol: "\u0398", color: "text-[var(--chart-4)]", barColor: "bg-[var(--chart-4)]", decimals: 4, maxMagnitude: 1 },
|
|
14
|
+
{ key: "vega", label: "Vega", symbol: "\u03BD", color: "text-[var(--chart-2)]", barColor: "bg-[var(--chart-2)]", decimals: 4, maxMagnitude: 1 },
|
|
15
|
+
{ key: "rho", label: "Rho", symbol: "\u03C1", color: "text-[var(--chart-3)]", barColor: "bg-[var(--chart-3)]", decimals: 4, maxMagnitude: 1 },
|
|
16
|
+
{ key: "iv", label: "IV", symbol: "\u03C3", color: "text-[var(--chart-5)]", barColor: "bg-[var(--chart-5)]", decimals: 1, maxMagnitude: 100 }
|
|
17
17
|
];
|
|
18
18
|
function GreekItem({ def, value, compact }) {
|
|
19
19
|
const magnitude = Math.min(Math.abs(value) / def.maxMagnitude, 1);
|
package/dist/gui.cjs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var gui = require('@hanzo/gui');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.keys(gui).forEach(function (k) {
|
|
9
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return gui[k]; }
|
|
12
|
+
});
|
|
13
|
+
});
|
package/dist/gui.d.cts
ADDED
package/dist/gui.d.ts
ADDED
package/dist/gui.js
ADDED
package/dist/heading.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');
|
|
@@ -14,7 +15,7 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
14
15
|
function cn(...inputs) {
|
|
15
16
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
16
17
|
}
|
|
17
|
-
var LEVEL_TAG = { "1":
|
|
18
|
+
var LEVEL_TAG = { "1": gui.H1, "2": gui.H2, "3": gui.H3 };
|
|
18
19
|
var LEVEL_CLASSES = {
|
|
19
20
|
"1": "text-[18px] leading-[24px] font-medium lg:text-[32px] lg:leading-[40px] lg:tracking-[-0.5px]",
|
|
20
21
|
"2": "text-[16px] leading-[24px] font-medium lg:text-[24px] lg:leading-[32px]",
|
|
@@ -23,13 +24,14 @@ var LEVEL_CLASSES = {
|
|
|
23
24
|
var BASE_CLASSES = "font-heading text-heading";
|
|
24
25
|
var Heading = React__default.default.forwardRef(
|
|
25
26
|
function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
|
|
26
|
-
const Tag = level ? LEVEL_TAG[level] :
|
|
27
|
+
const Tag = level ? LEVEL_TAG[level] : gui.H2;
|
|
27
28
|
const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
|
|
28
29
|
const mergedStyle = mb !== void 0 ? { ...styleProp, marginBottom: typeof mb === "number" ? `${mb * 4}px` : mb } : styleProp;
|
|
29
30
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
31
|
Tag,
|
|
31
32
|
{
|
|
32
33
|
ref,
|
|
34
|
+
unstyled: true,
|
|
33
35
|
className: cn(BASE_CLASSES, levelClasses, className),
|
|
34
36
|
style: mergedStyle,
|
|
35
37
|
...rest
|
package/dist/heading.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { H3, H2, H1 } from '@hanzo/gui';
|
|
2
3
|
import React from 'react';
|
|
3
4
|
import { clsx } from 'clsx';
|
|
4
5
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -8,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
8
9
|
function cn(...inputs) {
|
|
9
10
|
return twMerge(clsx(inputs));
|
|
10
11
|
}
|
|
11
|
-
var LEVEL_TAG = { "1":
|
|
12
|
+
var LEVEL_TAG = { "1": H1, "2": H2, "3": H3 };
|
|
12
13
|
var LEVEL_CLASSES = {
|
|
13
14
|
"1": "text-[18px] leading-[24px] font-medium lg:text-[32px] lg:leading-[40px] lg:tracking-[-0.5px]",
|
|
14
15
|
"2": "text-[16px] leading-[24px] font-medium lg:text-[24px] lg:leading-[32px]",
|
|
@@ -17,13 +18,14 @@ var LEVEL_CLASSES = {
|
|
|
17
18
|
var BASE_CLASSES = "font-heading text-heading";
|
|
18
19
|
var Heading = React.forwardRef(
|
|
19
20
|
function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
|
|
20
|
-
const Tag = level ? LEVEL_TAG[level] :
|
|
21
|
+
const Tag = level ? LEVEL_TAG[level] : H2;
|
|
21
22
|
const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
|
|
22
23
|
const mergedStyle = mb !== void 0 ? { ...styleProp, marginBottom: typeof mb === "number" ? `${mb * 4}px` : mb } : styleProp;
|
|
23
24
|
return /* @__PURE__ */ jsx(
|
|
24
25
|
Tag,
|
|
25
26
|
{
|
|
26
27
|
ref,
|
|
28
|
+
unstyled: true,
|
|
27
29
|
className: cn(BASE_CLASSES, levelClasses, className),
|
|
28
30
|
style: mergedStyle,
|
|
29
31
|
...rest
|