@homebound/beam 3.11.0 → 3.12.1

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
@@ -4298,17 +4298,33 @@ function Popper(props) {
4298
4298
  styles,
4299
4299
  attributes
4300
4300
  } = usePopper(targetElement, popperRef.current, {
4301
- modifiers: [{
4302
- name: "arrow",
4303
- options: {
4304
- element: arrowRef
4305
- }
4306
- }, {
4307
- name: "offset",
4308
- options: {
4309
- offset: [0, 5]
4301
+ // Use `fixed` positioning so the portaled tooltip is positioned relative to the viewport.
4302
+ // With the default `absolute` strategy the tooltip is appended to `document.body` and counts
4303
+ // toward the document's scroll size, so a trigger near an edge pushes the tooltip past the
4304
+ // document bounds and introduces scrollbars / renders off-screen. `fixed` elements don't
4305
+ // contribute to document scroll size, so they can be kept within the viewport instead.
4306
+ strategy: "fixed",
4307
+ modifiers: [
4308
+ {
4309
+ name: "arrow",
4310
+ options: {
4311
+ element: arrowRef
4312
+ }
4313
+ },
4314
+ {
4315
+ name: "offset",
4316
+ options: {
4317
+ offset: [0, 5]
4318
+ }
4319
+ },
4320
+ // Keep the tooltip inside the viewport (with a small gutter) rather than overflowing it.
4321
+ {
4322
+ name: "preventOverflow",
4323
+ options: {
4324
+ padding: 8
4325
+ }
4310
4326
  }
4311
- }],
4327
+ ],
4312
4328
  placement
4313
4329
  });
4314
4330
  return createPortal(/* @__PURE__ */ jsxs("div", { ref: popperRef, ...attributes.popper, ...ariaProps, onMouseEnter, onMouseLeave, ...mergeProps_1(void 0, styles.popper, {
@@ -21142,11 +21158,41 @@ function MaxLines({
21142
21158
  ] });
21143
21159
  }
21144
21160
 
21161
+ // src/components/PageHeader.tsx
21162
+ import { trussProps as trussProps84 } from "@homebound/truss/runtime";
21163
+ import { jsx as jsx167, jsxs as jsxs87 } from "react/jsx-runtime";
21164
+ function PageHeader2(props) {
21165
+ const {
21166
+ title,
21167
+ rightSlot,
21168
+ ...otherProps
21169
+ } = props;
21170
+ const tid = useTestIds(otherProps, "pageHeader");
21171
+ return /* @__PURE__ */ jsx167("header", { ...tid, ...trussProps84({
21172
+ display: "df",
21173
+ flexDirection: "fdc",
21174
+ paddingTop: "pt3",
21175
+ paddingRight: "pr3",
21176
+ paddingLeft: "pl3",
21177
+ borderBottomStyle: "bbs_solid",
21178
+ borderBottomWidth: "bbw_1px",
21179
+ borderColor: ["bc_var", {
21180
+ "--borderColor": "var(--b-surface-separator)"
21181
+ }],
21182
+ backgroundColor: ["bgColor_var", {
21183
+ "--backgroundColor": "var(--b-surface)"
21184
+ }]
21185
+ }), children: /* @__PURE__ */ jsxs87("div", { className: "df jcsb mb2 w100 gap1", children: [
21186
+ /* @__PURE__ */ jsx167("div", { children: /* @__PURE__ */ jsx167("h1", { ...tid.title, className: "fw6 fz_20px lh_28px", children: title }) }),
21187
+ /* @__PURE__ */ jsx167("div", { children: rightSlot })
21188
+ ] }) });
21189
+ }
21190
+
21145
21191
  // src/components/ScrollShadows.tsx
21146
21192
  import { useResizeObserver as useResizeObserver7 } from "@react-aria/utils";
21147
21193
  import { useCallback as useCallback27, useMemo as useMemo49, useRef as useRef53, useState as useState48 } from "react";
21148
- import { trussProps as trussProps84, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
21149
- import { jsx as jsx167, jsxs as jsxs87 } from "react/jsx-runtime";
21194
+ import { trussProps as trussProps85, maybeCssVar as maybeCssVar46 } from "@homebound/truss/runtime";
21195
+ import { jsx as jsx168, jsxs as jsxs88 } from "react/jsx-runtime";
21150
21196
  function ScrollShadows(props) {
21151
21197
  const {
21152
21198
  children,
@@ -21236,7 +21282,7 @@ function ScrollShadows(props) {
21236
21282
  ref: scrollRef,
21237
21283
  onResize
21238
21284
  });
21239
- return /* @__PURE__ */ jsxs87("div", { ...trussProps84({
21285
+ return /* @__PURE__ */ jsxs88("div", { ...trussProps85({
21240
21286
  display: "df",
21241
21287
  flexDirection: ["fd_var", {
21242
21288
  "--flexDirection": maybeCssVar46(!horizontal ? "column" : "row")
@@ -21252,7 +21298,7 @@ function ScrollShadows(props) {
21252
21298
  width: width2
21253
21299
  }
21254
21300
  }), ...tid, children: [
21255
- /* @__PURE__ */ jsx167("div", { ...trussProps84({
21301
+ /* @__PURE__ */ jsx168("div", { ...trussProps85({
21256
21302
  ...startShadowStyles,
21257
21303
  ...{
21258
21304
  opacity: ["o_var", {
@@ -21260,7 +21306,7 @@ function ScrollShadows(props) {
21260
21306
  }]
21261
21307
  }
21262
21308
  }), "data-chromatic": "ignore" }),
21263
- /* @__PURE__ */ jsx167("div", { ...trussProps84({
21309
+ /* @__PURE__ */ jsx168("div", { ...trussProps85({
21264
21310
  ...endShadowStyles,
21265
21311
  ...{
21266
21312
  opacity: ["o_var", {
@@ -21268,7 +21314,7 @@ function ScrollShadows(props) {
21268
21314
  }]
21269
21315
  }
21270
21316
  }), "data-chromatic": "ignore" }),
21271
- /* @__PURE__ */ jsx167("div", { ...trussProps84({
21317
+ /* @__PURE__ */ jsx168("div", { ...trussProps85({
21272
21318
  ...xss,
21273
21319
  ...{
21274
21320
  overflow: "oa",
@@ -21314,25 +21360,25 @@ function useSideNavLinkGroupExpanded(linkGroup) {
21314
21360
  }
21315
21361
 
21316
21362
  // src/components/SideNav/SideNavLinkGroup.tsx
21317
- import { Fragment as Fragment38, jsx as jsx168 } from "react/jsx-runtime";
21363
+ import { Fragment as Fragment38, jsx as jsx169 } from "react/jsx-runtime";
21318
21364
  function SideNavLinkGroupView(props) {
21319
21365
  const { linkGroup, panelCollapsed } = props;
21320
21366
  const tid = useTestIds(props, "linkGroup");
21321
21367
  if (panelCollapsed) {
21322
- return /* @__PURE__ */ jsx168(Fragment38, { children: linkGroup.links.map((link) => /* @__PURE__ */ jsx168(NavLink, { variant: "side", ...link, iconOnly: !!link.icon, ...tid.link }, link.label)) });
21368
+ return /* @__PURE__ */ jsx169(Fragment38, { children: linkGroup.links.map((link) => /* @__PURE__ */ jsx169(NavLink, { variant: "side", ...link, iconOnly: !!link.icon, ...tid.link }, link.label)) });
21323
21369
  }
21324
- return /* @__PURE__ */ jsx168(SideNavLinkGroupDisclosure, { ...props });
21370
+ return /* @__PURE__ */ jsx169(SideNavLinkGroupDisclosure, { ...props });
21325
21371
  }
21326
21372
  function SideNavLinkGroupDisclosure(props) {
21327
21373
  const { linkGroup } = props;
21328
21374
  const { expanded, onToggle } = useSideNavLinkGroupExpanded(linkGroup);
21329
21375
  const tid = useTestIds(props, "linkGroup");
21330
- return /* @__PURE__ */ jsx168(NavGroup, { label: linkGroup.label, links: linkGroup.links, expanded, onClick: onToggle, ...tid });
21376
+ return /* @__PURE__ */ jsx169(NavGroup, { label: linkGroup.label, links: linkGroup.links, expanded, onClick: onToggle, ...tid });
21331
21377
  }
21332
21378
 
21333
21379
  // src/components/SideNav/SideNavSectionView.tsx
21334
- import { trussProps as trussProps85 } from "@homebound/truss/runtime";
21335
- import { jsx as jsx169, jsxs as jsxs88 } from "react/jsx-runtime";
21380
+ import { trussProps as trussProps86 } from "@homebound/truss/runtime";
21381
+ import { jsx as jsx170, jsxs as jsxs89 } from "react/jsx-runtime";
21336
21382
  function SideNavSectionView(props) {
21337
21383
  const {
21338
21384
  section,
@@ -21341,7 +21387,7 @@ function SideNavSectionView(props) {
21341
21387
  ...scopeProps
21342
21388
  } = props;
21343
21389
  const tid = useTestIds(scopeProps);
21344
- return /* @__PURE__ */ jsxs88("div", { ...trussProps85({
21390
+ return /* @__PURE__ */ jsxs89("div", { ...trussProps86({
21345
21391
  display: "df",
21346
21392
  flexDirection: "fdc",
21347
21393
  paddingTop: "pt2",
@@ -21354,7 +21400,7 @@ function SideNavSectionView(props) {
21354
21400
  paddingBottom: "pb2"
21355
21401
  } : {}
21356
21402
  }), ...tid, children: [
21357
- section.label && !panelCollapsed && /* @__PURE__ */ jsx169("div", { ...trussProps85({
21403
+ section.label && !panelCollapsed && /* @__PURE__ */ jsx170("div", { ...trussProps86({
21358
21404
  fontWeight: "fw6",
21359
21405
  fontSize: "fz_10px",
21360
21406
  lineHeight: "lh_14px",
@@ -21366,7 +21412,7 @@ function SideNavSectionView(props) {
21366
21412
  paddingBottom: "pb1",
21367
21413
  textTransform: "ttu"
21368
21414
  }), ...tid.label, children: section.label }),
21369
- /* @__PURE__ */ jsx169(SideNavItems, { ...scopeProps, items: section.items, panelCollapsed })
21415
+ /* @__PURE__ */ jsx170(SideNavItems, { ...scopeProps, items: section.items, panelCollapsed })
21370
21416
  ] });
21371
21417
  }
21372
21418
 
@@ -21393,13 +21439,13 @@ function entryHasIcons(item) {
21393
21439
  }
21394
21440
 
21395
21441
  // src/components/SideNav/SideNavItems.tsx
21396
- import { Fragment as Fragment39, jsx as jsx170 } from "react/jsx-runtime";
21442
+ import { Fragment as Fragment39, jsx as jsx171 } from "react/jsx-runtime";
21397
21443
  function SideNavItems(props) {
21398
21444
  const { items, panelCollapsed } = props;
21399
21445
  const tid = useTestIds(props, "sideNav");
21400
- return /* @__PURE__ */ jsx170(Fragment39, { children: items.map((item, idx) => {
21446
+ return /* @__PURE__ */ jsx171(Fragment39, { children: items.map((item, idx) => {
21401
21447
  if (isSideNavLink(item)) {
21402
- return /* @__PURE__ */ jsx170(
21448
+ return /* @__PURE__ */ jsx171(
21403
21449
  NavLink,
21404
21450
  {
21405
21451
  variant: "side",
@@ -21411,7 +21457,7 @@ function SideNavItems(props) {
21411
21457
  );
21412
21458
  }
21413
21459
  if (isSideNavLinkGroup(item)) {
21414
- return /* @__PURE__ */ jsx170(
21460
+ return /* @__PURE__ */ jsx171(
21415
21461
  SideNavLinkGroupView,
21416
21462
  {
21417
21463
  linkGroup: item,
@@ -21421,7 +21467,7 @@ function SideNavItems(props) {
21421
21467
  sideNavItemKey(item)
21422
21468
  );
21423
21469
  }
21424
- return /* @__PURE__ */ jsx170(
21470
+ return /* @__PURE__ */ jsx171(
21425
21471
  SideNavSectionView,
21426
21472
  {
21427
21473
  section: item,
@@ -21443,7 +21489,7 @@ import {
21443
21489
  useRef as useRef54,
21444
21490
  useState as useState50
21445
21491
  } from "react";
21446
- import { jsx as jsx171 } from "react/jsx-runtime";
21492
+ import { jsx as jsx172 } from "react/jsx-runtime";
21447
21493
  var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
21448
21494
  function loadStoredNavState() {
21449
21495
  try {
@@ -21490,7 +21536,7 @@ function SideNavLayoutProvider(props) {
21490
21536
  return next;
21491
21537
  });
21492
21538
  }, []);
21493
- return /* @__PURE__ */ jsx171(SideNavLayoutContext.Provider, { value: { navState, setNavState }, children: props.children });
21539
+ return /* @__PURE__ */ jsx172(SideNavLayoutContext.Provider, { value: { navState, setNavState }, children: props.children });
21494
21540
  }
21495
21541
  function useSideNavLayoutContext() {
21496
21542
  return useContext22(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
@@ -21501,8 +21547,8 @@ function useHasSideNavLayoutProvider() {
21501
21547
  }
21502
21548
 
21503
21549
  // src/components/SideNav/SideNav.tsx
21504
- import { trussProps as trussProps86 } from "@homebound/truss/runtime";
21505
- import { jsx as jsx172, jsxs as jsxs89 } from "react/jsx-runtime";
21550
+ import { trussProps as trussProps87 } from "@homebound/truss/runtime";
21551
+ import { jsx as jsx173, jsxs as jsxs90 } from "react/jsx-runtime";
21506
21552
  function SideNav(props) {
21507
21553
  const {
21508
21554
  top,
@@ -21515,8 +21561,8 @@ function SideNav(props) {
21515
21561
  const tid = useTestIds(props, "sideNav");
21516
21562
  const panelCollapsed = navState === "collapse";
21517
21563
  const hideOnCollapse = panelCollapsed && !allItemsHaveIcons(items);
21518
- return /* @__PURE__ */ jsxs89("nav", { className: "df fdc h100 fs0", ...tid, children: [
21519
- top !== void 0 && /* @__PURE__ */ jsx172("div", { ...trussProps86({
21564
+ return /* @__PURE__ */ jsxs90("nav", { className: "df fdc h100 fs0", ...tid, children: [
21565
+ top !== void 0 && /* @__PURE__ */ jsx173("div", { ...trussProps87({
21520
21566
  flexShrink: "fs0",
21521
21567
  paddingLeft: "pl2",
21522
21568
  paddingRight: "pr2",
@@ -21527,7 +21573,7 @@ function SideNav(props) {
21527
21573
  paddingBottom: "pb4"
21528
21574
  } : {}
21529
21575
  }), ...tid.top, children: top }),
21530
- /* @__PURE__ */ jsx172("div", { ...trussProps86({
21576
+ /* @__PURE__ */ jsx173("div", { ...trussProps87({
21531
21577
  flexGrow: "fg1",
21532
21578
  overflowY: "oya",
21533
21579
  display: "df",
@@ -21539,8 +21585,8 @@ function SideNav(props) {
21539
21585
  ...top === void 0 ? {
21540
21586
  paddingTop: "pt5"
21541
21587
  } : {}
21542
- }), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ jsx172(SideNavItems, { items, panelCollapsed }) }),
21543
- footer !== void 0 && /* @__PURE__ */ jsx172("div", { ...trussProps86({
21588
+ }), ...tid.items, children: !hideOnCollapse && /* @__PURE__ */ jsx173(SideNavItems, { items, panelCollapsed }) }),
21589
+ footer !== void 0 && /* @__PURE__ */ jsx173("div", { ...trussProps87({
21544
21590
  flexShrink: "fs0",
21545
21591
  paddingLeft: "pl2",
21546
21592
  paddingRight: "pr2",
@@ -21617,8 +21663,8 @@ var snackbarId = 1;
21617
21663
  // src/components/Stepper.tsx
21618
21664
  import { useRef as useRef55 } from "react";
21619
21665
  import { useButton as useButton12, useFocusRing as useFocusRing15, useHover as useHover19 } from "react-aria";
21620
- import { trussProps as trussProps87, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
21621
- import { jsx as jsx173, jsxs as jsxs90 } from "react/jsx-runtime";
21666
+ import { trussProps as trussProps88, maybeCssVar as maybeCssVar47 } from "@homebound/truss/runtime";
21667
+ import { jsx as jsx174, jsxs as jsxs91 } from "react/jsx-runtime";
21622
21668
  import { createElement as createElement4 } from "react";
21623
21669
  var __maybeInc14 = (inc) => {
21624
21670
  return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
@@ -21637,8 +21683,8 @@ function Stepper(props) {
21637
21683
  const maxStepWidth = 200;
21638
21684
  const minStepWidth = 100;
21639
21685
  const gap = 8;
21640
- return /* @__PURE__ */ jsxs90("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
21641
- /* @__PURE__ */ jsx173("ol", { ...trussProps87({
21686
+ return /* @__PURE__ */ jsxs91("nav", { "aria-label": "steps", className: "df fdc w100", ...tid, children: [
21687
+ /* @__PURE__ */ jsx174("ol", { ...trussProps88({
21642
21688
  padding: "p_0",
21643
21689
  margin: "m_0",
21644
21690
  listStyle: "lis_none",
@@ -21648,7 +21694,7 @@ function Stepper(props) {
21648
21694
  }]
21649
21695
  }), children: steps.map((step) => {
21650
21696
  const isCurrent = currentStep === step.value;
21651
- return /* @__PURE__ */ createElement4("li", { ...trussProps87({
21697
+ return /* @__PURE__ */ createElement4("li", { ...trussProps88({
21652
21698
  display: "df",
21653
21699
  flexGrow: "fg1",
21654
21700
  flexDirection: "fdc",
@@ -21658,9 +21704,9 @@ function Stepper(props) {
21658
21704
  minWidth: ["mw_var", {
21659
21705
  "--minWidth": `${minStepWidth}px`
21660
21706
  }]
21661
- }), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ jsx173(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
21707
+ }), key: step.label, "aria-current": isCurrent, ...tid.step }, /* @__PURE__ */ jsx174(StepButton, { ...step, onClick: () => onChange(step.value), isCurrent, ...tid.stepButton }));
21662
21708
  }) }),
21663
- /* @__PURE__ */ jsx173("div", { ...trussProps87({
21709
+ /* @__PURE__ */ jsx174("div", { ...trussProps88({
21664
21710
  marginTop: "mt1",
21665
21711
  backgroundColor: "bgGray300",
21666
21712
  height: "h_4px",
@@ -21671,7 +21717,7 @@ function Stepper(props) {
21671
21717
  "--minWidth": `${steps.length * minStepWidth + (steps.length - 1) * gap}px`
21672
21718
  }],
21673
21719
  width: "w100"
21674
- }), children: /* @__PURE__ */ jsx173("div", { ...trussProps87({
21720
+ }), children: /* @__PURE__ */ jsx174("div", { ...trussProps88({
21675
21721
  backgroundColor: "bgBlue600",
21676
21722
  transition: "transition_width_200ms",
21677
21723
  height: "h100",
@@ -21712,7 +21758,7 @@ function StepButton(props) {
21712
21758
  boxShadow: "bshFocus"
21713
21759
  };
21714
21760
  const tid = useTestIds(props, "stepButton");
21715
- return /* @__PURE__ */ jsxs90("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps87({
21761
+ return /* @__PURE__ */ jsxs91("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...trussProps88({
21716
21762
  ...{
21717
21763
  fontWeight: "fw6",
21718
21764
  fontSize: "fz_14px",
@@ -21764,7 +21810,7 @@ function StepButton(props) {
21764
21810
  } : {},
21765
21811
  ...isFocusVisible ? focusRingStyles2 : {}
21766
21812
  }), ...tid[defaultTestId(label)], children: [
21767
- /* @__PURE__ */ jsx173("span", { className: "fs0 mr_4px", children: /* @__PURE__ */ jsx173(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
21813
+ /* @__PURE__ */ jsx174("span", { className: "fs0 mr_4px", children: /* @__PURE__ */ jsx174(StepIcon, { state, isHovered, isPressed, isCurrent }) }),
21768
21814
  label
21769
21815
  ] });
21770
21816
  }
@@ -21775,12 +21821,12 @@ function StepIcon({
21775
21821
  isCurrent = false
21776
21822
  }) {
21777
21823
  if (state === "error") {
21778
- return /* @__PURE__ */ jsx173(Icon, { icon: "errorCircle" });
21824
+ return /* @__PURE__ */ jsx174(Icon, { icon: "errorCircle" });
21779
21825
  }
21780
21826
  if (state === "complete") {
21781
- return /* @__PURE__ */ jsx173(Icon, { icon: "check" });
21827
+ return /* @__PURE__ */ jsx174(Icon, { icon: "check" });
21782
21828
  }
21783
- return /* @__PURE__ */ jsx173("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx173("div", { ...trussProps87({
21829
+ return /* @__PURE__ */ jsx174("div", { className: "w_24px h_24px df aic jcc", children: /* @__PURE__ */ jsx174("div", { ...trussProps88({
21784
21830
  width: "w_10px",
21785
21831
  height: "h_10px",
21786
21832
  borderStyle: "bss",
@@ -21795,8 +21841,8 @@ function StepIcon({
21795
21841
 
21796
21842
  // src/components/SuperDrawer/components/SuperDrawerHeader.tsx
21797
21843
  import { createPortal as createPortal6 } from "react-dom";
21798
- import { trussProps as trussProps88 } from "@homebound/truss/runtime";
21799
- import { jsx as jsx174, jsxs as jsxs91 } from "react/jsx-runtime";
21844
+ import { trussProps as trussProps89 } from "@homebound/truss/runtime";
21845
+ import { jsx as jsx175, jsxs as jsxs92 } from "react/jsx-runtime";
21800
21846
  function SuperDrawerHeader(props) {
21801
21847
  const {
21802
21848
  hideControls
@@ -21813,20 +21859,20 @@ function SuperDrawerHeader(props) {
21813
21859
  const currentContent = contentStack.current[contentStack.current.length - 1]?.opts;
21814
21860
  const isDetail = currentContent !== firstContent;
21815
21861
  const tid = useTestIds({}, "superDrawerHeader");
21816
- return createPortal6(/* @__PURE__ */ jsxs91("div", { className: "df aic jcsb gap3", ...tid, children: [
21817
- isStructuredProps(props) ? /* @__PURE__ */ jsxs91("div", { className: "df jcsb aic gap2 fg1", children: [
21818
- /* @__PURE__ */ jsxs91("div", { className: "fg1 df aic gap2", children: [
21819
- /* @__PURE__ */ jsx174("h1", { className: "fw6 fz_30px lh_36px", children: props.title }),
21862
+ return createPortal6(/* @__PURE__ */ jsxs92("div", { className: "df aic jcsb gap3", ...tid, children: [
21863
+ isStructuredProps(props) ? /* @__PURE__ */ jsxs92("div", { className: "df jcsb aic gap2 fg1", children: [
21864
+ /* @__PURE__ */ jsxs92("div", { className: "fg1 df aic gap2", children: [
21865
+ /* @__PURE__ */ jsx175("h1", { className: "fw6 fz_30px lh_36px", children: props.title }),
21820
21866
  props.left
21821
21867
  ] }),
21822
- props.right && /* @__PURE__ */ jsx174("div", { className: "fs0", children: props.right })
21823
- ] }) : /* @__PURE__ */ jsx174("div", { className: "fg1", children: props.children }),
21824
- !hideControls && /* @__PURE__ */ jsx174("div", { ...trussProps88({
21868
+ props.right && /* @__PURE__ */ jsx175("div", { className: "fs0", children: props.right })
21869
+ ] }) : /* @__PURE__ */ jsx175("div", { className: "fg1", children: props.children }),
21870
+ !hideControls && /* @__PURE__ */ jsx175("div", { ...trussProps89({
21825
21871
  flexShrink: "fs0",
21826
21872
  ...isDetail ? {
21827
21873
  visibility: "vh"
21828
21874
  } : {}
21829
- }), children: /* @__PURE__ */ jsx174(ButtonGroup, { buttons: [{
21875
+ }), children: /* @__PURE__ */ jsx175(ButtonGroup, { buttons: [{
21830
21876
  icon: "chevronLeft",
21831
21877
  onClick: () => onPrevClick && onPrevClick(),
21832
21878
  disabled: !onPrevClick
@@ -21842,18 +21888,18 @@ function isStructuredProps(props) {
21842
21888
  }
21843
21889
 
21844
21890
  // src/components/SuperDrawer/ConfirmCloseModal.tsx
21845
- import { Fragment as Fragment40, jsx as jsx175, jsxs as jsxs92 } from "react/jsx-runtime";
21891
+ import { Fragment as Fragment40, jsx as jsx176, jsxs as jsxs93 } from "react/jsx-runtime";
21846
21892
  function ConfirmCloseModal(props) {
21847
21893
  const { onClose, discardText = "Discard Changes", continueText = "Continue Editing" } = props;
21848
21894
  const { modalState } = useBeamContext();
21849
21895
  function closeModal() {
21850
21896
  modalState.current = void 0;
21851
21897
  }
21852
- return /* @__PURE__ */ jsxs92(Fragment40, { children: [
21853
- /* @__PURE__ */ jsx175(ModalHeader, { children: "Are you sure you want to cancel?" }),
21854
- /* @__PURE__ */ jsx175(ModalBody, { children: /* @__PURE__ */ jsx175("p", { children: "Any changes you've made so far will be lost." }) }),
21855
- /* @__PURE__ */ jsxs92(ModalFooter, { children: [
21856
- /* @__PURE__ */ jsx175(
21898
+ return /* @__PURE__ */ jsxs93(Fragment40, { children: [
21899
+ /* @__PURE__ */ jsx176(ModalHeader, { children: "Are you sure you want to cancel?" }),
21900
+ /* @__PURE__ */ jsx176(ModalBody, { children: /* @__PURE__ */ jsx176("p", { children: "Any changes you've made so far will be lost." }) }),
21901
+ /* @__PURE__ */ jsxs93(ModalFooter, { children: [
21902
+ /* @__PURE__ */ jsx176(
21857
21903
  Button,
21858
21904
  {
21859
21905
  variant: "quaternary",
@@ -21864,7 +21910,7 @@ function ConfirmCloseModal(props) {
21864
21910
  }
21865
21911
  }
21866
21912
  ),
21867
- /* @__PURE__ */ jsx175(Button, { label: continueText, onClick: closeModal })
21913
+ /* @__PURE__ */ jsx176(Button, { label: continueText, onClick: closeModal })
21868
21914
  ] })
21869
21915
  ] });
21870
21916
  }
@@ -21874,7 +21920,7 @@ import { motion as motion5 } from "framer-motion";
21874
21920
 
21875
21921
  // src/components/SuperDrawer/useSuperDrawer.tsx
21876
21922
  import { useMemo as useMemo50 } from "react";
21877
- import { jsx as jsx176 } from "react/jsx-runtime";
21923
+ import { jsx as jsx177 } from "react/jsx-runtime";
21878
21924
  function useSuperDrawer() {
21879
21925
  const {
21880
21926
  drawerContentStack: contentStack,
@@ -21886,7 +21932,7 @@ function useSuperDrawer() {
21886
21932
  function canCloseDrawerDetails(i, doChange) {
21887
21933
  for (const canCloseDrawerDetail of canCloseDetailsChecks.current[i] ?? []) {
21888
21934
  if (!canClose(canCloseDrawerDetail)) {
21889
- openModal({ content: /* @__PURE__ */ jsx176(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
21935
+ openModal({ content: /* @__PURE__ */ jsx177(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawerDetail }) });
21890
21936
  return false;
21891
21937
  }
21892
21938
  }
@@ -21906,7 +21952,7 @@ function useSuperDrawer() {
21906
21952
  for (const canCloseDrawer of canCloseChecks.current) {
21907
21953
  if (!canClose(canCloseDrawer)) {
21908
21954
  openModal({
21909
- content: /* @__PURE__ */ jsx176(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
21955
+ content: /* @__PURE__ */ jsx177(ConfirmCloseModal, { onClose: doChange, ...canCloseDrawer })
21910
21956
  });
21911
21957
  return;
21912
21958
  }
@@ -22002,7 +22048,7 @@ function canClose(canCloseCheck) {
22002
22048
 
22003
22049
  // src/components/SuperDrawer/SuperDrawerContent.tsx
22004
22050
  import { mergeProps as mergeProps26 } from "@homebound/truss/runtime";
22005
- import { Fragment as Fragment41, jsx as jsx177, jsxs as jsxs93 } from "react/jsx-runtime";
22051
+ import { Fragment as Fragment41, jsx as jsx178, jsxs as jsxs94 } from "react/jsx-runtime";
22006
22052
  var SuperDrawerContent = ({
22007
22053
  children,
22008
22054
  actions
@@ -22022,17 +22068,17 @@ var SuperDrawerContent = ({
22022
22068
  } = firstContent ?? {};
22023
22069
  function wrapWithMotionAndMaybeBack(children2) {
22024
22070
  if (kind === "open") {
22025
- return /* @__PURE__ */ jsx177(motion5.div, { className: "pt3 pb3 pr3 pl3 fg1 oa", children: children2 }, "content");
22071
+ return /* @__PURE__ */ jsx178(motion5.div, { className: "pt3 pb3 pr3 pl3 fg1 oa", children: children2 }, "content");
22026
22072
  } else if (kind === "detail") {
22027
- return /* @__PURE__ */ jsxs93(motion5.div, { className: "pl3 pr3 pt2 pb3 fg1", animate: {
22073
+ return /* @__PURE__ */ jsxs94(motion5.div, { className: "pl3 pr3 pt2 pb3 fg1", animate: {
22028
22074
  overflow: "auto"
22029
22075
  }, transition: {
22030
22076
  overflow: {
22031
22077
  delay: 0.3
22032
22078
  }
22033
22079
  }, children: [
22034
- /* @__PURE__ */ jsx177(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
22035
- /* @__PURE__ */ jsx177(motion5.div, { initial: {
22080
+ /* @__PURE__ */ jsx178(Button, { label: "Back", icon: "chevronLeft", variant: "tertiary", onClick: closeDrawerDetail }),
22081
+ /* @__PURE__ */ jsx178(motion5.div, { initial: {
22036
22082
  x: width2,
22037
22083
  opacity: 0
22038
22084
  }, animate: {
@@ -22050,7 +22096,7 @@ var SuperDrawerContent = ({
22050
22096
  }, className: "pt2", children: children2 })
22051
22097
  ] }, "content");
22052
22098
  } else {
22053
- return /* @__PURE__ */ jsx177(motion5.div, { ...mergeProps26(void 0, {
22099
+ return /* @__PURE__ */ jsx178(motion5.div, { ...mergeProps26(void 0, {
22054
22100
  overflow: "auto"
22055
22101
  }, {
22056
22102
  paddingTop: "pt3",
@@ -22061,9 +22107,9 @@ var SuperDrawerContent = ({
22061
22107
  }) }, "content");
22062
22108
  }
22063
22109
  }
22064
- return /* @__PURE__ */ jsxs93(Fragment41, { children: [
22110
+ return /* @__PURE__ */ jsxs94(Fragment41, { children: [
22065
22111
  wrapWithMotionAndMaybeBack(children),
22066
- actions && /* @__PURE__ */ jsx177("footer", { className: "bts_solid btw_1px bcGray200 pt3 pb3 pr3 pl3 df aic jcfe", children: /* @__PURE__ */ jsx177("div", { className: "df gap1", children: actions.map((buttonProps, i) => /* @__PURE__ */ jsx177(Button, { ...buttonProps }, i)) }) })
22112
+ actions && /* @__PURE__ */ jsx178("footer", { className: "bts_solid btw_1px bcGray200 pt3 pb3 pr3 pl3 df aic jcfe", children: /* @__PURE__ */ jsx178("div", { className: "df gap1", children: actions.map((buttonProps, i) => /* @__PURE__ */ jsx178(Button, { ...buttonProps }, i)) }) })
22067
22113
  ] });
22068
22114
  };
22069
22115
 
@@ -22091,15 +22137,15 @@ import { useEffect as useEffect35, useMemo as useMemo51, useRef as useRef56, use
22091
22137
  import { mergeProps as mergeProps27, useFocusRing as useFocusRing16, useHover as useHover20 } from "react-aria";
22092
22138
  import { matchPath } from "react-router";
22093
22139
  import { Link as Link5, useLocation } from "react-router-dom";
22094
- import { trussProps as trussProps89, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
22095
- import { Fragment as Fragment42, jsx as jsx178, jsxs as jsxs94 } from "react/jsx-runtime";
22140
+ import { trussProps as trussProps90, maybeCssVar as maybeCssVar48 } from "@homebound/truss/runtime";
22141
+ import { Fragment as Fragment42, jsx as jsx179, jsxs as jsxs95 } from "react/jsx-runtime";
22096
22142
  function TabsWithContent(props) {
22097
22143
  const styles = hideTabs(props) ? {} : {
22098
22144
  paddingTop: "pt3"
22099
22145
  };
22100
- return /* @__PURE__ */ jsxs94(Fragment42, { children: [
22101
- /* @__PURE__ */ jsx178(Tabs, { ...props }),
22102
- /* @__PURE__ */ jsx178(TabContent, { ...props, contentXss: {
22146
+ return /* @__PURE__ */ jsxs95(Fragment42, { children: [
22147
+ /* @__PURE__ */ jsx179(Tabs, { ...props }),
22148
+ /* @__PURE__ */ jsx179(TabContent, { ...props, contentXss: {
22103
22149
  ...styles,
22104
22150
  ...props.contentXss
22105
22151
  } })
@@ -22124,7 +22170,7 @@ function TabContent(props) {
22124
22170
  return (
22125
22171
  // Using FullBleed to allow the tab's bgColor to extend to the edges of the <ScrollableContent /> element.
22126
22172
  // Omit the padding from `FullBleed` if the caller passes in the `paddingLeft/Right` styles.
22127
- /* @__PURE__ */ jsx178(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx178("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps89(contentXss), children: selectedTab.render() }) })
22173
+ /* @__PURE__ */ jsx179(FullBleed, { omitPadding: omitFullBleedPadding, children: /* @__PURE__ */ jsx179("div", { "aria-labelledby": `${uniqueValue}-tab`, id: `${uniqueValue}-tabPanel`, role: "tabpanel", tabIndex: 0, ...tid.panel, ...trussProps90(contentXss), children: selectedTab.render() }) })
22128
22174
  );
22129
22175
  }
22130
22176
  function Tabs(props) {
@@ -22166,7 +22212,7 @@ function Tabs(props) {
22166
22212
  setActive(selected);
22167
22213
  }
22168
22214
  }
22169
- return /* @__PURE__ */ jsxs94("div", { ...trussProps89({
22215
+ return /* @__PURE__ */ jsxs95("div", { ...trussProps90({
22170
22216
  ...{
22171
22217
  display: "df",
22172
22218
  alignItems: "aic",
@@ -22182,11 +22228,11 @@ function Tabs(props) {
22182
22228
  }
22183
22229
  } : {}
22184
22230
  }), children: [
22185
- !hideTabs(props) && /* @__PURE__ */ jsx178("div", { ref, className: "dif gap1 asfe", "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
22231
+ !hideTabs(props) && /* @__PURE__ */ jsx179("div", { ref, className: "dif gap1 asfe", "aria-label": ariaLabel, role: "tablist", ...tid, children: tabs.map((tab) => {
22186
22232
  const uniqueValue = uniqueTabValue(tab);
22187
- return /* @__PURE__ */ jsx178(TabImpl, { active: active === uniqueValue, focusProps, isFocusVisible, onClick, onKeyUp, onBlur, tab, ...tid[defaultTestId(uniqueValue)] }, uniqueValue);
22233
+ return /* @__PURE__ */ jsx179(TabImpl, { active: active === uniqueValue, focusProps, isFocusVisible, onClick, onKeyUp, onBlur, tab, ...tid[defaultTestId(uniqueValue)] }, uniqueValue);
22188
22234
  }) }),
22189
- right && /* @__PURE__ */ jsx178("div", { className: "mla df aic gap1 pb1", children: right })
22235
+ right && /* @__PURE__ */ jsx179("div", { className: "mla df aic gap1 pb1", children: right })
22190
22236
  ] });
22191
22237
  }
22192
22238
  function TabImpl(props) {
@@ -22230,7 +22276,7 @@ function TabImpl(props) {
22230
22276
  role: "tab",
22231
22277
  tabIndex: active ? 0 : -1,
22232
22278
  ...others,
22233
- ...trussProps89({
22279
+ ...trussProps90({
22234
22280
  ...baseStyles5,
22235
22281
  ...active && activeStyles3,
22236
22282
  ...isDisabled && disabledStyles4,
@@ -22246,17 +22292,17 @@ function TabImpl(props) {
22246
22292
  onClick: () => onClick(tab.value)
22247
22293
  }
22248
22294
  });
22249
- const tabLabel = /* @__PURE__ */ jsxs94(Fragment42, { children: [
22295
+ const tabLabel = /* @__PURE__ */ jsxs95(Fragment42, { children: [
22250
22296
  label,
22251
- (icon || endAdornment) && /* @__PURE__ */ jsx178("span", { className: "ml1", children: icon ? /* @__PURE__ */ jsx178(Icon, { icon }) : endAdornment })
22297
+ (icon || endAdornment) && /* @__PURE__ */ jsx179("span", { className: "ml1", children: icon ? /* @__PURE__ */ jsx179(Icon, { icon }) : endAdornment })
22252
22298
  ] });
22253
22299
  return isDisabled ? maybeTooltip({
22254
22300
  title: resolveTooltip(disabled),
22255
22301
  placement: "top",
22256
- children: /* @__PURE__ */ jsx178("div", { ...tabProps, children: tabLabel })
22257
- }) : isRouteTab(tab) ? /* @__PURE__ */ jsx178(Link5, { ...mergeProps27(tabProps, interactiveProps, {
22302
+ children: /* @__PURE__ */ jsx179("div", { ...tabProps, children: tabLabel })
22303
+ }) : isRouteTab(tab) ? /* @__PURE__ */ jsx179(Link5, { ...mergeProps27(tabProps, interactiveProps, {
22258
22304
  className: "navLink"
22259
- }), to: tab.href, children: tabLabel }) : /* @__PURE__ */ jsx178("button", { ...{
22305
+ }), to: tab.href, children: tabLabel }) : /* @__PURE__ */ jsx179("button", { ...{
22260
22306
  ...tabProps,
22261
22307
  ...interactiveProps
22262
22308
  }, children: tabLabel });
@@ -22359,12 +22405,12 @@ function useToast() {
22359
22405
  }
22360
22406
 
22361
22407
  // src/layouts/SideNavLayout/SideNavLayout.tsx
22362
- import { trussProps as trussProps90, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
22363
- import { jsx as jsx179, jsxs as jsxs95 } from "react/jsx-runtime";
22408
+ import { trussProps as trussProps91, maybeCssVar as maybeCssVar49 } from "@homebound/truss/runtime";
22409
+ import { jsx as jsx180, jsxs as jsxs96 } from "react/jsx-runtime";
22364
22410
  function SideNavLayout(props) {
22365
22411
  const hasProvider = useHasSideNavLayoutProvider();
22366
- if (hasProvider) return /* @__PURE__ */ jsx179(SideNavLayoutContent, { ...props });
22367
- return /* @__PURE__ */ jsx179(SideNavLayoutProvider, { children: /* @__PURE__ */ jsx179(SideNavLayoutContent, { ...props }) });
22412
+ if (hasProvider) return /* @__PURE__ */ jsx180(SideNavLayoutContent, { ...props });
22413
+ return /* @__PURE__ */ jsx180(SideNavLayoutProvider, { children: /* @__PURE__ */ jsx180(SideNavLayoutContent, { ...props }) });
22368
22414
  }
22369
22415
  function SideNavLayoutContent(props) {
22370
22416
  const {
@@ -22384,7 +22430,7 @@ function SideNavLayoutContent(props) {
22384
22430
  const railCollapsedWidthPx = 56;
22385
22431
  const collapsed = navState === "collapse";
22386
22432
  const showRail = sideNav !== void 0 && navState !== "hidden";
22387
- const rail = showRail && /* @__PURE__ */ jsxs95("div", { ...trussProps90({
22433
+ const rail = showRail && /* @__PURE__ */ jsxs96("div", { ...trussProps91({
22388
22434
  ...{
22389
22435
  position: "absolute",
22390
22436
  top: "top0",
@@ -22430,12 +22476,12 @@ function SideNavLayoutContent(props) {
22430
22476
  }
22431
22477
  } : {}
22432
22478
  }), ...tid.sideNav, children: [
22433
- showCollapseToggle && /* @__PURE__ */ jsx179("div", { className: "absolute right2 top2", children: /* @__PURE__ */ jsx179(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
22434
- /* @__PURE__ */ jsx179("div", { className: "fg1 oya", ...tid.sideNavContent, children: sideNav })
22479
+ showCollapseToggle && /* @__PURE__ */ jsx180("div", { className: "absolute right2 top2", children: /* @__PURE__ */ jsx180(IconButton, { icon: collapsed ? "menuOpen" : "menuClose", label: collapsed ? "Expand navigation" : "Collapse navigation", onClick: () => setNavState(collapsed ? "expanded" : "collapse"), ...tid.toggle }) }),
22480
+ /* @__PURE__ */ jsx180("div", { className: "fg1 oya", ...tid.sideNavContent, children: sideNav })
22435
22481
  ] });
22436
- return /* @__PURE__ */ jsxs95("div", { className: "relative df oh fg1", ...tid, children: [
22437
- contrastRail ? /* @__PURE__ */ jsx179(ContrastScope, { children: rail }) : rail,
22438
- /* @__PURE__ */ jsx179(ScrollableParent, { px: contentPx, xss: {
22482
+ return /* @__PURE__ */ jsxs96("div", { className: "relative df oh fg1", ...tid, children: [
22483
+ contrastRail ? /* @__PURE__ */ jsx180(ContrastScope, { children: rail }) : rail,
22484
+ /* @__PURE__ */ jsx180(ScrollableParent, { px: contentPx, xss: {
22439
22485
  marginLeft: ["ml_var", {
22440
22486
  "--marginLeft": `${railCollapsedWidthPx}px`
22441
22487
  }],
@@ -22545,6 +22591,7 @@ export {
22545
22591
  NavLink,
22546
22592
  NumberField,
22547
22593
  OpenModal,
22594
+ PageHeader2 as PageHeader,
22548
22595
  Pagination,
22549
22596
  Palette,
22550
22597
  PresentationProvider,