@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.
@@ -71,7 +71,7 @@ const useActionStatus = (action) => {
71
71
  };
72
72
  };
73
73
 
74
- installImportMetaCssBuild(import.meta);import.meta.css = [/* css */`
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
- `, "@jsenv/navi/src/action/action_renderer.jsx"];
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$E = /* 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$E, "@jsenv/navi/src/field/validation/callout/callout.js"];
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$D = /* 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$D, "@jsenv/navi/src/graphic/loading/loading_indicator_fluid.jsx"];
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 radius = getComputedStyle(indicatorEl).borderRadius;
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$C = /* 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$C, "@jsenv/navi/src/graphic/loading/loading_outline.jsx"];
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$B = /* 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$B, "@jsenv/navi/src/text/text.jsx"];
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$A = /* 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$A, "@jsenv/navi/src/text/text_anchor.jsx"];
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$z = /* 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$z, "@jsenv/navi/src/text/icon.jsx"];
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$y = /* 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$y, "@jsenv/navi/src/field/button.jsx"];
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$x = /* 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$x, "@jsenv/navi/src/text/message_box.jsx"];
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$w = /* 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$w, "@jsenv/navi/src/text/title.jsx"];
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$v = /* 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$v, "@jsenv/navi/src/nav/link/link.jsx"];
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$u = /* 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$u, "@jsenv/navi/src/nav/link/nav.jsx"];
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$t = /* 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$t, "@jsenv/navi/src/field/details/summary_marker.jsx"];
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$s = /* 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$s, "@jsenv/navi/src/field/details/details.jsx"];
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$r = /* 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$r, "@jsenv/navi/src/field/label.jsx"];
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$q = /* 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$q, "@jsenv/navi/src/field/input_checkbox.jsx"];
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$p = /* 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$p, "@jsenv/navi/src/field/input_radio.jsx"];
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$o = /* 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$o, "@jsenv/navi/src/field/input_range.jsx"];
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$n = /* 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$n, "@jsenv/navi/src/layout/separator.jsx"];
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$m = /* 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$m, "@jsenv/navi/src/field/list/list.jsx"];
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$l = /* 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$l, "@jsenv/navi/src/field/input_textual.jsx"];
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$k = /* 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$k, "@jsenv/navi/src/field/edition/editable.jsx"];
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$j = /* 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$j, "@jsenv/navi/src/field/group.jsx"];
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$i = /* 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$i, "@jsenv/navi/src/popup/dialog.jsx"];
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$h = /* 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$h, "@jsenv/navi/src/popup/popover.jsx"];
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$g = /* 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$g, "@jsenv/navi/src/field/select.jsx"];
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$f = /* 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$f, "@jsenv/navi/src/field/table/drag/table_drag.jsx"];
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$e = /* 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$e, "@jsenv/navi/src/field/table/resize/table_resize.jsx"];
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$d = /* 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$d, "@jsenv/navi/src/field/table/selection/table_selection.jsx"];
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$c = /* 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$c, "@jsenv/navi/src/field/table/sticky/table_sticky.jsx"];
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$b = /* 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$a = /* 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$a, "@jsenv/navi/src/field/table/table_ui.jsx"];
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$b, "@jsenv/navi/src/field/table/table.jsx"];
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);import.meta.css = [/* css */`
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
- `, "@jsenv/navi/src/keyboard/active_keyboard_shortcuts.jsx"];
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$9 = /* 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$9, "@jsenv/navi/src/field/button_copy_to_clipboard.jsx"];
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$8 = /* 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$8, "@jsenv/navi/src/text/badge.jsx"];
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$7 = /* 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$7, "@jsenv/navi/src/text/badge_count.jsx"];
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$6 = /* 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$6, "@jsenv/navi/src/text/caption.jsx"];
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$5 = /* 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$5, "@jsenv/navi/src/text/quantity.jsx"];
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$4 = /* 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$4, "@jsenv/navi/src/text/meter.jsx"];
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$3 = /* 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$3, "@jsenv/navi/src/graphic/image.jsx"];
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
- import.meta.css = [/* css */`
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
- `, "@jsenv/navi/src/graphic/svg_mask_overlay.jsx"];
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
  }