@homebound/beam 3.47.1 → 3.47.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.js CHANGED
@@ -10396,7 +10396,7 @@ var iconStyles = {
10396
10396
 
10397
10397
  // src/components/NavLinks/NavLink.tsx
10398
10398
  import { useMemo as useMemo13 } from "react";
10399
- import { mergeProps as mergeProps9, useButton as useButton4, useFocusRing as useFocusRing4, useHover as useHover6 } from "react-aria";
10399
+ import { mergeProps as mergeProps9, useButton as useButton4, useFocusRing as useFocusRing4, useHover as useHover6, VisuallyHidden as VisuallyHidden3 } from "react-aria";
10400
10400
  import { trussProps as trussProps25, maybeCssVar as maybeCssVar17 } from "@homebound/truss/runtime";
10401
10401
  import { Fragment as Fragment13, jsx as jsx38, jsxs as jsxs23 } from "react/jsx-runtime";
10402
10402
  function NavLink(props) {
@@ -10411,11 +10411,13 @@ function NavLink(props) {
10411
10411
  active,
10412
10412
  variant,
10413
10413
  icon,
10414
+ nested = false,
10415
+ __storyState,
10414
10416
  ...otherProps
10415
10417
  } = props;
10416
10418
  const asLink = typeof onClick === "string";
10417
10419
  const isIconOnly = !!iconOnly && !!icon;
10418
- const labelContent = isIconOnly ? /* @__PURE__ */ jsx38("span", { className: "absolute oh cli_inset_50 clp_none bd_0 h_1px m_neg1px w_1px p_0 wsnw o0", children: label }) : label;
10420
+ const labelContent = isIconOnly ? /* @__PURE__ */ jsx38(VisuallyHidden3, { children: label }) : label;
10419
10421
  const ariaProps = {
10420
10422
  children: labelContent,
10421
10423
  isDisabled,
@@ -10424,7 +10426,7 @@ function NavLink(props) {
10424
10426
  const ref = useGetRef(buttonRef);
10425
10427
  const {
10426
10428
  buttonProps,
10427
- isPressed
10429
+ isPressed: isPressedFromEvents
10428
10430
  } = useButton4({
10429
10431
  ...ariaProps,
10430
10432
  onPress: asLink ? noop : (e) => {
@@ -10438,14 +10440,17 @@ function NavLink(props) {
10438
10440
  }, ref);
10439
10441
  const {
10440
10442
  hoverProps,
10441
- isHovered
10443
+ isHovered: isHoveredFromEvents
10442
10444
  } = useHover6({
10443
10445
  isDisabled
10444
10446
  });
10445
10447
  const {
10446
- isFocusVisible,
10448
+ isFocusVisible: isFocusVisibleFromEvents,
10447
10449
  focusProps
10448
10450
  } = useFocusRing4(ariaProps);
10451
+ const isPressed = __storyState?.pressed ?? isPressedFromEvents;
10452
+ const isHovered = __storyState?.hovered ?? isHoveredFromEvents;
10453
+ const isFocusVisible = __storyState?.focusVisible ?? isFocusVisibleFromEvents;
10449
10454
  const {
10450
10455
  baseStyles: baseStyles4,
10451
10456
  activeStyles: activeStyles3,
@@ -10453,7 +10458,7 @@ function NavLink(props) {
10453
10458
  hoverStyles: hoverStyles4,
10454
10459
  disabledStyles: disabledStyles3,
10455
10460
  pressedStyles: pressedStyles2
10456
- } = useMemo13(() => getNavLinkStyles(variant), [variant]);
10461
+ } = useMemo13(() => getNavLinkStyles(variant, nested), [variant, nested]);
10457
10462
  const linkAttributes = {
10458
10463
  ref,
10459
10464
  /** does not focus if disabled */
@@ -10482,22 +10487,34 @@ function NavLink(props) {
10482
10487
  className: navLink
10483
10488
  }, otherProps), openInNew);
10484
10489
  }
10485
- function getNavLinkStyles(variant) {
10486
- return navLinkVariantStyles[variant];
10490
+ function getNavLinkStyles(variant, nested) {
10491
+ const styles = navLinkVariantStyles[variant];
10492
+ return {
10493
+ ...styles,
10494
+ baseStyles: {
10495
+ ...styles.baseStyles,
10496
+ ...nested ? {
10497
+ paddingLeft: "pl3",
10498
+ fontWeight: "fw4",
10499
+ fontSize: "fz_14px",
10500
+ lineHeight: "lh_20px"
10501
+ } : {
10502
+ fontWeight: "fw6",
10503
+ fontSize: "fz_14px",
10504
+ lineHeight: "lh_20px"
10505
+ }
10506
+ }
10507
+ };
10487
10508
  }
10488
10509
  var baseStyles = {
10489
10510
  display: "df",
10490
10511
  gap: "gap1",
10491
10512
  alignItems: "aic",
10492
- height: "h_32px",
10493
10513
  paddingTop: "pt_6px",
10494
10514
  paddingBottom: "pb_6px",
10495
10515
  paddingLeft: "pl1",
10496
10516
  paddingRight: "pr1",
10497
10517
  borderRadius: "br4",
10498
- fontWeight: "fw6",
10499
- fontSize: "fz_14px",
10500
- lineHeight: "lh_20px",
10501
10518
  outline: "outline0"
10502
10519
  };
10503
10520
  var navLinkVariantStyles = {
@@ -10505,12 +10522,15 @@ var navLinkVariantStyles = {
10505
10522
  baseStyles: {
10506
10523
  ...baseStyles,
10507
10524
  ...{
10525
+ height: "h_40px",
10526
+ flexShrink: "fs0",
10508
10527
  color: ["color_var", {
10509
10528
  "--color": "var(--b-nav-text)"
10510
10529
  }]
10511
10530
  }
10512
10531
  },
10513
10532
  activeStyles: {
10533
+ fontWeight: "fw6",
10514
10534
  color: ["color_var", {
10515
10535
  "--color": "var(--b-nav-text-active)"
10516
10536
  }],
@@ -10525,12 +10545,6 @@ var navLinkVariantStyles = {
10525
10545
  cursor: "cursorNotAllowed"
10526
10546
  },
10527
10547
  focusRingStyles: {
10528
- color: ["color_var", {
10529
- "--color": "var(--b-nav-text-focus-visible)"
10530
- }],
10531
- backgroundColor: ["bgColor_var", {
10532
- "--backgroundColor": "var(--b-nav-item-bg-active)"
10533
- }],
10534
10548
  boxShadow: "bshFocus"
10535
10549
  },
10536
10550
  hoverStyles: {
@@ -10554,6 +10568,7 @@ var navLinkVariantStyles = {
10554
10568
  baseStyles: {
10555
10569
  ...baseStyles,
10556
10570
  ...{
10571
+ height: "h_32px",
10557
10572
  width: "width_max_content",
10558
10573
  color: "gray500"
10559
10574
  }
@@ -11571,7 +11586,7 @@ import { useHover as useHover10, useOption as useOption2 } from "react-aria";
11571
11586
 
11572
11587
  // src/inputs/CheckboxBase.tsx
11573
11588
  import { useRef as useRef19 } from "react";
11574
- import { mergeProps as mergeProps13, useFocusRing as useFocusRing5, useHover as useHover9, VisuallyHidden as VisuallyHidden3 } from "react-aria";
11589
+ import { mergeProps as mergeProps13, useFocusRing as useFocusRing5, useHover as useHover9, VisuallyHidden as VisuallyHidden4 } from "react-aria";
11575
11590
  import { trussProps as trussProps33, maybeCssVar as maybeCssVar21 } from "@homebound/truss/runtime";
11576
11591
  import { jsx as jsx51, jsxs as jsxs32 } from "react/jsx-runtime";
11577
11592
  function CheckboxBase(props) {
@@ -11612,7 +11627,7 @@ function CheckboxBase(props) {
11612
11627
  cursor: "cursorNotAllowed"
11613
11628
  } : {}
11614
11629
  }), "aria-label": label, children: [
11615
- /* @__PURE__ */ jsx51(VisuallyHidden3, { children: /* @__PURE__ */ jsx51("input", { ref, ...mergeProps13(inputProps, focusProps), ...tid, "data-indeterminate": isIndeterminate }) }),
11630
+ /* @__PURE__ */ jsx51(VisuallyHidden4, { children: /* @__PURE__ */ jsx51("input", { ref, ...mergeProps13(inputProps, focusProps), ...tid, "data-indeterminate": isIndeterminate }) }),
11616
11631
  /* @__PURE__ */ jsx51(StyledCheckbox, { ...props, isFocusVisible, ...tid }),
11617
11632
  !checkboxOnly && // Use a mtPx(-2) to better align the label with the checkbox.
11618
11633
  // Not using align-items: center as the checkbox would align with all content below, where we really want it to stay only aligned with the label
@@ -14360,7 +14375,7 @@ import { useRef as useRef32 } from "react";
14360
14375
  import { useCheckboxGroupItem as useCheckboxGroupItem2 } from "react-aria";
14361
14376
 
14362
14377
  // src/inputs/SelectCard/GridSelectCard.tsx
14363
- import { VisuallyHidden as VisuallyHidden4 } from "react-aria";
14378
+ import { VisuallyHidden as VisuallyHidden5 } from "react-aria";
14364
14379
 
14365
14380
  // src/inputs/SelectCard/SelectCardShell.tsx
14366
14381
  import { useMemo as useMemo21 } from "react";
@@ -14479,7 +14494,7 @@ function GridSelectCard(props) {
14479
14494
  } = props;
14480
14495
  const tid = useTestIds(props, defaultTestId(label));
14481
14496
  return /* @__PURE__ */ jsxs44(SelectCardShell, { label, selected: isSelected, disabled: isDisabled, tooltip, view: "grid", __storyState, ...others, children: [
14482
- /* @__PURE__ */ jsx76(VisuallyHidden4, { children: /* @__PURE__ */ jsx76("input", { ...inputProps, ...tid.value }) }),
14497
+ /* @__PURE__ */ jsx76(VisuallyHidden5, { children: /* @__PURE__ */ jsx76("input", { ...inputProps, ...tid.value }) }),
14483
14498
  /* @__PURE__ */ jsx76(Icon, { icon, inc: 4, color: isDisabled ? "--b-on-surface-disabled" /* OnSurfaceDisabled */ : "--b-on-surface" /* OnSurface */ }),
14484
14499
  /* @__PURE__ */ jsxs44("span", { className: "df fdc gap_4px w100", children: [
14485
14500
  /* @__PURE__ */ jsx76("span", { ...trussProps47({
@@ -14492,8 +14507,8 @@ function GridSelectCard(props) {
14492
14507
  }), children: label }),
14493
14508
  description && /* @__PURE__ */ jsx76("span", { ...trussProps47({
14494
14509
  fontWeight: "fw4",
14495
- fontSize: "fz_12px",
14496
- lineHeight: "lh_16px",
14510
+ fontSize: "fz_14px",
14511
+ lineHeight: "lh_20px",
14497
14512
  color: ["color_var", {
14498
14513
  "--color": "var(--b-on-surface)"
14499
14514
  }],
@@ -14506,7 +14521,7 @@ function GridSelectCard(props) {
14506
14521
  }
14507
14522
 
14508
14523
  // src/inputs/SelectCard/ListSelectCard.tsx
14509
- import { VisuallyHidden as VisuallyHidden5 } from "react-aria";
14524
+ import { VisuallyHidden as VisuallyHidden6 } from "react-aria";
14510
14525
 
14511
14526
  // src/inputs/SelectCard/StyledRadio.tsx
14512
14527
  import { useHover as useHover13 } from "react-aria";
@@ -14558,7 +14573,7 @@ function ListSelectCard(props) {
14558
14573
  return /* @__PURE__ */ jsxs45(SelectCardShell, { label, selected: isSelected, disabled: isDisabled, tooltip, view: "list", __storyState, ...others, children: [
14559
14574
  /* @__PURE__ */ jsxs45("div", { className: "df aic gap1", children: [
14560
14575
  inputProps.type === "checkbox" ? /* @__PURE__ */ jsxs45(Fragment20, { children: [
14561
- /* @__PURE__ */ jsx78(VisuallyHidden5, { children: /* @__PURE__ */ jsx78("input", { ...inputProps, ...tid.value }) }),
14576
+ /* @__PURE__ */ jsx78(VisuallyHidden6, { children: /* @__PURE__ */ jsx78("input", { ...inputProps, ...tid.value }) }),
14562
14577
  /* @__PURE__ */ jsx78(StyledCheckbox, { isDisabled, isSelected })
14563
14578
  ] }) : (
14564
14579
  // Styled radio is an input, so we can use the inputProps directly
@@ -14579,8 +14594,8 @@ function ListSelectCard(props) {
14579
14594
  description && /* @__PURE__ */ jsx78("span", { ...trussProps49({
14580
14595
  marginLeft: "ml3",
14581
14596
  fontWeight: "fw4",
14582
- fontSize: "fz_12px",
14583
- lineHeight: "lh_16px",
14597
+ fontSize: "fz_14px",
14598
+ lineHeight: "lh_20px",
14584
14599
  color: ["color_var", {
14585
14600
  "--color": "var(--b-on-surface)"
14586
14601
  }],
@@ -14805,7 +14820,7 @@ function SelectField(props) {
14805
14820
 
14806
14821
  // src/inputs/Switch.tsx
14807
14822
  import { useRef as useRef34 } from "react";
14808
- import { useFocusRing as useFocusRing8, useHover as useHover14, useSwitch, VisuallyHidden as VisuallyHidden6 } from "react-aria";
14823
+ import { useFocusRing as useFocusRing8, useHover as useHover14, useSwitch, VisuallyHidden as VisuallyHidden7 } from "react-aria";
14809
14824
  import { trussProps as trussProps52, maybeCssVar as maybeCssVar28 } from "@homebound/truss/runtime";
14810
14825
  import { jsx as jsx84, jsxs as jsxs46 } from "react/jsx-runtime";
14811
14826
  var __maybeInc8 = (inc) => {
@@ -14943,7 +14958,7 @@ function Switch(props) {
14943
14958
  lineHeight: "lineHeight_1"
14944
14959
  } : {}
14945
14960
  } }),
14946
- /* @__PURE__ */ jsx84(VisuallyHidden6, { children: /* @__PURE__ */ jsx84("input", { ref, ...inputProps, ...focusProps, ...tid }) })
14961
+ /* @__PURE__ */ jsx84(VisuallyHidden7, { children: /* @__PURE__ */ jsx84("input", { ref, ...inputProps, ...focusProps, ...tid }) })
14947
14962
  ] });
14948
14963
  }
14949
14964
  var toggleHeight = (isCompact) => isCompact ? 16 : 24;
@@ -15111,7 +15126,7 @@ function TextField(props) {
15111
15126
 
15112
15127
  // src/inputs/ToggleButton.tsx
15113
15128
  import { useRef as useRef37, useState as useState27 } from "react";
15114
- import { useFocusRing as useFocusRing9, useHover as useHover15, usePress as usePress2, useSwitch as useSwitch2, VisuallyHidden as VisuallyHidden7 } from "react-aria";
15129
+ import { useFocusRing as useFocusRing9, useHover as useHover15, usePress as usePress2, useSwitch as useSwitch2, VisuallyHidden as VisuallyHidden8 } from "react-aria";
15115
15130
  import { useToggleState as useToggleState2 } from "react-stately";
15116
15131
  import { trussProps as trussProps53 } from "@homebound/truss/runtime";
15117
15132
  import { jsx as jsx87, jsxs as jsxs47 } from "react/jsx-runtime";
@@ -15216,7 +15231,7 @@ function ToggleButton(props) {
15216
15231
  children: /* @__PURE__ */ jsxs47("label", { ...labelAttrs, children: [
15217
15232
  icon && /* @__PURE__ */ jsx87(Icon, { icon }),
15218
15233
  label,
15219
- /* @__PURE__ */ jsx87(VisuallyHidden7, { children: /* @__PURE__ */ jsx87("input", { ref, ...inputProps, ...tid.value }) })
15234
+ /* @__PURE__ */ jsx87(VisuallyHidden8, { children: /* @__PURE__ */ jsx87("input", { ref, ...inputProps, ...tid.value }) })
15220
15235
  ] })
15221
15236
  });
15222
15237
  }
@@ -15232,7 +15247,7 @@ var togglePressStyles = {
15232
15247
 
15233
15248
  // src/inputs/ToggleChipGroup.tsx
15234
15249
  import { useRef as useRef38 } from "react";
15235
- import { useCheckboxGroup as useCheckboxGroup3, useCheckboxGroupItem as useCheckboxGroupItem3, useFocusRing as useFocusRing10, VisuallyHidden as VisuallyHidden8 } from "react-aria";
15250
+ import { useCheckboxGroup as useCheckboxGroup3, useCheckboxGroupItem as useCheckboxGroupItem3, useFocusRing as useFocusRing10, VisuallyHidden as VisuallyHidden9 } from "react-aria";
15236
15251
  import { useCheckboxGroupState as useCheckboxGroupState3 } from "react-stately";
15237
15252
  import { trussProps as trussProps54, maybeCssVar as maybeCssVar29 } from "@homebound/truss/runtime";
15238
15253
  import { jsx as jsx88, jsxs as jsxs48 } from "react/jsx-runtime";
@@ -15364,7 +15379,7 @@ function ToggleChip2(props) {
15364
15379
  boxShadow: "bshFocus"
15365
15380
  } : {}
15366
15381
  }), "data-selected": isSelected, "data-disabled": isDisabled, "aria-disabled": isDisabled, ...others, children: [
15367
- /* @__PURE__ */ jsx88(VisuallyHidden8, { children: /* @__PURE__ */ jsx88("input", { ...inputProps, ...focusProps }) }),
15382
+ /* @__PURE__ */ jsx88(VisuallyHidden9, { children: /* @__PURE__ */ jsx88("input", { ...inputProps, ...focusProps }) }),
15368
15383
  startAdornment,
15369
15384
  label
15370
15385
  ] })
@@ -22896,7 +22911,8 @@ function AppNavGroupTrigger(props) {
22896
22911
  label,
22897
22912
  navGroupId,
22898
22913
  expanded,
22899
- onClick
22914
+ onClick,
22915
+ active = false
22900
22916
  } = props;
22901
22917
  const tid = useTestIds(props, "trigger");
22902
22918
  const ref = useRef57(null);
@@ -22929,11 +22945,17 @@ function AppNavGroupTrigger(props) {
22929
22945
  ...baseStyles4,
22930
22946
  ...isFocusVisible && focusRingStyles2,
22931
22947
  ...isHovered && hoverStyles4,
22932
- ...isPressed && pressedStyles2
22948
+ ...isPressed && pressedStyles2,
22949
+ // Denotes the active group (has a current-page child link)
22950
+ ...active && {
22951
+ color: ["color_var", {
22952
+ "--color": "var(--b-nav-text-active)"
22953
+ }]
22954
+ }
22933
22955
  })
22934
22956
  }), children: [
22935
22957
  label,
22936
- /* @__PURE__ */ jsx180("span", { ...trussProps93({
22958
+ /* @__PURE__ */ jsx180("div", { ...trussProps93({
22937
22959
  ...{
22938
22960
  display: "df",
22939
22961
  alignItems: "aic",
@@ -23130,14 +23152,16 @@ function AppNavGroupDisclosure(props) {
23130
23152
  onResize
23131
23153
  });
23132
23154
  return /* @__PURE__ */ jsxs89("div", { className: "df fdc", ...tid, children: [
23133
- /* @__PURE__ */ jsx181(AppNavGroupTrigger, { label: linkGroup.label, navGroupId, expanded, onClick: onToggle, ...tid }),
23155
+ /* @__PURE__ */ jsx181(AppNavGroupTrigger, { label: linkGroup.label, navGroupId, expanded, active: linkGroupHasActiveLink(linkGroup), onClick: onToggle, ...tid }),
23134
23156
  /* @__PURE__ */ jsx181("div", { id: navGroupId, role: "region", "aria-hidden": !expanded, ...trussProps94({
23135
23157
  overflow: "oh",
23136
23158
  transition: "transitionHeight",
23137
23159
  height: ["h_var", {
23138
23160
  "--height": maybeCssVar51(__maybeInc19(contentHeight))
23139
23161
  }]
23140
- }), ...tid.panel, children: /* @__PURE__ */ jsx181("div", { ref: setContentEl, className: "df fdc pl2", children: /* @__PURE__ */ jsx181(AppNavItems, { items: linkGroup.items, panelCollapsed: false, ...tid }) }) })
23162
+ }), ...tid.panel, ...!expanded ? {
23163
+ inert: "true"
23164
+ } : {}, children: /* @__PURE__ */ jsx181("div", { ref: setContentEl, className: "df fdc", children: /* @__PURE__ */ jsx181(AppNavItems, { items: linkGroup.items, panelCollapsed: false, nested: true, ...tid }) }) })
23141
23165
  ] });
23142
23166
  }
23143
23167
 
@@ -23170,6 +23194,7 @@ function AppNavSectionView(props) {
23170
23194
  section,
23171
23195
  variant,
23172
23196
  panelCollapsed,
23197
+ nested = false,
23173
23198
  showDivider,
23174
23199
  ...scopeProps
23175
23200
  } = props;
@@ -23182,7 +23207,7 @@ function AppNavSectionView(props) {
23182
23207
  "--borderColor": "var(--b-surface-separator)"
23183
23208
  }]
23184
23209
  } : {
23185
- paddingBottom: "pb2",
23210
+ paddingBottom: "pb_4px",
23186
23211
  borderBottomStyle: "bbs_solid",
23187
23212
  borderBottomWidth: "bbw_1px",
23188
23213
  borderColor: ["bc_var", {
@@ -23193,7 +23218,7 @@ function AppNavSectionView(props) {
23193
23218
  ...{
23194
23219
  display: "df",
23195
23220
  flexDirection: "fdc",
23196
- paddingTop: "pt2"
23221
+ paddingTop: "pt_4px"
23197
23222
  },
23198
23223
  ...showDivider ? dividerStyles : {}
23199
23224
  }), ...tid, children: [
@@ -23206,17 +23231,18 @@ function AppNavSectionView(props) {
23206
23231
  }],
23207
23232
  paddingLeft: "pl1",
23208
23233
  paddingRight: "pr1",
23234
+ paddingTop: "pt1",
23209
23235
  paddingBottom: "pb1",
23210
23236
  textTransform: "ttu"
23211
23237
  }), ...tid.label, children: section.label }),
23212
- /* @__PURE__ */ jsx183(AppNavItems, { ...scopeProps, items: section.items, variant, panelCollapsed })
23238
+ /* @__PURE__ */ jsx183(AppNavItems, { ...scopeProps, items: section.items, variant, panelCollapsed, nested })
23213
23239
  ] });
23214
23240
  }
23215
23241
 
23216
23242
  // src/components/AppNav/AppNavItems.tsx
23217
23243
  import { Fragment as Fragment40, jsx as jsx184 } from "react/jsx-runtime";
23218
23244
  function AppNavItems(props) {
23219
- const { items, variant = "side", panelCollapsed = false } = props;
23245
+ const { items, variant = "side", panelCollapsed = false, nested = false } = props;
23220
23246
  const tid = useTestIds(props, "appNav");
23221
23247
  return /* @__PURE__ */ jsx184(Fragment40, { children: items.map((item, idx) => {
23222
23248
  if (isAppNavLink(item)) {
@@ -23225,6 +23251,7 @@ function AppNavItems(props) {
23225
23251
  {
23226
23252
  variant,
23227
23253
  ...item,
23254
+ nested,
23228
23255
  iconOnly: item.iconOnly ?? (panelCollapsed && !!item.icon),
23229
23256
  ...tid[`link_${camelCase6(item.label)}`]
23230
23257
  },
@@ -23249,6 +23276,7 @@ function AppNavItems(props) {
23249
23276
  section: item,
23250
23277
  variant,
23251
23278
  panelCollapsed,
23279
+ nested,
23252
23280
  showDivider: idx < items.length - 1,
23253
23281
  ...tid.section
23254
23282
  },
@@ -23278,7 +23306,7 @@ function useEnvironmentBannerLayoutHeight() {
23278
23306
  }
23279
23307
 
23280
23308
  // src/components/Navbar/NavbarMobileMenu.tsx
23281
- import { mergeProps as mergeProps28, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
23309
+ import { trussProps as trussProps96, mergeProps as mergeProps28, maybeCssVar as maybeCssVar52 } from "@homebound/truss/runtime";
23282
23310
  import { Fragment as Fragment41, jsx as jsx186, jsxs as jsxs91 } from "react/jsx-runtime";
23283
23311
  function NavbarMobileMenu(props) {
23284
23312
  const {
@@ -23299,7 +23327,11 @@ function NavbarMobileMenu(props) {
23299
23327
  const close = () => setIsOpen(false);
23300
23328
  return /* @__PURE__ */ jsxs91(Fragment41, { children: [
23301
23329
  /* @__PURE__ */ jsx186(IconButton, { icon: isOpen ? "menuClose" : "menu", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: isOpen ? "Close navigation" : "Open navigation", onClick: () => setIsOpen((open) => !open), ...tid.mobileMenu }),
23302
- createPortal6(/* @__PURE__ */ jsx186(ContrastScope, { children: /* @__PURE__ */ jsx186(AnimatePresence5, { children: isOpen && /* @__PURE__ */ jsx186(NavbarMobileDrawer, { items, onClose: close, tid }) }) }), document.body)
23330
+ createPortal6(
23331
+ /* AnimatePresence keeps the drawer mounted through its slide/fade-out before unmounting.*/
23332
+ /* @__PURE__ */ jsx186(AnimatePresence5, { children: isOpen && /* @__PURE__ */ jsx186(NavbarMobileDrawer, { items, onClose: close, tid }) }),
23333
+ document.body
23334
+ )
23303
23335
  ] });
23304
23336
  }
23305
23337
  function NavbarMobileDrawer({
@@ -23338,7 +23370,7 @@ function NavbarMobileDrawer({
23338
23370
  display: "df",
23339
23371
  flexDirection: "fdc",
23340
23372
  flexShrink: "fs0",
23341
- width: "w100",
23373
+ width: "w_260px",
23342
23374
  overflow: "oh",
23343
23375
  zIndex: ["z_var", {
23344
23376
  "--zIndex": maybeCssVar52(zIndices.navbarMobileMenu)
@@ -23356,11 +23388,25 @@ function NavbarMobileDrawer({
23356
23388
  ease: "linear",
23357
23389
  duration: 0.2
23358
23390
  }, onClick: (e) => e.stopPropagation(), ...tid.mobileMenuDrawer, children: [
23359
- /* @__PURE__ */ jsx186("div", { className: "df aic jcfe pt2 pb2 pr2 pl2 fs0", children: /* @__PURE__ */ jsx186(IconButton, { icon: "menuClose", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: "Close navigation", onClick: onClose, ...tid.mobileMenuClose }) }),
23391
+ /* @__PURE__ */ jsx186("div", { ...trussProps96({
23392
+ display: "df",
23393
+ alignItems: "aic",
23394
+ justifyContent: "jcfe",
23395
+ paddingLeft: "pl3",
23396
+ paddingRight: "pr3",
23397
+ paddingTop: "pt_12px",
23398
+ paddingBottom: "pb_12px",
23399
+ flexShrink: "fs0",
23400
+ borderBottomStyle: "bbs_solid",
23401
+ borderBottomWidth: "bbw_1px",
23402
+ borderColor: ["bc_var", {
23403
+ "--borderColor": "var(--b-surface-separator)"
23404
+ }]
23405
+ }), children: /* @__PURE__ */ jsx186(IconButton, { icon: "x", color: "--b-on-surface-muted" /* OnSurfaceMuted */, label: "Close navigation", onClick: onClose, ...tid.mobileMenuClose }) }),
23360
23406
  /* @__PURE__ */ jsx186(
23361
23407
  "nav",
23362
23408
  {
23363
- className: "fg1 oya pl2 pr2 pb3 df fdc gap1",
23409
+ className: "fg1 oya pl3 pr3 pb3 pt2 df fdc gap_4px",
23364
23410
  onClickCapture: (e) => {
23365
23411
  if (e.target.closest("a")) {
23366
23412
  onClose();
@@ -23375,7 +23421,7 @@ function NavbarMobileDrawer({
23375
23421
  }
23376
23422
 
23377
23423
  // src/components/Navbar/Navbar.tsx
23378
- import { trussProps as trussProps96 } from "@homebound/truss/runtime";
23424
+ import { trussProps as trussProps97 } from "@homebound/truss/runtime";
23379
23425
  import { jsx as jsx187, jsxs as jsxs92 } from "react/jsx-runtime";
23380
23426
  function Navbar(props) {
23381
23427
  const {
@@ -23395,7 +23441,7 @@ function Navbar(props) {
23395
23441
  overflows
23396
23442
  } = useContentOverflow(!sm);
23397
23443
  const showMobile = sm || overflows;
23398
- return /* @__PURE__ */ jsx187(ContrastScope, { children: /* @__PURE__ */ jsxs92("nav", { ...trussProps96({
23444
+ return /* @__PURE__ */ jsx187(ContrastScope, { children: /* @__PURE__ */ jsxs92("nav", { ...trussProps97({
23399
23445
  backgroundColor: ["bgColor_var", {
23400
23446
  "--backgroundColor": "var(--b-surface-raised)"
23401
23447
  }],
@@ -23417,7 +23463,7 @@ function Navbar(props) {
23417
23463
  /* @__PURE__ */ jsxs92("div", { className: "df aic gap3 fg1 mw0", children: [
23418
23464
  /* @__PURE__ */ jsxs92("div", { className: "df aic fs0 gap2", children: [
23419
23465
  showMobile && /* @__PURE__ */ jsx187(NavbarMobileMenu, { items, ...tid }),
23420
- /* @__PURE__ */ jsx187("div", { ...trussProps96({
23466
+ /* @__PURE__ */ jsx187("div", { ...trussProps97({
23421
23467
  flexShrink: "fs0",
23422
23468
  ...hideBrandOnMobile && showMobile ? {
23423
23469
  display: "dn"
@@ -23426,7 +23472,7 @@ function Navbar(props) {
23426
23472
  ] }),
23427
23473
  !sm && // Stays mounted while overflowing (hidden) so the items remain measurable and the bar
23428
23474
  // can expand again as space frees up.
23429
- /* @__PURE__ */ jsx187("div", { ref: containerRef, ...trussProps96({
23475
+ /* @__PURE__ */ jsx187("div", { ref: containerRef, ...trussProps97({
23430
23476
  display: "df",
23431
23477
  alignItems: "aic",
23432
23478
  flexGrow: "fg1",
@@ -23461,7 +23507,7 @@ import { useEffect as useEffect35, useMemo as useMemo52, useRef as useRef58, use
23461
23507
  import { mergeProps as mergeProps29, useFocusRing as useFocusRing16, useHover as useHover20 } from "react-aria";
23462
23508
  import { matchPath } from "react-router";
23463
23509
  import { Link as Link6, useLocation as useLocation2 } from "react-router-dom";
23464
- import { trussProps as trussProps97, maybeCssVar as maybeCssVar53 } from "@homebound/truss/runtime";
23510
+ import { trussProps as trussProps98, maybeCssVar as maybeCssVar53 } from "@homebound/truss/runtime";
23465
23511
  import { Fragment as Fragment42, jsx as jsx188, jsxs as jsxs93 } from "react/jsx-runtime";
23466
23512
  function TabsWithContent(props) {
23467
23513
  const styles = hideTabs(props) ? {} : {
@@ -23494,7 +23540,7 @@ function TabContent(props) {
23494
23540
  return (
23495
23541
  // Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
23496
23542
  // Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
23497
- /* @__PURE__ */ jsx188(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx188("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps97(contentXss), children: selectedTab.render() }) })
23543
+ /* @__PURE__ */ jsx188(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx188("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps98(contentXss), children: selectedTab.render() }) })
23498
23544
  );
23499
23545
  }
23500
23546
  function Tabs(props) {
@@ -23536,7 +23582,7 @@ function Tabs(props) {
23536
23582
  setActive(selected);
23537
23583
  }
23538
23584
  }
23539
- return /* @__PURE__ */ jsxs93("div", { ...trussProps97({
23585
+ return /* @__PURE__ */ jsxs93("div", { ...trussProps98({
23540
23586
  ...{
23541
23587
  display: "df",
23542
23588
  alignItems: "aic",
@@ -23600,7 +23646,7 @@ function TabImpl(props) {
23600
23646
  role: "tab",
23601
23647
  tabIndex: active ? 0 : -1,
23602
23648
  ...others,
23603
- ...trussProps97({
23649
+ ...trussProps98({
23604
23650
  ...baseStyles4,
23605
23651
  ...active && activeStyles3,
23606
23652
  ...isDisabled && disabledStyles3,
@@ -23721,7 +23767,7 @@ function hideTabs(props) {
23721
23767
  }
23722
23768
 
23723
23769
  // src/components/PageHeader.tsx
23724
- import { trussProps as trussProps98 } from "@homebound/truss/runtime";
23770
+ import { trussProps as trussProps99 } from "@homebound/truss/runtime";
23725
23771
  import { jsx as jsx189, jsxs as jsxs94 } from "react/jsx-runtime";
23726
23772
  function PageHeader2(props) {
23727
23773
  const {
@@ -23733,7 +23779,7 @@ function PageHeader2(props) {
23733
23779
  } = props;
23734
23780
  const tid = useTestIds(otherProps, "pageHeader");
23735
23781
  useDocumentTitle(title, documentTitleSuffix);
23736
- return /* @__PURE__ */ jsxs94("header", { ...tid, ...trussProps98({
23782
+ return /* @__PURE__ */ jsxs94("header", { ...tid, ...trussProps99({
23737
23783
  display: "df",
23738
23784
  flexDirection: "fdc",
23739
23785
  paddingTop: "pt3",
@@ -23831,7 +23877,7 @@ function toPageNumberSize(page) {
23831
23877
  // src/components/ScrollShadows.tsx
23832
23878
  import { useResizeObserver as useResizeObserver9 } from "@react-aria/utils";
23833
23879
  import { useCallback as useCallback34, useMemo as useMemo53, useRef as useRef59, useState as useState54 } from "react";
23834
- import { trussProps as trussProps99, maybeCssVar as maybeCssVar54 } from "@homebound/truss/runtime";
23880
+ import { trussProps as trussProps100, maybeCssVar as maybeCssVar54 } from "@homebound/truss/runtime";
23835
23881
  import { jsx as jsx191, jsxs as jsxs96 } from "react/jsx-runtime";
23836
23882
  function ScrollShadows(props) {
23837
23883
  const {
@@ -23922,7 +23968,7 @@ function ScrollShadows(props) {
23922
23968
  ref: scrollRef,
23923
23969
  onResize
23924
23970
  });
23925
- return /* @__PURE__ */ jsxs96("div", { ...trussProps99({
23971
+ return /* @__PURE__ */ jsxs96("div", { ...trussProps100({
23926
23972
  display: "df",
23927
23973
  flexDirection: ["fd_var", {
23928
23974
  "--flexDirection": maybeCssVar54(!horizontal ? "column" : "row")
@@ -23938,7 +23984,7 @@ function ScrollShadows(props) {
23938
23984
  width: width2
23939
23985
  }
23940
23986
  }), ...tid, children: [
23941
- /* @__PURE__ */ jsx191("div", { ...trussProps99({
23987
+ /* @__PURE__ */ jsx191("div", { ...trussProps100({
23942
23988
  ...startShadowStyles,
23943
23989
  ...{
23944
23990
  opacity: ["o_var", {
@@ -23946,7 +23992,7 @@ function ScrollShadows(props) {
23946
23992
  }]
23947
23993
  }
23948
23994
  }), "data-chromatic": "ignore" }),
23949
- /* @__PURE__ */ jsx191("div", { ...trussProps99({
23995
+ /* @__PURE__ */ jsx191("div", { ...trussProps100({
23950
23996
  ...endShadowStyles,
23951
23997
  ...{
23952
23998
  opacity: ["o_var", {
@@ -23954,7 +24000,7 @@ function ScrollShadows(props) {
23954
24000
  }]
23955
24001
  }
23956
24002
  }), "data-chromatic": "ignore" }),
23957
- /* @__PURE__ */ jsx191("div", { ...trussProps99({
24003
+ /* @__PURE__ */ jsx191("div", { ...trussProps100({
23958
24004
  ...xss,
23959
24005
  ...{
23960
24006
  overflow: "oa",
@@ -24034,7 +24080,7 @@ function useHasSideNavLayoutProvider() {
24034
24080
  }
24035
24081
 
24036
24082
  // src/components/SideNav/SideNav.tsx
24037
- import { trussProps as trussProps100 } from "@homebound/truss/runtime";
24083
+ import { trussProps as trussProps101 } from "@homebound/truss/runtime";
24038
24084
  import { jsx as jsx193, jsxs as jsxs97 } from "react/jsx-runtime";
24039
24085
  function SideNav(props) {
24040
24086
  const {
@@ -24049,7 +24095,7 @@ function SideNav(props) {
24049
24095
  const panelCollapsed = navState === "collapse";
24050
24096
  const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
24051
24097
  return /* @__PURE__ */ jsxs97("nav", { className: "df fdc h100 fs0", ...tid, children: [
24052
- top !== void 0 && /* @__PURE__ */ jsx193("div", { ...trussProps100({
24098
+ top !== void 0 && /* @__PURE__ */ jsx193("div", { ...trussProps101({
24053
24099
  flexShrink: "fs0",
24054
24100
  paddingLeft: "pl2",
24055
24101
  paddingRight: "pr2",
@@ -24060,7 +24106,7 @@ function SideNav(props) {
24060
24106
  paddingBottom: "pb4"
24061
24107
  } : {}
24062
24108
  }), ...tid.top, children: top }),
24063
- /* @__PURE__ */ jsx193("div", { ...trussProps100({
24109
+ /* @__PURE__ */ jsx193("div", { ...trussProps101({
24064
24110
  flexGrow: "fg1",
24065
24111
  overflowY: "oya",
24066
24112
  display: "df",
@@ -24073,7 +24119,7 @@ function SideNav(props) {
24073
24119
  paddingTop: "pt5"
24074
24120
  } : {}
24075
24121
  }), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ jsx193(AppNavItems, { items, panelCollapsed }) }),
24076
- footer !== void 0 && /* @__PURE__ */ jsx193("div", { ...trussProps100({
24122
+ footer !== void 0 && /* @__PURE__ */ jsx193("div", { ...trussProps101({
24077
24123
  flexShrink: "fs0",
24078
24124
  paddingLeft: "pl2",
24079
24125
  paddingRight: "pr2",
@@ -24150,7 +24196,7 @@ var snackbarId = 1;
24150
24196
  // src/components/Stepper.tsx
24151
24197
  import { useRef as useRef61 } from "react";
24152
24198
  import { useButton as useButton12, useFocusRing as useFocusRing17, useHover as useHover21 } from "react-aria";
24153
- import { trussProps as trussProps101, maybeCssVar as maybeCssVar55 } from "@homebound/truss/runtime";
24199
+ import { trussProps as trussProps102, maybeCssVar as maybeCssVar55 } from "@homebound/truss/runtime";
24154
24200
  import { jsx as jsx194, jsxs as jsxs98 } from "react/jsx-runtime";
24155
24201
  import { createElement as createElement5 } from "react";
24156
24202
  var __maybeInc20 = (inc) => {
@@ -24171,7 +24217,7 @@ function Stepper(props) {
24171
24217
  const minStepWidth = 100;
24172
24218
  const gap = 8;
24173
24219
  return /* @__PURE__ */ jsxs98("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
24174
- /* @__PURE__ */ jsx194("ol", { ...trussProps101({
24220
+ /* @__PURE__ */ jsx194("ol", { ...trussProps102({
24175
24221
  padding: "p_0",
24176
24222
  margin: "m_0",
24177
24223
  listStyle: "lis_none",
@@ -24181,7 +24227,7 @@ function Stepper(props) {
24181
24227
  }]
24182
24228
  }), children: steps.map((step) => {
24183
24229
  const isCurrent = currentStep === step.value;
24184
- return /* @__PURE__ */ createElement5("li", { ...trussProps101({
24230
+ return /* @__PURE__ */ createElement5("li", { ...trussProps102({
24185
24231
  display: "df",
24186
24232
  flexGrow: "fg1",
24187
24233
  flexDirection: "fdc",
@@ -24193,7 +24239,7 @@ function Stepper(props) {
24193
24239
  }]
24194
24240
  }), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ jsx194(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
24195
24241
  }) }),
24196
- /* @__PURE__ */ jsx194("div", { ...trussProps101({
24242
+ /* @__PURE__ */ jsx194("div", { ...trussProps102({
24197
24243
  marginTop: "mt1",
24198
24244
  backgroundColor: "bgGray300",
24199
24245
  height: "h_4px",
@@ -24204,7 +24250,7 @@ function Stepper(props) {
24204
24250
  "--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
24205
24251
  }],
24206
24252
  width: "w100"
24207
- }), children: /* @__PURE__ */ jsx194("div", { ...trussProps101({
24253
+ }), children: /* @__PURE__ */ jsx194("div", { ...trussProps102({
24208
24254
  backgroundColor: "bgBlue600",
24209
24255
  transition: "transition_width_200ms",
24210
24256
  height: "h100",
@@ -24245,7 +24291,7 @@ function StepButton(props) {
24245
24291
  boxShadow: "bshFocus"
24246
24292
  };
24247
24293
  const tid = useTestIds(props, "stepButton");
24248
- return /* @__PURE__ */ jsxs98("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps101({
24294
+ return /* @__PURE__ */ jsxs98("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps102({
24249
24295
  ...{
24250
24296
  fontWeight: "fw6",
24251
24297
  fontSize: "fz_14px",
@@ -24313,7 +24359,7 @@ function StepIcon({
24313
24359
  if (state === "complete") {
24314
24360
  return /* @__PURE__ */ jsx194(Icon, { icon: "check" });
24315
24361
  }
24316
- return /* @__PURE__ */ jsx194("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx194("div", { ...trussProps101({
24362
+ return /* @__PURE__ */ jsx194("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx194("div", { ...trussProps102({
24317
24363
  width: "w_10px",
24318
24364
  height: "h_10px",
24319
24365
  borderStyle: "bss",
@@ -24328,7 +24374,7 @@ function StepIcon({
24328
24374
 
24329
24375
  // src/components/SuperDrawer/components/SuperDrawerHeader.tsx
24330
24376
  import { createPortal as createPortal7 } from "react-dom";
24331
- import { trussProps as trussProps102 } from "@homebound/truss/runtime";
24377
+ import { trussProps as trussProps103 } from "@homebound/truss/runtime";
24332
24378
  import { jsx as jsx195, jsxs as jsxs99 } from "react/jsx-runtime";
24333
24379
  function SuperDrawerHeader(props) {
24334
24380
  const {
@@ -24354,7 +24400,7 @@ function SuperDrawerHeader(props) {
24354
24400
  ] }),
24355
24401
  props.right && /* @__PURE__ */ jsx195("div", { className: "fs0", children: props.right })
24356
24402
  ] }) : /* @__PURE__ */ jsx195("div", { className: "fg1", children: props.children }),
24357
- !hideControls && /* @__PURE__ */ jsx195("div", { ...trussProps102({
24403
+ !hideControls && /* @__PURE__ */ jsx195("div", { ...trussProps103({
24358
24404
  flexShrink: "fs0",
24359
24405
  ...isDetail ? {
24360
24406
  visibility: "vh"
@@ -24662,7 +24708,7 @@ function useToast() {
24662
24708
  }
24663
24709
 
24664
24710
  // src/layouts/SideNavLayout/SideNavLayout.tsx
24665
- import { trussProps as trussProps103, mergeProps as mergeProps31, maybeCssVar as maybeCssVar56 } from "@homebound/truss/runtime";
24711
+ import { trussProps as trussProps104, mergeProps as mergeProps31, maybeCssVar as maybeCssVar56 } from "@homebound/truss/runtime";
24666
24712
  import { jsx as jsx200, jsxs as jsxs103 } from "react/jsx-runtime";
24667
24713
  var __maybeInc21 = (inc) => {
24668
24714
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -24692,7 +24738,7 @@ function SideNavLayoutContent(props) {
24692
24738
  const railOffsetPx = !showRail ? 0 : !bp.mdAndUp || collapsed ? railCollapsedWidthPx : railWidthPx;
24693
24739
  const navTop = bannerAndNavbarChromeTop();
24694
24740
  const railViewportHeight = `calc(var(${beamLayoutViewportHeightVar}, 100vh) - var(${beamEnvironmentBannerLayoutHeightVar}, 0px) - var(${beamNavbarLayoutHeightVar}, 0px))`;
24695
- const rail = showRail && /* @__PURE__ */ jsxs103("div", { ...trussProps103({
24741
+ const rail = showRail && /* @__PURE__ */ jsxs103("div", { ...trussProps104({
24696
24742
  ...{
24697
24743
  display: "df",
24698
24744
  flexDirection: "fdc",
@@ -24760,7 +24806,7 @@ function SideNavLayoutContent(props) {
24760
24806
  width: "w100"
24761
24807
  }), ...tid, children: [
24762
24808
  contrastRail ? /* @__PURE__ */ jsx200(ContrastScope, { children: rail }) : rail,
24763
- /* @__PURE__ */ jsx200("div", { ...trussProps103({
24809
+ /* @__PURE__ */ jsx200("div", { ...trussProps104({
24764
24810
  display: "df",
24765
24811
  flexDirection: "fdc",
24766
24812
  flexGrow: "fg1",
@@ -24776,7 +24822,7 @@ function SideNavLayoutContent(props) {
24776
24822
  }
24777
24823
 
24778
24824
  // src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayout.tsx
24779
- import { trussProps as trussProps104, mergeProps as mergeProps32, maybeCssVar as maybeCssVar57 } from "@homebound/truss/runtime";
24825
+ import { trussProps as trussProps105, mergeProps as mergeProps32, maybeCssVar as maybeCssVar57 } from "@homebound/truss/runtime";
24780
24826
  import { jsx as jsx201, jsxs as jsxs104 } from "react/jsx-runtime";
24781
24827
  var __maybeInc22 = (inc) => {
24782
24828
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -24804,7 +24850,7 @@ function EnvironmentBannerLayout(props) {
24804
24850
  }, {
24805
24851
  flexShrink: "fs0",
24806
24852
  width: "w100"
24807
- }), children: /* @__PURE__ */ jsx201("div", { ...trussProps104({
24853
+ }), children: /* @__PURE__ */ jsx201("div", { ...trussProps105({
24808
24854
  position: "fixed",
24809
24855
  top: "top0",
24810
24856
  left: "left0",