@texturehq/edges 1.35.2 → 1.35.3

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/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{background-color:transparent!important;box-shadow:none!important;border:1px solid var(--color-border-muted, rgba(0, 0, 0, .2))!important;opacity:.6}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button:hover{opacity:1}.map-tooltip .mapboxgl-popup-content{padding:.75rem 1rem;background-color:var(--color-background-surface);border:1px solid var(--color-border-default);border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;font-family:inherit;max-width:none!important}.map-tooltip .mapboxgl-popup-tip{border-top-color:var(--color-background-surface)}.map-tooltip-bare .mapboxgl-popup-content{padding:0!important;background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important}.map-tooltip-bare .mapboxgl-popup-tip{display:none!important}.edges-stack-nav{--edges-stack-nav-pane-shift: 12%;--edges-stack-nav-pane-duration: var(--motion-duration-normal, .2s);--edges-stack-nav-pane-opacity-duration: var(--motion-duration-fast, .15s);--edges-stack-nav-pane-easing: var(--motion-easing-standard, ease);background:var(--edges-stack-nav-background, var(--color-background-surface));border-right:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__header{border-bottom:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__footer,.edges-stack-nav__divider{border-top:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__back{border-bottom:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__pane{opacity:0;pointer-events:none}.edges-stack-nav--animated .edges-stack-nav__pane{transition:transform var(--edges-stack-nav-pane-duration) var(--edges-stack-nav-pane-easing),opacity var(--edges-stack-nav-pane-opacity-duration) var(--edges-stack-nav-pane-easing)}.edges-stack-nav__pane--top{transform:translate(0);opacity:1;pointer-events:auto}.edges-stack-nav__pane--above{transform:translate(calc(var(--edges-stack-nav-pane-shift) * -1))}.edges-stack-nav__pane--below{transform:translate(var(--edges-stack-nav-pane-shift))}.edges-stack-nav__pane--instant{transition:none}.edges-stack-nav__row:hover,.edges-stack-nav__row:focus-visible{background:var(--edges-stack-nav-row-hover-background, var(--color-background-hover))}.edges-stack-nav__row--active,.edges-stack-nav__row--active:hover,.edges-stack-nav__row--active:focus-visible{background:var(--edges-stack-nav-row-active-background, var(--color-background-selected));color:var(--edges-stack-nav-row-active-color, var(--color-text-primary))}
1
+ .mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{background-color:transparent!important;box-shadow:none!important;border:1px solid var(--color-border-muted, rgba(0, 0, 0, .2))!important;opacity:.6}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button:hover{opacity:1}.map-tooltip .mapboxgl-popup-content{padding:.75rem 1rem;background-color:var(--color-background-surface);border:1px solid var(--color-border-default);border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;font-family:inherit;max-width:none!important}.map-tooltip .mapboxgl-popup-tip{border-top-color:var(--color-background-surface)}.map-tooltip-bare .mapboxgl-popup-content{padding:0!important;background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important}.map-tooltip-bare .mapboxgl-popup-tip{display:none!important}.edges-stack-nav{--edges-stack-nav-pane-shift: 12%;--edges-stack-nav-pane-duration: var(--motion-duration-normal, .2s);--edges-stack-nav-pane-opacity-duration: var(--motion-duration-fast, .15s);--edges-stack-nav-pane-easing: var(--motion-easing-standard, ease);background:var(--edges-stack-nav-background, var(--color-background-surface));border-right:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__header{border-bottom:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__footer,.edges-stack-nav__divider,.edges-stack-nav__bottom-items{border-top:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__back{border-bottom:1px solid var(--edges-stack-nav-border-color, var(--color-border-default))}.edges-stack-nav__pane{opacity:0;pointer-events:none}.edges-stack-nav--animated .edges-stack-nav__pane{transition:transform var(--edges-stack-nav-pane-duration) var(--edges-stack-nav-pane-easing),opacity var(--edges-stack-nav-pane-opacity-duration) var(--edges-stack-nav-pane-easing)}.edges-stack-nav__pane--top{transform:translate(0);opacity:1;pointer-events:auto}.edges-stack-nav__pane--above{transform:translate(calc(var(--edges-stack-nav-pane-shift) * -1))}.edges-stack-nav__pane--below{transform:translate(var(--edges-stack-nav-pane-shift))}.edges-stack-nav__pane--instant{transition:none}.edges-stack-nav__row:hover,.edges-stack-nav__row:focus-visible{background:var(--edges-stack-nav-row-hover-background, var(--color-background-hover))}.edges-stack-nav__row--active,.edges-stack-nav__row--active:hover,.edges-stack-nav__row--active:focus-visible{background:var(--edges-stack-nav-row-active-background, var(--color-background-selected));color:var(--edges-stack-nav-row-active-color, var(--color-text-primary))}
2
2
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Maps/mapbox-overrides.css","../src/components/StackNav/StackNav.css"],"sourcesContent":["/* Attribution toggle button - muted style for mobile */\n.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button {\n background-color: transparent !important;\n box-shadow: none !important;\n border: 1px solid var(--color-border-muted, rgba(0, 0, 0, 0.2)) !important;\n opacity: 0.6;\n}\n\n.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button:hover {\n opacity: 1;\n}\n\n/* Tooltip popup styling */\n.map-tooltip .mapboxgl-popup-content {\n padding: 0.75rem 1rem;\n background-color: var(--color-background-surface);\n border: 1px solid var(--color-border-default);\n border-radius: 0.5rem;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n font-family: inherit;\n max-width: none !important; /* Allow custom tooltip widths */\n}\n\n.map-tooltip .mapboxgl-popup-tip {\n border-top-color: var(--color-background-surface);\n}\n\n/* Bare tooltip — strip the default popup chrome so the content (which\n brings its own card styling) sits directly over the map. Hides the\n built-in tip arrow; consumers can render their own caret if desired. */\n.map-tooltip-bare .mapboxgl-popup-content {\n padding: 0 !important;\n background: transparent !important;\n border: none !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n}\n\n.map-tooltip-bare .mapboxgl-popup-tip {\n display: none !important;\n}\n","/**\n * StackNav surface + row affordances.\n *\n * All surface colors come from CSS custom properties on the rail so consumers\n * can override per-instance (via the `theme` prop) or globally (by setting\n * `--edges-stack-nav-*` on an ancestor). The component intentionally does NOT\n * default to the `--color-background-paper` (linen) surface — apps that want\n * the docs-style paper look opt in by passing `theme={{ background:\n * \"var(--color-background-paper)\" }}` or by setting the CSS variable.\n */\n\n.edges-stack-nav {\n --edges-stack-nav-pane-shift: 12%;\n --edges-stack-nav-pane-duration: var(--motion-duration-normal, 200ms);\n --edges-stack-nav-pane-opacity-duration: var(--motion-duration-fast, 150ms);\n --edges-stack-nav-pane-easing: var(--motion-easing-standard, ease);\n\n background: var(--edges-stack-nav-background, var(--color-background-surface));\n border-right: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__header {\n border-bottom: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__footer {\n border-top: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__divider {\n border-top: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__back {\n border-bottom: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__pane {\n opacity: 0;\n pointer-events: none;\n}\n\n.edges-stack-nav--animated .edges-stack-nav__pane {\n transition:\n transform var(--edges-stack-nav-pane-duration) var(--edges-stack-nav-pane-easing),\n opacity var(--edges-stack-nav-pane-opacity-duration) var(--edges-stack-nav-pane-easing);\n}\n\n.edges-stack-nav__pane--top {\n transform: translateX(0);\n opacity: 1;\n pointer-events: auto;\n}\n\n.edges-stack-nav__pane--above {\n transform: translateX(calc(var(--edges-stack-nav-pane-shift) * -1));\n}\n\n.edges-stack-nav__pane--below {\n transform: translateX(var(--edges-stack-nav-pane-shift));\n}\n\n.edges-stack-nav__pane--instant {\n transition: none;\n}\n\n.edges-stack-nav__row:hover,\n.edges-stack-nav__row:focus-visible {\n background: var(--edges-stack-nav-row-hover-background, var(--color-background-hover));\n}\n\n.edges-stack-nav__row--active,\n.edges-stack-nav__row--active:hover,\n.edges-stack-nav__row--active:focus-visible {\n background: var(--edges-stack-nav-row-active-background, var(--color-background-selected));\n color: var(--edges-stack-nav-row-active-color, var(--color-text-primary));\n}\n"],"mappings":"AACA,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,4BACtC,iBAAkB,sBAClB,WAAY,eACZ,OAAQ,IAAI,MAAM,IAAI,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAC1D,QAAS,EACX,CAEA,CAPC,oBAOoB,CAPC,iBAOiB,CAPC,2BAO2B,OACjE,QAAS,CACX,CAGA,CAAC,YAAY,CAAC,uBAbd,QAcW,OAAQ,KACjB,iBAAkB,IAAI,4BACtB,OAAQ,IAAI,MAAM,IAAI,wBAhBxB,cAiBiB,MACf,WACE,EAAE,KAAK,KAAK,KAAK,SAAgB,CACjC,EAAE,IAAI,KAAK,KAAK,UAClB,YAAa,QACb,UAAW,cACb,CAEA,CAZC,YAYY,CAAC,mBACZ,iBAAkB,IAAI,2BACxB,CAKA,CAAC,iBAAiB,CAnBJ,uBAbd,QAiCW,YACT,WAAY,sBACZ,OAAQ,eAnCV,cAoCiB,YACf,WAAY,cACd,CAEA,CARC,iBAQiB,CAfJ,mBAgBZ,QAAS,cACX,CC/BA,CAAC,gBACC,8BAA8B,IAC9B,iCAAiC,IAAI,wBAAwB,EAAE,KAC/D,yCAAyC,IAAI,sBAAsB,EAAE,MACrE,+BAA+B,IAAI,wBAAwB,EAAE,MAE7D,WAAY,IAAI,4BAA4B,EAAE,IAAI,6BAClD,aAAc,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBAClE,CAEA,CAAC,wBACC,cAAe,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBACnE,CAEA,CAAC,wBAID,CAAC,yBAHC,WAAY,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBAChE,CAMA,CAAC,sBACC,cAAe,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBACnE,CAEA,CAAC,sBACC,QAAS,EACT,eAAgB,IAClB,CAEA,CAAC,0BAA0B,CAL1B,sBAMC,WACE,UAAU,IAAI,iCAAiC,IAAI,8BAA8B,CACjF,QAAQ,IAAI,yCAAyC,IAAI,8BAC7D,CAEA,CAAC,2BACC,UAAW,UAAW,GACtB,QAAS,EACT,eAAgB,IAClB,CAEA,CAAC,6BACC,UAAW,UAAW,KAAK,IAAI,8BAA8B,EAAE,IACjE,CAEA,CAAC,6BACC,UAAW,UAAW,IAAI,8BAC5B,CAEA,CAAC,+BACC,WAAY,IACd,CAEA,CAAC,oBAAoB,OACrB,CADC,oBACoB,eACnB,WAAY,IAAI,sCAAsC,EAAE,IAAI,0BAC9D,CAEA,CAAC,6BACD,CADC,4BAC4B,OAC7B,CAFC,4BAE4B,eAC3B,WAAY,IAAI,uCAAuC,EAAE,IAAI,8BAC7D,MAAO,IAAI,kCAAkC,EAAE,IAAI,sBACrD","names":[]}
1
+ {"version":3,"sources":["../src/components/Maps/mapbox-overrides.css","../src/components/StackNav/StackNav.css"],"sourcesContent":["/* Attribution toggle button - muted style for mobile */\n.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button {\n background-color: transparent !important;\n box-shadow: none !important;\n border: 1px solid var(--color-border-muted, rgba(0, 0, 0, 0.2)) !important;\n opacity: 0.6;\n}\n\n.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button:hover {\n opacity: 1;\n}\n\n/* Tooltip popup styling */\n.map-tooltip .mapboxgl-popup-content {\n padding: 0.75rem 1rem;\n background-color: var(--color-background-surface);\n border: 1px solid var(--color-border-default);\n border-radius: 0.5rem;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n font-family: inherit;\n max-width: none !important; /* Allow custom tooltip widths */\n}\n\n.map-tooltip .mapboxgl-popup-tip {\n border-top-color: var(--color-background-surface);\n}\n\n/* Bare tooltip — strip the default popup chrome so the content (which\n brings its own card styling) sits directly over the map. Hides the\n built-in tip arrow; consumers can render their own caret if desired. */\n.map-tooltip-bare .mapboxgl-popup-content {\n padding: 0 !important;\n background: transparent !important;\n border: none !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n}\n\n.map-tooltip-bare .mapboxgl-popup-tip {\n display: none !important;\n}\n","/**\n * StackNav surface + row affordances.\n *\n * All surface colors come from CSS custom properties on the rail so consumers\n * can override per-instance (via the `theme` prop) or globally (by setting\n * `--edges-stack-nav-*` on an ancestor). The component intentionally does NOT\n * default to the `--color-background-paper` (linen) surface — apps that want\n * the docs-style paper look opt in by passing `theme={{ background:\n * \"var(--color-background-paper)\" }}` or by setting the CSS variable.\n */\n\n.edges-stack-nav {\n --edges-stack-nav-pane-shift: 12%;\n --edges-stack-nav-pane-duration: var(--motion-duration-normal, 200ms);\n --edges-stack-nav-pane-opacity-duration: var(--motion-duration-fast, 150ms);\n --edges-stack-nav-pane-easing: var(--motion-easing-standard, ease);\n\n background: var(--edges-stack-nav-background, var(--color-background-surface));\n border-right: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__header {\n border-bottom: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__footer {\n border-top: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__divider {\n border-top: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__bottom-items {\n border-top: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__back {\n border-bottom: 1px solid var(--edges-stack-nav-border-color, var(--color-border-default));\n}\n\n.edges-stack-nav__pane {\n opacity: 0;\n pointer-events: none;\n}\n\n.edges-stack-nav--animated .edges-stack-nav__pane {\n transition:\n transform var(--edges-stack-nav-pane-duration) var(--edges-stack-nav-pane-easing),\n opacity var(--edges-stack-nav-pane-opacity-duration) var(--edges-stack-nav-pane-easing);\n}\n\n.edges-stack-nav__pane--top {\n transform: translateX(0);\n opacity: 1;\n pointer-events: auto;\n}\n\n.edges-stack-nav__pane--above {\n transform: translateX(calc(var(--edges-stack-nav-pane-shift) * -1));\n}\n\n.edges-stack-nav__pane--below {\n transform: translateX(var(--edges-stack-nav-pane-shift));\n}\n\n.edges-stack-nav__pane--instant {\n transition: none;\n}\n\n.edges-stack-nav__row:hover,\n.edges-stack-nav__row:focus-visible {\n background: var(--edges-stack-nav-row-hover-background, var(--color-background-hover));\n}\n\n.edges-stack-nav__row--active,\n.edges-stack-nav__row--active:hover,\n.edges-stack-nav__row--active:focus-visible {\n background: var(--edges-stack-nav-row-active-background, var(--color-background-selected));\n color: var(--edges-stack-nav-row-active-color, var(--color-text-primary));\n}\n"],"mappings":"AACA,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,4BACtC,iBAAkB,sBAClB,WAAY,eACZ,OAAQ,IAAI,MAAM,IAAI,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,eAC1D,QAAS,EACX,CAEA,CAPC,oBAOoB,CAPC,iBAOiB,CAPC,2BAO2B,OACjE,QAAS,CACX,CAGA,CAAC,YAAY,CAAC,uBAbd,QAcW,OAAQ,KACjB,iBAAkB,IAAI,4BACtB,OAAQ,IAAI,MAAM,IAAI,wBAhBxB,cAiBiB,MACf,WACE,EAAE,KAAK,KAAK,KAAK,SAAgB,CACjC,EAAE,IAAI,KAAK,KAAK,UAClB,YAAa,QACb,UAAW,cACb,CAEA,CAZC,YAYY,CAAC,mBACZ,iBAAkB,IAAI,2BACxB,CAKA,CAAC,iBAAiB,CAnBJ,uBAbd,QAiCW,YACT,WAAY,sBACZ,OAAQ,eAnCV,cAoCiB,YACf,WAAY,cACd,CAEA,CARC,iBAQiB,CAfJ,mBAgBZ,QAAS,cACX,CC/BA,CAAC,gBACC,8BAA8B,IAC9B,iCAAiC,IAAI,wBAAwB,EAAE,KAC/D,yCAAyC,IAAI,sBAAsB,EAAE,MACrE,+BAA+B,IAAI,wBAAwB,EAAE,MAE7D,WAAY,IAAI,4BAA4B,EAAE,IAAI,6BAClD,aAAc,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBAClE,CAEA,CAAC,wBACC,cAAe,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBACnE,CAEA,CAAC,wBAID,CAAC,yBAID,CAAC,8BAPC,WAAY,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBAChE,CAUA,CAAC,sBACC,cAAe,IAAI,MAAM,IAAI,8BAA8B,EAAE,IAAI,wBACnE,CAEA,CAAC,sBACC,QAAS,EACT,eAAgB,IAClB,CAEA,CAAC,0BAA0B,CAL1B,sBAMC,WACE,UAAU,IAAI,iCAAiC,IAAI,8BAA8B,CACjF,QAAQ,IAAI,yCAAyC,IAAI,8BAC7D,CAEA,CAAC,2BACC,UAAW,UAAW,GACtB,QAAS,EACT,eAAgB,IAClB,CAEA,CAAC,6BACC,UAAW,UAAW,KAAK,IAAI,8BAA8B,EAAE,IACjE,CAEA,CAAC,6BACC,UAAW,UAAW,IAAI,8BAC5B,CAEA,CAAC,+BACC,WAAY,IACd,CAEA,CAAC,oBAAoB,OACrB,CADC,oBACoB,eACnB,WAAY,IAAI,sCAAsC,EAAE,IAAI,0BAC9D,CAEA,CAAC,6BACD,CADC,4BAC4B,OAC7B,CAFC,4BAE4B,eAC3B,WAAY,IAAI,uCAAuC,EAAE,IAAI,8BAC7D,MAAO,IAAI,kCAAkC,EAAE,IAAI,sBACrD","names":[]}
package/dist/index.d.cts CHANGED
@@ -6750,6 +6750,19 @@ type StackNavTheme = {
6750
6750
  type StackNavProps = {
6751
6751
  /** Root pane items. Each item can recurse with `children`. */
6752
6752
  items: StackNavItem[];
6753
+ /**
6754
+ * Additional L1 items pinned to the bottom of the root pane. Behave identically
6755
+ * to `items` — leaves navigate, parents push a sub-pane on click, deep-links
6756
+ * via `value` open them. Use for "tool" sections that sit at the same level
6757
+ * as the primary IA but visually belong at the bottom (e.g., Settings,
6758
+ * Help, Inspector). A subtle border separates them from `items`.
6759
+ *
6760
+ * **Constraint:** L1 `id` and `href` values must be unique across `items` and
6761
+ * `bottomItems`. Stack tokens and `value` lookups use these as keys, so a
6762
+ * collision causes the wrong entry to resolve. Dev builds log a warning when
6763
+ * a duplicate is detected.
6764
+ */
6765
+ bottomItems?: StackNavItem[];
6753
6766
  /**
6754
6767
  * Active leaf identifier (matched against `href` or `id`). When set, the
6755
6768
  * StackNav auto-opens the path that contains it on first render and again
@@ -6813,7 +6826,7 @@ type StackNavProps = {
6813
6826
  /** Extra classes appended to the rail container. */
6814
6827
  className?: string;
6815
6828
  };
6816
- declare function StackNav({ items, value, defaultStack, stack: controlledStack, onStackChange, onSelect, linkComponent: LinkComponent, header, footer, rootLabel, sticky, width, ariaLabel, theme, animated, style, className, }: StackNavProps): react_jsx_runtime.JSX.Element;
6829
+ declare function StackNav({ items, bottomItems, value, defaultStack, stack: controlledStack, onStackChange, onSelect, linkComponent: LinkComponent, header, footer, rootLabel, sticky, width, ariaLabel, theme, animated, style, className, }: StackNavProps): react_jsx_runtime.JSX.Element;
6817
6830
 
6818
6831
  /**
6819
6832
  * StatList — Compact key-value statistics display
package/dist/index.d.ts CHANGED
@@ -6750,6 +6750,19 @@ type StackNavTheme = {
6750
6750
  type StackNavProps = {
6751
6751
  /** Root pane items. Each item can recurse with `children`. */
6752
6752
  items: StackNavItem[];
6753
+ /**
6754
+ * Additional L1 items pinned to the bottom of the root pane. Behave identically
6755
+ * to `items` — leaves navigate, parents push a sub-pane on click, deep-links
6756
+ * via `value` open them. Use for "tool" sections that sit at the same level
6757
+ * as the primary IA but visually belong at the bottom (e.g., Settings,
6758
+ * Help, Inspector). A subtle border separates them from `items`.
6759
+ *
6760
+ * **Constraint:** L1 `id` and `href` values must be unique across `items` and
6761
+ * `bottomItems`. Stack tokens and `value` lookups use these as keys, so a
6762
+ * collision causes the wrong entry to resolve. Dev builds log a warning when
6763
+ * a duplicate is detected.
6764
+ */
6765
+ bottomItems?: StackNavItem[];
6753
6766
  /**
6754
6767
  * Active leaf identifier (matched against `href` or `id`). When set, the
6755
6768
  * StackNav auto-opens the path that contains it on first render and again
@@ -6813,7 +6826,7 @@ type StackNavProps = {
6813
6826
  /** Extra classes appended to the rail container. */
6814
6827
  className?: string;
6815
6828
  };
6816
- declare function StackNav({ items, value, defaultStack, stack: controlledStack, onStackChange, onSelect, linkComponent: LinkComponent, header, footer, rootLabel, sticky, width, ariaLabel, theme, animated, style, className, }: StackNavProps): react_jsx_runtime.JSX.Element;
6829
+ declare function StackNav({ items, bottomItems, value, defaultStack, stack: controlledStack, onStackChange, onSelect, linkComponent: LinkComponent, header, footer, rootLabel, sticky, width, ariaLabel, theme, animated, style, className, }: StackNavProps): react_jsx_runtime.JSX.Element;
6817
6830
 
6818
6831
  /**
6819
6832
  * StatList — Compact key-value statistics display