@jsenv/navi 0.26.21 → 0.26.23
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/jsenv_navi.js +90 -86
- package/dist/jsenv_navi.js.map +14 -13
- package/package.json +1 -1
package/dist/jsenv_navi.js
CHANGED
|
@@ -71,7 +71,7 @@ const useActionStatus = (action) => {
|
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
-
installImportMetaCssBuild(import.meta);
|
|
74
|
+
installImportMetaCssBuild(import.meta);const css$H = /* css */`
|
|
75
75
|
.action_error {
|
|
76
76
|
margin-top: 0;
|
|
77
77
|
margin-bottom: 20px;
|
|
@@ -79,7 +79,7 @@ installImportMetaCssBuild(import.meta);import.meta.css = [/* css */`
|
|
|
79
79
|
background: #fdd;
|
|
80
80
|
border: 1px solid red;
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
`;
|
|
83
83
|
const renderIdleDefault = () => null;
|
|
84
84
|
const renderLoadingDefault = () => null;
|
|
85
85
|
const renderAbortedDefault = () => null;
|
|
@@ -96,6 +96,7 @@ const ActionRenderer = ({
|
|
|
96
96
|
children,
|
|
97
97
|
disabled
|
|
98
98
|
}) => {
|
|
99
|
+
import.meta.css = [css$H, "@jsenv/navi/src/action/action_renderer.jsx"];
|
|
99
100
|
if (action === undefined) {
|
|
100
101
|
throw new Error("ActionRenderer requires an action to render, but none was provided.");
|
|
101
102
|
}
|
|
@@ -16304,7 +16305,7 @@ installImportMetaCssBuild(import.meta);
|
|
|
16304
16305
|
* - Centers in viewport when no anchor element provided or anchor is too big
|
|
16305
16306
|
*/
|
|
16306
16307
|
|
|
16307
|
-
const css$
|
|
16308
|
+
const css$G = /* css */`
|
|
16308
16309
|
@layer navi {
|
|
16309
16310
|
.navi_callout {
|
|
16310
16311
|
--callout-success-color: #4caf50;
|
|
@@ -16478,7 +16479,7 @@ const openCallout = (message, {
|
|
|
16478
16479
|
showErrorStack,
|
|
16479
16480
|
debug = false
|
|
16480
16481
|
} = {}) => {
|
|
16481
|
-
import.meta.css = [css$
|
|
16482
|
+
import.meta.css = [css$G, "@jsenv/navi/src/field/validation/callout/callout.js"];
|
|
16482
16483
|
const callout = {
|
|
16483
16484
|
opened: true,
|
|
16484
16485
|
close: null,
|
|
@@ -19604,7 +19605,7 @@ const setupNetworkMonitoring = () => {
|
|
|
19604
19605
|
};
|
|
19605
19606
|
setupNetworkMonitoring();
|
|
19606
19607
|
|
|
19607
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
19608
|
+
installImportMetaCssBuild(import.meta);const css$F = /* css */`
|
|
19608
19609
|
.navi_loading_indicator_fluid_container {
|
|
19609
19610
|
position: relative;
|
|
19610
19611
|
display: flex;
|
|
@@ -19634,7 +19635,7 @@ const LoadingIndicatorFluid = ({
|
|
|
19634
19635
|
radius,
|
|
19635
19636
|
...rest
|
|
19636
19637
|
}) => {
|
|
19637
|
-
import.meta.css = [css$
|
|
19638
|
+
import.meta.css = [css$F, "@jsenv/navi/src/graphic/loading/loading_indicator_fluid.jsx"];
|
|
19638
19639
|
const ref = useRef(null);
|
|
19639
19640
|
// The container dimensions can be deduced from the ref itself as the indicator is absolute inset 0
|
|
19640
19641
|
const [containerWidth, setContainerWidth] = useState(0);
|
|
@@ -19645,16 +19646,16 @@ const LoadingIndicatorFluid = ({
|
|
|
19645
19646
|
if (!indicatorEl) {
|
|
19646
19647
|
return null;
|
|
19647
19648
|
}
|
|
19648
|
-
if (radius === undefined || radius === "inherit") {
|
|
19649
|
-
const radius = getComputedStyle(indicatorEl).borderRadius;
|
|
19650
|
-
setContainerRadius(radius);
|
|
19651
|
-
}
|
|
19652
19649
|
const {
|
|
19653
19650
|
width,
|
|
19654
19651
|
height
|
|
19655
19652
|
} = indicatorEl.getBoundingClientRect();
|
|
19656
19653
|
setContainerWidth(width);
|
|
19657
19654
|
setContainerHeight(height);
|
|
19655
|
+
if (radius === undefined || radius === "inherit") {
|
|
19656
|
+
const radius = getComputedStyle(indicatorEl).borderRadius;
|
|
19657
|
+
setContainerRadius(radius);
|
|
19658
|
+
}
|
|
19658
19659
|
let animationFrameId = null;
|
|
19659
19660
|
// Create a resize observer to detect changes in the container's dimensions
|
|
19660
19661
|
const resizeObserver = new ResizeObserver(entries => {
|
|
@@ -19775,6 +19776,7 @@ const LoadingRectangleSvg = ({
|
|
|
19775
19776
|
style: "overflow: visible",
|
|
19776
19777
|
xmlns: "http://www.w3.org/2000/svg",
|
|
19777
19778
|
"shape-rendering": "geometricPrecision",
|
|
19779
|
+
"data-radius": radius,
|
|
19778
19780
|
children: [isCircle ? jsx("circle", {
|
|
19779
19781
|
cx: margin + drawableWidth / 2,
|
|
19780
19782
|
cy: margin + drawableHeight / 2,
|
|
@@ -19821,7 +19823,7 @@ const LoadingRectangleSvg = ({
|
|
|
19821
19823
|
});
|
|
19822
19824
|
};
|
|
19823
19825
|
|
|
19824
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
19826
|
+
installImportMetaCssBuild(import.meta);const css$E = /* css */`
|
|
19825
19827
|
.navi_loading_outline_wrapper {
|
|
19826
19828
|
position: absolute;
|
|
19827
19829
|
top: var(--loading-rectangle-top, 0);
|
|
@@ -19839,7 +19841,7 @@ installImportMetaCssBuild(import.meta);const css$C = /* css */`
|
|
|
19839
19841
|
}
|
|
19840
19842
|
`;
|
|
19841
19843
|
const LoadingOutline = props => {
|
|
19842
|
-
import.meta.css = [css$
|
|
19844
|
+
import.meta.css = [css$E, "@jsenv/navi/src/graphic/loading/loading_outline.jsx"];
|
|
19843
19845
|
if (props.containerRef) {
|
|
19844
19846
|
const container = props.containerRef.current;
|
|
19845
19847
|
if (!container) {
|
|
@@ -20785,7 +20787,7 @@ const selectByTextStrings = (element, range, startText, endText) => {
|
|
|
20785
20787
|
};
|
|
20786
20788
|
|
|
20787
20789
|
installImportMetaCssBuild(import.meta);// https://jsfiddle.net/v5xzJ/4/
|
|
20788
|
-
const css$
|
|
20790
|
+
const css$D = /* css */`
|
|
20789
20791
|
@layer navi {
|
|
20790
20792
|
.navi_text {
|
|
20791
20793
|
&[data-skeleton] {
|
|
@@ -21184,7 +21186,7 @@ const TextDispatcher = props => {
|
|
|
21184
21186
|
});
|
|
21185
21187
|
};
|
|
21186
21188
|
const TextUI = props => {
|
|
21187
|
-
import.meta.css = [css$
|
|
21189
|
+
import.meta.css = [css$D, "@jsenv/navi/src/text/text.jsx"];
|
|
21188
21190
|
let {
|
|
21189
21191
|
ref,
|
|
21190
21192
|
spacing,
|
|
@@ -21356,7 +21358,7 @@ const TextWithSelectRange = ({
|
|
|
21356
21358
|
});
|
|
21357
21359
|
};
|
|
21358
21360
|
|
|
21359
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
21361
|
+
installImportMetaCssBuild(import.meta);const css$C = /* css */`
|
|
21360
21362
|
.navi_text_anchor {
|
|
21361
21363
|
vertical-align: baseline;
|
|
21362
21364
|
user-select: none;
|
|
@@ -21391,7 +21393,7 @@ const TextAnchor = ({
|
|
|
21391
21393
|
textSize,
|
|
21392
21394
|
lineLayout
|
|
21393
21395
|
}) => {
|
|
21394
|
-
import.meta.css = [css$
|
|
21396
|
+
import.meta.css = [css$C, "@jsenv/navi/src/text/text_anchor.jsx"];
|
|
21395
21397
|
const anchorRef = useRef();
|
|
21396
21398
|
const setTopOffset = (childEl, topOffset) => {
|
|
21397
21399
|
// position:relative + top shifts the element visually.
|
|
@@ -21493,7 +21495,7 @@ const computeTopOffset = ({
|
|
|
21493
21495
|
};
|
|
21494
21496
|
const charTopCanvas = document.createElement("canvas");
|
|
21495
21497
|
|
|
21496
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
21498
|
+
installImportMetaCssBuild(import.meta);const css$B = /* css */`
|
|
21497
21499
|
@layer navi {
|
|
21498
21500
|
/* Ensure data attributes from box.jsx can win to update display */
|
|
21499
21501
|
.navi_icon {
|
|
@@ -21566,7 +21568,7 @@ const Icon = ({
|
|
|
21566
21568
|
lineLayout,
|
|
21567
21569
|
...props
|
|
21568
21570
|
}) => {
|
|
21569
|
-
import.meta.css = [css$
|
|
21571
|
+
import.meta.css = [css$B, "@jsenv/navi/src/text/icon.jsx"];
|
|
21570
21572
|
const innerChildren = href ? jsx("svg", {
|
|
21571
21573
|
width: "100%",
|
|
21572
21574
|
height: "100%",
|
|
@@ -22518,7 +22520,7 @@ const useUIState = (uiStateController) => {
|
|
|
22518
22520
|
return trackedUIState;
|
|
22519
22521
|
};
|
|
22520
22522
|
|
|
22521
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
22523
|
+
installImportMetaCssBuild(import.meta);const css$A = /* css */`
|
|
22522
22524
|
@layer navi {
|
|
22523
22525
|
.navi_button {
|
|
22524
22526
|
--button-border-radius: 2px;
|
|
@@ -22804,7 +22806,7 @@ const ButtonDispatcher = props => {
|
|
|
22804
22806
|
});
|
|
22805
22807
|
};
|
|
22806
22808
|
const ButtonUI = props => {
|
|
22807
|
-
import.meta.css = [css$
|
|
22809
|
+
import.meta.css = [css$A, "@jsenv/navi/src/field/button.jsx"];
|
|
22808
22810
|
const {
|
|
22809
22811
|
ref,
|
|
22810
22812
|
readOnly,
|
|
@@ -23129,7 +23131,7 @@ const WarningSvg = () => {
|
|
|
23129
23131
|
});
|
|
23130
23132
|
};
|
|
23131
23133
|
|
|
23132
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23134
|
+
installImportMetaCssBuild(import.meta);const css$z = /* css */`
|
|
23133
23135
|
@layer navi {
|
|
23134
23136
|
.navi_message_box {
|
|
23135
23137
|
--background-color-info: var(--navi-info-color-light);
|
|
@@ -23182,7 +23184,7 @@ const MessageBox = ({
|
|
|
23182
23184
|
onClose,
|
|
23183
23185
|
...rest
|
|
23184
23186
|
}) => {
|
|
23185
|
-
import.meta.css = [css$
|
|
23187
|
+
import.meta.css = [css$z, "@jsenv/navi/src/text/message_box.jsx"];
|
|
23186
23188
|
const [hasTitleChild, setHasTitleChild] = useState(false);
|
|
23187
23189
|
const innerLeftStripe = leftStripe === undefined ? hasTitleChild : leftStripe;
|
|
23188
23190
|
if (icon === true) {
|
|
@@ -23241,7 +23243,7 @@ const MessageBoxPseudoClasses = [":-navi-status-info", ":-navi-status-success",
|
|
|
23241
23243
|
const MessageBoxStatusContext = createContext();
|
|
23242
23244
|
const MessageBoxReportTitleChildContext = createContext();
|
|
23243
23245
|
|
|
23244
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23246
|
+
installImportMetaCssBuild(import.meta);const css$y = /* css */`
|
|
23245
23247
|
.navi_message_box {
|
|
23246
23248
|
.navi_title {
|
|
23247
23249
|
margin-top: 0;
|
|
@@ -23251,7 +23253,7 @@ installImportMetaCssBuild(import.meta);const css$w = /* css */`
|
|
|
23251
23253
|
}
|
|
23252
23254
|
`;
|
|
23253
23255
|
const Title = props => {
|
|
23254
|
-
import.meta.css = [css$
|
|
23256
|
+
import.meta.css = [css$y, "@jsenv/navi/src/text/title.jsx"];
|
|
23255
23257
|
const messageBoxStatus = useContext(MessageBoxStatusContext);
|
|
23256
23258
|
const innerAs = props.as || (messageBoxStatus ? "h4" : "h1");
|
|
23257
23259
|
const titleLevel = parseInt(innerAs.slice(1));
|
|
@@ -23329,7 +23331,7 @@ const useDimColorWhen = (elementRef, shouldDim) => {
|
|
|
23329
23331
|
});
|
|
23330
23332
|
};
|
|
23331
23333
|
|
|
23332
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23334
|
+
installImportMetaCssBuild(import.meta);const css$x = /* css */`
|
|
23333
23335
|
@layer navi {
|
|
23334
23336
|
.navi_link {
|
|
23335
23337
|
--link-border-radius: unset;
|
|
@@ -23681,7 +23683,7 @@ Object.assign(PSEUDO_CLASSES, {
|
|
|
23681
23683
|
}
|
|
23682
23684
|
});
|
|
23683
23685
|
const Link = props => {
|
|
23684
|
-
import.meta.css = [css$
|
|
23686
|
+
import.meta.css = [css$x, "@jsenv/navi/src/nav/link/link.jsx"];
|
|
23685
23687
|
return renderActionableComponent(props, {
|
|
23686
23688
|
Basic: LinkBasic,
|
|
23687
23689
|
WithAction: LinkWithAction
|
|
@@ -23947,7 +23949,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
23947
23949
|
* TabList component with support for horizontal and vertical layouts
|
|
23948
23950
|
* https://dribbble.com/search/tabs
|
|
23949
23951
|
*/
|
|
23950
|
-
const css$
|
|
23952
|
+
const css$w = /* css */`
|
|
23951
23953
|
@layer navi {
|
|
23952
23954
|
.navi_nav {
|
|
23953
23955
|
--nav-border: none;
|
|
@@ -24083,7 +24085,7 @@ const Nav = ({
|
|
|
24083
24085
|
panelBorderConnection,
|
|
24084
24086
|
...props
|
|
24085
24087
|
}) => {
|
|
24086
|
-
import.meta.css = [css$
|
|
24088
|
+
import.meta.css = [css$w, "@jsenv/navi/src/nav/link/nav.jsx"];
|
|
24087
24089
|
children = toChildArray(children);
|
|
24088
24090
|
return jsx(Box, {
|
|
24089
24091
|
as: "nav",
|
|
@@ -24131,7 +24133,7 @@ const useFocusGroup = (
|
|
|
24131
24133
|
|
|
24132
24134
|
installImportMetaCssBuild(import.meta);const rightArrowPath = "M680-480L360-160l-80-80 240-240-240-240 80-80 320 320z";
|
|
24133
24135
|
const downArrowPath = "M480-280L160-600l80-80 240 240 240-240 80 80-320 320z";
|
|
24134
|
-
const css$
|
|
24136
|
+
const css$v = /* css */`
|
|
24135
24137
|
.navi_summary_marker {
|
|
24136
24138
|
width: 1em;
|
|
24137
24139
|
height: 1em;
|
|
@@ -24216,7 +24218,7 @@ const SummaryMarker = ({
|
|
|
24216
24218
|
open,
|
|
24217
24219
|
loading
|
|
24218
24220
|
}) => {
|
|
24219
|
-
import.meta.css = [css$
|
|
24221
|
+
import.meta.css = [css$v, "@jsenv/navi/src/field/details/summary_marker.jsx"];
|
|
24220
24222
|
const showLoading = useDebounceTrue(loading, 300);
|
|
24221
24223
|
const mountedRef = useRef(false);
|
|
24222
24224
|
const prevOpenRef = useRef(open);
|
|
@@ -24270,7 +24272,7 @@ const SummaryMarker = ({
|
|
|
24270
24272
|
});
|
|
24271
24273
|
};
|
|
24272
24274
|
|
|
24273
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24275
|
+
installImportMetaCssBuild(import.meta);const css$u = /* css */`
|
|
24274
24276
|
.navi_details {
|
|
24275
24277
|
position: relative;
|
|
24276
24278
|
z-index: 1;
|
|
@@ -24307,7 +24309,7 @@ installImportMetaCssBuild(import.meta);const css$s = /* css */`
|
|
|
24307
24309
|
}
|
|
24308
24310
|
`;
|
|
24309
24311
|
const Details = props => {
|
|
24310
|
-
import.meta.css = [css$
|
|
24312
|
+
import.meta.css = [css$u, "@jsenv/navi/src/field/details/details.jsx"];
|
|
24311
24313
|
const {
|
|
24312
24314
|
value = "on",
|
|
24313
24315
|
persists
|
|
@@ -24622,7 +24624,7 @@ const fieldPropSet = new Set([
|
|
|
24622
24624
|
"data-testid",
|
|
24623
24625
|
]);
|
|
24624
24626
|
|
|
24625
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24627
|
+
installImportMetaCssBuild(import.meta);const css$t = /* css */`
|
|
24626
24628
|
@layer navi {
|
|
24627
24629
|
label {
|
|
24628
24630
|
&[data-interactive] {
|
|
@@ -24640,7 +24642,7 @@ installImportMetaCssBuild(import.meta);const css$r = /* css */`
|
|
|
24640
24642
|
}
|
|
24641
24643
|
`;
|
|
24642
24644
|
const Label = props => {
|
|
24643
|
-
import.meta.css = [css$
|
|
24645
|
+
import.meta.css = [css$t, "@jsenv/navi/src/field/label.jsx"];
|
|
24644
24646
|
const {
|
|
24645
24647
|
readOnly,
|
|
24646
24648
|
disabled,
|
|
@@ -24690,7 +24692,7 @@ const reportDisabledToLabel = value => {
|
|
|
24690
24692
|
reportDisabled?.(value);
|
|
24691
24693
|
};
|
|
24692
24694
|
|
|
24693
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24695
|
+
installImportMetaCssBuild(import.meta);const css$s = /* css */`
|
|
24694
24696
|
@layer navi {
|
|
24695
24697
|
.navi_checkbox {
|
|
24696
24698
|
--margin: 3px 3px 3px 4px;
|
|
@@ -25082,7 +25084,7 @@ const InputCheckboxDispatcher = props => {
|
|
|
25082
25084
|
});
|
|
25083
25085
|
};
|
|
25084
25086
|
const InputCheckboxUI = props => {
|
|
25085
|
-
import.meta.css = [css$
|
|
25087
|
+
import.meta.css = [css$s, "@jsenv/navi/src/field/input_checkbox.jsx"];
|
|
25086
25088
|
const {
|
|
25087
25089
|
ref,
|
|
25088
25090
|
/* eslint-disable no-unused-vars */
|
|
@@ -25483,7 +25485,7 @@ forwardRef((props, ref) => {
|
|
|
25483
25485
|
});
|
|
25484
25486
|
});
|
|
25485
25487
|
|
|
25486
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
25488
|
+
installImportMetaCssBuild(import.meta);const css$r = /* css */`
|
|
25487
25489
|
@layer navi {
|
|
25488
25490
|
.navi_radio {
|
|
25489
25491
|
--margin: 3px 3px 0 5px;
|
|
@@ -25837,7 +25839,7 @@ const InputRadioDispatcher = props => {
|
|
|
25837
25839
|
});
|
|
25838
25840
|
};
|
|
25839
25841
|
const InputRadioUI = props => {
|
|
25840
|
-
import.meta.css = [css$
|
|
25842
|
+
import.meta.css = [css$r, "@jsenv/navi/src/field/input_radio.jsx"];
|
|
25841
25843
|
const {
|
|
25842
25844
|
ref,
|
|
25843
25845
|
/* eslint-disable no-unused-vars */
|
|
@@ -26067,7 +26069,7 @@ const InputRadioWithAction = () => {
|
|
|
26067
26069
|
throw new Error(`<Input type="radio" /> with an action make no sense. Use <RadioList action={something} /> instead`);
|
|
26068
26070
|
};
|
|
26069
26071
|
|
|
26070
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
26072
|
+
installImportMetaCssBuild(import.meta);const css$q = /* css */`
|
|
26071
26073
|
@layer navi {
|
|
26072
26074
|
.navi_input_range {
|
|
26073
26075
|
--border-radius: 6px;
|
|
@@ -26329,7 +26331,7 @@ const InputRangeDispatcher = props => {
|
|
|
26329
26331
|
});
|
|
26330
26332
|
};
|
|
26331
26333
|
const InputRangeUI = props => {
|
|
26332
|
-
import.meta.css = [css$
|
|
26334
|
+
import.meta.css = [css$q, "@jsenv/navi/src/field/input_range.jsx"];
|
|
26333
26335
|
const {
|
|
26334
26336
|
ref,
|
|
26335
26337
|
onInput,
|
|
@@ -26606,7 +26608,7 @@ const SearchSvg = () => jsx("svg", {
|
|
|
26606
26608
|
})
|
|
26607
26609
|
});
|
|
26608
26610
|
|
|
26609
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
26611
|
+
installImportMetaCssBuild(import.meta);const css$p = /* css */`
|
|
26610
26612
|
@layer navi {
|
|
26611
26613
|
.navi_separator {
|
|
26612
26614
|
--size: 1px;
|
|
@@ -26646,7 +26648,7 @@ const Separator = ({
|
|
|
26646
26648
|
vertical,
|
|
26647
26649
|
...props
|
|
26648
26650
|
}) => {
|
|
26649
|
-
import.meta.css = [css$
|
|
26651
|
+
import.meta.css = [css$p, "@jsenv/navi/src/layout/separator.jsx"];
|
|
26650
26652
|
return jsx(Box, {
|
|
26651
26653
|
as: vertical ? "span" : "hr",
|
|
26652
26654
|
...props,
|
|
@@ -27058,7 +27060,7 @@ const RenderWindowContext = createContext(null);
|
|
|
27058
27060
|
// Carries the separator element/function down to each ListItem so separators
|
|
27059
27061
|
// are only rendered between items that actually mount (post-filter, post-window).
|
|
27060
27062
|
const SeparatorContext = createContext(null);
|
|
27061
|
-
const css$
|
|
27063
|
+
const css$o = /* css */`
|
|
27062
27064
|
@layer navi {
|
|
27063
27065
|
.navi_list_container {
|
|
27064
27066
|
--list-outline-width: 1px;
|
|
@@ -27485,7 +27487,7 @@ const ListDispatcher = props => {
|
|
|
27485
27487
|
});
|
|
27486
27488
|
};
|
|
27487
27489
|
const ListUI = props => {
|
|
27488
|
-
import.meta.css = [css$
|
|
27490
|
+
import.meta.css = [css$o, "@jsenv/navi/src/field/list/list.jsx"];
|
|
27489
27491
|
const {
|
|
27490
27492
|
ref,
|
|
27491
27493
|
renderBudget = RENDER_BUDGET_DEFAULT,
|
|
@@ -28964,7 +28966,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
28964
28966
|
* - <InputCheckbox /> for type="checkbox"
|
|
28965
28967
|
* - <InputRadio /> for type="radio"
|
|
28966
28968
|
*/
|
|
28967
|
-
const css$
|
|
28969
|
+
const css$n = /* css */`
|
|
28968
28970
|
@layer navi {
|
|
28969
28971
|
.navi_input {
|
|
28970
28972
|
--border-radius: 2px;
|
|
@@ -29218,7 +29220,7 @@ const InputTextualDispatcher = props => {
|
|
|
29218
29220
|
};
|
|
29219
29221
|
const InputNativeContext = createContext(null);
|
|
29220
29222
|
const InputTextualUI = props => {
|
|
29221
|
-
import.meta.css = [css$
|
|
29223
|
+
import.meta.css = [css$n, "@jsenv/navi/src/field/input_textual.jsx"];
|
|
29222
29224
|
const {
|
|
29223
29225
|
ref,
|
|
29224
29226
|
type,
|
|
@@ -29839,7 +29841,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
29839
29841
|
* This means an editable thing MUST have a parent with position relative that wraps the content and the eventual editable input
|
|
29840
29842
|
*
|
|
29841
29843
|
*/
|
|
29842
|
-
const css$
|
|
29844
|
+
const css$m = /* css */`
|
|
29843
29845
|
.navi_editable_wrapper {
|
|
29844
29846
|
--inset-top: 0px;
|
|
29845
29847
|
--inset-right: 0px;
|
|
@@ -29888,7 +29890,7 @@ const useEditionController = () => {
|
|
|
29888
29890
|
};
|
|
29889
29891
|
};
|
|
29890
29892
|
const Editable = props => {
|
|
29891
|
-
import.meta.css = [css$
|
|
29893
|
+
import.meta.css = [css$m, "@jsenv/navi/src/field/edition/editable.jsx"];
|
|
29892
29894
|
let {
|
|
29893
29895
|
children,
|
|
29894
29896
|
action,
|
|
@@ -30302,7 +30304,7 @@ const FormWithAction = props => {
|
|
|
30302
30304
|
// form.dispatchEvent(customEvent);
|
|
30303
30305
|
// };
|
|
30304
30306
|
|
|
30305
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30307
|
+
installImportMetaCssBuild(import.meta);const css$l = /* css */`
|
|
30306
30308
|
.navi_group {
|
|
30307
30309
|
--border-width: 1px;
|
|
30308
30310
|
|
|
@@ -30399,7 +30401,7 @@ const Group = ({
|
|
|
30399
30401
|
vertical = row,
|
|
30400
30402
|
...props
|
|
30401
30403
|
}) => {
|
|
30402
|
-
import.meta.css = [css$
|
|
30404
|
+
import.meta.css = [css$l, "@jsenv/navi/src/field/group.jsx"];
|
|
30403
30405
|
if (typeof borderWidth === "string") {
|
|
30404
30406
|
borderWidth = parseFloat(borderWidth);
|
|
30405
30407
|
}
|
|
@@ -30590,7 +30592,7 @@ const useCleanup = () => {
|
|
|
30590
30592
|
return cleanupMethods;
|
|
30591
30593
|
};
|
|
30592
30594
|
|
|
30593
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30595
|
+
installImportMetaCssBuild(import.meta);const css$k = /* css */`
|
|
30594
30596
|
.navi_dialog {
|
|
30595
30597
|
&[open] {
|
|
30596
30598
|
display: flex;
|
|
@@ -30603,7 +30605,7 @@ installImportMetaCssBuild(import.meta);const css$i = /* css */`
|
|
|
30603
30605
|
}
|
|
30604
30606
|
`;
|
|
30605
30607
|
const Dialog = props => {
|
|
30606
|
-
import.meta.css = [css$
|
|
30608
|
+
import.meta.css = [css$k, "@jsenv/navi/src/popup/dialog.jsx"];
|
|
30607
30609
|
const {
|
|
30608
30610
|
children,
|
|
30609
30611
|
scrollTrap,
|
|
@@ -30714,7 +30716,7 @@ const requestDialogClose = (popoverElement, {
|
|
|
30714
30716
|
});
|
|
30715
30717
|
};
|
|
30716
30718
|
|
|
30717
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30719
|
+
installImportMetaCssBuild(import.meta);const css$j = /* css */`
|
|
30718
30720
|
.navi_popover_backdrop {
|
|
30719
30721
|
position: fixed;
|
|
30720
30722
|
inset: 0;
|
|
@@ -30730,7 +30732,7 @@ installImportMetaCssBuild(import.meta);const css$h = /* css */`
|
|
|
30730
30732
|
}
|
|
30731
30733
|
`;
|
|
30732
30734
|
const Popover = props => {
|
|
30733
|
-
import.meta.css = [css$
|
|
30735
|
+
import.meta.css = [css$j, "@jsenv/navi/src/popup/popover.jsx"];
|
|
30734
30736
|
const {
|
|
30735
30737
|
scrollTrap,
|
|
30736
30738
|
pointerTrap,
|
|
@@ -30932,7 +30934,7 @@ const requestPopoverClose = (popoverElement, {
|
|
|
30932
30934
|
});
|
|
30933
30935
|
};
|
|
30934
30936
|
|
|
30935
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30937
|
+
installImportMetaCssBuild(import.meta);const css$i = /* css */`
|
|
30936
30938
|
@layer navi {
|
|
30937
30939
|
.navi_select {
|
|
30938
30940
|
--select-border-radius: 2px;
|
|
@@ -31280,7 +31282,7 @@ const SelectDispatcher = props => {
|
|
|
31280
31282
|
});
|
|
31281
31283
|
};
|
|
31282
31284
|
const SelectUI = props => {
|
|
31283
|
-
import.meta.css = [css$
|
|
31285
|
+
import.meta.css = [css$i, "@jsenv/navi/src/field/select.jsx"];
|
|
31284
31286
|
const {
|
|
31285
31287
|
placeholder = "Select…",
|
|
31286
31288
|
trigger,
|
|
@@ -32472,7 +32474,7 @@ const Z_INDEX_DROP_PREVIEW = Z_INDEX_STICKY_CORNER + 1;
|
|
|
32472
32474
|
|
|
32473
32475
|
const Z_INDEX_TABLE_UI = Z_INDEX_STICKY_CORNER + 1;
|
|
32474
32476
|
|
|
32475
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
32477
|
+
installImportMetaCssBuild(import.meta);const css$h = /* css */`
|
|
32476
32478
|
.navi_table_drag_clone_container {
|
|
32477
32479
|
position: absolute;
|
|
32478
32480
|
top: var(--table-visual-top);
|
|
@@ -32652,7 +32654,7 @@ const moveItem = (array, indexA, indexB) => {
|
|
|
32652
32654
|
return newArray;
|
|
32653
32655
|
};
|
|
32654
32656
|
const TableDragCloneContainer = forwardRef((props, ref) => {
|
|
32655
|
-
import.meta.css = [css$
|
|
32657
|
+
import.meta.css = [css$h, "@jsenv/navi/src/field/table/drag/table_drag.jsx"];
|
|
32656
32658
|
const {
|
|
32657
32659
|
tableId
|
|
32658
32660
|
} = props;
|
|
@@ -32950,7 +32952,7 @@ installImportMetaCssBuild(import.meta);const ROW_MIN_HEIGHT = 30;
|
|
|
32950
32952
|
const ROW_MAX_HEIGHT = 100;
|
|
32951
32953
|
const COLUMN_MIN_WIDTH = 50;
|
|
32952
32954
|
const COLUMN_MAX_WIDTH = 500;
|
|
32953
|
-
const css$
|
|
32955
|
+
const css$g = /* css */`
|
|
32954
32956
|
@layer navi {
|
|
32955
32957
|
.navi_table {
|
|
32956
32958
|
--table-resizer-handle-color: #063b7c;
|
|
@@ -33110,7 +33112,7 @@ const css$e = /* css */`
|
|
|
33110
33112
|
|
|
33111
33113
|
// Column resize components
|
|
33112
33114
|
const TableColumnResizer = props => {
|
|
33113
|
-
import.meta.css = [css$
|
|
33115
|
+
import.meta.css = [css$g, "@jsenv/navi/src/field/table/resize/table_resize.jsx"];
|
|
33114
33116
|
const defaultRef = useRef();
|
|
33115
33117
|
const ref = props.ref || defaultRef;
|
|
33116
33118
|
return jsxs("div", {
|
|
@@ -33577,7 +33579,7 @@ const findPreviousTableRow = currentRow => {
|
|
|
33577
33579
|
return currentIndex > 0 ? allRows[currentIndex - 1] : null;
|
|
33578
33580
|
};
|
|
33579
33581
|
|
|
33580
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
33582
|
+
installImportMetaCssBuild(import.meta);const css$f = /* css */`
|
|
33581
33583
|
@layer navi {
|
|
33582
33584
|
.navi_table {
|
|
33583
33585
|
--selection-border-color: var(--navi-selection-border-color, #0078d4);
|
|
@@ -33679,7 +33681,7 @@ const useTableSelectionController = ({
|
|
|
33679
33681
|
onSelectionChange,
|
|
33680
33682
|
selectionColor
|
|
33681
33683
|
}) => {
|
|
33682
|
-
import.meta.css = [css$
|
|
33684
|
+
import.meta.css = [css$f, "@jsenv/navi/src/field/table/selection/table_selection.jsx"];
|
|
33683
33685
|
const selectionController = useSelectionController({
|
|
33684
33686
|
elementRef: tableRef,
|
|
33685
33687
|
layout: "grid",
|
|
@@ -34150,7 +34152,7 @@ const useTableStickyContextValue = ({
|
|
|
34150
34152
|
};
|
|
34151
34153
|
|
|
34152
34154
|
installImportMetaCssBuild(import.meta);// TODO: sticky left/top frontier should likely use "followPosition"
|
|
34153
|
-
const css$
|
|
34155
|
+
const css$e = /* css */`
|
|
34154
34156
|
@layer navi {
|
|
34155
34157
|
.navi_table {
|
|
34156
34158
|
--sticky-frontier-color: #c0c0c0;
|
|
@@ -34393,7 +34395,7 @@ const css$c = /* css */`
|
|
|
34393
34395
|
const TableStickyFrontier = ({
|
|
34394
34396
|
tableRef
|
|
34395
34397
|
}) => {
|
|
34396
|
-
import.meta.css = [css$
|
|
34398
|
+
import.meta.css = [css$e, "@jsenv/navi/src/field/table/sticky/table_sticky.jsx"];
|
|
34397
34399
|
const stickyLeftFrontierGhostRef = useRef();
|
|
34398
34400
|
const stickyLeftFrontierPreviewRef = useRef();
|
|
34399
34401
|
const stickyTopFrontierGhostRef = useRef();
|
|
@@ -34622,7 +34624,7 @@ const initMoveStickyFrontierViaPointer = (pointerdownEvent, {
|
|
|
34622
34624
|
* inset 0 -1px 0 0 color; // Bottom border
|
|
34623
34625
|
*/
|
|
34624
34626
|
|
|
34625
|
-
const css$
|
|
34627
|
+
const css$d = /* css */ `
|
|
34626
34628
|
.navi_table_root {
|
|
34627
34629
|
position: relative;
|
|
34628
34630
|
max-width: var(--table-max-width, none);
|
|
@@ -34825,7 +34827,7 @@ const css$b = /* css */ `
|
|
|
34825
34827
|
}
|
|
34826
34828
|
`;
|
|
34827
34829
|
|
|
34828
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
34830
|
+
installImportMetaCssBuild(import.meta);const css$c = /* css */`
|
|
34829
34831
|
.navi_table_ui {
|
|
34830
34832
|
position: fixed;
|
|
34831
34833
|
inset: 0;
|
|
@@ -34836,7 +34838,7 @@ installImportMetaCssBuild(import.meta);const css$a = /* css */`
|
|
|
34836
34838
|
}
|
|
34837
34839
|
`;
|
|
34838
34840
|
const TableUI = forwardRef((props, ref) => {
|
|
34839
|
-
import.meta.css = [css$
|
|
34841
|
+
import.meta.css = [css$c, "@jsenv/navi/src/field/table/table_ui.jsx"];
|
|
34840
34842
|
const {
|
|
34841
34843
|
tableRef,
|
|
34842
34844
|
tableId,
|
|
@@ -34942,7 +34944,7 @@ const RowIndexContext = createContext();
|
|
|
34942
34944
|
const TableSectionContext = createContext();
|
|
34943
34945
|
const useIsInTableHead = () => useContext(TableSectionContext) === "head";
|
|
34944
34946
|
const Table = props => {
|
|
34945
|
-
import.meta.css = [css$
|
|
34947
|
+
import.meta.css = [css$d, "@jsenv/navi/src/field/table/table.jsx"];
|
|
34946
34948
|
const tableDefaultRef = useRef();
|
|
34947
34949
|
const tableDefaultId = `table-${useId()}`;
|
|
34948
34950
|
const {
|
|
@@ -35763,7 +35765,7 @@ const normalizeKey = (key) => {
|
|
|
35763
35765
|
return key;
|
|
35764
35766
|
};
|
|
35765
35767
|
|
|
35766
|
-
installImportMetaCssBuild(import.meta);
|
|
35768
|
+
installImportMetaCssBuild(import.meta);const css$b = /* css */`
|
|
35767
35769
|
.navi_shortcut_container[data-visually-hidden] {
|
|
35768
35770
|
/* Visually hidden container - doesn't affect layout */
|
|
35769
35771
|
position: absolute;
|
|
@@ -35797,10 +35799,11 @@ installImportMetaCssBuild(import.meta);import.meta.css = [/* css */`
|
|
|
35797
35799
|
opacity: 0;
|
|
35798
35800
|
pointer-events: none;
|
|
35799
35801
|
}
|
|
35800
|
-
|
|
35802
|
+
`;
|
|
35801
35803
|
const ActiveKeyboardShortcuts = ({
|
|
35802
35804
|
visible
|
|
35803
35805
|
}) => {
|
|
35806
|
+
import.meta.css = [css$b, "@jsenv/navi/src/keyboard/active_keyboard_shortcuts.jsx"];
|
|
35804
35807
|
const activeShortcuts = activeShortcutsSignal.value;
|
|
35805
35808
|
return jsx("div", {
|
|
35806
35809
|
className: "navi_shortcut_container",
|
|
@@ -35839,7 +35842,7 @@ const KeyboardShortcutAriaElement = ({
|
|
|
35839
35842
|
});
|
|
35840
35843
|
};
|
|
35841
35844
|
|
|
35842
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
35845
|
+
installImportMetaCssBuild(import.meta);const css$a = /* css */`
|
|
35843
35846
|
@layer navi {
|
|
35844
35847
|
.navi_clipboard_container {
|
|
35845
35848
|
--height: 1.5em;
|
|
@@ -35871,7 +35874,7 @@ const ButtonCopyToClipboard = ({
|
|
|
35871
35874
|
children,
|
|
35872
35875
|
...props
|
|
35873
35876
|
}) => {
|
|
35874
|
-
import.meta.css = [css$
|
|
35877
|
+
import.meta.css = [css$a, "@jsenv/navi/src/field/button_copy_to_clipboard.jsx"];
|
|
35875
35878
|
const [copied, setCopied] = useState(false);
|
|
35876
35879
|
const renderedRef = useRef();
|
|
35877
35880
|
useEffect(() => {
|
|
@@ -35952,7 +35955,7 @@ const Address = ({
|
|
|
35952
35955
|
});
|
|
35953
35956
|
};
|
|
35954
35957
|
|
|
35955
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
35958
|
+
installImportMetaCssBuild(import.meta);const css$9 = /* css */`
|
|
35956
35959
|
@layer navi {
|
|
35957
35960
|
}
|
|
35958
35961
|
.navi_badge {
|
|
@@ -35986,7 +35989,7 @@ const Badge = ({
|
|
|
35986
35989
|
className,
|
|
35987
35990
|
...props
|
|
35988
35991
|
}) => {
|
|
35989
|
-
import.meta.css = [css$
|
|
35992
|
+
import.meta.css = [css$9, "@jsenv/navi/src/text/badge.jsx"];
|
|
35990
35993
|
const defaultRef = useRef();
|
|
35991
35994
|
const ref = props.ref || defaultRef;
|
|
35992
35995
|
useAccentColorAttributes(ref, null);
|
|
@@ -36076,7 +36079,7 @@ const formatNumber = (value, { lang } = {}) => {
|
|
|
36076
36079
|
return new Intl.NumberFormat(lang).format(value);
|
|
36077
36080
|
};
|
|
36078
36081
|
|
|
36079
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36082
|
+
installImportMetaCssBuild(import.meta);const css$8 = /* css */`
|
|
36080
36083
|
@layer navi {
|
|
36081
36084
|
}
|
|
36082
36085
|
.navi_text.navi_badge_count {
|
|
@@ -36189,7 +36192,7 @@ const BadgeCount = ({
|
|
|
36189
36192
|
lineLayout,
|
|
36190
36193
|
...props
|
|
36191
36194
|
}) => {
|
|
36192
|
-
import.meta.css = [css$
|
|
36195
|
+
import.meta.css = [css$8, "@jsenv/navi/src/text/badge_count.jsx"];
|
|
36193
36196
|
const defaultRef = useRef();
|
|
36194
36197
|
const ref = props.ref || defaultRef;
|
|
36195
36198
|
useAccentColorAttributes(ref, null);
|
|
@@ -36328,7 +36331,7 @@ const BadgeCountCircle = ({
|
|
|
36328
36331
|
});
|
|
36329
36332
|
};
|
|
36330
36333
|
|
|
36331
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36334
|
+
installImportMetaCssBuild(import.meta);const css$7 = /* css */`
|
|
36332
36335
|
@layer navi {
|
|
36333
36336
|
.navi_caption {
|
|
36334
36337
|
--color: #6b7280;
|
|
@@ -36349,7 +36352,7 @@ const Caption = ({
|
|
|
36349
36352
|
className,
|
|
36350
36353
|
...rest
|
|
36351
36354
|
}) => {
|
|
36352
|
-
import.meta.css = [css$
|
|
36355
|
+
import.meta.css = [css$7, "@jsenv/navi/src/text/caption.jsx"];
|
|
36353
36356
|
return jsx(Text, {
|
|
36354
36357
|
as: "small",
|
|
36355
36358
|
size: "0.8em" // We use em to be relative to the parent (we want to be smaller than the surrounding text)
|
|
@@ -36826,7 +36829,7 @@ const interpolate = (template, values) => {
|
|
|
36826
36829
|
});
|
|
36827
36830
|
};
|
|
36828
36831
|
|
|
36829
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36832
|
+
installImportMetaCssBuild(import.meta);const css$6 = /* css */`
|
|
36830
36833
|
@layer navi {
|
|
36831
36834
|
.navi_quantity {
|
|
36832
36835
|
--unit-color: color-mix(in srgb, currentColor 50%, white);
|
|
@@ -36931,7 +36934,7 @@ const Quantity = ({
|
|
|
36931
36934
|
bold = true,
|
|
36932
36935
|
...props
|
|
36933
36936
|
}) => {
|
|
36934
|
-
import.meta.css = [css$
|
|
36937
|
+
import.meta.css = [css$6, "@jsenv/navi/src/text/quantity.jsx"];
|
|
36935
36938
|
const value = parseQuantityValue(children);
|
|
36936
36939
|
const valueRounded = integer && typeof value === "number" ? Math.round(value) : value;
|
|
36937
36940
|
const valueFormatted = typeof valueRounded === "number" ? formatNumber(valueRounded, {
|
|
@@ -37020,7 +37023,7 @@ const parseQuantityValue = children => {
|
|
|
37020
37023
|
return Number.isNaN(parsed) ? children : parsed;
|
|
37021
37024
|
};
|
|
37022
37025
|
|
|
37023
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
37026
|
+
installImportMetaCssBuild(import.meta);const css$5 = /* css */`
|
|
37024
37027
|
@layer navi {
|
|
37025
37028
|
.navi_meter {
|
|
37026
37029
|
--loader-color: var(--navi-loader-color);
|
|
@@ -37158,7 +37161,7 @@ const Meter = ({
|
|
|
37158
37161
|
style,
|
|
37159
37162
|
...rest
|
|
37160
37163
|
}) => {
|
|
37161
|
-
import.meta.css = [css$
|
|
37164
|
+
import.meta.css = [css$5, "@jsenv/navi/src/text/meter.jsx"];
|
|
37162
37165
|
const defaultRef = useRef();
|
|
37163
37166
|
const ref = rest.ref || defaultRef;
|
|
37164
37167
|
value = Number(value);
|
|
@@ -37285,7 +37288,7 @@ const Paragraph = props => {
|
|
|
37285
37288
|
});
|
|
37286
37289
|
};
|
|
37287
37290
|
|
|
37288
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
37291
|
+
installImportMetaCssBuild(import.meta);const css$4 = /* css */`
|
|
37289
37292
|
@keyframes navi_image_shimmer {
|
|
37290
37293
|
0% {
|
|
37291
37294
|
background-position: -200% 0;
|
|
@@ -37340,7 +37343,7 @@ const Image = ({
|
|
|
37340
37343
|
placeholderDark = false,
|
|
37341
37344
|
...rest
|
|
37342
37345
|
}) => {
|
|
37343
|
-
import.meta.css = [css$
|
|
37346
|
+
import.meta.css = [css$4, "@jsenv/navi/src/graphic/image.jsx"];
|
|
37344
37347
|
const loadedRef = useRef();
|
|
37345
37348
|
let resolvedPlaceholder = placeholderColor;
|
|
37346
37349
|
if (resolvedPlaceholder === undefined) {
|
|
@@ -37423,7 +37426,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
37423
37426
|
* @param {ReactNode[]} props.children - SVG elements (first is base, rest are overlays)
|
|
37424
37427
|
* @returns {ReactElement} A composed SVG with all elements properly masked
|
|
37425
37428
|
*/
|
|
37426
|
-
|
|
37429
|
+
const css$3 = /* css */`
|
|
37427
37430
|
.svg_mask_content * {
|
|
37428
37431
|
color: black !important;
|
|
37429
37432
|
opacity: 1 !important;
|
|
@@ -37432,11 +37435,12 @@ import.meta.css = [/* css */`
|
|
|
37432
37435
|
stroke: black !important;
|
|
37433
37436
|
stroke-opacity: 1 !important;
|
|
37434
37437
|
}
|
|
37435
|
-
|
|
37438
|
+
`;
|
|
37436
37439
|
const SVGMaskOverlay = ({
|
|
37437
37440
|
viewBox,
|
|
37438
37441
|
children
|
|
37439
37442
|
}) => {
|
|
37443
|
+
import.meta.css = [css$3, "@jsenv/navi/src/graphic/svg_mask_overlay.jsx"];
|
|
37440
37444
|
if (!Array.isArray(children)) {
|
|
37441
37445
|
return children;
|
|
37442
37446
|
}
|