@luxfi/ui 7.0.0 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/alert.cjs +184 -335
- package/dist/alert.js +184 -335
- package/dist/badge.cjs +162 -321
- package/dist/badge.d.cts +3 -7
- package/dist/badge.d.ts +3 -7
- package/dist/badge.js +162 -320
- package/dist/bank.d.cts +1 -1
- package/dist/bank.d.ts +1 -1
- package/dist/button.cjs +373 -484
- package/dist/button.d.cts +10 -7
- package/dist/button.d.ts +10 -7
- package/dist/button.js +373 -484
- package/dist/close-button.cjs +37 -18
- package/dist/close-button.d.cts +1 -1
- package/dist/close-button.d.ts +1 -1
- package/dist/close-button.js +37 -18
- package/dist/collapsible.cjs +125 -272
- package/dist/collapsible.js +125 -272
- package/dist/dialog.cjs +60 -44
- package/dist/dialog.d.cts +7 -8
- package/dist/dialog.d.ts +7 -8
- package/dist/dialog.js +60 -43
- package/dist/drawer.cjs +37 -13
- package/dist/drawer.js +37 -13
- package/dist/heading.cjs +3 -8
- package/dist/heading.js +3 -8
- package/dist/icon-button.cjs +213 -337
- package/dist/icon-button.d.cts +4 -4
- package/dist/icon-button.d.ts +4 -4
- package/dist/icon-button.js +213 -338
- package/dist/image.cjs +125 -272
- package/dist/image.js +125 -272
- package/dist/index.cjs +695 -858
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +695 -856
- package/dist/input.cjs +25 -36
- package/dist/input.js +25 -36
- package/dist/link.cjs +125 -272
- package/dist/link.js +125 -272
- package/dist/popover.cjs +55 -40
- package/dist/popover.js +55 -39
- package/dist/select.cjs +125 -272
- package/dist/select.js +125 -272
- package/dist/skeleton.cjs +125 -272
- package/dist/skeleton.js +125 -272
- package/dist/table.cjs +127 -274
- package/dist/table.js +127 -274
- package/dist/tag.cjs +199 -341
- package/dist/tag.js +199 -340
- package/dist/textarea.cjs +25 -36
- package/dist/textarea.js +25 -36
- package/dist/tooltip.cjs +22 -21
- package/dist/tooltip.d.cts +2 -3
- package/dist/tooltip.d.ts +2 -3
- package/dist/tooltip.js +22 -20
- package/package.json +9 -8
- package/src/alert.tsx +23 -51
- package/src/badge.tsx +20 -31
- package/src/button.tsx +304 -238
- package/src/close-button.tsx +48 -22
- package/src/dialog.tsx +37 -47
- package/src/heading.tsx +8 -19
- package/src/icon-button.tsx +129 -104
- package/src/input.tsx +27 -36
- package/src/popover.tsx +30 -44
- package/src/skeleton.tsx +96 -144
- package/src/tag.tsx +17 -35
- package/src/textarea.tsx +27 -36
- package/src/tooltip.tsx +54 -47
package/dist/index.js
CHANGED
|
@@ -5,19 +5,19 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
|
5
5
|
import * as React29 from 'react';
|
|
6
6
|
import React29__default from 'react';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
-
import {
|
|
8
|
+
import { styled, View, Text } from '@hanzogui/core';
|
|
9
9
|
import * as RadixAvatar from '@radix-ui/react-avatar';
|
|
10
|
-
import
|
|
10
|
+
import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzogui/tooltip';
|
|
11
11
|
import { useClickAway, useDebounce } from '@uidotdev/usehooks';
|
|
12
|
-
import { Slot } from '@radix-ui/react-slot';
|
|
13
12
|
import * as RadixCheckbox from '@radix-ui/react-checkbox';
|
|
14
13
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
|
14
|
+
import { Dialog } from '@hanzogui/dialog';
|
|
15
15
|
import * as RadixDialog from '@radix-ui/react-dialog';
|
|
16
16
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
17
17
|
import { debounce, throttle } from 'es-toolkit';
|
|
18
18
|
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
19
19
|
import { LuCheck, LuChevronRight } from 'react-icons/lu';
|
|
20
|
-
import
|
|
20
|
+
import { Popover } from '@hanzogui/popover';
|
|
21
21
|
import * as RadixProgress from '@radix-ui/react-progress';
|
|
22
22
|
import * as RadixRadioGroup from '@radix-ui/react-radio-group';
|
|
23
23
|
import * as RadixSelect from '@radix-ui/react-select';
|
|
@@ -25,7 +25,6 @@ import * as RadixSlider from '@radix-ui/react-slider';
|
|
|
25
25
|
import * as RadixSwitch from '@radix-ui/react-switch';
|
|
26
26
|
import * as RadixTabs from '@radix-ui/react-tabs';
|
|
27
27
|
import { toast, Toaster as Toaster$1 } from 'sonner';
|
|
28
|
-
import { styled, View, Text } from '@hanzogui/core';
|
|
29
28
|
|
|
30
29
|
// src/utils.ts
|
|
31
30
|
function cn(...inputs) {
|
|
@@ -205,24 +204,47 @@ function useAccordion(items) {
|
|
|
205
204
|
}, [value, onValueChange, scrollToItemFromUrl]);
|
|
206
205
|
}
|
|
207
206
|
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";
|
|
207
|
+
var CloseButtonFrame = styled(View, {
|
|
208
|
+
name: "LuxCloseButton",
|
|
209
|
+
render: /* @__PURE__ */ jsx("button", { type: "button", "aria-label": "Close" }),
|
|
210
|
+
role: "button",
|
|
211
|
+
cursor: "pointer",
|
|
212
|
+
display: "inline-flex",
|
|
213
|
+
alignItems: "center",
|
|
214
|
+
justifyContent: "center",
|
|
215
|
+
width: 20,
|
|
216
|
+
height: 20,
|
|
217
|
+
minWidth: 0,
|
|
218
|
+
flexShrink: 1,
|
|
219
|
+
padding: 0,
|
|
220
|
+
borderRadius: 4,
|
|
221
|
+
borderWidth: 0,
|
|
222
|
+
overflow: "hidden",
|
|
223
|
+
backgroundColor: "transparent",
|
|
224
|
+
hoverStyle: {
|
|
225
|
+
backgroundColor: "transparent"
|
|
226
|
+
},
|
|
227
|
+
variants: {
|
|
228
|
+
disabled: {
|
|
229
|
+
true: {
|
|
230
|
+
opacity: 0.4,
|
|
231
|
+
pointerEvents: "none"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
var CLOSE_BUTTON_CLASSES = [
|
|
237
|
+
"text-[var(--closeButton-fg,currentColor)]",
|
|
238
|
+
"hover:text-[var(--hover-color,currentColor)]",
|
|
239
|
+
"disabled:opacity-40"
|
|
240
|
+
].join(" ");
|
|
208
241
|
var CloseButton = React29.forwardRef(function CloseButton2(props, ref) {
|
|
209
242
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
210
243
|
return /* @__PURE__ */ jsx(
|
|
211
|
-
|
|
244
|
+
CloseButtonFrame,
|
|
212
245
|
{
|
|
213
|
-
type: "button",
|
|
214
|
-
"aria-label": "Close",
|
|
215
246
|
ref,
|
|
216
|
-
className:
|
|
217
|
-
"inline-flex items-center justify-center",
|
|
218
|
-
"size-5 min-w-0 shrink-0 p-0",
|
|
219
|
-
"rounded-sm border-0 overflow-hidden",
|
|
220
|
-
"bg-transparent text-[var(--closeButton-fg,currentColor)]",
|
|
221
|
-
"hover:bg-transparent hover:text-[var(--hover-color,currentColor)]",
|
|
222
|
-
"disabled:opacity-40",
|
|
223
|
-
"cursor-pointer",
|
|
224
|
-
className
|
|
225
|
-
),
|
|
247
|
+
className: [CLOSE_BUTTON_CLASSES, className].filter(Boolean).join(" "),
|
|
226
248
|
...rest,
|
|
227
249
|
children: children ?? /* @__PURE__ */ jsx(
|
|
228
250
|
"svg",
|
|
@@ -243,272 +265,137 @@ var CloseButton = React29.forwardRef(function CloseButton2(props, ref) {
|
|
|
243
265
|
}
|
|
244
266
|
);
|
|
245
267
|
});
|
|
246
|
-
var
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
268
|
+
var SHIM_PROPS = [
|
|
269
|
+
"w",
|
|
270
|
+
"h",
|
|
271
|
+
"minW",
|
|
272
|
+
"maxW",
|
|
273
|
+
"display",
|
|
274
|
+
"flexGrow",
|
|
275
|
+
"flexShrink",
|
|
276
|
+
"flexBasis",
|
|
277
|
+
"fontWeight",
|
|
278
|
+
"textStyle",
|
|
279
|
+
"borderRadius",
|
|
280
|
+
"alignSelf",
|
|
281
|
+
"alignItems",
|
|
282
|
+
"justifyContent",
|
|
283
|
+
"color",
|
|
284
|
+
"mt",
|
|
285
|
+
"mb",
|
|
286
|
+
"ml",
|
|
287
|
+
"mr",
|
|
288
|
+
"height",
|
|
289
|
+
"overflow",
|
|
290
|
+
"whiteSpace",
|
|
291
|
+
"textOverflow",
|
|
292
|
+
"textTransform",
|
|
293
|
+
"gap",
|
|
294
|
+
"gridTemplateColumns",
|
|
295
|
+
"minWidth",
|
|
296
|
+
"boxSize",
|
|
297
|
+
"py",
|
|
298
|
+
"px",
|
|
299
|
+
"p",
|
|
300
|
+
"hideBelow",
|
|
301
|
+
"fontSize",
|
|
302
|
+
"flexWrap",
|
|
303
|
+
"wordBreak",
|
|
304
|
+
"lineHeight",
|
|
305
|
+
"marginRight",
|
|
306
|
+
"position",
|
|
307
|
+
"background"
|
|
308
|
+
];
|
|
309
|
+
var S = 4;
|
|
310
|
+
function dim(v) {
|
|
311
|
+
if (v == null) return void 0;
|
|
312
|
+
if (typeof v === "number") return `${v * S}px`;
|
|
313
|
+
if (typeof v === "string") return v;
|
|
314
|
+
if (typeof v === "object") {
|
|
315
|
+
const o = v;
|
|
316
|
+
return o.base ?? o.lg ?? o.xl ?? Object.values(o)[0];
|
|
317
|
+
}
|
|
318
|
+
return void 0;
|
|
251
319
|
}
|
|
252
|
-
function
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
320
|
+
function sp(v) {
|
|
321
|
+
if (v === void 0) return void 0;
|
|
322
|
+
return typeof v === "number" ? `${v * S}px` : v;
|
|
323
|
+
}
|
|
324
|
+
function shimToStyle(props) {
|
|
325
|
+
const s = {};
|
|
326
|
+
if (props.w !== void 0) s.width = dim(props.w);
|
|
327
|
+
if (props.h !== void 0) s.height = dim(props.h);
|
|
328
|
+
if (props.minW !== void 0) s.minWidth = dim(props.minW);
|
|
329
|
+
if (props.maxW !== void 0) s.maxWidth = dim(props.maxW);
|
|
330
|
+
if (props.display !== void 0) s.display = props.display;
|
|
331
|
+
if (props.flexGrow !== void 0) s.flexGrow = props.flexGrow;
|
|
332
|
+
if (props.flexShrink !== void 0) s.flexShrink = props.flexShrink;
|
|
333
|
+
if (props.flexBasis !== void 0) s.flexBasis = props.flexBasis;
|
|
334
|
+
if (props.fontWeight !== void 0) s.fontWeight = props.fontWeight;
|
|
335
|
+
if (props.borderRadius !== void 0) s.borderRadius = props.borderRadius;
|
|
336
|
+
if (props.alignSelf !== void 0) s.alignSelf = props.alignSelf;
|
|
337
|
+
if (props.alignItems !== void 0) s.alignItems = props.alignItems;
|
|
338
|
+
if (props.justifyContent !== void 0) s.justifyContent = props.justifyContent;
|
|
339
|
+
if (props.color !== void 0) s.color = props.color;
|
|
340
|
+
if (props.mt !== void 0) s.marginTop = sp(props.mt);
|
|
341
|
+
if (props.mb !== void 0) s.marginBottom = sp(props.mb);
|
|
342
|
+
if (props.ml !== void 0) s.marginLeft = sp(props.ml);
|
|
343
|
+
if (props.mr !== void 0) s.marginRight = sp(props.mr);
|
|
344
|
+
if (props.height !== void 0) s.height = props.height;
|
|
345
|
+
if (props.overflow !== void 0) s.overflow = props.overflow;
|
|
346
|
+
if (props.whiteSpace !== void 0) s.whiteSpace = props.whiteSpace;
|
|
347
|
+
if (props.textOverflow !== void 0) s.textOverflow = props.textOverflow;
|
|
348
|
+
if (props.textTransform !== void 0) s.textTransform = props.textTransform;
|
|
349
|
+
if (props.gap !== void 0) s.gap = sp(props.gap);
|
|
350
|
+
if (props.gridTemplateColumns !== void 0) s.gridTemplateColumns = props.gridTemplateColumns;
|
|
351
|
+
if (props.minWidth !== void 0) s.minWidth = props.minWidth;
|
|
352
|
+
if (props.boxSize !== void 0) {
|
|
353
|
+
const v = typeof props.boxSize === "number" ? `${props.boxSize * S}px` : props.boxSize;
|
|
354
|
+
s.width = v;
|
|
355
|
+
s.height = v;
|
|
264
356
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const v = resolveDimension(value);
|
|
270
|
-
if (v) style.width = v;
|
|
271
|
-
break;
|
|
272
|
-
}
|
|
273
|
-
case "h": {
|
|
274
|
-
const v = resolveDimension(value);
|
|
275
|
-
if (v) style.height = v;
|
|
276
|
-
break;
|
|
277
|
-
}
|
|
278
|
-
case "minW": {
|
|
279
|
-
const v = resolveDimension(value);
|
|
280
|
-
if (v) style.minWidth = v;
|
|
281
|
-
break;
|
|
282
|
-
}
|
|
283
|
-
case "maxW": {
|
|
284
|
-
const v = resolveDimension(value);
|
|
285
|
-
if (v) style.maxWidth = v;
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
case "height":
|
|
289
|
-
style.height = value;
|
|
290
|
-
break;
|
|
291
|
-
case "display":
|
|
292
|
-
style.display = value;
|
|
293
|
-
break;
|
|
294
|
-
case "flexGrow":
|
|
295
|
-
style.flexGrow = value;
|
|
296
|
-
break;
|
|
297
|
-
case "flexShrink":
|
|
298
|
-
style.flexShrink = value;
|
|
299
|
-
break;
|
|
300
|
-
case "flexBasis":
|
|
301
|
-
style.flexBasis = value;
|
|
302
|
-
break;
|
|
303
|
-
case "fontWeight":
|
|
304
|
-
style.fontWeight = value;
|
|
305
|
-
break;
|
|
306
|
-
case "borderRadius":
|
|
307
|
-
style.borderRadius = value;
|
|
308
|
-
break;
|
|
309
|
-
case "alignSelf":
|
|
310
|
-
style.alignSelf = value;
|
|
311
|
-
break;
|
|
312
|
-
case "alignItems":
|
|
313
|
-
style.alignItems = value;
|
|
314
|
-
break;
|
|
315
|
-
case "justifyContent":
|
|
316
|
-
style.justifyContent = value;
|
|
317
|
-
break;
|
|
318
|
-
case "color":
|
|
319
|
-
style.color = value;
|
|
320
|
-
break;
|
|
321
|
-
case "mt":
|
|
322
|
-
style.marginTop = toStylePx(value);
|
|
323
|
-
break;
|
|
324
|
-
case "mb":
|
|
325
|
-
style.marginBottom = toStylePx(value);
|
|
326
|
-
break;
|
|
327
|
-
case "ml":
|
|
328
|
-
style.marginLeft = toStylePx(value);
|
|
329
|
-
break;
|
|
330
|
-
case "mr":
|
|
331
|
-
style.marginRight = toStylePx(value);
|
|
332
|
-
break;
|
|
333
|
-
case "overflow":
|
|
334
|
-
style.overflow = value;
|
|
335
|
-
break;
|
|
336
|
-
case "whiteSpace":
|
|
337
|
-
style.whiteSpace = value;
|
|
338
|
-
break;
|
|
339
|
-
case "textOverflow":
|
|
340
|
-
style.textOverflow = value;
|
|
341
|
-
break;
|
|
342
|
-
case "textTransform":
|
|
343
|
-
style.textTransform = value;
|
|
344
|
-
break;
|
|
345
|
-
case "gap":
|
|
346
|
-
style.gap = typeof value === "number" ? `${value * SPACING_SCALE}px` : value;
|
|
347
|
-
break;
|
|
348
|
-
case "gridTemplateColumns":
|
|
349
|
-
style.gridTemplateColumns = value;
|
|
350
|
-
break;
|
|
351
|
-
case "minWidth":
|
|
352
|
-
style.minWidth = value;
|
|
353
|
-
break;
|
|
354
|
-
case "boxSize": {
|
|
355
|
-
const s = typeof value === "number" ? `${value * SPACING_SCALE}px` : value;
|
|
356
|
-
style.width = s;
|
|
357
|
-
style.height = s;
|
|
358
|
-
break;
|
|
359
|
-
}
|
|
360
|
-
case "py": {
|
|
361
|
-
const v = toStylePx(value);
|
|
362
|
-
style.paddingTop = v;
|
|
363
|
-
style.paddingBottom = v;
|
|
364
|
-
break;
|
|
365
|
-
}
|
|
366
|
-
case "px": {
|
|
367
|
-
const v = toStylePx(value);
|
|
368
|
-
style.paddingLeft = v;
|
|
369
|
-
style.paddingRight = v;
|
|
370
|
-
break;
|
|
371
|
-
}
|
|
372
|
-
case "p": {
|
|
373
|
-
const v = toStylePx(value);
|
|
374
|
-
style.padding = v;
|
|
375
|
-
break;
|
|
376
|
-
}
|
|
377
|
-
case "hideBelow":
|
|
378
|
-
break;
|
|
379
|
-
// handled via className
|
|
380
|
-
case "textStyle":
|
|
381
|
-
break;
|
|
382
|
-
// drop textStyle, not directly applicable
|
|
383
|
-
case "fontSize":
|
|
384
|
-
style.fontSize = value;
|
|
385
|
-
break;
|
|
386
|
-
case "flexWrap":
|
|
387
|
-
style.flexWrap = value;
|
|
388
|
-
break;
|
|
389
|
-
case "wordBreak":
|
|
390
|
-
style.wordBreak = value;
|
|
391
|
-
break;
|
|
392
|
-
case "lineHeight":
|
|
393
|
-
style.lineHeight = value;
|
|
394
|
-
break;
|
|
395
|
-
case "marginRight":
|
|
396
|
-
style.marginRight = value;
|
|
397
|
-
break;
|
|
398
|
-
case "position":
|
|
399
|
-
style.position = value;
|
|
400
|
-
break;
|
|
401
|
-
case "background":
|
|
402
|
-
style.background = value;
|
|
403
|
-
break;
|
|
404
|
-
default:
|
|
405
|
-
rest[key] = value;
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
357
|
+
if (props.py !== void 0) {
|
|
358
|
+
const v = sp(props.py);
|
|
359
|
+
s.paddingTop = v;
|
|
360
|
+
s.paddingBottom = v;
|
|
408
361
|
}
|
|
409
|
-
|
|
362
|
+
if (props.px !== void 0) {
|
|
363
|
+
const v = sp(props.px);
|
|
364
|
+
s.paddingLeft = v;
|
|
365
|
+
s.paddingRight = v;
|
|
366
|
+
}
|
|
367
|
+
if (props.p !== void 0) s.padding = sp(props.p);
|
|
368
|
+
if (props.fontSize !== void 0) s.fontSize = props.fontSize;
|
|
369
|
+
if (props.flexWrap !== void 0) s.flexWrap = props.flexWrap;
|
|
370
|
+
if (props.wordBreak !== void 0) s.wordBreak = props.wordBreak;
|
|
371
|
+
if (props.lineHeight !== void 0) s.lineHeight = props.lineHeight;
|
|
372
|
+
if (props.marginRight !== void 0) s.marginRight = props.marginRight;
|
|
373
|
+
if (props.position !== void 0) s.position = props.position;
|
|
374
|
+
if (props.background !== void 0) s.background = props.background;
|
|
375
|
+
return s;
|
|
376
|
+
}
|
|
377
|
+
function stripShims(props) {
|
|
378
|
+
const out = { ...props };
|
|
379
|
+
for (const k of SHIM_PROPS) delete out[k];
|
|
380
|
+
return out;
|
|
410
381
|
}
|
|
382
|
+
var SKELETON_CLASSES = [
|
|
383
|
+
"animate-skeleton-shimmer rounded-sm",
|
|
384
|
+
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
385
|
+
"bg-[length:200%_100%]"
|
|
386
|
+
].join(" ");
|
|
387
|
+
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
411
388
|
var Skeleton = React29.forwardRef(
|
|
412
389
|
function Skeleton2(props, ref) {
|
|
413
|
-
const {
|
|
414
|
-
|
|
415
|
-
asChild,
|
|
416
|
-
className,
|
|
417
|
-
children,
|
|
418
|
-
style: styleProp,
|
|
419
|
-
// Destructure style-prop shims so they don't leak into DOM
|
|
420
|
-
w: _w,
|
|
421
|
-
h: _h,
|
|
422
|
-
minW: _minW,
|
|
423
|
-
maxW: _maxW,
|
|
424
|
-
display: _display,
|
|
425
|
-
flexGrow: _flexGrow,
|
|
426
|
-
flexShrink: _flexShrink,
|
|
427
|
-
flexBasis: _flexBasis,
|
|
428
|
-
fontWeight: _fontWeight,
|
|
429
|
-
textStyle: _textStyle,
|
|
430
|
-
borderRadius: _borderRadius,
|
|
431
|
-
alignSelf: _alignSelf,
|
|
432
|
-
alignItems: _alignItems,
|
|
433
|
-
justifyContent: _justifyContent,
|
|
434
|
-
color: _color,
|
|
435
|
-
mt: _mt,
|
|
436
|
-
mb: _mb,
|
|
437
|
-
ml: _ml,
|
|
438
|
-
mr: _mr,
|
|
439
|
-
height: _height,
|
|
440
|
-
overflow: _overflow,
|
|
441
|
-
whiteSpace: _whiteSpace,
|
|
442
|
-
textOverflow: _textOverflow,
|
|
443
|
-
textTransform: _textTransform,
|
|
444
|
-
gap: _gap,
|
|
445
|
-
gridTemplateColumns: _gridTemplateColumns,
|
|
446
|
-
minWidth: _minWidth,
|
|
447
|
-
boxSize: _boxSize,
|
|
448
|
-
py: _py,
|
|
449
|
-
px: _px,
|
|
450
|
-
p: _p,
|
|
451
|
-
hideBelow: _hideBelow,
|
|
452
|
-
fontSize: _fontSize,
|
|
453
|
-
flexWrap: _flexWrap,
|
|
454
|
-
wordBreak: _wordBreak,
|
|
455
|
-
lineHeight: _lineHeight,
|
|
456
|
-
marginRight: _marginRight,
|
|
457
|
-
position: _position,
|
|
458
|
-
background: _background,
|
|
459
|
-
as: Component = "div",
|
|
460
|
-
...htmlRest
|
|
461
|
-
} = props;
|
|
462
|
-
const { style: shimStyle } = extractSkeletonStyleProps({
|
|
463
|
-
w: _w,
|
|
464
|
-
h: _h,
|
|
465
|
-
minW: _minW,
|
|
466
|
-
maxW: _maxW,
|
|
467
|
-
display: _display,
|
|
468
|
-
flexGrow: _flexGrow,
|
|
469
|
-
flexShrink: _flexShrink,
|
|
470
|
-
flexBasis: _flexBasis,
|
|
471
|
-
fontWeight: _fontWeight,
|
|
472
|
-
textStyle: _textStyle,
|
|
473
|
-
borderRadius: _borderRadius,
|
|
474
|
-
alignSelf: _alignSelf,
|
|
475
|
-
alignItems: _alignItems,
|
|
476
|
-
justifyContent: _justifyContent,
|
|
477
|
-
color: _color,
|
|
478
|
-
mt: _mt,
|
|
479
|
-
mb: _mb,
|
|
480
|
-
ml: _ml,
|
|
481
|
-
mr: _mr,
|
|
482
|
-
height: _height,
|
|
483
|
-
overflow: _overflow,
|
|
484
|
-
whiteSpace: _whiteSpace,
|
|
485
|
-
textOverflow: _textOverflow,
|
|
486
|
-
textTransform: _textTransform,
|
|
487
|
-
gap: _gap,
|
|
488
|
-
gridTemplateColumns: _gridTemplateColumns,
|
|
489
|
-
minWidth: _minWidth,
|
|
490
|
-
boxSize: _boxSize,
|
|
491
|
-
py: _py,
|
|
492
|
-
px: _px,
|
|
493
|
-
p: _p,
|
|
494
|
-
hideBelow: _hideBelow,
|
|
495
|
-
fontSize: _fontSize,
|
|
496
|
-
flexWrap: _flexWrap,
|
|
497
|
-
wordBreak: _wordBreak,
|
|
498
|
-
lineHeight: _lineHeight,
|
|
499
|
-
marginRight: _marginRight,
|
|
500
|
-
position: _position,
|
|
501
|
-
background: _background
|
|
502
|
-
});
|
|
390
|
+
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
391
|
+
const shimStyle = shimToStyle(props);
|
|
503
392
|
const mergedStyle = Object.keys(shimStyle).length > 0 || styleProp ? { ...shimStyle, ...styleProp } : void 0;
|
|
504
|
-
const
|
|
505
|
-
const
|
|
506
|
-
const
|
|
393
|
+
const hideBelowClass = props.hideBelow ? HIDE_BELOW_MAP[props.hideBelow] : void 0;
|
|
394
|
+
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
395
|
+
const htmlRest = stripShims(allRest);
|
|
507
396
|
if (!loading) {
|
|
508
|
-
if (asChild && React29.isValidElement(children))
|
|
509
|
-
|
|
510
|
-
}
|
|
511
|
-
return /* @__PURE__ */ jsx(Component, { ref, className: finalClassName, style: mergedStyle, ...htmlRest, children });
|
|
397
|
+
if (asChild && React29.isValidElement(children)) return children;
|
|
398
|
+
return /* @__PURE__ */ jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
512
399
|
}
|
|
513
400
|
if (asChild && React29.isValidElement(children)) {
|
|
514
401
|
return /* @__PURE__ */ jsx(
|
|
@@ -516,13 +403,7 @@ var Skeleton = React29.forwardRef(
|
|
|
516
403
|
{
|
|
517
404
|
ref,
|
|
518
405
|
"data-loading": true,
|
|
519
|
-
className: cn(
|
|
520
|
-
"animate-skeleton-shimmer rounded-sm",
|
|
521
|
-
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
522
|
-
"bg-[length:200%_100%]",
|
|
523
|
-
"text-transparent [&_*]:invisible",
|
|
524
|
-
finalClassName
|
|
525
|
-
),
|
|
406
|
+
className: cn(SKELETON_CLASSES, "text-transparent [&_*]:invisible", cls),
|
|
526
407
|
style: mergedStyle,
|
|
527
408
|
...htmlRest,
|
|
528
409
|
children
|
|
@@ -534,13 +415,7 @@ var Skeleton = React29.forwardRef(
|
|
|
534
415
|
{
|
|
535
416
|
ref,
|
|
536
417
|
"data-loading": true,
|
|
537
|
-
className: cn(
|
|
538
|
-
"animate-skeleton-shimmer rounded-sm",
|
|
539
|
-
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
540
|
-
"bg-[length:200%_100%]",
|
|
541
|
-
children ? "text-transparent [&_*]:invisible" : "min-h-5",
|
|
542
|
-
finalClassName
|
|
543
|
-
),
|
|
418
|
+
className: cn(SKELETON_CLASSES, children ? "text-transparent [&_*]:invisible" : "min-h-5", cls),
|
|
544
419
|
style: mergedStyle,
|
|
545
420
|
...htmlRest,
|
|
546
421
|
children
|
|
@@ -578,52 +453,22 @@ var SkeletonText = React29.forwardRef(
|
|
|
578
453
|
}
|
|
579
454
|
);
|
|
580
455
|
var IndicatorIcon2 = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm.75-11.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM9.25 10a.75.75 0 011.5 0v3a.75.75 0 01-1.5 0v-3z" }) });
|
|
581
|
-
var
|
|
582
|
-
|
|
583
|
-
"
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
},
|
|
598
|
-
defaultVariants: {
|
|
599
|
-
status: "info",
|
|
600
|
-
size: "md"
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
);
|
|
604
|
-
var alertContent = cva("flex flex-1", {
|
|
605
|
-
variants: {
|
|
606
|
-
inline: {
|
|
607
|
-
"true": "inline-flex flex-row items-center",
|
|
608
|
-
"false": "flex flex-col"
|
|
609
|
-
}
|
|
610
|
-
},
|
|
611
|
-
defaultVariants: {
|
|
612
|
-
inline: true
|
|
613
|
-
}
|
|
614
|
-
});
|
|
615
|
-
var INDICATOR_BASE = "inline-flex items-center justify-center shrink-0 w-5 h-5 text-[var(--color-alert-fg)] [&>svg]:w-full [&>svg]:h-full";
|
|
616
|
-
var indicatorVariants = cva(INDICATOR_BASE, {
|
|
617
|
-
variants: {
|
|
618
|
-
size: {
|
|
619
|
-
sm: "w-5 h-5 my-0",
|
|
620
|
-
md: "w-5 h-5 my-[2px]"
|
|
621
|
-
}
|
|
622
|
-
},
|
|
623
|
-
defaultVariants: {
|
|
624
|
-
size: "md"
|
|
625
|
-
}
|
|
626
|
-
});
|
|
456
|
+
var ALERT_BASE = "w-full flex items-start relative rounded text-[var(--color-alert-fg)]";
|
|
457
|
+
var STATUS_CLASSES = {
|
|
458
|
+
info: "bg-[var(--color-alert-bg-info)]",
|
|
459
|
+
warning: "bg-[var(--color-alert-bg-warning)]",
|
|
460
|
+
warning_table: "bg-[var(--color-alert-bg-warning-table)]",
|
|
461
|
+
success: "bg-[var(--color-alert-bg-success)]",
|
|
462
|
+
error: "bg-[var(--color-alert-bg-error)]"
|
|
463
|
+
};
|
|
464
|
+
var SIZE_CLASSES = {
|
|
465
|
+
sm: "gap-2 px-2 py-2 text-xs",
|
|
466
|
+
md: "gap-2 px-3 py-2 text-base"
|
|
467
|
+
};
|
|
468
|
+
var INDICATOR_SIZE_CLASSES = {
|
|
469
|
+
sm: "w-5 h-5 my-0",
|
|
470
|
+
md: "w-5 h-5 my-[2px]"
|
|
471
|
+
};
|
|
627
472
|
var Alert = React29.forwardRef(
|
|
628
473
|
function Alert2(props, ref) {
|
|
629
474
|
const {
|
|
@@ -659,7 +504,10 @@ var Alert = React29.forwardRef(
|
|
|
659
504
|
if (!showIcon && icon === void 0) {
|
|
660
505
|
return null;
|
|
661
506
|
}
|
|
662
|
-
return /* @__PURE__ */ jsx("span", { className:
|
|
507
|
+
return /* @__PURE__ */ jsx("span", { className: cn(
|
|
508
|
+
"inline-flex items-center justify-center shrink-0 text-[var(--color-alert-fg)] [&>svg]:w-full [&>svg]:h-full",
|
|
509
|
+
INDICATOR_SIZE_CLASSES[resolvedSize]
|
|
510
|
+
), children: icon || defaultIcon });
|
|
663
511
|
})();
|
|
664
512
|
const handleClose = React29.useCallback(() => {
|
|
665
513
|
setIsOpen(false);
|
|
@@ -692,12 +540,12 @@ var Alert = React29.forwardRef(
|
|
|
692
540
|
"div",
|
|
693
541
|
{
|
|
694
542
|
ref,
|
|
695
|
-
className: cn(
|
|
543
|
+
className: cn(ALERT_BASE, STATUS_CLASSES[status], SIZE_CLASSES[resolvedSize], className),
|
|
696
544
|
style: alertStyle,
|
|
697
545
|
...alertRest,
|
|
698
546
|
children: [
|
|
699
547
|
iconElement,
|
|
700
|
-
children ? /* @__PURE__ */ jsxs("div", { className:
|
|
548
|
+
children ? /* @__PURE__ */ jsxs("div", { className: cn("flex flex-1", inline ? "inline-flex flex-row items-center" : "flex flex-col"), children: [
|
|
701
549
|
title && /* @__PURE__ */ jsx("div", { className: "font-semibold", children: title }),
|
|
702
550
|
/* @__PURE__ */ jsx(
|
|
703
551
|
"div",
|
|
@@ -722,7 +570,7 @@ var Alert = React29.forwardRef(
|
|
|
722
570
|
) });
|
|
723
571
|
}
|
|
724
572
|
);
|
|
725
|
-
var
|
|
573
|
+
var SIZE_CLASSES2 = {
|
|
726
574
|
xs: "h-6 w-6 text-[10px]",
|
|
727
575
|
sm: "h-8 w-8 text-xs",
|
|
728
576
|
md: "h-10 w-10 text-sm",
|
|
@@ -767,7 +615,7 @@ var Avatar = React29.forwardRef(
|
|
|
767
615
|
ref,
|
|
768
616
|
className: cn(
|
|
769
617
|
"relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle",
|
|
770
|
-
|
|
618
|
+
SIZE_CLASSES2[size],
|
|
771
619
|
VARIANT_CLASSES[variant],
|
|
772
620
|
!isBorderless && "ring-2 ring-white dark:ring-gray-900",
|
|
773
621
|
className
|
|
@@ -850,6 +698,10 @@ function useIsMobile() {
|
|
|
850
698
|
}, []);
|
|
851
699
|
return isMobile;
|
|
852
700
|
}
|
|
701
|
+
function mapPlacement(p) {
|
|
702
|
+
if (!p) return void 0;
|
|
703
|
+
return p;
|
|
704
|
+
}
|
|
853
705
|
var Tooltip = React29.forwardRef(
|
|
854
706
|
function Tooltip2(props, ref) {
|
|
855
707
|
const {
|
|
@@ -860,10 +712,8 @@ var Tooltip = React29.forwardRef(
|
|
|
860
712
|
children,
|
|
861
713
|
disabled,
|
|
862
714
|
disableOnMobile,
|
|
863
|
-
portalled = true,
|
|
864
715
|
content,
|
|
865
716
|
contentProps,
|
|
866
|
-
portalRef,
|
|
867
717
|
defaultOpen = false,
|
|
868
718
|
triggerProps,
|
|
869
719
|
closeDelay = 100,
|
|
@@ -911,36 +761,34 @@ var Tooltip = React29.forwardRef(
|
|
|
911
761
|
if (disabled || disableOnMobile && isMobile) return children;
|
|
912
762
|
const defaultShowArrow = variant === "popover" ? false : true;
|
|
913
763
|
const showArrow = showArrowProp !== void 0 ? showArrowProp : defaultShowArrow;
|
|
914
|
-
const placement = positioning?.placement ?? "top";
|
|
915
|
-
const side = placement.split("-")[0];
|
|
916
|
-
const align = placement.includes("-") ? placement.split("-")[1] : void 0;
|
|
917
|
-
const sideOffset = positioning?.offset?.mainAxis ?? 4;
|
|
918
764
|
const isPopover = variant === "popover";
|
|
919
|
-
|
|
920
|
-
|
|
765
|
+
const placement = mapPlacement(positioning?.placement) ?? "top";
|
|
766
|
+
const offset = positioning?.offset?.mainAxis ?? 4;
|
|
767
|
+
return /* @__PURE__ */ jsx(TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxs(
|
|
768
|
+
Tooltip$1,
|
|
921
769
|
{
|
|
922
770
|
open,
|
|
923
771
|
onOpenChange: handleOpenChange,
|
|
924
|
-
|
|
772
|
+
delay: { open: openDelay, close: closeDelay },
|
|
773
|
+
placement,
|
|
774
|
+
offset,
|
|
775
|
+
unstyled: true,
|
|
925
776
|
children: [
|
|
926
777
|
/* @__PURE__ */ jsx(
|
|
927
|
-
|
|
778
|
+
Tooltip$1.Trigger,
|
|
928
779
|
{
|
|
929
780
|
ref: open ? triggerRef : void 0,
|
|
930
781
|
asChild: true,
|
|
931
|
-
|
|
782
|
+
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
932
783
|
...triggerProps,
|
|
933
784
|
children
|
|
934
785
|
}
|
|
935
786
|
),
|
|
936
|
-
/* @__PURE__ */
|
|
937
|
-
|
|
787
|
+
/* @__PURE__ */ jsxs(
|
|
788
|
+
Tooltip$1.Content,
|
|
938
789
|
{
|
|
939
790
|
ref,
|
|
940
|
-
|
|
941
|
-
align,
|
|
942
|
-
sideOffset,
|
|
943
|
-
onClick: interactive ? handleContentClick : void 0,
|
|
791
|
+
unstyled: true,
|
|
944
792
|
className: cn(
|
|
945
793
|
"z-[9999] overflow-hidden rounded-lg px-3 py-2 text-sm",
|
|
946
794
|
"animate-in fade-in-0 zoom-in-95",
|
|
@@ -949,12 +797,14 @@ var Tooltip = React29.forwardRef(
|
|
|
949
797
|
!isPopover && "bg-[var(--color-tooltip-bg)] text-[var(--color-tooltip-fg)] max-w-xs",
|
|
950
798
|
contentProps?.className
|
|
951
799
|
),
|
|
800
|
+
onClick: interactive ? handleContentClick : void 0,
|
|
952
801
|
...selected ? { "data-selected": true } : {},
|
|
953
802
|
...contentProps,
|
|
954
803
|
children: [
|
|
955
804
|
showArrow && /* @__PURE__ */ jsx(
|
|
956
|
-
|
|
805
|
+
Tooltip$1.Arrow,
|
|
957
806
|
{
|
|
807
|
+
unstyled: true,
|
|
958
808
|
className: cn(
|
|
959
809
|
isPopover ? "fill-[var(--color-popover-bg)]" : "fill-[var(--color-tooltip-bg)]"
|
|
960
810
|
)
|
|
@@ -963,7 +813,7 @@ var Tooltip = React29.forwardRef(
|
|
|
963
813
|
content
|
|
964
814
|
]
|
|
965
815
|
}
|
|
966
|
-
)
|
|
816
|
+
)
|
|
967
817
|
]
|
|
968
818
|
}
|
|
969
819
|
) });
|
|
@@ -972,26 +822,12 @@ var Tooltip = React29.forwardRef(
|
|
|
972
822
|
function TruncatedTextTooltip({ label, children }) {
|
|
973
823
|
return /* @__PURE__ */ jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
|
|
974
824
|
}
|
|
975
|
-
var
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
solid: ""
|
|
982
|
-
},
|
|
983
|
-
size: {
|
|
984
|
-
sm: "text-xs p-1 h-[18px] min-h-[18px]",
|
|
985
|
-
md: "text-sm px-1 py-0.5 min-h-6",
|
|
986
|
-
lg: "text-sm px-2 py-1 min-h-7 font-semibold"
|
|
987
|
-
}
|
|
988
|
-
},
|
|
989
|
-
defaultVariants: {
|
|
990
|
-
variant: "subtle",
|
|
991
|
-
size: "md"
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
);
|
|
825
|
+
var BASE_CLASSES = "inline-flex items-center rounded-sm gap-1 font-medium w-fit max-w-full whitespace-nowrap select-text";
|
|
826
|
+
var SIZE_CLASSES3 = {
|
|
827
|
+
sm: "text-xs p-1 h-[18px] min-h-[18px]",
|
|
828
|
+
md: "text-sm px-1 py-0.5 min-h-6",
|
|
829
|
+
lg: "text-sm px-2 py-1 min-h-7 font-semibold"
|
|
830
|
+
};
|
|
995
831
|
var COLOR_PALETTE_CLASSES = {
|
|
996
832
|
gray: "bg-badge-gray-bg text-badge-gray-fg",
|
|
997
833
|
green: "bg-badge-green-bg text-badge-green-fg",
|
|
@@ -1016,6 +852,7 @@ var COLOR_PALETTE_CLASSES = {
|
|
|
1016
852
|
bright_purple: "bg-badge-bright-purple-bg text-badge-bright-purple-fg",
|
|
1017
853
|
bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
|
|
1018
854
|
};
|
|
855
|
+
var S2 = 4;
|
|
1019
856
|
var Badge = React29__default.forwardRef(
|
|
1020
857
|
function Badge2(props, ref) {
|
|
1021
858
|
const {
|
|
@@ -1024,8 +861,8 @@ var Badge = React29__default.forwardRef(
|
|
|
1024
861
|
children,
|
|
1025
862
|
truncated = false,
|
|
1026
863
|
endElement,
|
|
1027
|
-
variant,
|
|
1028
|
-
size,
|
|
864
|
+
variant: _variant,
|
|
865
|
+
size = "md",
|
|
1029
866
|
colorPalette = "gray",
|
|
1030
867
|
className,
|
|
1031
868
|
flexShrink: _flexShrink,
|
|
@@ -1037,16 +874,16 @@ var Badge = React29__default.forwardRef(
|
|
|
1037
874
|
} = props;
|
|
1038
875
|
const shimStyle = { ...styleProp };
|
|
1039
876
|
if (_flexShrink !== void 0) shimStyle.flexShrink = _flexShrink;
|
|
1040
|
-
if (_gap !== void 0) shimStyle.gap = typeof _gap === "number" ? `${_gap *
|
|
877
|
+
if (_gap !== void 0) shimStyle.gap = typeof _gap === "number" ? `${_gap * S2}px` : _gap;
|
|
1041
878
|
if (_ml !== void 0) {
|
|
1042
879
|
if (typeof _ml === "object") {
|
|
1043
880
|
const obj = _ml;
|
|
1044
|
-
shimStyle.marginLeft = `${(obj.base ?? obj.lg ?? 0) *
|
|
881
|
+
shimStyle.marginLeft = `${(obj.base ?? obj.lg ?? 0) * S2}px`;
|
|
1045
882
|
} else {
|
|
1046
|
-
shimStyle.marginLeft = typeof _ml === "number" ? `${_ml *
|
|
883
|
+
shimStyle.marginLeft = typeof _ml === "number" ? `${_ml * S2}px` : _ml;
|
|
1047
884
|
}
|
|
1048
885
|
}
|
|
1049
|
-
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr *
|
|
886
|
+
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr * S2}px` : _mr;
|
|
1050
887
|
const badgeStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1051
888
|
const child = children ? /* @__PURE__ */ jsx("span", { className: "overflow-hidden text-ellipsis", children }) : null;
|
|
1052
889
|
const childrenElement = truncated ? /* @__PURE__ */ jsx(TruncatedTextTooltip, { label: children, children: child }) : child;
|
|
@@ -1055,7 +892,8 @@ var Badge = React29__default.forwardRef(
|
|
|
1055
892
|
{
|
|
1056
893
|
ref,
|
|
1057
894
|
className: cn(
|
|
1058
|
-
|
|
895
|
+
BASE_CLASSES,
|
|
896
|
+
SIZE_CLASSES3[size],
|
|
1059
897
|
COLOR_PALETTE_CLASSES[colorPalette],
|
|
1060
898
|
className
|
|
1061
899
|
),
|
|
@@ -1074,171 +912,202 @@ var Badge = React29__default.forwardRef(
|
|
|
1074
912
|
return badgeElement;
|
|
1075
913
|
}
|
|
1076
914
|
);
|
|
1077
|
-
var
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
variant: {
|
|
1089
|
-
// --- Solid ---
|
|
1090
|
-
solid: [
|
|
1091
|
-
"bg-[var(--color-button-solid-bg)] text-[var(--color-button-solid-text)]",
|
|
1092
|
-
"hover:bg-[var(--color-hover)]",
|
|
1093
|
-
"data-[expanded]:bg-[var(--color-hover)]"
|
|
1094
|
-
],
|
|
1095
|
-
// --- Solid Danger ---
|
|
1096
|
-
solid_danger: [
|
|
1097
|
-
"bg-red-600 text-[var(--color-button-solid-text)]",
|
|
1098
|
-
"hover:bg-red-500",
|
|
1099
|
-
"data-[expanded]:bg-red-500"
|
|
1100
|
-
],
|
|
1101
|
-
// --- Outline ---
|
|
1102
|
-
outline: [
|
|
1103
|
-
"border-2 border-solid bg-transparent",
|
|
1104
|
-
"text-[var(--color-button-outline-fg)] border-[var(--color-button-outline-fg)]",
|
|
1105
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]"
|
|
1106
|
-
],
|
|
1107
|
-
// --- Outline Danger ---
|
|
1108
|
-
outline_danger: [
|
|
1109
|
-
"border-2 border-solid bg-transparent",
|
|
1110
|
-
"text-red-600 border-red-600",
|
|
1111
|
-
"hover:bg-transparent hover:text-red-500 hover:border-red-500"
|
|
1112
|
-
],
|
|
1113
|
-
// --- Dropdown ---
|
|
1114
|
-
dropdown: [
|
|
1115
|
-
"border-2 border-solid bg-transparent",
|
|
1116
|
-
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
1117
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1118
|
-
"data-[expanded]:bg-transparent data-[expanded]:text-[var(--color-hover)] data-[expanded]:border-[var(--color-hover)]",
|
|
1119
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1120
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1121
|
-
"data-[selected]:hover:text-[var(--color-hover)] data-[selected]:hover:border-transparent",
|
|
1122
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1123
|
-
],
|
|
1124
|
-
// --- Header ---
|
|
1125
|
-
header: [
|
|
1126
|
-
"bg-transparent border-2 border-solid",
|
|
1127
|
-
"text-[var(--color-button-header-fg)] border-[var(--color-button-header-border)]",
|
|
1128
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1129
|
-
// selected
|
|
1130
|
-
"data-[selected]:bg-[var(--color-button-header-bg-selected)]",
|
|
1131
|
-
"data-[selected]:text-[var(--color-button-header-fg-selected)] data-[selected]:border-transparent data-[selected]:border-0",
|
|
1132
|
-
"data-[selected]:hover:bg-[var(--color-button-header-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1133
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1134
|
-
// selected + highlighted
|
|
1135
|
-
"data-[selected]:data-[highlighted]:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1136
|
-
"data-[selected]:data-[highlighted]:text-[var(--color-button-header-fg-highlighted)]",
|
|
1137
|
-
"data-[selected]:data-[highlighted]:border-transparent data-[selected]:data-[highlighted]:border-0",
|
|
1138
|
-
"data-[selected]:data-[highlighted]:hover:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1139
|
-
"data-[selected]:data-[highlighted]:hover:text-[var(--color-hover)]",
|
|
1140
|
-
"data-[selected]:data-[highlighted]:data-[expanded]:text-[var(--color-hover)]"
|
|
1141
|
-
],
|
|
1142
|
-
// --- Hero ---
|
|
1143
|
-
hero: [
|
|
1144
|
-
"bg-[var(--color-button-hero-bg)] text-[var(--color-button-hero-fg)]",
|
|
1145
|
-
"hover:bg-[var(--color-button-hero-bg-hover)] hover:text-[var(--color-button-hero-fg-hover)]",
|
|
1146
|
-
"data-[selected]:bg-[var(--color-button-hero-bg-selected)] data-[selected]:text-[var(--color-button-hero-fg-selected)]",
|
|
1147
|
-
"data-[selected]:hover:bg-[var(--color-button-hero-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1148
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1149
|
-
],
|
|
1150
|
-
// --- Segmented ---
|
|
1151
|
-
segmented: [
|
|
1152
|
-
"bg-transparent border-2 border-solid rounded-none",
|
|
1153
|
-
"text-[var(--color-button-segmented-fg)] border-[var(--color-selected-control-bg)]",
|
|
1154
|
-
"hover:text-[var(--color-hover)]",
|
|
1155
|
-
// selected
|
|
1156
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1157
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-selected-control-text)]",
|
|
1158
|
-
// border collapse: hide right border except when selected; first/last get rounded
|
|
1159
|
-
"[&:not(:last-child)]:border-r-0 data-[selected]:[&:not(:last-child)]:border-r-2",
|
|
1160
|
-
"data-[selected]+*:border-l-0",
|
|
1161
|
-
"first:rounded-l-md last:rounded-r-md"
|
|
1162
|
-
],
|
|
1163
|
-
// --- Plain ---
|
|
1164
|
-
plain: [
|
|
1165
|
-
"bg-transparent text-inherit border-none",
|
|
1166
|
-
"hover:bg-transparent"
|
|
1167
|
-
],
|
|
1168
|
-
// --- Subtle ---
|
|
1169
|
-
subtle: [
|
|
1170
|
-
"bg-[var(--color-button-subtle-bg)] text-[var(--color-button-subtle-fg)]",
|
|
1171
|
-
"hover:bg-[var(--color-button-subtle-bg)] hover:text-[var(--color-hover)]",
|
|
1172
|
-
"disabled:bg-[var(--color-button-subtle-bg)] disabled:text-[var(--color-button-subtle-fg)]"
|
|
1173
|
-
],
|
|
1174
|
-
// --- Link ---
|
|
1175
|
-
link: [
|
|
1176
|
-
"bg-transparent text-[var(--color-link-primary)] border-none font-normal",
|
|
1177
|
-
"px-0 h-auto",
|
|
1178
|
-
"hover:bg-transparent hover:text-[var(--color-link-primary-hover)]",
|
|
1179
|
-
"disabled:text-[var(--color-text-secondary)]"
|
|
1180
|
-
],
|
|
1181
|
-
// --- Icon Secondary ---
|
|
1182
|
-
icon_secondary: [
|
|
1183
|
-
"bg-transparent text-[var(--color-icon-secondary)] border-none",
|
|
1184
|
-
"hover:text-[var(--color-hover)]",
|
|
1185
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1186
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1187
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1188
|
-
"data-[expanded]:text-[var(--color-hover)]"
|
|
1189
|
-
],
|
|
1190
|
-
// --- Icon Background ---
|
|
1191
|
-
icon_background: [
|
|
1192
|
-
"bg-[var(--color-button-icon-background-bg)] text-[var(--color-icon-secondary)] border-none",
|
|
1193
|
-
"hover:text-[var(--color-hover)]",
|
|
1194
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1195
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1196
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1197
|
-
"data-[expanded]:text-[var(--color-hover)]"
|
|
1198
|
-
],
|
|
1199
|
-
// --- Pagination ---
|
|
1200
|
-
pagination: [
|
|
1201
|
-
"border-2 border-solid bg-transparent",
|
|
1202
|
-
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
1203
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1204
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1205
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1206
|
-
"data-[selected]:hover:text-[var(--color-selected-control-text)] data-[selected]:hover:border-transparent"
|
|
1207
|
-
]
|
|
1208
|
-
},
|
|
1209
|
-
size: {
|
|
1210
|
-
"2xs": "px-2 h-5 min-w-5 text-xs rounded-sm gap-1",
|
|
1211
|
-
xs: "px-2 h-6 min-w-6 text-sm rounded-sm gap-1",
|
|
1212
|
-
sm: "px-3 h-8 min-w-8 text-sm rounded-md gap-1",
|
|
1213
|
-
md: "px-3 h-10 min-w-10 text-base rounded-md gap-2"
|
|
1214
|
-
}
|
|
1215
|
-
},
|
|
1216
|
-
defaultVariants: {
|
|
1217
|
-
variant: "solid",
|
|
1218
|
-
size: "md"
|
|
1219
|
-
}
|
|
1220
|
-
}
|
|
1221
|
-
);
|
|
915
|
+
var SpinnerFrame = styled(View, {
|
|
916
|
+
name: "ButtonSpinner",
|
|
917
|
+
render: /* @__PURE__ */ jsx("span", {}),
|
|
918
|
+
width: 16,
|
|
919
|
+
height: 16,
|
|
920
|
+
borderRadius: 1e3,
|
|
921
|
+
borderWidth: 2,
|
|
922
|
+
borderColor: "currentColor",
|
|
923
|
+
borderBottomColor: "transparent",
|
|
924
|
+
borderLeftColor: "transparent"
|
|
925
|
+
});
|
|
1222
926
|
function Spinner({ className }) {
|
|
1223
927
|
return /* @__PURE__ */ jsx(
|
|
1224
|
-
|
|
928
|
+
SpinnerFrame,
|
|
1225
929
|
{
|
|
1226
|
-
className: cn(
|
|
1227
|
-
"inline-block h-4 w-4 animate-spin rounded-full",
|
|
1228
|
-
"border-2 border-current border-b-transparent border-l-transparent",
|
|
1229
|
-
className
|
|
1230
|
-
),
|
|
1231
930
|
role: "status",
|
|
1232
|
-
"aria-label": "Loading"
|
|
931
|
+
"aria-label": "Loading",
|
|
932
|
+
className: [
|
|
933
|
+
"animate-spin",
|
|
934
|
+
className
|
|
935
|
+
].filter(Boolean).join(" ")
|
|
1233
936
|
}
|
|
1234
937
|
);
|
|
1235
938
|
}
|
|
939
|
+
var ButtonFrame = styled(View, {
|
|
940
|
+
name: "LuxButton",
|
|
941
|
+
render: /* @__PURE__ */ jsx("button", { type: "button" }),
|
|
942
|
+
role: "button",
|
|
943
|
+
tabIndex: 0,
|
|
944
|
+
cursor: "pointer",
|
|
945
|
+
userSelect: "none",
|
|
946
|
+
display: "inline-flex",
|
|
947
|
+
alignItems: "center",
|
|
948
|
+
justifyContent: "center",
|
|
949
|
+
gap: 0,
|
|
950
|
+
overflow: "hidden",
|
|
951
|
+
borderRadius: 6,
|
|
952
|
+
// Whitespace nowrap via className since hanzogui doesn't have a direct token
|
|
953
|
+
// Transition via className
|
|
954
|
+
variants: {
|
|
955
|
+
size: {
|
|
956
|
+
"2xs": { paddingHorizontal: 8, height: 20, minWidth: 20, fontSize: 12, borderRadius: 4, gap: 4 },
|
|
957
|
+
xs: { paddingHorizontal: 8, height: 24, minWidth: 24, fontSize: 14, borderRadius: 4, gap: 4 },
|
|
958
|
+
sm: { paddingHorizontal: 12, height: 32, minWidth: 32, fontSize: 14, borderRadius: 6, gap: 4 },
|
|
959
|
+
md: { paddingHorizontal: 12, height: 40, minWidth: 40, fontSize: 16, borderRadius: 6, gap: 8 }
|
|
960
|
+
},
|
|
961
|
+
disabled: {
|
|
962
|
+
true: {
|
|
963
|
+
opacity: 0.2,
|
|
964
|
+
cursor: "not-allowed",
|
|
965
|
+
pointerEvents: "none"
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
},
|
|
969
|
+
defaultVariants: {
|
|
970
|
+
size: "md"
|
|
971
|
+
}
|
|
972
|
+
});
|
|
973
|
+
var VARIANT_CLASSES2 = {
|
|
974
|
+
solid: [
|
|
975
|
+
"bg-[var(--color-button-solid-bg)] text-[var(--color-button-solid-text)]",
|
|
976
|
+
"hover:bg-[var(--color-hover)]",
|
|
977
|
+
"data-[expanded]:bg-[var(--color-hover)]"
|
|
978
|
+
].join(" "),
|
|
979
|
+
solid_danger: [
|
|
980
|
+
"bg-red-600 text-[var(--color-button-solid-text)]",
|
|
981
|
+
"hover:bg-red-500",
|
|
982
|
+
"data-[expanded]:bg-red-500"
|
|
983
|
+
].join(" "),
|
|
984
|
+
outline: [
|
|
985
|
+
"border-2 border-solid bg-transparent",
|
|
986
|
+
"text-[var(--color-button-outline-fg)] border-[var(--color-button-outline-fg)]",
|
|
987
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]"
|
|
988
|
+
].join(" "),
|
|
989
|
+
outline_danger: [
|
|
990
|
+
"border-2 border-solid bg-transparent",
|
|
991
|
+
"text-red-600 border-red-600",
|
|
992
|
+
"hover:bg-transparent hover:text-red-500 hover:border-red-500"
|
|
993
|
+
].join(" "),
|
|
994
|
+
dropdown: [
|
|
995
|
+
"border-2 border-solid bg-transparent",
|
|
996
|
+
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
997
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
998
|
+
"data-[expanded]:bg-transparent data-[expanded]:text-[var(--color-hover)] data-[expanded]:border-[var(--color-hover)]",
|
|
999
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1000
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1001
|
+
"data-[selected]:hover:text-[var(--color-hover)] data-[selected]:hover:border-transparent",
|
|
1002
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1003
|
+
].join(" "),
|
|
1004
|
+
header: [
|
|
1005
|
+
"bg-transparent border-2 border-solid",
|
|
1006
|
+
"text-[var(--color-button-header-fg)] border-[var(--color-button-header-border)]",
|
|
1007
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1008
|
+
"data-[selected]:bg-[var(--color-button-header-bg-selected)]",
|
|
1009
|
+
"data-[selected]:text-[var(--color-button-header-fg-selected)] data-[selected]:border-transparent data-[selected]:border-0",
|
|
1010
|
+
"data-[selected]:hover:bg-[var(--color-button-header-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1011
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1012
|
+
"data-[selected]:data-[highlighted]:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1013
|
+
"data-[selected]:data-[highlighted]:text-[var(--color-button-header-fg-highlighted)]",
|
|
1014
|
+
"data-[selected]:data-[highlighted]:border-transparent data-[selected]:data-[highlighted]:border-0",
|
|
1015
|
+
"data-[selected]:data-[highlighted]:hover:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1016
|
+
"data-[selected]:data-[highlighted]:hover:text-[var(--color-hover)]",
|
|
1017
|
+
"data-[selected]:data-[highlighted]:data-[expanded]:text-[var(--color-hover)]"
|
|
1018
|
+
].join(" "),
|
|
1019
|
+
hero: [
|
|
1020
|
+
"bg-[var(--color-button-hero-bg)] text-[var(--color-button-hero-fg)]",
|
|
1021
|
+
"hover:bg-[var(--color-button-hero-bg-hover)] hover:text-[var(--color-button-hero-fg-hover)]",
|
|
1022
|
+
"data-[selected]:bg-[var(--color-button-hero-bg-selected)] data-[selected]:text-[var(--color-button-hero-fg-selected)]",
|
|
1023
|
+
"data-[selected]:hover:bg-[var(--color-button-hero-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1024
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1025
|
+
].join(" "),
|
|
1026
|
+
segmented: [
|
|
1027
|
+
"bg-transparent border-2 border-solid rounded-none",
|
|
1028
|
+
"text-[var(--color-button-segmented-fg)] border-[var(--color-selected-control-bg)]",
|
|
1029
|
+
"hover:text-[var(--color-hover)]",
|
|
1030
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1031
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-selected-control-text)]",
|
|
1032
|
+
"[&:not(:last-child)]:border-r-0 data-[selected]:[&:not(:last-child)]:border-r-2",
|
|
1033
|
+
"data-[selected]+*:border-l-0",
|
|
1034
|
+
"first:rounded-l-md last:rounded-r-md"
|
|
1035
|
+
].join(" "),
|
|
1036
|
+
plain: "bg-transparent text-inherit border-none hover:bg-transparent",
|
|
1037
|
+
subtle: [
|
|
1038
|
+
"bg-[var(--color-button-subtle-bg)] text-[var(--color-button-subtle-fg)]",
|
|
1039
|
+
"hover:bg-[var(--color-button-subtle-bg)] hover:text-[var(--color-hover)]",
|
|
1040
|
+
"disabled:bg-[var(--color-button-subtle-bg)] disabled:text-[var(--color-button-subtle-fg)]"
|
|
1041
|
+
].join(" "),
|
|
1042
|
+
link: [
|
|
1043
|
+
"bg-transparent text-[var(--color-link-primary)] border-none font-normal",
|
|
1044
|
+
"px-0 h-auto",
|
|
1045
|
+
"hover:bg-transparent hover:text-[var(--color-link-primary-hover)]",
|
|
1046
|
+
"disabled:text-[var(--color-text-secondary)]"
|
|
1047
|
+
].join(" "),
|
|
1048
|
+
icon_secondary: [
|
|
1049
|
+
"bg-transparent text-[var(--color-icon-secondary)] border-none",
|
|
1050
|
+
"hover:text-[var(--color-hover)]",
|
|
1051
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1052
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1053
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1054
|
+
"data-[expanded]:text-[var(--color-hover)]"
|
|
1055
|
+
].join(" "),
|
|
1056
|
+
icon_background: [
|
|
1057
|
+
"bg-[var(--color-button-icon-background-bg)] text-[var(--color-icon-secondary)] border-none",
|
|
1058
|
+
"hover:text-[var(--color-hover)]",
|
|
1059
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1060
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1061
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1062
|
+
"data-[expanded]:text-[var(--color-hover)]"
|
|
1063
|
+
].join(" "),
|
|
1064
|
+
pagination: [
|
|
1065
|
+
"border-2 border-solid bg-transparent",
|
|
1066
|
+
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
1067
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1068
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1069
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1070
|
+
"data-[selected]:hover:text-[var(--color-selected-control-text)] data-[selected]:hover:border-transparent"
|
|
1071
|
+
].join(" ")
|
|
1072
|
+
};
|
|
1073
|
+
var BASE_CLASSES2 = "font-semibold whitespace-nowrap transition-colors duration-150";
|
|
1074
|
+
var SP = 4;
|
|
1075
|
+
function buildShimStyle(props) {
|
|
1076
|
+
const s = { ...props.style };
|
|
1077
|
+
if (props.mt !== void 0) s.marginTop = typeof props.mt === "number" ? `${props.mt * SP}px` : props.mt;
|
|
1078
|
+
if (props.ml !== void 0) s.marginLeft = typeof props.ml === "number" ? `${props.ml * SP}px` : props.ml;
|
|
1079
|
+
if (props.mr !== void 0) s.marginRight = typeof props.mr === "number" ? `${props.mr * SP}px` : props.mr;
|
|
1080
|
+
if (props.px !== void 0) {
|
|
1081
|
+
const v = typeof props.px === "number" ? `${props.px * SP}px` : props.px;
|
|
1082
|
+
s.paddingLeft = v;
|
|
1083
|
+
s.paddingRight = v;
|
|
1084
|
+
}
|
|
1085
|
+
if (props.py !== void 0) {
|
|
1086
|
+
const v = typeof props.py === "number" ? `${props.py * SP}px` : props.py;
|
|
1087
|
+
s.paddingTop = v;
|
|
1088
|
+
s.paddingBottom = v;
|
|
1089
|
+
}
|
|
1090
|
+
if (props.fontWeight !== void 0) s.fontWeight = props.fontWeight;
|
|
1091
|
+
if (props.gap !== void 0) s.gap = typeof props.gap === "number" ? `${props.gap * SP}px` : props.gap;
|
|
1092
|
+
if (props.flexShrink !== void 0) s.flexShrink = props.flexShrink;
|
|
1093
|
+
if (props.columnGap !== void 0) s.columnGap = typeof props.columnGap === "number" ? `${props.columnGap * SP}px` : props.columnGap;
|
|
1094
|
+
if (props.gridColumn !== void 0) s.gridColumn = typeof props.gridColumn === "number" ? String(props.gridColumn) : props.gridColumn;
|
|
1095
|
+
if (props.gridRow) s.gridRow = props.gridRow;
|
|
1096
|
+
if (props.justifySelf) s.justifySelf = props.justifySelf;
|
|
1097
|
+
if (props.alignSelf) s.alignSelf = props.alignSelf;
|
|
1098
|
+
if (props.h) s.height = props.h;
|
|
1099
|
+
if (props.w) s.width = props.w;
|
|
1100
|
+
if (props.display) s.display = props.display;
|
|
1101
|
+
if (props.borderBottomRightRadius !== void 0) s.borderBottomRightRadius = typeof props.borderBottomRightRadius === "number" ? `${props.borderBottomRightRadius}px` : props.borderBottomRightRadius;
|
|
1102
|
+
if (props.borderTopRightRadius !== void 0) s.borderTopRightRadius = typeof props.borderTopRightRadius === "number" ? `${props.borderTopRightRadius}px` : props.borderTopRightRadius;
|
|
1103
|
+
return Object.keys(s).length > 0 ? s : void 0;
|
|
1104
|
+
}
|
|
1236
1105
|
var Button = React29.forwardRef(
|
|
1237
1106
|
function Button2(props, ref) {
|
|
1238
1107
|
const {
|
|
1239
1108
|
className,
|
|
1240
|
-
variant,
|
|
1241
|
-
size,
|
|
1109
|
+
variant = "solid",
|
|
1110
|
+
size = "md",
|
|
1242
1111
|
asChild = false,
|
|
1243
1112
|
loading = false,
|
|
1244
1113
|
loadingText,
|
|
@@ -1250,57 +1119,48 @@ var Button = React29.forwardRef(
|
|
|
1250
1119
|
children,
|
|
1251
1120
|
style: styleProp,
|
|
1252
1121
|
// Strip Chakra style props
|
|
1253
|
-
mt
|
|
1254
|
-
ml
|
|
1255
|
-
mr
|
|
1256
|
-
px
|
|
1257
|
-
py
|
|
1258
|
-
fontWeight
|
|
1259
|
-
gap
|
|
1260
|
-
flexShrink
|
|
1261
|
-
columnGap
|
|
1262
|
-
gridColumn
|
|
1263
|
-
gridRow
|
|
1264
|
-
justifySelf
|
|
1265
|
-
alignSelf
|
|
1122
|
+
mt,
|
|
1123
|
+
ml,
|
|
1124
|
+
mr,
|
|
1125
|
+
px,
|
|
1126
|
+
py,
|
|
1127
|
+
fontWeight,
|
|
1128
|
+
gap,
|
|
1129
|
+
flexShrink,
|
|
1130
|
+
columnGap,
|
|
1131
|
+
gridColumn,
|
|
1132
|
+
gridRow,
|
|
1133
|
+
justifySelf,
|
|
1134
|
+
alignSelf,
|
|
1266
1135
|
textStyle: _textStyle,
|
|
1267
|
-
h
|
|
1268
|
-
w
|
|
1269
|
-
display
|
|
1270
|
-
borderBottomRightRadius
|
|
1271
|
-
borderTopRightRadius
|
|
1136
|
+
h,
|
|
1137
|
+
w,
|
|
1138
|
+
display,
|
|
1139
|
+
borderBottomRightRadius,
|
|
1140
|
+
borderTopRightRadius,
|
|
1272
1141
|
...rest
|
|
1273
1142
|
} = props;
|
|
1274
|
-
const
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
if (_justifySelf) shimStyle.justifySelf = _justifySelf;
|
|
1296
|
-
if (_alignSelf) shimStyle.alignSelf = _alignSelf;
|
|
1297
|
-
if (_h) shimStyle.height = _h;
|
|
1298
|
-
if (_w) shimStyle.width = _w;
|
|
1299
|
-
if (_display) shimStyle.display = _display;
|
|
1300
|
-
if (_bbrr !== void 0) shimStyle.borderBottomRightRadius = typeof _bbrr === "number" ? `${_bbrr}px` : _bbrr;
|
|
1301
|
-
if (_btrr !== void 0) shimStyle.borderTopRightRadius = typeof _btrr === "number" ? `${_btrr}px` : _btrr;
|
|
1302
|
-
const mergedStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1303
|
-
const Comp = asChild ? Slot : "button";
|
|
1143
|
+
const mergedStyle = buildShimStyle({
|
|
1144
|
+
style: styleProp,
|
|
1145
|
+
mt,
|
|
1146
|
+
ml,
|
|
1147
|
+
mr,
|
|
1148
|
+
px,
|
|
1149
|
+
py,
|
|
1150
|
+
fontWeight,
|
|
1151
|
+
gap,
|
|
1152
|
+
flexShrink,
|
|
1153
|
+
columnGap,
|
|
1154
|
+
gridColumn,
|
|
1155
|
+
gridRow,
|
|
1156
|
+
justifySelf,
|
|
1157
|
+
alignSelf,
|
|
1158
|
+
h,
|
|
1159
|
+
w,
|
|
1160
|
+
display,
|
|
1161
|
+
borderBottomRightRadius,
|
|
1162
|
+
borderTopRightRadius
|
|
1163
|
+
});
|
|
1304
1164
|
const dataAttrs = {};
|
|
1305
1165
|
if (expanded) dataAttrs["data-expanded"] = true;
|
|
1306
1166
|
if (selected) dataAttrs["data-selected"] = true;
|
|
@@ -1309,15 +1169,19 @@ var Button = React29.forwardRef(
|
|
|
1309
1169
|
const isDisabled = !loadingSkeleton && (loading || disabled);
|
|
1310
1170
|
const inner = loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1311
1171
|
/* @__PURE__ */ jsx(Spinner, {}),
|
|
1312
|
-
loadingText != null && /* @__PURE__ */ jsx("span", {
|
|
1172
|
+
loadingText != null && /* @__PURE__ */ jsx("span", { style: { marginLeft: 8 }, children: loadingText })
|
|
1313
1173
|
] }) : children;
|
|
1174
|
+
const variantClass = VARIANT_CLASSES2[variant] ?? VARIANT_CLASSES2.solid;
|
|
1175
|
+
const combinedClassName = [BASE_CLASSES2, variantClass, className].filter(Boolean).join(" ");
|
|
1314
1176
|
const button = /* @__PURE__ */ jsx(
|
|
1315
|
-
|
|
1177
|
+
ButtonFrame,
|
|
1316
1178
|
{
|
|
1317
1179
|
ref,
|
|
1318
|
-
|
|
1319
|
-
style: mergedStyle,
|
|
1180
|
+
size,
|
|
1320
1181
|
disabled: isDisabled || void 0,
|
|
1182
|
+
asChild: asChild || void 0,
|
|
1183
|
+
className: combinedClassName,
|
|
1184
|
+
style: mergedStyle,
|
|
1321
1185
|
...dataAttrs,
|
|
1322
1186
|
...rest,
|
|
1323
1187
|
children: inner
|
|
@@ -1329,6 +1193,17 @@ var Button = React29.forwardRef(
|
|
|
1329
1193
|
return button;
|
|
1330
1194
|
}
|
|
1331
1195
|
);
|
|
1196
|
+
var SIZE_CLASSES4 = {
|
|
1197
|
+
"2xs": "px-2 h-5 min-w-5 text-xs rounded-sm gap-1",
|
|
1198
|
+
xs: "px-2 h-6 min-w-6 text-sm rounded-sm gap-1",
|
|
1199
|
+
sm: "px-3 h-8 min-w-8 text-sm rounded-md gap-1",
|
|
1200
|
+
md: "px-3 h-10 min-w-10 text-base rounded-md gap-2"
|
|
1201
|
+
};
|
|
1202
|
+
function buttonVariants(opts) {
|
|
1203
|
+
const v = opts?.variant ?? "solid";
|
|
1204
|
+
const s = opts?.size ?? "md";
|
|
1205
|
+
return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES4[s] ?? ""].filter(Boolean).join(" ");
|
|
1206
|
+
}
|
|
1332
1207
|
var ButtonGroup = React29.forwardRef(
|
|
1333
1208
|
function ButtonGroup2(props, ref) {
|
|
1334
1209
|
const { className, ...rest } = props;
|
|
@@ -1336,7 +1211,7 @@ var ButtonGroup = React29.forwardRef(
|
|
|
1336
1211
|
"div",
|
|
1337
1212
|
{
|
|
1338
1213
|
ref,
|
|
1339
|
-
className:
|
|
1214
|
+
className: ["inline-flex", className].filter(Boolean).join(" "),
|
|
1340
1215
|
role: "group",
|
|
1341
1216
|
...rest
|
|
1342
1217
|
}
|
|
@@ -1377,11 +1252,11 @@ var ButtonGroupRadio = React29.forwardRef(
|
|
|
1377
1252
|
"div",
|
|
1378
1253
|
{
|
|
1379
1254
|
ref,
|
|
1380
|
-
className:
|
|
1255
|
+
className: [
|
|
1381
1256
|
"inline-flex gap-0",
|
|
1382
|
-
equalWidth
|
|
1257
|
+
equalWidth ? "grid" : "",
|
|
1383
1258
|
className
|
|
1384
|
-
),
|
|
1259
|
+
].filter(Boolean).join(" "),
|
|
1385
1260
|
style: equalWidth ? { gridTemplateColumns: `repeat(${childrenLength}, 1fr)` } : void 0,
|
|
1386
1261
|
role: "group",
|
|
1387
1262
|
...rest,
|
|
@@ -1444,7 +1319,7 @@ var CheckboxGroupBase = React29.forwardRef(
|
|
|
1444
1319
|
}
|
|
1445
1320
|
);
|
|
1446
1321
|
var CheckboxGroup2 = CheckboxGroupBase;
|
|
1447
|
-
var
|
|
1322
|
+
var SIZE_CLASSES5 = {
|
|
1448
1323
|
sm: {
|
|
1449
1324
|
root: "gap-1.5",
|
|
1450
1325
|
control: "h-3.5 w-3.5 rounded-sm",
|
|
@@ -1554,7 +1429,7 @@ var CheckboxBase = React29.forwardRef(
|
|
|
1554
1429
|
},
|
|
1555
1430
|
[readOnly, isControlled, isInGroup, group, value, onCheckedChange, onChange]
|
|
1556
1431
|
);
|
|
1557
|
-
const sizeClasses2 =
|
|
1432
|
+
const sizeClasses2 = SIZE_CLASSES5[size];
|
|
1558
1433
|
return /* @__PURE__ */ jsxs(
|
|
1559
1434
|
"label",
|
|
1560
1435
|
{
|
|
@@ -1630,7 +1505,7 @@ function stripUtmParams(url) {
|
|
|
1630
1505
|
return url;
|
|
1631
1506
|
}
|
|
1632
1507
|
}
|
|
1633
|
-
var
|
|
1508
|
+
var VARIANT_CLASSES3 = {
|
|
1634
1509
|
primary: cn(
|
|
1635
1510
|
"text-[var(--color-link-primary)]",
|
|
1636
1511
|
"hover:no-underline hover:text-[var(--color-link-primary-hover)]",
|
|
@@ -1670,7 +1545,7 @@ var VARIANT_CLASSES2 = {
|
|
|
1670
1545
|
"data-[hover]:no-underline"
|
|
1671
1546
|
)
|
|
1672
1547
|
};
|
|
1673
|
-
var
|
|
1548
|
+
var BASE_CLASSES3 = "inline-flex items-center gap-0 cursor-pointer data-[disabled]:cursor-not-allowed";
|
|
1674
1549
|
var LinkExternalIcon = ({ color }) => /* @__PURE__ */ jsx(
|
|
1675
1550
|
ArrowIcon,
|
|
1676
1551
|
{
|
|
@@ -1739,7 +1614,7 @@ var Link = React29__default.forwardRef(
|
|
|
1739
1614
|
if (_minW !== void 0) shimStyle.minWidth = typeof _minW === "number" ? `${_minW * SPACING}px` : _minW;
|
|
1740
1615
|
if (_justifyContent) shimStyle.justifyContent = _justifyContent;
|
|
1741
1616
|
if (_position) shimStyle.position = _position;
|
|
1742
|
-
const linkClasses = cn(
|
|
1617
|
+
const linkClasses = cn(BASE_CLASSES3, VARIANT_CLASSES3[variant], className);
|
|
1743
1618
|
const linkStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1744
1619
|
if (external) {
|
|
1745
1620
|
const processedHref = typeof href === "string" ? stripUtmParams(href) : href;
|
|
@@ -1828,8 +1703,8 @@ var LinkOverlay = React29__default.forwardRef(
|
|
|
1828
1703
|
...rest
|
|
1829
1704
|
} = props;
|
|
1830
1705
|
const overlayClasses = cn(
|
|
1831
|
-
|
|
1832
|
-
|
|
1706
|
+
BASE_CLASSES3,
|
|
1707
|
+
VARIANT_CLASSES3[variant],
|
|
1833
1708
|
// Static positioning with a ::before pseudo-element that covers the LinkBox
|
|
1834
1709
|
"static",
|
|
1835
1710
|
'before:absolute before:inset-0 before:z-0 before:content-[""]',
|
|
@@ -2027,9 +1902,9 @@ function BackToButton({ onClick }) {
|
|
|
2027
1902
|
}
|
|
2028
1903
|
);
|
|
2029
1904
|
}
|
|
2030
|
-
var
|
|
2031
|
-
function
|
|
2032
|
-
return React29.useContext(
|
|
1905
|
+
var DialogSizeContext = React29.createContext({ size: "md" });
|
|
1906
|
+
function useDialogSizeContext() {
|
|
1907
|
+
return React29.useContext(DialogSizeContext);
|
|
2033
1908
|
}
|
|
2034
1909
|
var CONTENT_SIZE_MAP = {
|
|
2035
1910
|
sm: "max-w-[400px]",
|
|
@@ -2059,7 +1934,7 @@ var DialogRoot = ({
|
|
|
2059
1934
|
onOpenChange,
|
|
2060
1935
|
size = "md",
|
|
2061
1936
|
modal = true
|
|
2062
|
-
// motionPreset is intentionally unused
|
|
1937
|
+
// motionPreset is intentionally unused -- kept for API compat
|
|
2063
1938
|
}) => {
|
|
2064
1939
|
const handleOpenChange = React29.useCallback(
|
|
2065
1940
|
(nextOpen) => {
|
|
@@ -2068,8 +1943,8 @@ var DialogRoot = ({
|
|
|
2068
1943
|
[onOpenChange]
|
|
2069
1944
|
);
|
|
2070
1945
|
const ctx = React29.useMemo(() => ({ size }), [size]);
|
|
2071
|
-
return /* @__PURE__ */ jsx(
|
|
2072
|
-
|
|
1946
|
+
return /* @__PURE__ */ jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
|
|
1947
|
+
Dialog,
|
|
2073
1948
|
{
|
|
2074
1949
|
open,
|
|
2075
1950
|
defaultOpen,
|
|
@@ -2082,8 +1957,8 @@ var DialogRoot = ({
|
|
|
2082
1957
|
var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
|
|
2083
1958
|
const {
|
|
2084
1959
|
children,
|
|
2085
|
-
portalled = true,
|
|
2086
|
-
portalRef,
|
|
1960
|
+
portalled: _portalled = true,
|
|
1961
|
+
portalRef: _portalRef,
|
|
2087
1962
|
backdrop = true,
|
|
2088
1963
|
className,
|
|
2089
1964
|
paddingTop: _paddingTop,
|
|
@@ -2094,21 +1969,12 @@ var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
|
|
|
2094
1969
|
...styleProp,
|
|
2095
1970
|
..._paddingTop !== void 0 ? { paddingTop: typeof _paddingTop === "number" ? `${_paddingTop * 4}px` : _paddingTop } : {}
|
|
2096
1971
|
};
|
|
2097
|
-
const { size } =
|
|
2098
|
-
|
|
2099
|
-
if (!portalled) {
|
|
2100
|
-
portalProps = { container: void 0 };
|
|
2101
|
-
} else if (portalRef) {
|
|
2102
|
-
portalProps = { container: portalRef.current };
|
|
2103
|
-
} else {
|
|
2104
|
-
portalProps = {};
|
|
2105
|
-
}
|
|
2106
|
-
const Wrapper = portalled ? RadixDialog.Portal : React29.Fragment;
|
|
2107
|
-
const wrapperProps = portalled ? portalProps : {};
|
|
2108
|
-
return /* @__PURE__ */ jsxs(Wrapper, { ...wrapperProps, children: [
|
|
1972
|
+
const { size } = useDialogSizeContext();
|
|
1973
|
+
return /* @__PURE__ */ jsxs(Dialog.Portal, { children: [
|
|
2109
1974
|
backdrop && /* @__PURE__ */ jsx(
|
|
2110
|
-
|
|
1975
|
+
Dialog.Overlay,
|
|
2111
1976
|
{
|
|
1977
|
+
unstyled: true,
|
|
2112
1978
|
className: "fixed inset-0 z-[1400] bg-black/80"
|
|
2113
1979
|
}
|
|
2114
1980
|
),
|
|
@@ -2121,9 +1987,10 @@ var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
|
|
|
2121
1987
|
"overflow-hidden"
|
|
2122
1988
|
),
|
|
2123
1989
|
children: /* @__PURE__ */ jsx(
|
|
2124
|
-
|
|
1990
|
+
Dialog.Content,
|
|
2125
1991
|
{
|
|
2126
1992
|
ref,
|
|
1993
|
+
unstyled: true,
|
|
2127
1994
|
className: cn(
|
|
2128
1995
|
// Base content styles
|
|
2129
1996
|
"relative flex flex-col w-full p-6 outline-none text-base",
|
|
@@ -2146,7 +2013,7 @@ var DialogContent = React29.forwardRef(function DialogContent2(props, ref) {
|
|
|
2146
2013
|
});
|
|
2147
2014
|
var DialogCloseTrigger = React29.forwardRef(function DialogCloseTrigger2(props, ref) {
|
|
2148
2015
|
const { className, ...rest } = props;
|
|
2149
|
-
return /* @__PURE__ */ jsx(
|
|
2016
|
+
return /* @__PURE__ */ jsx(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx(CloseButton, { ref, className, ...rest, children: props.children }) });
|
|
2150
2017
|
});
|
|
2151
2018
|
var DialogHeader = React29.forwardRef(function DialogHeader2(props, ref) {
|
|
2152
2019
|
const { startElement: startElementProp, onBackToClick, className, children, ...rest } = props;
|
|
@@ -2163,8 +2030,9 @@ var DialogHeader = React29.forwardRef(function DialogHeader2(props, ref) {
|
|
|
2163
2030
|
children: [
|
|
2164
2031
|
startElement,
|
|
2165
2032
|
/* @__PURE__ */ jsx(
|
|
2166
|
-
|
|
2033
|
+
Dialog.Title,
|
|
2167
2034
|
{
|
|
2035
|
+
unstyled: true,
|
|
2168
2036
|
className: cn(
|
|
2169
2037
|
"text-base lg:text-lg font-medium",
|
|
2170
2038
|
"whitespace-nowrap overflow-hidden text-ellipsis"
|
|
@@ -2204,11 +2072,11 @@ var DialogFooter = React29.forwardRef(function DialogFooter2({ className, ...pro
|
|
|
2204
2072
|
}
|
|
2205
2073
|
);
|
|
2206
2074
|
});
|
|
2207
|
-
var DialogBackdrop =
|
|
2208
|
-
var DialogTitle =
|
|
2209
|
-
var DialogDescription =
|
|
2210
|
-
var DialogTrigger =
|
|
2211
|
-
var DialogActionTrigger =
|
|
2075
|
+
var DialogBackdrop = Dialog.Overlay;
|
|
2076
|
+
var DialogTitle = Dialog.Title;
|
|
2077
|
+
var DialogDescription = Dialog.Description;
|
|
2078
|
+
var DialogTrigger = Dialog.Trigger;
|
|
2079
|
+
var DialogActionTrigger = Dialog.Close;
|
|
2212
2080
|
var DrawerPlacementContext = React29.createContext("right");
|
|
2213
2081
|
var DrawerSizeContext = React29.createContext("md");
|
|
2214
2082
|
var DrawerRoot = (props) => {
|
|
@@ -2257,7 +2125,7 @@ var PLACEMENT_CLASSES = {
|
|
|
2257
2125
|
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom"
|
|
2258
2126
|
].join(" ")
|
|
2259
2127
|
};
|
|
2260
|
-
var
|
|
2128
|
+
var SIZE_CLASSES6 = {
|
|
2261
2129
|
right: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
|
|
2262
2130
|
left: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
|
|
2263
2131
|
top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
|
|
@@ -2286,7 +2154,7 @@ var DrawerContent = React29.forwardRef(
|
|
|
2286
2154
|
className: cn(
|
|
2287
2155
|
"fixed z-50 flex flex-col bg-[var(--color-drawer-bg)] shadow-[var(--shadow-drawer)] duration-300",
|
|
2288
2156
|
PLACEMENT_CLASSES[placement] ?? PLACEMENT_CLASSES.right,
|
|
2289
|
-
|
|
2157
|
+
SIZE_CLASSES6[placement]?.[size] ?? SIZE_CLASSES6.right?.md,
|
|
2290
2158
|
className
|
|
2291
2159
|
),
|
|
2292
2160
|
...rest,
|
|
@@ -2538,92 +2406,100 @@ var Field = React29.forwardRef(
|
|
|
2538
2406
|
);
|
|
2539
2407
|
}
|
|
2540
2408
|
);
|
|
2541
|
-
var LEVEL_TAG = {
|
|
2542
|
-
"1": "h1",
|
|
2543
|
-
"2": "h2",
|
|
2544
|
-
"3": "h3"
|
|
2545
|
-
};
|
|
2409
|
+
var LEVEL_TAG = { "1": "h1", "2": "h2", "3": "h3" };
|
|
2546
2410
|
var LEVEL_CLASSES = {
|
|
2547
2411
|
"1": "text-[18px] leading-[24px] font-medium lg:text-[32px] lg:leading-[40px] lg:tracking-[-0.5px]",
|
|
2548
2412
|
"2": "text-[16px] leading-[24px] font-medium lg:text-[24px] lg:leading-[32px]",
|
|
2549
2413
|
"3": "text-[14px] leading-[20px] font-semibold lg:text-[18px] lg:leading-[24px] lg:font-medium"
|
|
2550
2414
|
};
|
|
2551
|
-
var
|
|
2415
|
+
var BASE_CLASSES4 = "font-heading text-heading";
|
|
2552
2416
|
var Heading = React29__default.forwardRef(
|
|
2553
2417
|
function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
|
|
2554
2418
|
const Tag3 = level ? LEVEL_TAG[level] : "h2";
|
|
2555
2419
|
const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
|
|
2556
|
-
const
|
|
2557
|
-
if (mb !== void 0) shimStyle.marginBottom = typeof mb === "number" ? `${mb * 4}px` : mb;
|
|
2420
|
+
const mergedStyle = mb !== void 0 ? { ...styleProp, marginBottom: typeof mb === "number" ? `${mb * 4}px` : mb } : styleProp;
|
|
2558
2421
|
return /* @__PURE__ */ jsx(
|
|
2559
2422
|
Tag3,
|
|
2560
2423
|
{
|
|
2561
2424
|
ref,
|
|
2562
|
-
className: cn(
|
|
2563
|
-
style:
|
|
2425
|
+
className: cn(BASE_CLASSES4, levelClasses, className),
|
|
2426
|
+
style: mergedStyle,
|
|
2564
2427
|
...rest
|
|
2565
2428
|
}
|
|
2566
2429
|
);
|
|
2567
2430
|
}
|
|
2568
2431
|
);
|
|
2569
|
-
var
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
],
|
|
2588
|
-
icon_background: [
|
|
2589
|
-
"bg-[var(--color-button-icon-background-bg)] text-icon-secondary border-none",
|
|
2590
|
-
"hover:text-hover",
|
|
2591
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2592
|
-
"data-[selected]:hover:text-hover",
|
|
2593
|
-
"data-[expanded]:text-hover"
|
|
2594
|
-
],
|
|
2595
|
-
link: [
|
|
2596
|
-
"bg-transparent text-link-primary border-none font-normal px-0 h-auto",
|
|
2597
|
-
"hover:bg-transparent hover:text-link-primary-hover",
|
|
2598
|
-
"disabled:text-text-secondary"
|
|
2599
|
-
],
|
|
2600
|
-
dropdown: [
|
|
2601
|
-
"border-2 border-solid bg-transparent",
|
|
2602
|
-
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
2603
|
-
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2604
|
-
"data-[expanded]:bg-transparent data-[expanded]:text-hover data-[expanded]:border-hover",
|
|
2605
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent",
|
|
2606
|
-
"data-[selected]:hover:text-hover"
|
|
2607
|
-
],
|
|
2608
|
-
pagination: [
|
|
2609
|
-
"border-2 border-solid bg-transparent",
|
|
2610
|
-
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
2611
|
-
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2612
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent"
|
|
2613
|
-
]
|
|
2614
|
-
},
|
|
2615
|
-
size: {
|
|
2616
|
-
"2xs": "size-5 rounded-sm [&_svg]:size-5",
|
|
2617
|
-
"2xs_alt": "size-5 rounded-sm [&_svg]:size-3",
|
|
2618
|
-
md: "size-8 rounded-[var(--radius-base,8px)] [&_svg]:size-5"
|
|
2619
|
-
}
|
|
2432
|
+
var IconButtonFrame = styled(View, {
|
|
2433
|
+
name: "LuxIconButton",
|
|
2434
|
+
render: /* @__PURE__ */ jsx("button", { type: "button" }),
|
|
2435
|
+
role: "button",
|
|
2436
|
+
cursor: "pointer",
|
|
2437
|
+
display: "inline-flex",
|
|
2438
|
+
alignItems: "center",
|
|
2439
|
+
justifyContent: "center",
|
|
2440
|
+
padding: 0,
|
|
2441
|
+
minWidth: "auto",
|
|
2442
|
+
flexShrink: 1,
|
|
2443
|
+
backgroundColor: "transparent",
|
|
2444
|
+
borderWidth: 0,
|
|
2445
|
+
variants: {
|
|
2446
|
+
size: {
|
|
2447
|
+
"2xs": { width: 20, height: 20, borderRadius: 4 },
|
|
2448
|
+
"2xs_alt": { width: 20, height: 20, borderRadius: 4 },
|
|
2449
|
+
md: { width: 32, height: 32, borderRadius: "var(--radius-base, 8px)" }
|
|
2620
2450
|
},
|
|
2621
|
-
|
|
2622
|
-
|
|
2451
|
+
disabled: {
|
|
2452
|
+
true: {
|
|
2453
|
+
opacity: 0.4,
|
|
2454
|
+
cursor: "not-allowed",
|
|
2455
|
+
pointerEvents: "none"
|
|
2456
|
+
}
|
|
2623
2457
|
}
|
|
2624
2458
|
}
|
|
2625
|
-
);
|
|
2626
|
-
var
|
|
2459
|
+
});
|
|
2460
|
+
var VARIANT_CLASSES4 = {
|
|
2461
|
+
plain: "bg-transparent text-inherit border-none hover:bg-transparent",
|
|
2462
|
+
icon_secondary: [
|
|
2463
|
+
"bg-transparent text-icon-secondary border-none",
|
|
2464
|
+
"hover:text-hover",
|
|
2465
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2466
|
+
"data-[selected]:hover:text-hover",
|
|
2467
|
+
"data-[expanded]:text-hover"
|
|
2468
|
+
].join(" "),
|
|
2469
|
+
icon_background: [
|
|
2470
|
+
"bg-[var(--color-button-icon-background-bg)] text-icon-secondary border-none",
|
|
2471
|
+
"hover:text-hover",
|
|
2472
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2473
|
+
"data-[selected]:hover:text-hover",
|
|
2474
|
+
"data-[expanded]:text-hover"
|
|
2475
|
+
].join(" "),
|
|
2476
|
+
link: [
|
|
2477
|
+
"bg-transparent text-link-primary border-none font-normal px-0 h-auto",
|
|
2478
|
+
"hover:bg-transparent hover:text-link-primary-hover",
|
|
2479
|
+
"disabled:text-text-secondary"
|
|
2480
|
+
].join(" "),
|
|
2481
|
+
dropdown: [
|
|
2482
|
+
"border-2 border-solid bg-transparent",
|
|
2483
|
+
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
2484
|
+
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2485
|
+
"data-[expanded]:bg-transparent data-[expanded]:text-hover data-[expanded]:border-hover",
|
|
2486
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent",
|
|
2487
|
+
"data-[selected]:hover:text-hover"
|
|
2488
|
+
].join(" "),
|
|
2489
|
+
pagination: [
|
|
2490
|
+
"border-2 border-solid bg-transparent",
|
|
2491
|
+
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
2492
|
+
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2493
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent"
|
|
2494
|
+
].join(" ")
|
|
2495
|
+
};
|
|
2496
|
+
var ICON_SIZE_CLASSES = {
|
|
2497
|
+
"2xs": "[&_svg]:size-5",
|
|
2498
|
+
"2xs_alt": "[&_svg]:size-3",
|
|
2499
|
+
md: "[&_svg]:size-5"
|
|
2500
|
+
};
|
|
2501
|
+
var SP2 = 4;
|
|
2502
|
+
var IconButton = React29.forwardRef(
|
|
2627
2503
|
function IconButton2(props, ref) {
|
|
2628
2504
|
const {
|
|
2629
2505
|
size,
|
|
@@ -2636,7 +2512,7 @@ var IconButton = React29__default.forwardRef(
|
|
|
2636
2512
|
disabled,
|
|
2637
2513
|
className,
|
|
2638
2514
|
children,
|
|
2639
|
-
as:
|
|
2515
|
+
as: _as,
|
|
2640
2516
|
style: styleProp,
|
|
2641
2517
|
// Strip Chakra style props
|
|
2642
2518
|
boxSize: _boxSize,
|
|
@@ -2649,37 +2525,47 @@ var IconButton = React29__default.forwardRef(
|
|
|
2649
2525
|
_expanded,
|
|
2650
2526
|
...rest
|
|
2651
2527
|
} = props;
|
|
2652
|
-
const SP = 4;
|
|
2653
2528
|
const shimStyle = { ...styleProp };
|
|
2654
2529
|
if (_boxSize !== void 0) {
|
|
2655
|
-
const bs = typeof _boxSize === "number" ? `${_boxSize *
|
|
2530
|
+
const bs = typeof _boxSize === "number" ? `${_boxSize * SP2}px` : _boxSize;
|
|
2656
2531
|
shimStyle.width = bs;
|
|
2657
2532
|
shimStyle.height = bs;
|
|
2658
2533
|
}
|
|
2659
2534
|
if (_color) shimStyle.color = _color;
|
|
2660
2535
|
if (_px !== void 0) {
|
|
2661
|
-
const v = typeof _px === "number" ? `${_px *
|
|
2536
|
+
const v = typeof _px === "number" ? `${_px * SP2}px` : _px;
|
|
2662
2537
|
shimStyle.paddingLeft = v;
|
|
2663
2538
|
shimStyle.paddingRight = v;
|
|
2664
2539
|
}
|
|
2665
2540
|
if (_borderRadius) shimStyle.borderRadius = _borderRadius;
|
|
2666
|
-
if (_ml !== void 0) shimStyle.marginLeft = typeof _ml === "number" ? `${_ml *
|
|
2667
|
-
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr *
|
|
2668
|
-
const
|
|
2541
|
+
if (_ml !== void 0) shimStyle.marginLeft = typeof _ml === "number" ? `${_ml * SP2}px` : _ml;
|
|
2542
|
+
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr * SP2}px` : _mr;
|
|
2543
|
+
const mergedStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
2544
|
+
const variantClass = VARIANT_CLASSES4[variant] ?? VARIANT_CLASSES4.plain;
|
|
2545
|
+
const iconSizeClass = size ? ICON_SIZE_CLASSES[size] ?? "" : "";
|
|
2546
|
+
const combinedClassName = [variantClass, iconSizeClass, className].filter(Boolean).join(" ");
|
|
2669
2547
|
const button = /* @__PURE__ */ jsx(
|
|
2670
|
-
|
|
2548
|
+
IconButtonFrame,
|
|
2671
2549
|
{
|
|
2672
2550
|
ref,
|
|
2673
|
-
|
|
2674
|
-
disabled: !loadingSkeleton && (loading || disabled),
|
|
2675
|
-
|
|
2676
|
-
|
|
2551
|
+
size,
|
|
2552
|
+
disabled: !loadingSkeleton && (loading || disabled) || void 0,
|
|
2553
|
+
render: _as ? React29.createElement(_as) : void 0,
|
|
2554
|
+
className: combinedClassName,
|
|
2555
|
+
style: mergedStyle,
|
|
2677
2556
|
...expanded ? { "data-expanded": true } : {},
|
|
2678
2557
|
...selected ? { "data-selected": true } : {},
|
|
2679
2558
|
...highlighted ? { "data-highlighted": true } : {},
|
|
2680
2559
|
...loadingSkeleton ? { "data-loading-skeleton": true } : {},
|
|
2681
2560
|
...rest,
|
|
2682
|
-
children: loading ? /* @__PURE__ */ jsx(
|
|
2561
|
+
children: loading ? /* @__PURE__ */ jsx(
|
|
2562
|
+
"span",
|
|
2563
|
+
{
|
|
2564
|
+
className: "inline-block size-5 animate-spin rounded-full border-2 border-current border-b-transparent border-l-transparent",
|
|
2565
|
+
role: "status",
|
|
2566
|
+
"aria-label": "Loading"
|
|
2567
|
+
}
|
|
2568
|
+
) : children
|
|
2683
2569
|
}
|
|
2684
2570
|
);
|
|
2685
2571
|
if (loadingSkeleton) {
|
|
@@ -2892,46 +2778,36 @@ var Image2 = React29__default.forwardRef(
|
|
|
2892
2778
|
] });
|
|
2893
2779
|
}
|
|
2894
2780
|
);
|
|
2895
|
-
var
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
|
|
2919
|
-
unstyled: "border-0 bg-transparent p-0 h-auto"
|
|
2920
|
-
}
|
|
2921
|
-
},
|
|
2922
|
-
defaultVariants: {
|
|
2923
|
-
size: "md",
|
|
2924
|
-
variant: "outline"
|
|
2925
|
-
}
|
|
2926
|
-
}
|
|
2927
|
-
);
|
|
2781
|
+
var INPUT_BASE = [
|
|
2782
|
+
"w-full appearance-none outline-none transition-colors",
|
|
2783
|
+
"bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
|
|
2784
|
+
"placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
|
|
2785
|
+
"hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
|
|
2786
|
+
"focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
|
|
2787
|
+
"focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
|
|
2788
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
2789
|
+
"read-only:opacity-70",
|
|
2790
|
+
"data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
|
|
2791
|
+
].join(" ");
|
|
2792
|
+
var INPUT_SIZE_CLASSES = {
|
|
2793
|
+
xs: "h-6 px-2 text-xs rounded",
|
|
2794
|
+
sm: "h-8 px-3 text-sm rounded-md",
|
|
2795
|
+
md: "h-10 px-4 text-base rounded-md",
|
|
2796
|
+
lg: "h-12 px-4 text-lg rounded-lg",
|
|
2797
|
+
"2xl": "h-14 px-4 text-xl rounded-lg"
|
|
2798
|
+
};
|
|
2799
|
+
var INPUT_VARIANT_CLASSES = {
|
|
2800
|
+
outline: "border border-solid",
|
|
2801
|
+
filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
|
|
2802
|
+
unstyled: "border-0 bg-transparent p-0 h-auto"
|
|
2803
|
+
};
|
|
2928
2804
|
var Input = React29__default.forwardRef(
|
|
2929
|
-
({ size, variant, className, ...rest }, ref) => {
|
|
2805
|
+
({ size = "md", variant = "outline", className, ...rest }, ref) => {
|
|
2930
2806
|
return /* @__PURE__ */ jsx(
|
|
2931
2807
|
"input",
|
|
2932
2808
|
{
|
|
2933
2809
|
ref,
|
|
2934
|
-
className: cn(
|
|
2810
|
+
className: cn(INPUT_BASE, INPUT_SIZE_CLASSES[size], INPUT_VARIANT_CLASSES[variant], className),
|
|
2935
2811
|
...rest
|
|
2936
2812
|
}
|
|
2937
2813
|
);
|
|
@@ -3314,7 +3190,7 @@ var MenuTriggerItem = React29.forwardRef(function MenuTriggerItem2(props, ref) {
|
|
|
3314
3190
|
}
|
|
3315
3191
|
) });
|
|
3316
3192
|
});
|
|
3317
|
-
var
|
|
3193
|
+
var INPUT_BASE2 = [
|
|
3318
3194
|
"w-10 h-10",
|
|
3319
3195
|
"text-center text-sm font-medium",
|
|
3320
3196
|
"border-2 rounded-md",
|
|
@@ -3445,7 +3321,7 @@ var PinInput = React29.forwardRef(
|
|
|
3445
3321
|
"aria-invalid": invalid || void 0,
|
|
3446
3322
|
value: values[index] || "",
|
|
3447
3323
|
className: cn(
|
|
3448
|
-
|
|
3324
|
+
INPUT_BASE2,
|
|
3449
3325
|
values[index] && INPUT_FILLED,
|
|
3450
3326
|
invalid && INPUT_INVALID,
|
|
3451
3327
|
attached && index > 0 && "-ml-0.5"
|
|
@@ -3495,8 +3371,7 @@ var PopoverRoot = (props) => {
|
|
|
3495
3371
|
positioning,
|
|
3496
3372
|
autoFocus = false,
|
|
3497
3373
|
closeOnInteractOutside = true,
|
|
3498
|
-
|
|
3499
|
-
// lazyMount and unmountOnExit are handled via forceMount on Portal/Content
|
|
3374
|
+
// lazyMount and unmountOnExit are handled via keepChildrenMounted
|
|
3500
3375
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3501
3376
|
lazyMount: _lazyMount,
|
|
3502
3377
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -3532,23 +3407,27 @@ var PopoverRoot = (props) => {
|
|
|
3532
3407
|
const handleOpenChange = React29.useCallback((isOpen) => {
|
|
3533
3408
|
onOpenChange?.({ open: isOpen });
|
|
3534
3409
|
}, [onOpenChange]);
|
|
3410
|
+
const placement = mergedPositioning.placement ?? "bottom-start";
|
|
3411
|
+
const offset = mergedPositioning.offset?.mainAxis ?? 4;
|
|
3535
3412
|
return /* @__PURE__ */ jsx(PositioningContext2.Provider, { value: positioningValue, children: /* @__PURE__ */ jsx(
|
|
3536
|
-
|
|
3413
|
+
Popover,
|
|
3537
3414
|
{
|
|
3538
3415
|
open,
|
|
3539
3416
|
defaultOpen,
|
|
3540
3417
|
onOpenChange: handleOpenChange,
|
|
3541
|
-
|
|
3418
|
+
placement,
|
|
3419
|
+
offset,
|
|
3420
|
+
disableFocus: !autoFocus,
|
|
3542
3421
|
children
|
|
3543
3422
|
}
|
|
3544
3423
|
) });
|
|
3545
3424
|
};
|
|
3546
3425
|
var PopoverTrigger = React29.forwardRef(function PopoverTrigger2(props, ref) {
|
|
3547
3426
|
const { asChild = true, ...rest } = props;
|
|
3548
|
-
return /* @__PURE__ */ jsx(
|
|
3427
|
+
return /* @__PURE__ */ jsx(Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
|
|
3549
3428
|
});
|
|
3550
3429
|
var PopoverContent = React29.forwardRef(function PopoverContent2(props, ref) {
|
|
3551
|
-
const { portalled = true, portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
|
|
3430
|
+
const { portalled = true, portalRef: _portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
|
|
3552
3431
|
const resolvedW = typeof w === "object" ? w.base ?? w.lg : w;
|
|
3553
3432
|
const contentStyle = {
|
|
3554
3433
|
...styleProp,
|
|
@@ -3557,20 +3436,11 @@ var PopoverContent = React29.forwardRef(function PopoverContent2(props, ref) {
|
|
|
3557
3436
|
...maxW ? { maxWidth: maxW } : {},
|
|
3558
3437
|
...paddingTop !== void 0 ? { paddingTop: typeof paddingTop === "number" ? `${paddingTop * 4}px` : paddingTop } : {}
|
|
3559
3438
|
};
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
const preventInteract = React29.useCallback((e) => e.preventDefault(), []);
|
|
3563
|
-
const content = /* @__PURE__ */ jsx(
|
|
3564
|
-
RadixPopover.Content,
|
|
3439
|
+
return /* @__PURE__ */ jsx(
|
|
3440
|
+
Popover.Content,
|
|
3565
3441
|
{
|
|
3566
3442
|
ref,
|
|
3567
|
-
|
|
3568
|
-
align: positioning.align,
|
|
3569
|
-
sideOffset: positioning.sideOffset,
|
|
3570
|
-
alignOffset: positioning.alignOffset,
|
|
3571
|
-
collisionPadding: positioning.collisionPadding,
|
|
3572
|
-
onOpenAutoFocus: positioning.autoFocus ? void 0 : preventFocus,
|
|
3573
|
-
onInteractOutside: positioning.closeOnInteractOutside ? void 0 : preventInteract,
|
|
3443
|
+
unstyled: true,
|
|
3574
3444
|
className: cn(
|
|
3575
3445
|
"z-50 rounded-lg border border-[var(--color-popover-border,var(--color-border-divider))]",
|
|
3576
3446
|
"bg-[var(--color-popover-bg,var(--color-dialog-bg))]",
|
|
@@ -3586,17 +3456,14 @@ var PopoverContent = React29.forwardRef(function PopoverContent2(props, ref) {
|
|
|
3586
3456
|
...rest
|
|
3587
3457
|
}
|
|
3588
3458
|
);
|
|
3589
|
-
if (!portalled) {
|
|
3590
|
-
return content;
|
|
3591
|
-
}
|
|
3592
|
-
return /* @__PURE__ */ jsx(RadixPopover.Portal, { container: portalRef?.current ?? void 0, children: content });
|
|
3593
3459
|
});
|
|
3594
3460
|
var PopoverArrow = React29.forwardRef(function PopoverArrow2(props, ref) {
|
|
3595
3461
|
const { className, ...rest } = props;
|
|
3596
3462
|
return /* @__PURE__ */ jsx(
|
|
3597
|
-
|
|
3463
|
+
Popover.Arrow,
|
|
3598
3464
|
{
|
|
3599
3465
|
ref,
|
|
3466
|
+
unstyled: true,
|
|
3600
3467
|
className: cn("fill-[var(--color-popover-bg,var(--color-dialog-bg))]", className),
|
|
3601
3468
|
...rest
|
|
3602
3469
|
}
|
|
@@ -3605,8 +3472,9 @@ var PopoverArrow = React29.forwardRef(function PopoverArrow2(props, ref) {
|
|
|
3605
3472
|
var PopoverCloseTrigger = React29.forwardRef(function PopoverCloseTrigger2(props, ref) {
|
|
3606
3473
|
const { className, ...rest } = props;
|
|
3607
3474
|
return /* @__PURE__ */ jsx(
|
|
3608
|
-
|
|
3475
|
+
Popover.Close,
|
|
3609
3476
|
{
|
|
3477
|
+
unstyled: true,
|
|
3610
3478
|
className: cn("absolute top-1 right-1", className),
|
|
3611
3479
|
...rest,
|
|
3612
3480
|
asChild: true,
|
|
@@ -3620,7 +3488,7 @@ var PopoverCloseTriggerWrapper = React29.forwardRef(function PopoverCloseTrigger
|
|
|
3620
3488
|
if (disabled) {
|
|
3621
3489
|
return children;
|
|
3622
3490
|
}
|
|
3623
|
-
return /* @__PURE__ */ jsx(
|
|
3491
|
+
return /* @__PURE__ */ jsx(Popover.Close, { ref, ...rest, asChild: true, children });
|
|
3624
3492
|
});
|
|
3625
3493
|
var PopoverBody = React29.forwardRef(function PopoverBody2(props, ref) {
|
|
3626
3494
|
const {
|
|
@@ -3704,7 +3572,7 @@ var PopoverDescription = React29.forwardRef(function PopoverDescription2(props,
|
|
|
3704
3572
|
}
|
|
3705
3573
|
);
|
|
3706
3574
|
});
|
|
3707
|
-
var
|
|
3575
|
+
var SIZE_CLASSES7 = {
|
|
3708
3576
|
sm: "h-1",
|
|
3709
3577
|
md: "h-2",
|
|
3710
3578
|
lg: "h-3",
|
|
@@ -3762,7 +3630,7 @@ var Progress = React29.forwardRef(
|
|
|
3762
3630
|
className: cn(
|
|
3763
3631
|
"w-full overflow-hidden rounded-full",
|
|
3764
3632
|
"bg-[var(--color-progress-track)]",
|
|
3765
|
-
|
|
3633
|
+
SIZE_CLASSES7[size],
|
|
3766
3634
|
trackProps?.className
|
|
3767
3635
|
),
|
|
3768
3636
|
style: trackStyle,
|
|
@@ -3901,7 +3769,7 @@ var ProgressCircleValueText = React29.forwardRef(function ProgressCircleValueTex
|
|
|
3901
3769
|
}
|
|
3902
3770
|
);
|
|
3903
3771
|
});
|
|
3904
|
-
var
|
|
3772
|
+
var SIZE_CLASSES8 = {
|
|
3905
3773
|
xs: {
|
|
3906
3774
|
root: "gap-1.5",
|
|
3907
3775
|
control: "h-3 w-3",
|
|
@@ -3982,7 +3850,7 @@ var RadioBase = React29.forwardRef(
|
|
|
3982
3850
|
function Radio(props, ref) {
|
|
3983
3851
|
const { children, inputProps, rootRef, value, disabled, className, ...rest } = props;
|
|
3984
3852
|
const size = React29.useContext(RadioSizeContext);
|
|
3985
|
-
const sizeClasses2 =
|
|
3853
|
+
const sizeClasses2 = SIZE_CLASSES8[size];
|
|
3986
3854
|
return /* @__PURE__ */ jsxs(
|
|
3987
3855
|
"label",
|
|
3988
3856
|
{
|
|
@@ -4497,7 +4365,7 @@ var SelectAsync = React29.forwardRef((props, ref) => {
|
|
|
4497
4365
|
}
|
|
4498
4366
|
);
|
|
4499
4367
|
});
|
|
4500
|
-
var
|
|
4368
|
+
var VARIANT_CLASSES5 = {
|
|
4501
4369
|
solid: "border-solid",
|
|
4502
4370
|
dashed: "border-dashed",
|
|
4503
4371
|
dotted: "border-dotted"
|
|
@@ -4526,7 +4394,7 @@ var Separator2 = React29__default.forwardRef(
|
|
|
4526
4394
|
className: cn(
|
|
4527
4395
|
"border-[var(--color-border-divider)]",
|
|
4528
4396
|
"border-0",
|
|
4529
|
-
|
|
4397
|
+
VARIANT_CLASSES5[variant],
|
|
4530
4398
|
isVertical ? VERTICAL_SIZE_CLASSES[size] : HORIZONTAL_SIZE_CLASSES[size],
|
|
4531
4399
|
isVertical ? "self-stretch h-auto w-0" : "w-full",
|
|
4532
4400
|
className
|
|
@@ -4640,7 +4508,7 @@ function SliderMarks(props) {
|
|
|
4640
4508
|
}
|
|
4641
4509
|
var NOOP3 = () => {
|
|
4642
4510
|
};
|
|
4643
|
-
var
|
|
4511
|
+
var SIZE_CLASSES9 = {
|
|
4644
4512
|
sm: {
|
|
4645
4513
|
root: "h-4 w-7",
|
|
4646
4514
|
thumb: "h-3 w-3 data-[state=checked]:translate-x-3",
|
|
@@ -4690,7 +4558,7 @@ var SwitchBase = React29.forwardRef(
|
|
|
4690
4558
|
},
|
|
4691
4559
|
[isControlled, onCheckedChange]
|
|
4692
4560
|
);
|
|
4693
|
-
const sizeClasses2 =
|
|
4561
|
+
const sizeClasses2 = SIZE_CLASSES9[size];
|
|
4694
4562
|
const isRtl = direction === "rtl";
|
|
4695
4563
|
return /* @__PURE__ */ jsxs(
|
|
4696
4564
|
"label",
|
|
@@ -4766,11 +4634,11 @@ var SwitchBase = React29.forwardRef(
|
|
|
4766
4634
|
);
|
|
4767
4635
|
var Switch2 = SwitchBase;
|
|
4768
4636
|
var ArrowIcon3 = ({ className }) => /* @__PURE__ */ jsx("svg", { className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M5 12h14M12 5l7 7-7 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4769
|
-
var
|
|
4637
|
+
var SPACING_SCALE = 4;
|
|
4770
4638
|
function toPixels(value) {
|
|
4771
4639
|
if (value === void 0) return void 0;
|
|
4772
4640
|
if (typeof value === "string") return value;
|
|
4773
|
-
return `${value *
|
|
4641
|
+
return `${value * SPACING_SCALE}px`;
|
|
4774
4642
|
}
|
|
4775
4643
|
function extractStyles(props) {
|
|
4776
4644
|
const style = {};
|
|
@@ -5375,39 +5243,18 @@ var nbsp = String.fromCharCode(160);
|
|
|
5375
5243
|
function TruncatedTextTooltip2({ label, children }) {
|
|
5376
5244
|
return /* @__PURE__ */ jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
|
|
5377
5245
|
}
|
|
5378
|
-
var
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
"hover:opacity-76"
|
|
5391
|
-
].join(" "),
|
|
5392
|
-
filter: "bg-[var(--color-tag-filter-bg)]",
|
|
5393
|
-
select: [
|
|
5394
|
-
"cursor-pointer",
|
|
5395
|
-
"bg-[var(--color-tag-select-bg)] text-[var(--color-tag-select-fg)]",
|
|
5396
|
-
"hover:text-[var(--color-hover)] hover:opacity-76"
|
|
5397
|
-
].join(" ")
|
|
5398
|
-
},
|
|
5399
|
-
size: {
|
|
5400
|
-
sm: "px-1 py-0.5 min-h-5 gap-1 text-xs",
|
|
5401
|
-
md: "px-1 py-0.5 min-h-6 gap-1 text-sm",
|
|
5402
|
-
lg: "px-1.5 py-1.5 min-h-8 min-w-8 gap-1 text-sm"
|
|
5403
|
-
}
|
|
5404
|
-
},
|
|
5405
|
-
defaultVariants: {
|
|
5406
|
-
variant: "subtle",
|
|
5407
|
-
size: "md"
|
|
5408
|
-
}
|
|
5409
|
-
}
|
|
5410
|
-
);
|
|
5246
|
+
var TAG_BASE = "inline-flex items-center align-top max-w-full select-text rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500";
|
|
5247
|
+
var TAG_VARIANT_CLASSES = {
|
|
5248
|
+
subtle: "bg-[var(--color-tag-subtle-bg)] text-[var(--color-tag-subtle-fg)]",
|
|
5249
|
+
clickable: "cursor-pointer bg-[var(--color-tag-clickable-bg)] text-[var(--color-tag-clickable-fg)] hover:opacity-76",
|
|
5250
|
+
filter: "bg-[var(--color-tag-filter-bg)]",
|
|
5251
|
+
select: "cursor-pointer bg-[var(--color-tag-select-bg)] text-[var(--color-tag-select-fg)] hover:text-[var(--color-hover)] hover:opacity-76"
|
|
5252
|
+
};
|
|
5253
|
+
var TAG_SIZE_CLASSES = {
|
|
5254
|
+
sm: "px-1 py-0.5 min-h-5 gap-1 text-xs",
|
|
5255
|
+
md: "px-1 py-0.5 min-h-6 gap-1 text-sm",
|
|
5256
|
+
lg: "px-1.5 py-1.5 min-h-8 min-w-8 gap-1 text-sm"
|
|
5257
|
+
};
|
|
5411
5258
|
var TAG_SELECTED_CLASSES = [
|
|
5412
5259
|
"bg-[var(--color-tag-select-selected-bg)]",
|
|
5413
5260
|
"text-[var(--color-tag-select-selected-fg)]",
|
|
@@ -5449,7 +5296,9 @@ var Tag = React29.forwardRef(
|
|
|
5449
5296
|
{
|
|
5450
5297
|
ref,
|
|
5451
5298
|
className: cn(
|
|
5452
|
-
|
|
5299
|
+
TAG_BASE,
|
|
5300
|
+
TAG_VARIANT_CLASSES[variant ?? "subtle"],
|
|
5301
|
+
TAG_SIZE_CLASSES[size ?? "md"],
|
|
5453
5302
|
selected && !loading && TAG_SELECTED_CLASSES,
|
|
5454
5303
|
disabled && TAG_DISABLED_CLASSES,
|
|
5455
5304
|
className
|
|
@@ -5477,46 +5326,36 @@ var Tag = React29.forwardRef(
|
|
|
5477
5326
|
) });
|
|
5478
5327
|
}
|
|
5479
5328
|
);
|
|
5480
|
-
var
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
|
|
5495
|
-
|
|
5496
|
-
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
|
|
5504
|
-
unstyled: "border-0 bg-transparent p-0"
|
|
5505
|
-
}
|
|
5506
|
-
},
|
|
5507
|
-
defaultVariants: {
|
|
5508
|
-
size: "md",
|
|
5509
|
-
variant: "outline"
|
|
5510
|
-
}
|
|
5511
|
-
}
|
|
5512
|
-
);
|
|
5329
|
+
var TEXTAREA_BASE = [
|
|
5330
|
+
"w-full appearance-none outline-none transition-colors resize-y",
|
|
5331
|
+
"bg-[var(--color-input-bg)] text-[var(--color-input-fg)] border-[var(--color-input-border)]",
|
|
5332
|
+
"placeholder:text-[var(--color-input-placeholder,theme(colors.gray.400))]",
|
|
5333
|
+
"hover:border-[var(--color-input-border-hover,theme(colors.gray.400))]",
|
|
5334
|
+
"focus:border-[var(--color-input-border-focus,theme(colors.blue.500))]",
|
|
5335
|
+
"focus:placeholder:text-[var(--color-input-placeholder-focus,theme(colors.gray.300))]",
|
|
5336
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
5337
|
+
"read-only:opacity-70",
|
|
5338
|
+
"data-[invalid]:border-[var(--color-input-border-invalid,theme(colors.red.500))]"
|
|
5339
|
+
].join(" ");
|
|
5340
|
+
var TEXTAREA_SIZE_CLASSES = {
|
|
5341
|
+
xs: "px-2 py-1 text-xs rounded",
|
|
5342
|
+
sm: "px-3 py-2 text-sm rounded-md",
|
|
5343
|
+
md: "px-4 py-2 text-base rounded-md",
|
|
5344
|
+
lg: "px-4 py-3 text-lg rounded-lg",
|
|
5345
|
+
"2xl": "px-4 py-3 text-xl rounded-lg"
|
|
5346
|
+
};
|
|
5347
|
+
var TEXTAREA_VARIANT_CLASSES = {
|
|
5348
|
+
outline: "border border-solid",
|
|
5349
|
+
filled: "border-0 bg-[var(--color-input-filled-bg,theme(colors.gray.100))]",
|
|
5350
|
+
unstyled: "border-0 bg-transparent p-0"
|
|
5351
|
+
};
|
|
5513
5352
|
var Textarea = React29__default.forwardRef(
|
|
5514
|
-
({ size, variant, className, ...rest }, ref) => {
|
|
5353
|
+
({ size = "md", variant = "outline", className, ...rest }, ref) => {
|
|
5515
5354
|
return /* @__PURE__ */ jsx(
|
|
5516
5355
|
"textarea",
|
|
5517
5356
|
{
|
|
5518
5357
|
ref,
|
|
5519
|
-
className: cn(
|
|
5358
|
+
className: cn(TEXTAREA_BASE, TEXTAREA_SIZE_CLASSES[size], TEXTAREA_VARIANT_CLASSES[variant], className),
|
|
5520
5359
|
...rest
|
|
5521
5360
|
}
|
|
5522
5361
|
);
|
|
@@ -5613,7 +5452,7 @@ var Toaster = () => {
|
|
|
5613
5452
|
}
|
|
5614
5453
|
);
|
|
5615
5454
|
};
|
|
5616
|
-
function
|
|
5455
|
+
function Provider(props) {
|
|
5617
5456
|
return /* @__PURE__ */ jsx(ColorModeProvider, { ...props });
|
|
5618
5457
|
}
|
|
5619
5458
|
function fmt(n, decimals = 2) {
|
|
@@ -7134,4 +6973,4 @@ var BankPage = styled(View, {
|
|
|
7134
6973
|
padding: 16
|
|
7135
6974
|
});
|
|
7136
6975
|
|
|
7137
|
-
export { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, Alert, Avatar, AvatarGroup, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Button, ButtonGroup, ButtonGroupRadio, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, CloseButton, CollapsibleDetails, CollapsibleList, ColorModeProvider, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerRoot, DrawerTitle, DrawerTrigger, EmptyState, ExpirationSelector, Field, GreeksDisplay, Heading, IconButton, Image2 as Image, Input, InputGroup, Link, LinkBox, LinkExternalIcon, LinkOverlay, MenuArrow, MenuCheckboxItem, MenuContent, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, OptionChain, OptionPositionCard, PinInput, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText,
|
|
6976
|
+
export { AccordionItem, AccordionItemContent, AccordionItemTrigger, AccordionRoot, Alert, Avatar, AvatarGroup, Badge, BankAlert, BankAlertText, BankButton, BankButtonText, BankCard, BankDivider, BankField, BankHeading, BankInput, BankPage, BankPinBox, BankText, Button, ButtonGroup, ButtonGroupRadio, Checkbox2 as Checkbox, CheckboxGroup2 as CheckboxGroup, CloseButton, CollapsibleDetails, CollapsibleList, ColorModeProvider, DialogActionTrigger, DialogBackdrop, DialogBody, DialogCloseTrigger, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger, DrawerActionTrigger, DrawerBody, DrawerCloseTrigger, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerRoot, DrawerTitle, DrawerTrigger, EmptyState, ExpirationSelector, Field, GreeksDisplay, Heading, IconButton, Image2 as Image, Input, InputGroup, Link, LinkBox, LinkExternalIcon, LinkOverlay, MenuArrow, MenuCheckboxItem, MenuContent, MenuItem, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, OptionChain, OptionPositionCard, PinInput, PnlDiagram, PopoverArrow, PopoverBody, PopoverCloseTrigger, PopoverCloseTriggerWrapper, PopoverContent, PopoverDescription, PopoverFooter, PopoverHeader, PopoverRoot, PopoverTitle, PopoverTrigger, Progress, ProgressCircleRing, ProgressCircleRoot, ProgressCircleValueText, Provider, Radio2 as Radio, RadioGroup3 as RadioGroup, Rating, Select, SelectAsync, SelectClearTrigger, SelectContent, SelectControl, SelectItem, SelectItemGroup, SelectItemText, SelectLabel, SelectRoot, SelectValueText, Separator2 as Separator, Skeleton, SkeletonCircle, SkeletonText, Slider, StrategyBuilder, Switch2 as Switch, TableBody, TableCaption, TableCell, TableColumnHeader, TableColumnHeaderSortable, TableFooter, TableHeader, TableHeaderSticky, TableRoot, TableRow, TableScrollWrapper, TabsContent, TabsCounter, TabsList, TabsRoot, TabsTrigger, Tag, Textarea, Toaster, Tooltip, bankColors, buttonVariants, cn, createListCollection, toaster, useAccordion, useColorMode, useColorModeValue };
|