@oprt/react 0.1.0 → 0.2.1
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/ActionStatus/ActionStatus.js +15 -4
- package/dist/Alert/Alert.js +21 -12
- package/dist/AttachmentPreview/AttachmentPreview.js +15 -12
- package/dist/Chart/Chart.js +10 -2
- package/dist/CopyButton/CopyButton.js +19 -0
- package/dist/CopyButton/CopyButton.manifest.js +1 -1
- package/dist/EventTimeline/EventTimeline.js +9 -1
- package/dist/LayerControl/LayerControl.js +2 -2
- package/dist/Toast/Toast.js +1 -1
- package/dist/Tooltip/Tooltip.js +2 -1
- package/dist/Tooltip/Tooltip.manifest.js +1 -1
- package/dist/UploadQueue/UploadQueue.js +2 -2
- package/dist/_internal/liveRegion.js +27 -0
- package/dist/index.cjs +746 -667
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -218,7 +218,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
218
218
|
// src/Alert/Alert.tsx
|
|
219
219
|
var import_icons = require("@oprt/icons");
|
|
220
220
|
var import_class_variance_authority = require("class-variance-authority");
|
|
221
|
-
var
|
|
221
|
+
var import_react2 = require("react");
|
|
222
222
|
var import_clsx = __toESM(require("clsx"), 1);
|
|
223
223
|
|
|
224
224
|
// src/Alert/Alert.manifest.ts
|
|
@@ -320,6 +320,28 @@ function devValidate(component, manifestProps, received) {
|
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
+
// src/_internal/liveRegion.ts
|
|
324
|
+
var import_react = require("react");
|
|
325
|
+
var neverChanges = () => () => {
|
|
326
|
+
};
|
|
327
|
+
var LIVE_REGION_LEAD_MS = 100;
|
|
328
|
+
function useHoldBackNewText(enabled) {
|
|
329
|
+
const hydrating = (0, import_react.useSyncExternalStore)(
|
|
330
|
+
neverChanges,
|
|
331
|
+
() => false,
|
|
332
|
+
() => true
|
|
333
|
+
);
|
|
334
|
+
const lateArrival = (0, import_react.useRef)(null);
|
|
335
|
+
if (lateArrival.current === null) lateArrival.current = !hydrating;
|
|
336
|
+
const [held, setHeld] = (0, import_react.useState)(Boolean(lateArrival.current));
|
|
337
|
+
(0, import_react.useEffect)(() => {
|
|
338
|
+
if (!held) return;
|
|
339
|
+
const timer = window.setTimeout(() => setHeld(false), LIVE_REGION_LEAD_MS);
|
|
340
|
+
return () => window.clearTimeout(timer);
|
|
341
|
+
}, [held]);
|
|
342
|
+
return enabled && held;
|
|
343
|
+
}
|
|
344
|
+
|
|
323
345
|
// src/Alert/Alert.tsx
|
|
324
346
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
325
347
|
var ICONS = {
|
|
@@ -351,7 +373,7 @@ var accentStyles = (0, import_class_variance_authority.cva)("", {
|
|
|
351
373
|
}
|
|
352
374
|
}
|
|
353
375
|
});
|
|
354
|
-
var Alert = (0,
|
|
376
|
+
var Alert = (0, import_react2.forwardRef)((allProps, ref) => {
|
|
355
377
|
const {
|
|
356
378
|
className,
|
|
357
379
|
variant,
|
|
@@ -362,6 +384,7 @@ var Alert = (0, import_react.forwardRef)((allProps, ref) => {
|
|
|
362
384
|
...props
|
|
363
385
|
} = allProps;
|
|
364
386
|
const role = variant === "error" || variant === "warning" ? "alert" : "status";
|
|
387
|
+
const holdBack = useHoldBackNewText(role === "status");
|
|
365
388
|
const Icon = ICONS[variant];
|
|
366
389
|
const hasBody = children != null && typeof children !== "boolean" && children !== "";
|
|
367
390
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -369,19 +392,26 @@ var Alert = (0, import_react.forwardRef)((allProps, ref) => {
|
|
|
369
392
|
}
|
|
370
393
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref, role, className: (0, import_clsx.default)(containerStyles({ variant }), className), ...props, children: [
|
|
371
394
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", className: (0, import_clsx.default)("shrink-0", accentStyles({ variant })), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { size: 16 }) }),
|
|
372
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
395
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
396
|
+
"div",
|
|
397
|
+
{
|
|
398
|
+
className: "flex min-w-0 flex-1 flex-col gap-1u oprt-wrap-anywhere",
|
|
399
|
+
...holdBack ? { "aria-hidden": true } : {},
|
|
400
|
+
children: [
|
|
401
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
402
|
+
"p",
|
|
403
|
+
{
|
|
404
|
+
className: (0, import_clsx.default)(
|
|
405
|
+
"m-0 text-oprt-sm uppercase tracking-oprt-sm",
|
|
406
|
+
accentStyles({ variant })
|
|
407
|
+
),
|
|
408
|
+
children: title
|
|
409
|
+
}
|
|
379
410
|
),
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
] }),
|
|
411
|
+
hasBody && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-oprt-base normal-case text-oprt-text", children })
|
|
412
|
+
]
|
|
413
|
+
}
|
|
414
|
+
),
|
|
385
415
|
dismissible && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
386
416
|
"button",
|
|
387
417
|
{
|
|
@@ -398,7 +428,7 @@ Alert.displayName = "Alert";
|
|
|
398
428
|
|
|
399
429
|
// src/Avatar/Avatar.tsx
|
|
400
430
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
401
|
-
var
|
|
431
|
+
var import_react3 = require("react");
|
|
402
432
|
var import_clsx2 = __toESM(require("clsx"), 1);
|
|
403
433
|
var import_icons2 = require("@oprt/icons");
|
|
404
434
|
|
|
@@ -447,13 +477,13 @@ var firstCharacter = (word) => Array.from(word)[0] ?? "";
|
|
|
447
477
|
function getInitials(name) {
|
|
448
478
|
return name.trim().split(/\s+/).filter(Boolean).slice(0, 2).map((word) => firstCharacter(firstCharacter(word).toUpperCase())).join("");
|
|
449
479
|
}
|
|
450
|
-
var Avatar = (0,
|
|
480
|
+
var Avatar = (0, import_react3.forwardRef)((allProps, ref) => {
|
|
451
481
|
const { className, size, name, src, alt, delayMs, ...props } = allProps;
|
|
452
482
|
const initials = getInitials(name);
|
|
453
|
-
const [load, setLoad] = (0,
|
|
483
|
+
const [load, setLoad] = (0, import_react3.useState)(null);
|
|
454
484
|
const status = load !== null && load.src === src ? load.status : "idle";
|
|
455
|
-
const [fallbackReady, setFallbackReady] = (0,
|
|
456
|
-
(0,
|
|
485
|
+
const [fallbackReady, setFallbackReady] = (0, import_react3.useState)(delayMs === void 0);
|
|
486
|
+
(0, import_react3.useEffect)(() => {
|
|
457
487
|
if (delayMs === void 0) {
|
|
458
488
|
setFallbackReady(true);
|
|
459
489
|
return;
|
|
@@ -462,7 +492,7 @@ var Avatar = (0, import_react2.forwardRef)((allProps, ref) => {
|
|
|
462
492
|
const t = setTimeout(() => setFallbackReady(true), delayMs);
|
|
463
493
|
return () => clearTimeout(t);
|
|
464
494
|
}, [delayMs, src]);
|
|
465
|
-
const imgRef = (0,
|
|
495
|
+
const imgRef = (0, import_react3.useCallback)(
|
|
466
496
|
(node) => {
|
|
467
497
|
if (node?.complete && node.naturalWidth > 0) setLoad({ src, status: "loaded" });
|
|
468
498
|
},
|
|
@@ -504,7 +534,7 @@ Avatar.displayName = "Avatar";
|
|
|
504
534
|
|
|
505
535
|
// src/Badge/Badge.tsx
|
|
506
536
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
507
|
-
var
|
|
537
|
+
var import_react4 = require("react");
|
|
508
538
|
var import_clsx3 = __toESM(require("clsx"), 1);
|
|
509
539
|
|
|
510
540
|
// src/Badge/Badge.manifest.ts
|
|
@@ -614,7 +644,7 @@ var iconBoxStyles = (0, import_class_variance_authority3.cva)("flex shrink-0 ite
|
|
|
614
644
|
},
|
|
615
645
|
defaultVariants: { size: "sm" }
|
|
616
646
|
});
|
|
617
|
-
var Badge = (0,
|
|
647
|
+
var Badge = (0, import_react4.forwardRef)((allProps, ref) => {
|
|
618
648
|
const {
|
|
619
649
|
className,
|
|
620
650
|
variant = "neutral",
|
|
@@ -633,7 +663,7 @@ var Badge = (0, import_react3.forwardRef)((allProps, ref) => {
|
|
|
633
663
|
appearance: appearance ?? void 0,
|
|
634
664
|
size: size ?? void 0
|
|
635
665
|
};
|
|
636
|
-
const composite =
|
|
666
|
+
const composite = import_react4.Children.toArray(children).some(
|
|
637
667
|
(child) => typeof child !== "string" && typeof child !== "number"
|
|
638
668
|
);
|
|
639
669
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
@@ -662,32 +692,32 @@ var Badge = (0, import_react3.forwardRef)((allProps, ref) => {
|
|
|
662
692
|
Badge.displayName = "Badge";
|
|
663
693
|
|
|
664
694
|
// src/TagGroup/TagGroup.tsx
|
|
665
|
-
var
|
|
695
|
+
var import_react7 = require("react");
|
|
666
696
|
var import_react_aria_components = require("react-aria-components");
|
|
667
697
|
var import_class_variance_authority4 = require("class-variance-authority");
|
|
668
698
|
var import_clsx4 = __toESM(require("clsx"), 1);
|
|
669
699
|
var import_icons3 = require("@oprt/icons");
|
|
670
700
|
|
|
671
701
|
// src/_internal/useRestoreFocusOnRemoval.ts
|
|
672
|
-
var
|
|
702
|
+
var import_react6 = require("react");
|
|
673
703
|
|
|
674
704
|
// src/_internal/useIsomorphicLayoutEffect.ts
|
|
675
|
-
var
|
|
676
|
-
var useIsomorphicLayoutEffect = typeof document === "undefined" ?
|
|
705
|
+
var import_react5 = require("react");
|
|
706
|
+
var useIsomorphicLayoutEffect = typeof document === "undefined" ? import_react5.useEffect : import_react5.useLayoutEffect;
|
|
677
707
|
|
|
678
708
|
// src/_internal/useRestoreFocusOnRemoval.ts
|
|
679
709
|
var goneByDefault = (element) => !element.isConnected || element.matches(":disabled");
|
|
680
710
|
function useRestoreFocusOnRemoval(root, options = {}) {
|
|
681
|
-
const tracked = (0,
|
|
682
|
-
const latest = (0,
|
|
711
|
+
const tracked = (0, import_react6.useRef)(null);
|
|
712
|
+
const latest = (0, import_react6.useRef)(options);
|
|
683
713
|
useIsomorphicLayoutEffect(() => {
|
|
684
714
|
latest.current = options;
|
|
685
715
|
});
|
|
686
|
-
const isGone = (0,
|
|
716
|
+
const isGone = (0, import_react6.useCallback)(
|
|
687
717
|
(element, state) => (latest.current.isGone ?? goneByDefault)(element, state),
|
|
688
718
|
[]
|
|
689
719
|
);
|
|
690
|
-
const onFocusCapture = (0,
|
|
720
|
+
const onFocusCapture = (0, import_react6.useCallback)(
|
|
691
721
|
(event) => {
|
|
692
722
|
const element = event.target;
|
|
693
723
|
const host = root.current;
|
|
@@ -701,7 +731,7 @@ function useRestoreFocusOnRemoval(root, options = {}) {
|
|
|
701
731
|
},
|
|
702
732
|
[root]
|
|
703
733
|
);
|
|
704
|
-
const onBlurCapture = (0,
|
|
734
|
+
const onBlurCapture = (0, import_react6.useCallback)(
|
|
705
735
|
(event) => {
|
|
706
736
|
const element = event.target;
|
|
707
737
|
if (tracked.current?.element !== element) return;
|
|
@@ -713,7 +743,7 @@ function useRestoreFocusOnRemoval(root, options = {}) {
|
|
|
713
743
|
},
|
|
714
744
|
[isGone]
|
|
715
745
|
);
|
|
716
|
-
(0,
|
|
746
|
+
(0, import_react6.useEffect)(() => {
|
|
717
747
|
const prior = tracked.current;
|
|
718
748
|
if (!prior || !isGone(prior.element, prior.state)) return;
|
|
719
749
|
tracked.current = null;
|
|
@@ -749,7 +779,7 @@ function reportNotApplied(prop) {
|
|
|
749
779
|
)
|
|
750
780
|
);
|
|
751
781
|
}
|
|
752
|
-
var TagGroup = (0,
|
|
782
|
+
var TagGroup = (0, import_react7.forwardRef)(
|
|
753
783
|
({
|
|
754
784
|
items,
|
|
755
785
|
label,
|
|
@@ -762,8 +792,8 @@ var TagGroup = (0, import_react6.forwardRef)(
|
|
|
762
792
|
dangerouslySetInnerHTML,
|
|
763
793
|
...props
|
|
764
794
|
}, ref) => {
|
|
765
|
-
const rootRef = (0,
|
|
766
|
-
(0,
|
|
795
|
+
const rootRef = (0, import_react7.useRef)(null);
|
|
796
|
+
(0, import_react7.useImperativeHandle)(ref, () => rootRef.current, []);
|
|
767
797
|
const { onFocusCapture, onBlurCapture } = useRestoreFocusOnRemoval(
|
|
768
798
|
rootRef,
|
|
769
799
|
{
|
|
@@ -779,7 +809,7 @@ var TagGroup = (0, import_react6.forwardRef)(
|
|
|
779
809
|
ariaLabel !== void 0 && "aria-label",
|
|
780
810
|
dangerouslySetInnerHTML !== void 0 && "dangerouslySetInnerHTML"
|
|
781
811
|
].filter(Boolean).join(" ");
|
|
782
|
-
(0,
|
|
812
|
+
(0, import_react7.useEffect)(() => {
|
|
783
813
|
if (process.env.NODE_ENV === "production") return;
|
|
784
814
|
for (const prop of notApplied ? notApplied.split(" ") : []) reportNotApplied(prop);
|
|
785
815
|
}, [notApplied]);
|
|
@@ -887,19 +917,19 @@ var TagGroupManifest = {
|
|
|
887
917
|
};
|
|
888
918
|
|
|
889
919
|
// src/PropertyFilter/PropertyFilter.tsx
|
|
890
|
-
var
|
|
920
|
+
var import_react20 = require("react");
|
|
891
921
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
892
922
|
var import_clsx10 = __toESM(require("clsx"), 1);
|
|
893
923
|
|
|
894
924
|
// src/Button/Button.tsx
|
|
895
925
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
896
926
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
897
|
-
var
|
|
927
|
+
var import_react10 = require("react");
|
|
898
928
|
var import_clsx5 = __toESM(require("clsx"), 1);
|
|
899
929
|
|
|
900
930
|
// src/_internal/motion.ts
|
|
901
|
-
var
|
|
902
|
-
var MotionContext = (0,
|
|
931
|
+
var import_react8 = require("react");
|
|
932
|
+
var MotionContext = (0, import_react8.createContext)("auto");
|
|
903
933
|
var MOTION_VALUES = ["auto", "none"];
|
|
904
934
|
var MOTION_PROPS = {
|
|
905
935
|
motion: { type: "enum", values: MOTION_VALUES, default: "auto" }
|
|
@@ -910,20 +940,20 @@ function useMotion(mode = "auto", component) {
|
|
|
910
940
|
motion: mode
|
|
911
941
|
});
|
|
912
942
|
}
|
|
913
|
-
const inherited = (0,
|
|
914
|
-
const [ready, setReady] = (0,
|
|
915
|
-
const [keyboard, setKeyboard] = (0,
|
|
916
|
-
const pointer = (0,
|
|
917
|
-
const frame = (0,
|
|
918
|
-
const contactCleanup = (0,
|
|
919
|
-
const clearContact = (0,
|
|
943
|
+
const inherited = (0, import_react8.useContext)(MotionContext);
|
|
944
|
+
const [ready, setReady] = (0, import_react8.useState)(false);
|
|
945
|
+
const [keyboard, setKeyboard] = (0, import_react8.useState)(false);
|
|
946
|
+
const pointer = (0, import_react8.useRef)(false);
|
|
947
|
+
const frame = (0, import_react8.useRef)();
|
|
948
|
+
const contactCleanup = (0, import_react8.useRef)();
|
|
949
|
+
const clearContact = (0, import_react8.useCallback)(() => {
|
|
920
950
|
contactCleanup.current?.();
|
|
921
951
|
contactCleanup.current = void 0;
|
|
922
952
|
}, []);
|
|
923
|
-
const cancel = (0,
|
|
953
|
+
const cancel = (0, import_react8.useCallback)(() => {
|
|
924
954
|
if (frame.current !== void 0) cancelAnimationFrame(frame.current);
|
|
925
955
|
}, []);
|
|
926
|
-
const afterPaint = (0,
|
|
956
|
+
const afterPaint = (0, import_react8.useCallback)(
|
|
927
957
|
(callback) => {
|
|
928
958
|
cancel();
|
|
929
959
|
frame.current = requestAnimationFrame(() => {
|
|
@@ -935,14 +965,14 @@ function useMotion(mode = "auto", component) {
|
|
|
935
965
|
},
|
|
936
966
|
[cancel]
|
|
937
967
|
);
|
|
938
|
-
(0,
|
|
968
|
+
(0, import_react8.useEffect)(() => {
|
|
939
969
|
afterPaint(() => setReady(true));
|
|
940
970
|
return () => {
|
|
941
971
|
cancel();
|
|
942
972
|
clearContact();
|
|
943
973
|
};
|
|
944
974
|
}, [afterPaint, cancel, clearContact]);
|
|
945
|
-
const resume = (0,
|
|
975
|
+
const resume = (0, import_react8.useCallback)(
|
|
946
976
|
() => afterPaint(() => {
|
|
947
977
|
setReady(true);
|
|
948
978
|
setKeyboard(false);
|
|
@@ -1022,11 +1052,11 @@ function composeMotionHandlers(motion, consumer) {
|
|
|
1022
1052
|
}
|
|
1023
1053
|
|
|
1024
1054
|
// src/_internal/unavailable.ts
|
|
1025
|
-
var
|
|
1026
|
-
var FocusableWhenUnavailableContext = (0,
|
|
1055
|
+
var import_react9 = require("react");
|
|
1056
|
+
var FocusableWhenUnavailableContext = (0, import_react9.createContext)(false);
|
|
1027
1057
|
var FocusableWhenUnavailableProvider = FocusableWhenUnavailableContext.Provider;
|
|
1028
1058
|
function useFocusableWhenUnavailable() {
|
|
1029
|
-
return (0,
|
|
1059
|
+
return (0, import_react9.useContext)(FocusableWhenUnavailableContext);
|
|
1030
1060
|
}
|
|
1031
1061
|
|
|
1032
1062
|
// src/Button/Button.manifest.ts
|
|
@@ -1116,14 +1146,14 @@ var buttonStyles = (0, import_class_variance_authority5.cva)(
|
|
|
1116
1146
|
}
|
|
1117
1147
|
);
|
|
1118
1148
|
function flatten(children, prefix = "") {
|
|
1119
|
-
return
|
|
1120
|
-
if (!(0,
|
|
1121
|
-
if (child.type ===
|
|
1122
|
-
return [prefix ? (0,
|
|
1149
|
+
return import_react10.Children.toArray(children).flatMap((child) => {
|
|
1150
|
+
if (!(0, import_react10.isValidElement)(child)) return [child];
|
|
1151
|
+
if (child.type === import_react10.Fragment) return flatten(child.props.children, `${prefix}${child.key}/`);
|
|
1152
|
+
return [prefix ? (0, import_react10.cloneElement)(child, { key: `${prefix}${child.key}` }) : child];
|
|
1123
1153
|
});
|
|
1124
1154
|
}
|
|
1125
1155
|
function isIcon(node) {
|
|
1126
|
-
if (!(0,
|
|
1156
|
+
if (!(0, import_react10.isValidElement)(node)) return false;
|
|
1127
1157
|
const hidden = node.props["aria-hidden"];
|
|
1128
1158
|
return node.type === "svg" || hidden === true || hidden === "true" || typeof node.type !== "string" && node.props.children == null;
|
|
1129
1159
|
}
|
|
@@ -1160,7 +1190,7 @@ function stopActivation(event) {
|
|
|
1160
1190
|
event.preventDefault();
|
|
1161
1191
|
event.stopPropagation();
|
|
1162
1192
|
}
|
|
1163
|
-
var Button2 = (0,
|
|
1193
|
+
var Button2 = (0, import_react10.forwardRef)((allProps, ref) => {
|
|
1164
1194
|
const {
|
|
1165
1195
|
className,
|
|
1166
1196
|
variant,
|
|
@@ -1216,14 +1246,14 @@ var Button2 = (0, import_react9.forwardRef)((allProps, ref) => {
|
|
|
1216
1246
|
Button2.displayName = "Button";
|
|
1217
1247
|
|
|
1218
1248
|
// src/Field/Field.tsx
|
|
1219
|
-
var
|
|
1249
|
+
var import_react13 = require("react");
|
|
1220
1250
|
var import_clsx6 = __toESM(require("clsx"), 1);
|
|
1221
1251
|
|
|
1222
1252
|
// src/_internal/fieldIds.ts
|
|
1223
|
-
var
|
|
1253
|
+
var import_react12 = require("react");
|
|
1224
1254
|
|
|
1225
1255
|
// src/_internal/hydration.ts
|
|
1226
|
-
var
|
|
1256
|
+
var import_react11 = require("react");
|
|
1227
1257
|
function keyForIds(...forwardedIds) {
|
|
1228
1258
|
return forwardedIds.join(" ");
|
|
1229
1259
|
}
|
|
@@ -1254,13 +1284,13 @@ function warnProbeMissing(origin) {
|
|
|
1254
1284
|
);
|
|
1255
1285
|
}
|
|
1256
1286
|
function useHydrationRoot(...forwardedIds) {
|
|
1257
|
-
const probe = (0,
|
|
1258
|
-
const hydrated = (0,
|
|
1259
|
-
const hydratingMount = (0,
|
|
1287
|
+
const probe = (0, import_react11.useId)();
|
|
1288
|
+
const hydrated = (0, import_react11.useSyncExternalStore)(subscribeNoop, getClientSnapshot, getServerSnapshot);
|
|
1289
|
+
const hydratingMount = (0, import_react11.useRef)();
|
|
1260
1290
|
if (hydratingMount.current === void 0) hydratingMount.current = !hydrated;
|
|
1261
|
-
const [disagrees, setDisagrees] = (0,
|
|
1262
|
-
const clientOnly = (0,
|
|
1263
|
-
const origin = (0,
|
|
1291
|
+
const [disagrees, setDisagrees] = (0, import_react11.useState)(false);
|
|
1292
|
+
const clientOnly = (0, import_react11.useRef)(hydrated);
|
|
1293
|
+
const origin = (0, import_react11.useRef)();
|
|
1264
1294
|
if (process.env.NODE_ENV !== "production" && origin.current === void 0) {
|
|
1265
1295
|
origin.current = callerOfHook();
|
|
1266
1296
|
}
|
|
@@ -1279,9 +1309,9 @@ function useHydrationRoot(...forwardedIds) {
|
|
|
1279
1309
|
};
|
|
1280
1310
|
}
|
|
1281
1311
|
function useHydratedId(readRenderedId) {
|
|
1282
|
-
const reactId = (0,
|
|
1283
|
-
const [renderedId, setRenderedId] = (0,
|
|
1284
|
-
const read = (0,
|
|
1312
|
+
const reactId = (0, import_react11.useId)();
|
|
1313
|
+
const [renderedId, setRenderedId] = (0, import_react11.useState)();
|
|
1314
|
+
const read = (0, import_react11.useRef)(readRenderedId);
|
|
1285
1315
|
useIsomorphicLayoutEffect(() => {
|
|
1286
1316
|
const id = read.current();
|
|
1287
1317
|
if (id && id !== reactId) setRenderedId(id);
|
|
@@ -1290,7 +1320,7 @@ function useHydratedId(readRenderedId) {
|
|
|
1290
1320
|
}
|
|
1291
1321
|
|
|
1292
1322
|
// src/_internal/fieldIds.ts
|
|
1293
|
-
var FieldContext = (0,
|
|
1323
|
+
var FieldContext = (0, import_react12.createContext)(null);
|
|
1294
1324
|
function joinIds(...ids) {
|
|
1295
1325
|
const joined = /* @__PURE__ */ new Set();
|
|
1296
1326
|
for (const id of ids) {
|
|
@@ -1315,7 +1345,7 @@ function ariaInvalidToken(value) {
|
|
|
1315
1345
|
return typeof value === "string" && value !== "true" && value !== "false" ? value : void 0;
|
|
1316
1346
|
}
|
|
1317
1347
|
function useFieldWiring(own2, options) {
|
|
1318
|
-
const field = (0,
|
|
1348
|
+
const field = (0, import_react12.useContext)(FieldContext);
|
|
1319
1349
|
const namedByField = options.label === "labelledby" && !own2["aria-label"] && !options.ownLabel;
|
|
1320
1350
|
const invalid = own2.invalid ?? ariaInvalidValue(own2["aria-invalid"]) ?? field?.invalid ?? false;
|
|
1321
1351
|
return {
|
|
@@ -1333,18 +1363,18 @@ function useFieldWiring(own2, options) {
|
|
|
1333
1363
|
// src/Field/Field.tsx
|
|
1334
1364
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1335
1365
|
function useFieldContext() {
|
|
1336
|
-
const ctx = (0,
|
|
1366
|
+
const ctx = (0, import_react13.useContext)(FieldContext);
|
|
1337
1367
|
if (!ctx) {
|
|
1338
1368
|
throw new Error("useFieldContext must be used inside a <Field>.");
|
|
1339
1369
|
}
|
|
1340
1370
|
return ctx;
|
|
1341
1371
|
}
|
|
1342
1372
|
function useOptionalFieldContext() {
|
|
1343
|
-
return (0,
|
|
1373
|
+
return (0, import_react13.useContext)(FieldContext);
|
|
1344
1374
|
}
|
|
1345
|
-
var Field = (0,
|
|
1375
|
+
var Field = (0, import_react13.forwardRef)(
|
|
1346
1376
|
({ controlId, label, help, error, required, children, className, ...props }, ref) => {
|
|
1347
|
-
const labelRef = (0,
|
|
1377
|
+
const labelRef = (0, import_react13.useRef)(null);
|
|
1348
1378
|
const ids = usePartIds(["label", "help", "error"], {
|
|
1349
1379
|
id: controlId,
|
|
1350
1380
|
readRendered: () => labelRef.current?.htmlFor
|
|
@@ -1404,7 +1434,7 @@ Field.displayName = "Field";
|
|
|
1404
1434
|
|
|
1405
1435
|
// src/Input/Input.tsx
|
|
1406
1436
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
1407
|
-
var
|
|
1437
|
+
var import_react15 = require("react");
|
|
1408
1438
|
var import_clsx7 = __toESM(require("clsx"), 1);
|
|
1409
1439
|
|
|
1410
1440
|
// src/Input/Input.manifest.ts
|
|
@@ -1456,7 +1486,7 @@ var InputManifest = {
|
|
|
1456
1486
|
|
|
1457
1487
|
// src/_internal/overlay.ts
|
|
1458
1488
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
1459
|
-
var
|
|
1489
|
+
var import_react14 = require("react");
|
|
1460
1490
|
function toPlacement(side, align) {
|
|
1461
1491
|
if (align === "center") return side;
|
|
1462
1492
|
if (side === "left" || side === "right") return `${side} ${align === "start" ? "top" : "bottom"}`;
|
|
@@ -1485,7 +1515,7 @@ var DESTRUCTIVE_ACTION = "Destructive action";
|
|
|
1485
1515
|
var MENU_ITEM_SHORTCUT = "shrink-0 font-mono text-oprt-sm normal-case tracking-normal text-oprt-text-dim forced-colors:[color:inherit]";
|
|
1486
1516
|
var MENU_EMPTY = "m-0 px-3u py-2u text-oprt-base normal-case text-oprt-text-dim";
|
|
1487
1517
|
function isSingleElement(node) {
|
|
1488
|
-
return (0,
|
|
1518
|
+
return (0, import_react14.isValidElement)(node) && node.type !== import_react14.Fragment;
|
|
1489
1519
|
}
|
|
1490
1520
|
|
|
1491
1521
|
// src/_internal/controlStyles.ts
|
|
@@ -1538,7 +1568,7 @@ var inputStyles = (0, import_class_variance_authority7.cva)(
|
|
|
1538
1568
|
// not the one line of text inside it (operations-map-R4); a text input centers its text itself.
|
|
1539
1569
|
"peer min-w-[min(10ch,100%)] flex-1 self-stretch bg-transparent border-0 outline-hidden font-sans font-medium text-oprt-md text-oprt-text placeholder:text-oprt-text-placeholder disabled:placeholder:text-oprt-text-dim disabled:cursor-not-allowed disabled:text-oprt-text-dim"
|
|
1540
1570
|
);
|
|
1541
|
-
var Input = (0,
|
|
1571
|
+
var Input = (0, import_react15.forwardRef)((allProps, ref) => {
|
|
1542
1572
|
const {
|
|
1543
1573
|
className,
|
|
1544
1574
|
size,
|
|
@@ -1619,7 +1649,7 @@ Input.displayName = "Input";
|
|
|
1619
1649
|
// src/Select/Select.tsx
|
|
1620
1650
|
var import_react_aria_components3 = require("react-aria-components");
|
|
1621
1651
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
1622
|
-
var
|
|
1652
|
+
var import_react19 = require("react");
|
|
1623
1653
|
var import_clsx9 = __toESM(require("clsx"), 1);
|
|
1624
1654
|
var import_icons5 = require("@oprt/icons");
|
|
1625
1655
|
|
|
@@ -1698,11 +1728,11 @@ var SelectCompositionRules = {
|
|
|
1698
1728
|
};
|
|
1699
1729
|
|
|
1700
1730
|
// src/_internal/aria.ts
|
|
1701
|
-
var
|
|
1731
|
+
var import_react17 = require("react");
|
|
1702
1732
|
|
|
1703
1733
|
// src/_internal/mergeRefs.ts
|
|
1704
|
-
var
|
|
1705
|
-
var supportsRefCleanup = Number.parseInt(
|
|
1734
|
+
var import_react16 = require("react");
|
|
1735
|
+
var supportsRefCleanup = Number.parseInt(import_react16.version, 10) >= 19;
|
|
1706
1736
|
function setRef(ref, node) {
|
|
1707
1737
|
if (typeof ref === "function") return ref(node);
|
|
1708
1738
|
if (ref !== null && typeof ref === "object") ref.current = node;
|
|
@@ -1728,12 +1758,12 @@ function mergeRefs(...refs) {
|
|
|
1728
1758
|
};
|
|
1729
1759
|
}
|
|
1730
1760
|
function useMergedRefs(...refs) {
|
|
1731
|
-
return (0,
|
|
1761
|
+
return (0, import_react16.useMemo)(() => mergeRefs(...refs), refs);
|
|
1732
1762
|
}
|
|
1733
1763
|
function useInputRefObject(setNode) {
|
|
1734
|
-
const node = (0,
|
|
1735
|
-
const cleanup = (0,
|
|
1736
|
-
return (0,
|
|
1764
|
+
const node = (0, import_react16.useRef)(null);
|
|
1765
|
+
const cleanup = (0, import_react16.useRef)(null);
|
|
1766
|
+
return (0, import_react16.useMemo)(
|
|
1737
1767
|
() => ({
|
|
1738
1768
|
get current() {
|
|
1739
1769
|
return node.current;
|
|
@@ -1764,7 +1794,7 @@ function definedOnly(props) {
|
|
|
1764
1794
|
return out;
|
|
1765
1795
|
}
|
|
1766
1796
|
function useAriaInvalidRef(forwarded, invalid) {
|
|
1767
|
-
const sync = (0,
|
|
1797
|
+
const sync = (0, import_react17.useCallback)(
|
|
1768
1798
|
(node) => {
|
|
1769
1799
|
if (!node) return;
|
|
1770
1800
|
if (invalid) node.setAttribute("aria-invalid", "true");
|
|
@@ -1775,7 +1805,7 @@ function useAriaInvalidRef(forwarded, invalid) {
|
|
|
1775
1805
|
return useMergedRefs(sync, forwarded);
|
|
1776
1806
|
}
|
|
1777
1807
|
function renderInvalidButton(invalid) {
|
|
1778
|
-
return (props) => (0,
|
|
1808
|
+
return (props) => (0, import_react17.createElement)("button", invalid ? { ...props, "aria-invalid": "true" } : props);
|
|
1779
1809
|
}
|
|
1780
1810
|
function switchValidationProps({
|
|
1781
1811
|
invalid,
|
|
@@ -1790,7 +1820,7 @@ function switchValidationProps({
|
|
|
1790
1820
|
|
|
1791
1821
|
// src/_internal/MotionPopover.tsx
|
|
1792
1822
|
var import_react_aria_components2 = require("react-aria-components");
|
|
1793
|
-
var
|
|
1823
|
+
var import_react18 = require("react");
|
|
1794
1824
|
var import_clsx8 = __toESM(require("clsx"), 1);
|
|
1795
1825
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1796
1826
|
function canTakeFocus(element) {
|
|
@@ -1805,16 +1835,16 @@ function PopoverSurface({
|
|
|
1805
1835
|
placement,
|
|
1806
1836
|
focusManagement
|
|
1807
1837
|
}) {
|
|
1808
|
-
const surface = (0,
|
|
1838
|
+
const surface = (0, import_react18.useRef)(null);
|
|
1809
1839
|
const surfaceRef = useMergedRefs(
|
|
1810
1840
|
surface,
|
|
1811
1841
|
// RAC hands over a callback or an object ref; a legacy string ref is not one it uses.
|
|
1812
1842
|
domProps.ref
|
|
1813
1843
|
);
|
|
1814
|
-
const wasExiting = (0,
|
|
1815
|
-
const restoreFocus = (0,
|
|
1816
|
-
const previousPlacement = (0,
|
|
1817
|
-
(0,
|
|
1844
|
+
const wasExiting = (0, import_react18.useRef)(isExiting);
|
|
1845
|
+
const restoreFocus = (0, import_react18.useRef)(false);
|
|
1846
|
+
const previousPlacement = (0, import_react18.useRef)(placement);
|
|
1847
|
+
(0, import_react18.useLayoutEffect)(() => {
|
|
1818
1848
|
const node = surface.current;
|
|
1819
1849
|
if (!node) return;
|
|
1820
1850
|
if (previousPlacement.current && previousPlacement.current !== placement) {
|
|
@@ -1839,7 +1869,7 @@ function PopoverSurface({
|
|
|
1839
1869
|
}
|
|
1840
1870
|
wasExiting.current = isExiting;
|
|
1841
1871
|
}, [isExiting, trigger, triggerRef, placement, focusManagement]);
|
|
1842
|
-
(0,
|
|
1872
|
+
(0, import_react18.useEffect)(() => {
|
|
1843
1873
|
if (focusManagement === "automatic" && isExiting && restoreFocus.current) {
|
|
1844
1874
|
const active = document.activeElement;
|
|
1845
1875
|
if (active === document.body || surface.current?.contains(active)) {
|
|
@@ -1917,7 +1947,7 @@ var triggerStyles = (0, import_class_variance_authority8.cva)(
|
|
|
1917
1947
|
);
|
|
1918
1948
|
var contentStyles = LISTBOX_SURFACE;
|
|
1919
1949
|
var itemStyles = LISTBOX_ROW;
|
|
1920
|
-
var Select = (0,
|
|
1950
|
+
var Select = (0, import_react19.forwardRef)(
|
|
1921
1951
|
({
|
|
1922
1952
|
motion = "auto",
|
|
1923
1953
|
placeholder,
|
|
@@ -2051,7 +2081,7 @@ var Select = (0, import_react18.forwardRef)(
|
|
|
2051
2081
|
}
|
|
2052
2082
|
);
|
|
2053
2083
|
Select.displayName = "Select";
|
|
2054
|
-
var SelectOption = (0,
|
|
2084
|
+
var SelectOption = (0, import_react19.forwardRef)(
|
|
2055
2085
|
({ className, children, value, disabled, ...props }, ref) => {
|
|
2056
2086
|
const itemProps = {};
|
|
2057
2087
|
if (typeof children === "string") itemProps["textValue"] = children;
|
|
@@ -2110,7 +2140,7 @@ function tokenLabel(token, fields) {
|
|
|
2110
2140
|
const error = getPropertyFilterTokenError(token, fields);
|
|
2111
2141
|
return error ? `Invalid filter: ${label}. ${error}` : label;
|
|
2112
2142
|
}
|
|
2113
|
-
var PropertyFilter = (0,
|
|
2143
|
+
var PropertyFilter = (0, import_react20.forwardRef)(
|
|
2114
2144
|
({
|
|
2115
2145
|
fields,
|
|
2116
2146
|
value,
|
|
@@ -2124,29 +2154,29 @@ var PropertyFilter = (0, import_react19.forwardRef)(
|
|
|
2124
2154
|
"aria-labelledby": labelledBy,
|
|
2125
2155
|
...props
|
|
2126
2156
|
}, ref) => {
|
|
2127
|
-
const instanceId = (0,
|
|
2128
|
-
const root = (0,
|
|
2129
|
-
(0,
|
|
2157
|
+
const instanceId = (0, import_react20.useId)();
|
|
2158
|
+
const root = (0, import_react20.useRef)(null);
|
|
2159
|
+
(0, import_react20.useImperativeHandle)(ref, () => root.current, []);
|
|
2130
2160
|
const ids = usePartIds(["error"], {
|
|
2131
2161
|
id,
|
|
2132
2162
|
readRendered: () => root.current?.getAttribute("data-oprt-ids")
|
|
2133
2163
|
});
|
|
2134
|
-
const nextId = (0,
|
|
2135
|
-
const addRef = (0,
|
|
2136
|
-
const clearRef = (0,
|
|
2137
|
-
const composing = (0,
|
|
2138
|
-
const pendingAdd = (0,
|
|
2139
|
-
const [draft, setDraft] = (0,
|
|
2140
|
-
const [error, setError] = (0,
|
|
2164
|
+
const nextId = (0, import_react20.useRef)(0);
|
|
2165
|
+
const addRef = (0, import_react20.useRef)(null);
|
|
2166
|
+
const clearRef = (0, import_react20.useRef)(null);
|
|
2167
|
+
const composing = (0, import_react20.useRef)(false);
|
|
2168
|
+
const pendingAdd = (0, import_react20.useRef)(null);
|
|
2169
|
+
const [draft, setDraft] = (0, import_react20.useState)({ field: "", operator: "", value: "" });
|
|
2170
|
+
const [error, setError] = (0, import_react20.useState)(null);
|
|
2141
2171
|
const field = fields.find((candidate) => candidate.key === draft.field);
|
|
2142
2172
|
const operator = field?.operators.find((candidate) => candidate.key === draft.operator);
|
|
2143
2173
|
const fault = (control) => error?.control === control ? { invalid: true, "aria-describedby": ids.error } : {};
|
|
2144
|
-
const clearLeft = (0,
|
|
2174
|
+
const clearLeft = (0, import_react20.useRef)(false);
|
|
2145
2175
|
const restore = useRestoreFocusOnRemoval(root, {
|
|
2146
2176
|
track: (element) => element === clearRef.current ? void 0 : null,
|
|
2147
2177
|
findTarget: () => !clearLeft.current && !disabled && value.tokens.length === 0 ? addRef.current : null
|
|
2148
2178
|
});
|
|
2149
|
-
(0,
|
|
2179
|
+
(0, import_react20.useEffect)(() => {
|
|
2150
2180
|
const pending = pendingAdd.current;
|
|
2151
2181
|
if (pending && value.tokens.some(
|
|
2152
2182
|
(token) => token.id === pending.token.id && token.field === pending.token.field && token.operator === pending.token.operator && token.value === pending.token.value
|
|
@@ -2404,7 +2434,7 @@ var PropertyFilterManifest = {
|
|
|
2404
2434
|
};
|
|
2405
2435
|
|
|
2406
2436
|
// src/CollectionState/CollectionState.tsx
|
|
2407
|
-
var
|
|
2437
|
+
var import_react21 = require("react");
|
|
2408
2438
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
2409
2439
|
var import_clsx11 = __toESM(require("clsx"), 1);
|
|
2410
2440
|
|
|
@@ -2465,7 +2495,7 @@ var headingStyles = (0, import_class_variance_authority10.cva)(
|
|
|
2465
2495
|
}
|
|
2466
2496
|
}
|
|
2467
2497
|
);
|
|
2468
|
-
var CollectionState = (0,
|
|
2498
|
+
var CollectionState = (0, import_react21.forwardRef)((allProps, ref) => {
|
|
2469
2499
|
const {
|
|
2470
2500
|
variant,
|
|
2471
2501
|
title,
|
|
@@ -2477,7 +2507,7 @@ var CollectionState = (0, import_react20.forwardRef)((allProps, ref) => {
|
|
|
2477
2507
|
"aria-describedby": describedBy,
|
|
2478
2508
|
...props
|
|
2479
2509
|
} = allProps;
|
|
2480
|
-
const id = (0,
|
|
2510
|
+
const id = (0, import_react21.useId)();
|
|
2481
2511
|
const titleId = `${id}-title`;
|
|
2482
2512
|
const descriptionId = `${id}-description`;
|
|
2483
2513
|
const Heading5 = `h${headingLevel}`;
|
|
@@ -2511,7 +2541,7 @@ CollectionState.displayName = "CollectionState";
|
|
|
2511
2541
|
|
|
2512
2542
|
// src/Breadcrumb/Breadcrumb.tsx
|
|
2513
2543
|
var import_icons6 = require("@oprt/icons");
|
|
2514
|
-
var
|
|
2544
|
+
var import_react22 = require("react");
|
|
2515
2545
|
var import_clsx12 = __toESM(require("clsx"), 1);
|
|
2516
2546
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2517
2547
|
function currentIndex(items) {
|
|
@@ -2520,7 +2550,7 @@ function currentIndex(items) {
|
|
|
2520
2550
|
const last = items.length - 1;
|
|
2521
2551
|
return items[last]?.current === false ? -1 : last;
|
|
2522
2552
|
}
|
|
2523
|
-
var Breadcrumb = (0,
|
|
2553
|
+
var Breadcrumb = (0, import_react22.forwardRef)(
|
|
2524
2554
|
({ items, separator = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_icons6.ChevronRight, { size: 12 }), className, ...props }, ref) => {
|
|
2525
2555
|
if (items.length === 0) return null;
|
|
2526
2556
|
const current = currentIndex(items);
|
|
@@ -2597,7 +2627,7 @@ var BreadcrumbManifest = {
|
|
|
2597
2627
|
|
|
2598
2628
|
// src/ButtonGroup/ButtonGroup.tsx
|
|
2599
2629
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
2600
|
-
var
|
|
2630
|
+
var import_react23 = require("react");
|
|
2601
2631
|
var import_clsx13 = __toESM(require("clsx"), 1);
|
|
2602
2632
|
|
|
2603
2633
|
// src/ButtonGroup/ButtonGroup.manifest.ts
|
|
@@ -2650,7 +2680,7 @@ var groupStyles2 = (0, import_class_variance_authority11.cva)("inline-flex max-w
|
|
|
2650
2680
|
],
|
|
2651
2681
|
defaultVariants: { orientation: "horizontal", attached: true }
|
|
2652
2682
|
});
|
|
2653
|
-
var ButtonGroup = (0,
|
|
2683
|
+
var ButtonGroup = (0, import_react23.forwardRef)((allProps, ref) => {
|
|
2654
2684
|
const { className, orientation = "horizontal", attached = true, ...props } = allProps;
|
|
2655
2685
|
if (process.env.NODE_ENV !== "production") {
|
|
2656
2686
|
devValidate("ButtonGroup", ButtonGroupManifest.ButtonGroup.props, { ...allProps });
|
|
@@ -2672,10 +2702,10 @@ var ButtonGroup = (0, import_react22.forwardRef)((allProps, ref) => {
|
|
|
2672
2702
|
ButtonGroup.displayName = "ButtonGroup";
|
|
2673
2703
|
|
|
2674
2704
|
// src/Card/Card.tsx
|
|
2675
|
-
var
|
|
2705
|
+
var import_react24 = require("react");
|
|
2676
2706
|
var import_clsx14 = __toESM(require("clsx"), 1);
|
|
2677
2707
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
2678
|
-
var Card = (0,
|
|
2708
|
+
var Card = (0, import_react24.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2679
2709
|
"div",
|
|
2680
2710
|
{
|
|
2681
2711
|
ref,
|
|
@@ -2687,7 +2717,7 @@ var Card = (0, import_react23.forwardRef)(({ className, ...props }, ref) => /* @
|
|
|
2687
2717
|
}
|
|
2688
2718
|
));
|
|
2689
2719
|
Card.displayName = "Card";
|
|
2690
|
-
var CardHeader = (0,
|
|
2720
|
+
var CardHeader = (0, import_react24.forwardRef)(
|
|
2691
2721
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2692
2722
|
"div",
|
|
2693
2723
|
{
|
|
@@ -2703,7 +2733,7 @@ var CardHeader = (0, import_react23.forwardRef)(
|
|
|
2703
2733
|
)
|
|
2704
2734
|
);
|
|
2705
2735
|
CardHeader.displayName = "CardHeader";
|
|
2706
|
-
var CardBody = (0,
|
|
2736
|
+
var CardBody = (0, import_react24.forwardRef)(
|
|
2707
2737
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2708
2738
|
"div",
|
|
2709
2739
|
{
|
|
@@ -2717,7 +2747,7 @@ var CardBody = (0, import_react23.forwardRef)(
|
|
|
2717
2747
|
)
|
|
2718
2748
|
);
|
|
2719
2749
|
CardBody.displayName = "CardBody";
|
|
2720
|
-
var CardFooter = (0,
|
|
2750
|
+
var CardFooter = (0, import_react24.forwardRef)(
|
|
2721
2751
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2722
2752
|
"div",
|
|
2723
2753
|
{
|
|
@@ -2791,7 +2821,7 @@ var CardCompositionRules = {
|
|
|
2791
2821
|
// src/Checkbox/Checkbox.tsx
|
|
2792
2822
|
var import_react_aria_components4 = require("react-aria-components");
|
|
2793
2823
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
2794
|
-
var
|
|
2824
|
+
var import_react25 = require("react");
|
|
2795
2825
|
var import_clsx15 = __toESM(require("clsx"), 1);
|
|
2796
2826
|
var import_icons7 = require("@oprt/icons");
|
|
2797
2827
|
|
|
@@ -2860,7 +2890,7 @@ var rootStyles2 = (0, import_class_variance_authority12.cva)(
|
|
|
2860
2890
|
defaultVariants: { size: "md" }
|
|
2861
2891
|
}
|
|
2862
2892
|
);
|
|
2863
|
-
var Checkbox = (0,
|
|
2893
|
+
var Checkbox = (0, import_react25.forwardRef)((props, ref) => {
|
|
2864
2894
|
const {
|
|
2865
2895
|
className,
|
|
2866
2896
|
motion = "auto",
|
|
@@ -2900,13 +2930,13 @@ var Checkbox = (0, import_react24.forwardRef)((props, ref) => {
|
|
|
2900
2930
|
devValidate("Checkbox", CheckboxManifest.Checkbox.props, { ...props });
|
|
2901
2931
|
}
|
|
2902
2932
|
const isControlled = checked !== void 0;
|
|
2903
|
-
const [uncontrolledIndeterminate, setUncontrolledIndeterminate] = (0,
|
|
2933
|
+
const [uncontrolledIndeterminate, setUncontrolledIndeterminate] = (0, import_react25.useState)(
|
|
2904
2934
|
defaultChecked === "indeterminate"
|
|
2905
2935
|
);
|
|
2906
2936
|
const isIndeterminate = isControlled ? checked === "indeterminate" : uncontrolledIndeterminate;
|
|
2907
2937
|
const setNode = useAriaInvalidRef(ref, isInvalid);
|
|
2908
2938
|
const inputRef = useInputRefObject(setNode);
|
|
2909
|
-
const deferredInputMotion = (0,
|
|
2939
|
+
const deferredInputMotion = (0, import_react25.useRef)(null);
|
|
2910
2940
|
const motionProps = {
|
|
2911
2941
|
...motionState.props,
|
|
2912
2942
|
onClickCapture: (event) => {
|
|
@@ -2983,7 +3013,7 @@ Checkbox.displayName = "Checkbox";
|
|
|
2983
3013
|
// src/Collapsible/Collapsible.tsx
|
|
2984
3014
|
var import_react_aria_components5 = require("react-aria-components");
|
|
2985
3015
|
var import_react_aria = require("react-aria");
|
|
2986
|
-
var
|
|
3016
|
+
var import_react26 = require("react");
|
|
2987
3017
|
var import_clsx16 = __toESM(require("clsx"), 1);
|
|
2988
3018
|
var import_icons8 = require("@oprt/icons");
|
|
2989
3019
|
|
|
@@ -3041,8 +3071,8 @@ var CollapsibleCompositionRules = {
|
|
|
3041
3071
|
// src/Collapsible/Collapsible.tsx
|
|
3042
3072
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3043
3073
|
function CollapsiblePanel({ expanded, children }) {
|
|
3044
|
-
const panel = (0,
|
|
3045
|
-
const latestExpanded = (0,
|
|
3074
|
+
const panel = (0, import_react26.useRef)(null);
|
|
3075
|
+
const latestExpanded = (0, import_react26.useRef)(expanded);
|
|
3046
3076
|
latestExpanded.current = expanded;
|
|
3047
3077
|
useIsomorphicLayoutEffect(() => {
|
|
3048
3078
|
const node = panel.current;
|
|
@@ -3081,7 +3111,7 @@ function toKeySet(value) {
|
|
|
3081
3111
|
if (Array.isArray(value)) return new Set(value);
|
|
3082
3112
|
return new Set(value === "" ? [] : [value]);
|
|
3083
3113
|
}
|
|
3084
|
-
var Collapsible = (0,
|
|
3114
|
+
var Collapsible = (0, import_react26.forwardRef)(
|
|
3085
3115
|
({
|
|
3086
3116
|
type = "single",
|
|
3087
3117
|
motion = "auto",
|
|
@@ -3095,7 +3125,7 @@ var Collapsible = (0, import_react25.forwardRef)(
|
|
|
3095
3125
|
}, ref) => {
|
|
3096
3126
|
const motionState = useMotion(motion);
|
|
3097
3127
|
const isControlled = value !== void 0;
|
|
3098
|
-
const [uncontrolledKeys, setUncontrolledKeys] = (0,
|
|
3128
|
+
const [uncontrolledKeys, setUncontrolledKeys] = (0, import_react26.useState)(
|
|
3099
3129
|
() => toKeySet(defaultValue)
|
|
3100
3130
|
);
|
|
3101
3131
|
const expandedKeys = isControlled ? toKeySet(value) : uncontrolledKeys;
|
|
@@ -3138,7 +3168,7 @@ var Collapsible = (0, import_react25.forwardRef)(
|
|
|
3138
3168
|
}
|
|
3139
3169
|
);
|
|
3140
3170
|
Collapsible.displayName = "Collapsible";
|
|
3141
|
-
var CollapsibleItem = (0,
|
|
3171
|
+
var CollapsibleItem = (0, import_react26.forwardRef)(
|
|
3142
3172
|
({ value, title, disabled, className, children, ...props }, ref) => {
|
|
3143
3173
|
const itemProps = {
|
|
3144
3174
|
...props,
|
|
@@ -3194,7 +3224,7 @@ CollapsibleItem.displayName = "CollapsibleItem";
|
|
|
3194
3224
|
// src/CommandPalette/CommandPalette.tsx
|
|
3195
3225
|
var import_icons9 = require("@oprt/icons");
|
|
3196
3226
|
var import_react_aria_components6 = require("react-aria-components");
|
|
3197
|
-
var
|
|
3227
|
+
var import_react27 = require("react");
|
|
3198
3228
|
var import_clsx17 = __toESM(require("clsx"), 1);
|
|
3199
3229
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3200
3230
|
var itemStyles2 = `m-0 ${MENU_ROW} text-oprt-base font-medium text-oprt-text cursor-pointer list-none outline-hidden data-[focused]:border-oprt-border-focus data-[focused]:shadow-oprt-focus data-[focused]:bg-oprt-surface-3 data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed ${FORCED_ACTIVE_ROW}`;
|
|
@@ -3210,17 +3240,17 @@ function reveal(list, row) {
|
|
|
3210
3240
|
else if (bottom > list.clientHeight) list.scrollTop += bottom - list.clientHeight;
|
|
3211
3241
|
}
|
|
3212
3242
|
function useSettled(value, delay) {
|
|
3213
|
-
const [settled, setSettled] = (0,
|
|
3214
|
-
(0,
|
|
3243
|
+
const [settled, setSettled] = (0, import_react27.useState)(value);
|
|
3244
|
+
(0, import_react27.useEffect)(() => {
|
|
3215
3245
|
const timer = setTimeout(() => setSettled(value), delay);
|
|
3216
3246
|
return () => clearTimeout(timer);
|
|
3217
3247
|
}, [value, delay]);
|
|
3218
3248
|
return settled;
|
|
3219
3249
|
}
|
|
3220
3250
|
function useReturnFocusToOpener(isOpen) {
|
|
3221
|
-
const clicked = (0,
|
|
3222
|
-
const opener = (0,
|
|
3223
|
-
(0,
|
|
3251
|
+
const clicked = (0, import_react27.useRef)(null);
|
|
3252
|
+
const opener = (0, import_react27.useRef)(null);
|
|
3253
|
+
(0, import_react27.useEffect)(() => {
|
|
3224
3254
|
const record = (event) => {
|
|
3225
3255
|
const target = event.target instanceof Element ? event.target.closest(FOCUSABLE) : null;
|
|
3226
3256
|
clicked.current = target;
|
|
@@ -3252,17 +3282,17 @@ function PaletteContent({
|
|
|
3252
3282
|
emptyMessage,
|
|
3253
3283
|
onRun
|
|
3254
3284
|
}) {
|
|
3255
|
-
const [query, setQuery] = (0,
|
|
3256
|
-
const byId = (0,
|
|
3285
|
+
const [query, setQuery] = (0, import_react27.useState)("");
|
|
3286
|
+
const byId = (0, import_react27.useMemo)(() => {
|
|
3257
3287
|
const map = /* @__PURE__ */ new Map();
|
|
3258
3288
|
for (const cmd of commands) map.set(cmd.id, cmd);
|
|
3259
3289
|
return map;
|
|
3260
3290
|
}, [commands]);
|
|
3261
|
-
const hasGroups = (0,
|
|
3291
|
+
const hasGroups = (0, import_react27.useMemo)(
|
|
3262
3292
|
() => commands.some((cmd) => cmd.group !== void 0 && cmd.group !== ""),
|
|
3263
3293
|
[commands]
|
|
3264
3294
|
);
|
|
3265
|
-
const runs = (0,
|
|
3295
|
+
const runs = (0, import_react27.useMemo)(() => {
|
|
3266
3296
|
const out = [];
|
|
3267
3297
|
for (const cmd of commands) {
|
|
3268
3298
|
const group = hasGroups && cmd.group !== void 0 && cmd.group !== "" ? cmd.group : void 0;
|
|
@@ -3272,12 +3302,12 @@ function PaletteContent({
|
|
|
3272
3302
|
}
|
|
3273
3303
|
return out;
|
|
3274
3304
|
}, [commands, hasGroups]);
|
|
3275
|
-
const disabledKeys = (0,
|
|
3305
|
+
const disabledKeys = (0, import_react27.useMemo)(
|
|
3276
3306
|
() => commands.filter((cmd) => cmd.disabled).map((cmd) => cmd.id),
|
|
3277
3307
|
[commands]
|
|
3278
3308
|
);
|
|
3279
3309
|
const { contains } = (0, import_react_aria_components6.useFilter)({ sensitivity: "base" });
|
|
3280
|
-
const filter = (0,
|
|
3310
|
+
const filter = (0, import_react27.useCallback)(
|
|
3281
3311
|
(textValue, inputValue, node) => {
|
|
3282
3312
|
if (inputValue === "") return true;
|
|
3283
3313
|
if (contains(textValue, inputValue)) return true;
|
|
@@ -3288,15 +3318,15 @@ function PaletteContent({
|
|
|
3288
3318
|
);
|
|
3289
3319
|
const noMatch = query !== "" && !commands.some((cmd) => filter(cmd.label, query, { key: cmd.id }));
|
|
3290
3320
|
const announcement = useSettled(noMatch ? emptyMessage : "", 300);
|
|
3291
|
-
const onAction = (0,
|
|
3321
|
+
const onAction = (0, import_react27.useCallback)(
|
|
3292
3322
|
(key) => {
|
|
3293
3323
|
const cmd = byId.get(String(key));
|
|
3294
3324
|
if (cmd && !cmd.disabled) onRun(cmd);
|
|
3295
3325
|
},
|
|
3296
3326
|
[byId, onRun]
|
|
3297
3327
|
);
|
|
3298
|
-
const listObserver = (0,
|
|
3299
|
-
const listRef = (0,
|
|
3328
|
+
const listObserver = (0, import_react27.useRef)(null);
|
|
3329
|
+
const listRef = (0, import_react27.useCallback)((list) => {
|
|
3300
3330
|
listObserver.current?.disconnect();
|
|
3301
3331
|
listObserver.current = null;
|
|
3302
3332
|
if (!list) return;
|
|
@@ -3365,7 +3395,7 @@ function PaletteContent({
|
|
|
3365
3395
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { role: "status", className: "sr-only", children: announcement })
|
|
3366
3396
|
] });
|
|
3367
3397
|
}
|
|
3368
|
-
var CommandPalette = (0,
|
|
3398
|
+
var CommandPalette = (0, import_react27.forwardRef)(
|
|
3369
3399
|
({
|
|
3370
3400
|
open,
|
|
3371
3401
|
defaultOpen,
|
|
@@ -3375,18 +3405,18 @@ var CommandPalette = (0, import_react26.forwardRef)(
|
|
|
3375
3405
|
emptyMessage = "No results",
|
|
3376
3406
|
className
|
|
3377
3407
|
}, ref) => {
|
|
3378
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
3408
|
+
const [internalOpen, setInternalOpen] = (0, import_react27.useState)(defaultOpen ?? false);
|
|
3379
3409
|
const isControlled = open !== void 0;
|
|
3380
3410
|
const isOpen = isControlled ? open : internalOpen;
|
|
3381
3411
|
useReturnFocusToOpener(isOpen);
|
|
3382
|
-
const setOpen = (0,
|
|
3412
|
+
const setOpen = (0, import_react27.useCallback)(
|
|
3383
3413
|
(next) => {
|
|
3384
3414
|
if (!isControlled) setInternalOpen(next);
|
|
3385
3415
|
onOpenChange?.(next);
|
|
3386
3416
|
},
|
|
3387
3417
|
[isControlled, onOpenChange]
|
|
3388
3418
|
);
|
|
3389
|
-
const onRun = (0,
|
|
3419
|
+
const onRun = (0, import_react27.useCallback)(
|
|
3390
3420
|
(cmd) => {
|
|
3391
3421
|
cmd.onSelect();
|
|
3392
3422
|
setOpen(false);
|
|
@@ -3464,14 +3494,14 @@ var CommandPaletteManifest = {
|
|
|
3464
3494
|
};
|
|
3465
3495
|
|
|
3466
3496
|
// src/ConfirmDialog/ConfirmDialog.tsx
|
|
3467
|
-
var
|
|
3497
|
+
var import_react29 = require("react");
|
|
3468
3498
|
|
|
3469
3499
|
// src/Dialog/Dialog.tsx
|
|
3470
3500
|
var import_icons10 = require("@oprt/icons");
|
|
3471
3501
|
var import_react_aria_components7 = require("react-aria-components");
|
|
3472
3502
|
var import_react_aria2 = require("react-aria");
|
|
3473
3503
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
3474
|
-
var
|
|
3504
|
+
var import_react28 = require("react");
|
|
3475
3505
|
var import_clsx18 = __toESM(require("clsx"), 1);
|
|
3476
3506
|
|
|
3477
3507
|
// src/Dialog/Dialog.manifest.ts
|
|
@@ -3520,8 +3550,8 @@ function DialogReentryFocus({
|
|
|
3520
3550
|
dialog,
|
|
3521
3551
|
children
|
|
3522
3552
|
}) {
|
|
3523
|
-
const wasOpen = (0,
|
|
3524
|
-
(0,
|
|
3553
|
+
const wasOpen = (0, import_react28.useRef)(open);
|
|
3554
|
+
(0, import_react28.useLayoutEffect)(() => {
|
|
3525
3555
|
if (open && !wasOpen.current && !dialog.current?.contains(document.activeElement)) {
|
|
3526
3556
|
dialog.current?.focus({ preventScroll: true });
|
|
3527
3557
|
}
|
|
@@ -3530,8 +3560,8 @@ function DialogReentryFocus({
|
|
|
3530
3560
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children });
|
|
3531
3561
|
}
|
|
3532
3562
|
function useScrolls(element, content) {
|
|
3533
|
-
const [scrolls, setScrolls] = (0,
|
|
3534
|
-
(0,
|
|
3563
|
+
const [scrolls, setScrolls] = (0, import_react28.useState)(false);
|
|
3564
|
+
(0, import_react28.useEffect)(() => {
|
|
3535
3565
|
const box = element.current;
|
|
3536
3566
|
if (!box || typeof ResizeObserver === "undefined") return;
|
|
3537
3567
|
const measure = () => setScrolls(box.scrollHeight > box.clientHeight + 1);
|
|
@@ -3544,8 +3574,8 @@ function useScrolls(element, content) {
|
|
|
3544
3574
|
return scrolls;
|
|
3545
3575
|
}
|
|
3546
3576
|
function DialogBody({ title, children }) {
|
|
3547
|
-
const body = (0,
|
|
3548
|
-
const content = (0,
|
|
3577
|
+
const body = (0, import_react28.useRef)(null);
|
|
3578
|
+
const content = (0, import_react28.useRef)(null);
|
|
3549
3579
|
const scrolls = useScrolls(body, content);
|
|
3550
3580
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3551
3581
|
"div",
|
|
@@ -3567,7 +3597,7 @@ function withDroppedProps2(rendered, accepted) {
|
|
|
3567
3597
|
}
|
|
3568
3598
|
return (0, import_react_aria2.mergeProps)(rendered, dropped);
|
|
3569
3599
|
}
|
|
3570
|
-
var Dialog2 = (0,
|
|
3600
|
+
var Dialog2 = (0, import_react28.forwardRef)(
|
|
3571
3601
|
({
|
|
3572
3602
|
title,
|
|
3573
3603
|
motion = "auto",
|
|
@@ -3583,7 +3613,7 @@ var Dialog2 = (0, import_react27.forwardRef)(
|
|
|
3583
3613
|
...props
|
|
3584
3614
|
}, ref) => {
|
|
3585
3615
|
const motionState = useMotion(motion);
|
|
3586
|
-
const dialogRef = (0,
|
|
3616
|
+
const dialogRef = (0, import_react28.useRef)(null);
|
|
3587
3617
|
const setDialogRef = useMergedRefs(dialogRef, ref);
|
|
3588
3618
|
const rootProps = definedOnly({
|
|
3589
3619
|
isOpen: open,
|
|
@@ -3593,7 +3623,7 @@ var Dialog2 = (0, import_react27.forwardRef)(
|
|
|
3593
3623
|
if (process.env.NODE_ENV !== "production") {
|
|
3594
3624
|
devValidate("Dialog", DialogManifest.Dialog.props, { ...props, size });
|
|
3595
3625
|
}
|
|
3596
|
-
const generatedId = (0,
|
|
3626
|
+
const generatedId = (0, import_react28.useId)();
|
|
3597
3627
|
const describedBy = description ? `${generatedId}description` : void 0;
|
|
3598
3628
|
const naming = definedOnly({
|
|
3599
3629
|
id: props.id,
|
|
@@ -3669,7 +3699,7 @@ var Dialog2 = (0, import_react27.forwardRef)(
|
|
|
3669
3699
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MotionContext.Provider, { value: motionState.mode, children: overlay });
|
|
3670
3700
|
const triggerElement = isSingleElement(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button2, { children: trigger });
|
|
3671
3701
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MotionContext.Provider, { value: motionState.mode, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_aria_components7.DialogTrigger, { ...rootProps, children: [
|
|
3672
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components7.Pressable, { ...{ "aria-haspopup": "dialog" }, children: (0,
|
|
3702
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_aria_components7.Pressable, { ...{ "aria-haspopup": "dialog" }, children: (0, import_react28.cloneElement)(
|
|
3673
3703
|
triggerElement,
|
|
3674
3704
|
composeMotionHandlers(motionState.props, triggerElement.props)
|
|
3675
3705
|
) }),
|
|
@@ -3711,7 +3741,7 @@ var ConfirmDialogManifest = {
|
|
|
3711
3741
|
|
|
3712
3742
|
// src/ConfirmDialog/ConfirmDialog.tsx
|
|
3713
3743
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3714
|
-
var ConfirmDialog = (0,
|
|
3744
|
+
var ConfirmDialog = (0, import_react29.forwardRef)((props, ref) => {
|
|
3715
3745
|
const {
|
|
3716
3746
|
trigger,
|
|
3717
3747
|
title,
|
|
@@ -3728,14 +3758,14 @@ var ConfirmDialog = (0, import_react28.forwardRef)((props, ref) => {
|
|
|
3728
3758
|
className
|
|
3729
3759
|
} = props;
|
|
3730
3760
|
const isControlled = open !== void 0;
|
|
3731
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
3761
|
+
const [internalOpen, setInternalOpen] = (0, import_react29.useState)(defaultOpen ?? false);
|
|
3732
3762
|
const resolvedOpen = isControlled ? open : internalOpen;
|
|
3733
3763
|
const setOpen = (next) => {
|
|
3734
3764
|
if (!isControlled) setInternalOpen(next);
|
|
3735
3765
|
onOpenChange?.(next);
|
|
3736
3766
|
};
|
|
3737
|
-
const [phrase, setPhrase] = (0,
|
|
3738
|
-
(0,
|
|
3767
|
+
const [phrase, setPhrase] = (0, import_react29.useState)("");
|
|
3768
|
+
(0, import_react29.useEffect)(() => {
|
|
3739
3769
|
if (!resolvedOpen) setPhrase("");
|
|
3740
3770
|
}, [resolvedOpen]);
|
|
3741
3771
|
const confirmDisabled = confirmPhrase !== void 0 && phrase.trim() !== confirmPhrase;
|
|
@@ -3784,11 +3814,11 @@ ConfirmDialog.displayName = "ConfirmDialog";
|
|
|
3784
3814
|
|
|
3785
3815
|
// src/DataTable/DataTable.tsx
|
|
3786
3816
|
var import_icons11 = require("@oprt/icons");
|
|
3787
|
-
var
|
|
3817
|
+
var import_react34 = require("react");
|
|
3788
3818
|
var import_clsx20 = __toESM(require("clsx"), 1);
|
|
3789
3819
|
|
|
3790
3820
|
// src/_internal/numberText.tsx
|
|
3791
|
-
var
|
|
3821
|
+
var import_react30 = require("react");
|
|
3792
3822
|
var import_clsx19 = __toESM(require("clsx"), 1);
|
|
3793
3823
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3794
3824
|
var DIGIT = "\\p{Nd}";
|
|
@@ -3944,7 +3974,7 @@ function numberText({ value, unit, className }) {
|
|
|
3944
3974
|
);
|
|
3945
3975
|
}
|
|
3946
3976
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { "data-oprt-number": "", className, children: [
|
|
3947
|
-
lead.map((piece, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3977
|
+
lead.map((piece, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react30.Fragment, { children: [
|
|
3948
3978
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "whitespace-nowrap", children: piece }),
|
|
3949
3979
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)("wbr", {})
|
|
3950
3980
|
] }, index)),
|
|
@@ -3996,21 +4026,21 @@ function sortedOrder(values, direction, compare) {
|
|
|
3996
4026
|
}
|
|
3997
4027
|
|
|
3998
4028
|
// src/DataTable/useScrollsSideways.ts
|
|
3999
|
-
var
|
|
4029
|
+
var import_react32 = require("react");
|
|
4000
4030
|
|
|
4001
4031
|
// src/_internal/useElementWidth.ts
|
|
4002
|
-
var
|
|
4032
|
+
var import_react31 = require("react");
|
|
4003
4033
|
function createResizeObserver(callback) {
|
|
4004
4034
|
return typeof ResizeObserver === "undefined" ? null : new ResizeObserver(callback);
|
|
4005
4035
|
}
|
|
4006
4036
|
function useElementWidth(ref, { initial, min = 0, select }) {
|
|
4007
|
-
const [value, setValue] = (0,
|
|
4008
|
-
const measured = (0,
|
|
4009
|
-
const latest = (0,
|
|
4037
|
+
const [value, setValue] = (0, import_react31.useState)(initial);
|
|
4038
|
+
const measured = (0, import_react31.useRef)(null);
|
|
4039
|
+
const latest = (0, import_react31.useRef)({ min, select });
|
|
4010
4040
|
useIsomorphicLayoutEffect(() => {
|
|
4011
4041
|
latest.current = { min, select };
|
|
4012
4042
|
});
|
|
4013
|
-
(0,
|
|
4043
|
+
(0, import_react31.useEffect)(() => {
|
|
4014
4044
|
const element = ref.current;
|
|
4015
4045
|
if (!element) return;
|
|
4016
4046
|
const observer = createResizeObserver((entries) => {
|
|
@@ -4023,7 +4053,7 @@ function useElementWidth(ref, { initial, min = 0, select }) {
|
|
|
4023
4053
|
observer?.observe(element);
|
|
4024
4054
|
return () => observer?.disconnect();
|
|
4025
4055
|
}, [ref]);
|
|
4026
|
-
(0,
|
|
4056
|
+
(0, import_react31.useEffect)(() => {
|
|
4027
4057
|
if (select && measured.current !== null) setValue(select(measured.current));
|
|
4028
4058
|
}, [select]);
|
|
4029
4059
|
return value;
|
|
@@ -4031,14 +4061,14 @@ function useElementWidth(ref, { initial, min = 0, select }) {
|
|
|
4031
4061
|
|
|
4032
4062
|
// src/DataTable/useScrollsSideways.ts
|
|
4033
4063
|
function useScrollsSideways(enabled = true) {
|
|
4034
|
-
const box = (0,
|
|
4035
|
-
const followed = (0,
|
|
4036
|
-
const [scrolling, setScrolling] = (0,
|
|
4037
|
-
const answered = (0,
|
|
4064
|
+
const box = (0, import_react32.useRef)(null);
|
|
4065
|
+
const followed = (0, import_react32.useRef)(null);
|
|
4066
|
+
const [scrolling, setScrolling] = (0, import_react32.useState)(null);
|
|
4067
|
+
const answered = (0, import_react32.useRef)(scrolling);
|
|
4038
4068
|
useIsomorphicLayoutEffect(() => {
|
|
4039
4069
|
answered.current = scrolling;
|
|
4040
4070
|
});
|
|
4041
|
-
const setBox = (0,
|
|
4071
|
+
const setBox = (0, import_react32.useCallback)((element) => {
|
|
4042
4072
|
box.current = element;
|
|
4043
4073
|
if (element !== null && answered.current !== null && answered.current !== element) {
|
|
4044
4074
|
setScrolling(null);
|
|
@@ -4073,7 +4103,7 @@ function useScrollsSideways(enabled = true) {
|
|
|
4073
4103
|
}
|
|
4074
4104
|
};
|
|
4075
4105
|
});
|
|
4076
|
-
(0,
|
|
4106
|
+
(0, import_react32.useEffect)(
|
|
4077
4107
|
() => () => {
|
|
4078
4108
|
followed.current?.stop();
|
|
4079
4109
|
followed.current = null;
|
|
@@ -4084,7 +4114,7 @@ function useScrollsSideways(enabled = true) {
|
|
|
4084
4114
|
}
|
|
4085
4115
|
|
|
4086
4116
|
// src/DataTable/useTableWindow.ts
|
|
4087
|
-
var
|
|
4117
|
+
var import_react33 = require("react");
|
|
4088
4118
|
var finite = (value, fallback, minimum) => value !== void 0 && Number.isFinite(value) ? Math.max(minimum, value) : fallback;
|
|
4089
4119
|
var NO_HEIGHTS = /* @__PURE__ */ new Map();
|
|
4090
4120
|
var MIN_ROW = 24;
|
|
@@ -4097,18 +4127,18 @@ function useTableWindow(rowKeys, options) {
|
|
|
4097
4127
|
const estimate = fixed ?? finite(options?.estimateRowHeight, 40, 24);
|
|
4098
4128
|
const overscan = Math.floor(finite(options?.overscan, 3, 1));
|
|
4099
4129
|
const measured = windowed && fixed === void 0;
|
|
4100
|
-
const viewport = (0,
|
|
4101
|
-
const [heights, setHeights] = (0,
|
|
4102
|
-
const [anchor, setAnchor] = (0,
|
|
4103
|
-
const [focusedKey, setFocusedKey] = (0,
|
|
4104
|
-
const offsets = (0,
|
|
4130
|
+
const viewport = (0, import_react33.useRef)(null);
|
|
4131
|
+
const [heights, setHeights] = (0, import_react33.useState)(NO_HEIGHTS);
|
|
4132
|
+
const [anchor, setAnchor] = (0, import_react33.useState)(0);
|
|
4133
|
+
const [focusedKey, setFocusedKey] = (0, import_react33.useState)(null);
|
|
4134
|
+
const offsets = (0, import_react33.useMemo)(() => {
|
|
4105
4135
|
if (!measured) return null;
|
|
4106
4136
|
const result = new Float64Array(keys.length + 1);
|
|
4107
4137
|
for (let row = 0; row < keys.length; row++)
|
|
4108
4138
|
result[row + 1] = result[row] + (heights.get(keys[row]) ?? estimate);
|
|
4109
4139
|
return result;
|
|
4110
4140
|
}, [measured, keys, heights, estimate]);
|
|
4111
|
-
const geometry = (0,
|
|
4141
|
+
const geometry = (0, import_react33.useMemo)(
|
|
4112
4142
|
() => ({ count: count2, offsets, estimate, height }),
|
|
4113
4143
|
[count2, offsets, estimate, height]
|
|
4114
4144
|
);
|
|
@@ -4134,11 +4164,11 @@ function useTableWindow(rowKeys, options) {
|
|
|
4134
4164
|
const [from, to] = mountedRange(geometry, element.scrollTop, overscan);
|
|
4135
4165
|
if (from !== start || to !== end) setAnchor(element.scrollTop);
|
|
4136
4166
|
}, [windowed, geometry, overscan, start, end]);
|
|
4137
|
-
const nodes = (0,
|
|
4138
|
-
const keyOf2 = (0,
|
|
4139
|
-
const observer = (0,
|
|
4140
|
-
const rowRefs = (0,
|
|
4141
|
-
(0,
|
|
4167
|
+
const nodes = (0, import_react33.useRef)(/* @__PURE__ */ new Map());
|
|
4168
|
+
const keyOf2 = (0, import_react33.useRef)(/* @__PURE__ */ new WeakMap());
|
|
4169
|
+
const observer = (0, import_react33.useRef)(null);
|
|
4170
|
+
const rowRefs = (0, import_react33.useRef)(/* @__PURE__ */ new Map());
|
|
4171
|
+
(0, import_react33.useEffect)(() => {
|
|
4142
4172
|
if (!measured || typeof ResizeObserver === "undefined") return;
|
|
4143
4173
|
const resizes = new ResizeObserver((entries) => {
|
|
4144
4174
|
const sizes = [];
|
|
@@ -4156,7 +4186,7 @@ function useTableWindow(rowKeys, options) {
|
|
|
4156
4186
|
observer.current = null;
|
|
4157
4187
|
};
|
|
4158
4188
|
}, [measured]);
|
|
4159
|
-
(0,
|
|
4189
|
+
(0, import_react33.useEffect)(() => {
|
|
4160
4190
|
if (!measured || typeof ResizeObserver !== "undefined") return;
|
|
4161
4191
|
const sizes = [];
|
|
4162
4192
|
for (const [key, node] of nodes.current) {
|
|
@@ -4165,7 +4195,7 @@ function useTableWindow(rowKeys, options) {
|
|
|
4165
4195
|
}
|
|
4166
4196
|
if (sizes.length > 0) setHeights((current) => withHeights(current, sizes));
|
|
4167
4197
|
}, [measured, start, end]);
|
|
4168
|
-
(0,
|
|
4198
|
+
(0, import_react33.useEffect)(() => {
|
|
4169
4199
|
if (!measured) return;
|
|
4170
4200
|
for (const key of rowRefs.current.keys())
|
|
4171
4201
|
if (!index.has(key) && !nodes.current.has(key)) rowRefs.current.delete(key);
|
|
@@ -4322,7 +4352,7 @@ function renderCell(column, value, fixedWidth) {
|
|
|
4322
4352
|
return value;
|
|
4323
4353
|
}
|
|
4324
4354
|
}
|
|
4325
|
-
var DataTable = (0,
|
|
4355
|
+
var DataTable = (0, import_react34.forwardRef)(
|
|
4326
4356
|
({
|
|
4327
4357
|
columns,
|
|
4328
4358
|
data,
|
|
@@ -4343,7 +4373,7 @@ var DataTable = (0, import_react33.forwardRef)(
|
|
|
4343
4373
|
onBlurCapture,
|
|
4344
4374
|
...props
|
|
4345
4375
|
}, ref) => {
|
|
4346
|
-
const [sort, setSort] = (0,
|
|
4376
|
+
const [sort, setSort] = (0, import_react34.useState)(null);
|
|
4347
4377
|
const externallySorted = sortDescriptor !== void 0;
|
|
4348
4378
|
const toggleSort = (key) => {
|
|
4349
4379
|
setSort((prev) => {
|
|
@@ -4353,21 +4383,21 @@ var DataTable = (0, import_react33.forwardRef)(
|
|
|
4353
4383
|
});
|
|
4354
4384
|
};
|
|
4355
4385
|
const columnSortable = (col) => !externallySorted && sortable && col.sortable !== false;
|
|
4356
|
-
const order = (0,
|
|
4386
|
+
const order = (0, import_react34.useMemo)(
|
|
4357
4387
|
() => !externallySorted && sort ? sortedOrder(
|
|
4358
4388
|
data.map((row) => row[sort.key]),
|
|
4359
4389
|
sort.dir === "asc" ? 1 : -1
|
|
4360
4390
|
) : null,
|
|
4361
4391
|
[data, externallySorted, sort]
|
|
4362
4392
|
);
|
|
4363
|
-
const rows = (0,
|
|
4393
|
+
const rows = (0, import_react34.useMemo)(
|
|
4364
4394
|
() => order ? order.map((position) => data[position]) : data,
|
|
4365
4395
|
[data, order]
|
|
4366
4396
|
);
|
|
4367
|
-
const latestGetRowId = (0,
|
|
4397
|
+
const latestGetRowId = (0, import_react34.useRef)(getRowId);
|
|
4368
4398
|
latestGetRowId.current = getRowId;
|
|
4369
4399
|
const withRowIds = getRowId !== void 0;
|
|
4370
|
-
const rowKeys = (0,
|
|
4400
|
+
const rowKeys = (0, import_react34.useMemo)(() => {
|
|
4371
4401
|
const read = withRowIds ? latestGetRowId.current : void 0;
|
|
4372
4402
|
const keys2 = rows.map((row, position) => read?.(row, position) ?? String(position));
|
|
4373
4403
|
const index = /* @__PURE__ */ new Map();
|
|
@@ -4378,8 +4408,8 @@ var DataTable = (0, import_react33.forwardRef)(
|
|
|
4378
4408
|
}, [rows, withRowIds]);
|
|
4379
4409
|
const sortsItself = !externallySorted && sortable && columns.some((column) => column.sortable !== false);
|
|
4380
4410
|
const outsideEnvelope = sortsItself && !virtualization && data.length > SORTABLE_ROWS_UNWINDOWED;
|
|
4381
|
-
const warned = (0,
|
|
4382
|
-
(0,
|
|
4411
|
+
const warned = (0, import_react34.useRef)(false);
|
|
4412
|
+
(0, import_react34.useEffect)(() => {
|
|
4383
4413
|
if (process.env.NODE_ENV === "production" || !outsideEnvelope || warned.current) return;
|
|
4384
4414
|
warned.current = true;
|
|
4385
4415
|
console.warn(
|
|
@@ -4705,7 +4735,7 @@ var DataTableManifest = {
|
|
|
4705
4735
|
|
|
4706
4736
|
// src/Divider/Divider.tsx
|
|
4707
4737
|
var import_react_aria_components8 = require("react-aria-components");
|
|
4708
|
-
var
|
|
4738
|
+
var import_react35 = require("react");
|
|
4709
4739
|
var import_clsx21 = __toESM(require("clsx"), 1);
|
|
4710
4740
|
|
|
4711
4741
|
// src/Divider/Divider.manifest.ts
|
|
@@ -4730,7 +4760,7 @@ var DividerManifest = {
|
|
|
4730
4760
|
// src/Divider/Divider.tsx
|
|
4731
4761
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
4732
4762
|
var lineStyles = "bg-oprt-border";
|
|
4733
|
-
var Divider = (0,
|
|
4763
|
+
var Divider = (0, import_react35.forwardRef)((allProps, ref) => {
|
|
4734
4764
|
const {
|
|
4735
4765
|
className,
|
|
4736
4766
|
orientation: requested = "horizontal",
|
|
@@ -4784,7 +4814,7 @@ Divider.displayName = "Divider";
|
|
|
4784
4814
|
|
|
4785
4815
|
// src/DropdownMenu/DropdownMenu.tsx
|
|
4786
4816
|
var import_react_aria_components9 = require("react-aria-components");
|
|
4787
|
-
var
|
|
4817
|
+
var import_react36 = require("react");
|
|
4788
4818
|
var import_clsx22 = __toESM(require("clsx"), 1);
|
|
4789
4819
|
|
|
4790
4820
|
// src/DropdownMenu/DropdownMenu.manifest.ts
|
|
@@ -4868,8 +4898,8 @@ var DropdownMenuCompositionRules = {
|
|
|
4868
4898
|
|
|
4869
4899
|
// src/DropdownMenu/DropdownMenu.tsx
|
|
4870
4900
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
4871
|
-
var KeepOpenContext = (0,
|
|
4872
|
-
var DropdownMenu = (0,
|
|
4901
|
+
var KeepOpenContext = (0, import_react36.createContext)(null);
|
|
4902
|
+
var DropdownMenu = (0, import_react36.forwardRef)((props, ref) => {
|
|
4873
4903
|
const {
|
|
4874
4904
|
motion = "auto",
|
|
4875
4905
|
trigger,
|
|
@@ -4882,10 +4912,10 @@ var DropdownMenu = (0, import_react35.forwardRef)((props, ref) => {
|
|
|
4882
4912
|
children
|
|
4883
4913
|
} = props;
|
|
4884
4914
|
const motionState = useMotion(motion);
|
|
4885
|
-
const [localOpen, setLocalOpen] = (0,
|
|
4915
|
+
const [localOpen, setLocalOpen] = (0, import_react36.useState)(defaultOpen);
|
|
4886
4916
|
const isOpen = open ?? localOpen;
|
|
4887
|
-
const keepOpen = (0,
|
|
4888
|
-
const requestOpen = (0,
|
|
4917
|
+
const keepOpen = (0, import_react36.useRef)(false);
|
|
4918
|
+
const requestOpen = (0, import_react36.useCallback)(
|
|
4889
4919
|
(next) => {
|
|
4890
4920
|
if (!next && keepOpen.current) {
|
|
4891
4921
|
keepOpen.current = false;
|
|
@@ -4920,9 +4950,9 @@ var DropdownMenu = (0, import_react35.forwardRef)((props, ref) => {
|
|
|
4920
4950
|
] }, hydration.key) }) });
|
|
4921
4951
|
});
|
|
4922
4952
|
DropdownMenu.displayName = "DropdownMenu";
|
|
4923
|
-
var DropdownMenuItem = (0,
|
|
4953
|
+
var DropdownMenuItem = (0, import_react36.forwardRef)(
|
|
4924
4954
|
({ className, shortcut, danger = false, disabled, textValue, onSelect, children, ...props }, ref) => {
|
|
4925
|
-
const keepOpen = (0,
|
|
4955
|
+
const keepOpen = (0, import_react36.useContext)(KeepOpenContext);
|
|
4926
4956
|
const itemProps = { ...definedOnly(props) };
|
|
4927
4957
|
if (textValue !== void 0) itemProps["textValue"] = textValue;
|
|
4928
4958
|
else if (typeof children === "string") itemProps["textValue"] = children;
|
|
@@ -4956,7 +4986,7 @@ var DropdownMenuItem = (0, import_react35.forwardRef)(
|
|
|
4956
4986
|
}
|
|
4957
4987
|
);
|
|
4958
4988
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
4959
|
-
var DropdownMenuSeparator = (0,
|
|
4989
|
+
var DropdownMenuSeparator = (0, import_react36.forwardRef)(
|
|
4960
4990
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4961
4991
|
import_react_aria_components9.Separator,
|
|
4962
4992
|
{
|
|
@@ -4968,7 +4998,7 @@ var DropdownMenuSeparator = (0, import_react35.forwardRef)(
|
|
|
4968
4998
|
)
|
|
4969
4999
|
);
|
|
4970
5000
|
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
4971
|
-
var DropdownMenuLabel = (0,
|
|
5001
|
+
var DropdownMenuLabel = (0, import_react36.forwardRef)(
|
|
4972
5002
|
({ className, ...props }, ref) => (
|
|
4973
5003
|
// RAC's Header is a valid collection leaf inside a Menu, but a bare
|
|
4974
5004
|
// <header> element maps to the `banner` landmark role, which is illegal
|
|
@@ -5024,7 +5054,7 @@ var FieldManifest = {
|
|
|
5024
5054
|
var import_react_aria_components10 = require("react-aria-components");
|
|
5025
5055
|
var import_react_aria3 = require("react-aria");
|
|
5026
5056
|
var import_filterDOMProps = require("react-aria/filterDOMProps");
|
|
5027
|
-
var
|
|
5057
|
+
var import_react37 = require("react");
|
|
5028
5058
|
var import_clsx23 = __toESM(require("clsx"), 1);
|
|
5029
5059
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
5030
5060
|
var itemStyles3 = [
|
|
@@ -5079,7 +5109,7 @@ function report(mistake, prop, received) {
|
|
|
5079
5109
|
}
|
|
5080
5110
|
var NOT_APPLIED = ["role", "aria-orientation", "dangerouslySetInnerHTML"];
|
|
5081
5111
|
var buttonsIn = (root) => root ? Array.from(root.querySelectorAll("button")) : [];
|
|
5082
|
-
var FilterBar = (0,
|
|
5112
|
+
var FilterBar = (0, import_react37.forwardRef)((componentProps, ref) => {
|
|
5083
5113
|
const {
|
|
5084
5114
|
className,
|
|
5085
5115
|
filters,
|
|
@@ -5091,9 +5121,9 @@ var FilterBar = (0, import_react36.forwardRef)((componentProps, ref) => {
|
|
|
5091
5121
|
disabled = false,
|
|
5092
5122
|
...props
|
|
5093
5123
|
} = componentProps;
|
|
5094
|
-
const root = (0,
|
|
5124
|
+
const root = (0, import_react37.useRef)(null);
|
|
5095
5125
|
const mergedRef = useMergedRefs(root, ref);
|
|
5096
|
-
const [ownSelection, setOwnSelection] = (0,
|
|
5126
|
+
const [ownSelection, setOwnSelection] = (0, import_react37.useState)(
|
|
5097
5127
|
() => toKeys(defaultValue ?? "")
|
|
5098
5128
|
);
|
|
5099
5129
|
const selected = value !== void 0 ? toKeys(value) : ownSelection;
|
|
@@ -5105,7 +5135,7 @@ var FilterBar = (0, import_react36.forwardRef)((componentProps, ref) => {
|
|
|
5105
5135
|
const sourceProp = value !== void 0 ? "value" : "defaultValue";
|
|
5106
5136
|
const unavailableKey = JSON.stringify(unavailable);
|
|
5107
5137
|
const duplicatesKey = JSON.stringify(duplicates);
|
|
5108
|
-
(0,
|
|
5138
|
+
(0, import_react37.useEffect)(() => {
|
|
5109
5139
|
if (process.env.NODE_ENV === "production") return;
|
|
5110
5140
|
for (const key of JSON.parse(unavailableKey))
|
|
5111
5141
|
report("unknown value", sourceProp, key);
|
|
@@ -5138,7 +5168,7 @@ var FilterBar = (0, import_react36.forwardRef)((componentProps, ref) => {
|
|
|
5138
5168
|
for (const name of [...Object.keys(forwarded), ...NOT_APPLIED])
|
|
5139
5169
|
delete dropped[name];
|
|
5140
5170
|
const notApplied = NOT_APPLIED.filter((name) => props[name] !== void 0).join(" ");
|
|
5141
|
-
(0,
|
|
5171
|
+
(0, import_react37.useEffect)(() => {
|
|
5142
5172
|
if (process.env.NODE_ENV === "production") return;
|
|
5143
5173
|
for (const name of notApplied ? notApplied.split(" ") : []) report("not applied", name, name);
|
|
5144
5174
|
}, [notApplied]);
|
|
@@ -5237,7 +5267,7 @@ var FilterBarManifest = {
|
|
|
5237
5267
|
// src/Progress/Progress.tsx
|
|
5238
5268
|
var import_react_aria_components11 = require("react-aria-components");
|
|
5239
5269
|
var import_class_variance_authority14 = require("class-variance-authority");
|
|
5240
|
-
var
|
|
5270
|
+
var import_react38 = require("react");
|
|
5241
5271
|
var import_clsx24 = __toESM(require("clsx"), 1);
|
|
5242
5272
|
|
|
5243
5273
|
// src/Progress/Progress.manifest.ts
|
|
@@ -5287,7 +5317,7 @@ var SOLID_FILL = "bg-oprt-accent forced-colors:bg-[CanvasText] forced-colors:[fo
|
|
|
5287
5317
|
var HATCH_FILL = "[--oprt-hatch:var(--oprt-accent)] forced-colors:[--oprt-hatch:CanvasText] forced-colors:[forced-color-adjust:none] [background-image:repeating-linear-gradient(135deg,var(--oprt-hatch)_0,var(--oprt-hatch)_var(--oprt-space-0-5),transparent_var(--oprt-space-0-5),transparent_var(--oprt-space-1))]";
|
|
5288
5318
|
var SLIDE_STILL = "motion-reduce:animate-none forced-colors:animate-none";
|
|
5289
5319
|
var BLOCK_HATCH = ["\u259A", "\u259E"];
|
|
5290
|
-
var Progress = (0,
|
|
5320
|
+
var Progress = (0, import_react38.forwardRef)((allProps, ref) => {
|
|
5291
5321
|
const {
|
|
5292
5322
|
className,
|
|
5293
5323
|
value,
|
|
@@ -5393,7 +5423,7 @@ Progress.displayName = "Progress";
|
|
|
5393
5423
|
// src/RadioGroup/RadioGroup.tsx
|
|
5394
5424
|
var import_react_aria_components12 = require("react-aria-components");
|
|
5395
5425
|
var import_class_variance_authority15 = require("class-variance-authority");
|
|
5396
|
-
var
|
|
5426
|
+
var import_react39 = require("react");
|
|
5397
5427
|
var import_clsx25 = __toESM(require("clsx"), 1);
|
|
5398
5428
|
var import_icons12 = require("@oprt/icons");
|
|
5399
5429
|
|
|
@@ -5440,7 +5470,7 @@ var RadioGroupCompositionRules = {
|
|
|
5440
5470
|
|
|
5441
5471
|
// src/RadioGroup/RadioGroup.tsx
|
|
5442
5472
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
5443
|
-
var SizeContext = (0,
|
|
5473
|
+
var SizeContext = (0, import_react39.createContext)("md");
|
|
5444
5474
|
var groupStyles3 = (0, import_class_variance_authority15.cva)("flex font-sans", {
|
|
5445
5475
|
variants: {
|
|
5446
5476
|
orientation: {
|
|
@@ -5466,7 +5496,7 @@ var radioBoxStyles = (0, import_class_variance_authority15.cva)(
|
|
|
5466
5496
|
defaultVariants: { size: "md" }
|
|
5467
5497
|
}
|
|
5468
5498
|
);
|
|
5469
|
-
var RadioGroup = (0,
|
|
5499
|
+
var RadioGroup = (0, import_react39.forwardRef)(
|
|
5470
5500
|
({
|
|
5471
5501
|
className,
|
|
5472
5502
|
orientation,
|
|
@@ -5534,9 +5564,9 @@ var RadioGroup = (0, import_react38.forwardRef)(
|
|
|
5534
5564
|
}
|
|
5535
5565
|
);
|
|
5536
5566
|
RadioGroup.displayName = "RadioGroup";
|
|
5537
|
-
var Radio = (0,
|
|
5567
|
+
var Radio = (0, import_react39.forwardRef)(
|
|
5538
5568
|
({ className, children, value, disabled, id, "aria-label": ariaLabel }, ref) => {
|
|
5539
|
-
const size = (0,
|
|
5569
|
+
const size = (0, import_react39.useContext)(SizeContext);
|
|
5540
5570
|
const setNode = useMergedRefs(ref);
|
|
5541
5571
|
const inputRef = useInputRefObject(setNode);
|
|
5542
5572
|
const itemProps = definedOnly({ id, "aria-label": ariaLabel });
|
|
@@ -5566,24 +5596,24 @@ Radio.displayName = "Radio";
|
|
|
5566
5596
|
|
|
5567
5597
|
// src/Sidebar/Sidebar.tsx
|
|
5568
5598
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
5569
|
-
var
|
|
5599
|
+
var import_react41 = require("react");
|
|
5570
5600
|
var import_clsx26 = __toESM(require("clsx"), 1);
|
|
5571
5601
|
|
|
5572
5602
|
// src/_internal/navigationLandmark.ts
|
|
5573
|
-
var
|
|
5574
|
-
var InsideNavigationLandmarkContext = (0,
|
|
5603
|
+
var import_react40 = require("react");
|
|
5604
|
+
var InsideNavigationLandmarkContext = (0, import_react40.createContext)(false);
|
|
5575
5605
|
var InsideNavigationLandmarkProvider = InsideNavigationLandmarkContext.Provider;
|
|
5576
5606
|
function useInsideNavigationLandmark() {
|
|
5577
|
-
return (0,
|
|
5607
|
+
return (0, import_react40.useContext)(InsideNavigationLandmarkContext);
|
|
5578
5608
|
}
|
|
5579
5609
|
|
|
5580
5610
|
// src/Sidebar/Sidebar.tsx
|
|
5581
5611
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
5582
|
-
var Sidebar = (0,
|
|
5612
|
+
var Sidebar = (0, import_react41.forwardRef)(
|
|
5583
5613
|
({ className, children, ...props }, ref) => {
|
|
5584
5614
|
const insideLandmark = useInsideNavigationLandmark();
|
|
5585
5615
|
const Root2 = insideLandmark ? "div" : "nav";
|
|
5586
|
-
const parts =
|
|
5616
|
+
const parts = import_react41.Children.toArray(children);
|
|
5587
5617
|
let start = 0;
|
|
5588
5618
|
while (start < parts.length && isPart(parts[start], SidebarLogo)) start += 1;
|
|
5589
5619
|
let end = parts.length;
|
|
@@ -5618,9 +5648,9 @@ var Sidebar = (0, import_react40.forwardRef)(
|
|
|
5618
5648
|
);
|
|
5619
5649
|
Sidebar.displayName = "Sidebar";
|
|
5620
5650
|
function isPart(node, part) {
|
|
5621
|
-
return (0,
|
|
5651
|
+
return (0, import_react41.isValidElement)(node) && node.type === part;
|
|
5622
5652
|
}
|
|
5623
|
-
var SidebarLogo = (0,
|
|
5653
|
+
var SidebarLogo = (0, import_react41.forwardRef)(
|
|
5624
5654
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
5625
5655
|
"div",
|
|
5626
5656
|
{
|
|
@@ -5637,9 +5667,9 @@ var SidebarLogo = (0, import_react40.forwardRef)(
|
|
|
5637
5667
|
)
|
|
5638
5668
|
);
|
|
5639
5669
|
SidebarLogo.displayName = "SidebarLogo";
|
|
5640
|
-
var SidebarSection = (0,
|
|
5670
|
+
var SidebarSection = (0, import_react41.forwardRef)(
|
|
5641
5671
|
({ className, label, children, ...props }, ref) => {
|
|
5642
|
-
const labelId = (0,
|
|
5672
|
+
const labelId = (0, import_react41.useId)();
|
|
5643
5673
|
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
5644
5674
|
"div",
|
|
5645
5675
|
{
|
|
@@ -5663,7 +5693,7 @@ var SidebarSection = (0, import_react40.forwardRef)(
|
|
|
5663
5693
|
}
|
|
5664
5694
|
);
|
|
5665
5695
|
SidebarSection.displayName = "SidebarSection";
|
|
5666
|
-
var SidebarItem = (0,
|
|
5696
|
+
var SidebarItem = (0, import_react41.forwardRef)(
|
|
5667
5697
|
({ className, icon, active = false, href, asChild = false, children, ...props }, ref) => {
|
|
5668
5698
|
const Comp = asChild ? import_react_slot2.Slot : href ? "a" : "button";
|
|
5669
5699
|
const sharedProps = {
|
|
@@ -5691,7 +5721,7 @@ var SidebarItem = (0, import_react40.forwardRef)(
|
|
|
5691
5721
|
}
|
|
5692
5722
|
);
|
|
5693
5723
|
SidebarItem.displayName = "SidebarItem";
|
|
5694
|
-
var SidebarFooter = (0,
|
|
5724
|
+
var SidebarFooter = (0, import_react41.forwardRef)(
|
|
5695
5725
|
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
5696
5726
|
"div",
|
|
5697
5727
|
{
|
|
@@ -5777,7 +5807,7 @@ var SidebarCompositionRules = {
|
|
|
5777
5807
|
|
|
5778
5808
|
// src/Skeleton/Skeleton.tsx
|
|
5779
5809
|
var import_class_variance_authority16 = require("class-variance-authority");
|
|
5780
|
-
var
|
|
5810
|
+
var import_react42 = require("react");
|
|
5781
5811
|
var import_clsx27 = __toESM(require("clsx"), 1);
|
|
5782
5812
|
|
|
5783
5813
|
// src/Skeleton/Skeleton.manifest.ts
|
|
@@ -5822,7 +5852,7 @@ var barStyles = (0, import_class_variance_authority16.cva)(
|
|
|
5822
5852
|
defaultVariants: { variant: "block" }
|
|
5823
5853
|
}
|
|
5824
5854
|
);
|
|
5825
|
-
var Skeleton = (0,
|
|
5855
|
+
var Skeleton = (0, import_react42.forwardRef)((allProps, ref) => {
|
|
5826
5856
|
const { className, variant = "block", width, height, lines = 3, ...props } = allProps;
|
|
5827
5857
|
if (process.env.NODE_ENV !== "production") {
|
|
5828
5858
|
devValidate("Skeleton", SkeletonManifest.Skeleton.props, { ...allProps });
|
|
@@ -5879,7 +5909,7 @@ Skeleton.displayName = "Skeleton";
|
|
|
5879
5909
|
var import_react_aria_components13 = require("react-aria-components");
|
|
5880
5910
|
var import_react_aria4 = require("react-aria");
|
|
5881
5911
|
var import_class_variance_authority17 = require("class-variance-authority");
|
|
5882
|
-
var
|
|
5912
|
+
var import_react43 = require("react");
|
|
5883
5913
|
var import_clsx28 = __toESM(require("clsx"), 1);
|
|
5884
5914
|
|
|
5885
5915
|
// src/Slider/Slider.manifest.ts
|
|
@@ -5989,8 +6019,8 @@ function ValueThumb({
|
|
|
5989
6019
|
index = 0,
|
|
5990
6020
|
...props
|
|
5991
6021
|
}) {
|
|
5992
|
-
const inputRef = (0,
|
|
5993
|
-
const state = (0,
|
|
6022
|
+
const inputRef = (0, import_react43.useRef)(null);
|
|
6023
|
+
const state = (0, import_react43.useContext)(import_react_aria_components13.SliderStateContext);
|
|
5994
6024
|
useIsomorphicLayoutEffect(() => {
|
|
5995
6025
|
const input = inputRef.current;
|
|
5996
6026
|
if (!input) return;
|
|
@@ -6002,7 +6032,7 @@ function ValueThumb({
|
|
|
6002
6032
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_aria_components13.SliderThumb, { ...props, index, inputRef });
|
|
6003
6033
|
}
|
|
6004
6034
|
var ENDS = ["lower", "upper"];
|
|
6005
|
-
var Slider = (0,
|
|
6035
|
+
var Slider = (0, import_react43.forwardRef)((props, ref) => {
|
|
6006
6036
|
const {
|
|
6007
6037
|
className,
|
|
6008
6038
|
style,
|
|
@@ -6049,7 +6079,7 @@ var Slider = (0, import_react42.forwardRef)((props, ref) => {
|
|
|
6049
6079
|
},
|
|
6050
6080
|
{ label: "labelledby" }
|
|
6051
6081
|
);
|
|
6052
|
-
const wrapper = (0,
|
|
6082
|
+
const wrapper = (0, import_react43.useRef)(null);
|
|
6053
6083
|
const ends = usePartIds(ENDS, {
|
|
6054
6084
|
readRendered: () => wrapper.current?.getAttribute("data-oprt-ids")
|
|
6055
6085
|
});
|
|
@@ -6143,7 +6173,7 @@ var Slider = (0, import_react42.forwardRef)((props, ref) => {
|
|
|
6143
6173
|
i
|
|
6144
6174
|
))
|
|
6145
6175
|
] }),
|
|
6146
|
-
showValue && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: valueStyles, "aria-hidden": "true", children: state.values.map((current, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6176
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: valueStyles, "aria-hidden": "true", children: state.values.map((current, index) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react43.Fragment, { children: [
|
|
6147
6177
|
index > 0 && " \u2013 ",
|
|
6148
6178
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(NumberText, { value: formatValue ? formatValue(current) : current })
|
|
6149
6179
|
] }, index)) })
|
|
@@ -6157,7 +6187,7 @@ Slider.displayName = "Slider";
|
|
|
6157
6187
|
|
|
6158
6188
|
// src/StatCard/StatCard.tsx
|
|
6159
6189
|
var import_icons13 = require("@oprt/icons");
|
|
6160
|
-
var
|
|
6190
|
+
var import_react44 = require("react");
|
|
6161
6191
|
var import_clsx29 = __toESM(require("clsx"), 1);
|
|
6162
6192
|
|
|
6163
6193
|
// src/StatCard/StatCard.manifest.ts
|
|
@@ -6260,7 +6290,7 @@ function StatValue({ value, unit }) {
|
|
|
6260
6290
|
};
|
|
6261
6291
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { "data-oprt-stat-value": "", className: VALUE_NUMBER, style, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { "data-oprt-stat-value-text": "", children: [
|
|
6262
6292
|
number.lead.length > 0 && // The groups before the last, each a run that cannot wrap, with a break after each.
|
|
6263
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: number.lead.map((piece, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
6293
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: number.lead.map((piece, index) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react44.Fragment, { children: [
|
|
6264
6294
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "whitespace-nowrap", children: piece }),
|
|
6265
6295
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("wbr", {})
|
|
6266
6296
|
] }, index)) }),
|
|
@@ -6281,7 +6311,7 @@ function StatValue({ value, unit }) {
|
|
|
6281
6311
|
unitRest
|
|
6282
6312
|
] }) : text }) });
|
|
6283
6313
|
}
|
|
6284
|
-
var StatCard = (0,
|
|
6314
|
+
var StatCard = (0, import_react44.forwardRef)((allProps, ref) => {
|
|
6285
6315
|
const {
|
|
6286
6316
|
className,
|
|
6287
6317
|
label,
|
|
@@ -6296,7 +6326,7 @@ var StatCard = (0, import_react43.forwardRef)((allProps, ref) => {
|
|
|
6296
6326
|
"aria-labelledby": ariaLabelledBy,
|
|
6297
6327
|
...props
|
|
6298
6328
|
} = allProps;
|
|
6299
|
-
const labelId = (0,
|
|
6329
|
+
const labelId = (0, import_react44.useId)();
|
|
6300
6330
|
const showTrend = delta !== void 0 || trend !== void 0;
|
|
6301
6331
|
const explicitTrend = has(TREND_ICONS, trend) ? trend : void 0;
|
|
6302
6332
|
const resolvedTrend = explicitTrend ?? (delta !== void 0 ? deriveTrend(delta) : "flat");
|
|
@@ -6358,7 +6388,7 @@ StatCard.displayName = "StatCard";
|
|
|
6358
6388
|
|
|
6359
6389
|
// src/Tabs/Tabs.tsx
|
|
6360
6390
|
var import_react_aria_components14 = require("react-aria-components");
|
|
6361
|
-
var
|
|
6391
|
+
var import_react47 = require("react");
|
|
6362
6392
|
var import_clsx30 = __toESM(require("clsx"), 1);
|
|
6363
6393
|
|
|
6364
6394
|
// src/Tabs/Tabs.manifest.ts
|
|
@@ -6431,10 +6461,10 @@ var TabsCompositionRules = {
|
|
|
6431
6461
|
};
|
|
6432
6462
|
|
|
6433
6463
|
// src/Tabs/useTabsIndicator.ts
|
|
6434
|
-
var
|
|
6464
|
+
var import_react45 = require("react");
|
|
6435
6465
|
function useTabsIndicator(list, vertical) {
|
|
6436
|
-
const [geometry, setGeometry] = (0,
|
|
6437
|
-
const selectedId = (0,
|
|
6466
|
+
const [geometry, setGeometry] = (0, import_react45.useState)();
|
|
6467
|
+
const selectedId = (0, import_react45.useRef)();
|
|
6438
6468
|
useIsomorphicLayoutEffect(() => {
|
|
6439
6469
|
const node = list.current;
|
|
6440
6470
|
if (!node) return;
|
|
@@ -6496,7 +6526,7 @@ function useTabsIndicator(list, vertical) {
|
|
|
6496
6526
|
}
|
|
6497
6527
|
|
|
6498
6528
|
// src/Tabs/useTabsScroll.ts
|
|
6499
|
-
var
|
|
6529
|
+
var import_react46 = require("react");
|
|
6500
6530
|
function hiddenSides(row) {
|
|
6501
6531
|
const range = row.scrollWidth - row.clientWidth;
|
|
6502
6532
|
if (range <= 1) return void 0;
|
|
@@ -6524,7 +6554,7 @@ function revealTab(row, tab) {
|
|
|
6524
6554
|
if (delta !== 0) row.scrollLeft += delta;
|
|
6525
6555
|
}
|
|
6526
6556
|
function useTabsScroll(list, vertical) {
|
|
6527
|
-
const [fade, setFade] = (0,
|
|
6557
|
+
const [fade, setFade] = (0, import_react46.useState)();
|
|
6528
6558
|
useIsomorphicLayoutEffect(() => {
|
|
6529
6559
|
const row = list.current;
|
|
6530
6560
|
if (!row || vertical) {
|
|
@@ -6612,8 +6642,8 @@ function useTabsScroll(list, vertical) {
|
|
|
6612
6642
|
|
|
6613
6643
|
// src/Tabs/Tabs.tsx
|
|
6614
6644
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
6615
|
-
var TabsOrientationContext = (0,
|
|
6616
|
-
var Tabs = (0,
|
|
6645
|
+
var TabsOrientationContext = (0, import_react47.createContext)("horizontal");
|
|
6646
|
+
var Tabs = (0, import_react47.forwardRef)(
|
|
6617
6647
|
({
|
|
6618
6648
|
className,
|
|
6619
6649
|
motion = "auto",
|
|
@@ -6661,10 +6691,10 @@ var scrollingRow = [
|
|
|
6661
6691
|
"data-[fade=right]:[mask-image:linear-gradient(to_left,transparent,var(--oprt-text)_var(--oprt-space-4))]",
|
|
6662
6692
|
"data-[fade=both]:[mask-image:linear-gradient(to_right,transparent,var(--oprt-text)_var(--oprt-space-4),var(--oprt-text)_calc(100%_-_var(--oprt-space-4)),transparent)]"
|
|
6663
6693
|
];
|
|
6664
|
-
var TabsList = (0,
|
|
6694
|
+
var TabsList = (0, import_react47.forwardRef)(
|
|
6665
6695
|
({ className, children, ...props }, ref) => {
|
|
6666
|
-
const orientation = (0,
|
|
6667
|
-
const list = (0,
|
|
6696
|
+
const orientation = (0, import_react47.useContext)(TabsOrientationContext);
|
|
6697
|
+
const list = (0, import_react47.useRef)(null);
|
|
6668
6698
|
const setNode = useMergedRefs(list, ref);
|
|
6669
6699
|
const vertical = orientation === "vertical";
|
|
6670
6700
|
const geometry = useTabsIndicator(list, vertical);
|
|
@@ -6716,7 +6746,7 @@ var TabsList = (0, import_react46.forwardRef)(
|
|
|
6716
6746
|
}
|
|
6717
6747
|
);
|
|
6718
6748
|
TabsList.displayName = "TabsList";
|
|
6719
|
-
var TabsTrigger = (0,
|
|
6749
|
+
var TabsTrigger = (0, import_react47.forwardRef)(
|
|
6720
6750
|
({ className, value, disabled, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
6721
6751
|
import_react_aria_components14.Tab,
|
|
6722
6752
|
{
|
|
@@ -6742,7 +6772,7 @@ var TabsTrigger = (0, import_react46.forwardRef)(
|
|
|
6742
6772
|
)
|
|
6743
6773
|
);
|
|
6744
6774
|
TabsTrigger.displayName = "TabsTrigger";
|
|
6745
|
-
var TabsContent = (0,
|
|
6775
|
+
var TabsContent = (0, import_react47.forwardRef)(
|
|
6746
6776
|
({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
6747
6777
|
import_react_aria_components14.TabPanel,
|
|
6748
6778
|
{
|
|
@@ -6761,7 +6791,7 @@ var TabsContent = (0, import_react46.forwardRef)(
|
|
|
6761
6791
|
TabsContent.displayName = "TabsContent";
|
|
6762
6792
|
|
|
6763
6793
|
// src/Textarea/Textarea.tsx
|
|
6764
|
-
var
|
|
6794
|
+
var import_react48 = require("react");
|
|
6765
6795
|
var import_class_variance_authority18 = require("class-variance-authority");
|
|
6766
6796
|
var import_clsx31 = __toESM(require("clsx"), 1);
|
|
6767
6797
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
@@ -6781,7 +6811,7 @@ var wrapperStyles2 = (0, import_class_variance_authority18.cva)(
|
|
|
6781
6811
|
}
|
|
6782
6812
|
);
|
|
6783
6813
|
var textareaStyles = "w-full bg-transparent border-0 outline-hidden resize-none font-sans font-medium text-oprt-md text-oprt-text placeholder:text-oprt-text-placeholder disabled:placeholder:text-oprt-text-dim disabled:cursor-not-allowed disabled:text-oprt-text-dim";
|
|
6784
|
-
var Textarea = (0,
|
|
6814
|
+
var Textarea = (0, import_react48.forwardRef)(
|
|
6785
6815
|
({
|
|
6786
6816
|
className,
|
|
6787
6817
|
invalid,
|
|
@@ -6849,7 +6879,7 @@ var TextareaManifest = {
|
|
|
6849
6879
|
var import_icons14 = require("@oprt/icons");
|
|
6850
6880
|
var RadixToast = __toESM(require("@radix-ui/react-toast"), 1);
|
|
6851
6881
|
var import_class_variance_authority19 = require("class-variance-authority");
|
|
6852
|
-
var
|
|
6882
|
+
var import_react49 = require("react");
|
|
6853
6883
|
var import_clsx32 = __toESM(require("clsx"), 1);
|
|
6854
6884
|
|
|
6855
6885
|
// src/Toast/Toast.manifest.ts
|
|
@@ -6937,9 +6967,9 @@ var ICONS2 = {
|
|
|
6937
6967
|
function severityOf(variant) {
|
|
6938
6968
|
return typeof variant === "string" && Object.prototype.hasOwnProperty.call(ICONS2, variant) ? variant : "info";
|
|
6939
6969
|
}
|
|
6940
|
-
var SwipeDirectionContext = (0,
|
|
6970
|
+
var SwipeDirectionContext = (0, import_react49.createContext)("right");
|
|
6941
6971
|
function useNewestInView(region) {
|
|
6942
|
-
(0,
|
|
6972
|
+
(0, import_react49.useEffect)(() => {
|
|
6943
6973
|
const list = region.current;
|
|
6944
6974
|
if (!list) return;
|
|
6945
6975
|
const atEnd = () => list.scrollHeight - list.clientHeight - list.scrollTop <= 1;
|
|
@@ -6966,11 +6996,11 @@ function useNewestInView(region) {
|
|
|
6966
6996
|
};
|
|
6967
6997
|
}, [region]);
|
|
6968
6998
|
}
|
|
6969
|
-
var ToastProvider = (0,
|
|
6999
|
+
var ToastProvider = (0, import_react49.forwardRef)((props, ref) => {
|
|
6970
7000
|
const { children, label = "Notifications", swipeDirection = "right", duration } = props;
|
|
6971
7001
|
const providerProps = { label, swipeDirection };
|
|
6972
7002
|
if (duration !== void 0) providerProps["duration"] = duration;
|
|
6973
|
-
const region = (0,
|
|
7003
|
+
const region = (0, import_react49.useRef)(null);
|
|
6974
7004
|
const regionRef = useMergedRefs(ref, region);
|
|
6975
7005
|
useNewestInView(region);
|
|
6976
7006
|
if (process.env.NODE_ENV !== "production") {
|
|
@@ -7025,7 +7055,7 @@ var titleStyles = (0, import_class_variance_authority19.cva)("m-0 text-oprt-sm u
|
|
|
7025
7055
|
},
|
|
7026
7056
|
defaultVariants: { variant: "info" }
|
|
7027
7057
|
});
|
|
7028
|
-
var Toast = (0,
|
|
7058
|
+
var Toast = (0, import_react49.forwardRef)((allProps, ref) => {
|
|
7029
7059
|
const {
|
|
7030
7060
|
className,
|
|
7031
7061
|
variant,
|
|
@@ -7043,7 +7073,7 @@ var Toast = (0, import_react48.forwardRef)((allProps, ref) => {
|
|
|
7043
7073
|
} = allProps;
|
|
7044
7074
|
const severity = severityOf(variant);
|
|
7045
7075
|
const SeverityIcon = ICONS2[severity];
|
|
7046
|
-
const swipeDirection = (0,
|
|
7076
|
+
const swipeDirection = (0, import_react49.useContext)(SwipeDirectionContext);
|
|
7047
7077
|
if (process.env.NODE_ENV !== "production") {
|
|
7048
7078
|
devValidate("Toast", ToastManifest.Toast.props, allProps);
|
|
7049
7079
|
}
|
|
@@ -7077,7 +7107,7 @@ var Toast = (0, import_react48.forwardRef)((allProps, ref) => {
|
|
|
7077
7107
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex min-w-0 flex-1 select-text flex-col gap-1u oprt-wrap-anywhere", children: [
|
|
7078
7108
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(RadixToast.Title, { className: titleStyles({ variant: severity }), children: title }),
|
|
7079
7109
|
description && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(RadixToast.Description, { className: "m-0 text-oprt-base normal-case text-oprt-text", children: [
|
|
7080
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", {
|
|
7110
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { "data-radix-toast-announce-exclude": "", "data-radix-toast-announce-alt": ". " }),
|
|
7081
7111
|
description
|
|
7082
7112
|
] })
|
|
7083
7113
|
] }),
|
|
@@ -7098,7 +7128,7 @@ Toast.displayName = "Toast";
|
|
|
7098
7128
|
// src/Toggle/Toggle.tsx
|
|
7099
7129
|
var import_react_aria_components15 = require("react-aria-components");
|
|
7100
7130
|
var import_class_variance_authority20 = require("class-variance-authority");
|
|
7101
|
-
var
|
|
7131
|
+
var import_react50 = require("react");
|
|
7102
7132
|
var import_clsx33 = __toESM(require("clsx"), 1);
|
|
7103
7133
|
|
|
7104
7134
|
// src/Toggle/Toggle.manifest.ts
|
|
@@ -7207,7 +7237,7 @@ var thumbStyles2 = (0, import_class_variance_authority20.cva)(
|
|
|
7207
7237
|
defaultVariants: { size: "md" }
|
|
7208
7238
|
}
|
|
7209
7239
|
);
|
|
7210
|
-
var Toggle = (0,
|
|
7240
|
+
var Toggle = (0, import_react50.forwardRef)((allProps, ref) => {
|
|
7211
7241
|
const {
|
|
7212
7242
|
className,
|
|
7213
7243
|
motion = "auto",
|
|
@@ -7247,7 +7277,7 @@ var Toggle = (0, import_react49.forwardRef)((allProps, ref) => {
|
|
|
7247
7277
|
devValidate("Toggle", ToggleManifest.Toggle.props, { ...allProps });
|
|
7248
7278
|
}
|
|
7249
7279
|
const setInvalidNode = useAriaInvalidRef(ref, isInvalid);
|
|
7250
|
-
const setNode = (0,
|
|
7280
|
+
const setNode = (0, import_react50.useCallback)(
|
|
7251
7281
|
(node) => {
|
|
7252
7282
|
if (node) {
|
|
7253
7283
|
if (isRequired) node.setAttribute("aria-required", "true");
|
|
@@ -7295,7 +7325,7 @@ Toggle.displayName = "Toggle";
|
|
|
7295
7325
|
// src/Toolbar/Toolbar.tsx
|
|
7296
7326
|
var import_react_aria_components16 = require("react-aria-components");
|
|
7297
7327
|
var import_class_variance_authority21 = require("class-variance-authority");
|
|
7298
|
-
var
|
|
7328
|
+
var import_react51 = require("react");
|
|
7299
7329
|
var import_clsx34 = __toESM(require("clsx"), 1);
|
|
7300
7330
|
|
|
7301
7331
|
// src/Toolbar/Toolbar.manifest.ts
|
|
@@ -7376,8 +7406,8 @@ var toolbarStyles = (0, import_class_variance_authority21.cva)("flex bg-oprt-sur
|
|
|
7376
7406
|
},
|
|
7377
7407
|
defaultVariants: { orientation: "horizontal" }
|
|
7378
7408
|
});
|
|
7379
|
-
var ToolbarOrientationContext = (0,
|
|
7380
|
-
var Toolbar = (0,
|
|
7409
|
+
var ToolbarOrientationContext = (0, import_react51.createContext)(void 0);
|
|
7410
|
+
var Toolbar = (0, import_react51.forwardRef)((allProps, ref) => {
|
|
7381
7411
|
const {
|
|
7382
7412
|
className,
|
|
7383
7413
|
orientation = "horizontal",
|
|
@@ -7418,10 +7448,10 @@ var separatorStyles = (0, import_class_variance_authority21.cva)("bg-oprt-border
|
|
|
7418
7448
|
},
|
|
7419
7449
|
defaultVariants: { orientation: "horizontal" }
|
|
7420
7450
|
});
|
|
7421
|
-
var ToolbarSeparator = (0,
|
|
7451
|
+
var ToolbarSeparator = (0, import_react51.forwardRef)(
|
|
7422
7452
|
(allProps, ref) => {
|
|
7423
7453
|
const { className, orientation: given, ...props } = allProps;
|
|
7424
|
-
const inherited = (0,
|
|
7454
|
+
const inherited = (0, import_react51.useContext)(ToolbarOrientationContext);
|
|
7425
7455
|
const orientation = given ?? inherited ?? "horizontal";
|
|
7426
7456
|
if (process.env.NODE_ENV !== "production") {
|
|
7427
7457
|
devValidate("ToolbarSeparator", ToolbarManifest.ToolbarSeparator.props, { ...allProps });
|
|
@@ -7442,13 +7472,13 @@ ToolbarSeparator.displayName = "ToolbarSeparator";
|
|
|
7442
7472
|
|
|
7443
7473
|
// src/Tooltip/Tooltip.tsx
|
|
7444
7474
|
var import_react_aria_components17 = require("react-aria-components");
|
|
7445
|
-
var
|
|
7475
|
+
var import_react52 = require("react");
|
|
7446
7476
|
var import_clsx35 = __toESM(require("clsx"), 1);
|
|
7447
7477
|
|
|
7448
7478
|
// src/Tooltip/Tooltip.manifest.ts
|
|
7449
7479
|
var TooltipManifest = {
|
|
7450
7480
|
Tooltip: {
|
|
7451
|
-
description: "Supplementary text on hover or keyboard focus of a trigger, wrapping at about 20rem. A disabled Button trigger stays focusable and announced unavailable, so focus or a tap shows the explanation. Built on React Aria Components (TooltipTrigger + Tooltip), portal'd, with a bordered surface.",
|
|
7481
|
+
description: "Supplementary text on hover or keyboard focus of a trigger, wrapping at about 20rem. The pointer can move onto the tooltip without closing it; it closes 150 ms after the pointer has left both. A disabled Button trigger stays focusable and announced unavailable, so focus or a tap shows the explanation. Built on React Aria Components (TooltipTrigger + Tooltip), portal'd, with a bordered surface.",
|
|
7452
7482
|
props: {
|
|
7453
7483
|
side: { type: "enum", values: ["top", "right", "bottom", "left"], default: "top" },
|
|
7454
7484
|
align: { type: "enum", values: ["start", "center", "end"], default: "center" },
|
|
@@ -7473,7 +7503,8 @@ var TooltipManifest = {
|
|
|
7473
7503
|
// src/Tooltip/Tooltip.tsx
|
|
7474
7504
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
7475
7505
|
var PLAIN_TRIGGER = "inline-flex min-h-3u items-center border-0 bg-transparent p-0 [color:inherit] [font:inherit] [letter-spacing:inherit] underline decoration-dotted underline-offset-2 cursor-help outline-hidden focus-visible:shadow-oprt-focus";
|
|
7476
|
-
var
|
|
7506
|
+
var CLOSE_DELAY = 150;
|
|
7507
|
+
var Tooltip = (0, import_react52.forwardRef)(
|
|
7477
7508
|
({
|
|
7478
7509
|
content,
|
|
7479
7510
|
children,
|
|
@@ -7486,11 +7517,11 @@ var Tooltip = (0, import_react51.forwardRef)(
|
|
|
7486
7517
|
className,
|
|
7487
7518
|
...contentProps
|
|
7488
7519
|
}, ref) => {
|
|
7489
|
-
const [localOpen, setLocalOpen] = (0,
|
|
7520
|
+
const [localOpen, setLocalOpen] = (0, import_react52.useState)(defaultOpen ?? false);
|
|
7490
7521
|
const isOpen = open ?? localOpen;
|
|
7491
|
-
const tapped = (0,
|
|
7492
|
-
const [tapOpen, setTapOpen] = (0,
|
|
7493
|
-
const setOpen = (0,
|
|
7522
|
+
const tapped = (0, import_react52.useRef)(null);
|
|
7523
|
+
const [tapOpen, setTapOpen] = (0, import_react52.useState)(false);
|
|
7524
|
+
const setOpen = (0, import_react52.useCallback)(
|
|
7494
7525
|
(next) => {
|
|
7495
7526
|
if (!next) setTapOpen(false);
|
|
7496
7527
|
if (open === void 0) setLocalOpen(next);
|
|
@@ -7498,7 +7529,7 @@ var Tooltip = (0, import_react51.forwardRef)(
|
|
|
7498
7529
|
},
|
|
7499
7530
|
[open, onOpenChange]
|
|
7500
7531
|
);
|
|
7501
|
-
(0,
|
|
7532
|
+
(0, import_react52.useEffect)(() => {
|
|
7502
7533
|
if (!tapOpen || !isOpen) return;
|
|
7503
7534
|
const dismiss = (event) => {
|
|
7504
7535
|
if (!tapped.current?.contains(event.target)) setOpen(false);
|
|
@@ -7512,7 +7543,7 @@ var Tooltip = (0, import_react51.forwardRef)(
|
|
|
7512
7543
|
if (children === null || children === void 0 || typeof children === "boolean") return null;
|
|
7513
7544
|
const element = isSingleElement(children) ? children : null;
|
|
7514
7545
|
const unavailable = element !== null && (element.props.disabled === true || element.props.isDisabled === true);
|
|
7515
|
-
const trigger = !element ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("button", { type: "button", className: PLAIN_TRIGGER, children }) : unavailable ? (0,
|
|
7546
|
+
const trigger = !element ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("button", { type: "button", className: PLAIN_TRIGGER, children }) : unavailable ? (0, import_react52.cloneElement)(element, {
|
|
7516
7547
|
onPointerUp: (event) => {
|
|
7517
7548
|
element.props.onPointerUp?.(event);
|
|
7518
7549
|
if (event.pointerType === "mouse") return;
|
|
@@ -7528,7 +7559,7 @@ var Tooltip = (0, import_react51.forwardRef)(
|
|
|
7528
7559
|
isOpen,
|
|
7529
7560
|
onOpenChange: setOpen,
|
|
7530
7561
|
delay: delayDuration,
|
|
7531
|
-
closeDelay:
|
|
7562
|
+
closeDelay: CLOSE_DELAY,
|
|
7532
7563
|
shouldCloseOnPress: !unavailable,
|
|
7533
7564
|
children: [
|
|
7534
7565
|
unavailable ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(FocusableWhenUnavailableProvider, { value: true, children: focusable }) : focusable,
|
|
@@ -7569,7 +7600,7 @@ var Tooltip = (0, import_react51.forwardRef)(
|
|
|
7569
7600
|
Tooltip.displayName = "Tooltip";
|
|
7570
7601
|
|
|
7571
7602
|
// src/Chart/Chart.tsx
|
|
7572
|
-
var
|
|
7603
|
+
var import_react54 = require("react");
|
|
7573
7604
|
var import_react_aria5 = require("react-aria");
|
|
7574
7605
|
var import_class_variance_authority22 = require("class-variance-authority");
|
|
7575
7606
|
var import_clsx37 = __toESM(require("clsx"), 1);
|
|
@@ -7683,7 +7714,7 @@ var ChartManifest = {
|
|
|
7683
7714
|
};
|
|
7684
7715
|
|
|
7685
7716
|
// src/Chart/ChartControls.tsx
|
|
7686
|
-
var
|
|
7717
|
+
var import_react53 = require("react");
|
|
7687
7718
|
var import_react_aria_components18 = require("react-aria-components");
|
|
7688
7719
|
var import_clsx36 = __toESM(require("clsx"), 1);
|
|
7689
7720
|
|
|
@@ -7896,7 +7927,7 @@ function ChartInspection({
|
|
|
7896
7927
|
inputRef
|
|
7897
7928
|
}) {
|
|
7898
7929
|
const hydration = useHydrationRoot();
|
|
7899
|
-
(0,
|
|
7930
|
+
(0, import_react53.useEffect)(() => {
|
|
7900
7931
|
inputRef.current?.setAttribute("aria-valuetext", describe(index));
|
|
7901
7932
|
});
|
|
7902
7933
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
@@ -7914,7 +7945,7 @@ function ChartInspection({
|
|
|
7914
7945
|
hydration.key
|
|
7915
7946
|
);
|
|
7916
7947
|
}
|
|
7917
|
-
var ChartRangeSelector = (0,
|
|
7948
|
+
var ChartRangeSelector = (0, import_react53.memo)(function ChartRangeSelector2({
|
|
7918
7949
|
label,
|
|
7919
7950
|
series,
|
|
7920
7951
|
domain,
|
|
@@ -7925,15 +7956,15 @@ var ChartRangeSelector = (0, import_react52.memo)(function ChartRangeSelector2({
|
|
|
7925
7956
|
onChange
|
|
7926
7957
|
}) {
|
|
7927
7958
|
const hydration = useHydrationRoot();
|
|
7928
|
-
const startRef = (0,
|
|
7929
|
-
const endRef = (0,
|
|
7930
|
-
(0,
|
|
7959
|
+
const startRef = (0, import_react53.useRef)(null);
|
|
7960
|
+
const endRef = (0, import_react53.useRef)(null);
|
|
7961
|
+
(0, import_react53.useEffect)(() => {
|
|
7931
7962
|
startRef.current?.setAttribute("aria-valuetext", format(range.start));
|
|
7932
7963
|
endRef.current?.setAttribute("aria-valuetext", format(range.end));
|
|
7933
7964
|
});
|
|
7934
7965
|
const start = fraction(range.start, domain) * 1e3;
|
|
7935
7966
|
const end = fraction(range.end, domain) * 1e3;
|
|
7936
|
-
const overview = (0,
|
|
7967
|
+
const overview = (0, import_react53.useMemo)(() => {
|
|
7937
7968
|
const overviewSeries = series.map((item) => ({
|
|
7938
7969
|
...item,
|
|
7939
7970
|
data: item.data.filter(
|
|
@@ -8178,7 +8209,7 @@ function binLabel(data, index, formatNumber, separator) {
|
|
|
8178
8209
|
const end = formatNumber(withoutFloatNoise(data.edges[index + 1]));
|
|
8179
8210
|
return start === end ? start : `[${start}${separator}${end}${index === data.edges.length - 2 ? "]" : ")"}`;
|
|
8180
8211
|
}
|
|
8181
|
-
var DataView = (0,
|
|
8212
|
+
var DataView = (0, import_react54.memo)(function DataView2({
|
|
8182
8213
|
id,
|
|
8183
8214
|
label,
|
|
8184
8215
|
series,
|
|
@@ -8403,7 +8434,7 @@ function seriesMarks(item, seriesIndex, samples, context) {
|
|
|
8403
8434
|
) }, index))
|
|
8404
8435
|
] });
|
|
8405
8436
|
}
|
|
8406
|
-
var Chart = (0,
|
|
8437
|
+
var Chart = (0, import_react54.forwardRef)((allProps, ref) => {
|
|
8407
8438
|
const {
|
|
8408
8439
|
label,
|
|
8409
8440
|
series,
|
|
@@ -8432,43 +8463,43 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8432
8463
|
if (process.env.NODE_ENV !== "production") {
|
|
8433
8464
|
devValidate("Chart", ChartManifest.Chart.props, { ...allProps });
|
|
8434
8465
|
}
|
|
8435
|
-
const labelRef = (0,
|
|
8466
|
+
const labelRef = (0, import_react54.useRef)(null);
|
|
8436
8467
|
const { locale } = (0, import_react_aria5.useLocale)();
|
|
8437
8468
|
const numberFormat = (0, import_react_aria5.useNumberFormatter)(EXACT_NUMBER);
|
|
8438
|
-
const separator = (0,
|
|
8439
|
-
const formatNumber = (0,
|
|
8469
|
+
const separator = (0, import_react54.useMemo)(() => intervalSeparator(locale), [locale]);
|
|
8470
|
+
const formatNumber = (0, import_react54.useCallback)(
|
|
8440
8471
|
(value) => numberFormat.format(value + 0),
|
|
8441
8472
|
[numberFormat]
|
|
8442
8473
|
);
|
|
8443
8474
|
const cellFormat = (0, import_react_aria5.useNumberFormatter)(CELL_NUMBER);
|
|
8444
|
-
const formatCell = (0,
|
|
8475
|
+
const formatCell = (0, import_react54.useCallback)((value) => cellFormat.format(value + 0), [cellFormat]);
|
|
8445
8476
|
const ids = usePartIds(["label", "description", "hatch", "data"], {
|
|
8446
8477
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
8447
8478
|
});
|
|
8448
|
-
const plotRef = (0,
|
|
8479
|
+
const plotRef = (0, import_react54.useRef)(null);
|
|
8449
8480
|
const plotWidth = useElementWidth(plotRef, { initial: 640, min: 0 });
|
|
8450
|
-
const [localHidden, setLocalHidden] = (0,
|
|
8451
|
-
const [showData, setShowData] = (0,
|
|
8452
|
-
const [localRange, setLocalRange] = (0,
|
|
8453
|
-
const [inspection, setInspection] = (0,
|
|
8454
|
-
const [pinned, setPinned] = (0,
|
|
8455
|
-
const [inspectionFocused, setInspectionFocused] = (0,
|
|
8456
|
-
const [emphasized, setEmphasized] = (0,
|
|
8457
|
-
const inspectionRef = (0,
|
|
8481
|
+
const [localHidden, setLocalHidden] = (0, import_react54.useState)([]);
|
|
8482
|
+
const [showData, setShowData] = (0, import_react54.useState)(false);
|
|
8483
|
+
const [localRange, setLocalRange] = (0, import_react54.useState)();
|
|
8484
|
+
const [inspection, setInspection] = (0, import_react54.useState)(null);
|
|
8485
|
+
const [pinned, setPinned] = (0, import_react54.useState)(false);
|
|
8486
|
+
const [inspectionFocused, setInspectionFocused] = (0, import_react54.useState)(false);
|
|
8487
|
+
const [emphasized, setEmphasized] = (0, import_react54.useState)(null);
|
|
8488
|
+
const inspectionRef = (0, import_react54.useRef)(null);
|
|
8458
8489
|
const hiddenKey = JSON.stringify(hiddenSeries ?? localHidden);
|
|
8459
|
-
const hidden = (0,
|
|
8490
|
+
const hidden = (0, import_react54.useMemo)(() => new Set(JSON.parse(hiddenKey)), [hiddenKey]);
|
|
8460
8491
|
const inspectable = variant === "line" || variant === "area" || variant === "bar";
|
|
8461
|
-
const fullVisible = (0,
|
|
8492
|
+
const fullVisible = (0, import_react54.useMemo)(
|
|
8462
8493
|
() => series.filter((item) => !hidden.has(item.id)),
|
|
8463
8494
|
[series, hidden]
|
|
8464
8495
|
);
|
|
8465
|
-
const dataDomain = (0,
|
|
8496
|
+
const dataDomain = (0, import_react54.useMemo)(
|
|
8466
8497
|
() => extent(series.flatMap((item) => item.data.map((point) => point.x))),
|
|
8467
8498
|
[series]
|
|
8468
8499
|
);
|
|
8469
8500
|
const suppliedStart = suppliedXDomain?.start;
|
|
8470
8501
|
const suppliedEnd = suppliedXDomain?.end;
|
|
8471
|
-
const fullDomain = (0,
|
|
8502
|
+
const fullDomain = (0, import_react54.useMemo)(
|
|
8472
8503
|
() => inspectable && suppliedStart !== void 0 && suppliedEnd !== void 0 && Number.isFinite(suppliedStart) && Number.isFinite(suppliedEnd) && suppliedStart < suppliedEnd ? { min: suppliedStart, max: suppliedEnd } : dataDomain,
|
|
8473
8504
|
[inspectable, suppliedStart, suppliedEnd, dataDomain]
|
|
8474
8505
|
);
|
|
@@ -8476,7 +8507,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8476
8507
|
const requestedStart = requested?.start;
|
|
8477
8508
|
const requestedEnd = requested?.end;
|
|
8478
8509
|
const controlledRange = range !== void 0;
|
|
8479
|
-
const view = (0,
|
|
8510
|
+
const view = (0, import_react54.useMemo)(() => {
|
|
8480
8511
|
const full = { start: fullDomain.min, end: fullDomain.max, valid: false };
|
|
8481
8512
|
if (!inspectable || requestedStart === void 0 || requestedEnd === void 0) return full;
|
|
8482
8513
|
if (!Number.isFinite(requestedStart) || !Number.isFinite(requestedEnd) || requestedStart >= requestedEnd)
|
|
@@ -8491,7 +8522,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8491
8522
|
return controlledRange ? { start: requestedStart, end: requestedEnd, valid: true } : { ...full, valid: true };
|
|
8492
8523
|
}, [inspectable, requestedStart, requestedEnd, controlledRange, fullDomain]);
|
|
8493
8524
|
const narrowed = inspectable && (view.start > dataDomain.min || view.end < dataDomain.max);
|
|
8494
|
-
const visible = (0,
|
|
8525
|
+
const visible = (0, import_react54.useMemo)(
|
|
8495
8526
|
() => narrowed ? fullVisible.map((item) => ({
|
|
8496
8527
|
...item,
|
|
8497
8528
|
data: item.data.filter(
|
|
@@ -8500,20 +8531,20 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8500
8531
|
})) : fullVisible,
|
|
8501
8532
|
[narrowed, fullVisible, view.start, view.end]
|
|
8502
8533
|
);
|
|
8503
|
-
const samplesAt = (0,
|
|
8534
|
+
const samplesAt = (0, import_react54.useMemo)(
|
|
8504
8535
|
() => new Map(visible.map((item) => [item, indexByX(item.data)])),
|
|
8505
8536
|
[visible]
|
|
8506
8537
|
);
|
|
8507
|
-
const finite2 = (0,
|
|
8538
|
+
const finite2 = (0, import_react54.useMemo)(
|
|
8508
8539
|
() => visible.flatMap((item) => item.data.filter(isFinitePoint)),
|
|
8509
8540
|
[visible]
|
|
8510
8541
|
);
|
|
8511
|
-
const distribution = (0,
|
|
8542
|
+
const distribution = (0, import_react54.useMemo)(
|
|
8512
8543
|
() => variant === "histogram" ? histogram(visible, bins) : void 0,
|
|
8513
8544
|
[variant, visible, bins]
|
|
8514
8545
|
);
|
|
8515
8546
|
const thresholdValue = variant !== "heatmap" && threshold && Number.isFinite(threshold.value) ? threshold.value : void 0;
|
|
8516
|
-
const yAxis = (0,
|
|
8547
|
+
const yAxis = (0, import_react54.useMemo)(() => {
|
|
8517
8548
|
const values = distribution ? [...distribution.counts.values()].flat() : finite2.map((point) => point.y);
|
|
8518
8549
|
if (thresholdValue !== void 0) values.push(thresholdValue);
|
|
8519
8550
|
return niceAxis(
|
|
@@ -8521,7 +8552,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8521
8552
|
variant === "histogram"
|
|
8522
8553
|
);
|
|
8523
8554
|
}, [distribution, finite2, thresholdValue, variant]);
|
|
8524
|
-
const xValues = (0,
|
|
8555
|
+
const xValues = (0, import_react54.useMemo)(
|
|
8525
8556
|
() => [
|
|
8526
8557
|
...new Set(
|
|
8527
8558
|
visible.flatMap((item) => item.data.map((point) => point.x)).filter(Number.isFinite)
|
|
@@ -8530,19 +8561,19 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8530
8561
|
[visible]
|
|
8531
8562
|
);
|
|
8532
8563
|
const windowedAxis = inspectable && (rangeSelection || view.valid || suppliedXDomain !== void 0);
|
|
8533
|
-
const xDomain = (0,
|
|
8564
|
+
const xDomain = (0, import_react54.useMemo)(
|
|
8534
8565
|
() => windowedAxis ? { min: view.start, max: view.end } : distribution?.domain ?? (xValues.length > 0 ? { min: xValues[0], max: xValues[xValues.length - 1] } : extent([])),
|
|
8535
8566
|
[windowedAxis, view.start, view.end, distribution, xValues]
|
|
8536
8567
|
);
|
|
8537
|
-
const heatDomain = (0,
|
|
8568
|
+
const heatDomain = (0, import_react54.useMemo)(
|
|
8538
8569
|
() => variant === "heatmap" ? extent(finite2.map((point) => point.y)) : dataDomain,
|
|
8539
8570
|
[variant, finite2, dataDomain]
|
|
8540
8571
|
);
|
|
8541
|
-
const anyFiniteX = (0,
|
|
8572
|
+
const anyFiniteX = (0, import_react54.useMemo)(
|
|
8542
8573
|
() => series.some((item) => item.data.some((point) => Number.isFinite(point.x))),
|
|
8543
8574
|
[series]
|
|
8544
8575
|
);
|
|
8545
|
-
const missing = (0,
|
|
8576
|
+
const missing = (0, import_react54.useMemo)(
|
|
8546
8577
|
() => visible.reduce(
|
|
8547
8578
|
(total, item) => total + item.data.filter((point) => !isFinitePoint(point)).length,
|
|
8548
8579
|
0
|
|
@@ -8550,22 +8581,22 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8550
8581
|
[visible]
|
|
8551
8582
|
);
|
|
8552
8583
|
const histogramView = distribution !== void 0;
|
|
8553
|
-
const xHeading = (0,
|
|
8584
|
+
const xHeading = (0, import_react54.useMemo)(
|
|
8554
8585
|
() => histogramView ? withUnit(xLabel ?? "Value", unit) : withUnit(xLabel ?? "Sample", xUnit),
|
|
8555
8586
|
[histogramView, xLabel, xUnit, unit]
|
|
8556
8587
|
);
|
|
8557
|
-
const yHeading = (0,
|
|
8588
|
+
const yHeading = (0, import_react54.useMemo)(
|
|
8558
8589
|
() => histogramView ? yLabel ?? "Count" : withUnit(yLabel ?? "Value", unit),
|
|
8559
8590
|
[histogramView, yLabel, unit]
|
|
8560
8591
|
);
|
|
8561
8592
|
const empty = series.length === 0 ? "No data to display." : visible.length === 0 ? "All series are hidden." : narrowed && xValues.length === 0 ? "No samples in this range." : finite2.length === 0 ? "No finite data to display." : void 0;
|
|
8562
|
-
const yLabels = (0,
|
|
8593
|
+
const yLabels = (0, import_react54.useMemo)(
|
|
8563
8594
|
() => variant === "heatmap" ? [] : tickLabels(yAxis.ticks, locale),
|
|
8564
8595
|
[variant, yAxis, locale]
|
|
8565
8596
|
);
|
|
8566
8597
|
const longestYLabel = Math.max(9, ...yLabels.map((label2) => label2.length));
|
|
8567
8598
|
const left = Math.max(LEFT, Math.ceil(8 + longestYLabel * Y_LABEL_CHARACTER_WIDTH));
|
|
8568
|
-
const geometry = (0,
|
|
8599
|
+
const geometry = (0, import_react54.useMemo)(() => {
|
|
8569
8600
|
const right = Math.max(left + 1, plotWidth - 24);
|
|
8570
8601
|
const width = right - left;
|
|
8571
8602
|
const initialX = scale(xDomain, left, right);
|
|
@@ -8585,7 +8616,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8585
8616
|
baseline: y2(0)
|
|
8586
8617
|
};
|
|
8587
8618
|
}, [left, plotWidth, xDomain, xValues, variant, yAxis]);
|
|
8588
|
-
const xTickLabels = (0,
|
|
8619
|
+
const xTickLabels = (0, import_react54.useMemo)(() => {
|
|
8589
8620
|
const { left: left2, width, x: x2 } = geometry;
|
|
8590
8621
|
const textFor = (value, interpolated) => formatX && !histogramView ? formatX(value) : formatNumber(interpolated ? withoutFloatNoise(value) : value);
|
|
8591
8622
|
const columnText = variant === "heatmap" && xValues.length <= 6 ? xValues.map((value) => textFor(value, false)) : [];
|
|
@@ -8623,7 +8654,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8623
8654
|
});
|
|
8624
8655
|
}, [geometry, histogramView, formatX, formatNumber, xValues, variant, xDomain, plotWidth]);
|
|
8625
8656
|
const hatchId = ids.hatch;
|
|
8626
|
-
const marksLayer = (0,
|
|
8657
|
+
const marksLayer = (0, import_react54.useMemo)(() => {
|
|
8627
8658
|
const context = {
|
|
8628
8659
|
variant,
|
|
8629
8660
|
fill,
|
|
@@ -8656,11 +8687,11 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8656
8687
|
separator,
|
|
8657
8688
|
samplesAt
|
|
8658
8689
|
]);
|
|
8659
|
-
const seriesNumber = (0,
|
|
8690
|
+
const seriesNumber = (0, import_react54.useMemo)(
|
|
8660
8691
|
() => new Map(series.map((item, index) => [item.id, index + 1])),
|
|
8661
8692
|
[series]
|
|
8662
8693
|
);
|
|
8663
|
-
const yAxisLayer = (0,
|
|
8694
|
+
const yAxisLayer = (0, import_react54.useMemo)(() => {
|
|
8664
8695
|
if (variant === "heatmap") {
|
|
8665
8696
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("g", { "aria-hidden": "true", children: visible.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
8666
8697
|
"text",
|
|
@@ -8719,7 +8750,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8719
8750
|
)
|
|
8720
8751
|
] }, index)) });
|
|
8721
8752
|
}, [variant, visible, yAxis, yLabels, geometry, seriesNumber, formatNumber]);
|
|
8722
|
-
const xAxisLayer = (0,
|
|
8753
|
+
const xAxisLayer = (0, import_react54.useMemo)(
|
|
8723
8754
|
() => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("g", { "data-chart-x-axis": "", "aria-hidden": "true", children: xTickLabels.map((tick, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
8724
8755
|
"text",
|
|
8725
8756
|
{
|
|
@@ -8736,14 +8767,14 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8736
8767
|
)) }),
|
|
8737
8768
|
[xTickLabels]
|
|
8738
8769
|
);
|
|
8739
|
-
const xIndex = (0,
|
|
8770
|
+
const xIndex = (0, import_react54.useMemo)(
|
|
8740
8771
|
() => new Map(xValues.map((value, index) => [value, index])),
|
|
8741
8772
|
[xValues]
|
|
8742
8773
|
);
|
|
8743
8774
|
const activeIndex = inspection === null ? void 0 : xIndex.get(inspection);
|
|
8744
8775
|
const activeX = activeIndex === void 0 ? null : inspection;
|
|
8745
8776
|
const reviewCursor = inspectable && cursor != null && Number.isFinite(cursor) && cursor >= xDomain.min && cursor <= xDomain.max ? cursor : null;
|
|
8746
|
-
(0,
|
|
8777
|
+
(0, import_react54.useEffect)(() => {
|
|
8747
8778
|
if (activeX === null || !inspectable) {
|
|
8748
8779
|
setInspection(null);
|
|
8749
8780
|
setPinned(false);
|
|
@@ -8751,7 +8782,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8751
8782
|
if (!inspectable || xValues.length === 0) setInspectionFocused(false);
|
|
8752
8783
|
}, [activeX, inspectable, xValues.length]);
|
|
8753
8784
|
const inspectIndex = activeIndex ?? Math.max(0, xValues.length - 1);
|
|
8754
|
-
const formatPosition = (0,
|
|
8785
|
+
const formatPosition = (0, import_react54.useCallback)(
|
|
8755
8786
|
(value) => valueWithUnit(formatX?.(value) ?? formatNumber(value), xUnit),
|
|
8756
8787
|
[formatX, formatNumber, xUnit]
|
|
8757
8788
|
);
|
|
@@ -8782,7 +8813,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8782
8813
|
if (px < geometry.left || px > geometry.right) return;
|
|
8783
8814
|
setInspection(xValues[nearestIndex(xValues, px, geometry.x)] ?? null);
|
|
8784
8815
|
}
|
|
8785
|
-
const changeRange = (0,
|
|
8816
|
+
const changeRange = (0, import_react54.useCallback)(
|
|
8786
8817
|
(next) => {
|
|
8787
8818
|
if (disabled) return;
|
|
8788
8819
|
if (!controlledRange) setLocalRange(next);
|
|
@@ -8803,7 +8834,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8803
8834
|
const firstX = xValues[0];
|
|
8804
8835
|
const lastX = xValues[xValues.length - 1];
|
|
8805
8836
|
const windowEnds = empty ? null : variant === "heatmap" ? firstX === void 0 || lastX === void 0 ? null : [firstX, lastX] : [xDomain.min, xDomain.max];
|
|
8806
|
-
const renderPosition = (0,
|
|
8837
|
+
const renderPosition = (0, import_react54.useCallback)(
|
|
8807
8838
|
(value) => histogramView ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NumberText, { value: formatNumber(value), unit }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(NumberText, { value: formatX?.(value) ?? formatNumber(value), unit: xUnit }),
|
|
8808
8839
|
[histogramView, unit, formatX, formatNumber, xUnit]
|
|
8809
8840
|
);
|
|
@@ -8887,7 +8918,15 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
8887
8918
|
onBlur: () => setInspectionFocused(false)
|
|
8888
8919
|
}
|
|
8889
8920
|
),
|
|
8890
|
-
|
|
8921
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
8922
|
+
"p",
|
|
8923
|
+
{
|
|
8924
|
+
role: "status",
|
|
8925
|
+
className: empty ? "m-0 py-6u text-oprt-base text-oprt-text-dim" : "sr-only",
|
|
8926
|
+
children: empty
|
|
8927
|
+
}
|
|
8928
|
+
),
|
|
8929
|
+
empty ? null : /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
8891
8930
|
"svg",
|
|
8892
8931
|
{
|
|
8893
8932
|
role: "img",
|
|
@@ -9105,7 +9144,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
9105
9144
|
variant: "ghost",
|
|
9106
9145
|
size: "sm",
|
|
9107
9146
|
className: "min-w-0 max-w-full oprt-wrap-anywhere",
|
|
9108
|
-
"aria-label": variant === "heatmap" ? `${seriesNumber.get(item.id)} ${item.label}` : item.label
|
|
9147
|
+
"aria-label": `${variant === "heatmap" ? `${seriesNumber.get(item.id)} ${item.label}` : item.label}${hidden.has(item.id) ? " Hidden" : ""}`,
|
|
9109
9148
|
"aria-pressed": !hidden.has(item.id),
|
|
9110
9149
|
disabled,
|
|
9111
9150
|
onClick: () => {
|
|
@@ -9210,7 +9249,7 @@ var Chart = (0, import_react53.forwardRef)((allProps, ref) => {
|
|
|
9210
9249
|
Chart.displayName = "Chart";
|
|
9211
9250
|
|
|
9212
9251
|
// src/Sparkline/Sparkline.tsx
|
|
9213
|
-
var
|
|
9252
|
+
var import_react55 = require("react");
|
|
9214
9253
|
var import_class_variance_authority23 = require("class-variance-authority");
|
|
9215
9254
|
var import_clsx38 = __toESM(require("clsx"), 1);
|
|
9216
9255
|
|
|
@@ -9255,12 +9294,12 @@ var sparklineStyles = (0, import_class_variance_authority23.cva)("inline-block w
|
|
|
9255
9294
|
variants: { variant: { line: "", area: "" } },
|
|
9256
9295
|
defaultVariants: { variant: "line" }
|
|
9257
9296
|
});
|
|
9258
|
-
var Sparkline = (0,
|
|
9297
|
+
var Sparkline = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
9259
9298
|
const { label, data, unit, seriesId, color, variant = "line", className, ...props } = allProps;
|
|
9260
9299
|
if (process.env.NODE_ENV !== "production") {
|
|
9261
9300
|
devValidate("Sparkline", SparklineManifest.Sparkline.props, { ...allProps });
|
|
9262
9301
|
}
|
|
9263
|
-
const id = (0,
|
|
9302
|
+
const id = (0, import_react55.useId)();
|
|
9264
9303
|
const points = data.map((y2, x2) => ({ x: x2, y: y2 }));
|
|
9265
9304
|
const finite2 = points.filter(isFinitePoint);
|
|
9266
9305
|
const x = scale(extent(points.map((point) => point.x)), 4, 124);
|
|
@@ -9368,7 +9407,7 @@ var Sparkline = (0, import_react54.forwardRef)((allProps, ref) => {
|
|
|
9368
9407
|
Sparkline.displayName = "Sparkline";
|
|
9369
9408
|
|
|
9370
9409
|
// src/DataGrid/DataGrid.tsx
|
|
9371
|
-
var
|
|
9410
|
+
var import_react56 = require("react");
|
|
9372
9411
|
var import_clsx39 = __toESM(require("clsx"), 1);
|
|
9373
9412
|
|
|
9374
9413
|
// src/DataGrid/DataGrid.manifest.ts
|
|
@@ -9552,8 +9591,8 @@ function ColumnWidthInput({
|
|
|
9552
9591
|
label,
|
|
9553
9592
|
onCommit
|
|
9554
9593
|
}) {
|
|
9555
|
-
const [draft, setDraft] = (0,
|
|
9556
|
-
(0,
|
|
9594
|
+
const [draft, setDraft] = (0, import_react56.useState)(null);
|
|
9595
|
+
(0, import_react56.useEffect)(() => setDraft(null), [value]);
|
|
9557
9596
|
const text = draft?.base === value ? draft.text : String(value);
|
|
9558
9597
|
const commit = (requested) => {
|
|
9559
9598
|
setDraft(null);
|
|
@@ -9594,7 +9633,7 @@ function withoutPage(selection, pageIds) {
|
|
|
9594
9633
|
const onPage = new Set(pageIds);
|
|
9595
9634
|
return selection.filter((id) => !onPage.has(id));
|
|
9596
9635
|
}
|
|
9597
|
-
var DataGrid = (0,
|
|
9636
|
+
var DataGrid = (0, import_react56.forwardRef)((allProps, ref) => {
|
|
9598
9637
|
const {
|
|
9599
9638
|
columns,
|
|
9600
9639
|
data,
|
|
@@ -9629,18 +9668,18 @@ var DataGrid = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
|
9629
9668
|
if (process.env.NODE_ENV !== "production") {
|
|
9630
9669
|
devValidate("DataGrid", DataGridManifest.DataGrid.props, allProps);
|
|
9631
9670
|
}
|
|
9632
|
-
const [localSelection, setLocalSelection] = (0,
|
|
9633
|
-
const [localSort, setLocalSort] = (0,
|
|
9634
|
-
const [localPage, setLocalPage] = (0,
|
|
9635
|
-
const [hiddenColumns, setHiddenColumns] = (0,
|
|
9636
|
-
const [columnsOpen, setColumnsOpen] = (0,
|
|
9637
|
-
const [localWidths, setLocalWidths] = (0,
|
|
9638
|
-
const [localPinned, setLocalPinned] = (0,
|
|
9639
|
-
const [localView, setLocalView] = (0,
|
|
9640
|
-
const columnsId = (0,
|
|
9671
|
+
const [localSelection, setLocalSelection] = (0, import_react56.useState)([]);
|
|
9672
|
+
const [localSort, setLocalSort] = (0, import_react56.useState)(null);
|
|
9673
|
+
const [localPage, setLocalPage] = (0, import_react56.useState)(1);
|
|
9674
|
+
const [hiddenColumns, setHiddenColumns] = (0, import_react56.useState)([]);
|
|
9675
|
+
const [columnsOpen, setColumnsOpen] = (0, import_react56.useState)(false);
|
|
9676
|
+
const [localWidths, setLocalWidths] = (0, import_react56.useState)({});
|
|
9677
|
+
const [localPinned, setLocalPinned] = (0, import_react56.useState)([]);
|
|
9678
|
+
const [localView, setLocalView] = (0, import_react56.useState)("virtualized");
|
|
9679
|
+
const columnsId = (0, import_react56.useId)();
|
|
9641
9680
|
const blocked = disabled || loading;
|
|
9642
9681
|
const selection = selectedRowIds ?? localSelection;
|
|
9643
|
-
const selectionSet = (0,
|
|
9682
|
+
const selectionSet = (0, import_react56.useMemo)(() => new Set(selection), [selection]);
|
|
9644
9683
|
const selectionEnabled = selectedRowIds !== void 0 || Boolean(onSelectionChange);
|
|
9645
9684
|
const effectiveSort = sort === void 0 ? localSort : sort;
|
|
9646
9685
|
const visibleKeys = visibleColumnKeys ?? columns.filter((column) => !hiddenColumns.includes(column.key)).map((column) => column.key);
|
|
@@ -9680,8 +9719,8 @@ var DataGrid = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
|
9680
9719
|
pageCount,
|
|
9681
9720
|
Math.max(1, Number.isFinite(requestedPage) ? Math.floor(requestedPage) : 1)
|
|
9682
9721
|
);
|
|
9683
|
-
const correction = (0,
|
|
9684
|
-
(0,
|
|
9722
|
+
const correction = (0, import_react56.useRef)(null);
|
|
9723
|
+
(0, import_react56.useEffect)(() => {
|
|
9685
9724
|
if (requestedPage === currentPage) {
|
|
9686
9725
|
correction.current = null;
|
|
9687
9726
|
return;
|
|
@@ -9713,7 +9752,7 @@ var DataGrid = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
|
9713
9752
|
const sortKey = sortColumn?.key;
|
|
9714
9753
|
const sortCompare = sortColumn?.compare;
|
|
9715
9754
|
const direction = effectiveSort?.direction;
|
|
9716
|
-
const sorted = (0,
|
|
9755
|
+
const sorted = (0, import_react56.useMemo)(() => {
|
|
9717
9756
|
if (mode !== "client" || sortKey === void 0 || direction === void 0) return data;
|
|
9718
9757
|
return sortedOrder(
|
|
9719
9758
|
data.map((row) => row[sortKey]),
|
|
@@ -9723,17 +9762,17 @@ var DataGrid = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
|
9723
9762
|
}, [data, mode, sortKey, direction, sortCompare]);
|
|
9724
9763
|
const pageStart = (currentPage - 1) * safePageSize;
|
|
9725
9764
|
const paged = mode === "client" && !virtual;
|
|
9726
|
-
const pageRows = (0,
|
|
9765
|
+
const pageRows = (0, import_react56.useMemo)(
|
|
9727
9766
|
() => paged ? sorted.slice(pageStart, pageStart + safePageSize) : sorted,
|
|
9728
9767
|
[sorted, paged, pageStart, safePageSize]
|
|
9729
9768
|
);
|
|
9730
|
-
const latestGetRowId = (0,
|
|
9769
|
+
const latestGetRowId = (0, import_react56.useRef)(getRowId);
|
|
9731
9770
|
latestGetRowId.current = getRowId;
|
|
9732
|
-
const pageIdsOf = (0,
|
|
9771
|
+
const pageIdsOf = (0, import_react56.useMemo)(() => {
|
|
9733
9772
|
let ids = null;
|
|
9734
9773
|
return () => ids ??= pageRows.map((row) => latestGetRowId.current(row));
|
|
9735
9774
|
}, [pageRows]);
|
|
9736
|
-
const { allSelected, someSelected } = (0,
|
|
9775
|
+
const { allSelected, someSelected } = (0, import_react56.useMemo)(() => {
|
|
9737
9776
|
if (selectionSet.size === 0) return { allSelected: false, someSelected: false };
|
|
9738
9777
|
const pageIds = pageIdsOf();
|
|
9739
9778
|
let selected = 0;
|
|
@@ -9979,7 +10018,7 @@ var DataGrid = (0, import_react55.forwardRef)((allProps, ref) => {
|
|
|
9979
10018
|
DataGrid.displayName = "DataGrid";
|
|
9980
10019
|
|
|
9981
10020
|
// src/ComboBox/ComboBox.tsx
|
|
9982
|
-
var
|
|
10021
|
+
var import_react57 = require("react");
|
|
9983
10022
|
var import_class_variance_authority24 = require("class-variance-authority");
|
|
9984
10023
|
var import_clsx40 = __toESM(require("clsx"), 1);
|
|
9985
10024
|
var import_react_aria_components19 = require("react-aria-components");
|
|
@@ -10105,7 +10144,7 @@ function reportUnknownValue(received, options) {
|
|
|
10105
10144
|
)
|
|
10106
10145
|
);
|
|
10107
10146
|
}
|
|
10108
|
-
var ComboBox = (0,
|
|
10147
|
+
var ComboBox = (0, import_react57.forwardRef)((props, ref) => {
|
|
10109
10148
|
const {
|
|
10110
10149
|
motion = "auto",
|
|
10111
10150
|
options,
|
|
@@ -10130,7 +10169,7 @@ var ComboBox = (0, import_react56.forwardRef)((props, ref) => {
|
|
|
10130
10169
|
className
|
|
10131
10170
|
} = props;
|
|
10132
10171
|
const motionState = useMotion(motion);
|
|
10133
|
-
const editing = (0,
|
|
10172
|
+
const editing = (0, import_react57.useRef)(false);
|
|
10134
10173
|
const {
|
|
10135
10174
|
id: inputId,
|
|
10136
10175
|
labelledBy,
|
|
@@ -10264,7 +10303,7 @@ ComboBox.displayName = "ComboBox";
|
|
|
10264
10303
|
var import_icons16 = require("@oprt/icons");
|
|
10265
10304
|
var import_class_variance_authority25 = require("class-variance-authority");
|
|
10266
10305
|
var import_clsx41 = __toESM(require("clsx"), 1);
|
|
10267
|
-
var
|
|
10306
|
+
var import_react58 = require("react");
|
|
10268
10307
|
|
|
10269
10308
|
// src/SplitPane/SplitPane.manifest.ts
|
|
10270
10309
|
var SplitPaneManifest = {
|
|
@@ -10370,8 +10409,8 @@ var paneStyles = "min-w-0 min-h-0 overflow-auto focus-visible:outline-hidden foc
|
|
|
10370
10409
|
var BUTTON_STEP = 10;
|
|
10371
10410
|
var clamp = (value, min, max) => Math.min(max, Math.max(min, value));
|
|
10372
10411
|
function usePaneScrolls(pane) {
|
|
10373
|
-
const [scrolls, setScrolls] = (0,
|
|
10374
|
-
(0,
|
|
10412
|
+
const [scrolls, setScrolls] = (0, import_react58.useState)(false);
|
|
10413
|
+
(0, import_react58.useEffect)(() => {
|
|
10375
10414
|
const node = pane.current;
|
|
10376
10415
|
if (!node) return;
|
|
10377
10416
|
const measure = () => setScrolls(
|
|
@@ -10407,7 +10446,7 @@ function usePaneScrolls(pane) {
|
|
|
10407
10446
|
}, [pane]);
|
|
10408
10447
|
return scrolls;
|
|
10409
10448
|
}
|
|
10410
|
-
var SplitPane = (0,
|
|
10449
|
+
var SplitPane = (0, import_react58.forwardRef)(
|
|
10411
10450
|
({
|
|
10412
10451
|
primary,
|
|
10413
10452
|
secondary,
|
|
@@ -10433,15 +10472,15 @@ var SplitPane = (0, import_react57.forwardRef)(
|
|
|
10433
10472
|
}
|
|
10434
10473
|
const vertical = orientation === "vertical";
|
|
10435
10474
|
const axis = vertical ? "vertical" : "horizontal";
|
|
10436
|
-
const rootRef = (0,
|
|
10437
|
-
const primaryRef = (0,
|
|
10438
|
-
const secondaryRef = (0,
|
|
10439
|
-
const separatorRef = (0,
|
|
10475
|
+
const rootRef = (0, import_react58.useRef)(null);
|
|
10476
|
+
const primaryRef = (0, import_react58.useRef)(null);
|
|
10477
|
+
const secondaryRef = (0, import_react58.useRef)(null);
|
|
10478
|
+
const separatorRef = (0, import_react58.useRef)(null);
|
|
10440
10479
|
const ownChild = (selector) => () => Array.from(rootRef.current?.children ?? []).find((child) => child.matches(selector))?.id;
|
|
10441
10480
|
const primaryId = useHydratedId(ownChild('[data-pane="primary"]'));
|
|
10442
10481
|
const helpId = useHydratedId(ownChild("[data-oprt-split-help]"));
|
|
10443
|
-
const [internalSize, setInternalSize] = (0,
|
|
10444
|
-
const drag = (0,
|
|
10482
|
+
const [internalSize, setInternalSize] = (0, import_react58.useState)(defaultSize);
|
|
10483
|
+
const drag = (0, import_react58.useRef)(null);
|
|
10445
10484
|
const lower = clamp(Number.isFinite(minSize) ? minSize : 20, 0, 100);
|
|
10446
10485
|
const upper = clamp(Number.isFinite(maxSize) ? maxSize : 80, lower, 100);
|
|
10447
10486
|
const rawSize = size ?? internalSize;
|
|
@@ -10450,7 +10489,7 @@ var SplitPane = (0, import_react57.forwardRef)(
|
|
|
10450
10489
|
const buttonStep = Math.max(BUTTON_STEP, increment);
|
|
10451
10490
|
const threshold = Number.isFinite(stackBelow) ? Math.max(0, stackBelow) : 640;
|
|
10452
10491
|
const setRef2 = useMergedRefs(rootRef, forwardedRef);
|
|
10453
|
-
const isNarrow = (0,
|
|
10492
|
+
const isNarrow = (0, import_react58.useCallback)((width) => width < threshold, [threshold]);
|
|
10454
10493
|
const narrow = useElementWidth(rootRef, {
|
|
10455
10494
|
initial: false,
|
|
10456
10495
|
select: isNarrow
|
|
@@ -10462,7 +10501,7 @@ var SplitPane = (0, import_react57.forwardRef)(
|
|
|
10462
10501
|
track: (element) => element.closest("[data-oprt-split-divider]")?.parentElement === rootRef.current ? true : null,
|
|
10463
10502
|
findTarget: () => separatorRef.current?.isConnected ? separatorRef.current : primaryRef.current
|
|
10464
10503
|
});
|
|
10465
|
-
(0,
|
|
10504
|
+
(0, import_react58.useEffect)(() => {
|
|
10466
10505
|
drag.current = null;
|
|
10467
10506
|
}, [disabled, stacked, orientation]);
|
|
10468
10507
|
const resize = (next) => {
|
|
@@ -10642,7 +10681,7 @@ SplitPane.displayName = "SplitPane";
|
|
|
10642
10681
|
// src/TimeRange/TimeRange.tsx
|
|
10643
10682
|
var import_class_variance_authority26 = require("class-variance-authority");
|
|
10644
10683
|
var import_clsx42 = __toESM(require("clsx"), 1);
|
|
10645
|
-
var
|
|
10684
|
+
var import_react59 = require("react");
|
|
10646
10685
|
|
|
10647
10686
|
// src/_internal/timestamp.ts
|
|
10648
10687
|
var MAX_TIME = 864e13;
|
|
@@ -10712,7 +10751,7 @@ function describeRange(start, end) {
|
|
|
10712
10751
|
const sameDay = from.slice(0, 10) === to.slice(0, 10);
|
|
10713
10752
|
return `${from} to ${sameDay ? to.slice(11) : to}`;
|
|
10714
10753
|
}
|
|
10715
|
-
var TimeRange = (0,
|
|
10754
|
+
var TimeRange = (0, import_react59.forwardRef)(
|
|
10716
10755
|
({
|
|
10717
10756
|
value,
|
|
10718
10757
|
onValueChange,
|
|
@@ -10725,7 +10764,7 @@ var TimeRange = (0, import_react58.forwardRef)(
|
|
|
10725
10764
|
className,
|
|
10726
10765
|
...props
|
|
10727
10766
|
}, ref) => {
|
|
10728
|
-
const root = (0,
|
|
10767
|
+
const root = (0, import_react59.useRef)(null);
|
|
10729
10768
|
const setRoot = useMergedRefs(root, ref);
|
|
10730
10769
|
const ids = usePartIds(
|
|
10731
10770
|
["start-date", "start-time", "end-date", "end-time", "error", "range", "status"],
|
|
@@ -10733,15 +10772,15 @@ var TimeRange = (0, import_react58.forwardRef)(
|
|
|
10733
10772
|
);
|
|
10734
10773
|
const base = `${value.start}|${value.end}`;
|
|
10735
10774
|
const applied = draftOf(value);
|
|
10736
|
-
const [draft, setDraft] = (0,
|
|
10775
|
+
const [draft, setDraft] = (0, import_react59.useState)(() => ({ base, ...applied }));
|
|
10737
10776
|
const current = draft.base === base ? draft : applied;
|
|
10738
10777
|
const parsed = { start: parseEndpoint(current.start), end: parseEndpoint(current.end) };
|
|
10739
10778
|
const error = validate(parsed, min, max);
|
|
10740
10779
|
const pending = !(unchanged(current.start, parsed.start, applied.start, value.start) && unchanged(current.end, parsed.end, applied.end, value.end));
|
|
10741
10780
|
const valid = !error && !pending;
|
|
10742
|
-
const callback = (0,
|
|
10781
|
+
const callback = (0, import_react59.useRef)(onDraftValidityChange);
|
|
10743
10782
|
callback.current = onDraftValidityChange;
|
|
10744
|
-
(0,
|
|
10783
|
+
(0, import_react59.useEffect)(() => callback.current?.(valid, { pending }), [valid, pending]);
|
|
10745
10784
|
const readout = Number.isNaN(parsed.start) || Number.isNaN(parsed.end) ? null : describeRange(parsed.start, parsed.end);
|
|
10746
10785
|
const unapplied = !error && pending;
|
|
10747
10786
|
const edit = (part, field, next) => setDraft({ ...current, base, [part]: { ...current[part], [field]: next } });
|
|
@@ -10887,7 +10926,7 @@ var TimeRangeManifest = {
|
|
|
10887
10926
|
// src/EventTimeline/EventTimeline.tsx
|
|
10888
10927
|
var import_class_variance_authority27 = require("class-variance-authority");
|
|
10889
10928
|
var import_clsx43 = __toESM(require("clsx"), 1);
|
|
10890
|
-
var
|
|
10929
|
+
var import_react60 = require("react");
|
|
10891
10930
|
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
10892
10931
|
var timelineStyles = (0, import_class_variance_authority27.cva)("flex min-w-0 flex-col gap-2u font-sans text-oprt-text");
|
|
10893
10932
|
var markStyles = (0, import_class_variance_authority27.cva)("fill-current", {
|
|
@@ -10907,7 +10946,7 @@ var eventValid = (event) => isValidTimestamp(event.start) && (event.end === void
|
|
|
10907
10946
|
var laneOf = (event) => event.lane || "Events";
|
|
10908
10947
|
var DEFAULT_WIDTH = 1e3;
|
|
10909
10948
|
var MIN_WIDTH = 16;
|
|
10910
|
-
var Marker2 = (0,
|
|
10949
|
+
var Marker2 = (0, import_react60.memo)(function Marker3({ id, severity, x, width, selected }) {
|
|
10911
10950
|
const classes = (0, import_clsx43.default)(
|
|
10912
10951
|
markStyles({ severity: severity ?? "neutral" }),
|
|
10913
10952
|
selected && "stroke-oprt-text"
|
|
@@ -10933,7 +10972,7 @@ var Marker2 = (0, import_react59.memo)(function Marker3({ id, severity, x, width
|
|
|
10933
10972
|
}
|
|
10934
10973
|
);
|
|
10935
10974
|
});
|
|
10936
|
-
var TimelineRow = (0,
|
|
10975
|
+
var TimelineRow = (0, import_react60.memo)(function TimelineRow2({
|
|
10937
10976
|
event,
|
|
10938
10977
|
selected,
|
|
10939
10978
|
selectable,
|
|
@@ -10987,7 +11026,7 @@ var TimelineRow = (0, import_react59.memo)(function TimelineRow2({
|
|
|
10987
11026
|
}
|
|
10988
11027
|
);
|
|
10989
11028
|
});
|
|
10990
|
-
var EventTimeline = (0,
|
|
11029
|
+
var EventTimeline = (0, import_react60.forwardRef)(
|
|
10991
11030
|
({
|
|
10992
11031
|
events,
|
|
10993
11032
|
start,
|
|
@@ -11000,21 +11039,21 @@ var EventTimeline = (0, import_react59.forwardRef)(
|
|
|
11000
11039
|
className,
|
|
11001
11040
|
...props
|
|
11002
11041
|
}, forwardedRef) => {
|
|
11003
|
-
const id = (0,
|
|
11004
|
-
const rootRef = (0,
|
|
11042
|
+
const id = (0, import_react60.useId)();
|
|
11043
|
+
const rootRef = (0, import_react60.useRef)(null);
|
|
11005
11044
|
const setRef2 = useMergedRefs(rootRef, forwardedRef);
|
|
11006
11045
|
const observed = useElementWidth(rootRef, {
|
|
11007
11046
|
initial: null,
|
|
11008
11047
|
min: MIN_WIDTH
|
|
11009
11048
|
});
|
|
11010
|
-
const [firstWidth, setFirstWidth] = (0,
|
|
11049
|
+
const [firstWidth, setFirstWidth] = (0, import_react60.useState)(null);
|
|
11011
11050
|
useIsomorphicLayoutEffect(() => {
|
|
11012
11051
|
const width = rootRef.current?.getBoundingClientRect().width;
|
|
11013
11052
|
if (width !== void 0 && Number.isFinite(width) && width > MIN_WIDTH) setFirstWidth(width);
|
|
11014
11053
|
}, []);
|
|
11015
11054
|
const plotWidth = observed ?? firstWidth ?? DEFAULT_WIDTH;
|
|
11016
11055
|
const validRange = isValidTimestamp(start) && isValidTimestamp(end) && start < end;
|
|
11017
|
-
const { visible, omitted, lanes } = (0,
|
|
11056
|
+
const { visible, omitted, lanes } = (0, import_react60.useMemo)(() => {
|
|
11018
11057
|
const validEvents = events.filter(eventValid);
|
|
11019
11058
|
const inWindow = validRange ? validEvents.filter((event) => event.start <= end && (event.end ?? event.start) >= start).sort((a, b) => a.start - b.start) : [];
|
|
11020
11059
|
const byLane = /* @__PURE__ */ new Map();
|
|
@@ -11026,11 +11065,11 @@ var EventTimeline = (0, import_react59.forwardRef)(
|
|
|
11026
11065
|
}
|
|
11027
11066
|
return { visible: inWindow, omitted: events.length - validEvents.length, lanes: byLane };
|
|
11028
11067
|
}, [events, start, end, validRange]);
|
|
11029
|
-
const selectionRef = (0,
|
|
11068
|
+
const selectionRef = (0, import_react60.useRef)(onSelectionChange);
|
|
11030
11069
|
useIsomorphicLayoutEffect(() => {
|
|
11031
11070
|
selectionRef.current = onSelectionChange;
|
|
11032
11071
|
});
|
|
11033
|
-
const select = (0,
|
|
11072
|
+
const select = (0, import_react60.useCallback)((eventId) => selectionRef.current?.(eventId), []);
|
|
11034
11073
|
const extent2 = plotWidth - 16;
|
|
11035
11074
|
const position = (time) => 8 + Math.max(0, Math.min(extent2, (time - start) / (end - start) * extent2));
|
|
11036
11075
|
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
@@ -11042,7 +11081,15 @@ var EventTimeline = (0, import_react59.forwardRef)(
|
|
|
11042
11081
|
"aria-label": label,
|
|
11043
11082
|
className: (0, import_clsx43.default)(timelineStyles(), className),
|
|
11044
11083
|
children: [
|
|
11045
|
-
|
|
11084
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
11085
|
+
"p",
|
|
11086
|
+
{
|
|
11087
|
+
role: "status",
|
|
11088
|
+
className: !validRange ? "m-0 text-oprt-base text-oprt-text-dim" : "sr-only",
|
|
11089
|
+
children: !validRange ? "Choose a valid time range with start before end." : ""
|
|
11090
|
+
}
|
|
11091
|
+
),
|
|
11092
|
+
!validRange ? null : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
|
|
11046
11093
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex flex-wrap justify-between gap-1u font-mono text-oprt-base text-oprt-text-dim", children: [
|
|
11047
11094
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("time", { dateTime: new Date(start).toISOString(), children: utc(start) }),
|
|
11048
11095
|
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("time", { dateTime: new Date(end).toISOString(), children: utc(end) })
|
|
@@ -11171,7 +11218,7 @@ var EventTimelineManifest = {
|
|
|
11171
11218
|
};
|
|
11172
11219
|
|
|
11173
11220
|
// src/AppShell/AppShell.tsx
|
|
11174
|
-
var
|
|
11221
|
+
var import_react61 = require("react");
|
|
11175
11222
|
var import_class_variance_authority28 = require("class-variance-authority");
|
|
11176
11223
|
var import_clsx44 = __toESM(require("clsx"), 1);
|
|
11177
11224
|
|
|
@@ -11254,7 +11301,7 @@ var connectionVariants = {
|
|
|
11254
11301
|
function connectionVariant(connection) {
|
|
11255
11302
|
return Object.prototype.hasOwnProperty.call(connectionVariants, connection) ? connectionVariants[connection] : "neutral";
|
|
11256
11303
|
}
|
|
11257
|
-
var AppShell = (0,
|
|
11304
|
+
var AppShell = (0, import_react61.forwardRef)(
|
|
11258
11305
|
({
|
|
11259
11306
|
title = "Workspace",
|
|
11260
11307
|
identity,
|
|
@@ -11269,7 +11316,7 @@ var AppShell = (0, import_react60.forwardRef)(
|
|
|
11269
11316
|
className,
|
|
11270
11317
|
...props
|
|
11271
11318
|
}, ref) => {
|
|
11272
|
-
const id = (0,
|
|
11319
|
+
const id = (0, import_react61.useId)();
|
|
11273
11320
|
if (process.env.NODE_ENV !== "production") {
|
|
11274
11321
|
devValidate("AppShell", AppShellManifest.AppShell.props, { mode, connection });
|
|
11275
11322
|
}
|
|
@@ -11331,14 +11378,14 @@ var AppShell = (0, import_react60.forwardRef)(
|
|
|
11331
11378
|
AppShell.displayName = "AppShell";
|
|
11332
11379
|
|
|
11333
11380
|
// src/Inspector/Inspector.tsx
|
|
11334
|
-
var
|
|
11381
|
+
var import_react62 = require("react");
|
|
11335
11382
|
var import_class_variance_authority29 = require("class-variance-authority");
|
|
11336
11383
|
var import_clsx45 = __toESM(require("clsx"), 1);
|
|
11337
11384
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
11338
11385
|
var inspectorStyles = (0, import_class_variance_authority29.cva)(
|
|
11339
11386
|
"flex min-w-0 flex-col gap-2u break-words border border-oprt-border bg-oprt-surface-1 p-2u font-sans text-oprt-base normal-case text-oprt-text"
|
|
11340
11387
|
);
|
|
11341
|
-
var Inspector = (0,
|
|
11388
|
+
var Inspector = (0, import_react62.forwardRef)(
|
|
11342
11389
|
({
|
|
11343
11390
|
open = true,
|
|
11344
11391
|
title,
|
|
@@ -11350,7 +11397,7 @@ var Inspector = (0, import_react61.forwardRef)(
|
|
|
11350
11397
|
"aria-describedby": describedBy,
|
|
11351
11398
|
...props
|
|
11352
11399
|
}, ref) => {
|
|
11353
|
-
const root = (0,
|
|
11400
|
+
const root = (0, import_react62.useRef)(null);
|
|
11354
11401
|
const setRef2 = useMergedRefs(root, ref);
|
|
11355
11402
|
const ids = usePartIds(["title", "description"], {
|
|
11356
11403
|
readRendered: () => root.current?.getAttribute("data-oprt-ids")
|
|
@@ -11420,7 +11467,7 @@ var InspectorManifest = {
|
|
|
11420
11467
|
};
|
|
11421
11468
|
|
|
11422
11469
|
// src/TreeView/TreeView.tsx
|
|
11423
|
-
var
|
|
11470
|
+
var import_react63 = require("react");
|
|
11424
11471
|
var import_react_aria_components20 = require("react-aria-components");
|
|
11425
11472
|
var import_icons17 = require("@oprt/icons");
|
|
11426
11473
|
var import_class_variance_authority30 = require("class-variance-authority");
|
|
@@ -11449,7 +11496,7 @@ function aimAtLabel(tree, row) {
|
|
|
11449
11496
|
row.style.scrollMarginLeft = `${Math.min(0, box.left - left)}px`;
|
|
11450
11497
|
row.style.scrollMarginRight = `${Math.min(0, right - box.right)}px`;
|
|
11451
11498
|
}
|
|
11452
|
-
var TreeView = (0,
|
|
11499
|
+
var TreeView = (0, import_react63.forwardRef)(
|
|
11453
11500
|
({
|
|
11454
11501
|
items,
|
|
11455
11502
|
label = "Navigation",
|
|
@@ -11463,12 +11510,12 @@ var TreeView = (0, import_react62.forwardRef)(
|
|
|
11463
11510
|
className,
|
|
11464
11511
|
...attributes
|
|
11465
11512
|
}, ref) => {
|
|
11466
|
-
const [localSelection, setLocalSelection] = (0,
|
|
11467
|
-
const [localExpanded, setLocalExpanded] = (0,
|
|
11513
|
+
const [localSelection, setLocalSelection] = (0, import_react63.useState)(null);
|
|
11514
|
+
const [localExpanded, setLocalExpanded] = (0, import_react63.useState)(defaultExpandedIds);
|
|
11468
11515
|
const selection = selectedId === void 0 ? localSelection : selectedId;
|
|
11469
|
-
const treeRef = (0,
|
|
11516
|
+
const treeRef = (0, import_react63.useRef)(null);
|
|
11470
11517
|
const setRef2 = useMergedRefs(treeRef, ref);
|
|
11471
|
-
(0,
|
|
11518
|
+
(0, import_react63.useEffect)(() => {
|
|
11472
11519
|
const tree = treeRef.current;
|
|
11473
11520
|
if (!tree) return;
|
|
11474
11521
|
const aim = (event) => {
|
|
@@ -11593,14 +11640,14 @@ var TreeViewManifest = {
|
|
|
11593
11640
|
};
|
|
11594
11641
|
|
|
11595
11642
|
// src/OperationalStatus/OperationalStatus.tsx
|
|
11596
|
-
var
|
|
11643
|
+
var import_react65 = require("react");
|
|
11597
11644
|
var import_class_variance_authority32 = require("class-variance-authority");
|
|
11598
11645
|
var import_clsx48 = __toESM(require("clsx"), 1);
|
|
11599
11646
|
|
|
11600
11647
|
// src/DescriptionList/DescriptionList.tsx
|
|
11601
11648
|
var import_class_variance_authority31 = require("class-variance-authority");
|
|
11602
11649
|
var import_clsx47 = __toESM(require("clsx"), 1);
|
|
11603
|
-
var
|
|
11650
|
+
var import_react64 = require("react");
|
|
11604
11651
|
|
|
11605
11652
|
// src/DescriptionList/DescriptionList.manifest.ts
|
|
11606
11653
|
var DescriptionListManifest = {
|
|
@@ -11681,13 +11728,13 @@ var valueStyles2 = (0, import_class_variance_authority31.cva)(
|
|
|
11681
11728
|
}
|
|
11682
11729
|
);
|
|
11683
11730
|
var isMissing = (value) => value === null || value === void 0 || value === "";
|
|
11684
|
-
var DescriptionList = (0,
|
|
11731
|
+
var DescriptionList = (0, import_react64.forwardRef)(
|
|
11685
11732
|
({ items, layout = "stacked", className, ...props }, ref) => {
|
|
11686
11733
|
if (process.env.NODE_ENV !== "production") {
|
|
11687
11734
|
devValidate("DescriptionList", DescriptionListManifest.DescriptionList.props, { layout });
|
|
11688
11735
|
}
|
|
11689
|
-
const reported3 = (0,
|
|
11690
|
-
(0,
|
|
11736
|
+
const reported3 = (0, import_react64.useRef)(/* @__PURE__ */ new Set());
|
|
11737
|
+
(0, import_react64.useEffect)(() => {
|
|
11691
11738
|
if (process.env.NODE_ENV === "production") return;
|
|
11692
11739
|
const fresh = items.filter(({ id, value }) => isMissing(value) && !reported3.current.has(id)).map(({ id }) => id);
|
|
11693
11740
|
if (fresh.length === 0) return;
|
|
@@ -11772,10 +11819,10 @@ var variants = {
|
|
|
11772
11819
|
unavailable: "error",
|
|
11773
11820
|
unknown: "neutral"
|
|
11774
11821
|
};
|
|
11775
|
-
var OperationalStatus = (0,
|
|
11822
|
+
var OperationalStatus = (0, import_react65.forwardRef)(
|
|
11776
11823
|
(allProps, ref) => {
|
|
11777
11824
|
const { state = "unknown", source, updatedAt, detail, className, ...props } = allProps;
|
|
11778
|
-
const qualityId = `${(0,
|
|
11825
|
+
const qualityId = `${(0, import_react65.useId)()}-quality`;
|
|
11779
11826
|
if (process.env.NODE_ENV !== "production") {
|
|
11780
11827
|
devValidate("OperationalStatus", OperationalStatusManifest.OperationalStatus.props, {
|
|
11781
11828
|
...allProps
|
|
@@ -11838,15 +11885,15 @@ var OperationalStatus = (0, import_react64.forwardRef)(
|
|
|
11838
11885
|
OperationalStatus.displayName = "OperationalStatus";
|
|
11839
11886
|
|
|
11840
11887
|
// src/ActionStatus/ActionStatus.tsx
|
|
11841
|
-
var
|
|
11888
|
+
var import_react67 = require("react");
|
|
11842
11889
|
var import_class_variance_authority33 = require("class-variance-authority");
|
|
11843
11890
|
var import_clsx49 = __toESM(require("clsx"), 1);
|
|
11844
11891
|
|
|
11845
11892
|
// src/_internal/useActionFocus.ts
|
|
11846
|
-
var
|
|
11893
|
+
var import_react66 = require("react");
|
|
11847
11894
|
function useActionFocus(ref, { onFocusCapture, onBlurCapture } = {}) {
|
|
11848
|
-
const root = (0,
|
|
11849
|
-
(0,
|
|
11895
|
+
const root = (0, import_react66.useRef)(null);
|
|
11896
|
+
(0, import_react66.useImperativeHandle)(ref, () => root.current, []);
|
|
11850
11897
|
const restore = useRestoreFocusOnRemoval(root);
|
|
11851
11898
|
return {
|
|
11852
11899
|
ref: root,
|
|
@@ -11949,6 +11996,8 @@ function ActionStatusLine({
|
|
|
11949
11996
|
requestId,
|
|
11950
11997
|
children
|
|
11951
11998
|
}) {
|
|
11999
|
+
const spoken = [`${label}, ${state}.`, requestId && `Request: ${requestId}.`, message].filter(Boolean).join(" ");
|
|
12000
|
+
const holdBack = useHoldBackNewText(true);
|
|
11952
12001
|
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
11953
12002
|
"div",
|
|
11954
12003
|
{
|
|
@@ -11957,19 +12006,27 @@ function ActionStatusLine({
|
|
|
11957
12006
|
"aria-atomic": "true",
|
|
11958
12007
|
className: "flex min-w-0 flex-col gap-1u",
|
|
11959
12008
|
children: [
|
|
11960
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "
|
|
11961
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
11962
|
-
|
|
12009
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "sr-only", children: holdBack ? null : spoken }),
|
|
12010
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
12011
|
+
"span",
|
|
12012
|
+
{
|
|
12013
|
+
"aria-hidden": "true",
|
|
12014
|
+
className: "min-w-0 oprt-wrap-anywhere font-medium uppercase tracking-oprt-caps",
|
|
12015
|
+
children: label
|
|
12016
|
+
}
|
|
12017
|
+
),
|
|
12018
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Badge, { variant: variants2[state], indicator: "dot", children: state }) }),
|
|
12019
|
+
requestId && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { "aria-hidden": "true", className: "min-w-0 oprt-wrap-anywhere font-mono", children: [
|
|
11963
12020
|
"Request: ",
|
|
11964
12021
|
requestId
|
|
11965
12022
|
] }),
|
|
11966
|
-
message && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "m-0 min-w-0 oprt-wrap-anywhere", children: message }),
|
|
12023
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { "aria-hidden": "true", className: "m-0 min-w-0 oprt-wrap-anywhere", children: message }),
|
|
11967
12024
|
children
|
|
11968
12025
|
]
|
|
11969
12026
|
}
|
|
11970
12027
|
);
|
|
11971
12028
|
}
|
|
11972
|
-
var ActionStatus = (0,
|
|
12029
|
+
var ActionStatus = (0, import_react67.forwardRef)((allProps, ref) => {
|
|
11973
12030
|
const {
|
|
11974
12031
|
state,
|
|
11975
12032
|
label,
|
|
@@ -12015,7 +12072,7 @@ var ActionStatus = (0, import_react66.forwardRef)((allProps, ref) => {
|
|
|
12015
12072
|
ActionStatus.displayName = "ActionStatus";
|
|
12016
12073
|
|
|
12017
12074
|
// src/MultiSelect/MultiSelect.tsx
|
|
12018
|
-
var
|
|
12075
|
+
var import_react68 = require("react");
|
|
12019
12076
|
var import_class_variance_authority34 = require("class-variance-authority");
|
|
12020
12077
|
var import_clsx50 = __toESM(require("clsx"), 1);
|
|
12021
12078
|
var import_icons18 = require("@oprt/icons");
|
|
@@ -12024,7 +12081,7 @@ var styles = (0, import_class_variance_authority34.cva)("m-0 min-w-0 border p-2u
|
|
|
12024
12081
|
variants: { invalid: { true: "border-oprt-error", false: "border-oprt-border" } },
|
|
12025
12082
|
defaultVariants: { invalid: false }
|
|
12026
12083
|
});
|
|
12027
|
-
var MultiSelect = (0,
|
|
12084
|
+
var MultiSelect = (0, import_react68.forwardRef)(
|
|
12028
12085
|
({
|
|
12029
12086
|
label,
|
|
12030
12087
|
options,
|
|
@@ -12039,12 +12096,12 @@ var MultiSelect = (0, import_react67.forwardRef)(
|
|
|
12039
12096
|
"aria-describedby": describedBy,
|
|
12040
12097
|
...props
|
|
12041
12098
|
}, ref) => {
|
|
12042
|
-
const fieldset = (0,
|
|
12099
|
+
const fieldset = (0, import_react68.useRef)(null);
|
|
12043
12100
|
const fieldsetRef = useMergedRefs(fieldset, ref);
|
|
12044
12101
|
const ids = usePartIds(["description", "error"], {
|
|
12045
12102
|
readRendered: () => fieldset.current?.getAttribute("data-oprt-ids")
|
|
12046
12103
|
});
|
|
12047
|
-
const [local, setLocal] = (0,
|
|
12104
|
+
const [local, setLocal] = (0, import_react68.useState)(defaultValue);
|
|
12048
12105
|
const selected = value ?? local;
|
|
12049
12106
|
const descriptions = joinIds(describedBy, description && ids.description, error && ids.error);
|
|
12050
12107
|
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
@@ -12171,7 +12228,7 @@ var MultiSelectManifest = {
|
|
|
12171
12228
|
};
|
|
12172
12229
|
|
|
12173
12230
|
// src/NumberInput/NumberInput.tsx
|
|
12174
|
-
var
|
|
12231
|
+
var import_react69 = require("react");
|
|
12175
12232
|
var import_class_variance_authority35 = require("class-variance-authority");
|
|
12176
12233
|
var import_clsx51 = __toESM(require("clsx"), 1);
|
|
12177
12234
|
|
|
@@ -12277,7 +12334,7 @@ function validate2(text, unit, min, max, step, required) {
|
|
|
12277
12334
|
function plainDecimal(value) {
|
|
12278
12335
|
return value.toLocaleString("en-US", { useGrouping: false, maximumFractionDigits: 20 });
|
|
12279
12336
|
}
|
|
12280
|
-
var NumberInput = (0,
|
|
12337
|
+
var NumberInput = (0, import_react69.forwardRef)((allProps, ref) => {
|
|
12281
12338
|
const {
|
|
12282
12339
|
label,
|
|
12283
12340
|
unit,
|
|
@@ -12304,22 +12361,22 @@ var NumberInput = (0, import_react68.forwardRef)((allProps, ref) => {
|
|
|
12304
12361
|
if (process.env.NODE_ENV !== "production") {
|
|
12305
12362
|
devValidate("NumberInput", NumberInputManifest.NumberInput.props, { ...allProps });
|
|
12306
12363
|
}
|
|
12307
|
-
const labelRef = (0,
|
|
12364
|
+
const labelRef = (0, import_react69.useRef)(null);
|
|
12308
12365
|
const ids = usePartIds(["unit", "description", "error", "unknown"], {
|
|
12309
12366
|
id,
|
|
12310
12367
|
readRendered: () => labelRef.current?.htmlFor
|
|
12311
12368
|
});
|
|
12312
12369
|
const inputId = ids.base;
|
|
12313
|
-
const inputRef = (0,
|
|
12370
|
+
const inputRef = (0, import_react69.useRef)(null);
|
|
12314
12371
|
const mergedRef = useMergedRefs(inputRef, ref);
|
|
12315
|
-
const [local, setLocal] = (0,
|
|
12372
|
+
const [local, setLocal] = (0, import_react69.useState)(defaultValue);
|
|
12316
12373
|
const numeric = value === void 0 ? local : value;
|
|
12317
|
-
const [draft, setDraft] = (0,
|
|
12374
|
+
const [draft, setDraft] = (0, import_react69.useState)(null);
|
|
12318
12375
|
const text = draft && Object.is(draft.base, numeric) ? draft.text : numeric === null ? "" : String(numeric);
|
|
12319
12376
|
const validation = error || validate2(text, unit, min, max, step, required);
|
|
12320
|
-
const validationRef = (0,
|
|
12377
|
+
const validationRef = (0, import_react69.useRef)(onValidationChange);
|
|
12321
12378
|
validationRef.current = onValidationChange;
|
|
12322
|
-
(0,
|
|
12379
|
+
(0, import_react69.useEffect)(() => {
|
|
12323
12380
|
inputRef.current?.setCustomValidity(validation ?? "");
|
|
12324
12381
|
validationRef.current?.(validation ?? null);
|
|
12325
12382
|
}, [validation]);
|
|
@@ -12428,11 +12485,11 @@ var NumberInput = (0, import_react68.forwardRef)((allProps, ref) => {
|
|
|
12428
12485
|
NumberInput.displayName = "NumberInput";
|
|
12429
12486
|
|
|
12430
12487
|
// src/CoordinateInput/CoordinateInput.tsx
|
|
12431
|
-
var
|
|
12488
|
+
var import_react70 = require("react");
|
|
12432
12489
|
var import_clsx52 = __toESM(require("clsx"), 1);
|
|
12433
12490
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
12434
12491
|
var unknown = { latitude: null, longitude: null };
|
|
12435
|
-
var CoordinateInput = (0,
|
|
12492
|
+
var CoordinateInput = (0, import_react70.forwardRef)(
|
|
12436
12493
|
({
|
|
12437
12494
|
label = "Coordinates",
|
|
12438
12495
|
value,
|
|
@@ -12448,18 +12505,18 @@ var CoordinateInput = (0, import_react69.forwardRef)(
|
|
|
12448
12505
|
"aria-describedby": describedBy,
|
|
12449
12506
|
...props
|
|
12450
12507
|
}, ref) => {
|
|
12451
|
-
const fieldset = (0,
|
|
12508
|
+
const fieldset = (0, import_react70.useRef)(null);
|
|
12452
12509
|
const fieldsetRef = useMergedRefs(fieldset, ref);
|
|
12453
12510
|
const ids = usePartIds(["status", "description", "error"], {
|
|
12454
12511
|
readRendered: () => fieldset.current?.getAttribute("data-oprt-ids")
|
|
12455
12512
|
});
|
|
12456
|
-
const [local, setLocal] = (0,
|
|
12457
|
-
const [invalidAxes, setInvalidAxes] = (0,
|
|
12513
|
+
const [local, setLocal] = (0, import_react70.useState)(defaultValue);
|
|
12514
|
+
const [invalidAxes, setInvalidAxes] = (0, import_react70.useState)({ latitude: false, longitude: false });
|
|
12458
12515
|
const position = value ?? local;
|
|
12459
12516
|
const invalid = Boolean(error) || invalidAxes.latitude || invalidAxes.longitude || position.latitude !== null && (!Number.isFinite(position.latitude) || Math.abs(position.latitude) > 90) || position.longitude !== null && (!Number.isFinite(position.longitude) || Math.abs(position.longitude) > 180);
|
|
12460
|
-
const validationRef = (0,
|
|
12517
|
+
const validationRef = (0, import_react70.useRef)(onValidationChange);
|
|
12461
12518
|
validationRef.current = onValidationChange;
|
|
12462
|
-
(0,
|
|
12519
|
+
(0, import_react70.useEffect)(() => {
|
|
12463
12520
|
validationRef.current?.(invalid);
|
|
12464
12521
|
}, [invalid]);
|
|
12465
12522
|
const status = invalid ? "Position invalid" : position.latitude === null || position.longitude === null ? "Position unknown" : "Decimal degrees";
|
|
@@ -12598,7 +12655,7 @@ var CoordinateInputManifest = {
|
|
|
12598
12655
|
// src/Link/Link.tsx
|
|
12599
12656
|
var import_class_variance_authority36 = require("class-variance-authority");
|
|
12600
12657
|
var import_clsx53 = __toESM(require("clsx"), 1);
|
|
12601
|
-
var
|
|
12658
|
+
var import_react71 = require("react");
|
|
12602
12659
|
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
12603
12660
|
var linkStyles = (0, import_class_variance_authority36.cva)(
|
|
12604
12661
|
"min-h-oprt-sm min-w-oprt-sm border border-transparent py-[calc((var(--oprt-height-sm)-2px-var(--oprt-line-base))/2)] box-decoration-clone font-sans text-oprt-base font-medium text-oprt-accent underline underline-offset-2 oprt-wrap-anywhere [&_svg]:inline-block hover:text-oprt-accent-hover aria-disabled:text-[color:inherit] aria-disabled:hover:text-[color:inherit] aria-disabled:no-underline aria-disabled:cursor-default focus-visible:outline-hidden focus-visible:border-oprt-border-focus focus-visible:shadow-oprt-focus forced-colors:focus-visible:outline-solid forced-colors:focus-visible:outline-2 forced-colors:focus-visible:outline-[CanvasText]",
|
|
@@ -12611,11 +12668,11 @@ var linkStyles = (0, import_class_variance_authority36.cva)(
|
|
|
12611
12668
|
}
|
|
12612
12669
|
);
|
|
12613
12670
|
function isIconOnly(children) {
|
|
12614
|
-
const parts =
|
|
12671
|
+
const parts = import_react71.Children.toArray(children).filter(
|
|
12615
12672
|
(part) => !(typeof part === "string" && part.trim() === "")
|
|
12616
12673
|
);
|
|
12617
12674
|
const [only] = parts;
|
|
12618
|
-
if (parts.length !== 1 || !(0,
|
|
12675
|
+
if (parts.length !== 1 || !(0, import_react71.isValidElement)(only)) return false;
|
|
12619
12676
|
const hidden = only.props["aria-hidden"];
|
|
12620
12677
|
return only.type === "svg" || hidden === true || hidden === "true" || typeof only.type !== "string" && only.props.children == null;
|
|
12621
12678
|
}
|
|
@@ -12652,7 +12709,7 @@ function reportUnsafeHref(destination) {
|
|
|
12652
12709
|
)
|
|
12653
12710
|
);
|
|
12654
12711
|
}
|
|
12655
|
-
var Link = (0,
|
|
12712
|
+
var Link = (0, import_react71.forwardRef)(
|
|
12656
12713
|
({ className, href, children, ...props }, ref) => {
|
|
12657
12714
|
const safe = typeof href !== "string" || isSafeHref(href, props.download !== void 0 && props.download !== false);
|
|
12658
12715
|
if (!safe) reportUnsafeHref(href);
|
|
@@ -12706,7 +12763,7 @@ var LinkManifest = {
|
|
|
12706
12763
|
};
|
|
12707
12764
|
|
|
12708
12765
|
// src/CopyButton/CopyButton.tsx
|
|
12709
|
-
var
|
|
12766
|
+
var import_react73 = require("react");
|
|
12710
12767
|
var import_class_variance_authority37 = require("class-variance-authority");
|
|
12711
12768
|
var import_icons19 = require("@oprt/icons");
|
|
12712
12769
|
|
|
@@ -12723,7 +12780,7 @@ var CopyButtonManifest = {
|
|
|
12723
12780
|
label: {
|
|
12724
12781
|
type: "string",
|
|
12725
12782
|
required: true,
|
|
12726
|
-
description: 'Accessible action name identifying the value. Feedback reads this label, then the outcome: "Copy equipment ID: copied".'
|
|
12783
|
+
description: 'Accessible action name identifying the value. It must contain "Copy", the word the button shows. Feedback reads this label, then the outcome: "Copy equipment ID: copied".'
|
|
12727
12784
|
},
|
|
12728
12785
|
size: { type: "enum", values: ["sm", "md", "lg"], default: "md" },
|
|
12729
12786
|
disabled: { type: "boolean", default: false },
|
|
@@ -12744,16 +12801,16 @@ var CopyButtonManifest = {
|
|
|
12744
12801
|
};
|
|
12745
12802
|
|
|
12746
12803
|
// src/_internal/useIsMounted.ts
|
|
12747
|
-
var
|
|
12804
|
+
var import_react72 = require("react");
|
|
12748
12805
|
function useIsMounted() {
|
|
12749
|
-
const mounted = (0,
|
|
12806
|
+
const mounted = (0, import_react72.useRef)(false);
|
|
12750
12807
|
useIsomorphicLayoutEffect(() => {
|
|
12751
12808
|
mounted.current = true;
|
|
12752
12809
|
return () => {
|
|
12753
12810
|
mounted.current = false;
|
|
12754
12811
|
};
|
|
12755
12812
|
}, []);
|
|
12756
|
-
return (0,
|
|
12813
|
+
return (0, import_react72.useCallback)(() => mounted.current, []);
|
|
12757
12814
|
}
|
|
12758
12815
|
|
|
12759
12816
|
// src/CopyButton/CopyButton.tsx
|
|
@@ -12769,13 +12826,32 @@ var feedbackStyles = (0, import_class_variance_authority37.cva)("min-w-0 break-w
|
|
|
12769
12826
|
}
|
|
12770
12827
|
}
|
|
12771
12828
|
});
|
|
12772
|
-
var
|
|
12829
|
+
var reportedLabels = /* @__PURE__ */ new Set();
|
|
12830
|
+
function reportLabelWithoutVisibleText(label) {
|
|
12831
|
+
if (process.env.NODE_ENV === "production" || reportedLabels.has(label)) return;
|
|
12832
|
+
reportedLabels.add(label);
|
|
12833
|
+
console.error(
|
|
12834
|
+
JSON.stringify(
|
|
12835
|
+
{
|
|
12836
|
+
component: "CopyButton",
|
|
12837
|
+
error: "LABEL_OMITS_VISIBLE_TEXT",
|
|
12838
|
+
prop: "label",
|
|
12839
|
+
received: label,
|
|
12840
|
+
suggestion: 'The button shows the word "Copy", so its label must contain it (WCAG 2.5.3, Label in Name). Start the label with it: "Copy equipment ID".'
|
|
12841
|
+
},
|
|
12842
|
+
null,
|
|
12843
|
+
2
|
|
12844
|
+
)
|
|
12845
|
+
);
|
|
12846
|
+
}
|
|
12847
|
+
var CopyButton = (0, import_react73.forwardRef)((allProps, ref) => {
|
|
12773
12848
|
const { value, label, onCopy, onCopyError, disabled = false, size = "md", className } = allProps;
|
|
12774
|
-
const [pending, setPending] = (0,
|
|
12775
|
-
|
|
12776
|
-
const
|
|
12849
|
+
const [pending, setPending] = (0, import_react73.useState)(false);
|
|
12850
|
+
if (!/copy/i.test(label)) reportLabelWithoutVisibleText(label);
|
|
12851
|
+
const [feedback, setFeedback] = (0, import_react73.useState)(null);
|
|
12852
|
+
const pendingRef = (0, import_react73.useRef)(false);
|
|
12777
12853
|
const isMounted = useIsMounted();
|
|
12778
|
-
const context = (0,
|
|
12854
|
+
const context = (0, import_react73.useRef)({ value, label, revision: 0 });
|
|
12779
12855
|
if (process.env.NODE_ENV !== "production") {
|
|
12780
12856
|
devValidate("CopyButton", CopyButtonManifest.CopyButton.props, { ...allProps });
|
|
12781
12857
|
}
|
|
@@ -12856,7 +12932,7 @@ CopyButton.displayName = "CopyButton";
|
|
|
12856
12932
|
|
|
12857
12933
|
// src/Popover/Popover.tsx
|
|
12858
12934
|
var import_react_aria_components21 = require("react-aria-components");
|
|
12859
|
-
var
|
|
12935
|
+
var import_react74 = require("react");
|
|
12860
12936
|
var import_class_variance_authority38 = require("class-variance-authority");
|
|
12861
12937
|
var import_clsx54 = __toESM(require("clsx"), 1);
|
|
12862
12938
|
|
|
@@ -12920,7 +12996,7 @@ function topSurface() {
|
|
|
12920
12996
|
);
|
|
12921
12997
|
return surfaces[surfaces.length - 1];
|
|
12922
12998
|
}
|
|
12923
|
-
var Popover2 = (0,
|
|
12999
|
+
var Popover2 = (0, import_react74.forwardRef)(
|
|
12924
13000
|
({
|
|
12925
13001
|
children,
|
|
12926
13002
|
content,
|
|
@@ -12940,37 +13016,37 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
12940
13016
|
id: suppliedId,
|
|
12941
13017
|
...dialogProps
|
|
12942
13018
|
}, ref) => {
|
|
12943
|
-
const [localOpen, setLocalOpen] = (0,
|
|
13019
|
+
const [localOpen, setLocalOpen] = (0, import_react74.useState)(defaultOpen);
|
|
12944
13020
|
const isOpen = open ?? localOpen;
|
|
12945
|
-
const [positioning, setPositioning] = (0,
|
|
12946
|
-
const [tooltipOpen, setTooltipOpen] = (0,
|
|
13021
|
+
const [positioning, setPositioning] = (0, import_react74.useState)(true);
|
|
13022
|
+
const [tooltipOpen, setTooltipOpen] = (0, import_react74.useState)(false);
|
|
12947
13023
|
const motionState = useMotion(motion);
|
|
12948
13024
|
if (process.env.NODE_ENV !== "production") {
|
|
12949
13025
|
devValidate("Popover", PopoverManifest.Popover.props, { ...dialogProps, side, align });
|
|
12950
13026
|
}
|
|
12951
|
-
const generatedId = (0,
|
|
13027
|
+
const generatedId = (0, import_react74.useId)();
|
|
12952
13028
|
const id = suppliedId ?? `oprt-popover-${generatedId}`;
|
|
12953
|
-
const trigger = (0,
|
|
12954
|
-
const lastTrigger = (0,
|
|
12955
|
-
const dialog = (0,
|
|
12956
|
-
const lastDialog = (0,
|
|
12957
|
-
const wasOpen = (0,
|
|
12958
|
-
const focusFrame = (0,
|
|
12959
|
-
const focusScrollClose = (0,
|
|
12960
|
-
const current = (0,
|
|
13029
|
+
const trigger = (0, import_react74.useRef)(null);
|
|
13030
|
+
const lastTrigger = (0, import_react74.useRef)(null);
|
|
13031
|
+
const dialog = (0, import_react74.useRef)(null);
|
|
13032
|
+
const lastDialog = (0, import_react74.useRef)(null);
|
|
13033
|
+
const wasOpen = (0, import_react74.useRef)(false);
|
|
13034
|
+
const focusFrame = (0, import_react74.useRef)();
|
|
13035
|
+
const focusScrollClose = (0, import_react74.useRef)(false);
|
|
13036
|
+
const current = (0, import_react74.useRef)({ isOpen, onCloseAutoFocus, returnFocusRef });
|
|
12961
13037
|
current.current = { isOpen, onCloseAutoFocus, returnFocusRef };
|
|
12962
|
-
const childRef = parseInt(
|
|
12963
|
-
const rememberTrigger = (0,
|
|
13038
|
+
const childRef = parseInt(import_react74.version, 10) < 19 ? children.ref : children.props.ref;
|
|
13039
|
+
const rememberTrigger = (0, import_react74.useCallback)((node) => {
|
|
12964
13040
|
trigger.current = node;
|
|
12965
13041
|
if (node) lastTrigger.current = node;
|
|
12966
13042
|
}, []);
|
|
12967
13043
|
const setTrigger = useMergedRefs(rememberTrigger, childRef);
|
|
12968
|
-
const rememberDialog = (0,
|
|
13044
|
+
const rememberDialog = (0, import_react74.useCallback)((node) => {
|
|
12969
13045
|
dialog.current = node;
|
|
12970
13046
|
if (node) lastDialog.current = node;
|
|
12971
13047
|
}, []);
|
|
12972
13048
|
const setDialog = useMergedRefs(rememberDialog, ref);
|
|
12973
|
-
const restoreFocus = (0,
|
|
13049
|
+
const restoreFocus = (0, import_react74.useCallback)(() => {
|
|
12974
13050
|
const event = new Event("popovercloseautofocus", { cancelable: true });
|
|
12975
13051
|
current.current.onCloseAutoFocus?.(event);
|
|
12976
13052
|
if (event.defaultPrevented) return;
|
|
@@ -12985,7 +13061,7 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
12985
13061
|
if (target?.isConnected) target.focus({ preventScroll: true });
|
|
12986
13062
|
});
|
|
12987
13063
|
}, []);
|
|
12988
|
-
(0,
|
|
13064
|
+
(0, import_react74.useEffect)(() => {
|
|
12989
13065
|
if (isOpen && !wasOpen.current) {
|
|
12990
13066
|
if (focusFrame.current !== void 0) cancelAnimationFrame(focusFrame.current);
|
|
12991
13067
|
setTooltipOpen(false);
|
|
@@ -12994,13 +13070,13 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
12994
13070
|
if (!isOpen && wasOpen.current) restoreFocus();
|
|
12995
13071
|
wasOpen.current = isOpen;
|
|
12996
13072
|
}, [isOpen, restoreFocus]);
|
|
12997
|
-
(0,
|
|
13073
|
+
(0, import_react74.useEffect)(
|
|
12998
13074
|
() => () => {
|
|
12999
13075
|
if (wasOpen.current && !dialog.current?.isConnected) restoreFocus();
|
|
13000
13076
|
},
|
|
13001
13077
|
[restoreFocus]
|
|
13002
13078
|
);
|
|
13003
|
-
const requestOpen = (0,
|
|
13079
|
+
const requestOpen = (0, import_react74.useCallback)(
|
|
13004
13080
|
(next) => {
|
|
13005
13081
|
if (next && disabled) return;
|
|
13006
13082
|
if (!next && focusScrollClose.current) return;
|
|
@@ -13068,7 +13144,7 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
13068
13144
|
window.removeEventListener(event, interact, true);
|
|
13069
13145
|
};
|
|
13070
13146
|
}, [isOpen]);
|
|
13071
|
-
(0,
|
|
13147
|
+
(0, import_react74.useEffect)(() => {
|
|
13072
13148
|
if (!isOpen) return;
|
|
13073
13149
|
let startedOutside = false;
|
|
13074
13150
|
const start = (event) => {
|
|
@@ -13095,7 +13171,7 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
13095
13171
|
document.removeEventListener("pointercancel", cancel, true);
|
|
13096
13172
|
};
|
|
13097
13173
|
}, [isOpen, requestOpen]);
|
|
13098
|
-
const triggerElement = (0,
|
|
13174
|
+
const triggerElement = (0, import_react74.cloneElement)(children, {
|
|
13099
13175
|
ref: setTrigger,
|
|
13100
13176
|
disabled: disabled || children.props.disabled,
|
|
13101
13177
|
"aria-disabled": disabled || children.props["aria-disabled"],
|
|
@@ -13185,16 +13261,16 @@ var Popover2 = (0, import_react73.forwardRef)(
|
|
|
13185
13261
|
Popover2.displayName = "Popover";
|
|
13186
13262
|
|
|
13187
13263
|
// src/EntityPreview/EntityPreview.tsx
|
|
13188
|
-
var
|
|
13264
|
+
var import_react75 = require("react");
|
|
13189
13265
|
var import_class_variance_authority39 = require("class-variance-authority");
|
|
13190
13266
|
var import_clsx55 = __toESM(require("clsx"), 1);
|
|
13191
13267
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
13192
13268
|
var previewStyles = (0, import_class_variance_authority39.cva)(
|
|
13193
13269
|
"flex min-w-0 flex-col gap-2u font-sans text-oprt-base normal-case tracking-normal text-oprt-text"
|
|
13194
13270
|
);
|
|
13195
|
-
var EntityPreview = (0,
|
|
13271
|
+
var EntityPreview = (0, import_react75.forwardRef)(
|
|
13196
13272
|
({ entity, media, actions: actions2, headingLevel = 3, className, ...props }, ref) => {
|
|
13197
|
-
const instanceId = (0,
|
|
13273
|
+
const instanceId = (0, import_react75.useId)();
|
|
13198
13274
|
const headingId = `${instanceId}-name`;
|
|
13199
13275
|
const conditionId = `${instanceId}-condition`;
|
|
13200
13276
|
const Heading5 = `h${headingLevel}`;
|
|
@@ -13299,16 +13375,16 @@ var EntityPreviewManifest = {
|
|
|
13299
13375
|
};
|
|
13300
13376
|
|
|
13301
13377
|
// src/FormSection/FormSection.tsx
|
|
13302
|
-
var
|
|
13378
|
+
var import_react76 = require("react");
|
|
13303
13379
|
var import_class_variance_authority40 = require("class-variance-authority");
|
|
13304
13380
|
var import_clsx56 = __toESM(require("clsx"), 1);
|
|
13305
13381
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
13306
13382
|
var sectionStyles = (0, import_class_variance_authority40.cva)(
|
|
13307
13383
|
"m-0 min-w-0 border border-oprt-border bg-oprt-surface-1 p-3u font-sans text-oprt-base normal-case tracking-normal text-oprt-text"
|
|
13308
13384
|
);
|
|
13309
|
-
var FormSection = (0,
|
|
13385
|
+
var FormSection = (0, import_react76.forwardRef)(
|
|
13310
13386
|
({ legend, description, children, className, "aria-describedby": describedBy, ...props }, ref) => {
|
|
13311
|
-
const root = (0,
|
|
13387
|
+
const root = (0, import_react76.useRef)(null);
|
|
13312
13388
|
const mergedRef = useMergedRefs(root, ref);
|
|
13313
13389
|
const ids = usePartIds(["description"], {
|
|
13314
13390
|
id: props.id,
|
|
@@ -13372,7 +13448,7 @@ var FormSectionManifest = {
|
|
|
13372
13448
|
};
|
|
13373
13449
|
|
|
13374
13450
|
// src/FormErrorSummary/FormErrorSummary.tsx
|
|
13375
|
-
var
|
|
13451
|
+
var import_react77 = require("react");
|
|
13376
13452
|
var import_class_variance_authority41 = require("class-variance-authority");
|
|
13377
13453
|
var import_clsx57 = __toESM(require("clsx"), 1);
|
|
13378
13454
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
@@ -13382,7 +13458,7 @@ var summaryStyles = (0, import_class_variance_authority41.cva)(
|
|
|
13382
13458
|
var errorStyles = (0, import_class_variance_authority41.cva)(
|
|
13383
13459
|
"inline-flex min-h-3u min-w-3u max-w-full items-center border border-transparent px-1u py-0.5u text-left text-oprt-base font-medium normal-case tracking-normal text-oprt-text underline underline-offset-2 hover:text-oprt-accent outline-hidden focus-visible:border-oprt-border-focus focus-visible:shadow-oprt-focus oprt-wrap-anywhere"
|
|
13384
13460
|
);
|
|
13385
|
-
var FormErrorSummary = (0,
|
|
13461
|
+
var FormErrorSummary = (0, import_react77.forwardRef)(
|
|
13386
13462
|
({
|
|
13387
13463
|
errors,
|
|
13388
13464
|
title = "Check these fields",
|
|
@@ -13392,7 +13468,7 @@ var FormErrorSummary = (0, import_react76.forwardRef)(
|
|
|
13392
13468
|
"aria-labelledby": labelledBy,
|
|
13393
13469
|
...props
|
|
13394
13470
|
}, ref) => {
|
|
13395
|
-
const root = (0,
|
|
13471
|
+
const root = (0, import_react77.useRef)(null);
|
|
13396
13472
|
const mergedRef = useMergedRefs(root, ref);
|
|
13397
13473
|
const ids = usePartIds(["title"], {
|
|
13398
13474
|
id: props.id,
|
|
@@ -13463,7 +13539,7 @@ var FormErrorSummaryManifest = {
|
|
|
13463
13539
|
};
|
|
13464
13540
|
|
|
13465
13541
|
// src/Calendar/Calendar.tsx
|
|
13466
|
-
var
|
|
13542
|
+
var import_react78 = require("react");
|
|
13467
13543
|
var import_date2 = require("@internationalized/date");
|
|
13468
13544
|
var import_react_aria_components22 = require("react-aria-components");
|
|
13469
13545
|
var import_class_variance_authority42 = require("class-variance-authority");
|
|
@@ -13649,7 +13725,7 @@ function CalendarContent() {
|
|
|
13649
13725
|
] })
|
|
13650
13726
|
] });
|
|
13651
13727
|
}
|
|
13652
|
-
var Calendar2 = (0,
|
|
13728
|
+
var Calendar2 = (0, import_react78.forwardRef)(
|
|
13653
13729
|
({
|
|
13654
13730
|
label,
|
|
13655
13731
|
value,
|
|
@@ -13662,10 +13738,10 @@ var Calendar2 = (0, import_react77.forwardRef)(
|
|
|
13662
13738
|
id,
|
|
13663
13739
|
className
|
|
13664
13740
|
}, ref) => {
|
|
13665
|
-
const generated = (0,
|
|
13741
|
+
const generated = (0, import_react78.useId)();
|
|
13666
13742
|
const errorId = `${id ?? generated}-error`;
|
|
13667
13743
|
const hydration = useHydrationRoot(id);
|
|
13668
|
-
const config = (0,
|
|
13744
|
+
const config = (0, import_react78.useMemo)(() => dateConfiguration(value, min, max), [value, min, max]);
|
|
13669
13745
|
const error = config.error ?? (required && value === null ? "A date is required." : null);
|
|
13670
13746
|
return (
|
|
13671
13747
|
// The key remounts the error with the calendar, so both take the client's ids when hydration
|
|
@@ -13740,7 +13816,7 @@ var CalendarManifest = {
|
|
|
13740
13816
|
};
|
|
13741
13817
|
|
|
13742
13818
|
// src/DatePicker/DatePicker.tsx
|
|
13743
|
-
var
|
|
13819
|
+
var import_react80 = require("react");
|
|
13744
13820
|
var import_react_aria_components23 = require("react-aria-components");
|
|
13745
13821
|
var import_date4 = require("@internationalized/date");
|
|
13746
13822
|
var import_icons21 = require("@oprt/icons");
|
|
@@ -13748,12 +13824,12 @@ var import_class_variance_authority43 = require("class-variance-authority");
|
|
|
13748
13824
|
var import_clsx59 = __toESM(require("clsx"), 1);
|
|
13749
13825
|
|
|
13750
13826
|
// src/_internal/segmentField.ts
|
|
13751
|
-
var
|
|
13827
|
+
var import_react79 = require("react");
|
|
13752
13828
|
function sameSnapshot(a, b) {
|
|
13753
13829
|
return a.value === b.value && a.empty === b.empty && a.valid === b.valid;
|
|
13754
13830
|
}
|
|
13755
13831
|
function useReportSegments(segments2, read, report2) {
|
|
13756
|
-
const last = (0,
|
|
13832
|
+
const last = (0, import_react79.useRef)(null);
|
|
13757
13833
|
useIsomorphicLayoutEffect(() => {
|
|
13758
13834
|
const snapshot = read(segments2);
|
|
13759
13835
|
const previous = last.current;
|
|
@@ -13800,11 +13876,11 @@ function useSegmentDraft({
|
|
|
13800
13876
|
rejected: false,
|
|
13801
13877
|
rejection: null
|
|
13802
13878
|
};
|
|
13803
|
-
const [draft, setDraft] = (0,
|
|
13879
|
+
const [draft, setDraft] = (0, import_react79.useState)(initial);
|
|
13804
13880
|
const current = draft.base === value ? draft : initial;
|
|
13805
|
-
const raw = (0,
|
|
13806
|
-
const rejectBlur = (0,
|
|
13807
|
-
const report2 = (0,
|
|
13881
|
+
const raw = (0, import_react79.useRef)(current.snapshot);
|
|
13882
|
+
const rejectBlur = (0, import_react79.useRef)(false);
|
|
13883
|
+
const report2 = (0, import_react79.useCallback)(
|
|
13808
13884
|
(snapshot) => {
|
|
13809
13885
|
raw.current = snapshot;
|
|
13810
13886
|
setDraft(
|
|
@@ -13851,7 +13927,7 @@ function useSegmentDraft({
|
|
|
13851
13927
|
accept: () => setDraft((previous) => ({ ...previous, rejected: false, rejection: null }))
|
|
13852
13928
|
};
|
|
13853
13929
|
}
|
|
13854
|
-
var SegmentGroupContext = (0,
|
|
13930
|
+
var SegmentGroupContext = (0, import_react79.createContext)(null);
|
|
13855
13931
|
|
|
13856
13932
|
// src/DatePicker/DatePicker.tsx
|
|
13857
13933
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
@@ -13860,11 +13936,11 @@ function ObservedYear({
|
|
|
13860
13936
|
segment,
|
|
13861
13937
|
report: report2
|
|
13862
13938
|
}) {
|
|
13863
|
-
const state = (0,
|
|
13939
|
+
const state = (0, import_react80.useContext)(import_react_aria_components23.DateFieldStateContext);
|
|
13864
13940
|
useReportSegments(state.segments, readDateSegments, report2);
|
|
13865
13941
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_aria_components23.DateSegment, { segment, className: SEGMENT_STYLES });
|
|
13866
13942
|
}
|
|
13867
|
-
var DatePicker = (0,
|
|
13943
|
+
var DatePicker = (0, import_react80.forwardRef)(
|
|
13868
13944
|
({
|
|
13869
13945
|
label,
|
|
13870
13946
|
value,
|
|
@@ -13879,19 +13955,19 @@ var DatePicker = (0, import_react79.forwardRef)(
|
|
|
13879
13955
|
className,
|
|
13880
13956
|
motion = "auto"
|
|
13881
13957
|
}, ref) => {
|
|
13882
|
-
const generated = (0,
|
|
13958
|
+
const generated = (0, import_react80.useId)();
|
|
13883
13959
|
const inputId = id ?? `oprt-date-${generated}`;
|
|
13884
13960
|
const hydration = useHydrationRoot(inputId);
|
|
13885
13961
|
const { locale } = (0, import_react_aria_components23.useLocale)();
|
|
13886
|
-
const gregorianLocale = (0,
|
|
13962
|
+
const gregorianLocale = (0, import_react80.useMemo)(
|
|
13887
13963
|
() => new Intl.Locale(locale, { calendar: "gregory" }).toString(),
|
|
13888
13964
|
[locale]
|
|
13889
13965
|
);
|
|
13890
|
-
const config = (0,
|
|
13966
|
+
const config = (0, import_react80.useMemo)(() => dateConfiguration(value, min, max), [value, min, max]);
|
|
13891
13967
|
const displayedValue = config.date?.toString() ?? null;
|
|
13892
13968
|
const motionState = useMotion(motion);
|
|
13893
|
-
const calendarButton = (0,
|
|
13894
|
-
const group = (0,
|
|
13969
|
+
const calendarButton = (0, import_react80.useRef)(null);
|
|
13970
|
+
const group = (0, import_react80.useContext)(SegmentGroupContext);
|
|
13895
13971
|
const calendarMin = parseDateOnly(group?.calendar?.min);
|
|
13896
13972
|
const calendarMax = parseDateOnly(group?.calendar?.max);
|
|
13897
13973
|
const minValue = calendarMin && calendarMin.compare(config.min) > 0 ? calendarMin : config.min;
|
|
@@ -13908,10 +13984,10 @@ var DatePicker = (0, import_react79.forwardRef)(
|
|
|
13908
13984
|
// The bound an edit crossed, named as for a supplied value (DatePicker-R6).
|
|
13909
13985
|
draft.rejection ?? "Enter a complete, valid date within the allowed bounds."
|
|
13910
13986
|
) : null);
|
|
13911
|
-
const validityCallback = (0,
|
|
13987
|
+
const validityCallback = (0, import_react80.useRef)(onDraftValidityChange);
|
|
13912
13988
|
validityCallback.current = onDraftValidityChange;
|
|
13913
13989
|
const pending = draft.pending;
|
|
13914
|
-
(0,
|
|
13990
|
+
(0, import_react80.useEffect)(() => validityCallback.current?.(!error, { pending }), [error, pending]);
|
|
13915
13991
|
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_react_aria_components23.I18nProvider, { locale: gregorianLocale, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
13916
13992
|
import_react_aria_components23.DatePicker,
|
|
13917
13993
|
{
|
|
@@ -14036,7 +14112,7 @@ var DatePickerManifest = {
|
|
|
14036
14112
|
};
|
|
14037
14113
|
|
|
14038
14114
|
// src/InlineEdit/InlineEdit.tsx
|
|
14039
|
-
var
|
|
14115
|
+
var import_react81 = require("react");
|
|
14040
14116
|
var import_class_variance_authority44 = require("class-variance-authority");
|
|
14041
14117
|
var import_clsx60 = __toESM(require("clsx"), 1);
|
|
14042
14118
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
@@ -14047,35 +14123,35 @@ function matchesAttempt(attempt, value, label) {
|
|
|
14047
14123
|
const acceptedReplacement = value === attempt.submitted && value !== attempt.session.baseline;
|
|
14048
14124
|
return (label === attempt.session.label || acceptedReplacement) && (value === attempt.session.baseline || value === attempt.submitted);
|
|
14049
14125
|
}
|
|
14050
|
-
var InlineEdit = (0,
|
|
14126
|
+
var InlineEdit = (0, import_react81.forwardRef)(
|
|
14051
14127
|
({ label, value, onSave, disabled = false, readOnly = false, validate: validate3, className, ...props }, ref) => {
|
|
14052
|
-
const [editing, setEditing] = (0,
|
|
14053
|
-
const [draft, setDraft] = (0,
|
|
14054
|
-
const [error, setError] = (0,
|
|
14055
|
-
const [pending, setPending] = (0,
|
|
14056
|
-
const [multiline, setMultiline] = (0,
|
|
14057
|
-
const [returnFocus, setReturnFocus] = (0,
|
|
14058
|
-
const [changedTo, setChangedTo] = (0,
|
|
14059
|
-
const rootRef = (0,
|
|
14128
|
+
const [editing, setEditing] = (0, import_react81.useState)(false);
|
|
14129
|
+
const [draft, setDraft] = (0, import_react81.useState)(value);
|
|
14130
|
+
const [error, setError] = (0, import_react81.useState)(null);
|
|
14131
|
+
const [pending, setPending] = (0, import_react81.useState)(false);
|
|
14132
|
+
const [multiline, setMultiline] = (0, import_react81.useState)(false);
|
|
14133
|
+
const [returnFocus, setReturnFocus] = (0, import_react81.useState)(null);
|
|
14134
|
+
const [changedTo, setChangedTo] = (0, import_react81.useState)(null);
|
|
14135
|
+
const rootRef = (0, import_react81.useRef)(null);
|
|
14060
14136
|
const mergedRef = useMergedRefs(rootRef, ref);
|
|
14061
|
-
const inputRef = (0,
|
|
14062
|
-
const editRef = (0,
|
|
14063
|
-
const refocusInput = (0,
|
|
14064
|
-
const session = (0,
|
|
14065
|
-
const request = (0,
|
|
14066
|
-
const composing = (0,
|
|
14137
|
+
const inputRef = (0, import_react81.useRef)(null);
|
|
14138
|
+
const editRef = (0, import_react81.useRef)(null);
|
|
14139
|
+
const refocusInput = (0, import_react81.useRef)(false);
|
|
14140
|
+
const session = (0, import_react81.useRef)(null);
|
|
14141
|
+
const request = (0, import_react81.useRef)(null);
|
|
14142
|
+
const composing = (0, import_react81.useRef)(false);
|
|
14067
14143
|
const isMounted = useIsMounted();
|
|
14068
|
-
const latest = (0,
|
|
14144
|
+
const latest = (0, import_react81.useRef)({ label, value, disabled, readOnly });
|
|
14069
14145
|
latest.current = { label, value, disabled, readOnly };
|
|
14070
14146
|
const ids = usePartIds(["error", "changed"]);
|
|
14071
|
-
(0,
|
|
14147
|
+
(0, import_react81.useEffect)(
|
|
14072
14148
|
() => () => {
|
|
14073
14149
|
session.current = null;
|
|
14074
14150
|
request.current = null;
|
|
14075
14151
|
},
|
|
14076
14152
|
[]
|
|
14077
14153
|
);
|
|
14078
|
-
(0,
|
|
14154
|
+
(0, import_react81.useEffect)(() => {
|
|
14079
14155
|
const current = session.current;
|
|
14080
14156
|
if (!current) return;
|
|
14081
14157
|
const attempt = request.current;
|
|
@@ -14093,17 +14169,17 @@ var InlineEdit = (0, import_react80.forwardRef)(
|
|
|
14093
14169
|
session.current = { baseline: value, label };
|
|
14094
14170
|
if (current.baseline !== value) setChangedTo(value);
|
|
14095
14171
|
}, [value, label, disabled, readOnly]);
|
|
14096
|
-
(0,
|
|
14172
|
+
(0, import_react81.useEffect)(() => {
|
|
14097
14173
|
if (editing) inputRef.current?.focus();
|
|
14098
14174
|
}, [editing]);
|
|
14099
|
-
(0,
|
|
14175
|
+
(0, import_react81.useEffect)(() => {
|
|
14100
14176
|
if (pending || !refocusInput.current) return;
|
|
14101
14177
|
refocusInput.current = false;
|
|
14102
14178
|
const active = document.activeElement;
|
|
14103
14179
|
if (active === null || active === document.body || rootRef.current?.contains(active))
|
|
14104
14180
|
inputRef.current?.focus();
|
|
14105
14181
|
}, [pending]);
|
|
14106
|
-
(0,
|
|
14182
|
+
(0, import_react81.useEffect)(() => {
|
|
14107
14183
|
if (!returnFocus || editing) return;
|
|
14108
14184
|
if (!disabled && !readOnly && matchesAttempt(returnFocus, value, label))
|
|
14109
14185
|
editRef.current?.focus();
|
|
@@ -14325,7 +14401,7 @@ var InlineEditManifest = {
|
|
|
14325
14401
|
};
|
|
14326
14402
|
|
|
14327
14403
|
// src/ContextMenu/ContextMenu.tsx
|
|
14328
|
-
var
|
|
14404
|
+
var import_react82 = require("react");
|
|
14329
14405
|
var import_react_aria_components24 = require("react-aria-components");
|
|
14330
14406
|
var import_react_aria6 = require("react-aria");
|
|
14331
14407
|
var import_class_variance_authority45 = require("class-variance-authority");
|
|
@@ -14344,7 +14420,7 @@ function ContextSurface({
|
|
|
14344
14420
|
disabled,
|
|
14345
14421
|
children
|
|
14346
14422
|
}) {
|
|
14347
|
-
const surfaceRef = (0,
|
|
14423
|
+
const surfaceRef = (0, import_react82.useRef)(null);
|
|
14348
14424
|
const { pressProps } = (0, import_react_aria6.usePress)({ ref: surfaceRef, isDisabled: disabled });
|
|
14349
14425
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
14350
14426
|
"div",
|
|
@@ -14381,7 +14457,7 @@ function ContextSurface({
|
|
|
14381
14457
|
}
|
|
14382
14458
|
);
|
|
14383
14459
|
}
|
|
14384
|
-
var ContextMenu = (0,
|
|
14460
|
+
var ContextMenu = (0, import_react82.forwardRef)(
|
|
14385
14461
|
({
|
|
14386
14462
|
label,
|
|
14387
14463
|
items,
|
|
@@ -14392,10 +14468,10 @@ var ContextMenu = (0, import_react81.forwardRef)(
|
|
|
14392
14468
|
className,
|
|
14393
14469
|
...props
|
|
14394
14470
|
}, ref) => {
|
|
14395
|
-
const [open, setOpen] = (0,
|
|
14471
|
+
const [open, setOpen] = (0, import_react82.useState)(null);
|
|
14396
14472
|
const hydration = useHydrationRoot();
|
|
14397
14473
|
const motionState = useMotion("auto", "ContextMenu");
|
|
14398
|
-
(0,
|
|
14474
|
+
(0, import_react82.useEffect)(() => {
|
|
14399
14475
|
if (disabled) setOpen(null);
|
|
14400
14476
|
}, [disabled]);
|
|
14401
14477
|
const menu = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
@@ -14531,18 +14607,18 @@ var ContextMenuManifest = {
|
|
|
14531
14607
|
};
|
|
14532
14608
|
|
|
14533
14609
|
// src/TimeField/TimeField.tsx
|
|
14534
|
-
var
|
|
14610
|
+
var import_react83 = require("react");
|
|
14535
14611
|
var import_react_aria_components25 = require("react-aria-components");
|
|
14536
14612
|
var import_class_variance_authority46 = require("class-variance-authority");
|
|
14537
14613
|
var import_clsx62 = __toESM(require("clsx"), 1);
|
|
14538
14614
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
14539
14615
|
var fieldStyles3 = (0, import_class_variance_authority46.cva)("flex min-w-0 flex-col gap-1u font-sans text-oprt-base text-oprt-text");
|
|
14540
14616
|
function DraftObserver({ report: report2 }) {
|
|
14541
|
-
const state = (0,
|
|
14617
|
+
const state = (0, import_react83.useContext)(import_react_aria_components25.TimeFieldStateContext);
|
|
14542
14618
|
useReportSegments(state.segments, readTimeSegments, report2);
|
|
14543
14619
|
return null;
|
|
14544
14620
|
}
|
|
14545
|
-
var TimeField = (0,
|
|
14621
|
+
var TimeField = (0, import_react83.forwardRef)(
|
|
14546
14622
|
({
|
|
14547
14623
|
label,
|
|
14548
14624
|
value,
|
|
@@ -14556,12 +14632,12 @@ var TimeField = (0, import_react82.forwardRef)(
|
|
|
14556
14632
|
id,
|
|
14557
14633
|
className
|
|
14558
14634
|
}, ref) => {
|
|
14559
|
-
const generated = (0,
|
|
14635
|
+
const generated = (0, import_react83.useId)();
|
|
14560
14636
|
const inputId = id ?? `oprt-time-${generated}`;
|
|
14561
14637
|
const hydration = useHydrationRoot(inputId);
|
|
14562
|
-
const config = (0,
|
|
14638
|
+
const config = (0, import_react83.useMemo)(() => timeConfiguration(value, min, max), [value, min, max]);
|
|
14563
14639
|
const displayedValue = config.time ? formatTimeOnly(config.time) : null;
|
|
14564
|
-
const group = (0,
|
|
14640
|
+
const group = (0, import_react83.useContext)(SegmentGroupContext);
|
|
14565
14641
|
const draft = useSegmentDraft({
|
|
14566
14642
|
value,
|
|
14567
14643
|
displayed: displayedValue,
|
|
@@ -14574,10 +14650,10 @@ var TimeField = (0, import_react82.forwardRef)(
|
|
|
14574
14650
|
// The bound an edit crossed, named as for a supplied value (TimeField-R1).
|
|
14575
14651
|
draft.rejection ?? "Enter a complete, valid time within the allowed bounds."
|
|
14576
14652
|
) : null);
|
|
14577
|
-
const callback = (0,
|
|
14653
|
+
const callback = (0, import_react83.useRef)(onDraftValidityChange);
|
|
14578
14654
|
callback.current = onDraftValidityChange;
|
|
14579
14655
|
const pending = draft.pending;
|
|
14580
|
-
(0,
|
|
14656
|
+
(0, import_react83.useEffect)(() => callback.current?.(!error, { pending }), [error, pending]);
|
|
14581
14657
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ...draft.editProps, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
14582
14658
|
import_react_aria_components25.TimeField,
|
|
14583
14659
|
{
|
|
@@ -14662,14 +14738,14 @@ var TimeFieldManifest = {
|
|
|
14662
14738
|
};
|
|
14663
14739
|
|
|
14664
14740
|
// src/DateTimePicker/DateTimePicker.tsx
|
|
14665
|
-
var
|
|
14741
|
+
var import_react84 = require("react");
|
|
14666
14742
|
var import_class_variance_authority47 = require("class-variance-authority");
|
|
14667
14743
|
var import_clsx63 = __toESM(require("clsx"), 1);
|
|
14668
14744
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
14669
14745
|
var pickerStyles = (0, import_class_variance_authority47.cva)(
|
|
14670
14746
|
"flex min-w-0 flex-col gap-2u font-sans text-oprt-base text-oprt-text focus-visible:outline-hidden focus-visible:shadow-oprt-focus"
|
|
14671
14747
|
);
|
|
14672
|
-
var DateTimePicker = (0,
|
|
14748
|
+
var DateTimePicker = (0, import_react84.forwardRef)(
|
|
14673
14749
|
({
|
|
14674
14750
|
label,
|
|
14675
14751
|
value,
|
|
@@ -14684,7 +14760,7 @@ var DateTimePicker = (0, import_react83.forwardRef)(
|
|
|
14684
14760
|
id,
|
|
14685
14761
|
className
|
|
14686
14762
|
}, ref) => {
|
|
14687
|
-
const root = (0,
|
|
14763
|
+
const root = (0, import_react84.useRef)(null);
|
|
14688
14764
|
const setRoot = useMergedRefs(root, ref);
|
|
14689
14765
|
const ids = usePartIds(["label", "zone", "error", "status"], {
|
|
14690
14766
|
id,
|
|
@@ -14692,7 +14768,7 @@ var DateTimePicker = (0, import_react83.forwardRef)(
|
|
|
14692
14768
|
});
|
|
14693
14769
|
const zoneName = typeof timeZone === "string" ? timeZone : "invalid";
|
|
14694
14770
|
const base = `${String(value)}|${String(timeZone)}`;
|
|
14695
|
-
const wall = (0,
|
|
14771
|
+
const wall = (0, import_react84.useMemo)(() => instantWallTime(value, timeZone), [value, timeZone]);
|
|
14696
14772
|
const initial = {
|
|
14697
14773
|
base,
|
|
14698
14774
|
date: wall.date,
|
|
@@ -14702,7 +14778,7 @@ var DateTimePicker = (0, import_react83.forwardRef)(
|
|
|
14702
14778
|
timeValid: true,
|
|
14703
14779
|
dirty: false
|
|
14704
14780
|
};
|
|
14705
|
-
const [draft, setDraft] = (0,
|
|
14781
|
+
const [draft, setDraft] = (0, import_react84.useState)(initial);
|
|
14706
14782
|
const current = draft.base === base ? draft : initial;
|
|
14707
14783
|
const zoneValid = validTimeZone(timeZone);
|
|
14708
14784
|
const boundsValid = (min === void 0 || validInstant(min)) && (max === void 0 || validInstant(max)) && !(min !== void 0 && max !== void 0 && min > max);
|
|
@@ -14712,11 +14788,11 @@ var DateTimePicker = (0, import_react83.forwardRef)(
|
|
|
14712
14788
|
const empty = current.date === null && current.time === null;
|
|
14713
14789
|
const checkedInstant = current.dirty ? candidate : value;
|
|
14714
14790
|
const error = !zoneValid ? "Invalid time zone. Supply an IANA time zone." : !boundsValid ? "Invalid instant bounds. Supply finite epoch milliseconds in ascending order." : !current.dirty && wall.error ? wall.error : !current.dateValid || !current.timeValid ? "Complete the date and time before applying this change." : empty ? required ? "A date and time are required." : null : !current.date || !current.time ? "Enter both a date and a time." : resolution?.status === "invalid" ? resolution.error : ambiguous && current.occurrence === null ? "Choose the earlier or later occurrence of this repeated time." : checkedInstant !== null && min !== void 0 && checkedInstant < min ? `Choose an instant at or after ${formatUtcTimestamp(min)}.` : checkedInstant !== null && max !== void 0 && checkedInstant > max ? `Choose an instant at or before ${formatUtcTimestamp(max)}.` : null;
|
|
14715
|
-
const group = (0,
|
|
14791
|
+
const group = (0, import_react84.useMemo)(() => {
|
|
14716
14792
|
const dayOf = (bound) => bound !== void 0 && zoneValid && boundsValid ? instantWallTime(bound, timeZone).date ?? void 0 : void 0;
|
|
14717
14793
|
return { required, calendar: { min: dayOf(min), max: dayOf(max) } };
|
|
14718
14794
|
}, [required, min, max, timeZone, zoneValid, boundsValid]);
|
|
14719
|
-
const restoring = (0,
|
|
14795
|
+
const restoring = (0, import_react84.useRef)(false);
|
|
14720
14796
|
const restore = useRestoreFocusOnRemoval(root, {
|
|
14721
14797
|
findTarget: () => {
|
|
14722
14798
|
restoring.current = true;
|
|
@@ -14734,9 +14810,9 @@ var DateTimePicker = (0, import_react83.forwardRef)(
|
|
|
14734
14810
|
const from = event.relatedTarget;
|
|
14735
14811
|
return from instanceof Node && event.currentTarget.contains(from);
|
|
14736
14812
|
};
|
|
14737
|
-
const callback = (0,
|
|
14813
|
+
const callback = (0, import_react84.useRef)(onDraftValidityChange);
|
|
14738
14814
|
callback.current = onDraftValidityChange;
|
|
14739
|
-
(0,
|
|
14815
|
+
(0, import_react84.useEffect)(
|
|
14740
14816
|
() => callback.current?.(!error && !current.dirty, { pending: current.dirty }),
|
|
14741
14817
|
[error, current.dirty]
|
|
14742
14818
|
);
|
|
@@ -14898,7 +14974,7 @@ var DateTimePickerManifest = {
|
|
|
14898
14974
|
};
|
|
14899
14975
|
|
|
14900
14976
|
// src/DateRangePicker/DateRangePicker.tsx
|
|
14901
|
-
var
|
|
14977
|
+
var import_react85 = require("react");
|
|
14902
14978
|
var import_class_variance_authority48 = require("class-variance-authority");
|
|
14903
14979
|
var import_clsx64 = __toESM(require("clsx"), 1);
|
|
14904
14980
|
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
@@ -14907,7 +14983,7 @@ var rangeStyles3 = (0, import_class_variance_authority48.cva)(
|
|
|
14907
14983
|
);
|
|
14908
14984
|
var REQUIRED_GROUP = { required: true };
|
|
14909
14985
|
var keyOf = (value) => value === null ? "null" : JSON.stringify([value.start, value.end]);
|
|
14910
|
-
var DateRangePicker = (0,
|
|
14986
|
+
var DateRangePicker = (0, import_react85.forwardRef)(
|
|
14911
14987
|
({
|
|
14912
14988
|
label,
|
|
14913
14989
|
value,
|
|
@@ -14923,14 +14999,14 @@ var DateRangePicker = (0, import_react84.forwardRef)(
|
|
|
14923
14999
|
id,
|
|
14924
15000
|
className
|
|
14925
15001
|
}, ref) => {
|
|
14926
|
-
const root = (0,
|
|
15002
|
+
const root = (0, import_react85.useRef)(null);
|
|
14927
15003
|
const setRoot = useMergedRefs(root, ref);
|
|
14928
15004
|
const ids = usePartIds(["label", "error", "status"], {
|
|
14929
15005
|
id,
|
|
14930
15006
|
readRendered: () => root.current?.id
|
|
14931
15007
|
});
|
|
14932
15008
|
const base = keyOf(value);
|
|
14933
|
-
const [replacement, setReplacement] = (0,
|
|
15009
|
+
const [replacement, setReplacement] = (0, import_react85.useState)({ base, generation: 0, requested: null });
|
|
14934
15010
|
if (replacement.base !== base) {
|
|
14935
15011
|
setReplacement({
|
|
14936
15012
|
base,
|
|
@@ -14952,7 +15028,7 @@ var DateRangePicker = (0, import_react84.forwardRef)(
|
|
|
14952
15028
|
startPending: false,
|
|
14953
15029
|
endPending: false
|
|
14954
15030
|
};
|
|
14955
|
-
const [draft, setDraft] = (0,
|
|
15031
|
+
const [draft, setDraft] = (0, import_react85.useState)(initial);
|
|
14956
15032
|
const current = draft.base === base ? draft : initial;
|
|
14957
15033
|
const start = parseDateOnly(current.start);
|
|
14958
15034
|
const end = parseDateOnly(current.end);
|
|
@@ -14961,9 +15037,9 @@ var DateRangePicker = (0, import_react84.forwardRef)(
|
|
|
14961
15037
|
const empty = current.start === null && current.end === null;
|
|
14962
15038
|
const pending = current.startPending || current.endPending || current.start !== (value?.start ?? null) || current.end !== (value?.end ?? null);
|
|
14963
15039
|
const error = startConfig.error || endConfig.error || (!current.startValid || !current.endValid ? "Complete both date fields before continuing." : empty ? required ? "A date range is required." : null : !start || !end ? "Enter both a start date and an end date." : start.compare(end) > 0 ? "Start date must be on or before end date." : null);
|
|
14964
|
-
const callback = (0,
|
|
15040
|
+
const callback = (0, import_react85.useRef)(onDraftValidityChange);
|
|
14965
15041
|
callback.current = onDraftValidityChange;
|
|
14966
|
-
(0,
|
|
15042
|
+
(0, import_react85.useEffect)(() => callback.current?.(!error && !pending, { pending }), [error, pending]);
|
|
14967
15043
|
const setEndpoint = (part, next) => {
|
|
14968
15044
|
if (disabled || readOnly) return;
|
|
14969
15045
|
const nextDraft = { ...current, [part]: next };
|
|
@@ -15078,7 +15154,7 @@ var DateRangePickerManifest = {
|
|
|
15078
15154
|
};
|
|
15079
15155
|
|
|
15080
15156
|
// src/FileUpload/FileUpload.tsx
|
|
15081
|
-
var
|
|
15157
|
+
var import_react86 = require("react");
|
|
15082
15158
|
var import_react_aria_components26 = require("react-aria-components");
|
|
15083
15159
|
var import_class_variance_authority49 = require("class-variance-authority");
|
|
15084
15160
|
var import_clsx65 = __toESM(require("clsx"), 1);
|
|
@@ -15106,7 +15182,7 @@ var dropStyles = (0, import_class_variance_authority49.cva)(
|
|
|
15106
15182
|
"flex min-w-0 flex-col items-start gap-2u border border-dashed border-oprt-border bg-oprt-surface-1 p-3u data-[drop-target]:border-oprt-accent data-[focus-visible]:border-oprt-border-focus data-[focus-visible]:shadow-oprt-focus"
|
|
15107
15183
|
);
|
|
15108
15184
|
var validAccept = (token) => /^\.[a-z0-9][a-z0-9._+-]*$/i.test(token) || /^(?:[a-z0-9!#$&^_.+-]+\/(?:[a-z0-9!#$&^_.+-]+|\*)|\*\/\*)$/i.test(token);
|
|
15109
|
-
var FileUpload = (0,
|
|
15185
|
+
var FileUpload = (0, import_react86.forwardRef)(
|
|
15110
15186
|
({
|
|
15111
15187
|
label,
|
|
15112
15188
|
description,
|
|
@@ -15122,29 +15198,29 @@ var FileUpload = (0, import_react85.forwardRef)(
|
|
|
15122
15198
|
"aria-describedby": describedBy,
|
|
15123
15199
|
...props
|
|
15124
15200
|
}, ref) => {
|
|
15125
|
-
const root = (0,
|
|
15201
|
+
const root = (0, import_react86.useRef)(null);
|
|
15126
15202
|
const mergedRef = useMergedRefs(root, ref);
|
|
15127
15203
|
const ids = usePartIds(["label", "description", "configuration"], {
|
|
15128
15204
|
id: props.id,
|
|
15129
15205
|
readRendered: () => root.current?.getAttribute("data-oprt-ids")
|
|
15130
15206
|
});
|
|
15131
|
-
const [issues, setIssues] = (0,
|
|
15132
|
-
const [reading, setReading] = (0,
|
|
15133
|
-
const [feedback, setFeedback] = (0,
|
|
15207
|
+
const [issues, setIssues] = (0, import_react86.useState)([]);
|
|
15208
|
+
const [reading, setReading] = (0, import_react86.useState)(false);
|
|
15209
|
+
const [feedback, setFeedback] = (0, import_react86.useState)("");
|
|
15134
15210
|
const isMounted = useIsMounted();
|
|
15135
|
-
const generation = (0,
|
|
15211
|
+
const generation = (0, import_react86.useRef)(0);
|
|
15136
15212
|
const types = accept?.map((token) => token.trim().toLowerCase()) ?? [];
|
|
15137
15213
|
const configurationError = accept?.some((token) => !validAccept(token.trim())) ? "Invalid accept configuration. Use file extensions or MIME types." : maxFiles !== void 0 && (!Number.isSafeInteger(maxFiles) || maxFiles < 1) ? "Invalid maxFiles configuration. Supply a positive integer." : maxFileSizeBytes !== void 0 && (!Number.isSafeInteger(maxFileSizeBytes) || maxFileSizeBytes < 0) ? "Invalid maxFileSizeBytes configuration. Supply a nonnegative integer." : "";
|
|
15138
15214
|
const signature = JSON.stringify([types, multiple, String(maxFiles), String(maxFileSizeBytes)]);
|
|
15139
|
-
const latest = (0,
|
|
15215
|
+
const latest = (0, import_react86.useRef)({ disabled, configurationError, signature, onFiles, onReject });
|
|
15140
15216
|
latest.current = { disabled, configurationError, signature, onFiles, onReject };
|
|
15141
|
-
(0,
|
|
15217
|
+
(0, import_react86.useEffect)(() => {
|
|
15142
15218
|
const requests = generation;
|
|
15143
15219
|
return () => {
|
|
15144
15220
|
requests.current++;
|
|
15145
15221
|
};
|
|
15146
15222
|
}, []);
|
|
15147
|
-
(0,
|
|
15223
|
+
(0, import_react86.useEffect)(() => {
|
|
15148
15224
|
generation.current++;
|
|
15149
15225
|
setReading(false);
|
|
15150
15226
|
}, [signature, disabled]);
|
|
@@ -15341,7 +15417,7 @@ var FileUploadManifest = {
|
|
|
15341
15417
|
};
|
|
15342
15418
|
|
|
15343
15419
|
// src/UploadQueue/UploadQueue.tsx
|
|
15344
|
-
var
|
|
15420
|
+
var import_react87 = require("react");
|
|
15345
15421
|
var import_class_variance_authority50 = require("class-variance-authority");
|
|
15346
15422
|
var import_clsx66 = __toESM(require("clsx"), 1);
|
|
15347
15423
|
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
@@ -15423,7 +15499,7 @@ function describeChanges(before, after) {
|
|
|
15423
15499
|
if (after.length === 0 && before.length > 0) parts.push("No files selected.");
|
|
15424
15500
|
return parts.join(" ");
|
|
15425
15501
|
}
|
|
15426
|
-
var UploadQueue = (0,
|
|
15502
|
+
var UploadQueue = (0, import_react87.forwardRef)(
|
|
15427
15503
|
({
|
|
15428
15504
|
label,
|
|
15429
15505
|
items,
|
|
@@ -15437,13 +15513,13 @@ var UploadQueue = (0, import_react86.forwardRef)(
|
|
|
15437
15513
|
"aria-labelledby": labelledBy,
|
|
15438
15514
|
...props
|
|
15439
15515
|
}, ref) => {
|
|
15440
|
-
const root = (0,
|
|
15516
|
+
const root = (0, import_react87.useRef)(null);
|
|
15441
15517
|
const ids = usePartIds(["label"], {
|
|
15442
15518
|
id: props.id,
|
|
15443
15519
|
readRendered: () => root.current?.getAttribute("data-oprt-ids")
|
|
15444
15520
|
});
|
|
15445
|
-
const rows = (0,
|
|
15446
|
-
(0,
|
|
15521
|
+
const rows = (0, import_react87.useRef)(/* @__PURE__ */ new Map());
|
|
15522
|
+
(0, import_react87.useImperativeHandle)(ref, () => root.current, []);
|
|
15447
15523
|
const invalidIdentity = hasInvalidIdentity(items);
|
|
15448
15524
|
const restoreFocus = useRestoreFocusOnRemoval(root, {
|
|
15449
15525
|
track: (element) => {
|
|
@@ -15458,17 +15534,17 @@ var UploadQueue = (0, import_react86.forwardRef)(
|
|
|
15458
15534
|
}
|
|
15459
15535
|
});
|
|
15460
15536
|
const signature = JSON.stringify(rowsOf(items));
|
|
15461
|
-
const announced = (0,
|
|
15462
|
-
const [announcement, setAnnouncement] = (0,
|
|
15463
|
-
const lastAnnouncement = (0,
|
|
15464
|
-
const repeatFrame = (0,
|
|
15465
|
-
(0,
|
|
15537
|
+
const announced = (0, import_react87.useRef)(null);
|
|
15538
|
+
const [announcement, setAnnouncement] = (0, import_react87.useState)("");
|
|
15539
|
+
const lastAnnouncement = (0, import_react87.useRef)("");
|
|
15540
|
+
const repeatFrame = (0, import_react87.useRef)(null);
|
|
15541
|
+
(0, import_react87.useEffect)(
|
|
15466
15542
|
() => () => {
|
|
15467
15543
|
if (repeatFrame.current !== null) cancelAnimationFrame(repeatFrame.current);
|
|
15468
15544
|
},
|
|
15469
15545
|
[]
|
|
15470
15546
|
);
|
|
15471
|
-
(0,
|
|
15547
|
+
(0, import_react87.useEffect)(() => {
|
|
15472
15548
|
const after = JSON.parse(signature);
|
|
15473
15549
|
const before = announced.current;
|
|
15474
15550
|
announced.current = after;
|
|
@@ -15492,7 +15568,7 @@ var UploadQueue = (0, import_react86.forwardRef)(
|
|
|
15492
15568
|
}, [signature]);
|
|
15493
15569
|
const unknownStates = items.filter((item) => !isKnownState(item.state)).map((item) => item.state);
|
|
15494
15570
|
const unknownKey = JSON.stringify(unknownStates);
|
|
15495
|
-
(0,
|
|
15571
|
+
(0, import_react87.useEffect)(() => {
|
|
15496
15572
|
if (process.env.NODE_ENV === "production") return;
|
|
15497
15573
|
for (const state of JSON.parse(unknownKey)) reportUnknownState(state);
|
|
15498
15574
|
}, [unknownKey]);
|
|
@@ -15551,7 +15627,7 @@ var UploadQueue = (0, import_react86.forwardRef)(
|
|
|
15551
15627
|
}
|
|
15552
15628
|
)
|
|
15553
15629
|
] }),
|
|
15554
|
-
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "m-0 text-oprt-text-dim", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ByteCountLabel, { value: item.sizeBytes }) }),
|
|
15630
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "m-0 text-oprt-text-dim oprt-wrap-anywhere", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ByteCountLabel, { value: item.sizeBytes }) }),
|
|
15555
15631
|
item.message && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "m-0 oprt-wrap-anywhere", children: item.message }),
|
|
15556
15632
|
transferring && (invalidProgress ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "m-0 text-oprt-error", children: "Invalid progress counts." }) : item.totalBytes === 0 ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("p", { className: "m-0 text-oprt-text-dim", children: `0${NUMBER_UNIT_SPACE}bytes total; no percentage available.` }) : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
15557
15633
|
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
@@ -15561,7 +15637,7 @@ var UploadQueue = (0, import_react86.forwardRef)(
|
|
|
15561
15637
|
...item.totalBytes !== void 0 && validLoaded ? { value: item.loadedBytes, max: item.totalBytes } : {}
|
|
15562
15638
|
}
|
|
15563
15639
|
),
|
|
15564
|
-
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("p", { className: "m-0 font-mono tabular-nums text-oprt-text-dim", children: [
|
|
15640
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("p", { className: "m-0 font-mono tabular-nums text-oprt-text-dim oprt-wrap-anywhere", children: [
|
|
15565
15641
|
validLoaded ? `${item.loadedBytes}${NUMBER_UNIT_SPACE}bytes transferred` : "Transferred byte count unavailable",
|
|
15566
15642
|
item.totalBytes !== void 0 ? ` of ${item.totalBytes}${NUMBER_UNIT_SPACE}bytes` : "; total unknown",
|
|
15567
15643
|
"."
|
|
@@ -15653,7 +15729,7 @@ var UploadQueueManifest = {
|
|
|
15653
15729
|
};
|
|
15654
15730
|
|
|
15655
15731
|
// src/AttachmentPreview/AttachmentPreview.tsx
|
|
15656
|
-
var
|
|
15732
|
+
var import_react88 = require("react");
|
|
15657
15733
|
var import_class_variance_authority51 = require("class-variance-authority");
|
|
15658
15734
|
var import_clsx67 = __toESM(require("clsx"), 1);
|
|
15659
15735
|
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
@@ -15676,7 +15752,7 @@ function safeImageSource(src) {
|
|
|
15676
15752
|
return false;
|
|
15677
15753
|
}
|
|
15678
15754
|
}
|
|
15679
|
-
var AttachmentPreview = (0,
|
|
15755
|
+
var AttachmentPreview = (0, import_react88.forwardRef)(
|
|
15680
15756
|
({
|
|
15681
15757
|
label,
|
|
15682
15758
|
attachment,
|
|
@@ -15688,14 +15764,14 @@ var AttachmentPreview = (0, import_react87.forwardRef)(
|
|
|
15688
15764
|
"aria-labelledby": labelledBy,
|
|
15689
15765
|
...props
|
|
15690
15766
|
}, ref) => {
|
|
15691
|
-
const root = (0,
|
|
15767
|
+
const root = (0, import_react88.useRef)(null);
|
|
15692
15768
|
const mergedRef = useMergedRefs(root, ref);
|
|
15693
15769
|
const ids = usePartIds(["label"], {
|
|
15694
15770
|
id: props.id,
|
|
15695
15771
|
readRendered: () => root.current?.getAttribute("data-oprt-ids")
|
|
15696
15772
|
});
|
|
15697
15773
|
const imageKey = `${attachment.id}\0${preview.kind === "image" ? preview.src : ""}`;
|
|
15698
|
-
const [imageState, setImageState] = (0,
|
|
15774
|
+
const [imageState, setImageState] = (0, import_react88.useState)({ key: imageKey, failed: false });
|
|
15699
15775
|
if (imageState.key !== imageKey) setImageState({ key: imageKey, failed: false });
|
|
15700
15776
|
const imageError = preview.kind === "image" ? !safeImageSource(preview.src) ? "Image preview source is not supported." : imageState.key === imageKey && imageState.failed ? "Image preview could not be loaded." : null : null;
|
|
15701
15777
|
return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
|
|
@@ -15725,18 +15801,21 @@ var AttachmentPreview = (0, import_react87.forwardRef)(
|
|
|
15725
15801
|
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "oprt-wrap-anywhere", children: attachment.mediaType })
|
|
15726
15802
|
] })
|
|
15727
15803
|
] }),
|
|
15728
|
-
preview.kind === "image" &&
|
|
15729
|
-
"
|
|
15730
|
-
|
|
15731
|
-
|
|
15732
|
-
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
15736
|
-
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
15804
|
+
preview.kind === "image" && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
15805
|
+
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)("p", { role: "status", className: imageError ? "m-0 text-oprt-error" : "sr-only", children: imageError }),
|
|
15806
|
+
!imageError && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
15807
|
+
"img",
|
|
15808
|
+
{
|
|
15809
|
+
src: preview.src,
|
|
15810
|
+
alt: preview.alt,
|
|
15811
|
+
onError: () => setImageState(
|
|
15812
|
+
(current) => current.key === imageKey ? { key: imageKey, failed: true } : current
|
|
15813
|
+
),
|
|
15814
|
+
className: (0, import_clsx67.default)(PREVIEW_HEIGHT, "max-w-full self-start object-contain")
|
|
15815
|
+
},
|
|
15816
|
+
imageKey
|
|
15817
|
+
)
|
|
15818
|
+
] }),
|
|
15740
15819
|
preview.kind === "text" && /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_jsx_runtime71.Fragment, { children: [
|
|
15741
15820
|
/* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
15742
15821
|
"pre",
|
|
@@ -15830,7 +15909,7 @@ var AttachmentPreviewManifest = {
|
|
|
15830
15909
|
};
|
|
15831
15910
|
|
|
15832
15911
|
// src/JobStatus/JobStatus.tsx
|
|
15833
|
-
var
|
|
15912
|
+
var import_react89 = require("react");
|
|
15834
15913
|
var import_class_variance_authority52 = require("class-variance-authority");
|
|
15835
15914
|
var import_clsx68 = __toESM(require("clsx"), 1);
|
|
15836
15915
|
|
|
@@ -15890,7 +15969,7 @@ var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
|
15890
15969
|
var jobStyles = (0, import_class_variance_authority52.cva)(
|
|
15891
15970
|
"flex min-w-0 flex-col gap-2u border border-oprt-border p-2u font-sans text-oprt-base normal-case text-oprt-text outline-hidden focus-visible:shadow-oprt-focus"
|
|
15892
15971
|
);
|
|
15893
|
-
var JobStatus = (0,
|
|
15972
|
+
var JobStatus = (0, import_react89.forwardRef)((allProps, ref) => {
|
|
15894
15973
|
const {
|
|
15895
15974
|
jobId,
|
|
15896
15975
|
label,
|
|
@@ -15916,8 +15995,8 @@ var JobStatus = (0, import_react88.forwardRef)((allProps, ref) => {
|
|
|
15916
15995
|
const canRetry = !!onRetryRequest && ["failed", "partial", "canceled"].includes(state);
|
|
15917
15996
|
const blocked = disabled || requestPending !== null;
|
|
15918
15997
|
const pendingText = requestPending ? `${requestPending === "cancel" ? "Cancellation" : "Retry"} request pending. Awaiting an application update.` : "";
|
|
15919
|
-
const [spokenText, setSpokenText] = (0,
|
|
15920
|
-
(0,
|
|
15998
|
+
const [spokenText, setSpokenText] = (0, import_react89.useState)(pendingText);
|
|
15999
|
+
(0, import_react89.useEffect)(() => {
|
|
15921
16000
|
let second = 0;
|
|
15922
16001
|
const first = requestAnimationFrame(() => {
|
|
15923
16002
|
second = requestAnimationFrame(() => setSpokenText(pendingText));
|
|
@@ -15991,7 +16070,7 @@ var JobStatus = (0, import_react88.forwardRef)((allProps, ref) => {
|
|
|
15991
16070
|
JobStatus.displayName = "JobStatus";
|
|
15992
16071
|
|
|
15993
16072
|
// src/BulkActionBar/BulkActionBar.tsx
|
|
15994
|
-
var
|
|
16073
|
+
var import_react90 = require("react");
|
|
15995
16074
|
var import_class_variance_authority53 = require("class-variance-authority");
|
|
15996
16075
|
var import_clsx69 = __toESM(require("clsx"), 1);
|
|
15997
16076
|
|
|
@@ -16038,7 +16117,7 @@ var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
|
16038
16117
|
var barStyles2 = (0, import_class_variance_authority53.cva)(
|
|
16039
16118
|
"flex min-w-0 flex-col gap-2u border border-oprt-border bg-oprt-surface-1 p-2u font-sans text-oprt-base text-oprt-text outline-hidden focus-visible:shadow-oprt-focus"
|
|
16040
16119
|
);
|
|
16041
|
-
var BulkActionBar = (0,
|
|
16120
|
+
var BulkActionBar = (0, import_react90.forwardRef)(
|
|
16042
16121
|
({
|
|
16043
16122
|
label,
|
|
16044
16123
|
selection,
|
|
@@ -16050,7 +16129,7 @@ var BulkActionBar = (0, import_react89.forwardRef)(
|
|
|
16050
16129
|
headingLevel = 3,
|
|
16051
16130
|
className
|
|
16052
16131
|
}, ref) => {
|
|
16053
|
-
const id = (0,
|
|
16132
|
+
const id = (0, import_react90.useId)();
|
|
16054
16133
|
const focus = useActionFocus(ref);
|
|
16055
16134
|
const Heading5 = `h${headingLevel}`;
|
|
16056
16135
|
const invalidSelection = selectionError(selection);
|
|
@@ -16211,7 +16290,7 @@ var BulkActionBarManifest = {
|
|
|
16211
16290
|
};
|
|
16212
16291
|
|
|
16213
16292
|
// src/BulkResults/BulkResults.tsx
|
|
16214
|
-
var
|
|
16293
|
+
var import_react91 = require("react");
|
|
16215
16294
|
var import_class_variance_authority54 = require("class-variance-authority");
|
|
16216
16295
|
var import_clsx70 = __toESM(require("clsx"), 1);
|
|
16217
16296
|
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
@@ -16234,7 +16313,7 @@ var COLUMNS = [
|
|
|
16234
16313
|
{ heading: "Details", width: "min-w-16u" },
|
|
16235
16314
|
{ heading: "Actions", width: "" }
|
|
16236
16315
|
];
|
|
16237
|
-
var BulkResults = (0,
|
|
16316
|
+
var BulkResults = (0, import_react91.forwardRef)(
|
|
16238
16317
|
({
|
|
16239
16318
|
label,
|
|
16240
16319
|
selection,
|
|
@@ -16247,10 +16326,10 @@ var BulkResults = (0, import_react90.forwardRef)(
|
|
|
16247
16326
|
className
|
|
16248
16327
|
}, ref) => {
|
|
16249
16328
|
const Heading5 = `h${headingLevel}`;
|
|
16250
|
-
const root = (0,
|
|
16251
|
-
(0,
|
|
16329
|
+
const root = (0, import_react91.useRef)(null);
|
|
16330
|
+
(0, import_react91.useImperativeHandle)(ref, () => root.current, []);
|
|
16252
16331
|
const [box, scrolls] = useScrollsSideways();
|
|
16253
|
-
const rows = (0,
|
|
16332
|
+
const rows = (0, import_react91.useRef)(/* @__PURE__ */ new Map());
|
|
16254
16333
|
const invalidSelection = selectionError(selection);
|
|
16255
16334
|
const selected = new Set(invalidSelection ? [] : selection.ids);
|
|
16256
16335
|
const invalidResults = idsError(items.map((item) => item.id)) || (items.some((item) => !selected.has(item.id)) ? "A result ID is outside the selection snapshot." : null) || (items.some(
|
|
@@ -16258,13 +16337,13 @@ var BulkResults = (0, import_react90.forwardRef)(
|
|
|
16258
16337
|
) ? "Every result needs a valid state, label, and message." : null);
|
|
16259
16338
|
const invalidRetries = idsError(pendingRetryIds) || (pendingRetryIds.some((item) => !selected.has(item)) ? "A pending retry ID is outside the selection snapshot." : null);
|
|
16260
16339
|
const resultMap = new Map((invalidResults ? [] : items).map((item) => [item.id, item]));
|
|
16261
|
-
const pending = (0,
|
|
16340
|
+
const pending = (0, import_react91.useMemo)(() => new Set(pendingRetryIds), [pendingRetryIds]);
|
|
16262
16341
|
const missing = invalidSelection ? 0 : selection.ids.filter((item) => !resultMap.has(item)).length;
|
|
16263
16342
|
const succeeded = invalidResults ? 0 : items.filter((item) => item.state === "succeeded").length;
|
|
16264
16343
|
const ids = invalidSelection ? NO_IDS : selection.ids;
|
|
16265
16344
|
const size = Number.isFinite(pageSize) && pageSize >= 1 ? Math.floor(pageSize) : DEFAULT_PAGE_SIZE;
|
|
16266
16345
|
const pageCount = Math.max(1, Math.ceil(ids.length / size));
|
|
16267
|
-
const [paging, setPaging] = (0,
|
|
16346
|
+
const [paging, setPaging] = (0, import_react91.useState)({ snapshot: selection.id, page: 1 });
|
|
16268
16347
|
const requestedPage = paging.snapshot === selection.id ? paging.page : 1;
|
|
16269
16348
|
const page = Math.min(pageCount, Math.max(1, requestedPage));
|
|
16270
16349
|
const pageIds = ids.length > size ? ids.slice((page - 1) * size, page * size) : ids;
|
|
@@ -16282,14 +16361,14 @@ var BulkResults = (0, import_react90.forwardRef)(
|
|
|
16282
16361
|
return next?.querySelector("button:not(:disabled)") ?? next?.querySelector("th") ?? root.current;
|
|
16283
16362
|
}
|
|
16284
16363
|
});
|
|
16285
|
-
const [spoken, setSpoken] = (0,
|
|
16286
|
-
const announced = (0,
|
|
16287
|
-
const latest = (0,
|
|
16364
|
+
const [spoken, setSpoken] = (0, import_react91.useState)("");
|
|
16365
|
+
const announced = (0, import_react91.useRef)(new Set(invalidRetries ? [] : pendingRetryIds));
|
|
16366
|
+
const latest = (0, import_react91.useRef)({ results: resultMap, pending: pendingRetryIds });
|
|
16288
16367
|
useIsomorphicLayoutEffect(() => {
|
|
16289
16368
|
latest.current = { results: resultMap, pending: pendingRetryIds };
|
|
16290
16369
|
});
|
|
16291
16370
|
const pendingKey = JSON.stringify(pendingRetryIds);
|
|
16292
|
-
(0,
|
|
16371
|
+
(0, import_react91.useEffect)(() => {
|
|
16293
16372
|
const current = invalidRetries ? [] : latest.current.pending;
|
|
16294
16373
|
for (const itemId of [...announced.current])
|
|
16295
16374
|
if (!current.includes(itemId)) announced.current.delete(itemId);
|
|
@@ -16511,7 +16590,7 @@ var BulkResultsManifest = {
|
|
|
16511
16590
|
};
|
|
16512
16591
|
|
|
16513
16592
|
// src/MapControls/MapControls.tsx
|
|
16514
|
-
var
|
|
16593
|
+
var import_react92 = require("react");
|
|
16515
16594
|
var import_react_aria7 = require("react-aria");
|
|
16516
16595
|
var import_class_variance_authority55 = require("class-variance-authority");
|
|
16517
16596
|
var import_clsx71 = __toESM(require("clsx"), 1);
|
|
@@ -16531,7 +16610,7 @@ var actions = [
|
|
|
16531
16610
|
{ id: "reset-north", label: "Reset north" },
|
|
16532
16611
|
{ id: "fit", label: "Fit map" }
|
|
16533
16612
|
];
|
|
16534
|
-
var MapControls = (0,
|
|
16613
|
+
var MapControls = (0, import_react92.forwardRef)(
|
|
16535
16614
|
({
|
|
16536
16615
|
label = "Map controls",
|
|
16537
16616
|
zoom = null,
|
|
@@ -16547,15 +16626,15 @@ var MapControls = (0, import_react91.forwardRef)(
|
|
|
16547
16626
|
onBlurCapture,
|
|
16548
16627
|
...props
|
|
16549
16628
|
}, ref) => {
|
|
16550
|
-
const root = (0,
|
|
16551
|
-
(0,
|
|
16552
|
-
const labelRef = (0,
|
|
16629
|
+
const root = (0, import_react92.useRef)(null);
|
|
16630
|
+
(0, import_react92.useImperativeHandle)(ref, () => root.current, []);
|
|
16631
|
+
const labelRef = (0, import_react92.useRef)(null);
|
|
16553
16632
|
const ids = usePartIds(["label"], {
|
|
16554
16633
|
id,
|
|
16555
16634
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
16556
16635
|
});
|
|
16557
16636
|
const readout = (0, import_react_aria7.useNumberFormatter)(READOUT);
|
|
16558
|
-
const buttons = (0,
|
|
16637
|
+
const buttons = (0, import_react92.useRef)(/* @__PURE__ */ new Map());
|
|
16559
16638
|
const limitsValid = Number.isFinite(minZoom) && Number.isFinite(maxZoom) && minZoom <= maxZoom;
|
|
16560
16639
|
const validZoom = typeof zoom === "number" && Number.isFinite(zoom) && limitsValid && zoom >= minZoom && zoom <= maxZoom;
|
|
16561
16640
|
const validBearing = typeof bearing === "number" && Number.isFinite(bearing) && bearing >= 0 && bearing < 360;
|
|
@@ -16655,7 +16734,7 @@ var MapControlsManifest = {
|
|
|
16655
16734
|
};
|
|
16656
16735
|
|
|
16657
16736
|
// src/LayerControl/LayerControl.tsx
|
|
16658
|
-
var
|
|
16737
|
+
var import_react93 = require("react");
|
|
16659
16738
|
var import_class_variance_authority56 = require("class-variance-authority");
|
|
16660
16739
|
var import_clsx72 = __toESM(require("clsx"), 1);
|
|
16661
16740
|
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
@@ -16665,7 +16744,7 @@ var controlStyles3 = (0, import_class_variance_authority56.cva)(
|
|
|
16665
16744
|
var rowStyles = (0, import_class_variance_authority56.cva)(
|
|
16666
16745
|
"flex min-w-0 flex-col gap-2u border border-oprt-border p-2u outline-hidden focus-visible:shadow-oprt-focus"
|
|
16667
16746
|
);
|
|
16668
|
-
var LayerControl = (0,
|
|
16747
|
+
var LayerControl = (0, import_react93.forwardRef)(
|
|
16669
16748
|
({
|
|
16670
16749
|
label = "Map layers",
|
|
16671
16750
|
layers,
|
|
@@ -16678,14 +16757,14 @@ var LayerControl = (0, import_react92.forwardRef)(
|
|
|
16678
16757
|
"aria-labelledby": labelledBy,
|
|
16679
16758
|
...props
|
|
16680
16759
|
}, ref) => {
|
|
16681
|
-
const root = (0,
|
|
16682
|
-
const labelRef = (0,
|
|
16760
|
+
const root = (0, import_react93.useRef)(null);
|
|
16761
|
+
const labelRef = (0, import_react93.useRef)(null);
|
|
16683
16762
|
const ids = usePartIds(["label"], {
|
|
16684
16763
|
id,
|
|
16685
16764
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
16686
16765
|
});
|
|
16687
|
-
const rows = (0,
|
|
16688
|
-
(0,
|
|
16766
|
+
const rows = (0, import_react93.useRef)(/* @__PURE__ */ new Map());
|
|
16767
|
+
(0, import_react93.useImperativeHandle)(ref, () => root.current, []);
|
|
16689
16768
|
const invalidIds = layers.some(
|
|
16690
16769
|
(item, index) => !item.id.trim() || layers.findIndex((other) => other.id === item.id) !== index
|
|
16691
16770
|
);
|
|
@@ -16813,7 +16892,7 @@ var LayerControl = (0, import_react92.forwardRef)(
|
|
|
16813
16892
|
{
|
|
16814
16893
|
size: "sm",
|
|
16815
16894
|
variant: "tertiary",
|
|
16816
|
-
"aria-label": `Move ${item.label}
|
|
16895
|
+
"aria-label": `Move up ${item.label}`,
|
|
16817
16896
|
disabled: !canMove(index, -1),
|
|
16818
16897
|
onClick: () => move(index, -1),
|
|
16819
16898
|
children: "Move up"
|
|
@@ -16824,7 +16903,7 @@ var LayerControl = (0, import_react92.forwardRef)(
|
|
|
16824
16903
|
{
|
|
16825
16904
|
size: "sm",
|
|
16826
16905
|
variant: "tertiary",
|
|
16827
|
-
"aria-label": `Move ${item.label}
|
|
16906
|
+
"aria-label": `Move down ${item.label}`,
|
|
16828
16907
|
disabled: !canMove(index, 1),
|
|
16829
16908
|
onClick: () => move(index, 1),
|
|
16830
16909
|
children: "Move down"
|
|
@@ -16876,7 +16955,7 @@ var LayerControlManifest = {
|
|
|
16876
16955
|
};
|
|
16877
16956
|
|
|
16878
16957
|
// src/MapLegend/MapLegend.tsx
|
|
16879
|
-
var
|
|
16958
|
+
var import_react94 = require("react");
|
|
16880
16959
|
var import_class_variance_authority57 = require("class-variance-authority");
|
|
16881
16960
|
var import_clsx73 = __toESM(require("clsx"), 1);
|
|
16882
16961
|
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
@@ -16901,9 +16980,9 @@ var symbolStyles = (0, import_class_variance_authority57.cva)("block shrink-0 fo
|
|
|
16901
16980
|
defaultVariants: { variant: "neutral", pattern: "solid" }
|
|
16902
16981
|
});
|
|
16903
16982
|
var kinds = { point: "Point", line: "Line", area: "Area" };
|
|
16904
|
-
var MapLegend = (0,
|
|
16983
|
+
var MapLegend = (0, import_react94.forwardRef)(
|
|
16905
16984
|
({ label = "Map legend", items, className, id, "aria-labelledby": labelledBy, ...props }, ref) => {
|
|
16906
|
-
const labelRef = (0,
|
|
16985
|
+
const labelRef = (0, import_react94.useRef)(null);
|
|
16907
16986
|
const ids = usePartIds(["label"], {
|
|
16908
16987
|
id,
|
|
16909
16988
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
@@ -16987,7 +17066,7 @@ var MapLegendManifest = {
|
|
|
16987
17066
|
};
|
|
16988
17067
|
|
|
16989
17068
|
// src/MapScale/MapScale.tsx
|
|
16990
|
-
var
|
|
17069
|
+
var import_react95 = require("react");
|
|
16991
17070
|
var import_react_aria8 = require("react-aria");
|
|
16992
17071
|
var import_class_variance_authority58 = require("class-variance-authority");
|
|
16993
17072
|
var import_clsx74 = __toESM(require("clsx"), 1);
|
|
@@ -17038,7 +17117,7 @@ function scale2(metersPerPixel, width, units) {
|
|
|
17038
17117
|
if (!Number.isFinite(pixels) || pixels <= 0 || pixels > width) return null;
|
|
17039
17118
|
return { pixels, distance, unit };
|
|
17040
17119
|
}
|
|
17041
|
-
var MapScale = (0,
|
|
17120
|
+
var MapScale = (0, import_react95.forwardRef)((allProps, ref) => {
|
|
17042
17121
|
const {
|
|
17043
17122
|
label = "Map scale",
|
|
17044
17123
|
metersPerPixel = null,
|
|
@@ -17052,13 +17131,13 @@ var MapScale = (0, import_react94.forwardRef)((allProps, ref) => {
|
|
|
17052
17131
|
if (process.env.NODE_ENV !== "production") {
|
|
17053
17132
|
devValidate("MapScale", MapScaleManifest.MapScale.props, { ...allProps });
|
|
17054
17133
|
}
|
|
17055
|
-
const labelRef = (0,
|
|
17134
|
+
const labelRef = (0, import_react95.useRef)(null);
|
|
17056
17135
|
const ids = usePartIds(["label"], {
|
|
17057
17136
|
id,
|
|
17058
17137
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
17059
17138
|
});
|
|
17060
17139
|
const format = (0, import_react_aria8.useNumberFormatter)(DISTANCE);
|
|
17061
|
-
const available = (0,
|
|
17140
|
+
const available = (0, import_react95.useRef)(null);
|
|
17062
17141
|
const measuredWidth = useElementWidth(available, {
|
|
17063
17142
|
initial: null
|
|
17064
17143
|
});
|
|
@@ -17105,7 +17184,7 @@ var MapScale = (0, import_react94.forwardRef)((allProps, ref) => {
|
|
|
17105
17184
|
MapScale.displayName = "MapScale";
|
|
17106
17185
|
|
|
17107
17186
|
// src/MediaFrame/MediaFrame.tsx
|
|
17108
|
-
var
|
|
17187
|
+
var import_react96 = require("react");
|
|
17109
17188
|
var import_react_aria9 = require("react-aria");
|
|
17110
17189
|
var import_class_variance_authority59 = require("class-variance-authority");
|
|
17111
17190
|
var import_clsx75 = __toESM(require("clsx"), 1);
|
|
@@ -17171,7 +17250,7 @@ var EXACT_NUMBER2 = { maximumSignificantDigits: 21 };
|
|
|
17171
17250
|
var frameStyles = (0, import_class_variance_authority59.cva)(
|
|
17172
17251
|
"flex min-w-0 flex-col border border-oprt-border bg-oprt-surface-1 font-sans text-oprt-base normal-case text-oprt-text"
|
|
17173
17252
|
);
|
|
17174
|
-
var MediaFrame = (0,
|
|
17253
|
+
var MediaFrame = (0, import_react96.forwardRef)((allProps, ref) => {
|
|
17175
17254
|
const {
|
|
17176
17255
|
label,
|
|
17177
17256
|
state,
|
|
@@ -17191,7 +17270,7 @@ var MediaFrame = (0, import_react95.forwardRef)((allProps, ref) => {
|
|
|
17191
17270
|
if (process.env.NODE_ENV !== "production") {
|
|
17192
17271
|
devValidate("MediaFrame", MediaFrameManifest.MediaFrame.props, { ...allProps });
|
|
17193
17272
|
}
|
|
17194
|
-
const labelRef = (0,
|
|
17273
|
+
const labelRef = (0, import_react96.useRef)(null);
|
|
17195
17274
|
const ids = usePartIds(["label"], {
|
|
17196
17275
|
id,
|
|
17197
17276
|
readRendered: () => labelRef.current?.id.replace(/-label$/, "")
|
|
@@ -17267,7 +17346,7 @@ MediaFrame.displayName = "MediaFrame";
|
|
|
17267
17346
|
// src/PlaybackControls/PlaybackControls.tsx
|
|
17268
17347
|
var import_class_variance_authority60 = require("class-variance-authority");
|
|
17269
17348
|
var import_clsx76 = __toESM(require("clsx"), 1);
|
|
17270
|
-
var
|
|
17349
|
+
var import_react97 = require("react");
|
|
17271
17350
|
var import_react_aria_components27 = require("react-aria-components");
|
|
17272
17351
|
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
17273
17352
|
var rootStyles8 = (0, import_class_variance_authority60.cva)(
|
|
@@ -17322,7 +17401,7 @@ function arrowDirection(key, rightToLeft) {
|
|
|
17322
17401
|
if (key === "ArrowLeft" || key === "Left") return rightToLeft ? 1 : -1;
|
|
17323
17402
|
return 0;
|
|
17324
17403
|
}
|
|
17325
|
-
var PlaybackControls = (0,
|
|
17404
|
+
var PlaybackControls = (0, import_react97.forwardRef)(
|
|
17326
17405
|
({
|
|
17327
17406
|
start,
|
|
17328
17407
|
end,
|
|
@@ -17346,12 +17425,12 @@ var PlaybackControls = (0, import_react96.forwardRef)(
|
|
|
17346
17425
|
onBlurCapture,
|
|
17347
17426
|
...props
|
|
17348
17427
|
}, ref) => {
|
|
17349
|
-
const descriptionId = (0,
|
|
17350
|
-
const root = (0,
|
|
17351
|
-
(0,
|
|
17352
|
-
const previousRef = (0,
|
|
17353
|
-
const playRef = (0,
|
|
17354
|
-
const nextRef = (0,
|
|
17428
|
+
const descriptionId = (0, import_react97.useId)();
|
|
17429
|
+
const root = (0, import_react97.useRef)(null);
|
|
17430
|
+
(0, import_react97.useImperativeHandle)(ref, () => root.current, []);
|
|
17431
|
+
const previousRef = (0, import_react97.useRef)(null);
|
|
17432
|
+
const playRef = (0, import_react97.useRef)(null);
|
|
17433
|
+
const nextRef = (0, import_react97.useRef)(null);
|
|
17355
17434
|
const { direction } = (0, import_react_aria_components27.useLocale)();
|
|
17356
17435
|
const validBounds = validTime(start) && validTime(end);
|
|
17357
17436
|
const validRange = validBounds && start < end;
|
|
@@ -17363,7 +17442,7 @@ var PlaybackControls = (0, import_react96.forwardRef)(
|
|
|
17363
17442
|
const sliderEnd = validRange ? end : 1;
|
|
17364
17443
|
const displayValue = validRange && validCursor ? Math.min(end, Math.max(start, value)) : sliderStart;
|
|
17365
17444
|
const positionText = validRange && validCursor ? formatTime(displayValue) : validBounds && start === end ? formatTime(start) : "Unknown playback position";
|
|
17366
|
-
const events = (0,
|
|
17445
|
+
const events = (0, import_react97.useMemo)(
|
|
17367
17446
|
() => [
|
|
17368
17447
|
...new Set(
|
|
17369
17448
|
(eventTimes ?? []).filter((time) => validTime(time) && time >= start && time <= end)
|
|
@@ -17621,7 +17700,7 @@ var PlaybackControlsManifest = {
|
|
|
17621
17700
|
};
|
|
17622
17701
|
|
|
17623
17702
|
// package.json
|
|
17624
|
-
var version3 = "0.1
|
|
17703
|
+
var version3 = "0.2.1";
|
|
17625
17704
|
|
|
17626
17705
|
// src/version.ts
|
|
17627
17706
|
var VERSION = version3;
|