@luxfi/ui 7.0.0 → 7.1.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 +162 -285
- package/dist/alert.js +162 -285
- 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/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 +604 -700
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +604 -698
- 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 +184 -306
- package/dist/tag.js +184 -305
- 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 -7
- 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/popover.tsx +30 -44
- package/src/skeleton.tsx +96 -144
- package/src/tooltip.tsx +54 -47
package/dist/index.cjs
CHANGED
|
@@ -7,18 +7,19 @@ var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
|
7
7
|
var React29 = require('react');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
var classVarianceAuthority = require('class-variance-authority');
|
|
10
|
+
var core = require('@hanzogui/core');
|
|
10
11
|
var RadixAvatar = require('@radix-ui/react-avatar');
|
|
11
|
-
var
|
|
12
|
+
var tooltip = require('@hanzogui/tooltip');
|
|
12
13
|
var usehooks = require('@uidotdev/usehooks');
|
|
13
|
-
var reactSlot = require('@radix-ui/react-slot');
|
|
14
14
|
var RadixCheckbox = require('@radix-ui/react-checkbox');
|
|
15
15
|
var Collapsible = require('@radix-ui/react-collapsible');
|
|
16
|
+
var dialog = require('@hanzogui/dialog');
|
|
16
17
|
var RadixDialog = require('@radix-ui/react-dialog');
|
|
17
18
|
var LabelPrimitive = require('@radix-ui/react-label');
|
|
18
19
|
var esToolkit = require('es-toolkit');
|
|
19
20
|
var DropdownMenu = require('@radix-ui/react-dropdown-menu');
|
|
20
21
|
var lu = require('react-icons/lu');
|
|
21
|
-
var
|
|
22
|
+
var popover = require('@hanzogui/popover');
|
|
22
23
|
var RadixProgress = require('@radix-ui/react-progress');
|
|
23
24
|
var RadixRadioGroup = require('@radix-ui/react-radio-group');
|
|
24
25
|
var RadixSelect = require('@radix-ui/react-select');
|
|
@@ -26,7 +27,6 @@ var RadixSlider = require('@radix-ui/react-slider');
|
|
|
26
27
|
var RadixSwitch = require('@radix-ui/react-switch');
|
|
27
28
|
var RadixTabs = require('@radix-ui/react-tabs');
|
|
28
29
|
var sonner = require('sonner');
|
|
29
|
-
var core = require('@hanzogui/core');
|
|
30
30
|
|
|
31
31
|
function _interopNamespace(e) {
|
|
32
32
|
if (e && e.__esModule) return e;
|
|
@@ -49,13 +49,11 @@ function _interopNamespace(e) {
|
|
|
49
49
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
50
50
|
var React29__namespace = /*#__PURE__*/_interopNamespace(React29);
|
|
51
51
|
var RadixAvatar__namespace = /*#__PURE__*/_interopNamespace(RadixAvatar);
|
|
52
|
-
var RadixTooltip__namespace = /*#__PURE__*/_interopNamespace(RadixTooltip);
|
|
53
52
|
var RadixCheckbox__namespace = /*#__PURE__*/_interopNamespace(RadixCheckbox);
|
|
54
53
|
var Collapsible__namespace = /*#__PURE__*/_interopNamespace(Collapsible);
|
|
55
54
|
var RadixDialog__namespace = /*#__PURE__*/_interopNamespace(RadixDialog);
|
|
56
55
|
var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
|
|
57
56
|
var DropdownMenu__namespace = /*#__PURE__*/_interopNamespace(DropdownMenu);
|
|
58
|
-
var RadixPopover__namespace = /*#__PURE__*/_interopNamespace(RadixPopover);
|
|
59
57
|
var RadixProgress__namespace = /*#__PURE__*/_interopNamespace(RadixProgress);
|
|
60
58
|
var RadixRadioGroup__namespace = /*#__PURE__*/_interopNamespace(RadixRadioGroup);
|
|
61
59
|
var RadixSelect__namespace = /*#__PURE__*/_interopNamespace(RadixSelect);
|
|
@@ -241,24 +239,47 @@ function useAccordion(items) {
|
|
|
241
239
|
}, [value, onValueChange, scrollToItemFromUrl]);
|
|
242
240
|
}
|
|
243
241
|
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";
|
|
242
|
+
var CloseButtonFrame = core.styled(core.View, {
|
|
243
|
+
name: "LuxCloseButton",
|
|
244
|
+
render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", "aria-label": "Close" }),
|
|
245
|
+
role: "button",
|
|
246
|
+
cursor: "pointer",
|
|
247
|
+
display: "inline-flex",
|
|
248
|
+
alignItems: "center",
|
|
249
|
+
justifyContent: "center",
|
|
250
|
+
width: 20,
|
|
251
|
+
height: 20,
|
|
252
|
+
minWidth: 0,
|
|
253
|
+
flexShrink: 1,
|
|
254
|
+
padding: 0,
|
|
255
|
+
borderRadius: 4,
|
|
256
|
+
borderWidth: 0,
|
|
257
|
+
overflow: "hidden",
|
|
258
|
+
backgroundColor: "transparent",
|
|
259
|
+
hoverStyle: {
|
|
260
|
+
backgroundColor: "transparent"
|
|
261
|
+
},
|
|
262
|
+
variants: {
|
|
263
|
+
disabled: {
|
|
264
|
+
true: {
|
|
265
|
+
opacity: 0.4,
|
|
266
|
+
pointerEvents: "none"
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
var CLOSE_BUTTON_CLASSES = [
|
|
272
|
+
"text-[var(--closeButton-fg,currentColor)]",
|
|
273
|
+
"hover:text-[var(--hover-color,currentColor)]",
|
|
274
|
+
"disabled:opacity-40"
|
|
275
|
+
].join(" ");
|
|
244
276
|
var CloseButton = React29__namespace.forwardRef(function CloseButton2(props, ref) {
|
|
245
277
|
const { variant: _variant, size: _size, className, children, ...rest } = props;
|
|
246
278
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
247
|
-
|
|
279
|
+
CloseButtonFrame,
|
|
248
280
|
{
|
|
249
|
-
type: "button",
|
|
250
|
-
"aria-label": "Close",
|
|
251
281
|
ref,
|
|
252
|
-
className:
|
|
253
|
-
"inline-flex items-center justify-center",
|
|
254
|
-
"size-5 min-w-0 shrink-0 p-0",
|
|
255
|
-
"rounded-sm border-0 overflow-hidden",
|
|
256
|
-
"bg-transparent text-[var(--closeButton-fg,currentColor)]",
|
|
257
|
-
"hover:bg-transparent hover:text-[var(--hover-color,currentColor)]",
|
|
258
|
-
"disabled:opacity-40",
|
|
259
|
-
"cursor-pointer",
|
|
260
|
-
className
|
|
261
|
-
),
|
|
282
|
+
className: [CLOSE_BUTTON_CLASSES, className].filter(Boolean).join(" "),
|
|
262
283
|
...rest,
|
|
263
284
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
264
285
|
"svg",
|
|
@@ -279,272 +300,137 @@ var CloseButton = React29__namespace.forwardRef(function CloseButton2(props, ref
|
|
|
279
300
|
}
|
|
280
301
|
);
|
|
281
302
|
});
|
|
282
|
-
var
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
303
|
+
var SHIM_PROPS = [
|
|
304
|
+
"w",
|
|
305
|
+
"h",
|
|
306
|
+
"minW",
|
|
307
|
+
"maxW",
|
|
308
|
+
"display",
|
|
309
|
+
"flexGrow",
|
|
310
|
+
"flexShrink",
|
|
311
|
+
"flexBasis",
|
|
312
|
+
"fontWeight",
|
|
313
|
+
"textStyle",
|
|
314
|
+
"borderRadius",
|
|
315
|
+
"alignSelf",
|
|
316
|
+
"alignItems",
|
|
317
|
+
"justifyContent",
|
|
318
|
+
"color",
|
|
319
|
+
"mt",
|
|
320
|
+
"mb",
|
|
321
|
+
"ml",
|
|
322
|
+
"mr",
|
|
323
|
+
"height",
|
|
324
|
+
"overflow",
|
|
325
|
+
"whiteSpace",
|
|
326
|
+
"textOverflow",
|
|
327
|
+
"textTransform",
|
|
328
|
+
"gap",
|
|
329
|
+
"gridTemplateColumns",
|
|
330
|
+
"minWidth",
|
|
331
|
+
"boxSize",
|
|
332
|
+
"py",
|
|
333
|
+
"px",
|
|
334
|
+
"p",
|
|
335
|
+
"hideBelow",
|
|
336
|
+
"fontSize",
|
|
337
|
+
"flexWrap",
|
|
338
|
+
"wordBreak",
|
|
339
|
+
"lineHeight",
|
|
340
|
+
"marginRight",
|
|
341
|
+
"position",
|
|
342
|
+
"background"
|
|
343
|
+
];
|
|
344
|
+
var S = 4;
|
|
345
|
+
function dim(v) {
|
|
346
|
+
if (v == null) return void 0;
|
|
347
|
+
if (typeof v === "number") return `${v * S}px`;
|
|
348
|
+
if (typeof v === "string") return v;
|
|
349
|
+
if (typeof v === "object") {
|
|
350
|
+
const o = v;
|
|
351
|
+
return o.base ?? o.lg ?? o.xl ?? Object.values(o)[0];
|
|
352
|
+
}
|
|
353
|
+
return void 0;
|
|
287
354
|
}
|
|
288
|
-
function
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
355
|
+
function sp(v) {
|
|
356
|
+
if (v === void 0) return void 0;
|
|
357
|
+
return typeof v === "number" ? `${v * S}px` : v;
|
|
358
|
+
}
|
|
359
|
+
function shimToStyle(props) {
|
|
360
|
+
const s = {};
|
|
361
|
+
if (props.w !== void 0) s.width = dim(props.w);
|
|
362
|
+
if (props.h !== void 0) s.height = dim(props.h);
|
|
363
|
+
if (props.minW !== void 0) s.minWidth = dim(props.minW);
|
|
364
|
+
if (props.maxW !== void 0) s.maxWidth = dim(props.maxW);
|
|
365
|
+
if (props.display !== void 0) s.display = props.display;
|
|
366
|
+
if (props.flexGrow !== void 0) s.flexGrow = props.flexGrow;
|
|
367
|
+
if (props.flexShrink !== void 0) s.flexShrink = props.flexShrink;
|
|
368
|
+
if (props.flexBasis !== void 0) s.flexBasis = props.flexBasis;
|
|
369
|
+
if (props.fontWeight !== void 0) s.fontWeight = props.fontWeight;
|
|
370
|
+
if (props.borderRadius !== void 0) s.borderRadius = props.borderRadius;
|
|
371
|
+
if (props.alignSelf !== void 0) s.alignSelf = props.alignSelf;
|
|
372
|
+
if (props.alignItems !== void 0) s.alignItems = props.alignItems;
|
|
373
|
+
if (props.justifyContent !== void 0) s.justifyContent = props.justifyContent;
|
|
374
|
+
if (props.color !== void 0) s.color = props.color;
|
|
375
|
+
if (props.mt !== void 0) s.marginTop = sp(props.mt);
|
|
376
|
+
if (props.mb !== void 0) s.marginBottom = sp(props.mb);
|
|
377
|
+
if (props.ml !== void 0) s.marginLeft = sp(props.ml);
|
|
378
|
+
if (props.mr !== void 0) s.marginRight = sp(props.mr);
|
|
379
|
+
if (props.height !== void 0) s.height = props.height;
|
|
380
|
+
if (props.overflow !== void 0) s.overflow = props.overflow;
|
|
381
|
+
if (props.whiteSpace !== void 0) s.whiteSpace = props.whiteSpace;
|
|
382
|
+
if (props.textOverflow !== void 0) s.textOverflow = props.textOverflow;
|
|
383
|
+
if (props.textTransform !== void 0) s.textTransform = props.textTransform;
|
|
384
|
+
if (props.gap !== void 0) s.gap = sp(props.gap);
|
|
385
|
+
if (props.gridTemplateColumns !== void 0) s.gridTemplateColumns = props.gridTemplateColumns;
|
|
386
|
+
if (props.minWidth !== void 0) s.minWidth = props.minWidth;
|
|
387
|
+
if (props.boxSize !== void 0) {
|
|
388
|
+
const v = typeof props.boxSize === "number" ? `${props.boxSize * S}px` : props.boxSize;
|
|
389
|
+
s.width = v;
|
|
390
|
+
s.height = v;
|
|
300
391
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const v = resolveDimension(value);
|
|
306
|
-
if (v) style.width = v;
|
|
307
|
-
break;
|
|
308
|
-
}
|
|
309
|
-
case "h": {
|
|
310
|
-
const v = resolveDimension(value);
|
|
311
|
-
if (v) style.height = v;
|
|
312
|
-
break;
|
|
313
|
-
}
|
|
314
|
-
case "minW": {
|
|
315
|
-
const v = resolveDimension(value);
|
|
316
|
-
if (v) style.minWidth = v;
|
|
317
|
-
break;
|
|
318
|
-
}
|
|
319
|
-
case "maxW": {
|
|
320
|
-
const v = resolveDimension(value);
|
|
321
|
-
if (v) style.maxWidth = v;
|
|
322
|
-
break;
|
|
323
|
-
}
|
|
324
|
-
case "height":
|
|
325
|
-
style.height = value;
|
|
326
|
-
break;
|
|
327
|
-
case "display":
|
|
328
|
-
style.display = value;
|
|
329
|
-
break;
|
|
330
|
-
case "flexGrow":
|
|
331
|
-
style.flexGrow = value;
|
|
332
|
-
break;
|
|
333
|
-
case "flexShrink":
|
|
334
|
-
style.flexShrink = value;
|
|
335
|
-
break;
|
|
336
|
-
case "flexBasis":
|
|
337
|
-
style.flexBasis = value;
|
|
338
|
-
break;
|
|
339
|
-
case "fontWeight":
|
|
340
|
-
style.fontWeight = value;
|
|
341
|
-
break;
|
|
342
|
-
case "borderRadius":
|
|
343
|
-
style.borderRadius = value;
|
|
344
|
-
break;
|
|
345
|
-
case "alignSelf":
|
|
346
|
-
style.alignSelf = value;
|
|
347
|
-
break;
|
|
348
|
-
case "alignItems":
|
|
349
|
-
style.alignItems = value;
|
|
350
|
-
break;
|
|
351
|
-
case "justifyContent":
|
|
352
|
-
style.justifyContent = value;
|
|
353
|
-
break;
|
|
354
|
-
case "color":
|
|
355
|
-
style.color = value;
|
|
356
|
-
break;
|
|
357
|
-
case "mt":
|
|
358
|
-
style.marginTop = toStylePx(value);
|
|
359
|
-
break;
|
|
360
|
-
case "mb":
|
|
361
|
-
style.marginBottom = toStylePx(value);
|
|
362
|
-
break;
|
|
363
|
-
case "ml":
|
|
364
|
-
style.marginLeft = toStylePx(value);
|
|
365
|
-
break;
|
|
366
|
-
case "mr":
|
|
367
|
-
style.marginRight = toStylePx(value);
|
|
368
|
-
break;
|
|
369
|
-
case "overflow":
|
|
370
|
-
style.overflow = value;
|
|
371
|
-
break;
|
|
372
|
-
case "whiteSpace":
|
|
373
|
-
style.whiteSpace = value;
|
|
374
|
-
break;
|
|
375
|
-
case "textOverflow":
|
|
376
|
-
style.textOverflow = value;
|
|
377
|
-
break;
|
|
378
|
-
case "textTransform":
|
|
379
|
-
style.textTransform = value;
|
|
380
|
-
break;
|
|
381
|
-
case "gap":
|
|
382
|
-
style.gap = typeof value === "number" ? `${value * SPACING_SCALE}px` : value;
|
|
383
|
-
break;
|
|
384
|
-
case "gridTemplateColumns":
|
|
385
|
-
style.gridTemplateColumns = value;
|
|
386
|
-
break;
|
|
387
|
-
case "minWidth":
|
|
388
|
-
style.minWidth = value;
|
|
389
|
-
break;
|
|
390
|
-
case "boxSize": {
|
|
391
|
-
const s = typeof value === "number" ? `${value * SPACING_SCALE}px` : value;
|
|
392
|
-
style.width = s;
|
|
393
|
-
style.height = s;
|
|
394
|
-
break;
|
|
395
|
-
}
|
|
396
|
-
case "py": {
|
|
397
|
-
const v = toStylePx(value);
|
|
398
|
-
style.paddingTop = v;
|
|
399
|
-
style.paddingBottom = v;
|
|
400
|
-
break;
|
|
401
|
-
}
|
|
402
|
-
case "px": {
|
|
403
|
-
const v = toStylePx(value);
|
|
404
|
-
style.paddingLeft = v;
|
|
405
|
-
style.paddingRight = v;
|
|
406
|
-
break;
|
|
407
|
-
}
|
|
408
|
-
case "p": {
|
|
409
|
-
const v = toStylePx(value);
|
|
410
|
-
style.padding = v;
|
|
411
|
-
break;
|
|
412
|
-
}
|
|
413
|
-
case "hideBelow":
|
|
414
|
-
break;
|
|
415
|
-
// handled via className
|
|
416
|
-
case "textStyle":
|
|
417
|
-
break;
|
|
418
|
-
// drop textStyle, not directly applicable
|
|
419
|
-
case "fontSize":
|
|
420
|
-
style.fontSize = value;
|
|
421
|
-
break;
|
|
422
|
-
case "flexWrap":
|
|
423
|
-
style.flexWrap = value;
|
|
424
|
-
break;
|
|
425
|
-
case "wordBreak":
|
|
426
|
-
style.wordBreak = value;
|
|
427
|
-
break;
|
|
428
|
-
case "lineHeight":
|
|
429
|
-
style.lineHeight = value;
|
|
430
|
-
break;
|
|
431
|
-
case "marginRight":
|
|
432
|
-
style.marginRight = value;
|
|
433
|
-
break;
|
|
434
|
-
case "position":
|
|
435
|
-
style.position = value;
|
|
436
|
-
break;
|
|
437
|
-
case "background":
|
|
438
|
-
style.background = value;
|
|
439
|
-
break;
|
|
440
|
-
default:
|
|
441
|
-
rest[key] = value;
|
|
442
|
-
break;
|
|
443
|
-
}
|
|
392
|
+
if (props.py !== void 0) {
|
|
393
|
+
const v = sp(props.py);
|
|
394
|
+
s.paddingTop = v;
|
|
395
|
+
s.paddingBottom = v;
|
|
444
396
|
}
|
|
445
|
-
|
|
397
|
+
if (props.px !== void 0) {
|
|
398
|
+
const v = sp(props.px);
|
|
399
|
+
s.paddingLeft = v;
|
|
400
|
+
s.paddingRight = v;
|
|
401
|
+
}
|
|
402
|
+
if (props.p !== void 0) s.padding = sp(props.p);
|
|
403
|
+
if (props.fontSize !== void 0) s.fontSize = props.fontSize;
|
|
404
|
+
if (props.flexWrap !== void 0) s.flexWrap = props.flexWrap;
|
|
405
|
+
if (props.wordBreak !== void 0) s.wordBreak = props.wordBreak;
|
|
406
|
+
if (props.lineHeight !== void 0) s.lineHeight = props.lineHeight;
|
|
407
|
+
if (props.marginRight !== void 0) s.marginRight = props.marginRight;
|
|
408
|
+
if (props.position !== void 0) s.position = props.position;
|
|
409
|
+
if (props.background !== void 0) s.background = props.background;
|
|
410
|
+
return s;
|
|
446
411
|
}
|
|
412
|
+
function stripShims(props) {
|
|
413
|
+
const out = { ...props };
|
|
414
|
+
for (const k of SHIM_PROPS) delete out[k];
|
|
415
|
+
return out;
|
|
416
|
+
}
|
|
417
|
+
var SKELETON_CLASSES = [
|
|
418
|
+
"animate-skeleton-shimmer rounded-sm",
|
|
419
|
+
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
420
|
+
"bg-[length:200%_100%]"
|
|
421
|
+
].join(" ");
|
|
422
|
+
var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
|
|
447
423
|
var Skeleton = React29__namespace.forwardRef(
|
|
448
424
|
function Skeleton2(props, ref) {
|
|
449
|
-
const {
|
|
450
|
-
|
|
451
|
-
asChild,
|
|
452
|
-
className,
|
|
453
|
-
children,
|
|
454
|
-
style: styleProp,
|
|
455
|
-
// Destructure style-prop shims so they don't leak into DOM
|
|
456
|
-
w: _w,
|
|
457
|
-
h: _h,
|
|
458
|
-
minW: _minW,
|
|
459
|
-
maxW: _maxW,
|
|
460
|
-
display: _display,
|
|
461
|
-
flexGrow: _flexGrow,
|
|
462
|
-
flexShrink: _flexShrink,
|
|
463
|
-
flexBasis: _flexBasis,
|
|
464
|
-
fontWeight: _fontWeight,
|
|
465
|
-
textStyle: _textStyle,
|
|
466
|
-
borderRadius: _borderRadius,
|
|
467
|
-
alignSelf: _alignSelf,
|
|
468
|
-
alignItems: _alignItems,
|
|
469
|
-
justifyContent: _justifyContent,
|
|
470
|
-
color: _color,
|
|
471
|
-
mt: _mt,
|
|
472
|
-
mb: _mb,
|
|
473
|
-
ml: _ml,
|
|
474
|
-
mr: _mr,
|
|
475
|
-
height: _height,
|
|
476
|
-
overflow: _overflow,
|
|
477
|
-
whiteSpace: _whiteSpace,
|
|
478
|
-
textOverflow: _textOverflow,
|
|
479
|
-
textTransform: _textTransform,
|
|
480
|
-
gap: _gap,
|
|
481
|
-
gridTemplateColumns: _gridTemplateColumns,
|
|
482
|
-
minWidth: _minWidth,
|
|
483
|
-
boxSize: _boxSize,
|
|
484
|
-
py: _py,
|
|
485
|
-
px: _px,
|
|
486
|
-
p: _p,
|
|
487
|
-
hideBelow: _hideBelow,
|
|
488
|
-
fontSize: _fontSize,
|
|
489
|
-
flexWrap: _flexWrap,
|
|
490
|
-
wordBreak: _wordBreak,
|
|
491
|
-
lineHeight: _lineHeight,
|
|
492
|
-
marginRight: _marginRight,
|
|
493
|
-
position: _position,
|
|
494
|
-
background: _background,
|
|
495
|
-
as: Component = "div",
|
|
496
|
-
...htmlRest
|
|
497
|
-
} = props;
|
|
498
|
-
const { style: shimStyle } = extractSkeletonStyleProps({
|
|
499
|
-
w: _w,
|
|
500
|
-
h: _h,
|
|
501
|
-
minW: _minW,
|
|
502
|
-
maxW: _maxW,
|
|
503
|
-
display: _display,
|
|
504
|
-
flexGrow: _flexGrow,
|
|
505
|
-
flexShrink: _flexShrink,
|
|
506
|
-
flexBasis: _flexBasis,
|
|
507
|
-
fontWeight: _fontWeight,
|
|
508
|
-
textStyle: _textStyle,
|
|
509
|
-
borderRadius: _borderRadius,
|
|
510
|
-
alignSelf: _alignSelf,
|
|
511
|
-
alignItems: _alignItems,
|
|
512
|
-
justifyContent: _justifyContent,
|
|
513
|
-
color: _color,
|
|
514
|
-
mt: _mt,
|
|
515
|
-
mb: _mb,
|
|
516
|
-
ml: _ml,
|
|
517
|
-
mr: _mr,
|
|
518
|
-
height: _height,
|
|
519
|
-
overflow: _overflow,
|
|
520
|
-
whiteSpace: _whiteSpace,
|
|
521
|
-
textOverflow: _textOverflow,
|
|
522
|
-
textTransform: _textTransform,
|
|
523
|
-
gap: _gap,
|
|
524
|
-
gridTemplateColumns: _gridTemplateColumns,
|
|
525
|
-
minWidth: _minWidth,
|
|
526
|
-
boxSize: _boxSize,
|
|
527
|
-
py: _py,
|
|
528
|
-
px: _px,
|
|
529
|
-
p: _p,
|
|
530
|
-
hideBelow: _hideBelow,
|
|
531
|
-
fontSize: _fontSize,
|
|
532
|
-
flexWrap: _flexWrap,
|
|
533
|
-
wordBreak: _wordBreak,
|
|
534
|
-
lineHeight: _lineHeight,
|
|
535
|
-
marginRight: _marginRight,
|
|
536
|
-
position: _position,
|
|
537
|
-
background: _background
|
|
538
|
-
});
|
|
425
|
+
const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
|
|
426
|
+
const shimStyle = shimToStyle(props);
|
|
539
427
|
const mergedStyle = Object.keys(shimStyle).length > 0 || styleProp ? { ...shimStyle, ...styleProp } : void 0;
|
|
540
|
-
const
|
|
541
|
-
const
|
|
542
|
-
const
|
|
428
|
+
const hideBelowClass = props.hideBelow ? HIDE_BELOW_MAP[props.hideBelow] : void 0;
|
|
429
|
+
const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
|
|
430
|
+
const htmlRest = stripShims(allRest);
|
|
543
431
|
if (!loading) {
|
|
544
|
-
if (asChild && React29__namespace.isValidElement(children))
|
|
545
|
-
|
|
546
|
-
}
|
|
547
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: finalClassName, style: mergedStyle, ...htmlRest, children });
|
|
432
|
+
if (asChild && React29__namespace.isValidElement(children)) return children;
|
|
433
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
|
|
548
434
|
}
|
|
549
435
|
if (asChild && React29__namespace.isValidElement(children)) {
|
|
550
436
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -552,13 +438,7 @@ var Skeleton = React29__namespace.forwardRef(
|
|
|
552
438
|
{
|
|
553
439
|
ref,
|
|
554
440
|
"data-loading": true,
|
|
555
|
-
className: cn(
|
|
556
|
-
"animate-skeleton-shimmer rounded-sm",
|
|
557
|
-
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
558
|
-
"bg-[length:200%_100%]",
|
|
559
|
-
"text-transparent [&_*]:invisible",
|
|
560
|
-
finalClassName
|
|
561
|
-
),
|
|
441
|
+
className: cn(SKELETON_CLASSES, "text-transparent [&_*]:invisible", cls),
|
|
562
442
|
style: mergedStyle,
|
|
563
443
|
...htmlRest,
|
|
564
444
|
children
|
|
@@ -570,13 +450,7 @@ var Skeleton = React29__namespace.forwardRef(
|
|
|
570
450
|
{
|
|
571
451
|
ref,
|
|
572
452
|
"data-loading": true,
|
|
573
|
-
className: cn(
|
|
574
|
-
"animate-skeleton-shimmer rounded-sm",
|
|
575
|
-
"bg-[linear-gradient(90deg,var(--color-skeleton-start)_0%,var(--color-skeleton-end)_50%,var(--color-skeleton-start)_100%)]",
|
|
576
|
-
"bg-[length:200%_100%]",
|
|
577
|
-
children ? "text-transparent [&_*]:invisible" : "min-h-5",
|
|
578
|
-
finalClassName
|
|
579
|
-
),
|
|
453
|
+
className: cn(SKELETON_CLASSES, children ? "text-transparent [&_*]:invisible" : "min-h-5", cls),
|
|
580
454
|
style: mergedStyle,
|
|
581
455
|
...htmlRest,
|
|
582
456
|
children
|
|
@@ -886,6 +760,10 @@ function useIsMobile() {
|
|
|
886
760
|
}, []);
|
|
887
761
|
return isMobile;
|
|
888
762
|
}
|
|
763
|
+
function mapPlacement(p) {
|
|
764
|
+
if (!p) return void 0;
|
|
765
|
+
return p;
|
|
766
|
+
}
|
|
889
767
|
var Tooltip = React29__namespace.forwardRef(
|
|
890
768
|
function Tooltip2(props, ref) {
|
|
891
769
|
const {
|
|
@@ -896,10 +774,8 @@ var Tooltip = React29__namespace.forwardRef(
|
|
|
896
774
|
children,
|
|
897
775
|
disabled,
|
|
898
776
|
disableOnMobile,
|
|
899
|
-
portalled = true,
|
|
900
777
|
content,
|
|
901
778
|
contentProps,
|
|
902
|
-
portalRef,
|
|
903
779
|
defaultOpen = false,
|
|
904
780
|
triggerProps,
|
|
905
781
|
closeDelay = 100,
|
|
@@ -947,36 +823,34 @@ var Tooltip = React29__namespace.forwardRef(
|
|
|
947
823
|
if (disabled || disableOnMobile && isMobile) return children;
|
|
948
824
|
const defaultShowArrow = variant === "popover" ? false : true;
|
|
949
825
|
const showArrow = showArrowProp !== void 0 ? showArrowProp : defaultShowArrow;
|
|
950
|
-
const placement = positioning?.placement ?? "top";
|
|
951
|
-
const side = placement.split("-")[0];
|
|
952
|
-
const align = placement.includes("-") ? placement.split("-")[1] : void 0;
|
|
953
|
-
const sideOffset = positioning?.offset?.mainAxis ?? 4;
|
|
954
826
|
const isPopover = variant === "popover";
|
|
955
|
-
|
|
956
|
-
|
|
827
|
+
const placement = mapPlacement(positioning?.placement) ?? "top";
|
|
828
|
+
const offset = positioning?.offset?.mainAxis ?? 4;
|
|
829
|
+
return /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
830
|
+
tooltip.Tooltip,
|
|
957
831
|
{
|
|
958
832
|
open,
|
|
959
833
|
onOpenChange: handleOpenChange,
|
|
960
|
-
|
|
834
|
+
delay: { open: openDelay, close: closeDelay },
|
|
835
|
+
placement,
|
|
836
|
+
offset,
|
|
837
|
+
unstyled: true,
|
|
961
838
|
children: [
|
|
962
839
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
963
|
-
|
|
840
|
+
tooltip.Tooltip.Trigger,
|
|
964
841
|
{
|
|
965
842
|
ref: open ? triggerRef : void 0,
|
|
966
843
|
asChild: true,
|
|
967
|
-
|
|
844
|
+
...isMobile ? { onPress: handleTriggerClick } : {},
|
|
968
845
|
...triggerProps,
|
|
969
846
|
children
|
|
970
847
|
}
|
|
971
848
|
),
|
|
972
|
-
/* @__PURE__ */ jsxRuntime.
|
|
973
|
-
|
|
849
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
850
|
+
tooltip.Tooltip.Content,
|
|
974
851
|
{
|
|
975
852
|
ref,
|
|
976
|
-
|
|
977
|
-
align,
|
|
978
|
-
sideOffset,
|
|
979
|
-
onClick: interactive ? handleContentClick : void 0,
|
|
853
|
+
unstyled: true,
|
|
980
854
|
className: cn(
|
|
981
855
|
"z-[9999] overflow-hidden rounded-lg px-3 py-2 text-sm",
|
|
982
856
|
"animate-in fade-in-0 zoom-in-95",
|
|
@@ -985,12 +859,14 @@ var Tooltip = React29__namespace.forwardRef(
|
|
|
985
859
|
!isPopover && "bg-[var(--color-tooltip-bg)] text-[var(--color-tooltip-fg)] max-w-xs",
|
|
986
860
|
contentProps?.className
|
|
987
861
|
),
|
|
862
|
+
onClick: interactive ? handleContentClick : void 0,
|
|
988
863
|
...selected ? { "data-selected": true } : {},
|
|
989
864
|
...contentProps,
|
|
990
865
|
children: [
|
|
991
866
|
showArrow && /* @__PURE__ */ jsxRuntime.jsx(
|
|
992
|
-
|
|
867
|
+
tooltip.Tooltip.Arrow,
|
|
993
868
|
{
|
|
869
|
+
unstyled: true,
|
|
994
870
|
className: cn(
|
|
995
871
|
isPopover ? "fill-[var(--color-popover-bg)]" : "fill-[var(--color-tooltip-bg)]"
|
|
996
872
|
)
|
|
@@ -999,7 +875,7 @@ var Tooltip = React29__namespace.forwardRef(
|
|
|
999
875
|
content
|
|
1000
876
|
]
|
|
1001
877
|
}
|
|
1002
|
-
)
|
|
878
|
+
)
|
|
1003
879
|
]
|
|
1004
880
|
}
|
|
1005
881
|
) });
|
|
@@ -1008,26 +884,12 @@ var Tooltip = React29__namespace.forwardRef(
|
|
|
1008
884
|
function TruncatedTextTooltip({ label, children }) {
|
|
1009
885
|
return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { content: label, positioning: { placement: "top" }, children });
|
|
1010
886
|
}
|
|
1011
|
-
var
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
solid: ""
|
|
1018
|
-
},
|
|
1019
|
-
size: {
|
|
1020
|
-
sm: "text-xs p-1 h-[18px] min-h-[18px]",
|
|
1021
|
-
md: "text-sm px-1 py-0.5 min-h-6",
|
|
1022
|
-
lg: "text-sm px-2 py-1 min-h-7 font-semibold"
|
|
1023
|
-
}
|
|
1024
|
-
},
|
|
1025
|
-
defaultVariants: {
|
|
1026
|
-
variant: "subtle",
|
|
1027
|
-
size: "md"
|
|
1028
|
-
}
|
|
1029
|
-
}
|
|
1030
|
-
);
|
|
887
|
+
var BASE_CLASSES = "inline-flex items-center rounded-sm gap-1 font-medium w-fit max-w-full whitespace-nowrap select-text";
|
|
888
|
+
var SIZE_CLASSES2 = {
|
|
889
|
+
sm: "text-xs p-1 h-[18px] min-h-[18px]",
|
|
890
|
+
md: "text-sm px-1 py-0.5 min-h-6",
|
|
891
|
+
lg: "text-sm px-2 py-1 min-h-7 font-semibold"
|
|
892
|
+
};
|
|
1031
893
|
var COLOR_PALETTE_CLASSES = {
|
|
1032
894
|
gray: "bg-badge-gray-bg text-badge-gray-fg",
|
|
1033
895
|
green: "bg-badge-green-bg text-badge-green-fg",
|
|
@@ -1052,6 +914,7 @@ var COLOR_PALETTE_CLASSES = {
|
|
|
1052
914
|
bright_purple: "bg-badge-bright-purple-bg text-badge-bright-purple-fg",
|
|
1053
915
|
bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
|
|
1054
916
|
};
|
|
917
|
+
var S2 = 4;
|
|
1055
918
|
var Badge = React29__namespace.default.forwardRef(
|
|
1056
919
|
function Badge2(props, ref) {
|
|
1057
920
|
const {
|
|
@@ -1060,8 +923,8 @@ var Badge = React29__namespace.default.forwardRef(
|
|
|
1060
923
|
children,
|
|
1061
924
|
truncated = false,
|
|
1062
925
|
endElement,
|
|
1063
|
-
variant,
|
|
1064
|
-
size,
|
|
926
|
+
variant: _variant,
|
|
927
|
+
size = "md",
|
|
1065
928
|
colorPalette = "gray",
|
|
1066
929
|
className,
|
|
1067
930
|
flexShrink: _flexShrink,
|
|
@@ -1073,16 +936,16 @@ var Badge = React29__namespace.default.forwardRef(
|
|
|
1073
936
|
} = props;
|
|
1074
937
|
const shimStyle = { ...styleProp };
|
|
1075
938
|
if (_flexShrink !== void 0) shimStyle.flexShrink = _flexShrink;
|
|
1076
|
-
if (_gap !== void 0) shimStyle.gap = typeof _gap === "number" ? `${_gap *
|
|
939
|
+
if (_gap !== void 0) shimStyle.gap = typeof _gap === "number" ? `${_gap * S2}px` : _gap;
|
|
1077
940
|
if (_ml !== void 0) {
|
|
1078
941
|
if (typeof _ml === "object") {
|
|
1079
942
|
const obj = _ml;
|
|
1080
|
-
shimStyle.marginLeft = `${(obj.base ?? obj.lg ?? 0) *
|
|
943
|
+
shimStyle.marginLeft = `${(obj.base ?? obj.lg ?? 0) * S2}px`;
|
|
1081
944
|
} else {
|
|
1082
|
-
shimStyle.marginLeft = typeof _ml === "number" ? `${_ml *
|
|
945
|
+
shimStyle.marginLeft = typeof _ml === "number" ? `${_ml * S2}px` : _ml;
|
|
1083
946
|
}
|
|
1084
947
|
}
|
|
1085
|
-
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr *
|
|
948
|
+
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr * S2}px` : _mr;
|
|
1086
949
|
const badgeStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1087
950
|
const child = children ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-hidden text-ellipsis", children }) : null;
|
|
1088
951
|
const childrenElement = truncated ? /* @__PURE__ */ jsxRuntime.jsx(TruncatedTextTooltip, { label: children, children: child }) : child;
|
|
@@ -1091,7 +954,8 @@ var Badge = React29__namespace.default.forwardRef(
|
|
|
1091
954
|
{
|
|
1092
955
|
ref,
|
|
1093
956
|
className: cn(
|
|
1094
|
-
|
|
957
|
+
BASE_CLASSES,
|
|
958
|
+
SIZE_CLASSES2[size],
|
|
1095
959
|
COLOR_PALETTE_CLASSES[colorPalette],
|
|
1096
960
|
className
|
|
1097
961
|
),
|
|
@@ -1110,171 +974,202 @@ var Badge = React29__namespace.default.forwardRef(
|
|
|
1110
974
|
return badgeElement;
|
|
1111
975
|
}
|
|
1112
976
|
);
|
|
1113
|
-
var
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
variant: {
|
|
1125
|
-
// --- Solid ---
|
|
1126
|
-
solid: [
|
|
1127
|
-
"bg-[var(--color-button-solid-bg)] text-[var(--color-button-solid-text)]",
|
|
1128
|
-
"hover:bg-[var(--color-hover)]",
|
|
1129
|
-
"data-[expanded]:bg-[var(--color-hover)]"
|
|
1130
|
-
],
|
|
1131
|
-
// --- Solid Danger ---
|
|
1132
|
-
solid_danger: [
|
|
1133
|
-
"bg-red-600 text-[var(--color-button-solid-text)]",
|
|
1134
|
-
"hover:bg-red-500",
|
|
1135
|
-
"data-[expanded]:bg-red-500"
|
|
1136
|
-
],
|
|
1137
|
-
// --- Outline ---
|
|
1138
|
-
outline: [
|
|
1139
|
-
"border-2 border-solid bg-transparent",
|
|
1140
|
-
"text-[var(--color-button-outline-fg)] border-[var(--color-button-outline-fg)]",
|
|
1141
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]"
|
|
1142
|
-
],
|
|
1143
|
-
// --- Outline Danger ---
|
|
1144
|
-
outline_danger: [
|
|
1145
|
-
"border-2 border-solid bg-transparent",
|
|
1146
|
-
"text-red-600 border-red-600",
|
|
1147
|
-
"hover:bg-transparent hover:text-red-500 hover:border-red-500"
|
|
1148
|
-
],
|
|
1149
|
-
// --- Dropdown ---
|
|
1150
|
-
dropdown: [
|
|
1151
|
-
"border-2 border-solid bg-transparent",
|
|
1152
|
-
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
1153
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1154
|
-
"data-[expanded]:bg-transparent data-[expanded]:text-[var(--color-hover)] data-[expanded]:border-[var(--color-hover)]",
|
|
1155
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1156
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1157
|
-
"data-[selected]:hover:text-[var(--color-hover)] data-[selected]:hover:border-transparent",
|
|
1158
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1159
|
-
],
|
|
1160
|
-
// --- Header ---
|
|
1161
|
-
header: [
|
|
1162
|
-
"bg-transparent border-2 border-solid",
|
|
1163
|
-
"text-[var(--color-button-header-fg)] border-[var(--color-button-header-border)]",
|
|
1164
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1165
|
-
// selected
|
|
1166
|
-
"data-[selected]:bg-[var(--color-button-header-bg-selected)]",
|
|
1167
|
-
"data-[selected]:text-[var(--color-button-header-fg-selected)] data-[selected]:border-transparent data-[selected]:border-0",
|
|
1168
|
-
"data-[selected]:hover:bg-[var(--color-button-header-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1169
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1170
|
-
// selected + highlighted
|
|
1171
|
-
"data-[selected]:data-[highlighted]:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1172
|
-
"data-[selected]:data-[highlighted]:text-[var(--color-button-header-fg-highlighted)]",
|
|
1173
|
-
"data-[selected]:data-[highlighted]:border-transparent data-[selected]:data-[highlighted]:border-0",
|
|
1174
|
-
"data-[selected]:data-[highlighted]:hover:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1175
|
-
"data-[selected]:data-[highlighted]:hover:text-[var(--color-hover)]",
|
|
1176
|
-
"data-[selected]:data-[highlighted]:data-[expanded]:text-[var(--color-hover)]"
|
|
1177
|
-
],
|
|
1178
|
-
// --- Hero ---
|
|
1179
|
-
hero: [
|
|
1180
|
-
"bg-[var(--color-button-hero-bg)] text-[var(--color-button-hero-fg)]",
|
|
1181
|
-
"hover:bg-[var(--color-button-hero-bg-hover)] hover:text-[var(--color-button-hero-fg-hover)]",
|
|
1182
|
-
"data-[selected]:bg-[var(--color-button-hero-bg-selected)] data-[selected]:text-[var(--color-button-hero-fg-selected)]",
|
|
1183
|
-
"data-[selected]:hover:bg-[var(--color-button-hero-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1184
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1185
|
-
],
|
|
1186
|
-
// --- Segmented ---
|
|
1187
|
-
segmented: [
|
|
1188
|
-
"bg-transparent border-2 border-solid rounded-none",
|
|
1189
|
-
"text-[var(--color-button-segmented-fg)] border-[var(--color-selected-control-bg)]",
|
|
1190
|
-
"hover:text-[var(--color-hover)]",
|
|
1191
|
-
// selected
|
|
1192
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1193
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-selected-control-text)]",
|
|
1194
|
-
// border collapse: hide right border except when selected; first/last get rounded
|
|
1195
|
-
"[&:not(:last-child)]:border-r-0 data-[selected]:[&:not(:last-child)]:border-r-2",
|
|
1196
|
-
"data-[selected]+*:border-l-0",
|
|
1197
|
-
"first:rounded-l-md last:rounded-r-md"
|
|
1198
|
-
],
|
|
1199
|
-
// --- Plain ---
|
|
1200
|
-
plain: [
|
|
1201
|
-
"bg-transparent text-inherit border-none",
|
|
1202
|
-
"hover:bg-transparent"
|
|
1203
|
-
],
|
|
1204
|
-
// --- Subtle ---
|
|
1205
|
-
subtle: [
|
|
1206
|
-
"bg-[var(--color-button-subtle-bg)] text-[var(--color-button-subtle-fg)]",
|
|
1207
|
-
"hover:bg-[var(--color-button-subtle-bg)] hover:text-[var(--color-hover)]",
|
|
1208
|
-
"disabled:bg-[var(--color-button-subtle-bg)] disabled:text-[var(--color-button-subtle-fg)]"
|
|
1209
|
-
],
|
|
1210
|
-
// --- Link ---
|
|
1211
|
-
link: [
|
|
1212
|
-
"bg-transparent text-[var(--color-link-primary)] border-none font-normal",
|
|
1213
|
-
"px-0 h-auto",
|
|
1214
|
-
"hover:bg-transparent hover:text-[var(--color-link-primary-hover)]",
|
|
1215
|
-
"disabled:text-[var(--color-text-secondary)]"
|
|
1216
|
-
],
|
|
1217
|
-
// --- Icon Secondary ---
|
|
1218
|
-
icon_secondary: [
|
|
1219
|
-
"bg-transparent text-[var(--color-icon-secondary)] border-none",
|
|
1220
|
-
"hover:text-[var(--color-hover)]",
|
|
1221
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1222
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1223
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1224
|
-
"data-[expanded]:text-[var(--color-hover)]"
|
|
1225
|
-
],
|
|
1226
|
-
// --- Icon Background ---
|
|
1227
|
-
icon_background: [
|
|
1228
|
-
"bg-[var(--color-button-icon-background-bg)] text-[var(--color-icon-secondary)] border-none",
|
|
1229
|
-
"hover:text-[var(--color-hover)]",
|
|
1230
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1231
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1232
|
-
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1233
|
-
"data-[expanded]:text-[var(--color-hover)]"
|
|
1234
|
-
],
|
|
1235
|
-
// --- Pagination ---
|
|
1236
|
-
pagination: [
|
|
1237
|
-
"border-2 border-solid bg-transparent",
|
|
1238
|
-
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
1239
|
-
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1240
|
-
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1241
|
-
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1242
|
-
"data-[selected]:hover:text-[var(--color-selected-control-text)] data-[selected]:hover:border-transparent"
|
|
1243
|
-
]
|
|
1244
|
-
},
|
|
1245
|
-
size: {
|
|
1246
|
-
"2xs": "px-2 h-5 min-w-5 text-xs rounded-sm gap-1",
|
|
1247
|
-
xs: "px-2 h-6 min-w-6 text-sm rounded-sm gap-1",
|
|
1248
|
-
sm: "px-3 h-8 min-w-8 text-sm rounded-md gap-1",
|
|
1249
|
-
md: "px-3 h-10 min-w-10 text-base rounded-md gap-2"
|
|
1250
|
-
}
|
|
1251
|
-
},
|
|
1252
|
-
defaultVariants: {
|
|
1253
|
-
variant: "solid",
|
|
1254
|
-
size: "md"
|
|
1255
|
-
}
|
|
1256
|
-
}
|
|
1257
|
-
);
|
|
977
|
+
var SpinnerFrame = core.styled(core.View, {
|
|
978
|
+
name: "ButtonSpinner",
|
|
979
|
+
render: /* @__PURE__ */ jsxRuntime.jsx("span", {}),
|
|
980
|
+
width: 16,
|
|
981
|
+
height: 16,
|
|
982
|
+
borderRadius: 1e3,
|
|
983
|
+
borderWidth: 2,
|
|
984
|
+
borderColor: "currentColor",
|
|
985
|
+
borderBottomColor: "transparent",
|
|
986
|
+
borderLeftColor: "transparent"
|
|
987
|
+
});
|
|
1258
988
|
function Spinner({ className }) {
|
|
1259
989
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1260
|
-
|
|
990
|
+
SpinnerFrame,
|
|
1261
991
|
{
|
|
1262
|
-
className: cn(
|
|
1263
|
-
"inline-block h-4 w-4 animate-spin rounded-full",
|
|
1264
|
-
"border-2 border-current border-b-transparent border-l-transparent",
|
|
1265
|
-
className
|
|
1266
|
-
),
|
|
1267
992
|
role: "status",
|
|
1268
|
-
"aria-label": "Loading"
|
|
993
|
+
"aria-label": "Loading",
|
|
994
|
+
className: [
|
|
995
|
+
"animate-spin",
|
|
996
|
+
className
|
|
997
|
+
].filter(Boolean).join(" ")
|
|
1269
998
|
}
|
|
1270
999
|
);
|
|
1271
1000
|
}
|
|
1001
|
+
var ButtonFrame = core.styled(core.View, {
|
|
1002
|
+
name: "LuxButton",
|
|
1003
|
+
render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" }),
|
|
1004
|
+
role: "button",
|
|
1005
|
+
tabIndex: 0,
|
|
1006
|
+
cursor: "pointer",
|
|
1007
|
+
userSelect: "none",
|
|
1008
|
+
display: "inline-flex",
|
|
1009
|
+
alignItems: "center",
|
|
1010
|
+
justifyContent: "center",
|
|
1011
|
+
gap: 0,
|
|
1012
|
+
overflow: "hidden",
|
|
1013
|
+
borderRadius: 6,
|
|
1014
|
+
// Whitespace nowrap via className since hanzogui doesn't have a direct token
|
|
1015
|
+
// Transition via className
|
|
1016
|
+
variants: {
|
|
1017
|
+
size: {
|
|
1018
|
+
"2xs": { paddingHorizontal: 8, height: 20, minWidth: 20, fontSize: 12, borderRadius: 4, gap: 4 },
|
|
1019
|
+
xs: { paddingHorizontal: 8, height: 24, minWidth: 24, fontSize: 14, borderRadius: 4, gap: 4 },
|
|
1020
|
+
sm: { paddingHorizontal: 12, height: 32, minWidth: 32, fontSize: 14, borderRadius: 6, gap: 4 },
|
|
1021
|
+
md: { paddingHorizontal: 12, height: 40, minWidth: 40, fontSize: 16, borderRadius: 6, gap: 8 }
|
|
1022
|
+
},
|
|
1023
|
+
disabled: {
|
|
1024
|
+
true: {
|
|
1025
|
+
opacity: 0.2,
|
|
1026
|
+
cursor: "not-allowed",
|
|
1027
|
+
pointerEvents: "none"
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
},
|
|
1031
|
+
defaultVariants: {
|
|
1032
|
+
size: "md"
|
|
1033
|
+
}
|
|
1034
|
+
});
|
|
1035
|
+
var VARIANT_CLASSES2 = {
|
|
1036
|
+
solid: [
|
|
1037
|
+
"bg-[var(--color-button-solid-bg)] text-[var(--color-button-solid-text)]",
|
|
1038
|
+
"hover:bg-[var(--color-hover)]",
|
|
1039
|
+
"data-[expanded]:bg-[var(--color-hover)]"
|
|
1040
|
+
].join(" "),
|
|
1041
|
+
solid_danger: [
|
|
1042
|
+
"bg-red-600 text-[var(--color-button-solid-text)]",
|
|
1043
|
+
"hover:bg-red-500",
|
|
1044
|
+
"data-[expanded]:bg-red-500"
|
|
1045
|
+
].join(" "),
|
|
1046
|
+
outline: [
|
|
1047
|
+
"border-2 border-solid bg-transparent",
|
|
1048
|
+
"text-[var(--color-button-outline-fg)] border-[var(--color-button-outline-fg)]",
|
|
1049
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]"
|
|
1050
|
+
].join(" "),
|
|
1051
|
+
outline_danger: [
|
|
1052
|
+
"border-2 border-solid bg-transparent",
|
|
1053
|
+
"text-red-600 border-red-600",
|
|
1054
|
+
"hover:bg-transparent hover:text-red-500 hover:border-red-500"
|
|
1055
|
+
].join(" "),
|
|
1056
|
+
dropdown: [
|
|
1057
|
+
"border-2 border-solid bg-transparent",
|
|
1058
|
+
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
1059
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1060
|
+
"data-[expanded]:bg-transparent data-[expanded]:text-[var(--color-hover)] data-[expanded]:border-[var(--color-hover)]",
|
|
1061
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1062
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1063
|
+
"data-[selected]:hover:text-[var(--color-hover)] data-[selected]:hover:border-transparent",
|
|
1064
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1065
|
+
].join(" "),
|
|
1066
|
+
header: [
|
|
1067
|
+
"bg-transparent border-2 border-solid",
|
|
1068
|
+
"text-[var(--color-button-header-fg)] border-[var(--color-button-header-border)]",
|
|
1069
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1070
|
+
"data-[selected]:bg-[var(--color-button-header-bg-selected)]",
|
|
1071
|
+
"data-[selected]:text-[var(--color-button-header-fg-selected)] data-[selected]:border-transparent data-[selected]:border-0",
|
|
1072
|
+
"data-[selected]:hover:bg-[var(--color-button-header-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1073
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1074
|
+
"data-[selected]:data-[highlighted]:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1075
|
+
"data-[selected]:data-[highlighted]:text-[var(--color-button-header-fg-highlighted)]",
|
|
1076
|
+
"data-[selected]:data-[highlighted]:border-transparent data-[selected]:data-[highlighted]:border-0",
|
|
1077
|
+
"data-[selected]:data-[highlighted]:hover:bg-[var(--color-button-header-bg-highlighted)]",
|
|
1078
|
+
"data-[selected]:data-[highlighted]:hover:text-[var(--color-hover)]",
|
|
1079
|
+
"data-[selected]:data-[highlighted]:data-[expanded]:text-[var(--color-hover)]"
|
|
1080
|
+
].join(" "),
|
|
1081
|
+
hero: [
|
|
1082
|
+
"bg-[var(--color-button-hero-bg)] text-[var(--color-button-hero-fg)]",
|
|
1083
|
+
"hover:bg-[var(--color-button-hero-bg-hover)] hover:text-[var(--color-button-hero-fg-hover)]",
|
|
1084
|
+
"data-[selected]:bg-[var(--color-button-hero-bg-selected)] data-[selected]:text-[var(--color-button-hero-fg-selected)]",
|
|
1085
|
+
"data-[selected]:hover:bg-[var(--color-button-hero-bg-selected)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1086
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]"
|
|
1087
|
+
].join(" "),
|
|
1088
|
+
segmented: [
|
|
1089
|
+
"bg-transparent border-2 border-solid rounded-none",
|
|
1090
|
+
"text-[var(--color-button-segmented-fg)] border-[var(--color-selected-control-bg)]",
|
|
1091
|
+
"hover:text-[var(--color-hover)]",
|
|
1092
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1093
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-selected-control-text)]",
|
|
1094
|
+
"[&:not(:last-child)]:border-r-0 data-[selected]:[&:not(:last-child)]:border-r-2",
|
|
1095
|
+
"data-[selected]+*:border-l-0",
|
|
1096
|
+
"first:rounded-l-md last:rounded-r-md"
|
|
1097
|
+
].join(" "),
|
|
1098
|
+
plain: "bg-transparent text-inherit border-none hover:bg-transparent",
|
|
1099
|
+
subtle: [
|
|
1100
|
+
"bg-[var(--color-button-subtle-bg)] text-[var(--color-button-subtle-fg)]",
|
|
1101
|
+
"hover:bg-[var(--color-button-subtle-bg)] hover:text-[var(--color-hover)]",
|
|
1102
|
+
"disabled:bg-[var(--color-button-subtle-bg)] disabled:text-[var(--color-button-subtle-fg)]"
|
|
1103
|
+
].join(" "),
|
|
1104
|
+
link: [
|
|
1105
|
+
"bg-transparent text-[var(--color-link-primary)] border-none font-normal",
|
|
1106
|
+
"px-0 h-auto",
|
|
1107
|
+
"hover:bg-transparent hover:text-[var(--color-link-primary-hover)]",
|
|
1108
|
+
"disabled:text-[var(--color-text-secondary)]"
|
|
1109
|
+
].join(" "),
|
|
1110
|
+
icon_secondary: [
|
|
1111
|
+
"bg-transparent text-[var(--color-icon-secondary)] border-none",
|
|
1112
|
+
"hover:text-[var(--color-hover)]",
|
|
1113
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1114
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1115
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1116
|
+
"data-[expanded]:text-[var(--color-hover)]"
|
|
1117
|
+
].join(" "),
|
|
1118
|
+
icon_background: [
|
|
1119
|
+
"bg-[var(--color-button-icon-background-bg)] text-[var(--color-icon-secondary)] border-none",
|
|
1120
|
+
"hover:text-[var(--color-hover)]",
|
|
1121
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)]",
|
|
1122
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)] data-[selected]:hover:text-[var(--color-hover)]",
|
|
1123
|
+
"data-[selected]:data-[expanded]:text-[var(--color-hover)]",
|
|
1124
|
+
"data-[expanded]:text-[var(--color-hover)]"
|
|
1125
|
+
].join(" "),
|
|
1126
|
+
pagination: [
|
|
1127
|
+
"border-2 border-solid bg-transparent",
|
|
1128
|
+
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
1129
|
+
"hover:bg-transparent hover:text-[var(--color-hover)] hover:border-[var(--color-hover)]",
|
|
1130
|
+
"data-[selected]:bg-[var(--color-selected-control-bg)] data-[selected]:text-[var(--color-selected-control-text)] data-[selected]:border-transparent",
|
|
1131
|
+
"data-[selected]:hover:bg-[var(--color-selected-control-bg)]",
|
|
1132
|
+
"data-[selected]:hover:text-[var(--color-selected-control-text)] data-[selected]:hover:border-transparent"
|
|
1133
|
+
].join(" ")
|
|
1134
|
+
};
|
|
1135
|
+
var BASE_CLASSES2 = "font-semibold whitespace-nowrap transition-colors duration-150";
|
|
1136
|
+
var SP = 4;
|
|
1137
|
+
function buildShimStyle(props) {
|
|
1138
|
+
const s = { ...props.style };
|
|
1139
|
+
if (props.mt !== void 0) s.marginTop = typeof props.mt === "number" ? `${props.mt * SP}px` : props.mt;
|
|
1140
|
+
if (props.ml !== void 0) s.marginLeft = typeof props.ml === "number" ? `${props.ml * SP}px` : props.ml;
|
|
1141
|
+
if (props.mr !== void 0) s.marginRight = typeof props.mr === "number" ? `${props.mr * SP}px` : props.mr;
|
|
1142
|
+
if (props.px !== void 0) {
|
|
1143
|
+
const v = typeof props.px === "number" ? `${props.px * SP}px` : props.px;
|
|
1144
|
+
s.paddingLeft = v;
|
|
1145
|
+
s.paddingRight = v;
|
|
1146
|
+
}
|
|
1147
|
+
if (props.py !== void 0) {
|
|
1148
|
+
const v = typeof props.py === "number" ? `${props.py * SP}px` : props.py;
|
|
1149
|
+
s.paddingTop = v;
|
|
1150
|
+
s.paddingBottom = v;
|
|
1151
|
+
}
|
|
1152
|
+
if (props.fontWeight !== void 0) s.fontWeight = props.fontWeight;
|
|
1153
|
+
if (props.gap !== void 0) s.gap = typeof props.gap === "number" ? `${props.gap * SP}px` : props.gap;
|
|
1154
|
+
if (props.flexShrink !== void 0) s.flexShrink = props.flexShrink;
|
|
1155
|
+
if (props.columnGap !== void 0) s.columnGap = typeof props.columnGap === "number" ? `${props.columnGap * SP}px` : props.columnGap;
|
|
1156
|
+
if (props.gridColumn !== void 0) s.gridColumn = typeof props.gridColumn === "number" ? String(props.gridColumn) : props.gridColumn;
|
|
1157
|
+
if (props.gridRow) s.gridRow = props.gridRow;
|
|
1158
|
+
if (props.justifySelf) s.justifySelf = props.justifySelf;
|
|
1159
|
+
if (props.alignSelf) s.alignSelf = props.alignSelf;
|
|
1160
|
+
if (props.h) s.height = props.h;
|
|
1161
|
+
if (props.w) s.width = props.w;
|
|
1162
|
+
if (props.display) s.display = props.display;
|
|
1163
|
+
if (props.borderBottomRightRadius !== void 0) s.borderBottomRightRadius = typeof props.borderBottomRightRadius === "number" ? `${props.borderBottomRightRadius}px` : props.borderBottomRightRadius;
|
|
1164
|
+
if (props.borderTopRightRadius !== void 0) s.borderTopRightRadius = typeof props.borderTopRightRadius === "number" ? `${props.borderTopRightRadius}px` : props.borderTopRightRadius;
|
|
1165
|
+
return Object.keys(s).length > 0 ? s : void 0;
|
|
1166
|
+
}
|
|
1272
1167
|
var Button = React29__namespace.forwardRef(
|
|
1273
1168
|
function Button2(props, ref) {
|
|
1274
1169
|
const {
|
|
1275
1170
|
className,
|
|
1276
|
-
variant,
|
|
1277
|
-
size,
|
|
1171
|
+
variant = "solid",
|
|
1172
|
+
size = "md",
|
|
1278
1173
|
asChild = false,
|
|
1279
1174
|
loading = false,
|
|
1280
1175
|
loadingText,
|
|
@@ -1286,57 +1181,48 @@ var Button = React29__namespace.forwardRef(
|
|
|
1286
1181
|
children,
|
|
1287
1182
|
style: styleProp,
|
|
1288
1183
|
// Strip Chakra style props
|
|
1289
|
-
mt
|
|
1290
|
-
ml
|
|
1291
|
-
mr
|
|
1292
|
-
px
|
|
1293
|
-
py
|
|
1294
|
-
fontWeight
|
|
1295
|
-
gap
|
|
1296
|
-
flexShrink
|
|
1297
|
-
columnGap
|
|
1298
|
-
gridColumn
|
|
1299
|
-
gridRow
|
|
1300
|
-
justifySelf
|
|
1301
|
-
alignSelf
|
|
1184
|
+
mt,
|
|
1185
|
+
ml,
|
|
1186
|
+
mr,
|
|
1187
|
+
px,
|
|
1188
|
+
py,
|
|
1189
|
+
fontWeight,
|
|
1190
|
+
gap,
|
|
1191
|
+
flexShrink,
|
|
1192
|
+
columnGap,
|
|
1193
|
+
gridColumn,
|
|
1194
|
+
gridRow,
|
|
1195
|
+
justifySelf,
|
|
1196
|
+
alignSelf,
|
|
1302
1197
|
textStyle: _textStyle,
|
|
1303
|
-
h
|
|
1304
|
-
w
|
|
1305
|
-
display
|
|
1306
|
-
borderBottomRightRadius
|
|
1307
|
-
borderTopRightRadius
|
|
1198
|
+
h,
|
|
1199
|
+
w,
|
|
1200
|
+
display,
|
|
1201
|
+
borderBottomRightRadius,
|
|
1202
|
+
borderTopRightRadius,
|
|
1308
1203
|
...rest
|
|
1309
1204
|
} = props;
|
|
1310
|
-
const
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
if (_justifySelf) shimStyle.justifySelf = _justifySelf;
|
|
1332
|
-
if (_alignSelf) shimStyle.alignSelf = _alignSelf;
|
|
1333
|
-
if (_h) shimStyle.height = _h;
|
|
1334
|
-
if (_w) shimStyle.width = _w;
|
|
1335
|
-
if (_display) shimStyle.display = _display;
|
|
1336
|
-
if (_bbrr !== void 0) shimStyle.borderBottomRightRadius = typeof _bbrr === "number" ? `${_bbrr}px` : _bbrr;
|
|
1337
|
-
if (_btrr !== void 0) shimStyle.borderTopRightRadius = typeof _btrr === "number" ? `${_btrr}px` : _btrr;
|
|
1338
|
-
const mergedStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1339
|
-
const Comp = asChild ? reactSlot.Slot : "button";
|
|
1205
|
+
const mergedStyle = buildShimStyle({
|
|
1206
|
+
style: styleProp,
|
|
1207
|
+
mt,
|
|
1208
|
+
ml,
|
|
1209
|
+
mr,
|
|
1210
|
+
px,
|
|
1211
|
+
py,
|
|
1212
|
+
fontWeight,
|
|
1213
|
+
gap,
|
|
1214
|
+
flexShrink,
|
|
1215
|
+
columnGap,
|
|
1216
|
+
gridColumn,
|
|
1217
|
+
gridRow,
|
|
1218
|
+
justifySelf,
|
|
1219
|
+
alignSelf,
|
|
1220
|
+
h,
|
|
1221
|
+
w,
|
|
1222
|
+
display,
|
|
1223
|
+
borderBottomRightRadius,
|
|
1224
|
+
borderTopRightRadius
|
|
1225
|
+
});
|
|
1340
1226
|
const dataAttrs = {};
|
|
1341
1227
|
if (expanded) dataAttrs["data-expanded"] = true;
|
|
1342
1228
|
if (selected) dataAttrs["data-selected"] = true;
|
|
@@ -1345,15 +1231,19 @@ var Button = React29__namespace.forwardRef(
|
|
|
1345
1231
|
const isDisabled = !loadingSkeleton && (loading || disabled);
|
|
1346
1232
|
const inner = loading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1347
1233
|
/* @__PURE__ */ jsxRuntime.jsx(Spinner, {}),
|
|
1348
|
-
loadingText != null && /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
1234
|
+
loadingText != null && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { marginLeft: 8 }, children: loadingText })
|
|
1349
1235
|
] }) : children;
|
|
1236
|
+
const variantClass = VARIANT_CLASSES2[variant] ?? VARIANT_CLASSES2.solid;
|
|
1237
|
+
const combinedClassName = [BASE_CLASSES2, variantClass, className].filter(Boolean).join(" ");
|
|
1350
1238
|
const button = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1351
|
-
|
|
1239
|
+
ButtonFrame,
|
|
1352
1240
|
{
|
|
1353
1241
|
ref,
|
|
1354
|
-
|
|
1355
|
-
style: mergedStyle,
|
|
1242
|
+
size,
|
|
1356
1243
|
disabled: isDisabled || void 0,
|
|
1244
|
+
asChild: asChild || void 0,
|
|
1245
|
+
className: combinedClassName,
|
|
1246
|
+
style: mergedStyle,
|
|
1357
1247
|
...dataAttrs,
|
|
1358
1248
|
...rest,
|
|
1359
1249
|
children: inner
|
|
@@ -1365,6 +1255,17 @@ var Button = React29__namespace.forwardRef(
|
|
|
1365
1255
|
return button;
|
|
1366
1256
|
}
|
|
1367
1257
|
);
|
|
1258
|
+
var SIZE_CLASSES3 = {
|
|
1259
|
+
"2xs": "px-2 h-5 min-w-5 text-xs rounded-sm gap-1",
|
|
1260
|
+
xs: "px-2 h-6 min-w-6 text-sm rounded-sm gap-1",
|
|
1261
|
+
sm: "px-3 h-8 min-w-8 text-sm rounded-md gap-1",
|
|
1262
|
+
md: "px-3 h-10 min-w-10 text-base rounded-md gap-2"
|
|
1263
|
+
};
|
|
1264
|
+
function buttonVariants(opts) {
|
|
1265
|
+
const v = opts?.variant ?? "solid";
|
|
1266
|
+
const s = opts?.size ?? "md";
|
|
1267
|
+
return [BASE_CLASSES2, VARIANT_CLASSES2[v] ?? "", SIZE_CLASSES3[s] ?? ""].filter(Boolean).join(" ");
|
|
1268
|
+
}
|
|
1368
1269
|
var ButtonGroup = React29__namespace.forwardRef(
|
|
1369
1270
|
function ButtonGroup2(props, ref) {
|
|
1370
1271
|
const { className, ...rest } = props;
|
|
@@ -1372,7 +1273,7 @@ var ButtonGroup = React29__namespace.forwardRef(
|
|
|
1372
1273
|
"div",
|
|
1373
1274
|
{
|
|
1374
1275
|
ref,
|
|
1375
|
-
className:
|
|
1276
|
+
className: ["inline-flex", className].filter(Boolean).join(" "),
|
|
1376
1277
|
role: "group",
|
|
1377
1278
|
...rest
|
|
1378
1279
|
}
|
|
@@ -1413,11 +1314,11 @@ var ButtonGroupRadio = React29__namespace.forwardRef(
|
|
|
1413
1314
|
"div",
|
|
1414
1315
|
{
|
|
1415
1316
|
ref,
|
|
1416
|
-
className:
|
|
1317
|
+
className: [
|
|
1417
1318
|
"inline-flex gap-0",
|
|
1418
|
-
equalWidth
|
|
1319
|
+
equalWidth ? "grid" : "",
|
|
1419
1320
|
className
|
|
1420
|
-
),
|
|
1321
|
+
].filter(Boolean).join(" "),
|
|
1421
1322
|
style: equalWidth ? { gridTemplateColumns: `repeat(${childrenLength}, 1fr)` } : void 0,
|
|
1422
1323
|
role: "group",
|
|
1423
1324
|
...rest,
|
|
@@ -1480,7 +1381,7 @@ var CheckboxGroupBase = React29__namespace.forwardRef(
|
|
|
1480
1381
|
}
|
|
1481
1382
|
);
|
|
1482
1383
|
var CheckboxGroup2 = CheckboxGroupBase;
|
|
1483
|
-
var
|
|
1384
|
+
var SIZE_CLASSES4 = {
|
|
1484
1385
|
sm: {
|
|
1485
1386
|
root: "gap-1.5",
|
|
1486
1387
|
control: "h-3.5 w-3.5 rounded-sm",
|
|
@@ -1590,7 +1491,7 @@ var CheckboxBase = React29__namespace.forwardRef(
|
|
|
1590
1491
|
},
|
|
1591
1492
|
[readOnly, isControlled, isInGroup, group, value, onCheckedChange, onChange]
|
|
1592
1493
|
);
|
|
1593
|
-
const sizeClasses2 =
|
|
1494
|
+
const sizeClasses2 = SIZE_CLASSES4[size];
|
|
1594
1495
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1595
1496
|
"label",
|
|
1596
1497
|
{
|
|
@@ -1666,7 +1567,7 @@ function stripUtmParams(url) {
|
|
|
1666
1567
|
return url;
|
|
1667
1568
|
}
|
|
1668
1569
|
}
|
|
1669
|
-
var
|
|
1570
|
+
var VARIANT_CLASSES3 = {
|
|
1670
1571
|
primary: cn(
|
|
1671
1572
|
"text-[var(--color-link-primary)]",
|
|
1672
1573
|
"hover:no-underline hover:text-[var(--color-link-primary-hover)]",
|
|
@@ -1706,7 +1607,7 @@ var VARIANT_CLASSES2 = {
|
|
|
1706
1607
|
"data-[hover]:no-underline"
|
|
1707
1608
|
)
|
|
1708
1609
|
};
|
|
1709
|
-
var
|
|
1610
|
+
var BASE_CLASSES3 = "inline-flex items-center gap-0 cursor-pointer data-[disabled]:cursor-not-allowed";
|
|
1710
1611
|
var LinkExternalIcon = ({ color }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1711
1612
|
ArrowIcon,
|
|
1712
1613
|
{
|
|
@@ -1775,7 +1676,7 @@ var Link = React29__namespace.default.forwardRef(
|
|
|
1775
1676
|
if (_minW !== void 0) shimStyle.minWidth = typeof _minW === "number" ? `${_minW * SPACING}px` : _minW;
|
|
1776
1677
|
if (_justifyContent) shimStyle.justifyContent = _justifyContent;
|
|
1777
1678
|
if (_position) shimStyle.position = _position;
|
|
1778
|
-
const linkClasses = cn(
|
|
1679
|
+
const linkClasses = cn(BASE_CLASSES3, VARIANT_CLASSES3[variant], className);
|
|
1779
1680
|
const linkStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
1780
1681
|
if (external) {
|
|
1781
1682
|
const processedHref = typeof href === "string" ? stripUtmParams(href) : href;
|
|
@@ -1864,8 +1765,8 @@ var LinkOverlay = React29__namespace.default.forwardRef(
|
|
|
1864
1765
|
...rest
|
|
1865
1766
|
} = props;
|
|
1866
1767
|
const overlayClasses = cn(
|
|
1867
|
-
|
|
1868
|
-
|
|
1768
|
+
BASE_CLASSES3,
|
|
1769
|
+
VARIANT_CLASSES3[variant],
|
|
1869
1770
|
// Static positioning with a ::before pseudo-element that covers the LinkBox
|
|
1870
1771
|
"static",
|
|
1871
1772
|
'before:absolute before:inset-0 before:z-0 before:content-[""]',
|
|
@@ -2063,9 +1964,9 @@ function BackToButton({ onClick }) {
|
|
|
2063
1964
|
}
|
|
2064
1965
|
);
|
|
2065
1966
|
}
|
|
2066
|
-
var
|
|
2067
|
-
function
|
|
2068
|
-
return React29__namespace.useContext(
|
|
1967
|
+
var DialogSizeContext = React29__namespace.createContext({ size: "md" });
|
|
1968
|
+
function useDialogSizeContext() {
|
|
1969
|
+
return React29__namespace.useContext(DialogSizeContext);
|
|
2069
1970
|
}
|
|
2070
1971
|
var CONTENT_SIZE_MAP = {
|
|
2071
1972
|
sm: "max-w-[400px]",
|
|
@@ -2095,7 +1996,7 @@ var DialogRoot = ({
|
|
|
2095
1996
|
onOpenChange,
|
|
2096
1997
|
size = "md",
|
|
2097
1998
|
modal = true
|
|
2098
|
-
// motionPreset is intentionally unused
|
|
1999
|
+
// motionPreset is intentionally unused -- kept for API compat
|
|
2099
2000
|
}) => {
|
|
2100
2001
|
const handleOpenChange = React29__namespace.useCallback(
|
|
2101
2002
|
(nextOpen) => {
|
|
@@ -2104,8 +2005,8 @@ var DialogRoot = ({
|
|
|
2104
2005
|
[onOpenChange]
|
|
2105
2006
|
);
|
|
2106
2007
|
const ctx = React29__namespace.useMemo(() => ({ size }), [size]);
|
|
2107
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2108
|
-
|
|
2008
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DialogSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2009
|
+
dialog.Dialog,
|
|
2109
2010
|
{
|
|
2110
2011
|
open,
|
|
2111
2012
|
defaultOpen,
|
|
@@ -2118,8 +2019,8 @@ var DialogRoot = ({
|
|
|
2118
2019
|
var DialogContent = React29__namespace.forwardRef(function DialogContent2(props, ref) {
|
|
2119
2020
|
const {
|
|
2120
2021
|
children,
|
|
2121
|
-
portalled = true,
|
|
2122
|
-
portalRef,
|
|
2022
|
+
portalled: _portalled = true,
|
|
2023
|
+
portalRef: _portalRef,
|
|
2123
2024
|
backdrop = true,
|
|
2124
2025
|
className,
|
|
2125
2026
|
paddingTop: _paddingTop,
|
|
@@ -2130,21 +2031,12 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
|
|
|
2130
2031
|
...styleProp,
|
|
2131
2032
|
..._paddingTop !== void 0 ? { paddingTop: typeof _paddingTop === "number" ? `${_paddingTop * 4}px` : _paddingTop } : {}
|
|
2132
2033
|
};
|
|
2133
|
-
const { size } =
|
|
2134
|
-
|
|
2135
|
-
if (!portalled) {
|
|
2136
|
-
portalProps = { container: void 0 };
|
|
2137
|
-
} else if (portalRef) {
|
|
2138
|
-
portalProps = { container: portalRef.current };
|
|
2139
|
-
} else {
|
|
2140
|
-
portalProps = {};
|
|
2141
|
-
}
|
|
2142
|
-
const Wrapper = portalled ? RadixDialog__namespace.Portal : React29__namespace.Fragment;
|
|
2143
|
-
const wrapperProps = portalled ? portalProps : {};
|
|
2144
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(Wrapper, { ...wrapperProps, children: [
|
|
2034
|
+
const { size } = useDialogSizeContext();
|
|
2035
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Portal, { children: [
|
|
2145
2036
|
backdrop && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2146
|
-
|
|
2037
|
+
dialog.Dialog.Overlay,
|
|
2147
2038
|
{
|
|
2039
|
+
unstyled: true,
|
|
2148
2040
|
className: "fixed inset-0 z-[1400] bg-black/80"
|
|
2149
2041
|
}
|
|
2150
2042
|
),
|
|
@@ -2157,9 +2049,10 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
|
|
|
2157
2049
|
"overflow-hidden"
|
|
2158
2050
|
),
|
|
2159
2051
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2160
|
-
|
|
2052
|
+
dialog.Dialog.Content,
|
|
2161
2053
|
{
|
|
2162
2054
|
ref,
|
|
2055
|
+
unstyled: true,
|
|
2163
2056
|
className: cn(
|
|
2164
2057
|
// Base content styles
|
|
2165
2058
|
"relative flex flex-col w-full p-6 outline-none text-base",
|
|
@@ -2182,7 +2075,7 @@ var DialogContent = React29__namespace.forwardRef(function DialogContent2(props,
|
|
|
2182
2075
|
});
|
|
2183
2076
|
var DialogCloseTrigger = React29__namespace.forwardRef(function DialogCloseTrigger2(props, ref) {
|
|
2184
2077
|
const { className, ...rest } = props;
|
|
2185
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2078
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(CloseButton, { ref, className, ...rest, children: props.children }) });
|
|
2186
2079
|
});
|
|
2187
2080
|
var DialogHeader = React29__namespace.forwardRef(function DialogHeader2(props, ref) {
|
|
2188
2081
|
const { startElement: startElementProp, onBackToClick, className, children, ...rest } = props;
|
|
@@ -2199,8 +2092,9 @@ var DialogHeader = React29__namespace.forwardRef(function DialogHeader2(props, r
|
|
|
2199
2092
|
children: [
|
|
2200
2093
|
startElement,
|
|
2201
2094
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2202
|
-
|
|
2095
|
+
dialog.Dialog.Title,
|
|
2203
2096
|
{
|
|
2097
|
+
unstyled: true,
|
|
2204
2098
|
className: cn(
|
|
2205
2099
|
"text-base lg:text-lg font-medium",
|
|
2206
2100
|
"whitespace-nowrap overflow-hidden text-ellipsis"
|
|
@@ -2240,11 +2134,11 @@ var DialogFooter = React29__namespace.forwardRef(function DialogFooter2({ classN
|
|
|
2240
2134
|
}
|
|
2241
2135
|
);
|
|
2242
2136
|
});
|
|
2243
|
-
var DialogBackdrop =
|
|
2244
|
-
var DialogTitle =
|
|
2245
|
-
var DialogDescription =
|
|
2246
|
-
var DialogTrigger =
|
|
2247
|
-
var DialogActionTrigger =
|
|
2137
|
+
var DialogBackdrop = dialog.Dialog.Overlay;
|
|
2138
|
+
var DialogTitle = dialog.Dialog.Title;
|
|
2139
|
+
var DialogDescription = dialog.Dialog.Description;
|
|
2140
|
+
var DialogTrigger = dialog.Dialog.Trigger;
|
|
2141
|
+
var DialogActionTrigger = dialog.Dialog.Close;
|
|
2248
2142
|
var DrawerPlacementContext = React29__namespace.createContext("right");
|
|
2249
2143
|
var DrawerSizeContext = React29__namespace.createContext("md");
|
|
2250
2144
|
var DrawerRoot = (props) => {
|
|
@@ -2293,7 +2187,7 @@ var PLACEMENT_CLASSES = {
|
|
|
2293
2187
|
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom"
|
|
2294
2188
|
].join(" ")
|
|
2295
2189
|
};
|
|
2296
|
-
var
|
|
2190
|
+
var SIZE_CLASSES5 = {
|
|
2297
2191
|
right: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
|
|
2298
2192
|
left: { xs: "w-60", sm: "w-80", md: "w-96", lg: "w-[480px]", xl: "w-[640px]", full: "w-screen" },
|
|
2299
2193
|
top: { xs: "h-40", sm: "h-60", md: "h-80", lg: "h-96", xl: "h-[480px]", full: "h-screen" },
|
|
@@ -2322,7 +2216,7 @@ var DrawerContent = React29__namespace.forwardRef(
|
|
|
2322
2216
|
className: cn(
|
|
2323
2217
|
"fixed z-50 flex flex-col bg-[var(--color-drawer-bg)] shadow-[var(--shadow-drawer)] duration-300",
|
|
2324
2218
|
PLACEMENT_CLASSES[placement] ?? PLACEMENT_CLASSES.right,
|
|
2325
|
-
|
|
2219
|
+
SIZE_CLASSES5[placement]?.[size] ?? SIZE_CLASSES5.right?.md,
|
|
2326
2220
|
className
|
|
2327
2221
|
),
|
|
2328
2222
|
...rest,
|
|
@@ -2574,92 +2468,100 @@ var Field = React29__namespace.forwardRef(
|
|
|
2574
2468
|
);
|
|
2575
2469
|
}
|
|
2576
2470
|
);
|
|
2577
|
-
var LEVEL_TAG = {
|
|
2578
|
-
"1": "h1",
|
|
2579
|
-
"2": "h2",
|
|
2580
|
-
"3": "h3"
|
|
2581
|
-
};
|
|
2471
|
+
var LEVEL_TAG = { "1": "h1", "2": "h2", "3": "h3" };
|
|
2582
2472
|
var LEVEL_CLASSES = {
|
|
2583
2473
|
"1": "text-[18px] leading-[24px] font-medium lg:text-[32px] lg:leading-[40px] lg:tracking-[-0.5px]",
|
|
2584
2474
|
"2": "text-[16px] leading-[24px] font-medium lg:text-[24px] lg:leading-[32px]",
|
|
2585
2475
|
"3": "text-[14px] leading-[20px] font-semibold lg:text-[18px] lg:leading-[24px] lg:font-medium"
|
|
2586
2476
|
};
|
|
2587
|
-
var
|
|
2477
|
+
var BASE_CLASSES4 = "font-heading text-heading";
|
|
2588
2478
|
var Heading = React29__namespace.default.forwardRef(
|
|
2589
2479
|
function Heading2({ level, className, mb, size: _size, style: styleProp, ...rest }, ref) {
|
|
2590
2480
|
const Tag3 = level ? LEVEL_TAG[level] : "h2";
|
|
2591
2481
|
const levelClasses = level ? LEVEL_CLASSES[level] : void 0;
|
|
2592
|
-
const
|
|
2593
|
-
if (mb !== void 0) shimStyle.marginBottom = typeof mb === "number" ? `${mb * 4}px` : mb;
|
|
2482
|
+
const mergedStyle = mb !== void 0 ? { ...styleProp, marginBottom: typeof mb === "number" ? `${mb * 4}px` : mb } : styleProp;
|
|
2594
2483
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2595
2484
|
Tag3,
|
|
2596
2485
|
{
|
|
2597
2486
|
ref,
|
|
2598
|
-
className: cn(
|
|
2599
|
-
style:
|
|
2487
|
+
className: cn(BASE_CLASSES4, levelClasses, className),
|
|
2488
|
+
style: mergedStyle,
|
|
2600
2489
|
...rest
|
|
2601
2490
|
}
|
|
2602
2491
|
);
|
|
2603
2492
|
}
|
|
2604
2493
|
);
|
|
2605
|
-
var
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
],
|
|
2624
|
-
icon_background: [
|
|
2625
|
-
"bg-[var(--color-button-icon-background-bg)] text-icon-secondary border-none",
|
|
2626
|
-
"hover:text-hover",
|
|
2627
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2628
|
-
"data-[selected]:hover:text-hover",
|
|
2629
|
-
"data-[expanded]:text-hover"
|
|
2630
|
-
],
|
|
2631
|
-
link: [
|
|
2632
|
-
"bg-transparent text-link-primary border-none font-normal px-0 h-auto",
|
|
2633
|
-
"hover:bg-transparent hover:text-link-primary-hover",
|
|
2634
|
-
"disabled:text-text-secondary"
|
|
2635
|
-
],
|
|
2636
|
-
dropdown: [
|
|
2637
|
-
"border-2 border-solid bg-transparent",
|
|
2638
|
-
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
2639
|
-
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2640
|
-
"data-[expanded]:bg-transparent data-[expanded]:text-hover data-[expanded]:border-hover",
|
|
2641
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent",
|
|
2642
|
-
"data-[selected]:hover:text-hover"
|
|
2643
|
-
],
|
|
2644
|
-
pagination: [
|
|
2645
|
-
"border-2 border-solid bg-transparent",
|
|
2646
|
-
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
2647
|
-
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2648
|
-
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent"
|
|
2649
|
-
]
|
|
2650
|
-
},
|
|
2651
|
-
size: {
|
|
2652
|
-
"2xs": "size-5 rounded-sm [&_svg]:size-5",
|
|
2653
|
-
"2xs_alt": "size-5 rounded-sm [&_svg]:size-3",
|
|
2654
|
-
md: "size-8 rounded-[var(--radius-base,8px)] [&_svg]:size-5"
|
|
2655
|
-
}
|
|
2494
|
+
var IconButtonFrame = core.styled(core.View, {
|
|
2495
|
+
name: "LuxIconButton",
|
|
2496
|
+
render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button" }),
|
|
2497
|
+
role: "button",
|
|
2498
|
+
cursor: "pointer",
|
|
2499
|
+
display: "inline-flex",
|
|
2500
|
+
alignItems: "center",
|
|
2501
|
+
justifyContent: "center",
|
|
2502
|
+
padding: 0,
|
|
2503
|
+
minWidth: "auto",
|
|
2504
|
+
flexShrink: 1,
|
|
2505
|
+
backgroundColor: "transparent",
|
|
2506
|
+
borderWidth: 0,
|
|
2507
|
+
variants: {
|
|
2508
|
+
size: {
|
|
2509
|
+
"2xs": { width: 20, height: 20, borderRadius: 4 },
|
|
2510
|
+
"2xs_alt": { width: 20, height: 20, borderRadius: 4 },
|
|
2511
|
+
md: { width: 32, height: 32, borderRadius: "var(--radius-base, 8px)" }
|
|
2656
2512
|
},
|
|
2657
|
-
|
|
2658
|
-
|
|
2513
|
+
disabled: {
|
|
2514
|
+
true: {
|
|
2515
|
+
opacity: 0.4,
|
|
2516
|
+
cursor: "not-allowed",
|
|
2517
|
+
pointerEvents: "none"
|
|
2518
|
+
}
|
|
2659
2519
|
}
|
|
2660
2520
|
}
|
|
2661
|
-
);
|
|
2662
|
-
var
|
|
2521
|
+
});
|
|
2522
|
+
var VARIANT_CLASSES4 = {
|
|
2523
|
+
plain: "bg-transparent text-inherit border-none hover:bg-transparent",
|
|
2524
|
+
icon_secondary: [
|
|
2525
|
+
"bg-transparent text-icon-secondary border-none",
|
|
2526
|
+
"hover:text-hover",
|
|
2527
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2528
|
+
"data-[selected]:hover:text-hover",
|
|
2529
|
+
"data-[expanded]:text-hover"
|
|
2530
|
+
].join(" "),
|
|
2531
|
+
icon_background: [
|
|
2532
|
+
"bg-[var(--color-button-icon-background-bg)] text-icon-secondary border-none",
|
|
2533
|
+
"hover:text-hover",
|
|
2534
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text",
|
|
2535
|
+
"data-[selected]:hover:text-hover",
|
|
2536
|
+
"data-[expanded]:text-hover"
|
|
2537
|
+
].join(" "),
|
|
2538
|
+
link: [
|
|
2539
|
+
"bg-transparent text-link-primary border-none font-normal px-0 h-auto",
|
|
2540
|
+
"hover:bg-transparent hover:text-link-primary-hover",
|
|
2541
|
+
"disabled:text-text-secondary"
|
|
2542
|
+
].join(" "),
|
|
2543
|
+
dropdown: [
|
|
2544
|
+
"border-2 border-solid bg-transparent",
|
|
2545
|
+
"text-[var(--color-button-dropdown-fg)] border-[var(--color-button-dropdown-border)]",
|
|
2546
|
+
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2547
|
+
"data-[expanded]:bg-transparent data-[expanded]:text-hover data-[expanded]:border-hover",
|
|
2548
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent",
|
|
2549
|
+
"data-[selected]:hover:text-hover"
|
|
2550
|
+
].join(" "),
|
|
2551
|
+
pagination: [
|
|
2552
|
+
"border-2 border-solid bg-transparent",
|
|
2553
|
+
"text-[var(--color-button-pagination-fg)] border-[var(--color-button-pagination-border)]",
|
|
2554
|
+
"hover:bg-transparent hover:text-hover hover:border-hover",
|
|
2555
|
+
"data-[selected]:bg-selected-control-bg data-[selected]:text-selected-control-text data-[selected]:border-transparent"
|
|
2556
|
+
].join(" ")
|
|
2557
|
+
};
|
|
2558
|
+
var ICON_SIZE_CLASSES = {
|
|
2559
|
+
"2xs": "[&_svg]:size-5",
|
|
2560
|
+
"2xs_alt": "[&_svg]:size-3",
|
|
2561
|
+
md: "[&_svg]:size-5"
|
|
2562
|
+
};
|
|
2563
|
+
var SP2 = 4;
|
|
2564
|
+
var IconButton = React29__namespace.forwardRef(
|
|
2663
2565
|
function IconButton2(props, ref) {
|
|
2664
2566
|
const {
|
|
2665
2567
|
size,
|
|
@@ -2672,7 +2574,7 @@ var IconButton = React29__namespace.default.forwardRef(
|
|
|
2672
2574
|
disabled,
|
|
2673
2575
|
className,
|
|
2674
2576
|
children,
|
|
2675
|
-
as:
|
|
2577
|
+
as: _as,
|
|
2676
2578
|
style: styleProp,
|
|
2677
2579
|
// Strip Chakra style props
|
|
2678
2580
|
boxSize: _boxSize,
|
|
@@ -2685,37 +2587,47 @@ var IconButton = React29__namespace.default.forwardRef(
|
|
|
2685
2587
|
_expanded,
|
|
2686
2588
|
...rest
|
|
2687
2589
|
} = props;
|
|
2688
|
-
const SP = 4;
|
|
2689
2590
|
const shimStyle = { ...styleProp };
|
|
2690
2591
|
if (_boxSize !== void 0) {
|
|
2691
|
-
const bs = typeof _boxSize === "number" ? `${_boxSize *
|
|
2592
|
+
const bs = typeof _boxSize === "number" ? `${_boxSize * SP2}px` : _boxSize;
|
|
2692
2593
|
shimStyle.width = bs;
|
|
2693
2594
|
shimStyle.height = bs;
|
|
2694
2595
|
}
|
|
2695
2596
|
if (_color) shimStyle.color = _color;
|
|
2696
2597
|
if (_px !== void 0) {
|
|
2697
|
-
const v = typeof _px === "number" ? `${_px *
|
|
2598
|
+
const v = typeof _px === "number" ? `${_px * SP2}px` : _px;
|
|
2698
2599
|
shimStyle.paddingLeft = v;
|
|
2699
2600
|
shimStyle.paddingRight = v;
|
|
2700
2601
|
}
|
|
2701
2602
|
if (_borderRadius) shimStyle.borderRadius = _borderRadius;
|
|
2702
|
-
if (_ml !== void 0) shimStyle.marginLeft = typeof _ml === "number" ? `${_ml *
|
|
2703
|
-
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr *
|
|
2704
|
-
const
|
|
2603
|
+
if (_ml !== void 0) shimStyle.marginLeft = typeof _ml === "number" ? `${_ml * SP2}px` : _ml;
|
|
2604
|
+
if (_mr !== void 0) shimStyle.marginRight = typeof _mr === "number" ? `${_mr * SP2}px` : _mr;
|
|
2605
|
+
const mergedStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
|
|
2606
|
+
const variantClass = VARIANT_CLASSES4[variant] ?? VARIANT_CLASSES4.plain;
|
|
2607
|
+
const iconSizeClass = size ? ICON_SIZE_CLASSES[size] ?? "" : "";
|
|
2608
|
+
const combinedClassName = [variantClass, iconSizeClass, className].filter(Boolean).join(" ");
|
|
2705
2609
|
const button = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2706
|
-
|
|
2610
|
+
IconButtonFrame,
|
|
2707
2611
|
{
|
|
2708
2612
|
ref,
|
|
2709
|
-
|
|
2710
|
-
disabled: !loadingSkeleton && (loading || disabled),
|
|
2711
|
-
|
|
2712
|
-
|
|
2613
|
+
size,
|
|
2614
|
+
disabled: !loadingSkeleton && (loading || disabled) || void 0,
|
|
2615
|
+
render: _as ? React29__namespace.createElement(_as) : void 0,
|
|
2616
|
+
className: combinedClassName,
|
|
2617
|
+
style: mergedStyle,
|
|
2713
2618
|
...expanded ? { "data-expanded": true } : {},
|
|
2714
2619
|
...selected ? { "data-selected": true } : {},
|
|
2715
2620
|
...highlighted ? { "data-highlighted": true } : {},
|
|
2716
2621
|
...loadingSkeleton ? { "data-loading-skeleton": true } : {},
|
|
2717
2622
|
...rest,
|
|
2718
|
-
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2623
|
+
children: loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2624
|
+
"span",
|
|
2625
|
+
{
|
|
2626
|
+
className: "inline-block size-5 animate-spin rounded-full border-2 border-current border-b-transparent border-l-transparent",
|
|
2627
|
+
role: "status",
|
|
2628
|
+
"aria-label": "Loading"
|
|
2629
|
+
}
|
|
2630
|
+
) : children
|
|
2719
2631
|
}
|
|
2720
2632
|
);
|
|
2721
2633
|
if (loadingSkeleton) {
|
|
@@ -3531,8 +3443,7 @@ var PopoverRoot = (props) => {
|
|
|
3531
3443
|
positioning,
|
|
3532
3444
|
autoFocus = false,
|
|
3533
3445
|
closeOnInteractOutside = true,
|
|
3534
|
-
|
|
3535
|
-
// lazyMount and unmountOnExit are handled via forceMount on Portal/Content
|
|
3446
|
+
// lazyMount and unmountOnExit are handled via keepChildrenMounted
|
|
3536
3447
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
3537
3448
|
lazyMount: _lazyMount,
|
|
3538
3449
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -3568,23 +3479,27 @@ var PopoverRoot = (props) => {
|
|
|
3568
3479
|
const handleOpenChange = React29__namespace.useCallback((isOpen) => {
|
|
3569
3480
|
onOpenChange?.({ open: isOpen });
|
|
3570
3481
|
}, [onOpenChange]);
|
|
3482
|
+
const placement = mergedPositioning.placement ?? "bottom-start";
|
|
3483
|
+
const offset = mergedPositioning.offset?.mainAxis ?? 4;
|
|
3571
3484
|
return /* @__PURE__ */ jsxRuntime.jsx(PositioningContext2.Provider, { value: positioningValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3572
|
-
|
|
3485
|
+
popover.Popover,
|
|
3573
3486
|
{
|
|
3574
3487
|
open,
|
|
3575
3488
|
defaultOpen,
|
|
3576
3489
|
onOpenChange: handleOpenChange,
|
|
3577
|
-
|
|
3490
|
+
placement,
|
|
3491
|
+
offset,
|
|
3492
|
+
disableFocus: !autoFocus,
|
|
3578
3493
|
children
|
|
3579
3494
|
}
|
|
3580
3495
|
) });
|
|
3581
3496
|
};
|
|
3582
3497
|
var PopoverTrigger = React29__namespace.forwardRef(function PopoverTrigger2(props, ref) {
|
|
3583
3498
|
const { asChild = true, ...rest } = props;
|
|
3584
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3499
|
+
return /* @__PURE__ */ jsxRuntime.jsx(popover.Popover.Trigger, { asChild: asChild ? "except-style" : void 0, ref, ...rest });
|
|
3585
3500
|
});
|
|
3586
3501
|
var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(props, ref) {
|
|
3587
|
-
const { portalled = true, portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
|
|
3502
|
+
const { portalled = true, portalRef: _portalRef, className, w, minW, maxW, paddingTop, style: styleProp, ...rest } = props;
|
|
3588
3503
|
const resolvedW = typeof w === "object" ? w.base ?? w.lg : w;
|
|
3589
3504
|
const contentStyle = {
|
|
3590
3505
|
...styleProp,
|
|
@@ -3593,20 +3508,11 @@ var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(prop
|
|
|
3593
3508
|
...maxW ? { maxWidth: maxW } : {},
|
|
3594
3509
|
...paddingTop !== void 0 ? { paddingTop: typeof paddingTop === "number" ? `${paddingTop * 4}px` : paddingTop } : {}
|
|
3595
3510
|
};
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
const preventInteract = React29__namespace.useCallback((e) => e.preventDefault(), []);
|
|
3599
|
-
const content = /* @__PURE__ */ jsxRuntime.jsx(
|
|
3600
|
-
RadixPopover__namespace.Content,
|
|
3511
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3512
|
+
popover.Popover.Content,
|
|
3601
3513
|
{
|
|
3602
3514
|
ref,
|
|
3603
|
-
|
|
3604
|
-
align: positioning.align,
|
|
3605
|
-
sideOffset: positioning.sideOffset,
|
|
3606
|
-
alignOffset: positioning.alignOffset,
|
|
3607
|
-
collisionPadding: positioning.collisionPadding,
|
|
3608
|
-
onOpenAutoFocus: positioning.autoFocus ? void 0 : preventFocus,
|
|
3609
|
-
onInteractOutside: positioning.closeOnInteractOutside ? void 0 : preventInteract,
|
|
3515
|
+
unstyled: true,
|
|
3610
3516
|
className: cn(
|
|
3611
3517
|
"z-50 rounded-lg border border-[var(--color-popover-border,var(--color-border-divider))]",
|
|
3612
3518
|
"bg-[var(--color-popover-bg,var(--color-dialog-bg))]",
|
|
@@ -3622,17 +3528,14 @@ var PopoverContent = React29__namespace.forwardRef(function PopoverContent2(prop
|
|
|
3622
3528
|
...rest
|
|
3623
3529
|
}
|
|
3624
3530
|
);
|
|
3625
|
-
if (!portalled) {
|
|
3626
|
-
return content;
|
|
3627
|
-
}
|
|
3628
|
-
return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Portal, { container: portalRef?.current ?? void 0, children: content });
|
|
3629
3531
|
});
|
|
3630
3532
|
var PopoverArrow = React29__namespace.forwardRef(function PopoverArrow2(props, ref) {
|
|
3631
3533
|
const { className, ...rest } = props;
|
|
3632
3534
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3633
|
-
|
|
3535
|
+
popover.Popover.Arrow,
|
|
3634
3536
|
{
|
|
3635
3537
|
ref,
|
|
3538
|
+
unstyled: true,
|
|
3636
3539
|
className: cn("fill-[var(--color-popover-bg,var(--color-dialog-bg))]", className),
|
|
3637
3540
|
...rest
|
|
3638
3541
|
}
|
|
@@ -3641,8 +3544,9 @@ var PopoverArrow = React29__namespace.forwardRef(function PopoverArrow2(props, r
|
|
|
3641
3544
|
var PopoverCloseTrigger = React29__namespace.forwardRef(function PopoverCloseTrigger2(props, ref) {
|
|
3642
3545
|
const { className, ...rest } = props;
|
|
3643
3546
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3644
|
-
|
|
3547
|
+
popover.Popover.Close,
|
|
3645
3548
|
{
|
|
3549
|
+
unstyled: true,
|
|
3646
3550
|
className: cn("absolute top-1 right-1", className),
|
|
3647
3551
|
...rest,
|
|
3648
3552
|
asChild: true,
|
|
@@ -3656,7 +3560,7 @@ var PopoverCloseTriggerWrapper = React29__namespace.forwardRef(function PopoverC
|
|
|
3656
3560
|
if (disabled) {
|
|
3657
3561
|
return children;
|
|
3658
3562
|
}
|
|
3659
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3563
|
+
return /* @__PURE__ */ jsxRuntime.jsx(popover.Popover.Close, { ref, ...rest, asChild: true, children });
|
|
3660
3564
|
});
|
|
3661
3565
|
var PopoverBody = React29__namespace.forwardRef(function PopoverBody2(props, ref) {
|
|
3662
3566
|
const {
|
|
@@ -3740,7 +3644,7 @@ var PopoverDescription = React29__namespace.forwardRef(function PopoverDescripti
|
|
|
3740
3644
|
}
|
|
3741
3645
|
);
|
|
3742
3646
|
});
|
|
3743
|
-
var
|
|
3647
|
+
var SIZE_CLASSES6 = {
|
|
3744
3648
|
sm: "h-1",
|
|
3745
3649
|
md: "h-2",
|
|
3746
3650
|
lg: "h-3",
|
|
@@ -3798,7 +3702,7 @@ var Progress = React29__namespace.forwardRef(
|
|
|
3798
3702
|
className: cn(
|
|
3799
3703
|
"w-full overflow-hidden rounded-full",
|
|
3800
3704
|
"bg-[var(--color-progress-track)]",
|
|
3801
|
-
|
|
3705
|
+
SIZE_CLASSES6[size],
|
|
3802
3706
|
trackProps?.className
|
|
3803
3707
|
),
|
|
3804
3708
|
style: trackStyle,
|
|
@@ -3937,7 +3841,7 @@ var ProgressCircleValueText = React29__namespace.forwardRef(function ProgressCir
|
|
|
3937
3841
|
}
|
|
3938
3842
|
);
|
|
3939
3843
|
});
|
|
3940
|
-
var
|
|
3844
|
+
var SIZE_CLASSES7 = {
|
|
3941
3845
|
xs: {
|
|
3942
3846
|
root: "gap-1.5",
|
|
3943
3847
|
control: "h-3 w-3",
|
|
@@ -4018,7 +3922,7 @@ var RadioBase = React29__namespace.forwardRef(
|
|
|
4018
3922
|
function Radio(props, ref) {
|
|
4019
3923
|
const { children, inputProps, rootRef, value, disabled, className, ...rest } = props;
|
|
4020
3924
|
const size = React29__namespace.useContext(RadioSizeContext);
|
|
4021
|
-
const sizeClasses2 =
|
|
3925
|
+
const sizeClasses2 = SIZE_CLASSES7[size];
|
|
4022
3926
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4023
3927
|
"label",
|
|
4024
3928
|
{
|
|
@@ -4533,7 +4437,7 @@ var SelectAsync = React29__namespace.forwardRef((props, ref) => {
|
|
|
4533
4437
|
}
|
|
4534
4438
|
);
|
|
4535
4439
|
});
|
|
4536
|
-
var
|
|
4440
|
+
var VARIANT_CLASSES5 = {
|
|
4537
4441
|
solid: "border-solid",
|
|
4538
4442
|
dashed: "border-dashed",
|
|
4539
4443
|
dotted: "border-dotted"
|
|
@@ -4562,7 +4466,7 @@ var Separator2 = React29__namespace.default.forwardRef(
|
|
|
4562
4466
|
className: cn(
|
|
4563
4467
|
"border-[var(--color-border-divider)]",
|
|
4564
4468
|
"border-0",
|
|
4565
|
-
|
|
4469
|
+
VARIANT_CLASSES5[variant],
|
|
4566
4470
|
isVertical ? VERTICAL_SIZE_CLASSES[size] : HORIZONTAL_SIZE_CLASSES[size],
|
|
4567
4471
|
isVertical ? "self-stretch h-auto w-0" : "w-full",
|
|
4568
4472
|
className
|
|
@@ -4676,7 +4580,7 @@ function SliderMarks(props) {
|
|
|
4676
4580
|
}
|
|
4677
4581
|
var NOOP3 = () => {
|
|
4678
4582
|
};
|
|
4679
|
-
var
|
|
4583
|
+
var SIZE_CLASSES8 = {
|
|
4680
4584
|
sm: {
|
|
4681
4585
|
root: "h-4 w-7",
|
|
4682
4586
|
thumb: "h-3 w-3 data-[state=checked]:translate-x-3",
|
|
@@ -4726,7 +4630,7 @@ var SwitchBase = React29__namespace.forwardRef(
|
|
|
4726
4630
|
},
|
|
4727
4631
|
[isControlled, onCheckedChange]
|
|
4728
4632
|
);
|
|
4729
|
-
const sizeClasses2 =
|
|
4633
|
+
const sizeClasses2 = SIZE_CLASSES8[size];
|
|
4730
4634
|
const isRtl = direction === "rtl";
|
|
4731
4635
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4732
4636
|
"label",
|
|
@@ -4802,11 +4706,11 @@ var SwitchBase = React29__namespace.forwardRef(
|
|
|
4802
4706
|
);
|
|
4803
4707
|
var Switch2 = SwitchBase;
|
|
4804
4708
|
var ArrowIcon3 = ({ className }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { className, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 12h14M12 5l7 7-7 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
4805
|
-
var
|
|
4709
|
+
var SPACING_SCALE = 4;
|
|
4806
4710
|
function toPixels(value) {
|
|
4807
4711
|
if (value === void 0) return void 0;
|
|
4808
4712
|
if (typeof value === "string") return value;
|
|
4809
|
-
return `${value *
|
|
4713
|
+
return `${value * SPACING_SCALE}px`;
|
|
4810
4714
|
}
|
|
4811
4715
|
function extractStyles(props) {
|
|
4812
4716
|
const style = {};
|
|
@@ -5649,7 +5553,7 @@ var Toaster = () => {
|
|
|
5649
5553
|
}
|
|
5650
5554
|
);
|
|
5651
5555
|
};
|
|
5652
|
-
function
|
|
5556
|
+
function Provider(props) {
|
|
5653
5557
|
return /* @__PURE__ */ jsxRuntime.jsx(ColorModeProvider, { ...props });
|
|
5654
5558
|
}
|
|
5655
5559
|
function fmt(n, decimals = 2) {
|
|
@@ -7264,7 +7168,7 @@ exports.Progress = Progress;
|
|
|
7264
7168
|
exports.ProgressCircleRing = ProgressCircleRing;
|
|
7265
7169
|
exports.ProgressCircleRoot = ProgressCircleRoot;
|
|
7266
7170
|
exports.ProgressCircleValueText = ProgressCircleValueText;
|
|
7267
|
-
exports.Provider =
|
|
7171
|
+
exports.Provider = Provider;
|
|
7268
7172
|
exports.Radio = Radio2;
|
|
7269
7173
|
exports.RadioGroup = RadioGroup3;
|
|
7270
7174
|
exports.Rating = Rating;
|