@maxsteinwender/sort-ui 1.0.7 → 1.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/index.d.mts +63 -1
- package/dist/index.d.ts +63 -1
- package/dist/index.js +662 -542
- package/dist/index.mjs +661 -541
- package/dist/styles.css +294 -212
- package/dist/tailwind-preset.js +13 -0
- package/dist/tailwind-preset.mjs +13 -0
- package/package.json +4 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
2
|
+
import * as React78 from 'react';
|
|
3
3
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
@@ -79,11 +79,11 @@ var accordionItemVariants = cva(
|
|
|
79
79
|
"shadow-card",
|
|
80
80
|
/* inset bottom shadow via combined card token */
|
|
81
81
|
"relative after:pointer-events-none after:absolute after:inset-0 after:rounded-[inherit]",
|
|
82
|
-
"hover:bg-sui-bg-state-secondary-hover"
|
|
82
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover"
|
|
83
83
|
],
|
|
84
84
|
soft: [
|
|
85
85
|
"bg-sui-bg-state-soft rounded-card-sm",
|
|
86
|
-
"hover:bg-sui-bg-state-soft-hover",
|
|
86
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover",
|
|
87
87
|
/* always-present border prevents layout shift on open */
|
|
88
88
|
"border border-transparent",
|
|
89
89
|
/* opened → switches to secondary/card appearance */
|
|
@@ -92,11 +92,11 @@ var accordionItemVariants = cva(
|
|
|
92
92
|
"data-[state=open]:border-sui-border-default",
|
|
93
93
|
"data-[state=open]:shadow-card",
|
|
94
94
|
"data-[state=open]:after:shadow-none",
|
|
95
|
-
"data-[state=open]:hover:bg-sui-bg-state-secondary-hover"
|
|
95
|
+
"data-[state=open]:[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover"
|
|
96
96
|
],
|
|
97
97
|
ghost: [
|
|
98
98
|
"bg-sui-bg-state-ghost rounded-card-sm",
|
|
99
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
99
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
100
100
|
/* always-present border prevents layout shift on open */
|
|
101
101
|
"border border-transparent",
|
|
102
102
|
/* opened → switches to secondary/card appearance */
|
|
@@ -105,11 +105,11 @@ var accordionItemVariants = cva(
|
|
|
105
105
|
"data-[state=open]:border-sui-border-default",
|
|
106
106
|
"data-[state=open]:shadow-card",
|
|
107
107
|
"data-[state=open]:after:shadow-none",
|
|
108
|
-
"data-[state=open]:hover:bg-sui-bg-state-secondary-hover"
|
|
108
|
+
"data-[state=open]:[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover"
|
|
109
109
|
],
|
|
110
110
|
line: [
|
|
111
111
|
"border-b border-sui-border-default",
|
|
112
|
-
"hover:border-sui-border-strong"
|
|
112
|
+
"[@media(hover:hover)]:hover:border-sui-border-strong"
|
|
113
113
|
]
|
|
114
114
|
}
|
|
115
115
|
},
|
|
@@ -118,7 +118,7 @@ var accordionItemVariants = cva(
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
);
|
|
121
|
-
var AccordionItem =
|
|
121
|
+
var AccordionItem = React78.forwardRef((_a, ref) => {
|
|
122
122
|
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
123
123
|
return /* @__PURE__ */ jsx(
|
|
124
124
|
AccordionPrimitive.Item,
|
|
@@ -129,7 +129,7 @@ var AccordionItem = React77.forwardRef((_a, ref) => {
|
|
|
129
129
|
);
|
|
130
130
|
});
|
|
131
131
|
AccordionItem.displayName = "AccordionItem";
|
|
132
|
-
var AccordionTrigger =
|
|
132
|
+
var AccordionTrigger = React78.forwardRef((_a, ref) => {
|
|
133
133
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
134
134
|
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
135
135
|
AccordionPrimitive.Trigger,
|
|
@@ -151,7 +151,7 @@ var AccordionTrigger = React77.forwardRef((_a, ref) => {
|
|
|
151
151
|
) });
|
|
152
152
|
});
|
|
153
153
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
154
|
-
var AccordionContent =
|
|
154
|
+
var AccordionContent = React78.forwardRef((_a, ref) => {
|
|
155
155
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
156
156
|
return /* @__PURE__ */ jsx(
|
|
157
157
|
AccordionPrimitive.Content,
|
|
@@ -196,7 +196,7 @@ var alertVariants = cva(
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
);
|
|
199
|
-
var Alert =
|
|
199
|
+
var Alert = React78.forwardRef((_a, ref) => {
|
|
200
200
|
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
201
201
|
return /* @__PURE__ */ jsx(
|
|
202
202
|
"div",
|
|
@@ -208,7 +208,7 @@ var Alert = React77.forwardRef((_a, ref) => {
|
|
|
208
208
|
);
|
|
209
209
|
});
|
|
210
210
|
Alert.displayName = "Alert";
|
|
211
|
-
var AlertTitle =
|
|
211
|
+
var AlertTitle = React78.forwardRef((_a, ref) => {
|
|
212
212
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
213
213
|
return /* @__PURE__ */ jsx(
|
|
214
214
|
"h5",
|
|
@@ -219,7 +219,7 @@ var AlertTitle = React77.forwardRef((_a, ref) => {
|
|
|
219
219
|
);
|
|
220
220
|
});
|
|
221
221
|
AlertTitle.displayName = "AlertTitle";
|
|
222
|
-
var AlertDescription =
|
|
222
|
+
var AlertDescription = React78.forwardRef((_a, ref) => {
|
|
223
223
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
224
224
|
return /* @__PURE__ */ jsx(
|
|
225
225
|
"div",
|
|
@@ -230,6 +230,19 @@ var AlertDescription = React77.forwardRef((_a, ref) => {
|
|
|
230
230
|
);
|
|
231
231
|
});
|
|
232
232
|
AlertDescription.displayName = "AlertDescription";
|
|
233
|
+
function useDevWarnIconOnlyAriaLabel(isIconOnly, ariaLabel, ariaLabelledBy, componentName) {
|
|
234
|
+
const warnedRef = React78.useRef(false);
|
|
235
|
+
React78.useEffect(() => {
|
|
236
|
+
if (process.env.NODE_ENV === "production") return;
|
|
237
|
+
if (warnedRef.current) return;
|
|
238
|
+
if (!isIconOnly) return;
|
|
239
|
+
if (ariaLabel || ariaLabelledBy) return;
|
|
240
|
+
console.warn(
|
|
241
|
+
`[Sort UI] <${componentName}> with iconOnly is missing an aria-label. Screen reader users will have no accessible name for this control. Pass aria-label (or aria-labelledby) describing the action. See Web Interface Guidelines #47.`
|
|
242
|
+
);
|
|
243
|
+
warnedRef.current = true;
|
|
244
|
+
}, [isIconOnly, ariaLabel, ariaLabelledBy, componentName]);
|
|
245
|
+
}
|
|
233
246
|
var buttonVariants = cva(
|
|
234
247
|
// Sort UI base: font-medium, Remixicon via [&_i], SVG via [&_svg]; shape variant controls border-radius
|
|
235
248
|
// ghost + ghost-muted hover intentionally identical per Sort UI spec
|
|
@@ -349,13 +362,13 @@ var loadingTextColorMap = {
|
|
|
349
362
|
"ghost-muted": "text-sui-text-muted"
|
|
350
363
|
};
|
|
351
364
|
var loadingShadowVariants = /* @__PURE__ */ new Set(["default", "outline", "destructive"]);
|
|
352
|
-
var Button =
|
|
353
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
365
|
+
var Button = React78.forwardRef(
|
|
354
366
|
(_a, ref) => {
|
|
355
367
|
var _b = _a, { className, variant, size, shape, iconOnly, loading, leadIcon: _leadIcon, tailIcon: _tailIcon, badgeLeft: _badgeLeft, badgeRight: _badgeRight, asChild = false, children, showSeparator: _showSeparator } = _b, props = __objRest(_b, ["className", "variant", "size", "shape", "iconOnly", "loading", "leadIcon", "tailIcon", "badgeLeft", "badgeRight", "asChild", "children", "showSeparator"]);
|
|
356
368
|
const Comp = asChild ? Slot : "button";
|
|
357
369
|
const resolvedSize = size != null ? size : "lg";
|
|
358
370
|
const resolvedVariant = variant != null ? variant : "default";
|
|
371
|
+
useDevWarnIconOnlyAriaLabel(iconOnly, props["aria-label"], props["aria-labelledby"], "Button");
|
|
359
372
|
const isLoading = loading && !asChild;
|
|
360
373
|
const hasBadges = !iconOnly && !asChild;
|
|
361
374
|
const badgeColor = badgeColorMap[resolvedVariant];
|
|
@@ -420,7 +433,7 @@ Button.displayName = "Button";
|
|
|
420
433
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
421
434
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
422
435
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
423
|
-
var AlertDialogOverlay =
|
|
436
|
+
var AlertDialogOverlay = React78.forwardRef((_a, ref) => {
|
|
424
437
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
425
438
|
return /* @__PURE__ */ jsx(
|
|
426
439
|
AlertDialogPrimitive.Overlay,
|
|
@@ -435,7 +448,7 @@ var AlertDialogOverlay = React77.forwardRef((_a, ref) => {
|
|
|
435
448
|
);
|
|
436
449
|
});
|
|
437
450
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
438
|
-
var AlertDialogContent =
|
|
451
|
+
var AlertDialogContent = React78.forwardRef((_a, ref) => {
|
|
439
452
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
440
453
|
return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
441
454
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
@@ -486,7 +499,7 @@ var AlertDialogFooter = (_a) => {
|
|
|
486
499
|
);
|
|
487
500
|
};
|
|
488
501
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
489
|
-
var AlertDialogTitle =
|
|
502
|
+
var AlertDialogTitle = React78.forwardRef((_a, ref) => {
|
|
490
503
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
491
504
|
return /* @__PURE__ */ jsx(
|
|
492
505
|
AlertDialogPrimitive.Title,
|
|
@@ -497,7 +510,7 @@ var AlertDialogTitle = React77.forwardRef((_a, ref) => {
|
|
|
497
510
|
);
|
|
498
511
|
});
|
|
499
512
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
500
|
-
var AlertDialogDescription =
|
|
513
|
+
var AlertDialogDescription = React78.forwardRef((_a, ref) => {
|
|
501
514
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
502
515
|
return /* @__PURE__ */ jsx(
|
|
503
516
|
AlertDialogPrimitive.Description,
|
|
@@ -508,7 +521,7 @@ var AlertDialogDescription = React77.forwardRef((_a, ref) => {
|
|
|
508
521
|
);
|
|
509
522
|
});
|
|
510
523
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
511
|
-
var AlertDialogAction =
|
|
524
|
+
var AlertDialogAction = React78.forwardRef((_a, ref) => {
|
|
512
525
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
513
526
|
return /* @__PURE__ */ jsx(
|
|
514
527
|
AlertDialogPrimitive.Action,
|
|
@@ -519,7 +532,7 @@ var AlertDialogAction = React77.forwardRef((_a, ref) => {
|
|
|
519
532
|
);
|
|
520
533
|
});
|
|
521
534
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
522
|
-
var AlertDialogCancel =
|
|
535
|
+
var AlertDialogCancel = React78.forwardRef((_a, ref) => {
|
|
523
536
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
524
537
|
return /* @__PURE__ */ jsx(
|
|
525
538
|
AlertDialogPrimitive.Cancel,
|
|
@@ -558,11 +571,11 @@ var awayIconSize = {
|
|
|
558
571
|
"lg": "14px",
|
|
559
572
|
"default": "16px"
|
|
560
573
|
};
|
|
561
|
-
var StatusBadge =
|
|
574
|
+
var StatusBadge = React78.forwardRef(
|
|
562
575
|
(_a, ref) => {
|
|
563
576
|
var _b = _a, { variant, size = "default", src, className } = _b, props = __objRest(_b, ["variant", "size", "src", "className"]);
|
|
564
|
-
const [imgError, setImgError] =
|
|
565
|
-
|
|
577
|
+
const [imgError, setImgError] = React78.useState(false);
|
|
578
|
+
React78.useEffect(() => {
|
|
566
579
|
setImgError(false);
|
|
567
580
|
}, [src]);
|
|
568
581
|
const sizeClass = containerSize[size];
|
|
@@ -775,12 +788,12 @@ function extractInitials(value) {
|
|
|
775
788
|
}
|
|
776
789
|
return trimmed.slice(0, 2).toUpperCase();
|
|
777
790
|
}
|
|
778
|
-
var AvatarContext =
|
|
791
|
+
var AvatarContext = React78.createContext({
|
|
779
792
|
size: "md",
|
|
780
793
|
shape: "circular",
|
|
781
794
|
color: "gray"
|
|
782
795
|
});
|
|
783
|
-
var Avatar =
|
|
796
|
+
var Avatar = React78.forwardRef((_a, ref) => {
|
|
784
797
|
var _b = _a, {
|
|
785
798
|
className,
|
|
786
799
|
size = "md",
|
|
@@ -934,7 +947,7 @@ var Avatar = React77.forwardRef((_a, ref) => {
|
|
|
934
947
|
) });
|
|
935
948
|
});
|
|
936
949
|
Avatar.displayName = "Avatar";
|
|
937
|
-
var AvatarImage =
|
|
950
|
+
var AvatarImage = React78.forwardRef((_a, ref) => {
|
|
938
951
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
939
952
|
return /* @__PURE__ */ jsx(
|
|
940
953
|
AvatarPrimitive.Image,
|
|
@@ -945,10 +958,10 @@ var AvatarImage = React77.forwardRef((_a, ref) => {
|
|
|
945
958
|
);
|
|
946
959
|
});
|
|
947
960
|
AvatarImage.displayName = "AvatarImage";
|
|
948
|
-
var AvatarFallback =
|
|
961
|
+
var AvatarFallback = React78.forwardRef((_a, ref) => {
|
|
949
962
|
var _b = _a, { className, fallback, children } = _b, props = __objRest(_b, ["className", "fallback", "children"]);
|
|
950
963
|
var _a2, _b2, _c;
|
|
951
|
-
const { size, shape, color } =
|
|
964
|
+
const { size, shape, color } = React78.useContext(AvatarContext);
|
|
952
965
|
const shapeClass = shape === "rounded" ? "rounded-sm" : "rounded-full";
|
|
953
966
|
const fontClass = (_a2 = initialsFontSize[size]) != null ? _a2 : "text-sm";
|
|
954
967
|
const iconClass = (_b2 = iconSize[size]) != null ? _b2 : "text-lg";
|
|
@@ -982,8 +995,8 @@ var avatarButtonVariants = cva(
|
|
|
982
995
|
{
|
|
983
996
|
variants: {
|
|
984
997
|
variant: {
|
|
985
|
-
default: "bg-sui-bg-state-secondary border border-sui-border-darker shadow-default hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press disabled:bg-sui-bg-state-disabled disabled:border-sui-border-default disabled:shadow-none",
|
|
986
|
-
soft: "bg-sui-bg-state-soft hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press"
|
|
998
|
+
default: "bg-sui-bg-state-secondary border border-sui-border-darker shadow-default [@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press disabled:bg-sui-bg-state-disabled disabled:border-sui-border-default disabled:shadow-none",
|
|
999
|
+
soft: "bg-sui-bg-state-soft [@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover active:bg-sui-bg-state-soft-press"
|
|
987
1000
|
},
|
|
988
1001
|
size: {
|
|
989
1002
|
// py-1.5 (6px × 2) + avatar 20px = 32px visible; after:-inset-y-1.5 adds 6px top+bottom → 44px hit area
|
|
@@ -998,7 +1011,7 @@ var avatarButtonVariants = cva(
|
|
|
998
1011
|
}
|
|
999
1012
|
}
|
|
1000
1013
|
);
|
|
1001
|
-
var AvatarButton =
|
|
1014
|
+
var AvatarButton = React78.forwardRef(
|
|
1002
1015
|
(_a, ref) => {
|
|
1003
1016
|
var _b = _a, {
|
|
1004
1017
|
className,
|
|
@@ -1092,7 +1105,7 @@ var paddingBySize = {
|
|
|
1092
1105
|
"2xl": "pr-sui-10",
|
|
1093
1106
|
"3xl": "pr-sui-12"
|
|
1094
1107
|
};
|
|
1095
|
-
var AvatarGroup =
|
|
1108
|
+
var AvatarGroup = React78.forwardRef(
|
|
1096
1109
|
(_a, ref) => {
|
|
1097
1110
|
var _b = _a, { className, size = "md", stacking = "last-on-top", items } = _b, props = __objRest(_b, ["className", "size", "stacking", "items"]);
|
|
1098
1111
|
const isFirstOnTop = stacking === "first-on-top";
|
|
@@ -1134,7 +1147,7 @@ var AvatarGroup = React77.forwardRef(
|
|
|
1134
1147
|
}
|
|
1135
1148
|
);
|
|
1136
1149
|
AvatarGroup.displayName = "AvatarGroup";
|
|
1137
|
-
var AvatarUpload =
|
|
1150
|
+
var AvatarUpload = React78.forwardRef(
|
|
1138
1151
|
({
|
|
1139
1152
|
src,
|
|
1140
1153
|
alt = "",
|
|
@@ -1202,8 +1215,8 @@ var controlButtonVariants = cva(
|
|
|
1202
1215
|
{
|
|
1203
1216
|
variants: {
|
|
1204
1217
|
variant: {
|
|
1205
|
-
default: "text-icon-default-muted bg-transparent hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
1206
|
-
inverted: "text-icon-inverted-default bg-transparent hover:bg-sui-bg-state-ghost-hover-inverted active:bg-sui-bg-state-ghost-press-inverted"
|
|
1218
|
+
default: "text-icon-default-muted bg-transparent [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
1219
|
+
inverted: "text-icon-inverted-default bg-transparent [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover-inverted active:bg-sui-bg-state-ghost-press-inverted"
|
|
1207
1220
|
},
|
|
1208
1221
|
size: {
|
|
1209
1222
|
// lg: 24px — meets WCAG 2.5.8 AA minimum (24×24px)
|
|
@@ -1227,7 +1240,7 @@ var controlButtonVariants = cva(
|
|
|
1227
1240
|
}
|
|
1228
1241
|
}
|
|
1229
1242
|
);
|
|
1230
|
-
var ControlButton =
|
|
1243
|
+
var ControlButton = React78.forwardRef(
|
|
1231
1244
|
(_a, ref) => {
|
|
1232
1245
|
var _b = _a, {
|
|
1233
1246
|
className,
|
|
@@ -1395,12 +1408,12 @@ function Badge(_a) {
|
|
|
1395
1408
|
})
|
|
1396
1409
|
);
|
|
1397
1410
|
}
|
|
1398
|
-
var Breadcrumb =
|
|
1411
|
+
var Breadcrumb = React78.forwardRef((_a, ref) => {
|
|
1399
1412
|
var props = __objRest(_a, []);
|
|
1400
1413
|
return /* @__PURE__ */ jsx("nav", __spreadValues({ ref, "aria-label": "breadcrumb" }, props));
|
|
1401
1414
|
});
|
|
1402
1415
|
Breadcrumb.displayName = "Breadcrumb";
|
|
1403
|
-
var BreadcrumbList =
|
|
1416
|
+
var BreadcrumbList = React78.forwardRef((_a, ref) => {
|
|
1404
1417
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
1405
1418
|
return /* @__PURE__ */ jsx(
|
|
1406
1419
|
"ol",
|
|
@@ -1414,7 +1427,7 @@ var BreadcrumbList = React77.forwardRef((_a, ref) => {
|
|
|
1414
1427
|
);
|
|
1415
1428
|
});
|
|
1416
1429
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
1417
|
-
var BreadcrumbItem =
|
|
1430
|
+
var BreadcrumbItem = React78.forwardRef((_a, ref) => {
|
|
1418
1431
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
1419
1432
|
return /* @__PURE__ */ jsx(
|
|
1420
1433
|
"li",
|
|
@@ -1425,7 +1438,7 @@ var BreadcrumbItem = React77.forwardRef((_a, ref) => {
|
|
|
1425
1438
|
);
|
|
1426
1439
|
});
|
|
1427
1440
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
1428
|
-
var BreadcrumbLink =
|
|
1441
|
+
var BreadcrumbLink = React78.forwardRef((_a, ref) => {
|
|
1429
1442
|
var _b = _a, { asChild, className } = _b, props = __objRest(_b, ["asChild", "className"]);
|
|
1430
1443
|
const Comp = asChild ? Slot : "a";
|
|
1431
1444
|
return /* @__PURE__ */ jsx(
|
|
@@ -1433,14 +1446,15 @@ var BreadcrumbLink = React77.forwardRef((_a, ref) => {
|
|
|
1433
1446
|
__spreadValues({
|
|
1434
1447
|
ref,
|
|
1435
1448
|
className: cn(
|
|
1436
|
-
|
|
1449
|
+
// Web Interface Guidelines #42 — focus ring via box-shadow (ring), not outline.
|
|
1450
|
+
"rounded-sm transition-colors [@media(hover:hover)]:hover:text-sui-text-default focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-sui-border-highlight",
|
|
1437
1451
|
className
|
|
1438
1452
|
)
|
|
1439
1453
|
}, props)
|
|
1440
1454
|
);
|
|
1441
1455
|
});
|
|
1442
1456
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
1443
|
-
var BreadcrumbPage =
|
|
1457
|
+
var BreadcrumbPage = React78.forwardRef((_a, ref) => {
|
|
1444
1458
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
1445
1459
|
return /* @__PURE__ */ jsx(
|
|
1446
1460
|
"span",
|
|
@@ -1512,7 +1526,7 @@ function BreadcrumbDivider({ variant }) {
|
|
|
1512
1526
|
variant === "dot" && /* @__PURE__ */ jsx("span", { className: "size-1 rounded-full bg-sui-text-muted" })
|
|
1513
1527
|
] });
|
|
1514
1528
|
}
|
|
1515
|
-
var SortBreadcrumb =
|
|
1529
|
+
var SortBreadcrumb = React78.forwardRef(
|
|
1516
1530
|
({ items, variant = "slash", className }, ref) => {
|
|
1517
1531
|
return /* @__PURE__ */ jsx("nav", { ref, "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx(
|
|
1518
1532
|
"ol",
|
|
@@ -1523,7 +1537,7 @@ var SortBreadcrumb = React77.forwardRef(
|
|
|
1523
1537
|
),
|
|
1524
1538
|
children: items.map((item, index) => {
|
|
1525
1539
|
const isLast = index === items.length - 1;
|
|
1526
|
-
return /* @__PURE__ */ jsxs(
|
|
1540
|
+
return /* @__PURE__ */ jsxs(React78.Fragment, { children: [
|
|
1527
1541
|
/* @__PURE__ */ jsx("li", { className: "inline-flex", children: /* @__PURE__ */ jsx(
|
|
1528
1542
|
SortBreadcrumbItem,
|
|
1529
1543
|
__spreadProps(__spreadValues({}, item), {
|
|
@@ -1559,7 +1573,8 @@ function SortBreadcrumbItem({
|
|
|
1559
1573
|
className: cn(
|
|
1560
1574
|
"inline-flex items-center select-none",
|
|
1561
1575
|
type === "avatar" ? "gap-sui-6" : "gap-sui-4",
|
|
1562
|
-
|
|
1576
|
+
// Web Interface Guidelines #42 — focus ring via box-shadow (ring), not outline.
|
|
1577
|
+
Comp === "a" && "rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default",
|
|
1563
1578
|
className
|
|
1564
1579
|
)
|
|
1565
1580
|
}), isCurrent ? { "aria-current": "page" } : {}), {
|
|
@@ -1614,7 +1629,7 @@ var verticalChildRadius = {
|
|
|
1614
1629
|
xs: "[&>button:first-child]:rounded-t-md [&>button:last-of-type]:rounded-b-md",
|
|
1615
1630
|
"2xs": "[&>button:first-child]:rounded-t-sm [&>button:last-of-type]:rounded-b-sm"
|
|
1616
1631
|
};
|
|
1617
|
-
var ButtonGroup =
|
|
1632
|
+
var ButtonGroup = React78.forwardRef(
|
|
1618
1633
|
(_a, ref) => {
|
|
1619
1634
|
var _b = _a, { size = "lg", orientation = "horizontal", className, children } = _b, props = __objRest(_b, ["size", "orientation", "className", "children"]);
|
|
1620
1635
|
const isVertical = orientation === "vertical";
|
|
@@ -1633,9 +1648,9 @@ var ButtonGroup = React77.forwardRef(
|
|
|
1633
1648
|
className
|
|
1634
1649
|
)
|
|
1635
1650
|
}, props), {
|
|
1636
|
-
children:
|
|
1637
|
-
if (
|
|
1638
|
-
return
|
|
1651
|
+
children: React78.Children.map(children, (child, index) => {
|
|
1652
|
+
if (React78.isValidElement(child)) {
|
|
1653
|
+
return React78.cloneElement(
|
|
1639
1654
|
child,
|
|
1640
1655
|
{
|
|
1641
1656
|
showSeparator: index > 0,
|
|
@@ -1654,7 +1669,8 @@ var buttonGroupItemVariants = cva(
|
|
|
1654
1669
|
// Base: layout, focus ring, icon sizing, transition
|
|
1655
1670
|
[
|
|
1656
1671
|
"relative inline-flex items-center justify-center select-none cursor-pointer transition-colors",
|
|
1657
|
-
|
|
1672
|
+
// Web Interface Guidelines #42 — focus ring via box-shadow (ring), not outline, so it respects border-radius.
|
|
1673
|
+
"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-sui-border-highlight focus-visible:ring-offset-[1px] focus-visible:z-10",
|
|
1658
1674
|
"[&_i]:pointer-events-none [&_i]:shrink-0 [&_i]:text-md [&_i]:leading-[1] [&_i]:h-4",
|
|
1659
1675
|
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4"
|
|
1660
1676
|
],
|
|
@@ -1676,7 +1692,7 @@ var buttonGroupItemVariants = cva(
|
|
|
1676
1692
|
var stateStyles = [
|
|
1677
1693
|
"bg-sui-bg-state-ghost text-sui-text-subtle",
|
|
1678
1694
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
1679
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
1695
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
1680
1696
|
"active:bg-sui-bg-state-ghost-press active:text-sui-text-default"
|
|
1681
1697
|
].join(" ");
|
|
1682
1698
|
var disabledStyles = [
|
|
@@ -1704,7 +1720,7 @@ var badgeClasses = {
|
|
|
1704
1720
|
xs: "text-xs font-medium leading-4 py-sui-2",
|
|
1705
1721
|
"2xs": "text-xs font-medium leading-4 py-0"
|
|
1706
1722
|
};
|
|
1707
|
-
var ButtonGroupItem =
|
|
1723
|
+
var ButtonGroupItem = React78.forwardRef(
|
|
1708
1724
|
(_a, ref) => {
|
|
1709
1725
|
var _b = _a, {
|
|
1710
1726
|
label,
|
|
@@ -1731,6 +1747,7 @@ var ButtonGroupItem = React77.forwardRef(
|
|
|
1731
1747
|
]);
|
|
1732
1748
|
const s = size != null ? size : "lg";
|
|
1733
1749
|
const Comp = asChild ? Slot : "button";
|
|
1750
|
+
useDevWarnIconOnlyAriaLabel(iconOnly, props["aria-label"], props["aria-labelledby"], "ButtonGroupItem");
|
|
1734
1751
|
return /* @__PURE__ */ jsxs(
|
|
1735
1752
|
Comp,
|
|
1736
1753
|
__spreadProps(__spreadValues({
|
|
@@ -1791,7 +1808,7 @@ var filterButtonVariants = cva(
|
|
|
1791
1808
|
);
|
|
1792
1809
|
var getVisualStateClasses = (selected) => selected ? "bg-sui-bg-state-secondary border border-solid border-sui-border-darker text-sui-text-muted [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted shadow-default" : "bg-sui-bg-state-secondary border border-dashed border-sui-border-darker text-sui-text-muted [&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted";
|
|
1793
1810
|
var SUB_BUTTON_FOCUS = "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-1 rounded-sm";
|
|
1794
|
-
var FilterButton =
|
|
1811
|
+
var FilterButton = React78.forwardRef(
|
|
1795
1812
|
(_a, ref) => {
|
|
1796
1813
|
var _b = _a, {
|
|
1797
1814
|
className,
|
|
@@ -1918,7 +1935,7 @@ var FilterButton = React77.forwardRef(
|
|
|
1918
1935
|
className: cn(
|
|
1919
1936
|
filterButtonVariants({ size, shape }),
|
|
1920
1937
|
getVisualStateClasses(selected),
|
|
1921
|
-
"hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press",
|
|
1938
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover active:bg-sui-bg-state-secondary-press",
|
|
1922
1939
|
className
|
|
1923
1940
|
),
|
|
1924
1941
|
ref,
|
|
@@ -1960,9 +1977,9 @@ var linkButtonVariants = cva(
|
|
|
1960
1977
|
{
|
|
1961
1978
|
variants: {
|
|
1962
1979
|
variant: {
|
|
1963
|
-
default: "text-sui-text-default hover:text-sui-text-muted",
|
|
1964
|
-
muted: "text-sui-text-muted hover:text-sui-text-default",
|
|
1965
|
-
informative: "text-sui-text-informative hover:text-sui-text-informative"
|
|
1980
|
+
default: "text-sui-text-default [@media(hover:hover)]:hover:text-sui-text-muted",
|
|
1981
|
+
muted: "text-sui-text-muted [@media(hover:hover)]:hover:text-sui-text-default",
|
|
1982
|
+
informative: "text-sui-text-informative [@media(hover:hover)]:hover:text-sui-text-informative"
|
|
1966
1983
|
},
|
|
1967
1984
|
size: {
|
|
1968
1985
|
sm: "text-xs leading-4",
|
|
@@ -1981,11 +1998,18 @@ var underlineOffsetMap = {
|
|
|
1981
1998
|
md: "after:bottom-0",
|
|
1982
1999
|
lg: "after:bottom-0"
|
|
1983
2000
|
};
|
|
1984
|
-
var LinkButton =
|
|
2001
|
+
var LinkButton = React78.forwardRef(
|
|
1985
2002
|
(_a, ref) => {
|
|
1986
2003
|
var _b = _a, { className, variant, size, asChild = false, leadIcon, tailIcon, disabled, children } = _b, props = __objRest(_b, ["className", "variant", "size", "asChild", "leadIcon", "tailIcon", "disabled", "children"]);
|
|
1987
2004
|
const Comp = asChild ? Slot : "button";
|
|
1988
2005
|
const resolvedSize = size != null ? size : "lg";
|
|
2006
|
+
const isIconOnly = (children == null || children === false || children === "") && Boolean(leadIcon || tailIcon);
|
|
2007
|
+
useDevWarnIconOnlyAriaLabel(
|
|
2008
|
+
isIconOnly,
|
|
2009
|
+
props["aria-label"],
|
|
2010
|
+
props["aria-labelledby"],
|
|
2011
|
+
"LinkButton"
|
|
2012
|
+
);
|
|
1989
2013
|
const iconColor = disabled ? "text-icon-default-disabled" : variant === "informative" ? "text-icon-informative" : "text-icon-default-muted";
|
|
1990
2014
|
const underlineColor = disabled ? "var(--border-darker)" : variant === "informative" ? "var(--border-informative)" : "var(--border-darker)";
|
|
1991
2015
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1997,8 +2021,9 @@ var LinkButton = React77.forwardRef(
|
|
|
1997
2021
|
// pointer-events-none prevents click; aria-disabled="true" is set below.
|
|
1998
2022
|
disabled && "pointer-events-none text-sui-text-hint",
|
|
1999
2023
|
// Focus ring: encloses the full component (WCAG 2.4.11 AA).
|
|
2024
|
+
// Web Interface Guidelines #42 — box-shadow (ring) respects border-radius, outline did not pre-Safari 16.4.
|
|
2000
2025
|
// focus-visible scopes to keyboard navigation only — no ring on mouse click.
|
|
2001
|
-
"rounded-sm focus-visible:outline focus-visible:
|
|
2026
|
+
"rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--border-informative)]",
|
|
2002
2027
|
className
|
|
2003
2028
|
),
|
|
2004
2029
|
ref,
|
|
@@ -2056,7 +2081,7 @@ var brandMap = {
|
|
|
2056
2081
|
dropbox: { icon: "ri-dropbox-fill", label: "Dropbox", bg: "var(--social-brand-dropbox)" },
|
|
2057
2082
|
github: { icon: "ri-github-fill", label: "Github" }
|
|
2058
2083
|
};
|
|
2059
|
-
var SocialButton =
|
|
2084
|
+
var SocialButton = React78.forwardRef(
|
|
2060
2085
|
(_a, ref) => {
|
|
2061
2086
|
var _b = _a, { className, variant, shape, brand, iconOnly, asChild = false, children } = _b, props = __objRest(_b, ["className", "variant", "shape", "brand", "iconOnly", "asChild", "children"]);
|
|
2062
2087
|
const Comp = asChild ? Slot : "button";
|
|
@@ -2261,8 +2286,8 @@ function CalendarDayButton(_a) {
|
|
|
2261
2286
|
"modifiers"
|
|
2262
2287
|
]);
|
|
2263
2288
|
const defaultClassNames = getDefaultClassNames();
|
|
2264
|
-
const ref =
|
|
2265
|
-
|
|
2289
|
+
const ref = React78.useRef(null);
|
|
2290
|
+
React78.useEffect(() => {
|
|
2266
2291
|
var _a2;
|
|
2267
2292
|
if (modifiers.focused) (_a2 = ref.current) == null ? void 0 : _a2.focus();
|
|
2268
2293
|
}, [modifiers.focused]);
|
|
@@ -2288,18 +2313,18 @@ function CalendarDayButton(_a) {
|
|
|
2288
2313
|
// Default state
|
|
2289
2314
|
"bg-sui-bg-state-ghost text-sui-text-default",
|
|
2290
2315
|
// Hover
|
|
2291
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
2316
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
2292
2317
|
// Focus
|
|
2293
2318
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-0",
|
|
2294
2319
|
// Disabled
|
|
2295
2320
|
"disabled:pointer-events-none disabled:text-sui-text-hint",
|
|
2296
2321
|
// Selected (single date)
|
|
2297
|
-
"data-[selected-single=true]:bg-sui-bg-state-brand data-[selected-single=true]:text-sui-text-white-default data-[selected-single=true]:hover:bg-sui-bg-state-brand-hover",
|
|
2322
|
+
"data-[selected-single=true]:bg-sui-bg-state-brand data-[selected-single=true]:text-sui-text-white-default data-[selected-single=true]:[@media(hover:hover)]:hover:bg-sui-bg-state-brand-hover",
|
|
2298
2323
|
// Range start & end
|
|
2299
2324
|
"data-[range-start=true]:bg-sui-bg-state-brand data-[range-start=true]:text-sui-text-white-default data-[range-start=true]:rounded-xs",
|
|
2300
2325
|
"data-[range-end=true]:bg-sui-bg-state-brand data-[range-end=true]:text-sui-text-white-default data-[range-end=true]:rounded-xs",
|
|
2301
2326
|
// Range middle
|
|
2302
|
-
"data-[range-middle=true]:bg-sui-bg-state-soft data-[range-middle=true]:text-sui-text-informative data-[range-middle=true]:rounded-none data-[range-middle=true]:hover:bg-sui-bg-state-soft-hover",
|
|
2327
|
+
"data-[range-middle=true]:bg-sui-bg-state-soft data-[range-middle=true]:text-sui-text-informative data-[range-middle=true]:rounded-none data-[range-middle=true]:[@media(hover:hover)]:hover:bg-sui-bg-state-soft-hover",
|
|
2303
2328
|
// Today indicator (red circle)
|
|
2304
2329
|
"data-[today=true]:relative",
|
|
2305
2330
|
// Focus ring on parent
|
|
@@ -2334,20 +2359,30 @@ var cardVariants = cva(
|
|
|
2334
2359
|
}
|
|
2335
2360
|
}
|
|
2336
2361
|
);
|
|
2337
|
-
var Card =
|
|
2362
|
+
var Card = React78.forwardRef(
|
|
2338
2363
|
(_a, ref) => {
|
|
2339
|
-
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
2364
|
+
var _b = _a, { className, variant, interactive, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "interactive", "asChild"]);
|
|
2365
|
+
const Comp = asChild ? Slot : "div";
|
|
2340
2366
|
return /* @__PURE__ */ jsx(
|
|
2341
|
-
|
|
2367
|
+
Comp,
|
|
2342
2368
|
__spreadValues({
|
|
2343
2369
|
ref,
|
|
2344
|
-
className: cn(
|
|
2370
|
+
className: cn(
|
|
2371
|
+
cardVariants({ variant }),
|
|
2372
|
+
interactive && [
|
|
2373
|
+
"cursor-pointer transition-transform duration-fast",
|
|
2374
|
+
"[@media(hover:hover)]:hover:shadow-modal-sm",
|
|
2375
|
+
"active:scale-press",
|
|
2376
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default"
|
|
2377
|
+
],
|
|
2378
|
+
className
|
|
2379
|
+
)
|
|
2345
2380
|
}, props)
|
|
2346
2381
|
);
|
|
2347
2382
|
}
|
|
2348
2383
|
);
|
|
2349
2384
|
Card.displayName = "Card";
|
|
2350
|
-
var CardHeader =
|
|
2385
|
+
var CardHeader = React78.forwardRef((_a, ref) => {
|
|
2351
2386
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2352
2387
|
return /* @__PURE__ */ jsx(
|
|
2353
2388
|
"div",
|
|
@@ -2358,7 +2393,7 @@ var CardHeader = React77.forwardRef((_a, ref) => {
|
|
|
2358
2393
|
);
|
|
2359
2394
|
});
|
|
2360
2395
|
CardHeader.displayName = "CardHeader";
|
|
2361
|
-
var CardTitle =
|
|
2396
|
+
var CardTitle = React78.forwardRef((_a, ref) => {
|
|
2362
2397
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2363
2398
|
return /* @__PURE__ */ jsx(
|
|
2364
2399
|
"div",
|
|
@@ -2372,7 +2407,7 @@ var CardTitle = React77.forwardRef((_a, ref) => {
|
|
|
2372
2407
|
);
|
|
2373
2408
|
});
|
|
2374
2409
|
CardTitle.displayName = "CardTitle";
|
|
2375
|
-
var CardDescription =
|
|
2410
|
+
var CardDescription = React78.forwardRef((_a, ref) => {
|
|
2376
2411
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2377
2412
|
return /* @__PURE__ */ jsx(
|
|
2378
2413
|
"div",
|
|
@@ -2383,12 +2418,12 @@ var CardDescription = React77.forwardRef((_a, ref) => {
|
|
|
2383
2418
|
);
|
|
2384
2419
|
});
|
|
2385
2420
|
CardDescription.displayName = "CardDescription";
|
|
2386
|
-
var CardContent =
|
|
2421
|
+
var CardContent = React78.forwardRef((_a, ref) => {
|
|
2387
2422
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2388
2423
|
return /* @__PURE__ */ jsx("div", __spreadValues({ ref, className: cn("p-6 pt-0", className) }, props));
|
|
2389
2424
|
});
|
|
2390
2425
|
CardContent.displayName = "CardContent";
|
|
2391
|
-
var CardFooter =
|
|
2426
|
+
var CardFooter = React78.forwardRef((_a, ref) => {
|
|
2392
2427
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
2393
2428
|
return /* @__PURE__ */ jsx(
|
|
2394
2429
|
"div",
|
|
@@ -2399,7 +2434,7 @@ var CardFooter = React77.forwardRef((_a, ref) => {
|
|
|
2399
2434
|
);
|
|
2400
2435
|
});
|
|
2401
2436
|
CardFooter.displayName = "CardFooter";
|
|
2402
|
-
var CardCover =
|
|
2437
|
+
var CardCover = React78.forwardRef(
|
|
2403
2438
|
(_a, ref) => {
|
|
2404
2439
|
var _b = _a, { className, flush = false, aspectRatio = "3/2", style, children } = _b, props = __objRest(_b, ["className", "flush", "aspectRatio", "style", "children"]);
|
|
2405
2440
|
return /* @__PURE__ */ jsx(
|
|
@@ -2420,17 +2455,17 @@ var CardCover = React77.forwardRef(
|
|
|
2420
2455
|
);
|
|
2421
2456
|
CardCover.displayName = "CardCover";
|
|
2422
2457
|
var THEMES = { light: "", dark: ".dark" };
|
|
2423
|
-
var ChartContext =
|
|
2458
|
+
var ChartContext = React78.createContext(null);
|
|
2424
2459
|
function useChart() {
|
|
2425
|
-
const context =
|
|
2460
|
+
const context = React78.useContext(ChartContext);
|
|
2426
2461
|
if (!context) {
|
|
2427
2462
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
2428
2463
|
}
|
|
2429
2464
|
return context;
|
|
2430
2465
|
}
|
|
2431
|
-
var ChartContainer =
|
|
2466
|
+
var ChartContainer = React78.forwardRef((_a, ref) => {
|
|
2432
2467
|
var _b = _a, { id, className, children, config } = _b, props = __objRest(_b, ["id", "className", "children", "config"]);
|
|
2433
|
-
const uniqueId =
|
|
2468
|
+
const uniqueId = React78.useId();
|
|
2434
2469
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
2435
2470
|
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
2436
2471
|
"div",
|
|
@@ -2477,7 +2512,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
2477
2512
|
);
|
|
2478
2513
|
};
|
|
2479
2514
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
2480
|
-
var ChartTooltipContent =
|
|
2515
|
+
var ChartTooltipContent = React78.forwardRef(
|
|
2481
2516
|
({
|
|
2482
2517
|
active,
|
|
2483
2518
|
payload,
|
|
@@ -2494,7 +2529,7 @@ var ChartTooltipContent = React77.forwardRef(
|
|
|
2494
2529
|
labelKey
|
|
2495
2530
|
}, ref) => {
|
|
2496
2531
|
const { config } = useChart();
|
|
2497
|
-
const tooltipLabel =
|
|
2532
|
+
const tooltipLabel = React78.useMemo(() => {
|
|
2498
2533
|
var _a;
|
|
2499
2534
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
2500
2535
|
return null;
|
|
@@ -2591,7 +2626,7 @@ var ChartTooltipContent = React77.forwardRef(
|
|
|
2591
2626
|
);
|
|
2592
2627
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
2593
2628
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
2594
|
-
var ChartLegendContent =
|
|
2629
|
+
var ChartLegendContent = React78.forwardRef(
|
|
2595
2630
|
({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
2596
2631
|
const { config } = useChart();
|
|
2597
2632
|
if (!(payload == null ? void 0 : payload.length)) {
|
|
@@ -2667,12 +2702,12 @@ var checkboxVariants = cva(
|
|
|
2667
2702
|
"data-[state=indeterminate]:bg-sui-bg-checkbox-active",
|
|
2668
2703
|
"data-[state=indeterminate]:border-sui-bg-checkbox-active",
|
|
2669
2704
|
// Hover unchecked: stronger border
|
|
2670
|
-
"hover:data-[state=unchecked]:border-sui-border-strong",
|
|
2705
|
+
"[@media(hover:hover)]:hover:data-[state=unchecked]:border-sui-border-strong",
|
|
2671
2706
|
// Hover checked/indeterminate: hover bg + matching border
|
|
2672
|
-
"hover:data-[state=checked]:bg-sui-bg-checkbox-active-hover",
|
|
2673
|
-
"hover:data-[state=checked]:border-sui-bg-checkbox-active-hover",
|
|
2674
|
-
"hover:data-[state=indeterminate]:bg-sui-bg-checkbox-active-hover",
|
|
2675
|
-
"hover:data-[state=indeterminate]:border-sui-bg-checkbox-active-hover",
|
|
2707
|
+
"[@media(hover:hover)]:hover:data-[state=checked]:bg-sui-bg-checkbox-active-hover",
|
|
2708
|
+
"[@media(hover:hover)]:hover:data-[state=checked]:border-sui-bg-checkbox-active-hover",
|
|
2709
|
+
"[@media(hover:hover)]:hover:data-[state=indeterminate]:bg-sui-bg-checkbox-active-hover",
|
|
2710
|
+
"[@media(hover:hover)]:hover:data-[state=indeterminate]:border-sui-bg-checkbox-active-hover",
|
|
2676
2711
|
// Invalid (aria-invalid) — compound selectors for specificity over data-[state] rules
|
|
2677
2712
|
"aria-[invalid=true]:data-[state=unchecked]:border-sui-border-destructive",
|
|
2678
2713
|
"aria-[invalid=true]:data-[state=checked]:border-sui-border-destructive",
|
|
@@ -2710,13 +2745,14 @@ var checkboxVariants = cva(
|
|
|
2710
2745
|
}
|
|
2711
2746
|
}
|
|
2712
2747
|
);
|
|
2713
|
-
var Checkbox =
|
|
2714
|
-
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
2748
|
+
var Checkbox = React78.forwardRef((_a, ref) => {
|
|
2749
|
+
var _b = _a, { className, variant, checked, indeterminate } = _b, props = __objRest(_b, ["className", "variant", "checked", "indeterminate"]);
|
|
2715
2750
|
return /* @__PURE__ */ jsxs(
|
|
2716
2751
|
CheckboxPrimitive.Root,
|
|
2717
2752
|
__spreadProps(__spreadValues({
|
|
2718
2753
|
ref,
|
|
2719
|
-
className: cn(checkboxVariants({ variant, className }))
|
|
2754
|
+
className: cn(checkboxVariants({ variant, className })),
|
|
2755
|
+
checked: indeterminate ? "indeterminate" : checked
|
|
2720
2756
|
}, props), {
|
|
2721
2757
|
children: [
|
|
2722
2758
|
/* @__PURE__ */ jsxs(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center", children: [
|
|
@@ -2831,7 +2867,7 @@ var checkboxCardVariants = cva(
|
|
|
2831
2867
|
}
|
|
2832
2868
|
}
|
|
2833
2869
|
);
|
|
2834
|
-
var CheckboxCard =
|
|
2870
|
+
var CheckboxCard = React78.forwardRef(
|
|
2835
2871
|
({
|
|
2836
2872
|
title,
|
|
2837
2873
|
description,
|
|
@@ -2845,7 +2881,7 @@ var CheckboxCard = React77.forwardRef(
|
|
|
2845
2881
|
disabled = false,
|
|
2846
2882
|
className
|
|
2847
2883
|
}, ref) => {
|
|
2848
|
-
const generatedId =
|
|
2884
|
+
const generatedId = React78.useId();
|
|
2849
2885
|
const checkboxId = `checkbox-card-${generatedId}`;
|
|
2850
2886
|
const titleId = `checkbox-card-title-${generatedId}`;
|
|
2851
2887
|
const descriptionId = `checkbox-card-desc-${generatedId}`;
|
|
@@ -2941,10 +2977,10 @@ var CheckboxCard = React77.forwardRef(
|
|
|
2941
2977
|
}
|
|
2942
2978
|
);
|
|
2943
2979
|
CheckboxCard.displayName = "CheckboxCard";
|
|
2944
|
-
var CheckboxList =
|
|
2980
|
+
var CheckboxList = React78.forwardRef(
|
|
2945
2981
|
(_a, ref) => {
|
|
2946
2982
|
var _b = _a, { className, divider = true, children } = _b, props = __objRest(_b, ["className", "divider", "children"]);
|
|
2947
|
-
const items =
|
|
2983
|
+
const items = React78.Children.toArray(children);
|
|
2948
2984
|
return /* @__PURE__ */ jsx(
|
|
2949
2985
|
"div",
|
|
2950
2986
|
__spreadProps(__spreadValues({
|
|
@@ -2986,7 +3022,7 @@ var checkboxWithTextVariants = cva(
|
|
|
2986
3022
|
}
|
|
2987
3023
|
}
|
|
2988
3024
|
);
|
|
2989
|
-
var CheckboxWithText =
|
|
3025
|
+
var CheckboxWithText = React78.forwardRef(
|
|
2990
3026
|
({
|
|
2991
3027
|
label,
|
|
2992
3028
|
description,
|
|
@@ -2999,7 +3035,7 @@ var CheckboxWithText = React77.forwardRef(
|
|
|
2999
3035
|
className,
|
|
3000
3036
|
id
|
|
3001
3037
|
}, ref) => {
|
|
3002
|
-
const generatedId =
|
|
3038
|
+
const generatedId = React78.useId();
|
|
3003
3039
|
const checkboxId = id || generatedId;
|
|
3004
3040
|
return /* @__PURE__ */ jsxs(
|
|
3005
3041
|
"div",
|
|
@@ -3147,7 +3183,7 @@ var labelClasses2 = {
|
|
|
3147
3183
|
md: "text-sm font-medium leading-5",
|
|
3148
3184
|
sm: "text-xs font-medium leading-4"
|
|
3149
3185
|
};
|
|
3150
|
-
var Chip =
|
|
3186
|
+
var Chip = React78.forwardRef(
|
|
3151
3187
|
(_a, ref) => {
|
|
3152
3188
|
var _b = _a, {
|
|
3153
3189
|
label,
|
|
@@ -3176,7 +3212,7 @@ var Chip = React77.forwardRef(
|
|
|
3176
3212
|
"className",
|
|
3177
3213
|
"onClick"
|
|
3178
3214
|
]);
|
|
3179
|
-
const [internalSelected, setInternalSelected] =
|
|
3215
|
+
const [internalSelected, setInternalSelected] = React78.useState(false);
|
|
3180
3216
|
const isControlled = controlledSelected !== void 0;
|
|
3181
3217
|
const selected = isControlled ? controlledSelected : internalSelected;
|
|
3182
3218
|
const handleClick = (e) => {
|
|
@@ -3274,7 +3310,7 @@ var badgeStyles = [
|
|
|
3274
3310
|
"bg-sui-bg-state-soft border border-sui-border-darker rounded-xs",
|
|
3275
3311
|
"text-sui-text-subtle text-xs font-medium leading-4"
|
|
3276
3312
|
].join(" ");
|
|
3277
|
-
var TooltipContent =
|
|
3313
|
+
var TooltipContent = React78.forwardRef((_a, ref) => {
|
|
3278
3314
|
var _b = _a, { className, variant = "default", weight = "subtle", shortcut, sideOffset = 4, children } = _b, props = __objRest(_b, ["className", "variant", "weight", "shortcut", "sideOffset", "children"]);
|
|
3279
3315
|
return /* @__PURE__ */ jsxs(
|
|
3280
3316
|
TooltipPrimitive.Content,
|
|
@@ -3310,7 +3346,7 @@ var underlineTabsListVariants = cva(
|
|
|
3310
3346
|
}
|
|
3311
3347
|
}
|
|
3312
3348
|
);
|
|
3313
|
-
var UnderlineTabsList =
|
|
3349
|
+
var UnderlineTabsList = React78.forwardRef((_a, ref) => {
|
|
3314
3350
|
var _b = _a, { className, layout, size } = _b, props = __objRest(_b, ["className", "layout", "size"]);
|
|
3315
3351
|
return /* @__PURE__ */ jsx(
|
|
3316
3352
|
TabsPrimitive4.List,
|
|
@@ -3334,8 +3370,8 @@ var underlineTabItemVariants = cva(
|
|
|
3334
3370
|
"[&_i]:text-icon-default-muted [&_i]:pointer-events-none [&_i]:shrink-0 [&_i]:text-md [&_i]:leading-none",
|
|
3335
3371
|
"[&_svg]:text-icon-default-muted [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4",
|
|
3336
3372
|
// Hover
|
|
3337
|
-
"hover:text-sui-text-subtle hover:border-sui-border-darker",
|
|
3338
|
-
"hover:[&_i]:text-icon-default-subtle hover:[&_svg]:text-icon-default-subtle",
|
|
3373
|
+
"[@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:border-sui-border-darker",
|
|
3374
|
+
"[@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle [@media(hover:hover)]:hover:[&_svg]:text-icon-default-subtle",
|
|
3339
3375
|
// Active (Radix data attribute)
|
|
3340
3376
|
"data-[state=active]:text-sui-text-default data-[state=active]:border-sui-border-accent",
|
|
3341
3377
|
"data-[state=active]:[&_i]:text-icon-default data-[state=active]:[&_svg]:text-icon-default",
|
|
@@ -3357,7 +3393,7 @@ var underlineTabItemVariants = cva(
|
|
|
3357
3393
|
}
|
|
3358
3394
|
}
|
|
3359
3395
|
);
|
|
3360
|
-
var UnderlineTabItem =
|
|
3396
|
+
var UnderlineTabItem = React78.forwardRef(
|
|
3361
3397
|
(_a, ref) => {
|
|
3362
3398
|
var _b = _a, {
|
|
3363
3399
|
className,
|
|
@@ -3395,7 +3431,7 @@ var UnderlineTabItem = React77.forwardRef(
|
|
|
3395
3431
|
);
|
|
3396
3432
|
UnderlineTabItem.displayName = "UnderlineTabItem";
|
|
3397
3433
|
var DEFAULT_LANGUAGES = ["React", "JavaScript", "TypeScript", "Next.js"];
|
|
3398
|
-
var CodeBlock =
|
|
3434
|
+
var CodeBlock = React78.forwardRef(
|
|
3399
3435
|
(_a, ref) => {
|
|
3400
3436
|
var _b = _a, {
|
|
3401
3437
|
className,
|
|
@@ -3425,10 +3461,10 @@ var CodeBlock = React77.forwardRef(
|
|
|
3425
3461
|
"showLineNumbers"
|
|
3426
3462
|
]);
|
|
3427
3463
|
var _a2, _b2, _c, _d, _e, _f;
|
|
3428
|
-
const [activeTab, setActiveTab] =
|
|
3429
|
-
const [copied, setCopied] =
|
|
3464
|
+
const [activeTab, setActiveTab] = React78.useState((_b2 = (_a2 = tabs == null ? void 0 : tabs[0]) == null ? void 0 : _a2.label) != null ? _b2 : "");
|
|
3465
|
+
const [copied, setCopied] = React78.useState(false);
|
|
3430
3466
|
const activeCode = variant === "advanced" ? (_f = (_e = (_c = tabs == null ? void 0 : tabs.find((t) => t.label === activeTab)) == null ? void 0 : _c.code) != null ? _e : (_d = tabs == null ? void 0 : tabs[0]) == null ? void 0 : _d.code) != null ? _f : "" : code;
|
|
3431
|
-
const handleCopy =
|
|
3467
|
+
const handleCopy = React78.useCallback(() => {
|
|
3432
3468
|
if (onCopy) {
|
|
3433
3469
|
onCopy();
|
|
3434
3470
|
} else {
|
|
@@ -3619,7 +3655,7 @@ var Dialog = DialogPrimitive.Root;
|
|
|
3619
3655
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
3620
3656
|
var DialogPortal = DialogPrimitive.Portal;
|
|
3621
3657
|
var DialogClose = DialogPrimitive.Close;
|
|
3622
|
-
var DialogOverlay =
|
|
3658
|
+
var DialogOverlay = React78.forwardRef((_a, ref) => {
|
|
3623
3659
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3624
3660
|
return /* @__PURE__ */ jsx(
|
|
3625
3661
|
DialogPrimitive.Overlay,
|
|
@@ -3633,7 +3669,7 @@ var DialogOverlay = React77.forwardRef((_a, ref) => {
|
|
|
3633
3669
|
);
|
|
3634
3670
|
});
|
|
3635
3671
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
3636
|
-
var DialogContent =
|
|
3672
|
+
var DialogContent = React78.forwardRef((_a, ref) => {
|
|
3637
3673
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
3638
3674
|
return /* @__PURE__ */ jsxs(DialogPortal, { children: [
|
|
3639
3675
|
/* @__PURE__ */ jsx(DialogOverlay, {}),
|
|
@@ -3648,7 +3684,7 @@ var DialogContent = React77.forwardRef((_a, ref) => {
|
|
|
3648
3684
|
}, props), {
|
|
3649
3685
|
children: [
|
|
3650
3686
|
children,
|
|
3651
|
-
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-sui-bg-default transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-sui-bg-state-ghost-hover data-[state=open]:text-sui-text-muted", children: [
|
|
3687
|
+
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-sui-bg-default transition-opacity [@media(hover:hover)]:hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-sui-bg-state-ghost-hover data-[state=open]:text-sui-text-muted", children: [
|
|
3652
3688
|
/* @__PURE__ */ jsx("i", { className: "ri-close-line text-base", "aria-hidden": true }),
|
|
3653
3689
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
3654
3690
|
] })
|
|
@@ -3692,7 +3728,7 @@ var DialogFooter = (_a) => {
|
|
|
3692
3728
|
);
|
|
3693
3729
|
};
|
|
3694
3730
|
DialogFooter.displayName = "DialogFooter";
|
|
3695
|
-
var DialogTitle =
|
|
3731
|
+
var DialogTitle = React78.forwardRef((_a, ref) => {
|
|
3696
3732
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3697
3733
|
return /* @__PURE__ */ jsx(
|
|
3698
3734
|
DialogPrimitive.Title,
|
|
@@ -3706,7 +3742,7 @@ var DialogTitle = React77.forwardRef((_a, ref) => {
|
|
|
3706
3742
|
);
|
|
3707
3743
|
});
|
|
3708
3744
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
3709
|
-
var DialogDescription =
|
|
3745
|
+
var DialogDescription = React78.forwardRef((_a, ref) => {
|
|
3710
3746
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3711
3747
|
return /* @__PURE__ */ jsx(
|
|
3712
3748
|
DialogPrimitive.Description,
|
|
@@ -3717,7 +3753,7 @@ var DialogDescription = React77.forwardRef((_a, ref) => {
|
|
|
3717
3753
|
);
|
|
3718
3754
|
});
|
|
3719
3755
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
3720
|
-
var Command =
|
|
3756
|
+
var Command = React78.forwardRef((_a, ref) => {
|
|
3721
3757
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3722
3758
|
return /* @__PURE__ */ jsx(
|
|
3723
3759
|
Command$1,
|
|
@@ -3735,7 +3771,7 @@ var CommandDialog = (_a) => {
|
|
|
3735
3771
|
var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
|
|
3736
3772
|
return /* @__PURE__ */ jsx(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0 shadow-card max-w-[560px]", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-sui-text-hint [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_i]:h-4 [&_[cmdk-input-wrapper]_i]:w-4 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_i]:h-4 [&_[cmdk-item]_i]:w-4", children }) }) }));
|
|
3737
3773
|
};
|
|
3738
|
-
var CommandInput =
|
|
3774
|
+
var CommandInput = React78.forwardRef((_a, ref) => {
|
|
3739
3775
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3740
3776
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-sui-border-default px-3", "cmdk-input-wrapper": "", children: [
|
|
3741
3777
|
/* @__PURE__ */ jsx("i", { className: "ri-search-line mr-2 shrink-0 text-icon-default-muted" }),
|
|
@@ -3752,7 +3788,7 @@ var CommandInput = React77.forwardRef((_a, ref) => {
|
|
|
3752
3788
|
] });
|
|
3753
3789
|
});
|
|
3754
3790
|
CommandInput.displayName = Command$1.Input.displayName;
|
|
3755
|
-
var CommandList =
|
|
3791
|
+
var CommandList = React78.forwardRef((_a, ref) => {
|
|
3756
3792
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3757
3793
|
return /* @__PURE__ */ jsx(
|
|
3758
3794
|
Command$1.List,
|
|
@@ -3763,7 +3799,7 @@ var CommandList = React77.forwardRef((_a, ref) => {
|
|
|
3763
3799
|
);
|
|
3764
3800
|
});
|
|
3765
3801
|
CommandList.displayName = Command$1.List.displayName;
|
|
3766
|
-
var CommandEmpty =
|
|
3802
|
+
var CommandEmpty = React78.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
3767
3803
|
Command$1.Empty,
|
|
3768
3804
|
__spreadValues({
|
|
3769
3805
|
ref,
|
|
@@ -3771,7 +3807,7 @@ var CommandEmpty = React77.forwardRef((props, ref) => /* @__PURE__ */ jsx(
|
|
|
3771
3807
|
}, props)
|
|
3772
3808
|
));
|
|
3773
3809
|
CommandEmpty.displayName = Command$1.Empty.displayName;
|
|
3774
|
-
var CommandGroup =
|
|
3810
|
+
var CommandGroup = React78.forwardRef((_a, ref) => {
|
|
3775
3811
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3776
3812
|
return /* @__PURE__ */ jsx(
|
|
3777
3813
|
Command$1.Group,
|
|
@@ -3785,7 +3821,7 @@ var CommandGroup = React77.forwardRef((_a, ref) => {
|
|
|
3785
3821
|
);
|
|
3786
3822
|
});
|
|
3787
3823
|
CommandGroup.displayName = Command$1.Group.displayName;
|
|
3788
|
-
var CommandSeparator =
|
|
3824
|
+
var CommandSeparator = React78.forwardRef((_a, ref) => {
|
|
3789
3825
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3790
3826
|
return /* @__PURE__ */ jsx(
|
|
3791
3827
|
Command$1.Separator,
|
|
@@ -3796,7 +3832,7 @@ var CommandSeparator = React77.forwardRef((_a, ref) => {
|
|
|
3796
3832
|
);
|
|
3797
3833
|
});
|
|
3798
3834
|
CommandSeparator.displayName = Command$1.Separator.displayName;
|
|
3799
|
-
var CommandItem =
|
|
3835
|
+
var CommandItem = React78.forwardRef((_a, ref) => {
|
|
3800
3836
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
3801
3837
|
return /* @__PURE__ */ jsx(
|
|
3802
3838
|
Command$1.Item,
|
|
@@ -3859,7 +3895,7 @@ var sliderHandleVariants = cva(
|
|
|
3859
3895
|
}
|
|
3860
3896
|
}
|
|
3861
3897
|
);
|
|
3862
|
-
var SliderHandle =
|
|
3898
|
+
var SliderHandle = React78.forwardRef(
|
|
3863
3899
|
(_a, ref) => {
|
|
3864
3900
|
var _b = _a, { className, state, value, showTooltip = false } = _b, props = __objRest(_b, ["className", "state", "value", "showTooltip"]);
|
|
3865
3901
|
const isDisabled = state === "disabled";
|
|
@@ -3922,7 +3958,7 @@ function buildHistogramPath(data, width, height) {
|
|
|
3922
3958
|
path += ` L ${width} ${height} Z`;
|
|
3923
3959
|
return path;
|
|
3924
3960
|
}
|
|
3925
|
-
var DataRangeSlider =
|
|
3961
|
+
var DataRangeSlider = React78.forwardRef(
|
|
3926
3962
|
(_a, ref) => {
|
|
3927
3963
|
var _b = _a, {
|
|
3928
3964
|
className,
|
|
@@ -3953,15 +3989,18 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
3953
3989
|
"formatValue",
|
|
3954
3990
|
"onValueChange"
|
|
3955
3991
|
]);
|
|
3956
|
-
const trackRef =
|
|
3957
|
-
const [draggingHandle, setDraggingHandle] =
|
|
3958
|
-
const [focusedHandle, setFocusedHandle] =
|
|
3959
|
-
const clipId =
|
|
3992
|
+
const trackRef = React78.useRef(null);
|
|
3993
|
+
const [draggingHandle, setDraggingHandle] = React78.useState(null);
|
|
3994
|
+
const [focusedHandle, setFocusedHandle] = React78.useState(null);
|
|
3995
|
+
const clipId = React78.useId();
|
|
3960
3996
|
const [rangeMin, rangeMax] = value;
|
|
3961
3997
|
const pctMin = percent(rangeMin, min, max);
|
|
3962
3998
|
const pctMax = percent(rangeMax, min, max);
|
|
3963
|
-
const fmt = (
|
|
3964
|
-
|
|
3999
|
+
const fmt = React78.useCallback(
|
|
4000
|
+
(v) => formatValue ? formatValue(v) : `${v}`,
|
|
4001
|
+
[formatValue]
|
|
4002
|
+
);
|
|
4003
|
+
const getValueFromPointer = React78.useCallback(
|
|
3965
4004
|
(clientX) => {
|
|
3966
4005
|
const track = trackRef.current;
|
|
3967
4006
|
if (!track) return 0;
|
|
@@ -3972,7 +4011,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
3972
4011
|
},
|
|
3973
4012
|
[min, max, step]
|
|
3974
4013
|
);
|
|
3975
|
-
const closestHandle =
|
|
4014
|
+
const closestHandle = React78.useCallback(
|
|
3976
4015
|
(pointerValue) => {
|
|
3977
4016
|
const distMin = Math.abs(pointerValue - rangeMin);
|
|
3978
4017
|
const distMax = Math.abs(pointerValue - rangeMax);
|
|
@@ -3980,7 +4019,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
3980
4019
|
},
|
|
3981
4020
|
[rangeMin, rangeMax]
|
|
3982
4021
|
);
|
|
3983
|
-
const updateValue =
|
|
4022
|
+
const updateValue = React78.useCallback(
|
|
3984
4023
|
(handle, newVal) => {
|
|
3985
4024
|
if (handle === 0) {
|
|
3986
4025
|
const clamped = clamp(newVal, min, rangeMax);
|
|
@@ -3992,7 +4031,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
3992
4031
|
},
|
|
3993
4032
|
[min, max, rangeMin, rangeMax, onValueChange]
|
|
3994
4033
|
);
|
|
3995
|
-
const handlePointerDown =
|
|
4034
|
+
const handlePointerDown = React78.useCallback(
|
|
3996
4035
|
(e) => {
|
|
3997
4036
|
if (disabled) return;
|
|
3998
4037
|
e.preventDefault();
|
|
@@ -4004,7 +4043,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
4004
4043
|
},
|
|
4005
4044
|
[disabled, getValueFromPointer, closestHandle, updateValue]
|
|
4006
4045
|
);
|
|
4007
|
-
const handlePointerMove =
|
|
4046
|
+
const handlePointerMove = React78.useCallback(
|
|
4008
4047
|
(e) => {
|
|
4009
4048
|
if (draggingHandle === null || disabled) return;
|
|
4010
4049
|
const newVal = getValueFromPointer(e.clientX);
|
|
@@ -4012,10 +4051,10 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
4012
4051
|
},
|
|
4013
4052
|
[draggingHandle, disabled, getValueFromPointer, updateValue]
|
|
4014
4053
|
);
|
|
4015
|
-
const handlePointerUp =
|
|
4054
|
+
const handlePointerUp = React78.useCallback(() => {
|
|
4016
4055
|
setDraggingHandle(null);
|
|
4017
4056
|
}, []);
|
|
4018
|
-
const makeKeyHandler =
|
|
4057
|
+
const makeKeyHandler = React78.useCallback(
|
|
4019
4058
|
(handle) => (e) => {
|
|
4020
4059
|
if (disabled) return;
|
|
4021
4060
|
const currentVal = handle === 0 ? rangeMin : rangeMax;
|
|
@@ -4043,7 +4082,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
4043
4082
|
},
|
|
4044
4083
|
[disabled, rangeMin, rangeMax, step, min, max, updateValue]
|
|
4045
4084
|
);
|
|
4046
|
-
const tickLabels =
|
|
4085
|
+
const tickLabels = React78.useMemo(() => {
|
|
4047
4086
|
if (pointLabels) return pointLabels;
|
|
4048
4087
|
const labels = [];
|
|
4049
4088
|
for (let i = 0; i < pointCount; i++) {
|
|
@@ -4054,7 +4093,7 @@ var DataRangeSlider = React77.forwardRef(
|
|
|
4054
4093
|
}, [pointLabels, pointCount, min, max, fmt]);
|
|
4055
4094
|
const chartWidth = 320;
|
|
4056
4095
|
const chartHeight = 32;
|
|
4057
|
-
const histogramPath =
|
|
4096
|
+
const histogramPath = React78.useMemo(
|
|
4058
4097
|
() => buildHistogramPath(data, chartWidth, chartHeight),
|
|
4059
4098
|
[data]
|
|
4060
4099
|
);
|
|
@@ -4201,7 +4240,7 @@ DataRangeSlider.displayName = "DataRangeSlider";
|
|
|
4201
4240
|
var labelVariants = cva(
|
|
4202
4241
|
"text-sm font-medium leading-5 text-sui-text-default"
|
|
4203
4242
|
);
|
|
4204
|
-
var Label =
|
|
4243
|
+
var Label = React78.forwardRef((_a, ref) => {
|
|
4205
4244
|
var _b = _a, { className, required, supportText, tailIcon, children } = _b, props = __objRest(_b, ["className", "required", "supportText", "tailIcon", "children"]);
|
|
4206
4245
|
const hasTail = !!(supportText || tailIcon);
|
|
4207
4246
|
return /* @__PURE__ */ jsxs(
|
|
@@ -4262,7 +4301,7 @@ var inputContainerVariants = cva(
|
|
|
4262
4301
|
}
|
|
4263
4302
|
}
|
|
4264
4303
|
);
|
|
4265
|
-
var InputField =
|
|
4304
|
+
var InputField = React78.forwardRef(
|
|
4266
4305
|
(_a, ref) => {
|
|
4267
4306
|
var _b = _a, {
|
|
4268
4307
|
className,
|
|
@@ -4287,7 +4326,9 @@ var InputField = React77.forwardRef(
|
|
|
4287
4326
|
tailAddon,
|
|
4288
4327
|
inputClassName,
|
|
4289
4328
|
disabled,
|
|
4290
|
-
id
|
|
4329
|
+
id,
|
|
4330
|
+
spellCheck,
|
|
4331
|
+
autoComplete
|
|
4291
4332
|
} = _b, props = __objRest(_b, [
|
|
4292
4333
|
"className",
|
|
4293
4334
|
"inputStyle",
|
|
@@ -4311,14 +4352,29 @@ var InputField = React77.forwardRef(
|
|
|
4311
4352
|
"tailAddon",
|
|
4312
4353
|
"inputClassName",
|
|
4313
4354
|
"disabled",
|
|
4314
|
-
"id"
|
|
4355
|
+
"id",
|
|
4356
|
+
"spellCheck",
|
|
4357
|
+
"autoComplete"
|
|
4315
4358
|
]);
|
|
4316
|
-
const generatedId =
|
|
4359
|
+
const generatedId = React78.useId();
|
|
4317
4360
|
const inputId = id || generatedId;
|
|
4318
4361
|
const captionId = `${inputId}-caption`;
|
|
4319
4362
|
const hasError = !!error;
|
|
4320
4363
|
const helperText = hasError ? error : caption;
|
|
4321
4364
|
const hasInlineTags = !!(tags && tags.length > 0 && !hasError && !disabled);
|
|
4365
|
+
const innerRef = React78.useRef(null);
|
|
4366
|
+
React78.useImperativeHandle(ref, () => innerRef.current, []);
|
|
4367
|
+
const focusInputOnDecorationClick = (e) => {
|
|
4368
|
+
var _a2;
|
|
4369
|
+
if (disabled) return;
|
|
4370
|
+
const target = e.target;
|
|
4371
|
+
if (target === innerRef.current) return;
|
|
4372
|
+
if (target.closest('button, a, input, textarea, select, [role="button"]')) return;
|
|
4373
|
+
e.preventDefault();
|
|
4374
|
+
(_a2 = innerRef.current) == null ? void 0 : _a2.focus();
|
|
4375
|
+
};
|
|
4376
|
+
const resolvedSpellCheck = spellCheck != null ? spellCheck : false;
|
|
4377
|
+
const resolvedAutoComplete = autoComplete != null ? autoComplete : "off";
|
|
4322
4378
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex w-full flex-col gap-2", className), children: [
|
|
4323
4379
|
label && /* @__PURE__ */ jsx(
|
|
4324
4380
|
Label,
|
|
@@ -4333,6 +4389,7 @@ var InputField = React77.forwardRef(
|
|
|
4333
4389
|
/* @__PURE__ */ jsxs(
|
|
4334
4390
|
"div",
|
|
4335
4391
|
{
|
|
4392
|
+
onPointerDown: focusInputOnDecorationClick,
|
|
4336
4393
|
className: cn(
|
|
4337
4394
|
inputContainerVariants({ inputStyle }),
|
|
4338
4395
|
// Inline tags: let content determine height; standard: fix height to prevent inflation
|
|
@@ -4385,13 +4442,15 @@ var InputField = React77.forwardRef(
|
|
|
4385
4442
|
/* @__PURE__ */ jsx(
|
|
4386
4443
|
"input",
|
|
4387
4444
|
__spreadValues({
|
|
4388
|
-
ref,
|
|
4445
|
+
ref: innerRef,
|
|
4389
4446
|
id: inputId,
|
|
4390
4447
|
disabled,
|
|
4391
4448
|
required,
|
|
4449
|
+
spellCheck: resolvedSpellCheck,
|
|
4450
|
+
autoComplete: resolvedAutoComplete,
|
|
4392
4451
|
"aria-invalid": hasError || void 0,
|
|
4393
4452
|
"aria-describedby": helperText ? captionId : void 0,
|
|
4394
|
-
className: cn("flex-1 min-w-0 bg-transparent px-1 text-sm leading-5 outline-none text-sui-text-default placeholder:text-sui-text-hint", inputClassName)
|
|
4453
|
+
className: cn("flex-1 min-w-0 bg-transparent px-1 text-base md:text-sm leading-5 outline-none text-sui-text-default placeholder:text-sui-text-hint", inputClassName)
|
|
4395
4454
|
}, props)
|
|
4396
4455
|
)
|
|
4397
4456
|
] }),
|
|
@@ -4425,14 +4484,17 @@ var InputField = React77.forwardRef(
|
|
|
4425
4484
|
/* @__PURE__ */ jsx(
|
|
4426
4485
|
"input",
|
|
4427
4486
|
__spreadValues({
|
|
4428
|
-
ref,
|
|
4487
|
+
ref: innerRef,
|
|
4429
4488
|
id: inputId,
|
|
4430
4489
|
disabled,
|
|
4431
4490
|
required,
|
|
4491
|
+
spellCheck: resolvedSpellCheck,
|
|
4492
|
+
autoComplete: resolvedAutoComplete,
|
|
4432
4493
|
"aria-invalid": hasError || void 0,
|
|
4433
4494
|
"aria-describedby": helperText ? captionId : void 0,
|
|
4434
4495
|
className: cn(
|
|
4435
|
-
|
|
4496
|
+
// #29 16px on touch (prevents iOS zoom), 14px on md+
|
|
4497
|
+
"flex-1 min-w-0 bg-transparent px-1 text-base md:text-sm leading-5 outline-none",
|
|
4436
4498
|
"text-sui-text-default",
|
|
4437
4499
|
"placeholder:text-sui-text-muted",
|
|
4438
4500
|
disabled && "text-sui-text-hint placeholder:text-sui-text-hint cursor-not-allowed",
|
|
@@ -4493,7 +4555,7 @@ var InputField = React77.forwardRef(
|
|
|
4493
4555
|
}
|
|
4494
4556
|
);
|
|
4495
4557
|
InputField.displayName = "InputField";
|
|
4496
|
-
var DataRangeSliderInput =
|
|
4558
|
+
var DataRangeSliderInput = React78.forwardRef(
|
|
4497
4559
|
(_a, ref) => {
|
|
4498
4560
|
var _b = _a, {
|
|
4499
4561
|
className,
|
|
@@ -4613,7 +4675,7 @@ var DataRangeSliderInput = React77.forwardRef(
|
|
|
4613
4675
|
DataRangeSliderInput.displayName = "DataRangeSliderInput";
|
|
4614
4676
|
var Popover = PopoverPrimitive.Root;
|
|
4615
4677
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
4616
|
-
var PopoverContent =
|
|
4678
|
+
var PopoverContent = React78.forwardRef((_a, ref) => {
|
|
4617
4679
|
var _b = _a, { className, align = "center", sideOffset = 4 } = _b, props = __objRest(_b, ["className", "align", "sideOffset"]);
|
|
4618
4680
|
return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
4619
4681
|
PopoverPrimitive.Content,
|
|
@@ -4636,7 +4698,7 @@ function DatePicker({
|
|
|
4636
4698
|
className,
|
|
4637
4699
|
disabled
|
|
4638
4700
|
}) {
|
|
4639
|
-
const [open, setOpen] =
|
|
4701
|
+
const [open, setOpen] = React78.useState(false);
|
|
4640
4702
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
4641
4703
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4642
4704
|
Button,
|
|
@@ -4677,7 +4739,7 @@ function DateRangePicker({
|
|
|
4677
4739
|
className,
|
|
4678
4740
|
disabled
|
|
4679
4741
|
}) {
|
|
4680
|
-
const [open, setOpen] =
|
|
4742
|
+
const [open, setOpen] = React78.useState(false);
|
|
4681
4743
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
4682
4744
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4683
4745
|
Button,
|
|
@@ -4728,7 +4790,7 @@ function DatePickerWithPresets({
|
|
|
4728
4790
|
className,
|
|
4729
4791
|
disabled
|
|
4730
4792
|
}) {
|
|
4731
|
-
const [open, setOpen] =
|
|
4793
|
+
const [open, setOpen] = React78.useState(false);
|
|
4732
4794
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
4733
4795
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
4734
4796
|
Button,
|
|
@@ -4761,7 +4823,7 @@ function DatePickerWithPresets({
|
|
|
4761
4823
|
className: cn(
|
|
4762
4824
|
"w-[150px] rounded-xs px-2 py-1 text-left text-sm font-medium transition-colors",
|
|
4763
4825
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight",
|
|
4764
|
-
isSelected ? "bg-sui-bg-state-brand text-sui-text-white-default" : "bg-sui-bg-state-ghost text-sui-text-muted hover:bg-sui-bg-state-ghost-hover"
|
|
4826
|
+
isSelected ? "bg-sui-bg-state-brand text-sui-text-white-default" : "bg-sui-bg-state-ghost text-sui-text-muted [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover"
|
|
4765
4827
|
),
|
|
4766
4828
|
children: preset.label
|
|
4767
4829
|
},
|
|
@@ -4849,7 +4911,7 @@ function RequirementItem({ label, met }) {
|
|
|
4849
4911
|
)
|
|
4850
4912
|
] });
|
|
4851
4913
|
}
|
|
4852
|
-
var InputCaption =
|
|
4914
|
+
var InputCaption = React78.forwardRef(
|
|
4853
4915
|
(_a, ref) => {
|
|
4854
4916
|
var _b = _a, {
|
|
4855
4917
|
variant = "default",
|
|
@@ -4940,9 +5002,9 @@ var InputCaption = React77.forwardRef(
|
|
|
4940
5002
|
className
|
|
4941
5003
|
)
|
|
4942
5004
|
}, props), {
|
|
4943
|
-
children:
|
|
4944
|
-
if (!
|
|
4945
|
-
return
|
|
5005
|
+
children: React78.Children.map(children, (child) => {
|
|
5006
|
+
if (!React78.isValidElement(child)) return child;
|
|
5007
|
+
return React78.cloneElement(child, {
|
|
4946
5008
|
className: cn(
|
|
4947
5009
|
"flex-1",
|
|
4948
5010
|
child.props.className
|
|
@@ -5043,43 +5105,49 @@ function DateSegment({
|
|
|
5043
5105
|
const handleFocus = (e) => {
|
|
5044
5106
|
e.target.select();
|
|
5045
5107
|
};
|
|
5046
|
-
return
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
|
|
5057
|
-
|
|
5058
|
-
|
|
5059
|
-
|
|
5060
|
-
|
|
5061
|
-
|
|
5062
|
-
|
|
5063
|
-
|
|
5064
|
-
|
|
5065
|
-
|
|
5066
|
-
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
|
|
5108
|
+
return (
|
|
5109
|
+
// Web Interface Guidelines #4 spellcheck/autocomplete off, #29 16px on touch,
|
|
5110
|
+
// #28 hover only on pointer devices (avoid sticky hover after tap on touch).
|
|
5111
|
+
/* @__PURE__ */ jsx(
|
|
5112
|
+
"input",
|
|
5113
|
+
{
|
|
5114
|
+
ref: segmentRef,
|
|
5115
|
+
id,
|
|
5116
|
+
type: "text",
|
|
5117
|
+
inputMode: "numeric",
|
|
5118
|
+
spellCheck: false,
|
|
5119
|
+
autoComplete: "off",
|
|
5120
|
+
maxLength,
|
|
5121
|
+
size: maxLength,
|
|
5122
|
+
placeholder,
|
|
5123
|
+
value,
|
|
5124
|
+
disabled,
|
|
5125
|
+
onChange: handleChange,
|
|
5126
|
+
onKeyDown: handleKeyDown,
|
|
5127
|
+
onFocus: handleFocus,
|
|
5128
|
+
"aria-label": placeholder === "dd" ? "Day" : placeholder === "mm" ? "Month" : "Year",
|
|
5129
|
+
className: cn(
|
|
5130
|
+
// Layout — min-w-0 prevents browser input minimum width
|
|
5131
|
+
"min-w-0 shrink-0 rounded-xs px-1 text-center",
|
|
5132
|
+
// Explicit widths — enough room for text + px-1 padding
|
|
5133
|
+
maxLength === 4 ? "w-12" : "w-8",
|
|
5134
|
+
// Typography — 16px on touch (prevents iOS zoom on focus), 14px on md+
|
|
5135
|
+
"text-base md:text-sm font-normal leading-5 tabular-nums",
|
|
5136
|
+
// Background
|
|
5137
|
+
"bg-sui-bg-state-ghost",
|
|
5138
|
+
// Text colors
|
|
5139
|
+
value ? "text-sui-text-default" : "text-sui-text-muted",
|
|
5140
|
+
// Hover (pointer devices only — no sticky hover after tap)
|
|
5141
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
5142
|
+
// Focus
|
|
5143
|
+
"focus:bg-sui-bg-state-ghost-hover focus:outline-none",
|
|
5144
|
+
// Disabled
|
|
5145
|
+
"disabled:pointer-events-none disabled:text-sui-text-hint disabled:bg-transparent",
|
|
5146
|
+
// Placeholder
|
|
5147
|
+
"placeholder:text-sui-text-muted disabled:placeholder:text-sui-text-hint"
|
|
5148
|
+
)
|
|
5149
|
+
}
|
|
5150
|
+
)
|
|
5083
5151
|
);
|
|
5084
5152
|
}
|
|
5085
5153
|
function DateSegmentGroup({
|
|
@@ -5212,38 +5280,38 @@ function DatePickerInput({
|
|
|
5212
5280
|
disabled = false,
|
|
5213
5281
|
className
|
|
5214
5282
|
}) {
|
|
5215
|
-
const [calendarOpen, setCalendarOpen] =
|
|
5283
|
+
const [calendarOpen, setCalendarOpen] = React78.useState(false);
|
|
5216
5284
|
const hasError = !!error;
|
|
5217
5285
|
const helperText = hasError ? error : caption;
|
|
5218
5286
|
const singleSegments = dateToSegments(date);
|
|
5219
|
-
const [singleDay, setSingleDay] =
|
|
5220
|
-
const [singleMonth, setSingleMonth] =
|
|
5221
|
-
const [singleYear, setSingleYear] =
|
|
5287
|
+
const [singleDay, setSingleDay] = React78.useState(singleSegments.day);
|
|
5288
|
+
const [singleMonth, setSingleMonth] = React78.useState(singleSegments.month);
|
|
5289
|
+
const [singleYear, setSingleYear] = React78.useState(singleSegments.year);
|
|
5222
5290
|
const startSegments = dateToSegments(dateRange == null ? void 0 : dateRange.from);
|
|
5223
5291
|
const endSegments = dateToSegments(dateRange == null ? void 0 : dateRange.to);
|
|
5224
|
-
const [startDay, setStartDay] =
|
|
5225
|
-
const [startMonth, setStartMonth] =
|
|
5226
|
-
const [startYear, setStartYear] =
|
|
5227
|
-
const [endDay, setEndDay] =
|
|
5228
|
-
const [endMonth, setEndMonth] =
|
|
5229
|
-
const [endYear, setEndYear] =
|
|
5230
|
-
const singleDayRef =
|
|
5231
|
-
const singleMonthRef =
|
|
5232
|
-
const singleYearRef =
|
|
5233
|
-
const startDayRef =
|
|
5234
|
-
const startMonthRef =
|
|
5235
|
-
const startYearRef =
|
|
5236
|
-
const endDayRef =
|
|
5237
|
-
const endMonthRef =
|
|
5238
|
-
const endYearRef =
|
|
5239
|
-
const calendarIconRef =
|
|
5240
|
-
|
|
5292
|
+
const [startDay, setStartDay] = React78.useState(startSegments.day);
|
|
5293
|
+
const [startMonth, setStartMonth] = React78.useState(startSegments.month);
|
|
5294
|
+
const [startYear, setStartYear] = React78.useState(startSegments.year);
|
|
5295
|
+
const [endDay, setEndDay] = React78.useState(endSegments.day);
|
|
5296
|
+
const [endMonth, setEndMonth] = React78.useState(endSegments.month);
|
|
5297
|
+
const [endYear, setEndYear] = React78.useState(endSegments.year);
|
|
5298
|
+
const singleDayRef = React78.useRef(null);
|
|
5299
|
+
const singleMonthRef = React78.useRef(null);
|
|
5300
|
+
const singleYearRef = React78.useRef(null);
|
|
5301
|
+
const startDayRef = React78.useRef(null);
|
|
5302
|
+
const startMonthRef = React78.useRef(null);
|
|
5303
|
+
const startYearRef = React78.useRef(null);
|
|
5304
|
+
const endDayRef = React78.useRef(null);
|
|
5305
|
+
const endMonthRef = React78.useRef(null);
|
|
5306
|
+
const endYearRef = React78.useRef(null);
|
|
5307
|
+
const calendarIconRef = React78.useRef(null);
|
|
5308
|
+
React78.useEffect(() => {
|
|
5241
5309
|
const s = dateToSegments(date);
|
|
5242
5310
|
setSingleDay(s.day);
|
|
5243
5311
|
setSingleMonth(s.month);
|
|
5244
5312
|
setSingleYear(s.year);
|
|
5245
5313
|
}, [date]);
|
|
5246
|
-
|
|
5314
|
+
React78.useEffect(() => {
|
|
5247
5315
|
const s = dateToSegments(dateRange == null ? void 0 : dateRange.from);
|
|
5248
5316
|
setStartDay(s.day);
|
|
5249
5317
|
setStartMonth(s.month);
|
|
@@ -5253,7 +5321,7 @@ function DatePickerInput({
|
|
|
5253
5321
|
setEndMonth(e.month);
|
|
5254
5322
|
setEndYear(e.year);
|
|
5255
5323
|
}, [dateRange]);
|
|
5256
|
-
const handleSingleSegmentChange =
|
|
5324
|
+
const handleSingleSegmentChange = React78.useCallback(
|
|
5257
5325
|
(day, month, year) => {
|
|
5258
5326
|
const d = segmentsToDate(day, month, year);
|
|
5259
5327
|
if (day.length === 2 && month.length === 2 && year.length === 4) {
|
|
@@ -5264,7 +5332,7 @@ function DatePickerInput({
|
|
|
5264
5332
|
},
|
|
5265
5333
|
[onDateChange]
|
|
5266
5334
|
);
|
|
5267
|
-
const handleRangeSegmentChange =
|
|
5335
|
+
const handleRangeSegmentChange = React78.useCallback(
|
|
5268
5336
|
(sd, sm, sy, ed, em, ey) => {
|
|
5269
5337
|
const from = segmentsToDate(sd, sm, sy);
|
|
5270
5338
|
const to = segmentsToDate(ed, em, ey);
|
|
@@ -5339,7 +5407,7 @@ function DatePickerInput({
|
|
|
5339
5407
|
setCalendarOpen(false);
|
|
5340
5408
|
}
|
|
5341
5409
|
};
|
|
5342
|
-
const inputId =
|
|
5410
|
+
const inputId = React78.useId();
|
|
5343
5411
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex w-full flex-col gap-2", className), children: [
|
|
5344
5412
|
label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, children: label }),
|
|
5345
5413
|
/* @__PURE__ */ jsxs(Popover, { open: calendarOpen, onOpenChange: setCalendarOpen, children: [
|
|
@@ -5453,7 +5521,7 @@ function DatePickerInput({
|
|
|
5453
5521
|
"flex shrink-0 items-center justify-center size-5 mr-2",
|
|
5454
5522
|
"rounded-xs transition-colors",
|
|
5455
5523
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight",
|
|
5456
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
5524
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
5457
5525
|
"disabled:pointer-events-none"
|
|
5458
5526
|
),
|
|
5459
5527
|
children: /* @__PURE__ */ jsx(
|
|
@@ -5525,7 +5593,7 @@ var lineVariants = cva("h-px min-w-0 flex-1 border-t border-sui-border-default",
|
|
|
5525
5593
|
lineStyle: "solid"
|
|
5526
5594
|
}
|
|
5527
5595
|
});
|
|
5528
|
-
var Divider =
|
|
5596
|
+
var Divider = React78.forwardRef(
|
|
5529
5597
|
(_a, ref) => {
|
|
5530
5598
|
var _b = _a, {
|
|
5531
5599
|
className,
|
|
@@ -5583,7 +5651,7 @@ var Divider = React77.forwardRef(
|
|
|
5583
5651
|
"shadow-default",
|
|
5584
5652
|
"relative overflow-hidden",
|
|
5585
5653
|
"transition-colors duration-150",
|
|
5586
|
-
"hover:bg-sui-bg-state-secondary-hover",
|
|
5654
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover",
|
|
5587
5655
|
"active:bg-sui-bg-state-secondary-press",
|
|
5588
5656
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default"
|
|
5589
5657
|
),
|
|
@@ -5600,7 +5668,7 @@ var Divider = React77.forwardRef(
|
|
|
5600
5668
|
}
|
|
5601
5669
|
);
|
|
5602
5670
|
Divider.displayName = "Divider";
|
|
5603
|
-
var MenuSearchInput =
|
|
5671
|
+
var MenuSearchInput = React78.forwardRef(
|
|
5604
5672
|
(_a, ref) => {
|
|
5605
5673
|
var _b = _a, {
|
|
5606
5674
|
className,
|
|
@@ -5621,44 +5689,45 @@ var MenuSearchInput = React77.forwardRef(
|
|
|
5621
5689
|
"defaultValue",
|
|
5622
5690
|
"id"
|
|
5623
5691
|
]);
|
|
5624
|
-
|
|
5692
|
+
var _a2, _b2;
|
|
5693
|
+
const internalRef = React78.useRef(null);
|
|
5625
5694
|
const inputRef = ref || internalRef;
|
|
5626
|
-
const [internalValue, setInternalValue] =
|
|
5695
|
+
const [internalValue, setInternalValue] = React78.useState(
|
|
5627
5696
|
defaultValue || ""
|
|
5628
5697
|
);
|
|
5629
5698
|
const isControlled = value !== void 0;
|
|
5630
5699
|
const currentValue = isControlled ? String(value) : internalValue;
|
|
5631
5700
|
const hasValue = currentValue.length > 0;
|
|
5632
|
-
const generatedId =
|
|
5701
|
+
const generatedId = React78.useId();
|
|
5633
5702
|
const inputId = id || generatedId;
|
|
5634
5703
|
const handleChange = (e) => {
|
|
5635
|
-
var
|
|
5704
|
+
var _a3;
|
|
5636
5705
|
if (!isControlled) {
|
|
5637
5706
|
setInternalValue(e.target.value);
|
|
5638
5707
|
}
|
|
5639
|
-
(
|
|
5708
|
+
(_a3 = props.onChange) == null ? void 0 : _a3.call(props, e);
|
|
5640
5709
|
};
|
|
5641
5710
|
const handleClear = () => {
|
|
5642
|
-
var
|
|
5711
|
+
var _a3;
|
|
5643
5712
|
if (!isControlled) {
|
|
5644
5713
|
setInternalValue("");
|
|
5645
5714
|
}
|
|
5646
5715
|
onClear == null ? void 0 : onClear();
|
|
5647
5716
|
if (inputRef && "current" in inputRef) {
|
|
5648
|
-
(
|
|
5717
|
+
(_a3 = inputRef.current) == null ? void 0 : _a3.focus();
|
|
5649
5718
|
}
|
|
5650
5719
|
};
|
|
5651
|
-
const [isFocused, setIsFocused] =
|
|
5720
|
+
const [isFocused, setIsFocused] = React78.useState(false);
|
|
5652
5721
|
const showShortcut = !!shortcutKey && !hasValue && !isFocused && !disabled;
|
|
5653
5722
|
const handleFocus = (e) => {
|
|
5654
|
-
var
|
|
5723
|
+
var _a3;
|
|
5655
5724
|
setIsFocused(true);
|
|
5656
|
-
(
|
|
5725
|
+
(_a3 = props.onFocus) == null ? void 0 : _a3.call(props, e);
|
|
5657
5726
|
};
|
|
5658
5727
|
const handleBlur = (e) => {
|
|
5659
|
-
var
|
|
5728
|
+
var _a3;
|
|
5660
5729
|
setIsFocused(false);
|
|
5661
|
-
(
|
|
5730
|
+
(_a3 = props.onBlur) == null ? void 0 : _a3.call(props, e);
|
|
5662
5731
|
};
|
|
5663
5732
|
return /* @__PURE__ */ jsx(
|
|
5664
5733
|
"div",
|
|
@@ -5701,13 +5770,15 @@ var MenuSearchInput = React77.forwardRef(
|
|
|
5701
5770
|
type: "search",
|
|
5702
5771
|
role: "searchbox",
|
|
5703
5772
|
disabled,
|
|
5773
|
+
spellCheck: (_a2 = props.spellCheck) != null ? _a2 : false,
|
|
5774
|
+
autoComplete: (_b2 = props.autoComplete) != null ? _b2 : "off",
|
|
5704
5775
|
value: isControlled ? value : internalValue,
|
|
5705
5776
|
onChange: handleChange,
|
|
5706
5777
|
onFocus: handleFocus,
|
|
5707
5778
|
onBlur: handleBlur,
|
|
5708
5779
|
"aria-label": props["aria-label"] || "Search menu",
|
|
5709
5780
|
className: cn(
|
|
5710
|
-
"flex-1 min-w-0 bg-transparent px-1 text-sm leading-5 outline-none",
|
|
5781
|
+
"flex-1 min-w-0 bg-transparent px-1 text-base md:text-sm leading-5 outline-none",
|
|
5711
5782
|
"font-normal",
|
|
5712
5783
|
"text-sui-text-default",
|
|
5713
5784
|
"placeholder:text-sui-text-hint",
|
|
@@ -5739,7 +5810,7 @@ var MenuSearchInput = React77.forwardRef(
|
|
|
5739
5810
|
"flex size-5 shrink-0 items-center justify-center",
|
|
5740
5811
|
"rounded-xs transition-colors",
|
|
5741
5812
|
"text-icon-default-muted",
|
|
5742
|
-
"hover:text-icon-default-subtle",
|
|
5813
|
+
"[@media(hover:hover)]:hover:text-icon-default-subtle",
|
|
5743
5814
|
"active:text-icon-default",
|
|
5744
5815
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight"
|
|
5745
5816
|
),
|
|
@@ -5760,7 +5831,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
5760
5831
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
5761
5832
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
5762
5833
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
5763
|
-
var DropdownMenuSubTrigger =
|
|
5834
|
+
var DropdownMenuSubTrigger = React78.forwardRef((_a, ref) => {
|
|
5764
5835
|
var _b = _a, { className, inset, children } = _b, props = __objRest(_b, ["className", "inset", "children"]);
|
|
5765
5836
|
return /* @__PURE__ */ jsxs(
|
|
5766
5837
|
DropdownMenuPrimitive.SubTrigger,
|
|
@@ -5784,7 +5855,7 @@ var DropdownMenuSubTrigger = React77.forwardRef((_a, ref) => {
|
|
|
5784
5855
|
);
|
|
5785
5856
|
});
|
|
5786
5857
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
5787
|
-
var DropdownMenuSubContent =
|
|
5858
|
+
var DropdownMenuSubContent = React78.forwardRef((_a, ref) => {
|
|
5788
5859
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5789
5860
|
return /* @__PURE__ */ jsx(
|
|
5790
5861
|
DropdownMenuPrimitive.SubContent,
|
|
@@ -5799,7 +5870,7 @@ var DropdownMenuSubContent = React77.forwardRef((_a, ref) => {
|
|
|
5799
5870
|
);
|
|
5800
5871
|
});
|
|
5801
5872
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
5802
|
-
var DropdownMenuContent =
|
|
5873
|
+
var DropdownMenuContent = React78.forwardRef((_a, ref) => {
|
|
5803
5874
|
var _b = _a, { className, sideOffset = 4, search, searchValue, onSearchChange, onSearchClear, searchPlaceholder = "Search", children } = _b, props = __objRest(_b, ["className", "sideOffset", "search", "searchValue", "onSearchChange", "onSearchClear", "searchPlaceholder", "children"]);
|
|
5804
5875
|
return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
5805
5876
|
DropdownMenuPrimitive.Content,
|
|
@@ -5837,7 +5908,7 @@ var DropdownMenuContent = React77.forwardRef((_a, ref) => {
|
|
|
5837
5908
|
) });
|
|
5838
5909
|
});
|
|
5839
5910
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
5840
|
-
var DropdownMenuItem =
|
|
5911
|
+
var DropdownMenuItem = React78.forwardRef((_a, ref) => {
|
|
5841
5912
|
var _b = _a, { className, inset, variant = "default" } = _b, props = __objRest(_b, ["className", "inset", "variant"]);
|
|
5842
5913
|
return /* @__PURE__ */ jsx(
|
|
5843
5914
|
DropdownMenuPrimitive.Item,
|
|
@@ -5858,7 +5929,7 @@ var DropdownMenuItem = React77.forwardRef((_a, ref) => {
|
|
|
5858
5929
|
);
|
|
5859
5930
|
});
|
|
5860
5931
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
5861
|
-
var DropdownMenuCheckboxItem =
|
|
5932
|
+
var DropdownMenuCheckboxItem = React78.forwardRef((_a, ref) => {
|
|
5862
5933
|
var _b = _a, { className, children, checked } = _b, props = __objRest(_b, ["className", "children", "checked"]);
|
|
5863
5934
|
return /* @__PURE__ */ jsxs(
|
|
5864
5935
|
DropdownMenuPrimitive.CheckboxItem,
|
|
@@ -5880,7 +5951,7 @@ var DropdownMenuCheckboxItem = React77.forwardRef((_a, ref) => {
|
|
|
5880
5951
|
);
|
|
5881
5952
|
});
|
|
5882
5953
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
5883
|
-
var DropdownMenuRadioItem =
|
|
5954
|
+
var DropdownMenuRadioItem = React78.forwardRef((_a, ref) => {
|
|
5884
5955
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
5885
5956
|
return /* @__PURE__ */ jsxs(
|
|
5886
5957
|
DropdownMenuPrimitive.RadioItem,
|
|
@@ -5901,7 +5972,7 @@ var DropdownMenuRadioItem = React77.forwardRef((_a, ref) => {
|
|
|
5901
5972
|
);
|
|
5902
5973
|
});
|
|
5903
5974
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
5904
|
-
var DropdownMenuLabel =
|
|
5975
|
+
var DropdownMenuLabel = React78.forwardRef((_a, ref) => {
|
|
5905
5976
|
var _b = _a, { className, inset } = _b, props = __objRest(_b, ["className", "inset"]);
|
|
5906
5977
|
return /* @__PURE__ */ jsx(
|
|
5907
5978
|
DropdownMenuPrimitive.Label,
|
|
@@ -5916,7 +5987,7 @@ var DropdownMenuLabel = React77.forwardRef((_a, ref) => {
|
|
|
5916
5987
|
);
|
|
5917
5988
|
});
|
|
5918
5989
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
5919
|
-
var DropdownMenuSeparator =
|
|
5990
|
+
var DropdownMenuSeparator = React78.forwardRef((_a, ref) => {
|
|
5920
5991
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5921
5992
|
return /* @__PURE__ */ jsx(
|
|
5922
5993
|
DropdownMenuPrimitive.Separator,
|
|
@@ -5945,7 +6016,7 @@ var DropdownMenuShortcut = (_a) => {
|
|
|
5945
6016
|
);
|
|
5946
6017
|
};
|
|
5947
6018
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
5948
|
-
var DropdownMenuCaption =
|
|
6019
|
+
var DropdownMenuCaption = React78.forwardRef((_a, ref) => {
|
|
5949
6020
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
5950
6021
|
return /* @__PURE__ */ jsx(
|
|
5951
6022
|
"p",
|
|
@@ -5960,7 +6031,7 @@ var DropdownMenuCaption = React77.forwardRef((_a, ref) => {
|
|
|
5960
6031
|
);
|
|
5961
6032
|
});
|
|
5962
6033
|
DropdownMenuCaption.displayName = "DropdownMenuCaption";
|
|
5963
|
-
var DropdownMenuUserbar =
|
|
6034
|
+
var DropdownMenuUserbar = React78.forwardRef((_a, ref) => {
|
|
5964
6035
|
var _b = _a, { className, name, email, avatar, badge } = _b, props = __objRest(_b, ["className", "name", "email", "avatar", "badge"]);
|
|
5965
6036
|
return /* @__PURE__ */ jsxs(
|
|
5966
6037
|
"div",
|
|
@@ -5985,7 +6056,7 @@ var DropdownMenuUserbar = React77.forwardRef((_a, ref) => {
|
|
|
5985
6056
|
);
|
|
5986
6057
|
});
|
|
5987
6058
|
DropdownMenuUserbar.displayName = "DropdownMenuUserbar";
|
|
5988
|
-
var DropdownMenuLargeItem =
|
|
6059
|
+
var DropdownMenuLargeItem = React78.forwardRef((_a, ref) => {
|
|
5989
6060
|
var _b = _a, { className, label, caption, icon, badge, tailIcon } = _b, props = __objRest(_b, ["className", "label", "caption", "icon", "badge", "tailIcon"]);
|
|
5990
6061
|
return /* @__PURE__ */ jsxs(
|
|
5991
6062
|
DropdownMenuPrimitive.Item,
|
|
@@ -6026,7 +6097,7 @@ var emptyStateVariants = cva(
|
|
|
6026
6097
|
}
|
|
6027
6098
|
}
|
|
6028
6099
|
);
|
|
6029
|
-
var EmptyState =
|
|
6100
|
+
var EmptyState = React78.forwardRef(
|
|
6030
6101
|
(_a, ref) => {
|
|
6031
6102
|
var _b = _a, {
|
|
6032
6103
|
className,
|
|
@@ -6084,14 +6155,15 @@ var EmptyState = React77.forwardRef(
|
|
|
6084
6155
|
EmptyState.displayName = "EmptyState";
|
|
6085
6156
|
function EmptyStateText({
|
|
6086
6157
|
title,
|
|
6087
|
-
description
|
|
6158
|
+
description,
|
|
6159
|
+
titleAs: TitleTag = "h3"
|
|
6088
6160
|
}) {
|
|
6089
6161
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1 text-center w-full", children: [
|
|
6090
|
-
/* @__PURE__ */ jsx(
|
|
6162
|
+
/* @__PURE__ */ jsx(TitleTag, { className: "text-sm font-medium leading-5 text-sui-text-subtle w-full m-0", children: title }),
|
|
6091
6163
|
/* @__PURE__ */ jsx("p", { className: "text-xs leading-4 text-sui-text-muted w-full", children: description })
|
|
6092
6164
|
] });
|
|
6093
6165
|
}
|
|
6094
|
-
var FileUploadArea =
|
|
6166
|
+
var FileUploadArea = React78.forwardRef(
|
|
6095
6167
|
(_a, ref) => {
|
|
6096
6168
|
var _b = _a, {
|
|
6097
6169
|
className,
|
|
@@ -6116,8 +6188,8 @@ var FileUploadArea = React77.forwardRef(
|
|
|
6116
6188
|
"onDrop",
|
|
6117
6189
|
"onDragOver"
|
|
6118
6190
|
]);
|
|
6119
|
-
const [isDragOver, setIsDragOver] =
|
|
6120
|
-
const handleDragOver =
|
|
6191
|
+
const [isDragOver, setIsDragOver] = React78.useState(false);
|
|
6192
|
+
const handleDragOver = React78.useCallback(
|
|
6121
6193
|
(e) => {
|
|
6122
6194
|
if (disabled) return;
|
|
6123
6195
|
e.preventDefault();
|
|
@@ -6126,10 +6198,10 @@ var FileUploadArea = React77.forwardRef(
|
|
|
6126
6198
|
},
|
|
6127
6199
|
[disabled, onDragOver]
|
|
6128
6200
|
);
|
|
6129
|
-
const handleDragLeave =
|
|
6201
|
+
const handleDragLeave = React78.useCallback(() => {
|
|
6130
6202
|
setIsDragOver(false);
|
|
6131
6203
|
}, []);
|
|
6132
|
-
const handleDrop =
|
|
6204
|
+
const handleDrop = React78.useCallback(
|
|
6133
6205
|
(e) => {
|
|
6134
6206
|
if (disabled) return;
|
|
6135
6207
|
e.preventDefault();
|
|
@@ -6138,11 +6210,11 @@ var FileUploadArea = React77.forwardRef(
|
|
|
6138
6210
|
},
|
|
6139
6211
|
[disabled, onDrop]
|
|
6140
6212
|
);
|
|
6141
|
-
const handleClick =
|
|
6213
|
+
const handleClick = React78.useCallback(() => {
|
|
6142
6214
|
if (disabled) return;
|
|
6143
6215
|
onClick == null ? void 0 : onClick();
|
|
6144
6216
|
}, [disabled, onClick]);
|
|
6145
|
-
const handleKeyDown =
|
|
6217
|
+
const handleKeyDown = React78.useCallback(
|
|
6146
6218
|
(e) => {
|
|
6147
6219
|
if (disabled) return;
|
|
6148
6220
|
if (e.key === "Enter" || e.key === " ") {
|
|
@@ -6171,7 +6243,7 @@ var FileUploadArea = React77.forwardRef(
|
|
|
6171
6243
|
// Focus
|
|
6172
6244
|
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default",
|
|
6173
6245
|
// Hover (not disabled)
|
|
6174
|
-
!disabled && "hover:bg-sui-bg-state-secondary-hover cursor-pointer",
|
|
6246
|
+
!disabled && "[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover cursor-pointer",
|
|
6175
6247
|
// Drag-over state
|
|
6176
6248
|
!disabled && isDragOver && "bg-sui-bg-state-secondary-hover",
|
|
6177
6249
|
// Disabled
|
|
@@ -6258,7 +6330,7 @@ var progressBarVariants = cva(
|
|
|
6258
6330
|
}
|
|
6259
6331
|
);
|
|
6260
6332
|
var SEGMENT_COUNT = 10;
|
|
6261
|
-
var ProgressBar =
|
|
6333
|
+
var ProgressBar = React78.forwardRef(
|
|
6262
6334
|
(_a, ref) => {
|
|
6263
6335
|
var _b = _a, {
|
|
6264
6336
|
className,
|
|
@@ -6280,7 +6352,7 @@ var ProgressBar = React77.forwardRef(
|
|
|
6280
6352
|
const clampedValue = Math.min(100, Math.max(0, value != null ? value : 0));
|
|
6281
6353
|
const displayPercentage = `${Math.round(clampedValue)}%`;
|
|
6282
6354
|
const filledSegments = Math.round(clampedValue / 100 * SEGMENT_COUNT);
|
|
6283
|
-
const generatedId =
|
|
6355
|
+
const generatedId = React78.useId();
|
|
6284
6356
|
const labelId = `${generatedId}-label`;
|
|
6285
6357
|
return /* @__PURE__ */ jsxs(
|
|
6286
6358
|
"div",
|
|
@@ -6298,7 +6370,7 @@ var ProgressBar = React77.forwardRef(
|
|
|
6298
6370
|
children: labelText
|
|
6299
6371
|
}
|
|
6300
6372
|
) }),
|
|
6301
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-normal leading-5 text-sui-text-muted", children: displayPercentage }) })
|
|
6373
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsx("span", { className: "text-sm font-normal leading-5 tabular-nums text-sui-text-muted", children: displayPercentage }) })
|
|
6302
6374
|
] }),
|
|
6303
6375
|
variant === "dashed" ? (
|
|
6304
6376
|
/* Dashed variant: 10 individual segments */
|
|
@@ -6366,7 +6438,7 @@ var statusLabel = {
|
|
|
6366
6438
|
uploading: "Uploading...",
|
|
6367
6439
|
failed: "Error"
|
|
6368
6440
|
};
|
|
6369
|
-
var FileUploadCard =
|
|
6441
|
+
var FileUploadCard = React78.forwardRef(
|
|
6370
6442
|
(_a, ref) => {
|
|
6371
6443
|
var _b = _a, {
|
|
6372
6444
|
className,
|
|
@@ -6578,7 +6650,7 @@ var lineColorMap = {
|
|
|
6578
6650
|
warning: "bg-sui-bg-basic-orange-accent",
|
|
6579
6651
|
error: "bg-sui-bg-basic-red-accent"
|
|
6580
6652
|
};
|
|
6581
|
-
var InlineTips =
|
|
6653
|
+
var InlineTips = React78.forwardRef(
|
|
6582
6654
|
(_a, ref) => {
|
|
6583
6655
|
var _b = _a, {
|
|
6584
6656
|
className,
|
|
@@ -6680,7 +6752,7 @@ function validateFile(file, accept, maxSize) {
|
|
|
6680
6752
|
}
|
|
6681
6753
|
return null;
|
|
6682
6754
|
}
|
|
6683
|
-
var FileUpload =
|
|
6755
|
+
var FileUpload = React78.forwardRef(
|
|
6684
6756
|
({
|
|
6685
6757
|
files = [],
|
|
6686
6758
|
onFilesAdded,
|
|
@@ -6701,37 +6773,55 @@ var FileUpload = React77.forwardRef(
|
|
|
6701
6773
|
icon,
|
|
6702
6774
|
className
|
|
6703
6775
|
}, ref) => {
|
|
6704
|
-
const inputRef =
|
|
6705
|
-
const [errors, setErrors] =
|
|
6706
|
-
const
|
|
6707
|
-
|
|
6776
|
+
const inputRef = React78.useRef(null);
|
|
6777
|
+
const [errors, setErrors] = React78.useState([]);
|
|
6778
|
+
const [thumbnails, setThumbnails] = React78.useState(
|
|
6779
|
+
{}
|
|
6780
|
+
);
|
|
6781
|
+
const thumbnailsRef = React78.useRef(thumbnails);
|
|
6782
|
+
React78.useEffect(() => {
|
|
6783
|
+
thumbnailsRef.current = thumbnails;
|
|
6784
|
+
}, [thumbnails]);
|
|
6785
|
+
React78.useEffect(() => {
|
|
6708
6786
|
if (!autoPreview) return;
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
|
|
6712
|
-
|
|
6713
|
-
if (
|
|
6787
|
+
setThumbnails((prev) => {
|
|
6788
|
+
let next = prev;
|
|
6789
|
+
let changed = false;
|
|
6790
|
+
for (const f of files) {
|
|
6791
|
+
if (!f.thumbnail && !next[f.id]) {
|
|
6792
|
+
const url = generateThumbnail(f.file);
|
|
6793
|
+
if (url) {
|
|
6794
|
+
if (!changed) {
|
|
6795
|
+
next = __spreadValues({}, prev);
|
|
6796
|
+
changed = true;
|
|
6797
|
+
}
|
|
6798
|
+
next[f.id] = url;
|
|
6799
|
+
}
|
|
6800
|
+
}
|
|
6714
6801
|
}
|
|
6715
|
-
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6802
|
+
const currentIds = new Set(files.map((f) => f.id));
|
|
6803
|
+
for (const id of Object.keys(prev)) {
|
|
6804
|
+
if (!currentIds.has(id)) {
|
|
6805
|
+
URL.revokeObjectURL(prev[id]);
|
|
6806
|
+
if (!changed) {
|
|
6807
|
+
next = __spreadValues({}, prev);
|
|
6808
|
+
changed = true;
|
|
6809
|
+
}
|
|
6810
|
+
delete next[id];
|
|
6811
|
+
}
|
|
6721
6812
|
}
|
|
6722
|
-
|
|
6813
|
+
return changed ? next : prev;
|
|
6814
|
+
});
|
|
6723
6815
|
}, [files, autoPreview]);
|
|
6724
|
-
|
|
6725
|
-
const cache = thumbnailCache.current;
|
|
6816
|
+
React78.useEffect(() => {
|
|
6726
6817
|
return () => {
|
|
6727
|
-
for (const url of
|
|
6818
|
+
for (const url of Object.values(thumbnailsRef.current)) {
|
|
6728
6819
|
URL.revokeObjectURL(url);
|
|
6729
6820
|
}
|
|
6730
|
-
cache.clear();
|
|
6731
6821
|
};
|
|
6732
6822
|
}, []);
|
|
6733
6823
|
const resolvedDescription = description != null ? description : generateDescription(accept, maxSize, maxFiles);
|
|
6734
|
-
const processFiles =
|
|
6824
|
+
const processFiles = React78.useCallback(
|
|
6735
6825
|
(fileList) => {
|
|
6736
6826
|
const newFiles = Array.from(fileList);
|
|
6737
6827
|
const validationErrors = [];
|
|
@@ -6759,11 +6849,11 @@ var FileUpload = React77.forwardRef(
|
|
|
6759
6849
|
},
|
|
6760
6850
|
[files.length, maxFiles, accept, maxSize, onFilesAdded]
|
|
6761
6851
|
);
|
|
6762
|
-
const handleClick =
|
|
6852
|
+
const handleClick = React78.useCallback(() => {
|
|
6763
6853
|
var _a;
|
|
6764
6854
|
(_a = inputRef.current) == null ? void 0 : _a.click();
|
|
6765
6855
|
}, []);
|
|
6766
|
-
const handleInputChange =
|
|
6856
|
+
const handleInputChange = React78.useCallback(
|
|
6767
6857
|
(e) => {
|
|
6768
6858
|
if (e.target.files && e.target.files.length > 0) {
|
|
6769
6859
|
processFiles(e.target.files);
|
|
@@ -6772,7 +6862,7 @@ var FileUpload = React77.forwardRef(
|
|
|
6772
6862
|
},
|
|
6773
6863
|
[processFiles]
|
|
6774
6864
|
);
|
|
6775
|
-
const handleDrop =
|
|
6865
|
+
const handleDrop = React78.useCallback(
|
|
6776
6866
|
(e) => {
|
|
6777
6867
|
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
6778
6868
|
processFiles(e.dataTransfer.files);
|
|
@@ -6780,10 +6870,10 @@ var FileUpload = React77.forwardRef(
|
|
|
6780
6870
|
},
|
|
6781
6871
|
[processFiles]
|
|
6782
6872
|
);
|
|
6783
|
-
const dismissError =
|
|
6873
|
+
const dismissError = React78.useCallback((index) => {
|
|
6784
6874
|
setErrors((prev) => prev.filter((_, i) => i !== index));
|
|
6785
6875
|
}, []);
|
|
6786
|
-
const handlePaste =
|
|
6876
|
+
const handlePaste = React78.useCallback(
|
|
6787
6877
|
(e) => {
|
|
6788
6878
|
var _a;
|
|
6789
6879
|
if (disabled || !pasteEnabled) return;
|
|
@@ -6804,7 +6894,7 @@ var FileUpload = React77.forwardRef(
|
|
|
6804
6894
|
},
|
|
6805
6895
|
[disabled, pasteEnabled, processFiles]
|
|
6806
6896
|
);
|
|
6807
|
-
const handleCancel =
|
|
6897
|
+
const handleCancel = React78.useCallback(
|
|
6808
6898
|
(id) => {
|
|
6809
6899
|
const uploadFile = files.find((f) => f.id === id);
|
|
6810
6900
|
if (uploadFile == null ? void 0 : uploadFile.abortController) {
|
|
@@ -6880,7 +6970,7 @@ var FileUpload = React77.forwardRef(
|
|
|
6880
6970
|
fileSize: formatBytes(uploadFile.file.size),
|
|
6881
6971
|
state: uploadFile.state,
|
|
6882
6972
|
size: cardSize,
|
|
6883
|
-
thumbnail: (_a = uploadFile.thumbnail) != null ? _a : autoPreview ?
|
|
6973
|
+
thumbnail: (_a = uploadFile.thumbnail) != null ? _a : autoPreview ? thumbnails[uploadFile.id] : void 0,
|
|
6884
6974
|
progress: uploadFile.progress,
|
|
6885
6975
|
onRemove: uploadFile.state === "uploading" && onCancel ? () => handleCancel(uploadFile.id) : onRemove ? () => onRemove(uploadFile.id) : void 0,
|
|
6886
6976
|
onRetry: uploadFile.state === "failed" && onRetry ? () => onRetry(uploadFile.id) : void 0,
|
|
@@ -6921,7 +7011,7 @@ var ariaSortMap = {
|
|
|
6921
7011
|
desc: "descending",
|
|
6922
7012
|
none: "none"
|
|
6923
7013
|
};
|
|
6924
|
-
var GridTableHeaderItem =
|
|
7014
|
+
var GridTableHeaderItem = React78.forwardRef(
|
|
6925
7015
|
(_a, ref) => {
|
|
6926
7016
|
var _b = _a, {
|
|
6927
7017
|
className,
|
|
@@ -7023,7 +7113,7 @@ var gridTableRowVariants = cva(
|
|
|
7023
7113
|
}
|
|
7024
7114
|
}
|
|
7025
7115
|
);
|
|
7026
|
-
var GridTableRow =
|
|
7116
|
+
var GridTableRow = React78.forwardRef(
|
|
7027
7117
|
(_a, ref) => {
|
|
7028
7118
|
var _b = _a, { className, variant = "default", children } = _b, props = __objRest(_b, ["className", "variant", "children"]);
|
|
7029
7119
|
return /* @__PURE__ */ jsx(
|
|
@@ -7039,7 +7129,7 @@ var GridTableRow = React77.forwardRef(
|
|
|
7039
7129
|
}
|
|
7040
7130
|
);
|
|
7041
7131
|
GridTableRow.displayName = "GridTableRow";
|
|
7042
|
-
var GridTableCell =
|
|
7132
|
+
var GridTableCell = React78.forwardRef(
|
|
7043
7133
|
(_a, ref) => {
|
|
7044
7134
|
var _b = _a, { className, bordered = true, children } = _b, props = __objRest(_b, ["className", "bordered", "children"]);
|
|
7045
7135
|
return /* @__PURE__ */ jsx(
|
|
@@ -7083,7 +7173,7 @@ var gridTableSlotItemVariants = cva(
|
|
|
7083
7173
|
}
|
|
7084
7174
|
}
|
|
7085
7175
|
);
|
|
7086
|
-
var GridTableSlotItem =
|
|
7176
|
+
var GridTableSlotItem = React78.forwardRef(
|
|
7087
7177
|
(_a, ref) => {
|
|
7088
7178
|
var _b = _a, {
|
|
7089
7179
|
className,
|
|
@@ -7194,7 +7284,8 @@ var GridTableSlotItem = React77.forwardRef(
|
|
|
7194
7284
|
);
|
|
7195
7285
|
GridTableSlotItem.displayName = "GridTableSlotItem";
|
|
7196
7286
|
var stepperNumberVariants = cva(
|
|
7197
|
-
|
|
7287
|
+
// tabular-nums keeps step counter from jiggling between numbers (Web Interface Guidelines #19)
|
|
7288
|
+
"relative flex items-center justify-center overflow-hidden rounded-full border border-sui-border-darker font-semibold tabular-nums shadow-default transition-colors duration-200",
|
|
7198
7289
|
{
|
|
7199
7290
|
variants: {
|
|
7200
7291
|
size: {
|
|
@@ -7230,7 +7321,7 @@ var stepperNumberVariants = cva(
|
|
|
7230
7321
|
}
|
|
7231
7322
|
}
|
|
7232
7323
|
);
|
|
7233
|
-
var StepperNumber =
|
|
7324
|
+
var StepperNumber = React78.forwardRef(
|
|
7234
7325
|
(_a, ref) => {
|
|
7235
7326
|
var _b = _a, { className, size, color, number = "1" } = _b, props = __objRest(_b, ["className", "size", "color", "number"]);
|
|
7236
7327
|
return /* @__PURE__ */ jsxs(
|
|
@@ -7269,7 +7360,7 @@ var stepperIconVariants = cva(
|
|
|
7269
7360
|
}
|
|
7270
7361
|
}
|
|
7271
7362
|
);
|
|
7272
|
-
var StepperIcon =
|
|
7363
|
+
var StepperIcon = React78.forwardRef(
|
|
7273
7364
|
(_a, ref) => {
|
|
7274
7365
|
var _b = _a, { className, variant = "dot-large", icon } = _b, props = __objRest(_b, ["className", "variant", "icon"]);
|
|
7275
7366
|
return /* @__PURE__ */ jsxs(
|
|
@@ -7323,7 +7414,7 @@ function ConnectorLine({ success }) {
|
|
|
7323
7414
|
}
|
|
7324
7415
|
);
|
|
7325
7416
|
}
|
|
7326
|
-
var HorizontalStepperItem =
|
|
7417
|
+
var HorizontalStepperItem = React78.forwardRef(
|
|
7327
7418
|
(_a, ref) => {
|
|
7328
7419
|
var _b = _a, {
|
|
7329
7420
|
className,
|
|
@@ -7448,7 +7539,7 @@ var HorizontalStepperItem = React77.forwardRef(
|
|
|
7448
7539
|
}
|
|
7449
7540
|
);
|
|
7450
7541
|
HorizontalStepperItem.displayName = "HorizontalStepperItem";
|
|
7451
|
-
var HorizontalStepper =
|
|
7542
|
+
var HorizontalStepper = React78.forwardRef(
|
|
7452
7543
|
(_a, ref) => {
|
|
7453
7544
|
var _b = _a, {
|
|
7454
7545
|
className,
|
|
@@ -7523,13 +7614,15 @@ var HorizontalStepper = React77.forwardRef(
|
|
|
7523
7614
|
}
|
|
7524
7615
|
);
|
|
7525
7616
|
HorizontalStepper.displayName = "HorizontalStepper";
|
|
7526
|
-
var Input =
|
|
7617
|
+
var Input = React78.forwardRef(
|
|
7527
7618
|
(_a, ref) => {
|
|
7528
|
-
var _b = _a, { className, type } = _b, props = __objRest(_b, ["className", "type"]);
|
|
7619
|
+
var _b = _a, { className, type, spellCheck, autoComplete } = _b, props = __objRest(_b, ["className", "type", "spellCheck", "autoComplete"]);
|
|
7529
7620
|
return /* @__PURE__ */ jsx(
|
|
7530
7621
|
"input",
|
|
7531
7622
|
__spreadValues({
|
|
7532
7623
|
type,
|
|
7624
|
+
spellCheck: spellCheck != null ? spellCheck : false,
|
|
7625
|
+
autoComplete: autoComplete != null ? autoComplete : "off",
|
|
7533
7626
|
className: cn(
|
|
7534
7627
|
"flex h-10 w-full rounded-md border border-sui-border-darker bg-sui-bg-input px-3 py-2 text-base ring-offset-sui-bg-default file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-sui-text-default placeholder:text-sui-text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:text-sui-text-hint disabled:pointer-events-none md:text-sm",
|
|
7535
7628
|
className
|
|
@@ -7561,7 +7654,7 @@ var inputButtonVariants = cva(
|
|
|
7561
7654
|
inputButtonStyle: {
|
|
7562
7655
|
default: [
|
|
7563
7656
|
"bg-sui-bg-state-ghost",
|
|
7564
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
7657
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
7565
7658
|
"active:bg-sui-bg-state-ghost-press",
|
|
7566
7659
|
"text-sui-text-default",
|
|
7567
7660
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
@@ -7570,10 +7663,10 @@ var inputButtonVariants = cva(
|
|
|
7570
7663
|
],
|
|
7571
7664
|
muted: [
|
|
7572
7665
|
"bg-sui-bg-state-ghost",
|
|
7573
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
7666
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
7574
7667
|
"active:bg-sui-bg-state-ghost-press",
|
|
7575
7668
|
"text-sui-text-muted",
|
|
7576
|
-
"hover:text-sui-text-default",
|
|
7669
|
+
"[@media(hover:hover)]:hover:text-sui-text-default",
|
|
7577
7670
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
7578
7671
|
"disabled:text-sui-text-hint",
|
|
7579
7672
|
"[&:disabled_i]:text-icon-default-disabled [&:disabled_svg]:text-icon-default-disabled"
|
|
@@ -7581,7 +7674,7 @@ var inputButtonVariants = cva(
|
|
|
7581
7674
|
inline: [
|
|
7582
7675
|
"bg-transparent",
|
|
7583
7676
|
"text-sui-text-muted",
|
|
7584
|
-
"hover:text-sui-text-default",
|
|
7677
|
+
"[@media(hover:hover)]:hover:text-sui-text-default",
|
|
7585
7678
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
7586
7679
|
"disabled:text-sui-text-hint",
|
|
7587
7680
|
"[&:disabled_i]:text-icon-default-disabled [&:disabled_svg]:text-icon-default-disabled"
|
|
@@ -7613,8 +7706,8 @@ var inputButtonVariants = cva(
|
|
|
7613
7706
|
}
|
|
7614
7707
|
}
|
|
7615
7708
|
);
|
|
7616
|
-
var iconOnlyHoverClasses = "hover:[&_i]:text-icon-default-subtle hover:[&_svg]:text-icon-default-subtle active:[&_i]:text-icon-default-subtle active:[&_svg]:text-icon-default-subtle";
|
|
7617
|
-
var InputButton =
|
|
7709
|
+
var iconOnlyHoverClasses = "[@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle [@media(hover:hover)]:hover:[&_svg]:text-icon-default-subtle active:[&_i]:text-icon-default-subtle active:[&_svg]:text-icon-default-subtle";
|
|
7710
|
+
var InputButton = React78.forwardRef(
|
|
7618
7711
|
(_a, ref) => {
|
|
7619
7712
|
var _b = _a, {
|
|
7620
7713
|
className,
|
|
@@ -7649,9 +7742,7 @@ var InputButton = React77.forwardRef(
|
|
|
7649
7742
|
const isIconOnly = variant === "icon-only";
|
|
7650
7743
|
const isShortcut = variant === "shortcut";
|
|
7651
7744
|
const isTags = variant === "tags";
|
|
7652
|
-
|
|
7653
|
-
console.warn("InputButton: icon-only variant requires an `aria-label` for accessibility.");
|
|
7654
|
-
}
|
|
7745
|
+
useDevWarnIconOnlyAriaLabel(isIconOnly, props["aria-label"], props["aria-labelledby"], "InputButton");
|
|
7655
7746
|
const a11yProps = {};
|
|
7656
7747
|
if (isShortcut && shortcutKey && !props["aria-keyshortcuts"]) {
|
|
7657
7748
|
a11yProps["aria-keyshortcuts"] = shortcutKey;
|
|
@@ -7748,7 +7839,7 @@ var InputButton = React77.forwardRef(
|
|
|
7748
7839
|
}
|
|
7749
7840
|
);
|
|
7750
7841
|
InputButton.displayName = "InputButton";
|
|
7751
|
-
var InputStepper =
|
|
7842
|
+
var InputStepper = React78.forwardRef(
|
|
7752
7843
|
({ onIncrement, onDecrement, disabled, className }, ref) => {
|
|
7753
7844
|
return /* @__PURE__ */ jsxs(
|
|
7754
7845
|
"div",
|
|
@@ -7769,7 +7860,7 @@ var InputStepper = React77.forwardRef(
|
|
|
7769
7860
|
className: cn(
|
|
7770
7861
|
"flex flex-1 w-full min-h-0 items-center justify-center",
|
|
7771
7862
|
"transition-colors",
|
|
7772
|
-
"hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
7863
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
7773
7864
|
"focus-visible:outline-none focus-visible:bg-sui-bg-state-ghost-hover",
|
|
7774
7865
|
"disabled:pointer-events-none",
|
|
7775
7866
|
disabled ? "[&_i]:text-icon-default-disabled [&_svg]:text-icon-default-disabled" : "[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted"
|
|
@@ -7791,7 +7882,7 @@ var InputStepper = React77.forwardRef(
|
|
|
7791
7882
|
className: cn(
|
|
7792
7883
|
"flex flex-1 w-full min-h-0 items-center justify-center",
|
|
7793
7884
|
"transition-colors",
|
|
7794
|
-
"hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
7885
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press",
|
|
7795
7886
|
"focus-visible:outline-none focus-visible:bg-sui-bg-state-ghost-hover",
|
|
7796
7887
|
"disabled:pointer-events-none",
|
|
7797
7888
|
disabled ? "[&_i]:text-icon-default-disabled [&_svg]:text-icon-default-disabled" : "[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted"
|
|
@@ -7805,7 +7896,7 @@ var InputStepper = React77.forwardRef(
|
|
|
7805
7896
|
}
|
|
7806
7897
|
);
|
|
7807
7898
|
InputStepper.displayName = "InputStepper";
|
|
7808
|
-
var NavigationMenu =
|
|
7899
|
+
var NavigationMenu = React78.forwardRef((_a, ref) => {
|
|
7809
7900
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
7810
7901
|
return /* @__PURE__ */ jsxs(
|
|
7811
7902
|
NavigationMenuPrimitive.Root,
|
|
@@ -7824,7 +7915,7 @@ var NavigationMenu = React77.forwardRef((_a, ref) => {
|
|
|
7824
7915
|
);
|
|
7825
7916
|
});
|
|
7826
7917
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
7827
|
-
var NavigationMenuList =
|
|
7918
|
+
var NavigationMenuList = React78.forwardRef((_a, ref) => {
|
|
7828
7919
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7829
7920
|
return /* @__PURE__ */ jsx(
|
|
7830
7921
|
NavigationMenuPrimitive.List,
|
|
@@ -7840,9 +7931,9 @@ var NavigationMenuList = React77.forwardRef((_a, ref) => {
|
|
|
7840
7931
|
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
7841
7932
|
var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
7842
7933
|
var navigationMenuTriggerStyle = cva(
|
|
7843
|
-
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium text-sui-text-default transition-colors hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-default focus:bg-sui-bg-state-ghost-hover focus:text-sui-text-default focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default disabled:text-sui-text-hint disabled:pointer-events-none data-[state=open]:text-sui-text-default data-[state=open]:bg-sui-bg-state-ghost-hover"
|
|
7934
|
+
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium text-sui-text-default transition-colors [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-default focus:bg-sui-bg-state-ghost-hover focus:text-sui-text-default focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 focus-visible:ring-offset-sui-bg-default disabled:text-sui-text-hint disabled:pointer-events-none data-[state=open]:text-sui-text-default data-[state=open]:bg-sui-bg-state-ghost-hover"
|
|
7844
7935
|
);
|
|
7845
|
-
var NavigationMenuTrigger =
|
|
7936
|
+
var NavigationMenuTrigger = React78.forwardRef((_a, ref) => {
|
|
7846
7937
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
7847
7938
|
return /* @__PURE__ */ jsxs(
|
|
7848
7939
|
NavigationMenuPrimitive.Trigger,
|
|
@@ -7865,7 +7956,7 @@ var NavigationMenuTrigger = React77.forwardRef((_a, ref) => {
|
|
|
7865
7956
|
);
|
|
7866
7957
|
});
|
|
7867
7958
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
7868
|
-
var NavigationMenuContent =
|
|
7959
|
+
var NavigationMenuContent = React78.forwardRef((_a, ref) => {
|
|
7869
7960
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7870
7961
|
return /* @__PURE__ */ jsx(
|
|
7871
7962
|
NavigationMenuPrimitive.Content,
|
|
@@ -7880,7 +7971,7 @@ var NavigationMenuContent = React77.forwardRef((_a, ref) => {
|
|
|
7880
7971
|
});
|
|
7881
7972
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
7882
7973
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
7883
|
-
var NavigationMenuViewport =
|
|
7974
|
+
var NavigationMenuViewport = React78.forwardRef((_a, ref) => {
|
|
7884
7975
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7885
7976
|
return /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
|
|
7886
7977
|
NavigationMenuPrimitive.Viewport,
|
|
@@ -7894,7 +7985,7 @@ var NavigationMenuViewport = React77.forwardRef((_a, ref) => {
|
|
|
7894
7985
|
) });
|
|
7895
7986
|
});
|
|
7896
7987
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
7897
|
-
var NavigationMenuIndicator =
|
|
7988
|
+
var NavigationMenuIndicator = React78.forwardRef((_a, ref) => {
|
|
7898
7989
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
7899
7990
|
return /* @__PURE__ */ jsx(
|
|
7900
7991
|
NavigationMenuPrimitive.Indicator,
|
|
@@ -7927,8 +8018,8 @@ var pageItemVariants = cva(
|
|
|
7927
8018
|
"inline-flex items-center justify-center",
|
|
7928
8019
|
"size-8 min-h-8 min-w-8",
|
|
7929
8020
|
"rounded-sm overflow-clip cursor-pointer",
|
|
7930
|
-
// Typography
|
|
7931
|
-
"font-sans font-medium text-sm leading-5 text-center whitespace-nowrap",
|
|
8021
|
+
// Typography — tabular-nums keeps page numbers from jiggling as values change (Web Interface Guidelines #19)
|
|
8022
|
+
"font-sans font-medium text-sm leading-5 text-center whitespace-nowrap tabular-nums",
|
|
7932
8023
|
// Default state
|
|
7933
8024
|
"bg-sui-bg-state-ghost text-sui-text-hint",
|
|
7934
8025
|
// Hover state
|
|
@@ -7965,7 +8056,7 @@ var activeDotClasses = [
|
|
|
7965
8056
|
"bg-sui-bg-basic-blue-accent",
|
|
7966
8057
|
"[@media(hover:hover)]:hover:bg-sui-bg-basic-blue-accent"
|
|
7967
8058
|
].join(" ");
|
|
7968
|
-
var PageItem =
|
|
8059
|
+
var PageItem = React78.forwardRef(
|
|
7969
8060
|
(_a, ref) => {
|
|
7970
8061
|
var _b = _a, { className, variant = "default", active = false, label = "0", disabled, asChild = false } = _b, props = __objRest(_b, ["className", "variant", "active", "label", "disabled", "asChild"]);
|
|
7971
8062
|
const Comp = asChild ? Slot : "button";
|
|
@@ -8000,7 +8091,7 @@ var Pagination = (_a) => {
|
|
|
8000
8091
|
);
|
|
8001
8092
|
};
|
|
8002
8093
|
Pagination.displayName = "Pagination";
|
|
8003
|
-
var PaginationContent =
|
|
8094
|
+
var PaginationContent = React78.forwardRef((_a, ref) => {
|
|
8004
8095
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8005
8096
|
return /* @__PURE__ */ jsx(
|
|
8006
8097
|
"ul",
|
|
@@ -8011,7 +8102,7 @@ var PaginationContent = React77.forwardRef((_a, ref) => {
|
|
|
8011
8102
|
);
|
|
8012
8103
|
});
|
|
8013
8104
|
PaginationContent.displayName = "PaginationContent";
|
|
8014
|
-
var PaginationItem =
|
|
8105
|
+
var PaginationItem = React78.forwardRef((_a, ref) => {
|
|
8015
8106
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8016
8107
|
return /* @__PURE__ */ jsx("li", __spreadValues({ ref, className: cn("", className) }, props));
|
|
8017
8108
|
});
|
|
@@ -8132,7 +8223,7 @@ function getPageRange(currentPage, totalPages, maxVisible) {
|
|
|
8132
8223
|
}
|
|
8133
8224
|
return pages;
|
|
8134
8225
|
}
|
|
8135
|
-
var Paginator =
|
|
8226
|
+
var Paginator = React78.forwardRef(
|
|
8136
8227
|
(_a, ref) => {
|
|
8137
8228
|
var _b = _a, {
|
|
8138
8229
|
className,
|
|
@@ -8312,7 +8403,7 @@ var Paginator = React77.forwardRef(
|
|
|
8312
8403
|
}
|
|
8313
8404
|
);
|
|
8314
8405
|
Paginator.displayName = "Paginator";
|
|
8315
|
-
var Progress =
|
|
8406
|
+
var Progress = React78.forwardRef((_a, ref) => {
|
|
8316
8407
|
var _b = _a, { className, value } = _b, props = __objRest(_b, ["className", "value"]);
|
|
8317
8408
|
return /* @__PURE__ */ jsx(
|
|
8318
8409
|
ProgressPrimitive2.Root,
|
|
@@ -8362,7 +8453,7 @@ var arcStrokeVarMap = {
|
|
|
8362
8453
|
success: "var(--text-success)",
|
|
8363
8454
|
failed: "var(--text-destructive)"
|
|
8364
8455
|
};
|
|
8365
|
-
var RadialProgressBar =
|
|
8456
|
+
var RadialProgressBar = React78.forwardRef(
|
|
8366
8457
|
(_a, ref) => {
|
|
8367
8458
|
var _b = _a, {
|
|
8368
8459
|
className,
|
|
@@ -8464,7 +8555,8 @@ var RadialProgressBar = React77.forwardRef(
|
|
|
8464
8555
|
{
|
|
8465
8556
|
"aria-hidden": "true",
|
|
8466
8557
|
className: cn(
|
|
8467
|
-
|
|
8558
|
+
// tabular-nums keeps percentage from jiggling as value changes (Web Interface Guidelines #19)
|
|
8559
|
+
"absolute text-sm font-medium leading-5 tabular-nums text-center select-none",
|
|
8468
8560
|
textVariantMap[variant != null ? variant : "default"],
|
|
8469
8561
|
isHalf ? "bottom-0" : ""
|
|
8470
8562
|
),
|
|
@@ -8481,7 +8573,7 @@ var RadialProgressBar = React77.forwardRef(
|
|
|
8481
8573
|
}
|
|
8482
8574
|
);
|
|
8483
8575
|
RadialProgressBar.displayName = "RadialProgressBar";
|
|
8484
|
-
var RadioGroup2 =
|
|
8576
|
+
var RadioGroup2 = React78.forwardRef((_a, ref) => {
|
|
8485
8577
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8486
8578
|
return /* @__PURE__ */ jsx(
|
|
8487
8579
|
RadioGroupPrimitive.Root,
|
|
@@ -8508,10 +8600,10 @@ var radioButtonVariants = cva(
|
|
|
8508
8600
|
"data-[state=checked]:bg-sui-bg-checkbox-active",
|
|
8509
8601
|
"data-[state=checked]:border-sui-bg-checkbox-active",
|
|
8510
8602
|
// Hover unchecked: stronger border
|
|
8511
|
-
"hover:data-[state=unchecked]:border-sui-border-strong",
|
|
8603
|
+
"[@media(hover:hover)]:hover:data-[state=unchecked]:border-sui-border-strong",
|
|
8512
8604
|
// Hover checked: hover bg + matching border
|
|
8513
|
-
"hover:data-[state=checked]:bg-sui-bg-checkbox-active-hover",
|
|
8514
|
-
"hover:data-[state=checked]:border-sui-bg-checkbox-active-hover",
|
|
8605
|
+
"[@media(hover:hover)]:hover:data-[state=checked]:bg-sui-bg-checkbox-active-hover",
|
|
8606
|
+
"[@media(hover:hover)]:hover:data-[state=checked]:border-sui-bg-checkbox-active-hover",
|
|
8515
8607
|
// Focus ring (Figma: 1px accent-inverted + 3px highlight)
|
|
8516
8608
|
"focus-visible:outline-none",
|
|
8517
8609
|
"focus-visible:shadow-misc-focus",
|
|
@@ -8541,7 +8633,7 @@ var radioButtonVariants = cva(
|
|
|
8541
8633
|
}
|
|
8542
8634
|
}
|
|
8543
8635
|
);
|
|
8544
|
-
var RadioButton =
|
|
8636
|
+
var RadioButton = React78.forwardRef((_a, ref) => {
|
|
8545
8637
|
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
8546
8638
|
return /* @__PURE__ */ jsxs(
|
|
8547
8639
|
RadioGroupPrimitive.Item,
|
|
@@ -8581,7 +8673,7 @@ var RadioButton = React77.forwardRef((_a, ref) => {
|
|
|
8581
8673
|
);
|
|
8582
8674
|
});
|
|
8583
8675
|
RadioButton.displayName = "RadioButton";
|
|
8584
|
-
var RadioCardGroup =
|
|
8676
|
+
var RadioCardGroup = React78.forwardRef((_a, ref) => {
|
|
8585
8677
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8586
8678
|
return /* @__PURE__ */ jsx(
|
|
8587
8679
|
RadioGroupPrimitive.Root,
|
|
@@ -8630,7 +8722,7 @@ var radioButtonCardVariants = cva(
|
|
|
8630
8722
|
}
|
|
8631
8723
|
}
|
|
8632
8724
|
);
|
|
8633
|
-
var RadioButtonCard =
|
|
8725
|
+
var RadioButtonCard = React78.forwardRef(
|
|
8634
8726
|
({
|
|
8635
8727
|
title,
|
|
8636
8728
|
description,
|
|
@@ -8644,7 +8736,7 @@ var RadioButtonCard = React77.forwardRef(
|
|
|
8644
8736
|
disabled = false,
|
|
8645
8737
|
className
|
|
8646
8738
|
}, ref) => {
|
|
8647
|
-
const generatedId =
|
|
8739
|
+
const generatedId = React78.useId();
|
|
8648
8740
|
const titleId = `radio-card-title-${generatedId}`;
|
|
8649
8741
|
const descriptionId = `radio-card-desc-${generatedId}`;
|
|
8650
8742
|
const isHorizontal = layout === "horizontal";
|
|
@@ -8752,9 +8844,9 @@ var RadioButtonCard = React77.forwardRef(
|
|
|
8752
8844
|
}
|
|
8753
8845
|
);
|
|
8754
8846
|
RadioButtonCard.displayName = "RadioButtonCard";
|
|
8755
|
-
var RadioButtonList =
|
|
8847
|
+
var RadioButtonList = React78.forwardRef(
|
|
8756
8848
|
({ className, divider = true, value, defaultValue, onValueChange, disabled, children }, ref) => {
|
|
8757
|
-
const items =
|
|
8849
|
+
const items = React78.Children.toArray(children);
|
|
8758
8850
|
return /* @__PURE__ */ jsx(
|
|
8759
8851
|
RadioGroup2,
|
|
8760
8852
|
{
|
|
@@ -8798,7 +8890,7 @@ var radioButtonWithTextVariants = cva(
|
|
|
8798
8890
|
}
|
|
8799
8891
|
}
|
|
8800
8892
|
);
|
|
8801
|
-
var RadioButtonWithText =
|
|
8893
|
+
var RadioButtonWithText = React78.forwardRef(
|
|
8802
8894
|
({
|
|
8803
8895
|
label,
|
|
8804
8896
|
description,
|
|
@@ -8809,7 +8901,7 @@ var RadioButtonWithText = React77.forwardRef(
|
|
|
8809
8901
|
className,
|
|
8810
8902
|
id
|
|
8811
8903
|
}, ref) => {
|
|
8812
|
-
const generatedId =
|
|
8904
|
+
const generatedId = React78.useId();
|
|
8813
8905
|
const radioId = id || generatedId;
|
|
8814
8906
|
return /* @__PURE__ */ jsxs(
|
|
8815
8907
|
"div",
|
|
@@ -8864,7 +8956,7 @@ var RadioButtonWithText = React77.forwardRef(
|
|
|
8864
8956
|
}
|
|
8865
8957
|
);
|
|
8866
8958
|
RadioButtonWithText.displayName = "RadioButtonWithText";
|
|
8867
|
-
var ScrollArea =
|
|
8959
|
+
var ScrollArea = React78.forwardRef((_a, ref) => {
|
|
8868
8960
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
8869
8961
|
return /* @__PURE__ */ jsxs(
|
|
8870
8962
|
ScrollAreaPrimitive.Root,
|
|
@@ -8881,7 +8973,7 @@ var ScrollArea = React77.forwardRef((_a, ref) => {
|
|
|
8881
8973
|
);
|
|
8882
8974
|
});
|
|
8883
8975
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
8884
|
-
var ScrollBar =
|
|
8976
|
+
var ScrollBar = React78.forwardRef((_a, ref) => {
|
|
8885
8977
|
var _b = _a, { className, orientation = "vertical" } = _b, props = __objRest(_b, ["className", "orientation"]);
|
|
8886
8978
|
return /* @__PURE__ */ jsx(
|
|
8887
8979
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
@@ -8903,7 +8995,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
|
8903
8995
|
var Select = SelectPrimitive.Root;
|
|
8904
8996
|
var SelectGroup = SelectPrimitive.Group;
|
|
8905
8997
|
var SelectValue = SelectPrimitive.Value;
|
|
8906
|
-
var SelectTrigger =
|
|
8998
|
+
var SelectTrigger = React78.forwardRef((_a, ref) => {
|
|
8907
8999
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
8908
9000
|
return /* @__PURE__ */ jsxs(
|
|
8909
9001
|
SelectPrimitive.Trigger,
|
|
@@ -8926,7 +9018,7 @@ var SelectTrigger = React77.forwardRef((_a, ref) => {
|
|
|
8926
9018
|
);
|
|
8927
9019
|
});
|
|
8928
9020
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
8929
|
-
var SelectScrollUpButton =
|
|
9021
|
+
var SelectScrollUpButton = React78.forwardRef((_a, ref) => {
|
|
8930
9022
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8931
9023
|
return /* @__PURE__ */ jsx(
|
|
8932
9024
|
SelectPrimitive.ScrollUpButton,
|
|
@@ -8942,7 +9034,7 @@ var SelectScrollUpButton = React77.forwardRef((_a, ref) => {
|
|
|
8942
9034
|
);
|
|
8943
9035
|
});
|
|
8944
9036
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
8945
|
-
var SelectScrollDownButton =
|
|
9037
|
+
var SelectScrollDownButton = React78.forwardRef((_a, ref) => {
|
|
8946
9038
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8947
9039
|
return /* @__PURE__ */ jsx(
|
|
8948
9040
|
SelectPrimitive.ScrollDownButton,
|
|
@@ -8958,7 +9050,7 @@ var SelectScrollDownButton = React77.forwardRef((_a, ref) => {
|
|
|
8958
9050
|
);
|
|
8959
9051
|
});
|
|
8960
9052
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
8961
|
-
var SelectContent =
|
|
9053
|
+
var SelectContent = React78.forwardRef((_a, ref) => {
|
|
8962
9054
|
var _b = _a, { className, children, position = "popper" } = _b, props = __objRest(_b, ["className", "children", "position"]);
|
|
8963
9055
|
return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
8964
9056
|
SelectPrimitive.Content,
|
|
@@ -8991,7 +9083,7 @@ var SelectContent = React77.forwardRef((_a, ref) => {
|
|
|
8991
9083
|
) });
|
|
8992
9084
|
});
|
|
8993
9085
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
8994
|
-
var SelectLabel =
|
|
9086
|
+
var SelectLabel = React78.forwardRef((_a, ref) => {
|
|
8995
9087
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
8996
9088
|
return /* @__PURE__ */ jsx(
|
|
8997
9089
|
SelectPrimitive.Label,
|
|
@@ -9005,7 +9097,7 @@ var SelectLabel = React77.forwardRef((_a, ref) => {
|
|
|
9005
9097
|
);
|
|
9006
9098
|
});
|
|
9007
9099
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
9008
|
-
var SelectItem =
|
|
9100
|
+
var SelectItem = React78.forwardRef((_a, ref) => {
|
|
9009
9101
|
var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
|
|
9010
9102
|
return /* @__PURE__ */ jsxs(
|
|
9011
9103
|
SelectPrimitive.Item,
|
|
@@ -9030,7 +9122,7 @@ var SelectItem = React77.forwardRef((_a, ref) => {
|
|
|
9030
9122
|
);
|
|
9031
9123
|
});
|
|
9032
9124
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
9033
|
-
var SelectSeparator =
|
|
9125
|
+
var SelectSeparator = React78.forwardRef((_a, ref) => {
|
|
9034
9126
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9035
9127
|
return /* @__PURE__ */ jsx(
|
|
9036
9128
|
SelectPrimitive.Separator,
|
|
@@ -9041,7 +9133,7 @@ var SelectSeparator = React77.forwardRef((_a, ref) => {
|
|
|
9041
9133
|
);
|
|
9042
9134
|
});
|
|
9043
9135
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
9044
|
-
var SelectMenu =
|
|
9136
|
+
var SelectMenu = React78.forwardRef(
|
|
9045
9137
|
(_a, ref) => {
|
|
9046
9138
|
var _b = _a, {
|
|
9047
9139
|
className,
|
|
@@ -9072,19 +9164,19 @@ var SelectMenu = React77.forwardRef(
|
|
|
9072
9164
|
]);
|
|
9073
9165
|
var _a2;
|
|
9074
9166
|
const indicator = selectType === "checkbox" ? "checkbox" : selectType === "radio" ? "radio" : selectType === "default" ? "checkmark" : "none";
|
|
9075
|
-
const hasChildren =
|
|
9076
|
-
const generatedId =
|
|
9167
|
+
const hasChildren = React78.Children.count(children) > 0;
|
|
9168
|
+
const generatedId = React78.useId();
|
|
9077
9169
|
const listId = `${generatedId}-list`;
|
|
9078
|
-
const listRef =
|
|
9079
|
-
const [activeIndex, setActiveIndex] =
|
|
9170
|
+
const listRef = React78.useRef(null);
|
|
9171
|
+
const [activeIndex, setActiveIndex] = React78.useState(-1);
|
|
9080
9172
|
const activeItemId = activeIndex >= 0 ? `${listId}-item-${activeIndex}` : void 0;
|
|
9081
|
-
const getItems =
|
|
9173
|
+
const getItems = React78.useCallback(() => {
|
|
9082
9174
|
if (!listRef.current) return [];
|
|
9083
9175
|
return Array.from(
|
|
9084
9176
|
listRef.current.querySelectorAll('[role="option"]')
|
|
9085
9177
|
);
|
|
9086
9178
|
}, []);
|
|
9087
|
-
const handleKeyDown =
|
|
9179
|
+
const handleKeyDown = React78.useCallback(
|
|
9088
9180
|
(e) => {
|
|
9089
9181
|
var _a3;
|
|
9090
9182
|
const items = getItems();
|
|
@@ -9167,8 +9259,8 @@ var SelectMenu = React77.forwardRef(
|
|
|
9167
9259
|
"focus-visible:outline-none"
|
|
9168
9260
|
),
|
|
9169
9261
|
style: listMaxHeight ? { maxHeight: listMaxHeight } : void 0,
|
|
9170
|
-
children: hasChildren ? /* @__PURE__ */ jsx("div", { className: "flex flex-col px-1", role: "presentation", children:
|
|
9171
|
-
if (
|
|
9262
|
+
children: hasChildren ? /* @__PURE__ */ jsx("div", { className: "flex flex-col px-1", role: "presentation", children: React78.Children.map(children, (child, index) => {
|
|
9263
|
+
if (React78.isValidElement(child) && child.type.displayName === "SelectMenuItem") {
|
|
9172
9264
|
const itemProps = child.props;
|
|
9173
9265
|
const overrides = {};
|
|
9174
9266
|
if (indicator !== "none" && itemProps.indicator === void 0) {
|
|
@@ -9185,7 +9277,7 @@ var SelectMenu = React77.forwardRef(
|
|
|
9185
9277
|
overrides["data-active"] = "true";
|
|
9186
9278
|
}
|
|
9187
9279
|
if (Object.keys(overrides).length > 0) {
|
|
9188
|
-
return
|
|
9280
|
+
return React78.cloneElement(
|
|
9189
9281
|
child,
|
|
9190
9282
|
overrides
|
|
9191
9283
|
);
|
|
@@ -9210,7 +9302,7 @@ var SelectMenu = React77.forwardRef(
|
|
|
9210
9302
|
}
|
|
9211
9303
|
);
|
|
9212
9304
|
SelectMenu.displayName = "SelectMenu";
|
|
9213
|
-
var SelectMenuFooterButton =
|
|
9305
|
+
var SelectMenuFooterButton = React78.forwardRef((_a, ref) => {
|
|
9214
9306
|
var _b = _a, { className, icon = "ri-add-line", children = "Add new", disabled } = _b, props = __objRest(_b, ["className", "icon", "children", "disabled"]);
|
|
9215
9307
|
return /* @__PURE__ */ jsxs(
|
|
9216
9308
|
"button",
|
|
@@ -9224,7 +9316,7 @@ var SelectMenuFooterButton = React77.forwardRef((_a, ref) => {
|
|
|
9224
9316
|
"px-2.5 py-2",
|
|
9225
9317
|
// Colors
|
|
9226
9318
|
"bg-sui-bg-state-ghost",
|
|
9227
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
9319
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
9228
9320
|
"active:bg-sui-bg-state-ghost-press",
|
|
9229
9321
|
"text-sm font-medium leading-5 text-sui-text-default",
|
|
9230
9322
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
@@ -9253,7 +9345,7 @@ var SelectMenuFooterButton = React77.forwardRef((_a, ref) => {
|
|
|
9253
9345
|
);
|
|
9254
9346
|
});
|
|
9255
9347
|
SelectMenuFooterButton.displayName = "SelectMenuFooterButton";
|
|
9256
|
-
var SelectInput =
|
|
9348
|
+
var SelectInput = React78.forwardRef(
|
|
9257
9349
|
({
|
|
9258
9350
|
label,
|
|
9259
9351
|
required,
|
|
@@ -9285,10 +9377,10 @@ var SelectInput = React77.forwardRef(
|
|
|
9285
9377
|
footer,
|
|
9286
9378
|
className
|
|
9287
9379
|
}, ref) => {
|
|
9288
|
-
const [internalOpen, setInternalOpen] =
|
|
9380
|
+
const [internalOpen, setInternalOpen] = React78.useState(false);
|
|
9289
9381
|
const isControlled = controlledOpen !== void 0;
|
|
9290
9382
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
9291
|
-
const handleOpenChange =
|
|
9383
|
+
const handleOpenChange = React78.useCallback(
|
|
9292
9384
|
(next) => {
|
|
9293
9385
|
if (disabled) return;
|
|
9294
9386
|
if (!isControlled) setInternalOpen(next);
|
|
@@ -9296,7 +9388,7 @@ var SelectInput = React77.forwardRef(
|
|
|
9296
9388
|
},
|
|
9297
9389
|
[disabled, isControlled, onOpenChange]
|
|
9298
9390
|
);
|
|
9299
|
-
const generatedId =
|
|
9391
|
+
const generatedId = React78.useId();
|
|
9300
9392
|
const hasError = !!error;
|
|
9301
9393
|
const helperText = hasError ? error : caption;
|
|
9302
9394
|
const hasTags = tags && tags.length > 0;
|
|
@@ -9323,7 +9415,6 @@ var SelectInput = React77.forwardRef(
|
|
|
9323
9415
|
"aria-expanded": isOpen,
|
|
9324
9416
|
"aria-haspopup": "listbox",
|
|
9325
9417
|
"aria-controls": `${generatedId}-listbox`,
|
|
9326
|
-
"aria-multiselectable": multiSelect || void 0,
|
|
9327
9418
|
"aria-invalid": hasError || void 0,
|
|
9328
9419
|
"aria-describedby": helperText ? `${generatedId}-caption` : void 0,
|
|
9329
9420
|
disabled,
|
|
@@ -9341,8 +9432,8 @@ var SelectInput = React77.forwardRef(
|
|
|
9341
9432
|
// Padding
|
|
9342
9433
|
"px-2",
|
|
9343
9434
|
// Hover
|
|
9344
|
-
!isSoft && "hover:border-sui-border-strong",
|
|
9345
|
-
isSoft && "hover:bg-sui-bg-input-soft",
|
|
9435
|
+
!isSoft && "[@media(hover:hover)]:hover:border-sui-border-strong",
|
|
9436
|
+
isSoft && "[@media(hover:hover)]:hover:bg-sui-bg-input-soft",
|
|
9346
9437
|
// Focus / Open
|
|
9347
9438
|
"data-[state=open]:bg-sui-bg-input data-[state=open]:shadow-input-focus",
|
|
9348
9439
|
"focus-visible:outline-none focus-visible:shadow-input-focus",
|
|
@@ -9353,7 +9444,7 @@ var SelectInput = React77.forwardRef(
|
|
|
9353
9444
|
hasError && "data-[state=open]:shadow-destructive-focus",
|
|
9354
9445
|
// Disabled
|
|
9355
9446
|
disabled && "bg-sui-bg-input-disabled shadow-none cursor-not-allowed",
|
|
9356
|
-
disabled && !isSoft && "border-sui-border-default hover:border-sui-border-default",
|
|
9447
|
+
disabled && !isSoft && "border-sui-border-default [@media(hover:hover)]:hover:border-sui-border-default",
|
|
9357
9448
|
disabled && isSoft && "border-sui-border-default"
|
|
9358
9449
|
),
|
|
9359
9450
|
children: [
|
|
@@ -9376,7 +9467,7 @@ var SelectInput = React77.forwardRef(
|
|
|
9376
9467
|
children: leadIcon
|
|
9377
9468
|
}
|
|
9378
9469
|
) : null,
|
|
9379
|
-
hasTags ? /* @__PURE__ */ jsx("span", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden", children: tags.map((tag, i) => /* @__PURE__ */ jsxs(
|
|
9470
|
+
hasTags ? /* @__PURE__ */ jsx("span", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden", children: tags.map((tag, i) => /* @__PURE__ */ jsxs(React78.Fragment, { children: [
|
|
9380
9471
|
i > 0 && /* @__PURE__ */ jsx(
|
|
9381
9472
|
"span",
|
|
9382
9473
|
{
|
|
@@ -9439,6 +9530,8 @@ var SelectInput = React77.forwardRef(
|
|
|
9439
9530
|
PopoverPrimitive.Content,
|
|
9440
9531
|
__spreadProps(__spreadValues({
|
|
9441
9532
|
id: `${generatedId}-listbox`,
|
|
9533
|
+
role: "listbox",
|
|
9534
|
+
"aria-multiselectable": multiSelect || void 0,
|
|
9442
9535
|
align: "start",
|
|
9443
9536
|
sideOffset: 6,
|
|
9444
9537
|
className: cn(
|
|
@@ -9491,7 +9584,7 @@ var SelectInput = React77.forwardRef(
|
|
|
9491
9584
|
}
|
|
9492
9585
|
);
|
|
9493
9586
|
SelectInput.displayName = "SelectInput";
|
|
9494
|
-
var SelectMenuItem =
|
|
9587
|
+
var SelectMenuItem = React78.forwardRef(
|
|
9495
9588
|
(_a, ref) => {
|
|
9496
9589
|
var _b = _a, {
|
|
9497
9590
|
className,
|
|
@@ -9527,7 +9620,7 @@ var SelectMenuItem = React77.forwardRef(
|
|
|
9527
9620
|
// Layout
|
|
9528
9621
|
"group relative flex w-full cursor-default select-none items-center gap-1.5 rounded-xs p-1.5 text-sm outline-none transition-colors",
|
|
9529
9622
|
// Hover / Active (keyboard navigation)
|
|
9530
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
9623
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
9531
9624
|
"data-[active=true]:bg-sui-bg-state-ghost-hover",
|
|
9532
9625
|
// Focus
|
|
9533
9626
|
"focus-visible:bg-sui-bg-state-ghost-hover focus-visible:outline-none",
|
|
@@ -9655,7 +9748,7 @@ var SelectMenuItem = React77.forwardRef(
|
|
|
9655
9748
|
}
|
|
9656
9749
|
);
|
|
9657
9750
|
SelectMenuItem.displayName = "SelectMenuItem";
|
|
9658
|
-
var SelectMenuLabel =
|
|
9751
|
+
var SelectMenuLabel = React78.forwardRef(
|
|
9659
9752
|
(_a, ref) => {
|
|
9660
9753
|
var _b = _a, { className, caption, children } = _b, props = __objRest(_b, ["className", "caption", "children"]);
|
|
9661
9754
|
return /* @__PURE__ */ jsxs(
|
|
@@ -9677,7 +9770,7 @@ var SelectMenuLabel = React77.forwardRef(
|
|
|
9677
9770
|
}
|
|
9678
9771
|
);
|
|
9679
9772
|
SelectMenuLabel.displayName = "SelectMenuLabel";
|
|
9680
|
-
var SelectMenuDescription =
|
|
9773
|
+
var SelectMenuDescription = React78.forwardRef((_a, ref) => {
|
|
9681
9774
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9682
9775
|
return /* @__PURE__ */ jsx(
|
|
9683
9776
|
"p",
|
|
@@ -9691,7 +9784,7 @@ var SelectMenuDescription = React77.forwardRef((_a, ref) => {
|
|
|
9691
9784
|
);
|
|
9692
9785
|
});
|
|
9693
9786
|
SelectMenuDescription.displayName = "SelectMenuDescription";
|
|
9694
|
-
var SelectMenuSeparator =
|
|
9787
|
+
var SelectMenuSeparator = React78.forwardRef((_a, ref) => {
|
|
9695
9788
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9696
9789
|
return /* @__PURE__ */ jsx(
|
|
9697
9790
|
"div",
|
|
@@ -9703,7 +9796,7 @@ var SelectMenuSeparator = React77.forwardRef((_a, ref) => {
|
|
|
9703
9796
|
);
|
|
9704
9797
|
});
|
|
9705
9798
|
SelectMenuSeparator.displayName = "SelectMenuSeparator";
|
|
9706
|
-
var SelectMenuLargeItem =
|
|
9799
|
+
var SelectMenuLargeItem = React78.forwardRef(
|
|
9707
9800
|
(_a, ref) => {
|
|
9708
9801
|
var _b = _a, {
|
|
9709
9802
|
className,
|
|
@@ -9733,7 +9826,7 @@ var SelectMenuLargeItem = React77.forwardRef(
|
|
|
9733
9826
|
disabled,
|
|
9734
9827
|
className: cn(
|
|
9735
9828
|
"group relative flex w-full cursor-default select-none items-center rounded-xs px-2 py-1.5 outline-none transition-colors",
|
|
9736
|
-
"hover:bg-sui-bg-state-ghost-hover",
|
|
9829
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover",
|
|
9737
9830
|
"focus-visible:bg-sui-bg-state-ghost-hover focus-visible:outline-none",
|
|
9738
9831
|
"disabled:pointer-events-none",
|
|
9739
9832
|
className
|
|
@@ -9799,7 +9892,7 @@ var SelectMenuLargeItem = React77.forwardRef(
|
|
|
9799
9892
|
}
|
|
9800
9893
|
);
|
|
9801
9894
|
SelectMenuLargeItem.displayName = "SelectMenuLargeItem";
|
|
9802
|
-
var Separator3 =
|
|
9895
|
+
var Separator3 = React78.forwardRef(
|
|
9803
9896
|
(_a, ref) => {
|
|
9804
9897
|
var _b = _a, { className, orientation = "horizontal", decorative = true } = _b, props = __objRest(_b, ["className", "orientation", "decorative"]);
|
|
9805
9898
|
return /* @__PURE__ */ jsx(
|
|
@@ -9822,7 +9915,7 @@ var Sheet = DialogPrimitive.Root;
|
|
|
9822
9915
|
var SheetTrigger = DialogPrimitive.Trigger;
|
|
9823
9916
|
var SheetClose = DialogPrimitive.Close;
|
|
9824
9917
|
var SheetPortal = DialogPrimitive.Portal;
|
|
9825
|
-
var SheetOverlay =
|
|
9918
|
+
var SheetOverlay = React78.forwardRef((_a, ref) => {
|
|
9826
9919
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9827
9920
|
return /* @__PURE__ */ jsx(
|
|
9828
9921
|
DialogPrimitive.Overlay,
|
|
@@ -9853,7 +9946,7 @@ var sheetVariants = cva(
|
|
|
9853
9946
|
}
|
|
9854
9947
|
}
|
|
9855
9948
|
);
|
|
9856
|
-
var SheetContent =
|
|
9949
|
+
var SheetContent = React78.forwardRef((_a, ref) => {
|
|
9857
9950
|
var _b = _a, { side = "right", className, children } = _b, props = __objRest(_b, ["side", "className", "children"]);
|
|
9858
9951
|
return /* @__PURE__ */ jsxs(SheetPortal, { children: [
|
|
9859
9952
|
/* @__PURE__ */ jsx(SheetOverlay, {}),
|
|
@@ -9865,7 +9958,7 @@ var SheetContent = React77.forwardRef((_a, ref) => {
|
|
|
9865
9958
|
}, props), {
|
|
9866
9959
|
children: [
|
|
9867
9960
|
children,
|
|
9868
|
-
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-sui-bg-default transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-sui-bg-state-ghost-hover", children: [
|
|
9961
|
+
/* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-sui-bg-default transition-opacity [@media(hover:hover)]:hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-sui-bg-state-ghost-hover", children: [
|
|
9869
9962
|
/* @__PURE__ */ jsx("i", { className: "ri-close-line text-base", "aria-hidden": true }),
|
|
9870
9963
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
9871
9964
|
] })
|
|
@@ -9909,7 +10002,7 @@ var SheetFooter = (_a) => {
|
|
|
9909
10002
|
);
|
|
9910
10003
|
};
|
|
9911
10004
|
SheetFooter.displayName = "SheetFooter";
|
|
9912
|
-
var SheetTitle =
|
|
10005
|
+
var SheetTitle = React78.forwardRef((_a, ref) => {
|
|
9913
10006
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9914
10007
|
return /* @__PURE__ */ jsx(
|
|
9915
10008
|
DialogPrimitive.Title,
|
|
@@ -9920,7 +10013,7 @@ var SheetTitle = React77.forwardRef((_a, ref) => {
|
|
|
9920
10013
|
);
|
|
9921
10014
|
});
|
|
9922
10015
|
SheetTitle.displayName = DialogPrimitive.Title.displayName;
|
|
9923
|
-
var SheetDescription =
|
|
10016
|
+
var SheetDescription = React78.forwardRef((_a, ref) => {
|
|
9924
10017
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
9925
10018
|
return /* @__PURE__ */ jsx(
|
|
9926
10019
|
DialogPrimitive.Description,
|
|
@@ -9933,8 +10026,8 @@ var SheetDescription = React77.forwardRef((_a, ref) => {
|
|
|
9933
10026
|
SheetDescription.displayName = DialogPrimitive.Description.displayName;
|
|
9934
10027
|
var MOBILE_BREAKPOINT = 768;
|
|
9935
10028
|
function useIsMobile() {
|
|
9936
|
-
const [isMobile, setIsMobile] =
|
|
9937
|
-
|
|
10029
|
+
const [isMobile, setIsMobile] = React78.useState(void 0);
|
|
10030
|
+
React78.useEffect(() => {
|
|
9938
10031
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
9939
10032
|
const onChange = () => {
|
|
9940
10033
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -9964,15 +10057,15 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
9964
10057
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
9965
10058
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
9966
10059
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
9967
|
-
var SidebarContext =
|
|
10060
|
+
var SidebarContext = React78.createContext(null);
|
|
9968
10061
|
function useSidebar() {
|
|
9969
|
-
const context =
|
|
10062
|
+
const context = React78.useContext(SidebarContext);
|
|
9970
10063
|
if (!context) {
|
|
9971
10064
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
9972
10065
|
}
|
|
9973
10066
|
return context;
|
|
9974
10067
|
}
|
|
9975
|
-
var SidebarProvider =
|
|
10068
|
+
var SidebarProvider = React78.forwardRef(
|
|
9976
10069
|
(_a, ref) => {
|
|
9977
10070
|
var _b = _a, {
|
|
9978
10071
|
defaultOpen = true,
|
|
@@ -9990,10 +10083,10 @@ var SidebarProvider = React77.forwardRef(
|
|
|
9990
10083
|
"children"
|
|
9991
10084
|
]);
|
|
9992
10085
|
const isMobile = useIsMobile();
|
|
9993
|
-
const [openMobile, setOpenMobile] =
|
|
9994
|
-
const [_open, _setOpen] =
|
|
10086
|
+
const [openMobile, setOpenMobile] = React78.useState(false);
|
|
10087
|
+
const [_open, _setOpen] = React78.useState(defaultOpen);
|
|
9995
10088
|
const open = openProp != null ? openProp : _open;
|
|
9996
|
-
const setOpen =
|
|
10089
|
+
const setOpen = React78.useCallback(
|
|
9997
10090
|
(value) => {
|
|
9998
10091
|
const openState = typeof value === "function" ? value(open) : value;
|
|
9999
10092
|
if (setOpenProp) {
|
|
@@ -10005,10 +10098,10 @@ var SidebarProvider = React77.forwardRef(
|
|
|
10005
10098
|
},
|
|
10006
10099
|
[setOpenProp, open]
|
|
10007
10100
|
);
|
|
10008
|
-
const toggleSidebar =
|
|
10101
|
+
const toggleSidebar = React78.useCallback(() => {
|
|
10009
10102
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
10010
10103
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
10011
|
-
|
|
10104
|
+
React78.useEffect(() => {
|
|
10012
10105
|
const handleKeyDown = (event) => {
|
|
10013
10106
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
10014
10107
|
event.preventDefault();
|
|
@@ -10019,7 +10112,7 @@ var SidebarProvider = React77.forwardRef(
|
|
|
10019
10112
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
10020
10113
|
}, [toggleSidebar]);
|
|
10021
10114
|
const state = open ? "expanded" : "collapsed";
|
|
10022
|
-
const contextValue =
|
|
10115
|
+
const contextValue = React78.useMemo(
|
|
10023
10116
|
() => ({
|
|
10024
10117
|
state,
|
|
10025
10118
|
open,
|
|
@@ -10050,7 +10143,7 @@ var SidebarProvider = React77.forwardRef(
|
|
|
10050
10143
|
}
|
|
10051
10144
|
);
|
|
10052
10145
|
SidebarProvider.displayName = "SidebarProvider";
|
|
10053
|
-
var Sidebar =
|
|
10146
|
+
var Sidebar = React78.forwardRef(
|
|
10054
10147
|
(_a, ref) => {
|
|
10055
10148
|
var _b = _a, {
|
|
10056
10149
|
side = "left",
|
|
@@ -10149,7 +10242,7 @@ var Sidebar = React77.forwardRef(
|
|
|
10149
10242
|
}
|
|
10150
10243
|
);
|
|
10151
10244
|
Sidebar.displayName = "Sidebar";
|
|
10152
|
-
var SidebarTrigger =
|
|
10245
|
+
var SidebarTrigger = React78.forwardRef((_a, ref) => {
|
|
10153
10246
|
var _b = _a, { className, onClick } = _b, props = __objRest(_b, ["className", "onClick"]);
|
|
10154
10247
|
const { toggleSidebar } = useSidebar();
|
|
10155
10248
|
return /* @__PURE__ */ jsxs(
|
|
@@ -10174,7 +10267,7 @@ var SidebarTrigger = React77.forwardRef((_a, ref) => {
|
|
|
10174
10267
|
);
|
|
10175
10268
|
});
|
|
10176
10269
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
10177
|
-
var SidebarRail =
|
|
10270
|
+
var SidebarRail = React78.forwardRef((_a, ref) => {
|
|
10178
10271
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10179
10272
|
const { toggleSidebar } = useSidebar();
|
|
10180
10273
|
return /* @__PURE__ */ jsx(
|
|
@@ -10187,10 +10280,10 @@ var SidebarRail = React77.forwardRef((_a, ref) => {
|
|
|
10187
10280
|
onClick: toggleSidebar,
|
|
10188
10281
|
title: "Toggle Sidebar",
|
|
10189
10282
|
className: cn(
|
|
10190
|
-
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
|
|
10283
|
+
"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] [@media(hover:hover)]:hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
|
|
10191
10284
|
"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize",
|
|
10192
10285
|
"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
|
|
10193
|
-
"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
|
|
10286
|
+
"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:[@media(hover:hover)]:hover:bg-sidebar",
|
|
10194
10287
|
"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
|
|
10195
10288
|
"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
|
|
10196
10289
|
className
|
|
@@ -10199,7 +10292,7 @@ var SidebarRail = React77.forwardRef((_a, ref) => {
|
|
|
10199
10292
|
);
|
|
10200
10293
|
});
|
|
10201
10294
|
SidebarRail.displayName = "SidebarRail";
|
|
10202
|
-
var SidebarInset =
|
|
10295
|
+
var SidebarInset = React78.forwardRef((_a, ref) => {
|
|
10203
10296
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10204
10297
|
return /* @__PURE__ */ jsx(
|
|
10205
10298
|
"main",
|
|
@@ -10214,7 +10307,7 @@ var SidebarInset = React77.forwardRef((_a, ref) => {
|
|
|
10214
10307
|
);
|
|
10215
10308
|
});
|
|
10216
10309
|
SidebarInset.displayName = "SidebarInset";
|
|
10217
|
-
var SidebarInput =
|
|
10310
|
+
var SidebarInput = React78.forwardRef((_a, ref) => {
|
|
10218
10311
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10219
10312
|
return /* @__PURE__ */ jsx(
|
|
10220
10313
|
Input,
|
|
@@ -10229,7 +10322,7 @@ var SidebarInput = React77.forwardRef((_a, ref) => {
|
|
|
10229
10322
|
);
|
|
10230
10323
|
});
|
|
10231
10324
|
SidebarInput.displayName = "SidebarInput";
|
|
10232
|
-
var SidebarHeader =
|
|
10325
|
+
var SidebarHeader = React78.forwardRef((_a, ref) => {
|
|
10233
10326
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10234
10327
|
return /* @__PURE__ */ jsx(
|
|
10235
10328
|
"div",
|
|
@@ -10241,7 +10334,7 @@ var SidebarHeader = React77.forwardRef((_a, ref) => {
|
|
|
10241
10334
|
);
|
|
10242
10335
|
});
|
|
10243
10336
|
SidebarHeader.displayName = "SidebarHeader";
|
|
10244
|
-
var SidebarFooter =
|
|
10337
|
+
var SidebarFooter = React78.forwardRef((_a, ref) => {
|
|
10245
10338
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10246
10339
|
return /* @__PURE__ */ jsx(
|
|
10247
10340
|
"div",
|
|
@@ -10253,7 +10346,7 @@ var SidebarFooter = React77.forwardRef((_a, ref) => {
|
|
|
10253
10346
|
);
|
|
10254
10347
|
});
|
|
10255
10348
|
SidebarFooter.displayName = "SidebarFooter";
|
|
10256
|
-
var SidebarSeparator =
|
|
10349
|
+
var SidebarSeparator = React78.forwardRef((_a, ref) => {
|
|
10257
10350
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10258
10351
|
return /* @__PURE__ */ jsx(
|
|
10259
10352
|
Separator3,
|
|
@@ -10265,7 +10358,7 @@ var SidebarSeparator = React77.forwardRef((_a, ref) => {
|
|
|
10265
10358
|
);
|
|
10266
10359
|
});
|
|
10267
10360
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
10268
|
-
var SidebarContent =
|
|
10361
|
+
var SidebarContent = React78.forwardRef((_a, ref) => {
|
|
10269
10362
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10270
10363
|
return /* @__PURE__ */ jsx(
|
|
10271
10364
|
"div",
|
|
@@ -10280,7 +10373,7 @@ var SidebarContent = React77.forwardRef((_a, ref) => {
|
|
|
10280
10373
|
);
|
|
10281
10374
|
});
|
|
10282
10375
|
SidebarContent.displayName = "SidebarContent";
|
|
10283
|
-
var SidebarGroup =
|
|
10376
|
+
var SidebarGroup = React78.forwardRef((_a, ref) => {
|
|
10284
10377
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10285
10378
|
return /* @__PURE__ */ jsx(
|
|
10286
10379
|
"div",
|
|
@@ -10292,7 +10385,7 @@ var SidebarGroup = React77.forwardRef((_a, ref) => {
|
|
|
10292
10385
|
);
|
|
10293
10386
|
});
|
|
10294
10387
|
SidebarGroup.displayName = "SidebarGroup";
|
|
10295
|
-
var SidebarGroupLabel =
|
|
10388
|
+
var SidebarGroupLabel = React78.forwardRef((_a, ref) => {
|
|
10296
10389
|
var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
|
|
10297
10390
|
const Comp = asChild ? Slot : "div";
|
|
10298
10391
|
return /* @__PURE__ */ jsx(
|
|
@@ -10309,7 +10402,7 @@ var SidebarGroupLabel = React77.forwardRef((_a, ref) => {
|
|
|
10309
10402
|
);
|
|
10310
10403
|
});
|
|
10311
10404
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
10312
|
-
var SidebarGroupAction =
|
|
10405
|
+
var SidebarGroupAction = React78.forwardRef((_a, ref) => {
|
|
10313
10406
|
var _b = _a, { className, asChild = false } = _b, props = __objRest(_b, ["className", "asChild"]);
|
|
10314
10407
|
const Comp = asChild ? Slot : "button";
|
|
10315
10408
|
return /* @__PURE__ */ jsx(
|
|
@@ -10318,7 +10411,7 @@ var SidebarGroupAction = React77.forwardRef((_a, ref) => {
|
|
|
10318
10411
|
ref,
|
|
10319
10412
|
"data-sidebar": "group-action",
|
|
10320
10413
|
className: cn(
|
|
10321
|
-
"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10414
|
+
"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform [@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10322
10415
|
// Increases the hit area of the button on mobile.
|
|
10323
10416
|
"after:absolute after:-inset-2 after:md:hidden",
|
|
10324
10417
|
"group-data-[collapsible=icon]:hidden",
|
|
@@ -10328,7 +10421,7 @@ var SidebarGroupAction = React77.forwardRef((_a, ref) => {
|
|
|
10328
10421
|
);
|
|
10329
10422
|
});
|
|
10330
10423
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
10331
|
-
var SidebarGroupContent =
|
|
10424
|
+
var SidebarGroupContent = React78.forwardRef((_a, ref) => {
|
|
10332
10425
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10333
10426
|
return /* @__PURE__ */ jsx(
|
|
10334
10427
|
"div",
|
|
@@ -10340,7 +10433,7 @@ var SidebarGroupContent = React77.forwardRef((_a, ref) => {
|
|
|
10340
10433
|
);
|
|
10341
10434
|
});
|
|
10342
10435
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
10343
|
-
var SidebarMenu =
|
|
10436
|
+
var SidebarMenu = React78.forwardRef((_a, ref) => {
|
|
10344
10437
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10345
10438
|
return /* @__PURE__ */ jsx(
|
|
10346
10439
|
"ul",
|
|
@@ -10352,7 +10445,7 @@ var SidebarMenu = React77.forwardRef((_a, ref) => {
|
|
|
10352
10445
|
);
|
|
10353
10446
|
});
|
|
10354
10447
|
SidebarMenu.displayName = "SidebarMenu";
|
|
10355
|
-
var SidebarMenuItem =
|
|
10448
|
+
var SidebarMenuItem = React78.forwardRef((_a, ref) => {
|
|
10356
10449
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10357
10450
|
return /* @__PURE__ */ jsx(
|
|
10358
10451
|
"li",
|
|
@@ -10365,12 +10458,12 @@ var SidebarMenuItem = React77.forwardRef((_a, ref) => {
|
|
|
10365
10458
|
});
|
|
10366
10459
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
10367
10460
|
var sidebarMenuButtonVariants = cva(
|
|
10368
|
-
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10461
|
+
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] [@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:[@media(hover:hover)]:hover:bg-sidebar-accent data-[state=open]:[@media(hover:hover)]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10369
10462
|
{
|
|
10370
10463
|
variants: {
|
|
10371
10464
|
variant: {
|
|
10372
|
-
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
10373
|
-
outline: "bg-sui-bg-default shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
|
|
10465
|
+
default: "[@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground",
|
|
10466
|
+
outline: "bg-sui-bg-default shadow-[0_0_0_1px_hsl(var(--sidebar-border))] [@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground [@media(hover:hover)]:hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
|
|
10374
10467
|
},
|
|
10375
10468
|
size: {
|
|
10376
10469
|
default: "h-8 text-sm",
|
|
@@ -10384,7 +10477,7 @@ var sidebarMenuButtonVariants = cva(
|
|
|
10384
10477
|
}
|
|
10385
10478
|
}
|
|
10386
10479
|
);
|
|
10387
|
-
var SidebarMenuButton =
|
|
10480
|
+
var SidebarMenuButton = React78.forwardRef(
|
|
10388
10481
|
(_a, ref) => {
|
|
10389
10482
|
var _b = _a, {
|
|
10390
10483
|
asChild = false,
|
|
@@ -10435,7 +10528,7 @@ var SidebarMenuButton = React77.forwardRef(
|
|
|
10435
10528
|
}
|
|
10436
10529
|
);
|
|
10437
10530
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
10438
|
-
var SidebarMenuAction =
|
|
10531
|
+
var SidebarMenuAction = React78.forwardRef((_a, ref) => {
|
|
10439
10532
|
var _b = _a, { className, asChild = false, showOnHover = false } = _b, props = __objRest(_b, ["className", "asChild", "showOnHover"]);
|
|
10440
10533
|
const Comp = asChild ? Slot : "button";
|
|
10441
10534
|
return /* @__PURE__ */ jsx(
|
|
@@ -10444,7 +10537,7 @@ var SidebarMenuAction = React77.forwardRef((_a, ref) => {
|
|
|
10444
10537
|
ref,
|
|
10445
10538
|
"data-sidebar": "menu-action",
|
|
10446
10539
|
className: cn(
|
|
10447
|
-
"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10540
|
+
"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform [@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
|
|
10448
10541
|
// Increases the hit area of the button on mobile.
|
|
10449
10542
|
"after:absolute after:-inset-2 after:md:hidden",
|
|
10450
10543
|
"peer-data-[size=sm]/menu-button:top-1",
|
|
@@ -10458,7 +10551,7 @@ var SidebarMenuAction = React77.forwardRef((_a, ref) => {
|
|
|
10458
10551
|
);
|
|
10459
10552
|
});
|
|
10460
10553
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
10461
|
-
var SidebarMenuBadge =
|
|
10554
|
+
var SidebarMenuBadge = React78.forwardRef((_a, ref) => {
|
|
10462
10555
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10463
10556
|
return /* @__PURE__ */ jsx(
|
|
10464
10557
|
"div",
|
|
@@ -10478,11 +10571,13 @@ var SidebarMenuBadge = React77.forwardRef((_a, ref) => {
|
|
|
10478
10571
|
);
|
|
10479
10572
|
});
|
|
10480
10573
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
10481
|
-
var SidebarMenuSkeleton =
|
|
10574
|
+
var SidebarMenuSkeleton = React78.forwardRef((_a, ref) => {
|
|
10482
10575
|
var _b = _a, { className, showIcon = false } = _b, props = __objRest(_b, ["className", "showIcon"]);
|
|
10483
|
-
const
|
|
10484
|
-
|
|
10485
|
-
|
|
10576
|
+
const id = React78.useId();
|
|
10577
|
+
const width = React78.useMemo(() => {
|
|
10578
|
+
const hash = id.split("").reduce((a, c) => a + c.charCodeAt(0), 0);
|
|
10579
|
+
return `${hash % 40 + 50}%`;
|
|
10580
|
+
}, [id]);
|
|
10486
10581
|
return /* @__PURE__ */ jsxs(
|
|
10487
10582
|
"div",
|
|
10488
10583
|
__spreadProps(__spreadValues({
|
|
@@ -10513,7 +10608,7 @@ var SidebarMenuSkeleton = React77.forwardRef((_a, ref) => {
|
|
|
10513
10608
|
);
|
|
10514
10609
|
});
|
|
10515
10610
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
10516
|
-
var SidebarMenuSub =
|
|
10611
|
+
var SidebarMenuSub = React78.forwardRef((_a, ref) => {
|
|
10517
10612
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
10518
10613
|
return /* @__PURE__ */ jsx(
|
|
10519
10614
|
"ul",
|
|
@@ -10529,12 +10624,12 @@ var SidebarMenuSub = React77.forwardRef((_a, ref) => {
|
|
|
10529
10624
|
);
|
|
10530
10625
|
});
|
|
10531
10626
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
10532
|
-
var SidebarMenuSubItem =
|
|
10627
|
+
var SidebarMenuSubItem = React78.forwardRef((_a, ref) => {
|
|
10533
10628
|
var props = __objRest(_a, []);
|
|
10534
10629
|
return /* @__PURE__ */ jsx("li", __spreadValues({ ref }, props));
|
|
10535
10630
|
});
|
|
10536
10631
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
10537
|
-
var SidebarMenuSubButton =
|
|
10632
|
+
var SidebarMenuSubButton = React78.forwardRef((_a, ref) => {
|
|
10538
10633
|
var _b = _a, { asChild = false, size = "md", isActive, className } = _b, props = __objRest(_b, ["asChild", "size", "isActive", "className"]);
|
|
10539
10634
|
const Comp = asChild ? Slot : "a";
|
|
10540
10635
|
return /* @__PURE__ */ jsx(
|
|
@@ -10545,7 +10640,7 @@ var SidebarMenuSubButton = React77.forwardRef((_a, ref) => {
|
|
|
10545
10640
|
"data-size": size,
|
|
10546
10641
|
"data-active": isActive,
|
|
10547
10642
|
className: cn(
|
|
10548
|
-
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
10643
|
+
"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring [@media(hover:hover)]:hover:bg-sidebar-accent [@media(hover:hover)]:hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
|
|
10549
10644
|
"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
|
|
10550
10645
|
size === "sm" && "text-xs",
|
|
10551
10646
|
size === "md" && "text-sm",
|
|
@@ -10574,7 +10669,7 @@ var sidebarCardVariants = cva(
|
|
|
10574
10669
|
}
|
|
10575
10670
|
}
|
|
10576
10671
|
);
|
|
10577
|
-
var SidebarCard =
|
|
10672
|
+
var SidebarCard = React78.forwardRef(
|
|
10578
10673
|
(_a, ref) => {
|
|
10579
10674
|
var _b = _a, { className, variant, children } = _b, props = __objRest(_b, ["className", "variant", "children"]);
|
|
10580
10675
|
return /* @__PURE__ */ jsx(
|
|
@@ -10613,7 +10708,7 @@ var sidebarMenuItemVariants = cva("", {
|
|
|
10613
10708
|
variant: "default"
|
|
10614
10709
|
}
|
|
10615
10710
|
});
|
|
10616
|
-
var SidebarMenuItem2 =
|
|
10711
|
+
var SidebarMenuItem2 = React78.forwardRef(
|
|
10617
10712
|
(_a, ref) => {
|
|
10618
10713
|
var _b = _a, {
|
|
10619
10714
|
className,
|
|
@@ -10809,7 +10904,7 @@ function percent2(value, min, max) {
|
|
|
10809
10904
|
if (max === min) return 0;
|
|
10810
10905
|
return (value - min) / (max - min) * 100;
|
|
10811
10906
|
}
|
|
10812
|
-
var Slider =
|
|
10907
|
+
var Slider = React78.forwardRef(
|
|
10813
10908
|
(_a, ref) => {
|
|
10814
10909
|
var _b = _a, {
|
|
10815
10910
|
className,
|
|
@@ -10842,12 +10937,12 @@ var Slider = React77.forwardRef(
|
|
|
10842
10937
|
"formatValue",
|
|
10843
10938
|
"onValueChange"
|
|
10844
10939
|
]);
|
|
10845
|
-
const trackRef =
|
|
10846
|
-
const [isDragging, setIsDragging] =
|
|
10847
|
-
const [isFocused, setIsFocused] =
|
|
10940
|
+
const trackRef = React78.useRef(null);
|
|
10941
|
+
const [isDragging, setIsDragging] = React78.useState(false);
|
|
10942
|
+
const [isFocused, setIsFocused] = React78.useState(false);
|
|
10848
10943
|
const pct = percent2(value, min, max);
|
|
10849
10944
|
const displayValue = formatValue ? formatValue(value) : `${value}`;
|
|
10850
|
-
const getValueFromPointer =
|
|
10945
|
+
const getValueFromPointer = React78.useCallback(
|
|
10851
10946
|
(clientX) => {
|
|
10852
10947
|
const track = trackRef.current;
|
|
10853
10948
|
if (!track) return 0;
|
|
@@ -10858,7 +10953,7 @@ var Slider = React77.forwardRef(
|
|
|
10858
10953
|
},
|
|
10859
10954
|
[min, max, step]
|
|
10860
10955
|
);
|
|
10861
|
-
const handlePointerDown =
|
|
10956
|
+
const handlePointerDown = React78.useCallback(
|
|
10862
10957
|
(e) => {
|
|
10863
10958
|
if (disabled) return;
|
|
10864
10959
|
e.preventDefault();
|
|
@@ -10869,7 +10964,7 @@ var Slider = React77.forwardRef(
|
|
|
10869
10964
|
},
|
|
10870
10965
|
[disabled, getValueFromPointer, onValueChange, value]
|
|
10871
10966
|
);
|
|
10872
|
-
const handlePointerMove =
|
|
10967
|
+
const handlePointerMove = React78.useCallback(
|
|
10873
10968
|
(e) => {
|
|
10874
10969
|
if (!isDragging || disabled) return;
|
|
10875
10970
|
const newValue = getValueFromPointer(e.clientX);
|
|
@@ -10877,10 +10972,10 @@ var Slider = React77.forwardRef(
|
|
|
10877
10972
|
},
|
|
10878
10973
|
[isDragging, disabled, getValueFromPointer, onValueChange, value]
|
|
10879
10974
|
);
|
|
10880
|
-
const handlePointerUp =
|
|
10975
|
+
const handlePointerUp = React78.useCallback(() => {
|
|
10881
10976
|
setIsDragging(false);
|
|
10882
10977
|
}, []);
|
|
10883
|
-
const handleKeyDown =
|
|
10978
|
+
const handleKeyDown = React78.useCallback(
|
|
10884
10979
|
(e) => {
|
|
10885
10980
|
if (disabled) return;
|
|
10886
10981
|
let newValue = value;
|
|
@@ -10907,7 +11002,7 @@ var Slider = React77.forwardRef(
|
|
|
10907
11002
|
},
|
|
10908
11003
|
[disabled, value, step, min, max, onValueChange]
|
|
10909
11004
|
);
|
|
10910
|
-
const tickLabels =
|
|
11005
|
+
const tickLabels = React78.useMemo(() => {
|
|
10911
11006
|
if (pointLabels) return pointLabels;
|
|
10912
11007
|
const count2 = pointCount;
|
|
10913
11008
|
const labels = [];
|
|
@@ -11001,7 +11096,7 @@ Slider.displayName = "Slider";
|
|
|
11001
11096
|
function clamp3(value, min, max) {
|
|
11002
11097
|
return Math.min(Math.max(value, min), max);
|
|
11003
11098
|
}
|
|
11004
|
-
var SliderInput =
|
|
11099
|
+
var SliderInput = React78.forwardRef(
|
|
11005
11100
|
(_a, ref) => {
|
|
11006
11101
|
var _b = _a, {
|
|
11007
11102
|
className,
|
|
@@ -11024,8 +11119,8 @@ var SliderInput = React77.forwardRef(
|
|
|
11024
11119
|
"formatValue",
|
|
11025
11120
|
"onValueChange"
|
|
11026
11121
|
]);
|
|
11027
|
-
const [internalValue, setInternalValue] =
|
|
11028
|
-
|
|
11122
|
+
const [internalValue, setInternalValue] = React78.useState(value);
|
|
11123
|
+
React78.useEffect(() => {
|
|
11029
11124
|
setInternalValue(value);
|
|
11030
11125
|
}, [value]);
|
|
11031
11126
|
const commit = (newVal) => {
|
|
@@ -11132,7 +11227,7 @@ function percent3(value, min, max) {
|
|
|
11132
11227
|
if (max === min) return 0;
|
|
11133
11228
|
return (value - min) / (max - min) * 100;
|
|
11134
11229
|
}
|
|
11135
|
-
var SliderRange =
|
|
11230
|
+
var SliderRange = React78.forwardRef(
|
|
11136
11231
|
(_a, ref) => {
|
|
11137
11232
|
var _b = _a, {
|
|
11138
11233
|
className,
|
|
@@ -11165,15 +11260,15 @@ var SliderRange = React77.forwardRef(
|
|
|
11165
11260
|
"formatValue",
|
|
11166
11261
|
"onValueChange"
|
|
11167
11262
|
]);
|
|
11168
|
-
const trackRef =
|
|
11169
|
-
const [draggingHandle, setDraggingHandle] =
|
|
11170
|
-
const [focusedHandle, setFocusedHandle] =
|
|
11263
|
+
const trackRef = React78.useRef(null);
|
|
11264
|
+
const [draggingHandle, setDraggingHandle] = React78.useState(null);
|
|
11265
|
+
const [focusedHandle, setFocusedHandle] = React78.useState(null);
|
|
11171
11266
|
const [rangeMin, rangeMax] = value;
|
|
11172
11267
|
const pctMin = percent3(rangeMin, min, max);
|
|
11173
11268
|
const pctMax = percent3(rangeMax, min, max);
|
|
11174
11269
|
const fmt = (v) => formatValue ? formatValue(v) : `${v}`;
|
|
11175
11270
|
const displayValue = `${fmt(rangeMin)} \u2013 ${fmt(rangeMax)}`;
|
|
11176
|
-
const getValueFromPointer =
|
|
11271
|
+
const getValueFromPointer = React78.useCallback(
|
|
11177
11272
|
(clientX) => {
|
|
11178
11273
|
const track = trackRef.current;
|
|
11179
11274
|
if (!track) return 0;
|
|
@@ -11184,7 +11279,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11184
11279
|
},
|
|
11185
11280
|
[min, max, step]
|
|
11186
11281
|
);
|
|
11187
|
-
const closestHandle =
|
|
11282
|
+
const closestHandle = React78.useCallback(
|
|
11188
11283
|
(pointerValue) => {
|
|
11189
11284
|
const distMin = Math.abs(pointerValue - rangeMin);
|
|
11190
11285
|
const distMax = Math.abs(pointerValue - rangeMax);
|
|
@@ -11192,7 +11287,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11192
11287
|
},
|
|
11193
11288
|
[rangeMin, rangeMax]
|
|
11194
11289
|
);
|
|
11195
|
-
const updateValue =
|
|
11290
|
+
const updateValue = React78.useCallback(
|
|
11196
11291
|
(handle, newVal) => {
|
|
11197
11292
|
if (handle === 0) {
|
|
11198
11293
|
const clamped = clamp4(newVal, min, rangeMax);
|
|
@@ -11204,7 +11299,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11204
11299
|
},
|
|
11205
11300
|
[min, max, rangeMin, rangeMax, onValueChange]
|
|
11206
11301
|
);
|
|
11207
|
-
const handlePointerDown =
|
|
11302
|
+
const handlePointerDown = React78.useCallback(
|
|
11208
11303
|
(e) => {
|
|
11209
11304
|
if (disabled) return;
|
|
11210
11305
|
e.preventDefault();
|
|
@@ -11216,7 +11311,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11216
11311
|
},
|
|
11217
11312
|
[disabled, getValueFromPointer, closestHandle, updateValue]
|
|
11218
11313
|
);
|
|
11219
|
-
const handlePointerMove =
|
|
11314
|
+
const handlePointerMove = React78.useCallback(
|
|
11220
11315
|
(e) => {
|
|
11221
11316
|
if (draggingHandle === null || disabled) return;
|
|
11222
11317
|
const newVal = getValueFromPointer(e.clientX);
|
|
@@ -11224,10 +11319,10 @@ var SliderRange = React77.forwardRef(
|
|
|
11224
11319
|
},
|
|
11225
11320
|
[draggingHandle, disabled, getValueFromPointer, updateValue]
|
|
11226
11321
|
);
|
|
11227
|
-
const handlePointerUp =
|
|
11322
|
+
const handlePointerUp = React78.useCallback(() => {
|
|
11228
11323
|
setDraggingHandle(null);
|
|
11229
11324
|
}, []);
|
|
11230
|
-
const makeKeyHandler =
|
|
11325
|
+
const makeKeyHandler = React78.useCallback(
|
|
11231
11326
|
(handle) => (e) => {
|
|
11232
11327
|
if (disabled) return;
|
|
11233
11328
|
const currentVal = handle === 0 ? rangeMin : rangeMax;
|
|
@@ -11255,7 +11350,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11255
11350
|
},
|
|
11256
11351
|
[disabled, rangeMin, rangeMax, step, min, max, updateValue]
|
|
11257
11352
|
);
|
|
11258
|
-
const tickLabels =
|
|
11353
|
+
const tickLabels = React78.useMemo(() => {
|
|
11259
11354
|
if (pointLabels) return pointLabels;
|
|
11260
11355
|
const labels = [];
|
|
11261
11356
|
for (let i = 0; i < pointCount; i++) {
|
|
@@ -11372,7 +11467,7 @@ var SliderRange = React77.forwardRef(
|
|
|
11372
11467
|
}
|
|
11373
11468
|
);
|
|
11374
11469
|
SliderRange.displayName = "SliderRange";
|
|
11375
|
-
var SliderRangeInput =
|
|
11470
|
+
var SliderRangeInput = React78.forwardRef(
|
|
11376
11471
|
(_a, ref) => {
|
|
11377
11472
|
var _b = _a, {
|
|
11378
11473
|
className,
|
|
@@ -11514,7 +11609,7 @@ var Toaster = (_a) => {
|
|
|
11514
11609
|
);
|
|
11515
11610
|
};
|
|
11516
11611
|
var ToastProvider = ToastPrimitives.Provider;
|
|
11517
|
-
var ToastViewport =
|
|
11612
|
+
var ToastViewport = React78.forwardRef((_a, ref) => {
|
|
11518
11613
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11519
11614
|
return /* @__PURE__ */ jsx(
|
|
11520
11615
|
ToastPrimitives.Viewport,
|
|
@@ -11542,7 +11637,7 @@ var toastVariants = cva(
|
|
|
11542
11637
|
}
|
|
11543
11638
|
}
|
|
11544
11639
|
);
|
|
11545
|
-
var Toast =
|
|
11640
|
+
var Toast = React78.forwardRef((_a, ref) => {
|
|
11546
11641
|
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
11547
11642
|
return /* @__PURE__ */ jsx(
|
|
11548
11643
|
ToastPrimitives.Root,
|
|
@@ -11553,28 +11648,28 @@ var Toast = React77.forwardRef((_a, ref) => {
|
|
|
11553
11648
|
);
|
|
11554
11649
|
});
|
|
11555
11650
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
11556
|
-
var ToastAction =
|
|
11651
|
+
var ToastAction = React78.forwardRef((_a, ref) => {
|
|
11557
11652
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11558
11653
|
return /* @__PURE__ */ jsx(
|
|
11559
11654
|
ToastPrimitives.Action,
|
|
11560
11655
|
__spreadValues({
|
|
11561
11656
|
ref,
|
|
11562
11657
|
className: cn(
|
|
11563
|
-
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-sui-bg-default transition-colors hover:bg-sui-bg-state-ghost-hover focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:text-sui-text-hint disabled:pointer-events-none group-[.destructive]:border-sui-border-default/40 group-[.destructive]:hover:border-sui-bg-state-destructive/30 group-[.destructive]:hover:bg-sui-bg-state-destructive group-[.destructive]:hover:text-sui-text-white-default group-[.destructive]:focus:ring-sui-border-highlight",
|
|
11658
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-sui-bg-default transition-colors [@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover focus:outline-none focus:ring-2 focus:ring-sui-border-highlight focus:ring-offset-2 disabled:text-sui-text-hint disabled:pointer-events-none group-[.destructive]:border-sui-border-default/40 group-[.destructive]:[@media(hover:hover)]:hover:border-sui-bg-state-destructive/30 group-[.destructive]:[@media(hover:hover)]:hover:bg-sui-bg-state-destructive group-[.destructive]:[@media(hover:hover)]:hover:text-sui-text-white-default group-[.destructive]:focus:ring-sui-border-highlight",
|
|
11564
11659
|
className
|
|
11565
11660
|
)
|
|
11566
11661
|
}, props)
|
|
11567
11662
|
);
|
|
11568
11663
|
});
|
|
11569
11664
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
11570
|
-
var ToastClose =
|
|
11665
|
+
var ToastClose = React78.forwardRef((_a, ref) => {
|
|
11571
11666
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11572
11667
|
return /* @__PURE__ */ jsx(
|
|
11573
11668
|
ToastPrimitives.Close,
|
|
11574
11669
|
__spreadProps(__spreadValues({
|
|
11575
11670
|
ref,
|
|
11576
11671
|
className: cn(
|
|
11577
|
-
"absolute right-2 top-2 rounded-md p-1 text-sui-text-default/50 opacity-0 transition-opacity hover:text-sui-text-default focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-sui-text-white-default/70 group-[.destructive]:hover:text-sui-text-white-default group-[.destructive]:focus:ring-sui-border-highlight group-[.destructive]:focus:ring-offset-sui-bg-state-destructive",
|
|
11672
|
+
"absolute right-2 top-2 rounded-md p-1 text-sui-text-default/50 opacity-0 transition-opacity [@media(hover:hover)]:hover:text-sui-text-default focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-sui-text-white-default/70 group-[.destructive]:[@media(hover:hover)]:hover:text-sui-text-white-default group-[.destructive]:focus:ring-sui-border-highlight group-[.destructive]:focus:ring-offset-sui-bg-state-destructive",
|
|
11578
11673
|
className
|
|
11579
11674
|
),
|
|
11580
11675
|
"toast-close": ""
|
|
@@ -11584,7 +11679,7 @@ var ToastClose = React77.forwardRef((_a, ref) => {
|
|
|
11584
11679
|
);
|
|
11585
11680
|
});
|
|
11586
11681
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
11587
|
-
var ToastTitle =
|
|
11682
|
+
var ToastTitle = React78.forwardRef((_a, ref) => {
|
|
11588
11683
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11589
11684
|
return /* @__PURE__ */ jsx(
|
|
11590
11685
|
ToastPrimitives.Title,
|
|
@@ -11595,7 +11690,7 @@ var ToastTitle = React77.forwardRef((_a, ref) => {
|
|
|
11595
11690
|
);
|
|
11596
11691
|
});
|
|
11597
11692
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
11598
|
-
var ToastDescription =
|
|
11693
|
+
var ToastDescription = React78.forwardRef((_a, ref) => {
|
|
11599
11694
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11600
11695
|
return /* @__PURE__ */ jsx(
|
|
11601
11696
|
ToastPrimitives.Description,
|
|
@@ -11700,8 +11795,8 @@ function toast(_a) {
|
|
|
11700
11795
|
};
|
|
11701
11796
|
}
|
|
11702
11797
|
function useToast() {
|
|
11703
|
-
const [state, setState] =
|
|
11704
|
-
|
|
11798
|
+
const [state, setState] = React78.useState(memoryState);
|
|
11799
|
+
React78.useEffect(() => {
|
|
11705
11800
|
listeners.push(setState);
|
|
11706
11801
|
return () => {
|
|
11707
11802
|
const index = listeners.indexOf(setState);
|
|
@@ -11732,7 +11827,7 @@ function Toaster2() {
|
|
|
11732
11827
|
/* @__PURE__ */ jsx(ToastViewport, {})
|
|
11733
11828
|
] });
|
|
11734
11829
|
}
|
|
11735
|
-
var Switch =
|
|
11830
|
+
var Switch = React78.forwardRef((_a, ref) => {
|
|
11736
11831
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11737
11832
|
return /* @__PURE__ */ jsx(
|
|
11738
11833
|
SwitchPrimitives.Root,
|
|
@@ -11744,10 +11839,10 @@ var Switch = React77.forwardRef((_a, ref) => {
|
|
|
11744
11839
|
"transition-colors duration-150",
|
|
11745
11840
|
// Unchecked track
|
|
11746
11841
|
"data-[state=unchecked]:bg-sui-bg-switch-default",
|
|
11747
|
-
"data-[state=unchecked]:hover:bg-sui-bg-switch-default-hover",
|
|
11842
|
+
"data-[state=unchecked]:[@media(hover:hover)]:hover:bg-sui-bg-switch-default-hover",
|
|
11748
11843
|
// Checked track
|
|
11749
11844
|
"data-[state=checked]:bg-sui-bg-switch-active",
|
|
11750
|
-
"data-[state=checked]:hover:bg-sui-bg-switch-active-hover",
|
|
11845
|
+
"data-[state=checked]:[@media(hover:hover)]:hover:bg-sui-bg-switch-active-hover",
|
|
11751
11846
|
// Focus: 1px accent-inverted + 3px highlight (matching Figma box-shadow ring)
|
|
11752
11847
|
"focus-visible:outline-none",
|
|
11753
11848
|
"focus-visible:shadow-misc-focus",
|
|
@@ -11784,10 +11879,10 @@ var Switch = React77.forwardRef((_a, ref) => {
|
|
|
11784
11879
|
);
|
|
11785
11880
|
});
|
|
11786
11881
|
Switch.displayName = "Switch";
|
|
11787
|
-
var SwitchList =
|
|
11882
|
+
var SwitchList = React78.forwardRef(
|
|
11788
11883
|
(_a, ref) => {
|
|
11789
11884
|
var _b = _a, { className, divider = true, children } = _b, props = __objRest(_b, ["className", "divider", "children"]);
|
|
11790
|
-
const items =
|
|
11885
|
+
const items = React78.Children.toArray(children);
|
|
11791
11886
|
return /* @__PURE__ */ jsx(
|
|
11792
11887
|
"div",
|
|
11793
11888
|
__spreadProps(__spreadValues({
|
|
@@ -11815,7 +11910,7 @@ var SwitchList = React77.forwardRef(
|
|
|
11815
11910
|
}
|
|
11816
11911
|
);
|
|
11817
11912
|
SwitchList.displayName = "SwitchList";
|
|
11818
|
-
var SwitchWithText =
|
|
11913
|
+
var SwitchWithText = React78.forwardRef(
|
|
11819
11914
|
(_a, ref) => {
|
|
11820
11915
|
var _b = _a, {
|
|
11821
11916
|
className,
|
|
@@ -11832,7 +11927,7 @@ var SwitchWithText = React77.forwardRef(
|
|
|
11832
11927
|
"disabled",
|
|
11833
11928
|
"id"
|
|
11834
11929
|
]);
|
|
11835
|
-
const generatedId =
|
|
11930
|
+
const generatedId = React78.useId();
|
|
11836
11931
|
const switchId = id || generatedId;
|
|
11837
11932
|
return /* @__PURE__ */ jsxs(
|
|
11838
11933
|
"div",
|
|
@@ -11889,7 +11984,7 @@ var SwitchWithText = React77.forwardRef(
|
|
|
11889
11984
|
}
|
|
11890
11985
|
);
|
|
11891
11986
|
SwitchWithText.displayName = "SwitchWithText";
|
|
11892
|
-
var Table =
|
|
11987
|
+
var Table = React78.forwardRef((_a, ref) => {
|
|
11893
11988
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11894
11989
|
return /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
11895
11990
|
"table",
|
|
@@ -11900,12 +11995,12 @@ var Table = React77.forwardRef((_a, ref) => {
|
|
|
11900
11995
|
) });
|
|
11901
11996
|
});
|
|
11902
11997
|
Table.displayName = "Table";
|
|
11903
|
-
var TableHeader =
|
|
11998
|
+
var TableHeader = React78.forwardRef((_a, ref) => {
|
|
11904
11999
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11905
12000
|
return /* @__PURE__ */ jsx("thead", __spreadValues({ ref, className: cn("[&_tr]:border-b [&_tr]:border-sui-border-default", className) }, props));
|
|
11906
12001
|
});
|
|
11907
12002
|
TableHeader.displayName = "TableHeader";
|
|
11908
|
-
var TableBody =
|
|
12003
|
+
var TableBody = React78.forwardRef((_a, ref) => {
|
|
11909
12004
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11910
12005
|
return /* @__PURE__ */ jsx(
|
|
11911
12006
|
"tbody",
|
|
@@ -11916,7 +12011,7 @@ var TableBody = React77.forwardRef((_a, ref) => {
|
|
|
11916
12011
|
);
|
|
11917
12012
|
});
|
|
11918
12013
|
TableBody.displayName = "TableBody";
|
|
11919
|
-
var TableFooter =
|
|
12014
|
+
var TableFooter = React78.forwardRef((_a, ref) => {
|
|
11920
12015
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11921
12016
|
return /* @__PURE__ */ jsx(
|
|
11922
12017
|
"tfoot",
|
|
@@ -11930,21 +12025,21 @@ var TableFooter = React77.forwardRef((_a, ref) => {
|
|
|
11930
12025
|
);
|
|
11931
12026
|
});
|
|
11932
12027
|
TableFooter.displayName = "TableFooter";
|
|
11933
|
-
var TableRow =
|
|
12028
|
+
var TableRow = React78.forwardRef((_a, ref) => {
|
|
11934
12029
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11935
12030
|
return /* @__PURE__ */ jsx(
|
|
11936
12031
|
"tr",
|
|
11937
12032
|
__spreadValues({
|
|
11938
12033
|
ref,
|
|
11939
12034
|
className: cn(
|
|
11940
|
-
"border-b border-sui-border-default transition-colors hover:bg-sui-bg-basic-gray-alpha-2 data-[state=selected]:bg-sui-bg-basic-gray-alpha-4",
|
|
12035
|
+
"border-b border-sui-border-default transition-colors [@media(hover:hover)]:hover:bg-sui-bg-basic-gray-alpha-2 data-[state=selected]:bg-sui-bg-basic-gray-alpha-4",
|
|
11941
12036
|
className
|
|
11942
12037
|
)
|
|
11943
12038
|
}, props)
|
|
11944
12039
|
);
|
|
11945
12040
|
});
|
|
11946
12041
|
TableRow.displayName = "TableRow";
|
|
11947
|
-
var TableHead =
|
|
12042
|
+
var TableHead = React78.forwardRef((_a, ref) => {
|
|
11948
12043
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11949
12044
|
return /* @__PURE__ */ jsx(
|
|
11950
12045
|
"th",
|
|
@@ -11958,7 +12053,7 @@ var TableHead = React77.forwardRef((_a, ref) => {
|
|
|
11958
12053
|
);
|
|
11959
12054
|
});
|
|
11960
12055
|
TableHead.displayName = "TableHead";
|
|
11961
|
-
var TableCell =
|
|
12056
|
+
var TableCell = React78.forwardRef((_a, ref) => {
|
|
11962
12057
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11963
12058
|
return /* @__PURE__ */ jsx(
|
|
11964
12059
|
"td",
|
|
@@ -11969,7 +12064,7 @@ var TableCell = React77.forwardRef((_a, ref) => {
|
|
|
11969
12064
|
);
|
|
11970
12065
|
});
|
|
11971
12066
|
TableCell.displayName = "TableCell";
|
|
11972
|
-
var TableCaption =
|
|
12067
|
+
var TableCaption = React78.forwardRef((_a, ref) => {
|
|
11973
12068
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
11974
12069
|
return /* @__PURE__ */ jsx(
|
|
11975
12070
|
"caption",
|
|
@@ -12005,7 +12100,7 @@ var ariaSortMap2 = {
|
|
|
12005
12100
|
desc: "descending",
|
|
12006
12101
|
none: "none"
|
|
12007
12102
|
};
|
|
12008
|
-
var TableHeaderItem =
|
|
12103
|
+
var TableHeaderItem = React78.forwardRef(
|
|
12009
12104
|
(_a, ref) => {
|
|
12010
12105
|
var _b = _a, {
|
|
12011
12106
|
className,
|
|
@@ -12066,7 +12161,7 @@ var TableHeaderItem = React77.forwardRef(
|
|
|
12066
12161
|
resizable && /* @__PURE__ */ jsx(
|
|
12067
12162
|
"div",
|
|
12068
12163
|
{
|
|
12069
|
-
className: "absolute right-0 top-0 h-full w-1 cursor-col-resize opacity-0 transition-opacity hover:opacity-100 hover:bg-sui-border-highlight z-10",
|
|
12164
|
+
className: "absolute right-0 top-0 h-full w-1 cursor-col-resize opacity-0 transition-opacity [@media(hover:hover)]:hover:opacity-100 [@media(hover:hover)]:hover:bg-sui-border-highlight z-10",
|
|
12070
12165
|
onPointerDown: (e) => {
|
|
12071
12166
|
e.stopPropagation();
|
|
12072
12167
|
onResizeStart == null ? void 0 : onResizeStart(e);
|
|
@@ -12121,7 +12216,7 @@ var tableItemVariants = cva("flex items-center px-2", {
|
|
|
12121
12216
|
size: "lg"
|
|
12122
12217
|
}
|
|
12123
12218
|
});
|
|
12124
|
-
var TableItem =
|
|
12219
|
+
var TableItem = React78.forwardRef(
|
|
12125
12220
|
(_a, ref) => {
|
|
12126
12221
|
var _b = _a, {
|
|
12127
12222
|
className,
|
|
@@ -12205,7 +12300,7 @@ var TableItem = React77.forwardRef(
|
|
|
12205
12300
|
}
|
|
12206
12301
|
);
|
|
12207
12302
|
TableItem.displayName = "TableItem";
|
|
12208
|
-
var TablePagination =
|
|
12303
|
+
var TablePagination = React78.forwardRef(
|
|
12209
12304
|
(_a, ref) => {
|
|
12210
12305
|
var _b = _a, {
|
|
12211
12306
|
className,
|
|
@@ -12240,7 +12335,7 @@ var TablePagination = React77.forwardRef(
|
|
|
12240
12335
|
)
|
|
12241
12336
|
}, props), {
|
|
12242
12337
|
children: paginatorVariant === "numbered" ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
12243
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm font-normal leading-5 text-sui-text-muted whitespace-nowrap", children: [
|
|
12338
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm font-normal leading-5 tabular-nums text-sui-text-muted whitespace-nowrap", children: [
|
|
12244
12339
|
startResult,
|
|
12245
12340
|
"\u2013",
|
|
12246
12341
|
endResult,
|
|
@@ -12282,7 +12377,7 @@ var tableRowSortVariants = cva(
|
|
|
12282
12377
|
variants: {
|
|
12283
12378
|
variant: {
|
|
12284
12379
|
header: "border-t",
|
|
12285
|
-
default: "hover:bg-sui-bg-basic-gray-alpha-2",
|
|
12380
|
+
default: "[@media(hover:hover)]:hover:bg-sui-bg-basic-gray-alpha-2",
|
|
12286
12381
|
hover: "bg-sui-bg-basic-gray-alpha-2",
|
|
12287
12382
|
selected: "bg-sui-bg-basic-gray-alpha-4"
|
|
12288
12383
|
}
|
|
@@ -12292,7 +12387,7 @@ var tableRowSortVariants = cva(
|
|
|
12292
12387
|
}
|
|
12293
12388
|
}
|
|
12294
12389
|
);
|
|
12295
|
-
var TableRowSort =
|
|
12390
|
+
var TableRowSort = React78.forwardRef(
|
|
12296
12391
|
(_a, ref) => {
|
|
12297
12392
|
var _b = _a, { className, variant = "default", striped, sticky, children } = _b, props = __objRest(_b, ["className", "variant", "striped", "sticky", "children"]);
|
|
12298
12393
|
return /* @__PURE__ */ jsx(
|
|
@@ -12315,7 +12410,7 @@ var TableRowSort = React77.forwardRef(
|
|
|
12315
12410
|
TableRowSort.displayName = "TableRowSort";
|
|
12316
12411
|
var textWidths = ["w-20", "w-28", "w-24", "w-32", "w-16", "w-26", "w-22", "w-30"];
|
|
12317
12412
|
var skeletonBg = "bg-sui-bg-basic-gray-alpha-4";
|
|
12318
|
-
var TableSkeletonRow =
|
|
12413
|
+
var TableSkeletonRow = React78.forwardRef(
|
|
12319
12414
|
(_a, ref) => {
|
|
12320
12415
|
var _b = _a, { className, columns, rowCount = 5, size = "sm" } = _b, props = __objRest(_b, ["className", "columns", "rowCount", "size"]);
|
|
12321
12416
|
return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({ ref, className, "aria-hidden": "true" }, props), { children: Array.from({ length: rowCount }, (_, rowIdx) => /* @__PURE__ */ jsx(TableRowSort, { variant: "default", children: columns.map((col, colIdx) => {
|
|
@@ -12365,12 +12460,12 @@ var tabListVariants = cva(
|
|
|
12365
12460
|
}
|
|
12366
12461
|
}
|
|
12367
12462
|
);
|
|
12368
|
-
var TabList =
|
|
12463
|
+
var TabList = React78.forwardRef((_a, ref) => {
|
|
12369
12464
|
var _b = _a, { className, variant = "pill", shape = "pill", layout, children } = _b, props = __objRest(_b, ["className", "variant", "shape", "layout", "children"]);
|
|
12370
12465
|
const childShape = variant === "segmented" && shape === "rounded" ? "rounded" : shape;
|
|
12371
12466
|
const childRadiusOverride = variant === "segmented" && shape === "rounded" ? "rounded-sm" : void 0;
|
|
12372
|
-
const enhancedChildren =
|
|
12373
|
-
if (!
|
|
12467
|
+
const enhancedChildren = React78.Children.map(children, (child) => {
|
|
12468
|
+
if (!React78.isValidElement(child)) return child;
|
|
12374
12469
|
const extraProps = {
|
|
12375
12470
|
shape: childShape
|
|
12376
12471
|
};
|
|
@@ -12378,7 +12473,7 @@ var TabList = React77.forwardRef((_a, ref) => {
|
|
|
12378
12473
|
const existingClassName = child.props.className;
|
|
12379
12474
|
extraProps.className = cn(existingClassName, childRadiusOverride);
|
|
12380
12475
|
}
|
|
12381
|
-
return
|
|
12476
|
+
return React78.cloneElement(child, extraProps);
|
|
12382
12477
|
});
|
|
12383
12478
|
return /* @__PURE__ */ jsx(
|
|
12384
12479
|
TabsPrimitive4.List,
|
|
@@ -12408,8 +12503,8 @@ var tabItemVariants = cva(
|
|
|
12408
12503
|
// Icon colors default
|
|
12409
12504
|
"[&_i]:text-icon-default-muted [&_svg]:text-icon-default-muted",
|
|
12410
12505
|
// Hover state
|
|
12411
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-default",
|
|
12412
|
-
"hover:[&_i]:text-icon-default-subtle hover:[&_svg]:text-icon-default-subtle",
|
|
12506
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-default",
|
|
12507
|
+
"[@media(hover:hover)]:hover:[&_i]:text-icon-default-subtle [@media(hover:hover)]:hover:[&_svg]:text-icon-default-subtle",
|
|
12413
12508
|
// Active/selected state (Radix data attribute)
|
|
12414
12509
|
// Border simulated via inset box-shadow (spread:1) to match Figma and avoid height increase
|
|
12415
12510
|
"data-[state=active]:bg-sui-bg-state-secondary",
|
|
@@ -12440,7 +12535,7 @@ var tabItemVariants = cva(
|
|
|
12440
12535
|
}
|
|
12441
12536
|
}
|
|
12442
12537
|
);
|
|
12443
|
-
var TabItem =
|
|
12538
|
+
var TabItem = React78.forwardRef((_a, ref) => {
|
|
12444
12539
|
var _b = _a, { className, shape, size } = _b, props = __objRest(_b, ["className", "shape", "size"]);
|
|
12445
12540
|
return /* @__PURE__ */ jsx(
|
|
12446
12541
|
TabsPrimitive4.Trigger,
|
|
@@ -12452,7 +12547,7 @@ var TabItem = React77.forwardRef((_a, ref) => {
|
|
|
12452
12547
|
});
|
|
12453
12548
|
TabItem.displayName = "TabItem";
|
|
12454
12549
|
var Tabs = TabsPrimitive4.Root;
|
|
12455
|
-
var TabsList =
|
|
12550
|
+
var TabsList = React78.forwardRef((_a, ref) => {
|
|
12456
12551
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
12457
12552
|
return /* @__PURE__ */ jsx(
|
|
12458
12553
|
TabsPrimitive4.List,
|
|
@@ -12466,7 +12561,7 @@ var TabsList = React77.forwardRef((_a, ref) => {
|
|
|
12466
12561
|
);
|
|
12467
12562
|
});
|
|
12468
12563
|
TabsList.displayName = TabsPrimitive4.List.displayName;
|
|
12469
|
-
var TabsTrigger =
|
|
12564
|
+
var TabsTrigger = React78.forwardRef((_a, ref) => {
|
|
12470
12565
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
12471
12566
|
return /* @__PURE__ */ jsx(
|
|
12472
12567
|
TabsPrimitive4.Trigger,
|
|
@@ -12480,7 +12575,7 @@ var TabsTrigger = React77.forwardRef((_a, ref) => {
|
|
|
12480
12575
|
);
|
|
12481
12576
|
});
|
|
12482
12577
|
TabsTrigger.displayName = TabsPrimitive4.Trigger.displayName;
|
|
12483
|
-
var TabsContent =
|
|
12578
|
+
var TabsContent = React78.forwardRef((_a, ref) => {
|
|
12484
12579
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
12485
12580
|
return /* @__PURE__ */ jsx(
|
|
12486
12581
|
TabsPrimitive4.Content,
|
|
@@ -12524,7 +12619,7 @@ var textAreaContainerVariants = cva(
|
|
|
12524
12619
|
}
|
|
12525
12620
|
}
|
|
12526
12621
|
);
|
|
12527
|
-
var TextAreaField =
|
|
12622
|
+
var TextAreaField = React78.forwardRef(
|
|
12528
12623
|
(_a, ref) => {
|
|
12529
12624
|
var _b = _a, {
|
|
12530
12625
|
className,
|
|
@@ -12546,7 +12641,9 @@ var TextAreaField = React77.forwardRef(
|
|
|
12546
12641
|
id,
|
|
12547
12642
|
value,
|
|
12548
12643
|
defaultValue,
|
|
12549
|
-
onChange
|
|
12644
|
+
onChange,
|
|
12645
|
+
spellCheck,
|
|
12646
|
+
autoComplete
|
|
12550
12647
|
} = _b, props = __objRest(_b, [
|
|
12551
12648
|
"className",
|
|
12552
12649
|
"inputStyle",
|
|
@@ -12567,9 +12664,11 @@ var TextAreaField = React77.forwardRef(
|
|
|
12567
12664
|
"id",
|
|
12568
12665
|
"value",
|
|
12569
12666
|
"defaultValue",
|
|
12570
|
-
"onChange"
|
|
12667
|
+
"onChange",
|
|
12668
|
+
"spellCheck",
|
|
12669
|
+
"autoComplete"
|
|
12571
12670
|
]);
|
|
12572
|
-
const generatedId =
|
|
12671
|
+
const generatedId = React78.useId();
|
|
12573
12672
|
const textAreaId = id || generatedId;
|
|
12574
12673
|
const captionId = `${textAreaId}-caption`;
|
|
12575
12674
|
const charCountId = `${textAreaId}-charcount`;
|
|
@@ -12577,17 +12676,30 @@ var TextAreaField = React77.forwardRef(
|
|
|
12577
12676
|
const helperText = hasError ? error : caption;
|
|
12578
12677
|
const hasActionBar = !!(leadActions || tailActions);
|
|
12579
12678
|
const showCount = !!(showCharCount && maxLength);
|
|
12679
|
+
const innerRef = React78.useRef(null);
|
|
12680
|
+
React78.useImperativeHandle(ref, () => innerRef.current, []);
|
|
12681
|
+
const focusTextareaOnDecorationClick = (e) => {
|
|
12682
|
+
var _a2;
|
|
12683
|
+
if (disabled) return;
|
|
12684
|
+
const target = e.target;
|
|
12685
|
+
if (target === innerRef.current) return;
|
|
12686
|
+
if (target.closest('button, a, input, textarea, select, [role="button"], [role="toolbar"]')) return;
|
|
12687
|
+
e.preventDefault();
|
|
12688
|
+
(_a2 = innerRef.current) == null ? void 0 : _a2.focus();
|
|
12689
|
+
};
|
|
12690
|
+
const resolvedSpellCheck = spellCheck != null ? spellCheck : false;
|
|
12691
|
+
const resolvedAutoComplete = autoComplete != null ? autoComplete : "off";
|
|
12580
12692
|
const isResizable = !!(resizable && !compact && !bottomToolbar && !hasActionBar);
|
|
12581
12693
|
const describedByIds = [
|
|
12582
12694
|
helperText ? captionId : null,
|
|
12583
12695
|
showCount ? charCountId : null
|
|
12584
12696
|
].filter(Boolean).join(" ") || void 0;
|
|
12585
|
-
const [charCount, setCharCount] =
|
|
12697
|
+
const [charCount, setCharCount] = React78.useState(() => {
|
|
12586
12698
|
if (value !== void 0) return String(value).length;
|
|
12587
12699
|
if (defaultValue !== void 0) return String(defaultValue).length;
|
|
12588
12700
|
return 0;
|
|
12589
12701
|
});
|
|
12590
|
-
|
|
12702
|
+
React78.useEffect(() => {
|
|
12591
12703
|
if (value !== void 0) {
|
|
12592
12704
|
setCharCount(String(value).length);
|
|
12593
12705
|
}
|
|
@@ -12610,6 +12722,7 @@ var TextAreaField = React77.forwardRef(
|
|
|
12610
12722
|
/* @__PURE__ */ jsx(
|
|
12611
12723
|
"div",
|
|
12612
12724
|
{
|
|
12725
|
+
onPointerDown: focusTextareaOnDecorationClick,
|
|
12613
12726
|
className: cn(
|
|
12614
12727
|
textAreaContainerVariants({ inputStyle }),
|
|
12615
12728
|
// overflow-clip clips rounded corners on children; disable when resizable
|
|
@@ -12640,11 +12753,13 @@ var TextAreaField = React77.forwardRef(
|
|
|
12640
12753
|
/* @__PURE__ */ jsx(
|
|
12641
12754
|
"textarea",
|
|
12642
12755
|
__spreadValues({
|
|
12643
|
-
ref,
|
|
12756
|
+
ref: innerRef,
|
|
12644
12757
|
id: textAreaId,
|
|
12645
12758
|
rows: 1,
|
|
12646
12759
|
disabled,
|
|
12647
12760
|
required,
|
|
12761
|
+
spellCheck: resolvedSpellCheck,
|
|
12762
|
+
autoComplete: resolvedAutoComplete,
|
|
12648
12763
|
maxLength,
|
|
12649
12764
|
value,
|
|
12650
12765
|
defaultValue,
|
|
@@ -12653,7 +12768,8 @@ var TextAreaField = React77.forwardRef(
|
|
|
12653
12768
|
"aria-describedby": describedByIds,
|
|
12654
12769
|
className: cn(
|
|
12655
12770
|
"flex-1 min-w-0 resize-none overflow-hidden bg-transparent outline-none",
|
|
12656
|
-
|
|
12771
|
+
// #29 16px on touch (prevents iOS zoom), 14px on md+
|
|
12772
|
+
"text-base md:text-sm leading-5",
|
|
12657
12773
|
"text-sui-text-default",
|
|
12658
12774
|
"placeholder:text-sui-text-muted",
|
|
12659
12775
|
disabled && "text-sui-text-hint placeholder:text-sui-text-hint cursor-not-allowed"
|
|
@@ -12677,10 +12793,12 @@ var TextAreaField = React77.forwardRef(
|
|
|
12677
12793
|
/* @__PURE__ */ jsx(
|
|
12678
12794
|
"textarea",
|
|
12679
12795
|
__spreadValues({
|
|
12680
|
-
ref,
|
|
12796
|
+
ref: innerRef,
|
|
12681
12797
|
id: textAreaId,
|
|
12682
12798
|
disabled,
|
|
12683
12799
|
required,
|
|
12800
|
+
spellCheck: resolvedSpellCheck,
|
|
12801
|
+
autoComplete: resolvedAutoComplete,
|
|
12684
12802
|
maxLength,
|
|
12685
12803
|
value,
|
|
12686
12804
|
defaultValue,
|
|
@@ -12689,7 +12807,8 @@ var TextAreaField = React77.forwardRef(
|
|
|
12689
12807
|
"aria-describedby": describedByIds,
|
|
12690
12808
|
className: cn(
|
|
12691
12809
|
"min-h-[60px] w-full bg-transparent outline-none",
|
|
12692
|
-
|
|
12810
|
+
// #29 16px on touch (prevents iOS zoom), 14px on md+
|
|
12811
|
+
"text-base md:text-sm leading-5",
|
|
12693
12812
|
"text-sui-text-default",
|
|
12694
12813
|
"placeholder:text-sui-text-muted",
|
|
12695
12814
|
isResizable ? "resize-y overflow-y-auto pr-3 pb-3" : "flex-1 resize-none overflow-hidden",
|
|
@@ -12766,11 +12885,12 @@ var TextAreaField = React77.forwardRef(
|
|
|
12766
12885
|
}
|
|
12767
12886
|
);
|
|
12768
12887
|
TextAreaField.displayName = "TextAreaField";
|
|
12769
|
-
var Textarea =
|
|
12770
|
-
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
12888
|
+
var Textarea = React78.forwardRef((_a, ref) => {
|
|
12889
|
+
var _b = _a, { className, spellCheck } = _b, props = __objRest(_b, ["className", "spellCheck"]);
|
|
12771
12890
|
return /* @__PURE__ */ jsx(
|
|
12772
12891
|
"textarea",
|
|
12773
12892
|
__spreadValues({
|
|
12893
|
+
spellCheck: spellCheck != null ? spellCheck : false,
|
|
12774
12894
|
className: cn(
|
|
12775
12895
|
"flex min-h-[80px] w-full rounded-md border border-sui-border-darker bg-sui-bg-input px-3 py-2 text-base ring-offset-sui-bg-default placeholder:text-sui-text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sui-border-highlight focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:text-sui-text-hint disabled:pointer-events-none md:text-sm",
|
|
12776
12896
|
className
|
|
@@ -12794,13 +12914,13 @@ var toggleVariants = cva(
|
|
|
12794
12914
|
variant: {
|
|
12795
12915
|
default: [
|
|
12796
12916
|
"bg-sui-bg-state-ghost text-sui-text-muted [&_svg]:text-icon-default-muted [&_i]:text-icon-default-muted",
|
|
12797
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-subtle",
|
|
12917
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-subtle",
|
|
12798
12918
|
"active:bg-sui-bg-state-ghost-press",
|
|
12799
12919
|
"data-[state=on]:bg-sui-bg-badge-blue data-[state=on]:text-sui-bg-basic-blue-strong data-[state=on]:[&_svg]:text-sui-bg-basic-blue-strong data-[state=on]:[&_i]:text-sui-bg-basic-blue-strong"
|
|
12800
12920
|
].join(" "),
|
|
12801
12921
|
outline: [
|
|
12802
12922
|
"bg-sui-bg-state-secondary border border-sui-border-darker text-sui-text-muted [&_svg]:text-icon-default-muted [&_i]:text-icon-default-muted shadow-default",
|
|
12803
|
-
"hover:bg-sui-bg-state-secondary-hover hover:text-sui-text-subtle",
|
|
12923
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-secondary-hover [@media(hover:hover)]:hover:text-sui-text-subtle",
|
|
12804
12924
|
"active:bg-sui-bg-state-secondary-press",
|
|
12805
12925
|
"data-[state=on]:bg-sui-bg-badge-blue data-[state=on]:border-sui-border-blue data-[state=on]:text-sui-bg-basic-blue-strong data-[state=on]:[&_svg]:text-sui-bg-basic-blue-strong data-[state=on]:[&_i]:text-sui-bg-basic-blue-strong"
|
|
12806
12926
|
].join(" ")
|
|
@@ -12818,7 +12938,7 @@ var toggleVariants = cva(
|
|
|
12818
12938
|
}
|
|
12819
12939
|
}
|
|
12820
12940
|
);
|
|
12821
|
-
var Toggle =
|
|
12941
|
+
var Toggle = React78.forwardRef((_a, ref) => {
|
|
12822
12942
|
var _b = _a, { className, variant, size } = _b, props = __objRest(_b, ["className", "variant", "size"]);
|
|
12823
12943
|
return /* @__PURE__ */ jsx(
|
|
12824
12944
|
TogglePrimitive.Root,
|
|
@@ -12830,7 +12950,7 @@ var Toggle = React77.forwardRef((_a, ref) => {
|
|
|
12830
12950
|
});
|
|
12831
12951
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
12832
12952
|
function useMergedRef(...refs) {
|
|
12833
|
-
return
|
|
12953
|
+
return React78.useCallback((node) => {
|
|
12834
12954
|
refs.forEach((ref) => {
|
|
12835
12955
|
if (typeof ref === "function") ref(node);
|
|
12836
12956
|
else if (ref && "current" in ref)
|
|
@@ -12859,13 +12979,13 @@ var chipSizeMap = {
|
|
|
12859
12979
|
xs: "sm",
|
|
12860
12980
|
"2xs": "sm"
|
|
12861
12981
|
};
|
|
12862
|
-
var ToggleGroupContext =
|
|
12982
|
+
var ToggleGroupContext = React78.createContext(null);
|
|
12863
12983
|
function useToggleGroup() {
|
|
12864
|
-
const ctx =
|
|
12984
|
+
const ctx = React78.useContext(ToggleGroupContext);
|
|
12865
12985
|
if (!ctx) throw new Error("ToggleGroupItem must be used within a ToggleGroup");
|
|
12866
12986
|
return ctx;
|
|
12867
12987
|
}
|
|
12868
|
-
var ToggleGroup =
|
|
12988
|
+
var ToggleGroup = React78.forwardRef(
|
|
12869
12989
|
(props, ref) => {
|
|
12870
12990
|
const {
|
|
12871
12991
|
type,
|
|
@@ -12880,16 +13000,16 @@ var ToggleGroup = React77.forwardRef(
|
|
|
12880
13000
|
const controlledValue = "value" in props ? props.value : void 0;
|
|
12881
13001
|
const defaultValue = "defaultValue" in props ? props.defaultValue : void 0;
|
|
12882
13002
|
const onValueChange = "onValueChange" in props ? props.onValueChange : void 0;
|
|
12883
|
-
const [internalValue, setInternalValue] =
|
|
13003
|
+
const [internalValue, setInternalValue] = React78.useState(
|
|
12884
13004
|
defaultValue
|
|
12885
13005
|
);
|
|
12886
13006
|
const isControlled = controlledValue !== void 0;
|
|
12887
13007
|
const value = isControlled ? controlledValue : internalValue;
|
|
12888
|
-
const [rovingFocusValue, setRovingFocusValue] =
|
|
12889
|
-
const itemRefs =
|
|
12890
|
-
const itemValues =
|
|
12891
|
-
const [, notifyRegistration] =
|
|
12892
|
-
const isActive =
|
|
13008
|
+
const [rovingFocusValue, setRovingFocusValue] = React78.useState(null);
|
|
13009
|
+
const itemRefs = React78.useRef(/* @__PURE__ */ new Map());
|
|
13010
|
+
const itemValues = React78.useRef([]);
|
|
13011
|
+
const [, notifyRegistration] = React78.useReducer((x) => x + 1, 0);
|
|
13012
|
+
const isActive = React78.useCallback(
|
|
12893
13013
|
(itemValue) => {
|
|
12894
13014
|
if (type === "single") return value === itemValue;
|
|
12895
13015
|
if (type === "multiple" && Array.isArray(value)) return value.includes(itemValue);
|
|
@@ -12897,7 +13017,7 @@ var ToggleGroup = React77.forwardRef(
|
|
|
12897
13017
|
},
|
|
12898
13018
|
[type, value]
|
|
12899
13019
|
);
|
|
12900
|
-
const toggle =
|
|
13020
|
+
const toggle = React78.useCallback(
|
|
12901
13021
|
(itemValue) => {
|
|
12902
13022
|
if (type === "single") {
|
|
12903
13023
|
const newValue = value === itemValue ? void 0 : itemValue;
|
|
@@ -12941,7 +13061,7 @@ var ToggleGroup = React77.forwardRef(
|
|
|
12941
13061
|
}
|
|
12942
13062
|
);
|
|
12943
13063
|
ToggleGroup.displayName = "ToggleGroup";
|
|
12944
|
-
var ToggleGroupItem =
|
|
13064
|
+
var ToggleGroupItem = React78.forwardRef(
|
|
12945
13065
|
(_a, ref) => {
|
|
12946
13066
|
var _b = _a, {
|
|
12947
13067
|
value: itemValue,
|
|
@@ -12976,9 +13096,9 @@ var ToggleGroupItem = React77.forwardRef(
|
|
|
12976
13096
|
const disabled = ctx.disabled || itemDisabled;
|
|
12977
13097
|
const resolvedSize = bgSize != null ? bgSize : "lg";
|
|
12978
13098
|
const chipSize = chipSizeMap[resolvedSize];
|
|
12979
|
-
const internalRef =
|
|
13099
|
+
const internalRef = React78.useRef(null);
|
|
12980
13100
|
const mergedRef = useMergedRef(ref, internalRef);
|
|
12981
|
-
|
|
13101
|
+
React78.useEffect(() => {
|
|
12982
13102
|
const el = internalRef.current;
|
|
12983
13103
|
if (!el) return;
|
|
12984
13104
|
ctx.itemRefs.current.set(itemValue, el);
|
|
@@ -13108,11 +13228,11 @@ var ToggleGroupItem = React77.forwardRef(
|
|
|
13108
13228
|
className: cn(
|
|
13109
13229
|
"inline-flex items-center justify-center select-none transition-colors rounded-none",
|
|
13110
13230
|
"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
13111
|
-
|
|
13112
|
-
"focus-visible:ring-
|
|
13231
|
+
// Web Interface Guidelines #42 — focus ring via box-shadow (ring), not outline.
|
|
13232
|
+
"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-sui-border-highlight focus-visible:ring-offset-[1px] focus-visible:z-10",
|
|
13113
13233
|
// Ghost-like unselected state
|
|
13114
13234
|
"bg-sui-bg-state-ghost text-sui-text-muted [&_svg]:text-icon-default-muted",
|
|
13115
|
-
"hover:bg-sui-bg-state-ghost-hover hover:text-sui-text-subtle hover:[&_svg]:text-icon-default-subtle",
|
|
13235
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover [@media(hover:hover)]:hover:text-sui-text-subtle [@media(hover:hover)]:hover:[&_svg]:text-icon-default-subtle",
|
|
13116
13236
|
"active:bg-sui-bg-state-ghost-press",
|
|
13117
13237
|
// Selected state
|
|
13118
13238
|
active && "bg-sui-bg-badge-blue text-sui-bg-basic-blue-strong [&_svg]:text-sui-bg-basic-blue-strong",
|
|
@@ -13146,9 +13266,9 @@ var ToggleGroupItem = React77.forwardRef(
|
|
|
13146
13266
|
"aria-label": ariaLabel,
|
|
13147
13267
|
className: cn(
|
|
13148
13268
|
"rounded-none transition-all duration-200",
|
|
13149
|
-
//
|
|
13150
|
-
|
|
13151
|
-
"focus-visible:ring-
|
|
13269
|
+
// Web Interface Guidelines #42 — focus ring via box-shadow (ring), respects radius.
|
|
13270
|
+
// Overrides Chip's ring with z-10 so it sits above adjacent items.
|
|
13271
|
+
"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-sui-border-highlight focus-visible:ring-offset-[1px] focus-visible:z-10",
|
|
13152
13272
|
iconOnly ? iconOnlySizeOverrides[resolvedSize] : sizeOverrides[resolvedSize],
|
|
13153
13273
|
showSeparator && "border-l border-l-sui-border-darker",
|
|
13154
13274
|
className
|
|
@@ -13169,12 +13289,12 @@ var userbarVariants = cva(
|
|
|
13169
13289
|
default: [
|
|
13170
13290
|
"w-full gap-3 p-3",
|
|
13171
13291
|
"bg-sui-bg-state-ghost border-b border-sui-border-default",
|
|
13172
|
-
"hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
13292
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
13173
13293
|
],
|
|
13174
13294
|
compact: [
|
|
13175
13295
|
"gap-2 p-1 rounded-md",
|
|
13176
13296
|
"bg-sui-bg-state-ghost",
|
|
13177
|
-
"hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
13297
|
+
"[@media(hover:hover)]:hover:bg-sui-bg-state-ghost-hover active:bg-sui-bg-state-ghost-press"
|
|
13178
13298
|
],
|
|
13179
13299
|
contained: [
|
|
13180
13300
|
"w-full p-3",
|
|
@@ -13195,7 +13315,7 @@ var containedInnerVariants = cva(
|
|
|
13195
13315
|
"group-hover:bg-sui-bg-state-secondary-hover group-active:bg-sui-bg-state-secondary-press"
|
|
13196
13316
|
]
|
|
13197
13317
|
);
|
|
13198
|
-
var Userbar =
|
|
13318
|
+
var Userbar = React78.forwardRef(
|
|
13199
13319
|
(_a, ref) => {
|
|
13200
13320
|
var _b = _a, {
|
|
13201
13321
|
className,
|
|
@@ -13304,7 +13424,7 @@ var Userbar = React77.forwardRef(
|
|
|
13304
13424
|
}
|
|
13305
13425
|
);
|
|
13306
13426
|
Userbar.displayName = "Userbar";
|
|
13307
|
-
var VerticalStepperItem =
|
|
13427
|
+
var VerticalStepperItem = React78.forwardRef(
|
|
13308
13428
|
(_a, ref) => {
|
|
13309
13429
|
var _b = _a, {
|
|
13310
13430
|
className,
|
|
@@ -13440,7 +13560,7 @@ var VerticalStepperItem = React77.forwardRef(
|
|
|
13440
13560
|
}
|
|
13441
13561
|
);
|
|
13442
13562
|
VerticalStepperItem.displayName = "VerticalStepperItem";
|
|
13443
|
-
var VerticalStepper =
|
|
13563
|
+
var VerticalStepper = React78.forwardRef(
|
|
13444
13564
|
(_a, ref) => {
|
|
13445
13565
|
var _b = _a, {
|
|
13446
13566
|
className,
|