@jsenv/navi 0.26.22 → 0.26.24
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 -83
- package/dist/jsenv_navi.js.map +16 -17
- 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);
|
|
@@ -19652,7 +19653,11 @@ const LoadingIndicatorFluid = ({
|
|
|
19652
19653
|
setContainerWidth(width);
|
|
19653
19654
|
setContainerHeight(height);
|
|
19654
19655
|
if (radius === undefined || radius === "inherit") {
|
|
19655
|
-
const
|
|
19656
|
+
const parentEl = indicatorEl.parentElement;
|
|
19657
|
+
// Prefer the inline style (always available, even before layout is computed).
|
|
19658
|
+
// Fall back to computed longhands — getComputedStyle shorthand may return ""
|
|
19659
|
+
// if the browser hasn't resolved the layout yet.
|
|
19660
|
+
const radius = parentEl.style.borderRadius || parentEl.style.borderTopLeftRadius || getComputedStyle(parentEl).borderTopLeftRadius || "0px";
|
|
19656
19661
|
setContainerRadius(radius);
|
|
19657
19662
|
}
|
|
19658
19663
|
let animationFrameId = null;
|
|
@@ -19822,7 +19827,7 @@ const LoadingRectangleSvg = ({
|
|
|
19822
19827
|
});
|
|
19823
19828
|
};
|
|
19824
19829
|
|
|
19825
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
19830
|
+
installImportMetaCssBuild(import.meta);const css$E = /* css */`
|
|
19826
19831
|
.navi_loading_outline_wrapper {
|
|
19827
19832
|
position: absolute;
|
|
19828
19833
|
top: var(--loading-rectangle-top, 0);
|
|
@@ -19840,7 +19845,7 @@ installImportMetaCssBuild(import.meta);const css$C = /* css */`
|
|
|
19840
19845
|
}
|
|
19841
19846
|
`;
|
|
19842
19847
|
const LoadingOutline = props => {
|
|
19843
|
-
import.meta.css = [css$
|
|
19848
|
+
import.meta.css = [css$E, "@jsenv/navi/src/graphic/loading/loading_outline.jsx"];
|
|
19844
19849
|
if (props.containerRef) {
|
|
19845
19850
|
const container = props.containerRef.current;
|
|
19846
19851
|
if (!container) {
|
|
@@ -20786,7 +20791,7 @@ const selectByTextStrings = (element, range, startText, endText) => {
|
|
|
20786
20791
|
};
|
|
20787
20792
|
|
|
20788
20793
|
installImportMetaCssBuild(import.meta);// https://jsfiddle.net/v5xzJ/4/
|
|
20789
|
-
const css$
|
|
20794
|
+
const css$D = /* css */`
|
|
20790
20795
|
@layer navi {
|
|
20791
20796
|
.navi_text {
|
|
20792
20797
|
&[data-skeleton] {
|
|
@@ -21185,7 +21190,7 @@ const TextDispatcher = props => {
|
|
|
21185
21190
|
});
|
|
21186
21191
|
};
|
|
21187
21192
|
const TextUI = props => {
|
|
21188
|
-
import.meta.css = [css$
|
|
21193
|
+
import.meta.css = [css$D, "@jsenv/navi/src/text/text.jsx"];
|
|
21189
21194
|
let {
|
|
21190
21195
|
ref,
|
|
21191
21196
|
spacing,
|
|
@@ -21357,7 +21362,7 @@ const TextWithSelectRange = ({
|
|
|
21357
21362
|
});
|
|
21358
21363
|
};
|
|
21359
21364
|
|
|
21360
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
21365
|
+
installImportMetaCssBuild(import.meta);const css$C = /* css */`
|
|
21361
21366
|
.navi_text_anchor {
|
|
21362
21367
|
vertical-align: baseline;
|
|
21363
21368
|
user-select: none;
|
|
@@ -21392,7 +21397,7 @@ const TextAnchor = ({
|
|
|
21392
21397
|
textSize,
|
|
21393
21398
|
lineLayout
|
|
21394
21399
|
}) => {
|
|
21395
|
-
import.meta.css = [css$
|
|
21400
|
+
import.meta.css = [css$C, "@jsenv/navi/src/text/text_anchor.jsx"];
|
|
21396
21401
|
const anchorRef = useRef();
|
|
21397
21402
|
const setTopOffset = (childEl, topOffset) => {
|
|
21398
21403
|
// position:relative + top shifts the element visually.
|
|
@@ -21494,7 +21499,7 @@ const computeTopOffset = ({
|
|
|
21494
21499
|
};
|
|
21495
21500
|
const charTopCanvas = document.createElement("canvas");
|
|
21496
21501
|
|
|
21497
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
21502
|
+
installImportMetaCssBuild(import.meta);const css$B = /* css */`
|
|
21498
21503
|
@layer navi {
|
|
21499
21504
|
/* Ensure data attributes from box.jsx can win to update display */
|
|
21500
21505
|
.navi_icon {
|
|
@@ -21567,7 +21572,7 @@ const Icon = ({
|
|
|
21567
21572
|
lineLayout,
|
|
21568
21573
|
...props
|
|
21569
21574
|
}) => {
|
|
21570
|
-
import.meta.css = [css$
|
|
21575
|
+
import.meta.css = [css$B, "@jsenv/navi/src/text/icon.jsx"];
|
|
21571
21576
|
const innerChildren = href ? jsx("svg", {
|
|
21572
21577
|
width: "100%",
|
|
21573
21578
|
height: "100%",
|
|
@@ -22519,7 +22524,7 @@ const useUIState = (uiStateController) => {
|
|
|
22519
22524
|
return trackedUIState;
|
|
22520
22525
|
};
|
|
22521
22526
|
|
|
22522
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
22527
|
+
installImportMetaCssBuild(import.meta);const css$A = /* css */`
|
|
22523
22528
|
@layer navi {
|
|
22524
22529
|
.navi_button {
|
|
22525
22530
|
--button-border-radius: 2px;
|
|
@@ -22805,7 +22810,7 @@ const ButtonDispatcher = props => {
|
|
|
22805
22810
|
});
|
|
22806
22811
|
};
|
|
22807
22812
|
const ButtonUI = props => {
|
|
22808
|
-
import.meta.css = [css$
|
|
22813
|
+
import.meta.css = [css$A, "@jsenv/navi/src/field/button.jsx"];
|
|
22809
22814
|
const {
|
|
22810
22815
|
ref,
|
|
22811
22816
|
readOnly,
|
|
@@ -23130,7 +23135,7 @@ const WarningSvg = () => {
|
|
|
23130
23135
|
});
|
|
23131
23136
|
};
|
|
23132
23137
|
|
|
23133
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23138
|
+
installImportMetaCssBuild(import.meta);const css$z = /* css */`
|
|
23134
23139
|
@layer navi {
|
|
23135
23140
|
.navi_message_box {
|
|
23136
23141
|
--background-color-info: var(--navi-info-color-light);
|
|
@@ -23183,7 +23188,7 @@ const MessageBox = ({
|
|
|
23183
23188
|
onClose,
|
|
23184
23189
|
...rest
|
|
23185
23190
|
}) => {
|
|
23186
|
-
import.meta.css = [css$
|
|
23191
|
+
import.meta.css = [css$z, "@jsenv/navi/src/text/message_box.jsx"];
|
|
23187
23192
|
const [hasTitleChild, setHasTitleChild] = useState(false);
|
|
23188
23193
|
const innerLeftStripe = leftStripe === undefined ? hasTitleChild : leftStripe;
|
|
23189
23194
|
if (icon === true) {
|
|
@@ -23242,7 +23247,7 @@ const MessageBoxPseudoClasses = [":-navi-status-info", ":-navi-status-success",
|
|
|
23242
23247
|
const MessageBoxStatusContext = createContext();
|
|
23243
23248
|
const MessageBoxReportTitleChildContext = createContext();
|
|
23244
23249
|
|
|
23245
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23250
|
+
installImportMetaCssBuild(import.meta);const css$y = /* css */`
|
|
23246
23251
|
.navi_message_box {
|
|
23247
23252
|
.navi_title {
|
|
23248
23253
|
margin-top: 0;
|
|
@@ -23252,7 +23257,7 @@ installImportMetaCssBuild(import.meta);const css$w = /* css */`
|
|
|
23252
23257
|
}
|
|
23253
23258
|
`;
|
|
23254
23259
|
const Title = props => {
|
|
23255
|
-
import.meta.css = [css$
|
|
23260
|
+
import.meta.css = [css$y, "@jsenv/navi/src/text/title.jsx"];
|
|
23256
23261
|
const messageBoxStatus = useContext(MessageBoxStatusContext);
|
|
23257
23262
|
const innerAs = props.as || (messageBoxStatus ? "h4" : "h1");
|
|
23258
23263
|
const titleLevel = parseInt(innerAs.slice(1));
|
|
@@ -23330,7 +23335,7 @@ const useDimColorWhen = (elementRef, shouldDim) => {
|
|
|
23330
23335
|
});
|
|
23331
23336
|
};
|
|
23332
23337
|
|
|
23333
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
23338
|
+
installImportMetaCssBuild(import.meta);const css$x = /* css */`
|
|
23334
23339
|
@layer navi {
|
|
23335
23340
|
.navi_link {
|
|
23336
23341
|
--link-border-radius: unset;
|
|
@@ -23682,7 +23687,7 @@ Object.assign(PSEUDO_CLASSES, {
|
|
|
23682
23687
|
}
|
|
23683
23688
|
});
|
|
23684
23689
|
const Link = props => {
|
|
23685
|
-
import.meta.css = [css$
|
|
23690
|
+
import.meta.css = [css$x, "@jsenv/navi/src/nav/link/link.jsx"];
|
|
23686
23691
|
return renderActionableComponent(props, {
|
|
23687
23692
|
Basic: LinkBasic,
|
|
23688
23693
|
WithAction: LinkWithAction
|
|
@@ -23948,7 +23953,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
23948
23953
|
* TabList component with support for horizontal and vertical layouts
|
|
23949
23954
|
* https://dribbble.com/search/tabs
|
|
23950
23955
|
*/
|
|
23951
|
-
const css$
|
|
23956
|
+
const css$w = /* css */`
|
|
23952
23957
|
@layer navi {
|
|
23953
23958
|
.navi_nav {
|
|
23954
23959
|
--nav-border: none;
|
|
@@ -24084,7 +24089,7 @@ const Nav = ({
|
|
|
24084
24089
|
panelBorderConnection,
|
|
24085
24090
|
...props
|
|
24086
24091
|
}) => {
|
|
24087
|
-
import.meta.css = [css$
|
|
24092
|
+
import.meta.css = [css$w, "@jsenv/navi/src/nav/link/nav.jsx"];
|
|
24088
24093
|
children = toChildArray(children);
|
|
24089
24094
|
return jsx(Box, {
|
|
24090
24095
|
as: "nav",
|
|
@@ -24132,7 +24137,7 @@ const useFocusGroup = (
|
|
|
24132
24137
|
|
|
24133
24138
|
installImportMetaCssBuild(import.meta);const rightArrowPath = "M680-480L360-160l-80-80 240-240-240-240 80-80 320 320z";
|
|
24134
24139
|
const downArrowPath = "M480-280L160-600l80-80 240 240 240-240 80 80-320 320z";
|
|
24135
|
-
const css$
|
|
24140
|
+
const css$v = /* css */`
|
|
24136
24141
|
.navi_summary_marker {
|
|
24137
24142
|
width: 1em;
|
|
24138
24143
|
height: 1em;
|
|
@@ -24217,7 +24222,7 @@ const SummaryMarker = ({
|
|
|
24217
24222
|
open,
|
|
24218
24223
|
loading
|
|
24219
24224
|
}) => {
|
|
24220
|
-
import.meta.css = [css$
|
|
24225
|
+
import.meta.css = [css$v, "@jsenv/navi/src/field/details/summary_marker.jsx"];
|
|
24221
24226
|
const showLoading = useDebounceTrue(loading, 300);
|
|
24222
24227
|
const mountedRef = useRef(false);
|
|
24223
24228
|
const prevOpenRef = useRef(open);
|
|
@@ -24271,7 +24276,7 @@ const SummaryMarker = ({
|
|
|
24271
24276
|
});
|
|
24272
24277
|
};
|
|
24273
24278
|
|
|
24274
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24279
|
+
installImportMetaCssBuild(import.meta);const css$u = /* css */`
|
|
24275
24280
|
.navi_details {
|
|
24276
24281
|
position: relative;
|
|
24277
24282
|
z-index: 1;
|
|
@@ -24308,7 +24313,7 @@ installImportMetaCssBuild(import.meta);const css$s = /* css */`
|
|
|
24308
24313
|
}
|
|
24309
24314
|
`;
|
|
24310
24315
|
const Details = props => {
|
|
24311
|
-
import.meta.css = [css$
|
|
24316
|
+
import.meta.css = [css$u, "@jsenv/navi/src/field/details/details.jsx"];
|
|
24312
24317
|
const {
|
|
24313
24318
|
value = "on",
|
|
24314
24319
|
persists
|
|
@@ -24623,7 +24628,7 @@ const fieldPropSet = new Set([
|
|
|
24623
24628
|
"data-testid",
|
|
24624
24629
|
]);
|
|
24625
24630
|
|
|
24626
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24631
|
+
installImportMetaCssBuild(import.meta);const css$t = /* css */`
|
|
24627
24632
|
@layer navi {
|
|
24628
24633
|
label {
|
|
24629
24634
|
&[data-interactive] {
|
|
@@ -24641,7 +24646,7 @@ installImportMetaCssBuild(import.meta);const css$r = /* css */`
|
|
|
24641
24646
|
}
|
|
24642
24647
|
`;
|
|
24643
24648
|
const Label = props => {
|
|
24644
|
-
import.meta.css = [css$
|
|
24649
|
+
import.meta.css = [css$t, "@jsenv/navi/src/field/label.jsx"];
|
|
24645
24650
|
const {
|
|
24646
24651
|
readOnly,
|
|
24647
24652
|
disabled,
|
|
@@ -24691,7 +24696,7 @@ const reportDisabledToLabel = value => {
|
|
|
24691
24696
|
reportDisabled?.(value);
|
|
24692
24697
|
};
|
|
24693
24698
|
|
|
24694
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
24699
|
+
installImportMetaCssBuild(import.meta);const css$s = /* css */`
|
|
24695
24700
|
@layer navi {
|
|
24696
24701
|
.navi_checkbox {
|
|
24697
24702
|
--margin: 3px 3px 3px 4px;
|
|
@@ -25083,7 +25088,7 @@ const InputCheckboxDispatcher = props => {
|
|
|
25083
25088
|
});
|
|
25084
25089
|
};
|
|
25085
25090
|
const InputCheckboxUI = props => {
|
|
25086
|
-
import.meta.css = [css$
|
|
25091
|
+
import.meta.css = [css$s, "@jsenv/navi/src/field/input_checkbox.jsx"];
|
|
25087
25092
|
const {
|
|
25088
25093
|
ref,
|
|
25089
25094
|
/* eslint-disable no-unused-vars */
|
|
@@ -25484,7 +25489,7 @@ forwardRef((props, ref) => {
|
|
|
25484
25489
|
});
|
|
25485
25490
|
});
|
|
25486
25491
|
|
|
25487
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
25492
|
+
installImportMetaCssBuild(import.meta);const css$r = /* css */`
|
|
25488
25493
|
@layer navi {
|
|
25489
25494
|
.navi_radio {
|
|
25490
25495
|
--margin: 3px 3px 0 5px;
|
|
@@ -25838,7 +25843,7 @@ const InputRadioDispatcher = props => {
|
|
|
25838
25843
|
});
|
|
25839
25844
|
};
|
|
25840
25845
|
const InputRadioUI = props => {
|
|
25841
|
-
import.meta.css = [css$
|
|
25846
|
+
import.meta.css = [css$r, "@jsenv/navi/src/field/input_radio.jsx"];
|
|
25842
25847
|
const {
|
|
25843
25848
|
ref,
|
|
25844
25849
|
/* eslint-disable no-unused-vars */
|
|
@@ -26068,7 +26073,7 @@ const InputRadioWithAction = () => {
|
|
|
26068
26073
|
throw new Error(`<Input type="radio" /> with an action make no sense. Use <RadioList action={something} /> instead`);
|
|
26069
26074
|
};
|
|
26070
26075
|
|
|
26071
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
26076
|
+
installImportMetaCssBuild(import.meta);const css$q = /* css */`
|
|
26072
26077
|
@layer navi {
|
|
26073
26078
|
.navi_input_range {
|
|
26074
26079
|
--border-radius: 6px;
|
|
@@ -26330,7 +26335,7 @@ const InputRangeDispatcher = props => {
|
|
|
26330
26335
|
});
|
|
26331
26336
|
};
|
|
26332
26337
|
const InputRangeUI = props => {
|
|
26333
|
-
import.meta.css = [css$
|
|
26338
|
+
import.meta.css = [css$q, "@jsenv/navi/src/field/input_range.jsx"];
|
|
26334
26339
|
const {
|
|
26335
26340
|
ref,
|
|
26336
26341
|
onInput,
|
|
@@ -26607,7 +26612,7 @@ const SearchSvg = () => jsx("svg", {
|
|
|
26607
26612
|
})
|
|
26608
26613
|
});
|
|
26609
26614
|
|
|
26610
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
26615
|
+
installImportMetaCssBuild(import.meta);const css$p = /* css */`
|
|
26611
26616
|
@layer navi {
|
|
26612
26617
|
.navi_separator {
|
|
26613
26618
|
--size: 1px;
|
|
@@ -26647,7 +26652,7 @@ const Separator = ({
|
|
|
26647
26652
|
vertical,
|
|
26648
26653
|
...props
|
|
26649
26654
|
}) => {
|
|
26650
|
-
import.meta.css = [css$
|
|
26655
|
+
import.meta.css = [css$p, "@jsenv/navi/src/layout/separator.jsx"];
|
|
26651
26656
|
return jsx(Box, {
|
|
26652
26657
|
as: vertical ? "span" : "hr",
|
|
26653
26658
|
...props,
|
|
@@ -27059,7 +27064,7 @@ const RenderWindowContext = createContext(null);
|
|
|
27059
27064
|
// Carries the separator element/function down to each ListItem so separators
|
|
27060
27065
|
// are only rendered between items that actually mount (post-filter, post-window).
|
|
27061
27066
|
const SeparatorContext = createContext(null);
|
|
27062
|
-
const css$
|
|
27067
|
+
const css$o = /* css */`
|
|
27063
27068
|
@layer navi {
|
|
27064
27069
|
.navi_list_container {
|
|
27065
27070
|
--list-outline-width: 1px;
|
|
@@ -27486,7 +27491,7 @@ const ListDispatcher = props => {
|
|
|
27486
27491
|
});
|
|
27487
27492
|
};
|
|
27488
27493
|
const ListUI = props => {
|
|
27489
|
-
import.meta.css = [css$
|
|
27494
|
+
import.meta.css = [css$o, "@jsenv/navi/src/field/list/list.jsx"];
|
|
27490
27495
|
const {
|
|
27491
27496
|
ref,
|
|
27492
27497
|
renderBudget = RENDER_BUDGET_DEFAULT,
|
|
@@ -28965,7 +28970,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
28965
28970
|
* - <InputCheckbox /> for type="checkbox"
|
|
28966
28971
|
* - <InputRadio /> for type="radio"
|
|
28967
28972
|
*/
|
|
28968
|
-
const css$
|
|
28973
|
+
const css$n = /* css */`
|
|
28969
28974
|
@layer navi {
|
|
28970
28975
|
.navi_input {
|
|
28971
28976
|
--border-radius: 2px;
|
|
@@ -29219,7 +29224,7 @@ const InputTextualDispatcher = props => {
|
|
|
29219
29224
|
};
|
|
29220
29225
|
const InputNativeContext = createContext(null);
|
|
29221
29226
|
const InputTextualUI = props => {
|
|
29222
|
-
import.meta.css = [css$
|
|
29227
|
+
import.meta.css = [css$n, "@jsenv/navi/src/field/input_textual.jsx"];
|
|
29223
29228
|
const {
|
|
29224
29229
|
ref,
|
|
29225
29230
|
type,
|
|
@@ -29840,7 +29845,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
29840
29845
|
* This means an editable thing MUST have a parent with position relative that wraps the content and the eventual editable input
|
|
29841
29846
|
*
|
|
29842
29847
|
*/
|
|
29843
|
-
const css$
|
|
29848
|
+
const css$m = /* css */`
|
|
29844
29849
|
.navi_editable_wrapper {
|
|
29845
29850
|
--inset-top: 0px;
|
|
29846
29851
|
--inset-right: 0px;
|
|
@@ -29889,7 +29894,7 @@ const useEditionController = () => {
|
|
|
29889
29894
|
};
|
|
29890
29895
|
};
|
|
29891
29896
|
const Editable = props => {
|
|
29892
|
-
import.meta.css = [css$
|
|
29897
|
+
import.meta.css = [css$m, "@jsenv/navi/src/field/edition/editable.jsx"];
|
|
29893
29898
|
let {
|
|
29894
29899
|
children,
|
|
29895
29900
|
action,
|
|
@@ -30303,7 +30308,7 @@ const FormWithAction = props => {
|
|
|
30303
30308
|
// form.dispatchEvent(customEvent);
|
|
30304
30309
|
// };
|
|
30305
30310
|
|
|
30306
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30311
|
+
installImportMetaCssBuild(import.meta);const css$l = /* css */`
|
|
30307
30312
|
.navi_group {
|
|
30308
30313
|
--border-width: 1px;
|
|
30309
30314
|
|
|
@@ -30400,7 +30405,7 @@ const Group = ({
|
|
|
30400
30405
|
vertical = row,
|
|
30401
30406
|
...props
|
|
30402
30407
|
}) => {
|
|
30403
|
-
import.meta.css = [css$
|
|
30408
|
+
import.meta.css = [css$l, "@jsenv/navi/src/field/group.jsx"];
|
|
30404
30409
|
if (typeof borderWidth === "string") {
|
|
30405
30410
|
borderWidth = parseFloat(borderWidth);
|
|
30406
30411
|
}
|
|
@@ -30591,7 +30596,7 @@ const useCleanup = () => {
|
|
|
30591
30596
|
return cleanupMethods;
|
|
30592
30597
|
};
|
|
30593
30598
|
|
|
30594
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30599
|
+
installImportMetaCssBuild(import.meta);const css$k = /* css */`
|
|
30595
30600
|
.navi_dialog {
|
|
30596
30601
|
&[open] {
|
|
30597
30602
|
display: flex;
|
|
@@ -30604,7 +30609,7 @@ installImportMetaCssBuild(import.meta);const css$i = /* css */`
|
|
|
30604
30609
|
}
|
|
30605
30610
|
`;
|
|
30606
30611
|
const Dialog = props => {
|
|
30607
|
-
import.meta.css = [css$
|
|
30612
|
+
import.meta.css = [css$k, "@jsenv/navi/src/popup/dialog.jsx"];
|
|
30608
30613
|
const {
|
|
30609
30614
|
children,
|
|
30610
30615
|
scrollTrap,
|
|
@@ -30715,7 +30720,7 @@ const requestDialogClose = (popoverElement, {
|
|
|
30715
30720
|
});
|
|
30716
30721
|
};
|
|
30717
30722
|
|
|
30718
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30723
|
+
installImportMetaCssBuild(import.meta);const css$j = /* css */`
|
|
30719
30724
|
.navi_popover_backdrop {
|
|
30720
30725
|
position: fixed;
|
|
30721
30726
|
inset: 0;
|
|
@@ -30731,7 +30736,7 @@ installImportMetaCssBuild(import.meta);const css$h = /* css */`
|
|
|
30731
30736
|
}
|
|
30732
30737
|
`;
|
|
30733
30738
|
const Popover = props => {
|
|
30734
|
-
import.meta.css = [css$
|
|
30739
|
+
import.meta.css = [css$j, "@jsenv/navi/src/popup/popover.jsx"];
|
|
30735
30740
|
const {
|
|
30736
30741
|
scrollTrap,
|
|
30737
30742
|
pointerTrap,
|
|
@@ -30933,7 +30938,7 @@ const requestPopoverClose = (popoverElement, {
|
|
|
30933
30938
|
});
|
|
30934
30939
|
};
|
|
30935
30940
|
|
|
30936
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
30941
|
+
installImportMetaCssBuild(import.meta);const css$i = /* css */`
|
|
30937
30942
|
@layer navi {
|
|
30938
30943
|
.navi_select {
|
|
30939
30944
|
--select-border-radius: 2px;
|
|
@@ -31281,7 +31286,7 @@ const SelectDispatcher = props => {
|
|
|
31281
31286
|
});
|
|
31282
31287
|
};
|
|
31283
31288
|
const SelectUI = props => {
|
|
31284
|
-
import.meta.css = [css$
|
|
31289
|
+
import.meta.css = [css$i, "@jsenv/navi/src/field/select.jsx"];
|
|
31285
31290
|
const {
|
|
31286
31291
|
placeholder = "Select…",
|
|
31287
31292
|
trigger,
|
|
@@ -32473,7 +32478,7 @@ const Z_INDEX_DROP_PREVIEW = Z_INDEX_STICKY_CORNER + 1;
|
|
|
32473
32478
|
|
|
32474
32479
|
const Z_INDEX_TABLE_UI = Z_INDEX_STICKY_CORNER + 1;
|
|
32475
32480
|
|
|
32476
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
32481
|
+
installImportMetaCssBuild(import.meta);const css$h = /* css */`
|
|
32477
32482
|
.navi_table_drag_clone_container {
|
|
32478
32483
|
position: absolute;
|
|
32479
32484
|
top: var(--table-visual-top);
|
|
@@ -32653,7 +32658,7 @@ const moveItem = (array, indexA, indexB) => {
|
|
|
32653
32658
|
return newArray;
|
|
32654
32659
|
};
|
|
32655
32660
|
const TableDragCloneContainer = forwardRef((props, ref) => {
|
|
32656
|
-
import.meta.css = [css$
|
|
32661
|
+
import.meta.css = [css$h, "@jsenv/navi/src/field/table/drag/table_drag.jsx"];
|
|
32657
32662
|
const {
|
|
32658
32663
|
tableId
|
|
32659
32664
|
} = props;
|
|
@@ -32951,7 +32956,7 @@ installImportMetaCssBuild(import.meta);const ROW_MIN_HEIGHT = 30;
|
|
|
32951
32956
|
const ROW_MAX_HEIGHT = 100;
|
|
32952
32957
|
const COLUMN_MIN_WIDTH = 50;
|
|
32953
32958
|
const COLUMN_MAX_WIDTH = 500;
|
|
32954
|
-
const css$
|
|
32959
|
+
const css$g = /* css */`
|
|
32955
32960
|
@layer navi {
|
|
32956
32961
|
.navi_table {
|
|
32957
32962
|
--table-resizer-handle-color: #063b7c;
|
|
@@ -33111,7 +33116,7 @@ const css$e = /* css */`
|
|
|
33111
33116
|
|
|
33112
33117
|
// Column resize components
|
|
33113
33118
|
const TableColumnResizer = props => {
|
|
33114
|
-
import.meta.css = [css$
|
|
33119
|
+
import.meta.css = [css$g, "@jsenv/navi/src/field/table/resize/table_resize.jsx"];
|
|
33115
33120
|
const defaultRef = useRef();
|
|
33116
33121
|
const ref = props.ref || defaultRef;
|
|
33117
33122
|
return jsxs("div", {
|
|
@@ -33578,7 +33583,7 @@ const findPreviousTableRow = currentRow => {
|
|
|
33578
33583
|
return currentIndex > 0 ? allRows[currentIndex - 1] : null;
|
|
33579
33584
|
};
|
|
33580
33585
|
|
|
33581
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
33586
|
+
installImportMetaCssBuild(import.meta);const css$f = /* css */`
|
|
33582
33587
|
@layer navi {
|
|
33583
33588
|
.navi_table {
|
|
33584
33589
|
--selection-border-color: var(--navi-selection-border-color, #0078d4);
|
|
@@ -33680,7 +33685,7 @@ const useTableSelectionController = ({
|
|
|
33680
33685
|
onSelectionChange,
|
|
33681
33686
|
selectionColor
|
|
33682
33687
|
}) => {
|
|
33683
|
-
import.meta.css = [css$
|
|
33688
|
+
import.meta.css = [css$f, "@jsenv/navi/src/field/table/selection/table_selection.jsx"];
|
|
33684
33689
|
const selectionController = useSelectionController({
|
|
33685
33690
|
elementRef: tableRef,
|
|
33686
33691
|
layout: "grid",
|
|
@@ -34151,7 +34156,7 @@ const useTableStickyContextValue = ({
|
|
|
34151
34156
|
};
|
|
34152
34157
|
|
|
34153
34158
|
installImportMetaCssBuild(import.meta);// TODO: sticky left/top frontier should likely use "followPosition"
|
|
34154
|
-
const css$
|
|
34159
|
+
const css$e = /* css */`
|
|
34155
34160
|
@layer navi {
|
|
34156
34161
|
.navi_table {
|
|
34157
34162
|
--sticky-frontier-color: #c0c0c0;
|
|
@@ -34394,7 +34399,7 @@ const css$c = /* css */`
|
|
|
34394
34399
|
const TableStickyFrontier = ({
|
|
34395
34400
|
tableRef
|
|
34396
34401
|
}) => {
|
|
34397
|
-
import.meta.css = [css$
|
|
34402
|
+
import.meta.css = [css$e, "@jsenv/navi/src/field/table/sticky/table_sticky.jsx"];
|
|
34398
34403
|
const stickyLeftFrontierGhostRef = useRef();
|
|
34399
34404
|
const stickyLeftFrontierPreviewRef = useRef();
|
|
34400
34405
|
const stickyTopFrontierGhostRef = useRef();
|
|
@@ -34623,7 +34628,7 @@ const initMoveStickyFrontierViaPointer = (pointerdownEvent, {
|
|
|
34623
34628
|
* inset 0 -1px 0 0 color; // Bottom border
|
|
34624
34629
|
*/
|
|
34625
34630
|
|
|
34626
|
-
const css$
|
|
34631
|
+
const css$d = /* css */ `
|
|
34627
34632
|
.navi_table_root {
|
|
34628
34633
|
position: relative;
|
|
34629
34634
|
max-width: var(--table-max-width, none);
|
|
@@ -34826,7 +34831,7 @@ const css$b = /* css */ `
|
|
|
34826
34831
|
}
|
|
34827
34832
|
`;
|
|
34828
34833
|
|
|
34829
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
34834
|
+
installImportMetaCssBuild(import.meta);const css$c = /* css */`
|
|
34830
34835
|
.navi_table_ui {
|
|
34831
34836
|
position: fixed;
|
|
34832
34837
|
inset: 0;
|
|
@@ -34837,7 +34842,7 @@ installImportMetaCssBuild(import.meta);const css$a = /* css */`
|
|
|
34837
34842
|
}
|
|
34838
34843
|
`;
|
|
34839
34844
|
const TableUI = forwardRef((props, ref) => {
|
|
34840
|
-
import.meta.css = [css$
|
|
34845
|
+
import.meta.css = [css$c, "@jsenv/navi/src/field/table/table_ui.jsx"];
|
|
34841
34846
|
const {
|
|
34842
34847
|
tableRef,
|
|
34843
34848
|
tableId,
|
|
@@ -34943,7 +34948,7 @@ const RowIndexContext = createContext();
|
|
|
34943
34948
|
const TableSectionContext = createContext();
|
|
34944
34949
|
const useIsInTableHead = () => useContext(TableSectionContext) === "head";
|
|
34945
34950
|
const Table = props => {
|
|
34946
|
-
import.meta.css = [css$
|
|
34951
|
+
import.meta.css = [css$d, "@jsenv/navi/src/field/table/table.jsx"];
|
|
34947
34952
|
const tableDefaultRef = useRef();
|
|
34948
34953
|
const tableDefaultId = `table-${useId()}`;
|
|
34949
34954
|
const {
|
|
@@ -35764,7 +35769,7 @@ const normalizeKey = (key) => {
|
|
|
35764
35769
|
return key;
|
|
35765
35770
|
};
|
|
35766
35771
|
|
|
35767
|
-
installImportMetaCssBuild(import.meta);
|
|
35772
|
+
installImportMetaCssBuild(import.meta);const css$b = /* css */`
|
|
35768
35773
|
.navi_shortcut_container[data-visually-hidden] {
|
|
35769
35774
|
/* Visually hidden container - doesn't affect layout */
|
|
35770
35775
|
position: absolute;
|
|
@@ -35798,10 +35803,11 @@ installImportMetaCssBuild(import.meta);import.meta.css = [/* css */`
|
|
|
35798
35803
|
opacity: 0;
|
|
35799
35804
|
pointer-events: none;
|
|
35800
35805
|
}
|
|
35801
|
-
|
|
35806
|
+
`;
|
|
35802
35807
|
const ActiveKeyboardShortcuts = ({
|
|
35803
35808
|
visible
|
|
35804
35809
|
}) => {
|
|
35810
|
+
import.meta.css = [css$b, "@jsenv/navi/src/keyboard/active_keyboard_shortcuts.jsx"];
|
|
35805
35811
|
const activeShortcuts = activeShortcutsSignal.value;
|
|
35806
35812
|
return jsx("div", {
|
|
35807
35813
|
className: "navi_shortcut_container",
|
|
@@ -35840,7 +35846,7 @@ const KeyboardShortcutAriaElement = ({
|
|
|
35840
35846
|
});
|
|
35841
35847
|
};
|
|
35842
35848
|
|
|
35843
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
35849
|
+
installImportMetaCssBuild(import.meta);const css$a = /* css */`
|
|
35844
35850
|
@layer navi {
|
|
35845
35851
|
.navi_clipboard_container {
|
|
35846
35852
|
--height: 1.5em;
|
|
@@ -35872,7 +35878,7 @@ const ButtonCopyToClipboard = ({
|
|
|
35872
35878
|
children,
|
|
35873
35879
|
...props
|
|
35874
35880
|
}) => {
|
|
35875
|
-
import.meta.css = [css$
|
|
35881
|
+
import.meta.css = [css$a, "@jsenv/navi/src/field/button_copy_to_clipboard.jsx"];
|
|
35876
35882
|
const [copied, setCopied] = useState(false);
|
|
35877
35883
|
const renderedRef = useRef();
|
|
35878
35884
|
useEffect(() => {
|
|
@@ -35953,7 +35959,7 @@ const Address = ({
|
|
|
35953
35959
|
});
|
|
35954
35960
|
};
|
|
35955
35961
|
|
|
35956
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
35962
|
+
installImportMetaCssBuild(import.meta);const css$9 = /* css */`
|
|
35957
35963
|
@layer navi {
|
|
35958
35964
|
}
|
|
35959
35965
|
.navi_badge {
|
|
@@ -35987,7 +35993,7 @@ const Badge = ({
|
|
|
35987
35993
|
className,
|
|
35988
35994
|
...props
|
|
35989
35995
|
}) => {
|
|
35990
|
-
import.meta.css = [css$
|
|
35996
|
+
import.meta.css = [css$9, "@jsenv/navi/src/text/badge.jsx"];
|
|
35991
35997
|
const defaultRef = useRef();
|
|
35992
35998
|
const ref = props.ref || defaultRef;
|
|
35993
35999
|
useAccentColorAttributes(ref, null);
|
|
@@ -36077,7 +36083,7 @@ const formatNumber = (value, { lang } = {}) => {
|
|
|
36077
36083
|
return new Intl.NumberFormat(lang).format(value);
|
|
36078
36084
|
};
|
|
36079
36085
|
|
|
36080
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36086
|
+
installImportMetaCssBuild(import.meta);const css$8 = /* css */`
|
|
36081
36087
|
@layer navi {
|
|
36082
36088
|
}
|
|
36083
36089
|
.navi_text.navi_badge_count {
|
|
@@ -36190,7 +36196,7 @@ const BadgeCount = ({
|
|
|
36190
36196
|
lineLayout,
|
|
36191
36197
|
...props
|
|
36192
36198
|
}) => {
|
|
36193
|
-
import.meta.css = [css$
|
|
36199
|
+
import.meta.css = [css$8, "@jsenv/navi/src/text/badge_count.jsx"];
|
|
36194
36200
|
const defaultRef = useRef();
|
|
36195
36201
|
const ref = props.ref || defaultRef;
|
|
36196
36202
|
useAccentColorAttributes(ref, null);
|
|
@@ -36329,7 +36335,7 @@ const BadgeCountCircle = ({
|
|
|
36329
36335
|
});
|
|
36330
36336
|
};
|
|
36331
36337
|
|
|
36332
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36338
|
+
installImportMetaCssBuild(import.meta);const css$7 = /* css */`
|
|
36333
36339
|
@layer navi {
|
|
36334
36340
|
.navi_caption {
|
|
36335
36341
|
--color: #6b7280;
|
|
@@ -36350,7 +36356,7 @@ const Caption = ({
|
|
|
36350
36356
|
className,
|
|
36351
36357
|
...rest
|
|
36352
36358
|
}) => {
|
|
36353
|
-
import.meta.css = [css$
|
|
36359
|
+
import.meta.css = [css$7, "@jsenv/navi/src/text/caption.jsx"];
|
|
36354
36360
|
return jsx(Text, {
|
|
36355
36361
|
as: "small",
|
|
36356
36362
|
size: "0.8em" // We use em to be relative to the parent (we want to be smaller than the surrounding text)
|
|
@@ -36827,7 +36833,7 @@ const interpolate = (template, values) => {
|
|
|
36827
36833
|
});
|
|
36828
36834
|
};
|
|
36829
36835
|
|
|
36830
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
36836
|
+
installImportMetaCssBuild(import.meta);const css$6 = /* css */`
|
|
36831
36837
|
@layer navi {
|
|
36832
36838
|
.navi_quantity {
|
|
36833
36839
|
--unit-color: color-mix(in srgb, currentColor 50%, white);
|
|
@@ -36932,7 +36938,7 @@ const Quantity = ({
|
|
|
36932
36938
|
bold = true,
|
|
36933
36939
|
...props
|
|
36934
36940
|
}) => {
|
|
36935
|
-
import.meta.css = [css$
|
|
36941
|
+
import.meta.css = [css$6, "@jsenv/navi/src/text/quantity.jsx"];
|
|
36936
36942
|
const value = parseQuantityValue(children);
|
|
36937
36943
|
const valueRounded = integer && typeof value === "number" ? Math.round(value) : value;
|
|
36938
36944
|
const valueFormatted = typeof valueRounded === "number" ? formatNumber(valueRounded, {
|
|
@@ -37021,7 +37027,7 @@ const parseQuantityValue = children => {
|
|
|
37021
37027
|
return Number.isNaN(parsed) ? children : parsed;
|
|
37022
37028
|
};
|
|
37023
37029
|
|
|
37024
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
37030
|
+
installImportMetaCssBuild(import.meta);const css$5 = /* css */`
|
|
37025
37031
|
@layer navi {
|
|
37026
37032
|
.navi_meter {
|
|
37027
37033
|
--loader-color: var(--navi-loader-color);
|
|
@@ -37159,7 +37165,7 @@ const Meter = ({
|
|
|
37159
37165
|
style,
|
|
37160
37166
|
...rest
|
|
37161
37167
|
}) => {
|
|
37162
|
-
import.meta.css = [css$
|
|
37168
|
+
import.meta.css = [css$5, "@jsenv/navi/src/text/meter.jsx"];
|
|
37163
37169
|
const defaultRef = useRef();
|
|
37164
37170
|
const ref = rest.ref || defaultRef;
|
|
37165
37171
|
value = Number(value);
|
|
@@ -37286,7 +37292,7 @@ const Paragraph = props => {
|
|
|
37286
37292
|
});
|
|
37287
37293
|
};
|
|
37288
37294
|
|
|
37289
|
-
installImportMetaCssBuild(import.meta);const css$
|
|
37295
|
+
installImportMetaCssBuild(import.meta);const css$4 = /* css */`
|
|
37290
37296
|
@keyframes navi_image_shimmer {
|
|
37291
37297
|
0% {
|
|
37292
37298
|
background-position: -200% 0;
|
|
@@ -37341,7 +37347,7 @@ const Image = ({
|
|
|
37341
37347
|
placeholderDark = false,
|
|
37342
37348
|
...rest
|
|
37343
37349
|
}) => {
|
|
37344
|
-
import.meta.css = [css$
|
|
37350
|
+
import.meta.css = [css$4, "@jsenv/navi/src/graphic/image.jsx"];
|
|
37345
37351
|
const loadedRef = useRef();
|
|
37346
37352
|
let resolvedPlaceholder = placeholderColor;
|
|
37347
37353
|
if (resolvedPlaceholder === undefined) {
|
|
@@ -37424,7 +37430,7 @@ installImportMetaCssBuild(import.meta);/**
|
|
|
37424
37430
|
* @param {ReactNode[]} props.children - SVG elements (first is base, rest are overlays)
|
|
37425
37431
|
* @returns {ReactElement} A composed SVG with all elements properly masked
|
|
37426
37432
|
*/
|
|
37427
|
-
|
|
37433
|
+
const css$3 = /* css */`
|
|
37428
37434
|
.svg_mask_content * {
|
|
37429
37435
|
color: black !important;
|
|
37430
37436
|
opacity: 1 !important;
|
|
@@ -37433,11 +37439,12 @@ import.meta.css = [/* css */`
|
|
|
37433
37439
|
stroke: black !important;
|
|
37434
37440
|
stroke-opacity: 1 !important;
|
|
37435
37441
|
}
|
|
37436
|
-
|
|
37442
|
+
`;
|
|
37437
37443
|
const SVGMaskOverlay = ({
|
|
37438
37444
|
viewBox,
|
|
37439
37445
|
children
|
|
37440
37446
|
}) => {
|
|
37447
|
+
import.meta.css = [css$3, "@jsenv/navi/src/graphic/svg_mask_overlay.jsx"];
|
|
37441
37448
|
if (!Array.isArray(children)) {
|
|
37442
37449
|
return children;
|
|
37443
37450
|
}
|