@jsenv/navi 0.11.7 → 0.11.8

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.
@@ -8107,6 +8107,62 @@ const updateDocumentUrl = (value) => {
8107
8107
  documentUrlSignal.value = value;
8108
8108
  };
8109
8109
 
8110
+ const getLinkTargetInfo = (href) => {
8111
+ href = String(href);
8112
+
8113
+ if (!href || href.trim() === "") {
8114
+ return {
8115
+ targetIsEmpty: true,
8116
+ targetIsCurrent: false,
8117
+ targetIsAnchor: false,
8118
+ targetIsSameOrigin: true,
8119
+ targetIsSameSite: true,
8120
+ };
8121
+ }
8122
+
8123
+ const currentUrl = new URL(window.location.href);
8124
+ const targetUrl = new URL(href, window.location.href);
8125
+
8126
+ let targetIsCurrent = false;
8127
+ {
8128
+ targetIsCurrent = currentUrl.href === targetUrl.href;
8129
+ }
8130
+ let targetIsAnchor = false;
8131
+ {
8132
+ if (
8133
+ currentUrl.pathname === targetUrl.pathname &&
8134
+ currentUrl.search === targetUrl.search &&
8135
+ targetUrl.hash !== ""
8136
+ ) {
8137
+ targetIsAnchor = true;
8138
+ }
8139
+ }
8140
+ let targetIsSameOrigin = false;
8141
+ {
8142
+ const currentOrigin = currentUrl.origin;
8143
+ const targetOrigin = targetUrl.origin;
8144
+ targetIsSameOrigin = currentOrigin === targetOrigin;
8145
+ }
8146
+ let targetIsSameSite = false;
8147
+ {
8148
+ const baseDomain = (hostname) => {
8149
+ const parts = hostname.split(".").slice(-2);
8150
+ return parts.join(".");
8151
+ };
8152
+ const currentDomain = baseDomain(currentUrl.hostname);
8153
+ const targetDomain = baseDomain(targetUrl.hostname);
8154
+ targetIsSameSite = currentDomain === targetDomain;
8155
+ }
8156
+
8157
+ return {
8158
+ targetIsEmpty: false,
8159
+ targetIsCurrent,
8160
+ targetIsAnchor,
8161
+ targetIsSameOrigin,
8162
+ targetIsSameSite,
8163
+ };
8164
+ };
8165
+
8110
8166
  const setupBrowserIntegrationViaHistory = ({
8111
8167
  applyActions,
8112
8168
  applyRouting,
@@ -8226,20 +8282,18 @@ const setupBrowserIntegrationViaHistory = ({
8226
8282
  if (!linkElement) {
8227
8283
  return;
8228
8284
  }
8229
- const href = linkElement.href;
8230
- if (!href || !href.startsWith(window.location.origin)) {
8231
- return;
8232
- }
8233
8285
  if (linkElement.hasAttribute("data-readonly")) {
8234
8286
  return;
8235
8287
  }
8236
- // Ignore anchor navigation (same page, different hash)
8237
- const currentUrl = new URL(window.location.href);
8238
- const targetUrl = new URL(href);
8288
+ const href = linkElement.href;
8289
+ const { targetIsEmpty, targetIsSameOrigin, targetIsAnchor } =
8290
+ getLinkTargetInfo(href);
8239
8291
  if (
8240
- currentUrl.pathname === targetUrl.pathname &&
8241
- currentUrl.search === targetUrl.search &&
8242
- targetUrl.hash !== ""
8292
+ targetIsEmpty ||
8293
+ // Let link to other origins be handled by the browser
8294
+ !targetIsSameOrigin ||
8295
+ // Ignore anchor navigation (same page, different hash)
8296
+ targetIsAnchor
8243
8297
  ) {
8244
8298
  return;
8245
8299
  }
@@ -9803,54 +9857,57 @@ const withPropsStyle = (
9803
9857
  {
9804
9858
  marginStyles = {};
9805
9859
  if (margin !== undefined) {
9806
- marginStyles.margin = spacingSizes[margin] || margin;
9860
+ marginStyles.margin = sizeSpacingScale[margin] || margin;
9807
9861
  }
9808
9862
  if (marginLeft !== undefined) {
9809
- marginStyles.marginLeft = spacingSizes[marginLeft] || marginLeft;
9863
+ marginStyles.marginLeft = sizeSpacingScale[marginLeft] || marginLeft;
9810
9864
  } else if (marginX !== undefined) {
9811
- marginStyles.marginLeft = spacingSizes[marginX] || marginX;
9865
+ marginStyles.marginLeft = sizeSpacingScale[marginX] || marginX;
9812
9866
  }
9813
9867
  if (marginRight !== undefined) {
9814
- marginStyles.marginRight = spacingSizes[marginRight] || marginRight;
9868
+ marginStyles.marginRight = sizeSpacingScale[marginRight] || marginRight;
9815
9869
  } else if (marginX !== undefined) {
9816
- marginStyles.marginRight = spacingSizes[marginX] || marginX;
9870
+ marginStyles.marginRight = sizeSpacingScale[marginX] || marginX;
9817
9871
  }
9818
9872
  if (marginTop !== undefined) {
9819
- marginStyles.marginTop = spacingSizes[marginTop] || marginTop;
9873
+ marginStyles.marginTop = sizeSpacingScale[marginTop] || marginTop;
9820
9874
  } else if (marginY !== undefined) {
9821
- marginStyles.marginTop = spacingSizes[marginY] || marginY;
9875
+ marginStyles.marginTop = sizeSpacingScale[marginY] || marginY;
9822
9876
  }
9823
9877
  if (marginBottom !== undefined) {
9824
- marginStyles.marginBottom = spacingSizes[marginBottom] || marginBottom;
9878
+ marginStyles.marginBottom =
9879
+ sizeSpacingScale[marginBottom] || marginBottom;
9825
9880
  } else if (marginY !== undefined) {
9826
- marginStyles.marginBottom = spacingSizes[marginY] || marginY;
9881
+ marginStyles.marginBottom = sizeSpacingScale[marginY] || marginY;
9827
9882
  }
9828
9883
  }
9829
9884
  {
9830
9885
  paddingStyles = {};
9831
9886
  if (padding !== undefined) {
9832
- paddingStyles.padding = spacingSizes[padding] || padding;
9887
+ paddingStyles.padding = sizeSpacingScale[padding] || padding;
9833
9888
  }
9834
9889
  if (paddingLeft !== undefined) {
9835
- paddingStyles.paddingLeft = spacingSizes[paddingLeft] || paddingLeft;
9890
+ paddingStyles.paddingLeft =
9891
+ sizeSpacingScale[paddingLeft] || paddingLeft;
9836
9892
  } else if (paddingX !== undefined) {
9837
- paddingStyles.paddingLeft = spacingSizes[paddingX] || paddingX;
9893
+ paddingStyles.paddingLeft = sizeSpacingScale[paddingX] || paddingX;
9838
9894
  }
9839
9895
  if (paddingRight !== undefined) {
9840
- paddingStyles.paddingRight = spacingSizes[paddingRight] || paddingRight;
9896
+ paddingStyles.paddingRight =
9897
+ sizeSpacingScale[paddingRight] || paddingRight;
9841
9898
  } else if (paddingX !== undefined) {
9842
- paddingStyles.paddingRight = spacingSizes[paddingX] || paddingX;
9899
+ paddingStyles.paddingRight = sizeSpacingScale[paddingX] || paddingX;
9843
9900
  }
9844
9901
  if (paddingTop !== undefined) {
9845
- paddingStyles.paddingTop = spacingSizes[paddingTop] || paddingTop;
9902
+ paddingStyles.paddingTop = sizeSpacingScale[paddingTop] || paddingTop;
9846
9903
  } else if (paddingY !== undefined) {
9847
- paddingStyles.paddingTop = spacingSizes[paddingY] || paddingY;
9904
+ paddingStyles.paddingTop = sizeSpacingScale[paddingY] || paddingY;
9848
9905
  }
9849
9906
  if (paddingBottom !== undefined) {
9850
9907
  paddingStyles.paddingBottom =
9851
- spacingSizes[paddingBottom] || paddingBottom;
9908
+ sizeSpacingScale[paddingBottom] || paddingBottom;
9852
9909
  } else if (paddingY !== undefined) {
9853
- paddingStyles.paddingBottom = spacingSizes[paddingY] || paddingY;
9910
+ paddingStyles.paddingBottom = sizeSpacingScale[paddingY] || paddingY;
9854
9911
  }
9855
9912
  }
9856
9913
  }
@@ -9954,7 +10011,7 @@ const withPropsStyle = (
9954
10011
  if (textSize) {
9955
10012
  const fontSize =
9956
10013
  typeof textSize === "string"
9957
- ? typoSizes[textSize] || textSize
10014
+ ? sizeTypoScale[textSize] || textSize
9958
10015
  : textSize;
9959
10016
  typoStyles.fontSize = fontSize;
9960
10017
  }
@@ -10039,9 +10096,18 @@ const withPropsStyle = (
10039
10096
  };
10040
10097
 
10041
10098
  // Unified design scale using t-shirt sizes with rem units for accessibility.
10042
- // This scale is used for both typography and spacing to create visual harmony
10099
+ // This scale is used for spacing to create visual harmony
10043
10100
  // and consistent proportions throughout the design system.
10044
- const tshirtSizeToCSSValues = {
10101
+ const sizeSpacingScale = {
10102
+ xxs: "0.125rem", // 0.125 = 2px at 16px base
10103
+ xs: "0.25rem", // 0.25 = 4px at 16px base
10104
+ sm: "0.5rem", // 0.5 = 8px at 16px base
10105
+ md: "1rem", // 1 = 16px at 16px base (base font size)
10106
+ lg: "1.5rem", // 1.5 = 24px at 16px base
10107
+ xl: "2rem", // 2 = 32px at 16px base
10108
+ xxl: "3rem", // 3 = 48px at 16px base
10109
+ };
10110
+ const sizeTypoScale = {
10045
10111
  xxs: "0.625rem", // 0.625 = 10px at 16px base (smaller than before for more range)
10046
10112
  xs: "0.75rem", // 0.75 = 12px at 16px base
10047
10113
  sm: "0.875rem", // 0.875 = 14px at 16px base
@@ -10051,12 +10117,6 @@ const tshirtSizeToCSSValues = {
10051
10117
  xxl: "1.5rem", // 1.5 = 24px at 16px base
10052
10118
  };
10053
10119
 
10054
- // Typography and spacing use the same scale for consistent visual rhythm.
10055
- // When text size is "lg", using "lg" spacing creates naturally proportioned layouts.
10056
- // All values scale with user font preferences for better accessibility.
10057
- const typoSizes = tshirtSizeToCSSValues;
10058
- const spacingSizes = tshirtSizeToCSSValues;
10059
-
10060
10120
  const DEBUG = {
10061
10121
  registration: false,
10062
10122
  // Element registration/unregistration
@@ -11343,6 +11403,59 @@ const createSelectionKeyboardShortcuts = (selectionController, {
11343
11403
  }];
11344
11404
  };
11345
11405
 
11406
+ installImportMetaCss(import.meta);import.meta.css = /* css */`
11407
+ :root {
11408
+ --navi-icon-align-y: center;
11409
+ }
11410
+
11411
+ .navi_text {
11412
+ display: inline-flex;
11413
+ align-items: baseline;
11414
+ gap: 0.1em;
11415
+ }
11416
+
11417
+ .navi_icon {
11418
+ --align-y: var(--navi-icon-align-y, center);
11419
+
11420
+ display: inline-flex;
11421
+ width: 1em;
11422
+ height: 1em;
11423
+ flex-shrink: 0;
11424
+ align-self: var(--align-y);
11425
+ line-height: 1em;
11426
+ }
11427
+ `;
11428
+ const Text = ({
11429
+ children,
11430
+ ...rest
11431
+ }) => {
11432
+ const [remainingProps, innerStyle] = withPropsStyle(rest, {
11433
+ layout: true,
11434
+ typo: true
11435
+ });
11436
+ return jsx("span", {
11437
+ ...remainingProps,
11438
+ className: "navi_text",
11439
+ style: innerStyle,
11440
+ children: children
11441
+ });
11442
+ };
11443
+ const Icon = ({
11444
+ children,
11445
+ ...rest
11446
+ }) => {
11447
+ const [remainingProps, innerStyle] = withPropsStyle(rest, {
11448
+ layout: true,
11449
+ typo: true
11450
+ });
11451
+ return jsx("span", {
11452
+ ...remainingProps,
11453
+ className: "navi_icon",
11454
+ style: innerStyle,
11455
+ children: children
11456
+ });
11457
+ };
11458
+
11346
11459
  // autoFocus does not work so we focus in a useLayoutEffect,
11347
11460
  // see https://github.com/preactjs/preact/issues/1255
11348
11461
 
@@ -11439,6 +11552,9 @@ const useAutoFocus = (
11439
11552
 
11440
11553
  installImportMetaCss(import.meta);import.meta.css = /* css */`
11441
11554
  .navi_link {
11555
+ position: relative;
11556
+ display: inline-flex;
11557
+ gap: 0.1em;
11442
11558
  border-radius: 2px;
11443
11559
  }
11444
11560
  /* Focus */
@@ -11510,8 +11626,13 @@ const LinkPlain = forwardRef((props, ref) => {
11510
11626
  onClick,
11511
11627
  onKeyDown,
11512
11628
  href,
11629
+ target,
11630
+ rel,
11513
11631
  // visual
11514
11632
  className,
11633
+ blankTargetIcon,
11634
+ anchorIcon,
11635
+ icon,
11515
11636
  ...rest
11516
11637
  } = props;
11517
11638
  const innerRef = useRef();
@@ -11526,18 +11647,43 @@ const LinkPlain = forwardRef((props, ref) => {
11526
11647
  layout: true,
11527
11648
  typo: true
11528
11649
  });
11650
+ const {
11651
+ targetIsSameSite,
11652
+ targetIsAnchor,
11653
+ targetIsCurrent
11654
+ } = getLinkTargetInfo(href);
11655
+ const innerTarget = target === undefined ? targetIsSameSite ? "_self" : "_blank" : target;
11656
+ const innerRel = rel === undefined ? targetIsSameSite ? undefined : "noopener noreferrer" : rel;
11657
+ let innerIcon;
11658
+ if (icon === undefined) {
11659
+ const innerBlankTargetIcon = blankTargetIcon === undefined ? innerTarget === "_blank" : blankTargetIcon;
11660
+ const innerAnchorIcon = anchorIcon === undefined ? targetIsAnchor : anchorIcon;
11661
+ if (innerBlankTargetIcon) {
11662
+ innerIcon = innerBlankTargetIcon === true ? jsx(BlankTargetLinkSvg, {}) : innerBlankTargetIcon;
11663
+ } else if (innerAnchorIcon) {
11664
+ innerIcon = innerAnchorIcon === true ? jsx(AnchorLinkSvg, {}) : anchorIcon;
11665
+ }
11666
+ } else {
11667
+ innerIcon = icon;
11668
+ }
11529
11669
  return jsx("a", {
11530
11670
  ...remainingProps,
11531
11671
  ref: innerRef,
11532
- href: href,
11533
11672
  className: innerClassName,
11534
11673
  style: innerStyle,
11674
+ href: href,
11675
+ rel: innerRel,
11676
+ target: innerTarget === "_self" ? undefined : target,
11535
11677
  "aria-busy": loading,
11536
11678
  inert: disabled,
11537
11679
  "data-disabled": disabled ? "" : undefined,
11538
11680
  "data-readonly": readOnly ? "" : undefined,
11539
11681
  "data-active": active ? "" : undefined,
11540
11682
  "data-visited": visited || isVisited ? "" : undefined,
11683
+ "data-external": targetIsSameSite ? undefined : "",
11684
+ "data-internal": targetIsSameSite ? "" : undefined,
11685
+ "data-anchor": targetIsAnchor ? "" : undefined,
11686
+ "data-current": targetIsCurrent ? "" : undefined,
11541
11687
  onClick: e => {
11542
11688
  closeValidationMessage(e.target, "click");
11543
11689
  if (readOnly) {
@@ -11555,13 +11701,46 @@ const LinkPlain = forwardRef((props, ref) => {
11555
11701
  }
11556
11702
  onKeyDown?.(e);
11557
11703
  },
11558
- children: jsx(LoaderBackground, {
11704
+ children: jsxs(LoaderBackground, {
11559
11705
  loading: loading,
11560
11706
  color: "light-dark(#355fcc, #3b82f6)",
11561
- children: children
11707
+ children: [children, innerIcon && jsx(Icon, {
11708
+ children: innerIcon
11709
+ })]
11562
11710
  })
11563
11711
  });
11564
11712
  });
11713
+ const BlankTargetLinkSvg = () => {
11714
+ return jsx("svg", {
11715
+ viewBox: "0 0 24 24",
11716
+ width: "100%",
11717
+ height: "100%",
11718
+ xmlns: "http://www.w3.org/2000/svg",
11719
+ children: jsx("path", {
11720
+ d: "M10.0002 5H8.2002C7.08009 5 6.51962 5 6.0918 5.21799C5.71547 5.40973 5.40973 5.71547 5.21799 6.0918C5 6.51962 5 7.08009 5 8.2002V15.8002C5 16.9203 5 17.4801 5.21799 17.9079C5.40973 18.2842 5.71547 18.5905 6.0918 18.7822C6.5192 19 7.07899 19 8.19691 19H15.8031C16.921 19 17.48 19 17.9074 18.7822C18.2837 18.5905 18.5905 18.2839 18.7822 17.9076C19 17.4802 19 16.921 19 15.8031V14M20 9V4M20 4H15M20 4L13 11",
11721
+ stroke: "currentColor",
11722
+ fill: "none",
11723
+ "stroke-width": "2",
11724
+ "stroke-linecap": "round",
11725
+ "stroke-linejoin": "round"
11726
+ })
11727
+ });
11728
+ };
11729
+ const AnchorLinkSvg = () => {
11730
+ return jsxs("svg", {
11731
+ viewBox: "0 0 24 24",
11732
+ width: "100%",
11733
+ height: "100%",
11734
+ xmlns: "http://www.w3.org/2000/svg",
11735
+ children: [jsx("path", {
11736
+ d: "M13.2218 3.32234C15.3697 1.17445 18.8521 1.17445 21 3.32234C23.1479 5.47022 23.1479 8.95263 21 11.1005L17.4645 14.636C15.3166 16.7839 11.8342 16.7839 9.6863 14.636C9.48752 14.4373 9.30713 14.2271 9.14514 14.0075C8.90318 13.6796 8.97098 13.2301 9.25914 12.9419C9.73221 12.4688 10.5662 12.6561 11.0245 13.1435C11.0494 13.1699 11.0747 13.196 11.1005 13.2218C12.4673 14.5887 14.6834 14.5887 16.0503 13.2218L19.5858 9.6863C20.9526 8.31947 20.9526 6.10339 19.5858 4.73655C18.219 3.36972 16.0029 3.36972 14.636 4.73655L13.5754 5.79721C13.1849 6.18774 12.5517 6.18774 12.1612 5.79721C11.7706 5.40669 11.7706 4.77352 12.1612 4.383L13.2218 3.32234Z",
11737
+ fill: "currentColor"
11738
+ }), jsx("path", {
11739
+ d: "M6.85787 9.6863C8.90184 7.64233 12.2261 7.60094 14.3494 9.42268C14.7319 9.75083 14.7008 10.3287 14.3444 10.685C13.9253 11.1041 13.2317 11.0404 12.7416 10.707C11.398 9.79292 9.48593 9.88667 8.27209 11.1005L4.73655 14.636C3.36972 16.0029 3.36972 18.219 4.73655 19.5858C6.10339 20.9526 8.31947 20.9526 9.6863 19.5858L10.747 18.5251C11.1375 18.1346 11.7706 18.1346 12.1612 18.5251C12.5517 18.9157 12.5517 19.5488 12.1612 19.9394L11.1005 21C8.95263 23.1479 5.47022 23.1479 3.32234 21C1.17445 18.8521 1.17445 15.3697 3.32234 13.2218L6.85787 9.6863Z",
11740
+ fill: "currentColor"
11741
+ })]
11742
+ });
11743
+ };
11565
11744
  const LinkWithSelection = forwardRef((props, ref) => {
11566
11745
  const {
11567
11746
  selection,
@@ -18971,54 +19150,19 @@ const Overflow = ({
18971
19150
  });
18972
19151
  };
18973
19152
 
18974
- installImportMetaCss(import.meta);import.meta.css = /* css */`
18975
- :root {
18976
- --navi-icon-align-y: center;
18977
- }
18978
-
18979
- .navi_text {
18980
- display: inline-flex;
18981
- align-items: baseline;
18982
- gap: 0.1em;
18983
- }
18984
-
18985
- .navi_icon {
18986
- --align-y: var(--navi-icon-align-y, center);
18987
-
18988
- display: inline-flex;
18989
- width: 1em;
18990
- height: 1em;
18991
- flex-shrink: 0;
18992
- align-self: var(--align-y);
18993
- line-height: 1em;
18994
- }
18995
- `;
18996
- const Text = ({
18997
- children,
18998
- ...rest
18999
- }) => {
19000
- const [remainingProps, innerStyle] = withPropsStyle(rest, {
19001
- layout: true,
19002
- typo: true
19003
- });
19004
- return jsx("span", {
19005
- ...remainingProps,
19006
- className: "navi_text",
19007
- style: innerStyle,
19008
- children: children
19009
- });
19010
- };
19011
- const Icon = ({
19153
+ const Paragraph = ({
19012
19154
  children,
19013
19155
  ...rest
19014
19156
  }) => {
19157
+ if (rest.marginTop === undefined) {
19158
+ rest.marginTop = "md";
19159
+ }
19015
19160
  const [remainingProps, innerStyle] = withPropsStyle(rest, {
19016
19161
  layout: true,
19017
19162
  typo: true
19018
19163
  });
19019
- return jsx("span", {
19164
+ return jsx("p", {
19020
19165
  ...remainingProps,
19021
- className: "navi_icon",
19022
19166
  style: innerStyle,
19023
19167
  children: children
19024
19168
  });
@@ -19056,6 +19200,26 @@ const TextAndCount = ({
19056
19200
  });
19057
19201
  };
19058
19202
 
19203
+ const Title = ({
19204
+ children,
19205
+ as = "h1",
19206
+ ...rest
19207
+ }) => {
19208
+ if (rest.bold === undefined) {
19209
+ rest.bold = true;
19210
+ }
19211
+ const [remainingProps, innerStyle] = withPropsStyle(rest, {
19212
+ layout: true,
19213
+ typo: true
19214
+ });
19215
+ const HeadingTag = as;
19216
+ return jsx(HeadingTag, {
19217
+ ...remainingProps,
19218
+ style: innerStyle,
19219
+ children: children
19220
+ });
19221
+ };
19222
+
19059
19223
  installImportMetaCss(import.meta);import.meta.css = /* css */`
19060
19224
  .navi_flex_row {
19061
19225
  display: flex;
@@ -19113,7 +19277,7 @@ const FlexColumn = ({
19113
19277
  alignItems: alignX !== "stretch" ? alignX : undefined,
19114
19278
  // Only set justifyContent if it's not the default "start"
19115
19279
  justifyContent: alignY !== "start" ? alignY : undefined,
19116
- gap: tshirtSizeToCSSValues[gap] || gap
19280
+ gap: sizeSpacingScale[gap] || gap
19117
19281
  }
19118
19282
  });
19119
19283
  return jsx("div", {
@@ -19244,5 +19408,5 @@ const useDependenciesDiff = (inputs) => {
19244
19408
  return diffRef.current;
19245
19409
  };
19246
19410
 
19247
- export { ActionRenderer, ActiveKeyboardShortcuts, Button, Checkbox, CheckboxList, Col, Colgroup, Details, Editable, ErrorBoundaryContext, FlexColumn, FlexItem, FlexRow, FontSizedSvg, Form, Icon, IconAndText, Input, Label, Link, LinkWithIcon, Overflow, Radio, RadioList, Route, RouteLink, Routes, RowNumberCol, RowNumberTableCell, SINGLE_SPACE_CONSTRAINT, SVGMaskOverlay, Select, SelectionContext, Spacing, SummaryMarker, Tab, TabList, Table, TableCell, Tbody, Text, TextAndCount, Thead, Tr, UITransition, actionIntegratedVia, addCustomMessage, createAction, createSelectionKeyboardShortcuts, createUniqueValueConstraint, enableDebugActions, enableDebugOnDocumentLoading, forwardActionRequested, goBack, goForward, goTo, installCustomConstraintValidation, isCellSelected, isColumnSelected, isRowSelected, openCallout, rawUrlPart, reload, removeCustomMessage, rerunActions, resource, setBaseUrl, setupRoutes, stopLoad, stringifyTableSelectionValue, updateActions, useActionData, useActionStatus, useCellsAndColumns, useDependenciesDiff, useDocumentState, useDocumentUrl, useEditionController, useFocusGroup, useKeyboardShortcuts, useNavState, useRouteStatus, useRunOnMount, useSelectableElement, useSelectionController, useSignalSync, useStateArray, valueInLocalStorage };
19411
+ export { ActionRenderer, ActiveKeyboardShortcuts, Button, Checkbox, CheckboxList, Col, Colgroup, Details, Editable, ErrorBoundaryContext, FlexColumn, FlexItem, FlexRow, FontSizedSvg, Form, Icon, IconAndText, Input, Label, Link, LinkWithIcon, Overflow, Paragraph, Radio, RadioList, Route, RouteLink, Routes, RowNumberCol, RowNumberTableCell, SINGLE_SPACE_CONSTRAINT, SVGMaskOverlay, Select, SelectionContext, Spacing, SummaryMarker, Tab, TabList, Table, TableCell, Tbody, Text, TextAndCount, Thead, Title, Tr, UITransition, actionIntegratedVia, addCustomMessage, createAction, createSelectionKeyboardShortcuts, createUniqueValueConstraint, enableDebugActions, enableDebugOnDocumentLoading, forwardActionRequested, goBack, goForward, goTo, installCustomConstraintValidation, isCellSelected, isColumnSelected, isRowSelected, openCallout, rawUrlPart, reload, removeCustomMessage, rerunActions, resource, setBaseUrl, setupRoutes, stopLoad, stringifyTableSelectionValue, updateActions, useActionData, useActionStatus, useCellsAndColumns, useDependenciesDiff, useDocumentState, useDocumentUrl, useEditionController, useFocusGroup, useKeyboardShortcuts, useNavState, useRouteStatus, useRunOnMount, useSelectableElement, useSelectionController, useSignalSync, useStateArray, valueInLocalStorage };
19248
19412
  //# sourceMappingURL=jsenv_navi.js.map