@dloizides/ui-nav 1.29.0 → 1.30.0

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import React, { useState, useCallback, useMemo, useEffect, useRef } from 'react';
2
- import { StyleSheet, Platform, Pressable, Text, View, TextInput, useWindowDimensions, ScrollView, ActivityIndicator, Animated } from 'react-native';
2
+ import { StyleSheet, Platform, Pressable, Text, View, TextInput, useWindowDimensions, Image, ScrollView, ActivityIndicator, Animated } from 'react-native';
3
3
  import { useUi, UiProvider } from '@dloizides/ui-feedback';
4
4
  import { jsxs, jsx } from 'react/jsx-runtime';
5
5
  import { Collapse, motionDurations, motionEasings } from '@dloizides/ui-motion';
@@ -878,7 +878,9 @@ var NAV_TEST_IDS = {
878
878
  pillNavMenu: "pill-nav-menu",
879
879
  /** the optional middle slot of `Topbar` (rendered only when `center` is passed). */
880
880
  topbarCenter: "topbar-center",
881
- brandHome: "nav-brand-home"
881
+ brandHome: "nav-brand-home",
882
+ brandMarkIcon: "nav-brand-mark-icon",
883
+ brandMarkName: "nav-brand-mark-name"
882
884
  };
883
885
  var APP_SHELL_SUFFIX = {
884
886
  content: "-content",
@@ -1566,6 +1568,44 @@ var BrandHomeLink = ({ route, label, onNavigate, children }) => {
1566
1568
  }
1567
1569
  );
1568
1570
  };
1571
+ var DEFAULT_ICON_SIZE = 32;
1572
+ var NAME_FONT_SIZE = 16;
1573
+ var NAME_GAP = 8;
1574
+ var styles4 = StyleSheet.create({
1575
+ name: { flexShrink: 1, fontSize: NAME_FONT_SIZE, fontWeight: "700" },
1576
+ row: { alignItems: "center", flexDirection: "row", gap: NAME_GAP }
1577
+ });
1578
+ var BrandMark = ({
1579
+ source,
1580
+ name,
1581
+ route,
1582
+ label,
1583
+ onNavigate,
1584
+ size = DEFAULT_ICON_SIZE,
1585
+ iconOnly = false
1586
+ }) => {
1587
+ const { theme } = useUi();
1588
+ return /* @__PURE__ */ jsx(BrandHomeLink, { label, route, onNavigate, children: /* @__PURE__ */ jsxs(View, { style: styles4.row, children: [
1589
+ /* @__PURE__ */ jsx(
1590
+ Image,
1591
+ {
1592
+ accessibilityElementsHidden: true,
1593
+ source,
1594
+ style: { height: size, width: size },
1595
+ testID: NAV_TEST_IDS.brandMarkIcon
1596
+ }
1597
+ ),
1598
+ iconOnly ? null : /* @__PURE__ */ jsx(
1599
+ Text,
1600
+ {
1601
+ numberOfLines: 1,
1602
+ style: [styles4.name, { color: theme.colors.text }],
1603
+ testID: NAV_TEST_IDS.brandMarkName,
1604
+ children: name
1605
+ }
1606
+ )
1607
+ ] }) });
1608
+ };
1569
1609
  var Nav = (props) => {
1570
1610
  if (props.orientation === "vertical") {
1571
1611
  return /* @__PURE__ */ jsx(Sidebar, { ...props });
@@ -1583,7 +1623,7 @@ function resolveRailMode({ viewport, hasSidebar, hasCollapsed, range }) {
1583
1623
  }
1584
1624
  return viewport >= RAIL_FULL_BREAKPOINT ? "full" : "drawer";
1585
1625
  }
1586
- var styles4 = StyleSheet.create({
1626
+ var styles5 = StyleSheet.create({
1587
1627
  band: { left: 0, position: "absolute", right: 0, top: 0 }
1588
1628
  });
1589
1629
  function readBackdrop(theme) {
@@ -1606,7 +1646,7 @@ function resolveShellBackdrop(theme, viewport, contentPadding, testID) {
1606
1646
  View,
1607
1647
  {
1608
1648
  pointerEvents: "none",
1609
- style: [styles4.band, { backgroundColor: band.color, height: contentPadding + overlap }],
1649
+ style: [styles5.band, { backgroundColor: band.color, height: contentPadding + overlap }],
1610
1650
  testID: `${testID}${APP_SHELL_SUFFIX.band}`
1611
1651
  }
1612
1652
  );
@@ -1618,7 +1658,7 @@ var CARD_BORDER_WIDTH = 1;
1618
1658
  var CARD_TITLE_FONT_SIZE = 16;
1619
1659
  var CARD_MESSAGE_FONT_SIZE = 14;
1620
1660
  var CARD_TITLE_MARGIN_BOTTOM = 8;
1621
- var styles5 = StyleSheet.create({
1661
+ var styles6 = StyleSheet.create({
1622
1662
  // Loading is a TRANSITIONAL state: the spinner is an absolute overlay ON TOP of
1623
1663
  // stably-mounted children, never a replacement for them. Replacing children here
1624
1664
  // would unmount whatever they host (e.g. a navigator), and on remount React
@@ -1650,9 +1690,9 @@ function MessageCard({
1650
1690
  }) {
1651
1691
  const { theme } = useUi();
1652
1692
  const colors = theme.colors;
1653
- return /* @__PURE__ */ jsxs(View, { style: [styles5.card, { backgroundColor: colors.surface, borderColor: accentColor }], testID, children: [
1654
- /* @__PURE__ */ jsx(Text, { style: [styles5.cardTitle, { color: accentColor }], children: message.titleText }),
1655
- /* @__PURE__ */ jsx(Text, { style: [styles5.cardMessage, { color: colors.textSecondary }], children: message.messageText })
1693
+ return /* @__PURE__ */ jsxs(View, { style: [styles6.card, { backgroundColor: colors.surface, borderColor: accentColor }], testID, children: [
1694
+ /* @__PURE__ */ jsx(Text, { style: [styles6.cardTitle, { color: accentColor }], children: message.titleText }),
1695
+ /* @__PURE__ */ jsx(Text, { style: [styles6.cardMessage, { color: colors.textSecondary }], children: message.messageText })
1656
1696
  ] });
1657
1697
  }
1658
1698
  function useContentBody(state, children, testID) {
@@ -1664,12 +1704,12 @@ function useContentBody(state, children, testID) {
1664
1704
  return /* @__PURE__ */ jsx(MessageCard, { accentColor: errorColor, message: state.forbidden, testID: `${testID}${APP_SHELL_SUFFIX.forbidden}` });
1665
1705
  if (state.error)
1666
1706
  return /* @__PURE__ */ jsx(MessageCard, { accentColor: errorColor, message: state.error, testID: `${testID}${APP_SHELL_SUFFIX.error}` });
1667
- return /* @__PURE__ */ jsxs(View, { style: styles5.loadingHost, children: [
1707
+ return /* @__PURE__ */ jsxs(View, { style: styles6.loadingHost, children: [
1668
1708
  children,
1669
1709
  state.loading === true ? /* @__PURE__ */ jsx(
1670
1710
  View,
1671
1711
  {
1672
- style: [styles5.loadingOverlay, { backgroundColor: theme.colors.background }],
1712
+ style: [styles6.loadingOverlay, { backgroundColor: theme.colors.background }],
1673
1713
  testID: `${testID}${APP_SHELL_SUFFIX.loading}`,
1674
1714
  children: /* @__PURE__ */ jsx(ActivityIndicator, { color: primary, size: "large" })
1675
1715
  }
@@ -1696,7 +1736,7 @@ var DEFAULT_DRAWER_LABELS = {
1696
1736
  closeLabel: "Close menu",
1697
1737
  closeHint: "Close the navigation menu"
1698
1738
  };
1699
- var styles6 = StyleSheet.create({
1739
+ var styles7 = StyleSheet.create({
1700
1740
  overlay: { ...StyleSheet.absoluteFillObject, zIndex: DRAWER_Z_INDEX },
1701
1741
  // The scrim's tap-to-close hit area is anchored to the RIGHT of the panel
1702
1742
  // (`left: DRAWER_WIDTH`), so it NEVER overlaps the panel: nav-item taps always
@@ -1731,10 +1771,10 @@ var MenuToggle = ({ label, hint, onOpen, testID }) => {
1731
1771
  accessibilityHint: hint,
1732
1772
  accessibilityLabel: label,
1733
1773
  ringColor: theme.palette.primary["500"],
1734
- style: styles6.menuToggle,
1774
+ style: styles7.menuToggle,
1735
1775
  testID,
1736
1776
  onPress: onOpen,
1737
- children: /* @__PURE__ */ jsx(Text, { style: [styles6.menuToggleGlyph, { color: theme.colors.text }], children: MENU_GLYPH2 })
1777
+ children: /* @__PURE__ */ jsx(Text, { style: [styles7.menuToggleGlyph, { color: theme.colors.text }], children: MENU_GLYPH2 })
1738
1778
  }
1739
1779
  );
1740
1780
  };
@@ -1760,14 +1800,14 @@ var MobileDrawer = ({
1760
1800
  node.addEventListener("click", handleClick);
1761
1801
  return () => node.removeEventListener("click", handleClick);
1762
1802
  }, [onClose]);
1763
- return /* @__PURE__ */ jsxs(View, { style: styles6.overlay, children: [
1803
+ return /* @__PURE__ */ jsxs(View, { style: styles7.overlay, children: [
1764
1804
  /* @__PURE__ */ jsx(
1765
1805
  Pressable,
1766
1806
  {
1767
1807
  accessibilityHint: labels.closeHint,
1768
1808
  accessibilityLabel: labels.closeLabel,
1769
1809
  accessibilityRole: "button",
1770
- style: styles6.scrim,
1810
+ style: styles7.scrim,
1771
1811
  testID: scrimTestID,
1772
1812
  onPress: onClose
1773
1813
  }
@@ -1778,7 +1818,7 @@ var MobileDrawer = ({
1778
1818
  ref: panelRef,
1779
1819
  "aria-modal": true,
1780
1820
  role: "dialog",
1781
- style: [styles6.panel, { backgroundColor: theme.colors.surface }],
1821
+ style: [styles7.panel, { backgroundColor: theme.colors.surface }],
1782
1822
  testID: drawerTestID,
1783
1823
  children: renderTextSlot(sidebar, { color: theme.colors.text })
1784
1824
  }
@@ -1796,7 +1836,7 @@ function useContentMaxWidth(width) {
1796
1836
  return resolveContentMaxWidth(width, viewport);
1797
1837
  }
1798
1838
  var DEFAULT_CONTENT_PADDING = 24;
1799
- var styles7 = StyleSheet.create({
1839
+ var styles8 = StyleSheet.create({
1800
1840
  root: { flex: 1 },
1801
1841
  // Auth-pending spinner: an opaque absolute overlay over the mounted shell, so
1802
1842
  // `children` (and any navigator they host) are never unmounted while the gate
@@ -1858,13 +1898,13 @@ var AppShell = ({
1858
1898
  }, [isUnauthenticated, gate]);
1859
1899
  const gatePending = gate?.pending === true;
1860
1900
  if (isUnauthenticated) return null;
1861
- const columnStyle = maxWidth === "full" ? styles7.columnFull : [styles7.columnCapped, { maxWidth }];
1862
- const navInnerStyle = chromeAlignment === "content" && maxWidth !== "full" ? [styles7.chromeCapped, { maxWidth, paddingHorizontal: contentPadding }] : void 0;
1901
+ const columnStyle = maxWidth === "full" ? styles8.columnFull : [styles8.columnCapped, { maxWidth }];
1902
+ const navInnerStyle = chromeAlignment === "content" && maxWidth !== "full" ? [styles8.chromeCapped, { maxWidth, paddingHorizontal: contentPadding }] : void 0;
1863
1903
  const scroller = /* @__PURE__ */ jsxs(
1864
1904
  ScrollView,
1865
1905
  {
1866
- contentContainerStyle: [styles7.scrollContent, { padding: contentPadding }],
1867
- style: styles7.scroll,
1906
+ contentContainerStyle: [styles8.scrollContent, { padding: contentPadding }],
1907
+ style: styles8.scroll,
1868
1908
  testID: `${testID}${APP_SHELL_SUFFIX.content}`,
1869
1909
  children: [
1870
1910
  look.band,
@@ -1872,7 +1912,7 @@ var AppShell = ({
1872
1912
  ]
1873
1913
  }
1874
1914
  );
1875
- const headerRegion = useDrawer ? /* @__PURE__ */ jsxs(View, { style: [styles7.headerRow, look.chrome], testID: `${testID}${APP_SHELL_SUFFIX.header}`, children: [
1915
+ const headerRegion = useDrawer ? /* @__PURE__ */ jsxs(View, { style: [styles8.headerRow, look.chrome], testID: `${testID}${APP_SHELL_SUFFIX.header}`, children: [
1876
1916
  /* @__PURE__ */ jsx(
1877
1917
  MenuToggle,
1878
1918
  {
@@ -1882,14 +1922,14 @@ var AppShell = ({
1882
1922
  onOpen: openDrawer
1883
1923
  }
1884
1924
  ),
1885
- /* @__PURE__ */ jsx(View, { style: styles7.headerFill, children: renderTextSlot(header, { color: look.chromeText }) })
1925
+ /* @__PURE__ */ jsx(View, { style: styles8.headerFill, children: renderTextSlot(header, { color: look.chromeText }) })
1886
1926
  ] }) : /* @__PURE__ */ jsx(View, { style: look.chrome, testID: `${testID}${APP_SHELL_SUFFIX.header}`, children: renderTextSlot(header, { color: look.chromeText }) });
1887
1927
  const railRegion = railMode === "full" ? /* @__PURE__ */ jsx(View, { testID: `${testID}${APP_SHELL_SUFFIX.sidebar}`, children: renderTextSlot(sidebar, { color: theme.colors.text }) }) : railMode === "collapsed" ? /* @__PURE__ */ jsx(View, { testID: `${testID}${APP_SHELL_SUFFIX.collapsedSidebar}`, children: renderTextSlot(collapsedSidebar, { color: theme.colors.text }) }) : null;
1888
- return /* @__PURE__ */ jsxs(View, { style: [styles7.root, look.root], testID, children: [
1928
+ return /* @__PURE__ */ jsxs(View, { style: [styles8.root, look.root], testID, children: [
1889
1929
  headerRegion,
1890
1930
  nav !== void 0 ? /* @__PURE__ */ jsx(View, { style: look.chrome, testID: `${testID}${APP_SHELL_SUFFIX.nav}`, children: navInnerStyle !== void 0 ? /* @__PURE__ */ jsx(View, { style: navInnerStyle, children: renderTextSlot(nav, { color: look.chromeText }) }) : renderTextSlot(nav, { color: look.chromeText }) }) : null,
1891
1931
  banner !== void 0 ? /* @__PURE__ */ jsx(View, { testID: `${testID}${APP_SHELL_SUFFIX.banner}`, children: renderTextSlot(banner, { color: theme.colors.text }) }) : null,
1892
- railRegion !== null ? /* @__PURE__ */ jsxs(View, { style: styles7.bodyRow, children: [
1932
+ railRegion !== null ? /* @__PURE__ */ jsxs(View, { style: styles8.bodyRow, children: [
1893
1933
  railRegion,
1894
1934
  scroller
1895
1935
  ] }) : scroller,
@@ -1906,7 +1946,7 @@ var AppShell = ({
1906
1946
  gatePending ? /* @__PURE__ */ jsx(
1907
1947
  View,
1908
1948
  {
1909
- style: [styles7.pendingOverlay, { backgroundColor: theme.colors.background }],
1949
+ style: [styles8.pendingOverlay, { backgroundColor: theme.colors.background }],
1910
1950
  testID: `${testID}${APP_SHELL_SUFFIX.pending}`,
1911
1951
  children: /* @__PURE__ */ jsx(ActivityIndicator, { color: primary, size: "large" })
1912
1952
  }
@@ -2273,7 +2313,7 @@ var KEY_DOWN = "ArrowDown";
2273
2313
  var KEY_UP = "ArrowUp";
2274
2314
  var KEY_ENTER = "Enter";
2275
2315
  var KEY_ESCAPE = "Escape";
2276
- var styles8 = StyleSheet.create({
2316
+ var styles9 = StyleSheet.create({
2277
2317
  overlay: { ...StyleSheet.absoluteFillObject, zIndex: OVERLAY_Z_INDEX, alignItems: "center" },
2278
2318
  scrim: { ...StyleSheet.absoluteFillObject, backgroundColor: SCRIM_COLOR2 },
2279
2319
  panel: {
@@ -2302,14 +2342,14 @@ var PaletteRow = ({ item, selected, onChoose }) => {
2302
2342
  accessibilityLabel: item.label,
2303
2343
  accessibilityRole: "button",
2304
2344
  accessibilityState: { selected },
2305
- style: [styles8.row, selected ? { backgroundColor: colors.border } : void 0],
2345
+ style: [styles9.row, selected ? { backgroundColor: colors.border } : void 0],
2306
2346
  testID: item.testID ?? item.key,
2307
2347
  onPress: () => onChoose(item),
2308
2348
  children: [
2309
2349
  typeof item.renderIcon === "function" ? item.renderIcon(colors.textSecondary, NAV_ICON_SIZE) : null,
2310
- /* @__PURE__ */ jsxs(View, { style: styles8.rowText, children: [
2311
- /* @__PURE__ */ jsx(Text, { style: [styles8.rowLabel, { color: colors.text }], children: item.label }),
2312
- item.hint ? /* @__PURE__ */ jsx(Text, { style: [styles8.rowHint, { color: colors.textSecondary }], children: item.hint }) : null
2350
+ /* @__PURE__ */ jsxs(View, { style: styles9.rowText, children: [
2351
+ /* @__PURE__ */ jsx(Text, { style: [styles9.rowLabel, { color: colors.text }], children: item.label }),
2352
+ item.hint ? /* @__PURE__ */ jsx(Text, { style: [styles9.rowHint, { color: colors.textSecondary }], children: item.hint }) : null
2313
2353
  ] })
2314
2354
  ]
2315
2355
  }
@@ -2349,14 +2389,14 @@ var CommandPalette = ({ open, items, onClose, labels, testID }) => {
2349
2389
  [results, selected, choose, onClose]
2350
2390
  );
2351
2391
  if (!open) return null;
2352
- return /* @__PURE__ */ jsxs(View, { style: styles8.overlay, children: [
2392
+ return /* @__PURE__ */ jsxs(View, { style: styles9.overlay, children: [
2353
2393
  /* @__PURE__ */ jsx(
2354
2394
  Pressable,
2355
2395
  {
2356
2396
  accessibilityHint: labels.closeHint,
2357
2397
  accessibilityLabel: labels.closeLabel,
2358
2398
  accessibilityRole: "button",
2359
- style: styles8.scrim,
2399
+ style: styles9.scrim,
2360
2400
  testID: `${testID ?? "command-palette"}-scrim`,
2361
2401
  onPress: onClose
2362
2402
  }
@@ -2367,7 +2407,7 @@ var CommandPalette = ({ open, items, onClose, labels, testID }) => {
2367
2407
  "aria-modal": true,
2368
2408
  "aria-label": labels.regionLabel,
2369
2409
  role: "dialog",
2370
- style: [styles8.panel, { backgroundColor: colors.surface, borderColor: colors.border }],
2410
+ style: [styles9.panel, { backgroundColor: colors.surface, borderColor: colors.border }],
2371
2411
  testID: testID ?? "command-palette",
2372
2412
  children: [
2373
2413
  /* @__PURE__ */ jsx(
@@ -2377,14 +2417,14 @@ var CommandPalette = ({ open, items, onClose, labels, testID }) => {
2377
2417
  accessibilityLabel: labels.placeholder,
2378
2418
  placeholder: labels.placeholder,
2379
2419
  placeholderTextColor: colors.textSecondary,
2380
- style: [styles8.input, { color: colors.text, borderBottomColor: colors.border }],
2420
+ style: [styles9.input, { color: colors.text, borderBottomColor: colors.border }],
2381
2421
  testID: `${testID ?? "command-palette"}-input`,
2382
2422
  value: query,
2383
2423
  onChangeText: setQuery,
2384
2424
  onKeyPress
2385
2425
  }
2386
2426
  ),
2387
- results.length === 0 ? /* @__PURE__ */ jsx(Text, { style: [styles8.empty, { color: colors.textSecondary }], children: labels.emptyText }) : /* @__PURE__ */ jsx(ScrollView, { keyboardShouldPersistTaps: "handled", style: styles8.list, children: results.map((item, index) => /* @__PURE__ */ jsx(PaletteRow, { item, selected: index === selected, onChoose: choose }, item.key)) })
2427
+ results.length === 0 ? /* @__PURE__ */ jsx(Text, { style: [styles9.empty, { color: colors.textSecondary }], children: labels.emptyText }) : /* @__PURE__ */ jsx(ScrollView, { keyboardShouldPersistTaps: "handled", style: styles9.list, children: results.map((item, index) => /* @__PURE__ */ jsx(PaletteRow, { item, selected: index === selected, onChoose: choose }, item.key)) })
2388
2428
  ]
2389
2429
  }
2390
2430
  )
@@ -2489,7 +2529,7 @@ var TAB_MIN_HEIGHT = 56;
2489
2529
  var LABEL_SIZE = 12;
2490
2530
  var LABEL_GAP = 2;
2491
2531
  var TAB_PADDING = 4;
2492
- var styles9 = StyleSheet.create({
2532
+ var styles10 = StyleSheet.create({
2493
2533
  tab: {
2494
2534
  flex: 1,
2495
2535
  minHeight: TAB_MIN_HEIGHT,
@@ -2526,31 +2566,31 @@ var BottomTab = ({
2526
2566
  accessibilityLabel: item.label,
2527
2567
  accessibilityRole: "link",
2528
2568
  accessibilityState: { selected: isActive },
2529
- style: [styles9.tab, { opacity: feedback.opacity }],
2569
+ style: [styles10.tab, { opacity: feedback.opacity }],
2530
2570
  testID: item.testID ?? item.key,
2531
2571
  onPress: () => onPress(item.route),
2532
2572
  onPressIn: () => setPressed(true),
2533
2573
  onPressOut: () => setPressed(false),
2534
2574
  ...ariaCurrentProps3(isActive),
2535
2575
  children: [
2536
- /* @__PURE__ */ jsxs(Animated.View, { style: [styles9.iconWrap, { transform: [{ scale }] }], children: [
2576
+ /* @__PURE__ */ jsxs(Animated.View, { style: [styles10.iconWrap, { transform: [{ scale }] }], children: [
2537
2577
  feedback.pillScale === null ? null : /* @__PURE__ */ jsx(
2538
2578
  View,
2539
2579
  {
2540
2580
  pointerEvents: "none",
2541
- style: [styles9.pill, { backgroundColor: colors.pill, transform: [{ scale: feedback.pillScale }] }, motion]
2581
+ style: [styles10.pill, { backgroundColor: colors.pill, transform: [{ scale: feedback.pillScale }] }, motion]
2542
2582
  }
2543
2583
  ),
2544
2584
  /* @__PURE__ */ jsx(View, { style: [{ transform: feedback.iconTransform }, motion], children: item.renderIcon?.(color, ICON_SIZE) })
2545
2585
  ] }),
2546
- /* @__PURE__ */ jsx(Text, { style: [styles9.label, { color }], children: item.label })
2586
+ /* @__PURE__ */ jsx(Text, { style: [styles10.label, { color }], children: item.label })
2547
2587
  ]
2548
2588
  }
2549
2589
  );
2550
2590
  };
2551
2591
  var DEFAULT_TEST_ID = "bottom-tab-bar";
2552
2592
  var SLIDER_HEIGHT = 3;
2553
- var styles10 = StyleSheet.create({
2593
+ var styles11 = StyleSheet.create({
2554
2594
  bar: { flexDirection: "row", borderTopWidth: StyleSheet.hairlineWidth },
2555
2595
  slider: { position: "absolute", top: 0, height: SLIDER_HEIGHT }
2556
2596
  });
@@ -2577,14 +2617,14 @@ var BottomTabBar = ({
2577
2617
  {
2578
2618
  "aria-label": regionLabel,
2579
2619
  role: "navigation",
2580
- style: [styles10.bar, { backgroundColor: theme.colors.surface, borderTopColor: theme.colors.border }, containerStyle],
2620
+ style: [styles11.bar, { backgroundColor: theme.colors.surface, borderTopColor: theme.colors.border }, containerStyle],
2581
2621
  testID,
2582
2622
  children: [
2583
2623
  bar === null ? null : /* @__PURE__ */ jsx(
2584
2624
  View,
2585
2625
  {
2586
2626
  pointerEvents: "none",
2587
- style: [styles10.slider, { left: bar.left, width: bar.width, backgroundColor: primary }, webTransition("left", barMs, reducedMotion)]
2627
+ style: [styles11.slider, { left: bar.left, width: bar.width, backgroundColor: primary }, webTransition("left", barMs, reducedMotion)]
2588
2628
  }
2589
2629
  ),
2590
2630
  items.map((item) => /* @__PURE__ */ jsx(
@@ -2605,6 +2645,6 @@ var BottomTabBar = ({
2605
2645
  );
2606
2646
  };
2607
2647
 
2608
- export { ACTIVE_BORDER_RADIUS, ACTIVE_TINT_OPACITY, APP_SHELL_SUFFIX, AppShell, BASE_INDENT, BottomTabBar, BrandHomeLink, CHEVRON_ICON_SIZE, CollapsedRail, CommandPalette, CommandPaletteTrigger, DEFAULT_COLLAPSED_RAIL_MAX, DEFAULT_SEARCH_BREAKPOINT, DarkModeControl, HOVER_TINT_OPACITY, NAV_ICON_SIZE, NAV_LINK_GAP, NAV_ROW_RADIUS, NAV_TEST_IDS, Nav, NavBar, NavExpandableItem, NavHoverFeedback, NavOverflowMenu, NavShell, PillNav, PillNavVariant, RAIL_FULL_BREAKPOINT, Sidebar, SidebarChevron, SidebarSearch, TabFeedback, Topbar, accessibleNavItems, collapsedRailStyles, darkModeStyles, expandableStyles, filterCommands, filterNavItems, isFilterActive, isRouteActive, navStyles, pillNavStyles, resolveActiveRoute, resolveContentMaxWidth, resolvePillMenuLabel, resolveRailMode, resolveSearchAffordance, roleRoutesToNavItems, searchTokens, useCommandPaletteHotkey, useContentMaxWidth };
2648
+ export { ACTIVE_BORDER_RADIUS, ACTIVE_TINT_OPACITY, APP_SHELL_SUFFIX, AppShell, BASE_INDENT, BottomTabBar, BrandHomeLink, BrandMark, CHEVRON_ICON_SIZE, CollapsedRail, CommandPalette, CommandPaletteTrigger, DEFAULT_COLLAPSED_RAIL_MAX, DEFAULT_SEARCH_BREAKPOINT, DarkModeControl, HOVER_TINT_OPACITY, NAV_ICON_SIZE, NAV_LINK_GAP, NAV_ROW_RADIUS, NAV_TEST_IDS, Nav, NavBar, NavExpandableItem, NavHoverFeedback, NavOverflowMenu, NavShell, PillNav, PillNavVariant, RAIL_FULL_BREAKPOINT, Sidebar, SidebarChevron, SidebarSearch, TabFeedback, Topbar, accessibleNavItems, collapsedRailStyles, darkModeStyles, expandableStyles, filterCommands, filterNavItems, isFilterActive, isRouteActive, navStyles, pillNavStyles, resolveActiveRoute, resolveContentMaxWidth, resolvePillMenuLabel, resolveRailMode, resolveSearchAffordance, roleRoutesToNavItems, searchTokens, useCommandPaletteHotkey, useContentMaxWidth };
2609
2649
  //# sourceMappingURL=index.mjs.map
2610
2650
  //# sourceMappingURL=index.mjs.map