@homebound/beam 4.14.4 → 4.14.5

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.cjs CHANGED
@@ -7615,6 +7615,10 @@ var pageContentPaddingX = {
7615
7615
  "--mdandup_paddingRight": (0, import_runtime15.maybeCssVar)(__maybeInc6(pageContentPaddingXValue))
7616
7616
  }]
7617
7617
  };
7618
+ var selfTopSpacedAttr = "data-self-top-spaced";
7619
+ var selfTopSpaced = {
7620
+ [selfTopSpacedAttr]: true
7621
+ };
7618
7622
  function headerContentPaddingX(compact = false) {
7619
7623
  return compact ? {
7620
7624
  paddingLeft: "pl1",
@@ -24484,7 +24488,9 @@ function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
24484
24488
  const isPinned = rect.top <= pinTopPx + 1;
24485
24489
  const topPx = isPinned ? pinTopPx : Math.round(rect.top);
24486
24490
  const heightPx = Math.max(0, Math.round(window.innerHeight - topPx));
24487
- setBounds((prev) => prev?.topPx === topPx && prev?.heightPx === heightPx ? prev : { topPx, heightPx });
24491
+ setBounds(
24492
+ (prev) => prev?.topPx === topPx && prev?.heightPx === heightPx && prev?.isPinned === isPinned ? prev : { topPx, heightPx, isPinned }
24493
+ );
24488
24494
  }, [anchorRef]);
24489
24495
  (0, import_react120.useLayoutEffect)(() => {
24490
24496
  getPinTopPxRef.current = getPinTopPx;
@@ -24703,7 +24709,10 @@ function DocumentScrollRightPane({
24703
24709
  borderLeftWidth: "blw_1px",
24704
24710
  borderColor: ["bc_var", {
24705
24711
  "--borderColor": "var(--b-surface-separator)"
24706
- }]
24712
+ }],
24713
+ ...!!paneBounds?.isPinned ? {
24714
+ transition: "tsn_top_200ms_cubic_bezier_0_4_0_0_2_1_height_200ms_cubic_bezier_0_4_0_0_2_1"
24715
+ } : {}
24707
24716
  }),
24708
24717
  initial: {
24709
24718
  x: slideX
@@ -25167,6 +25176,7 @@ function GridTableLayoutActionsComponent(props) {
25167
25176
  display: "df",
25168
25177
  flexDirection: "fdc",
25169
25178
  gap: "g_1",
25179
+ paddingTop: "pt3",
25170
25180
  paddingBottom: "pb2",
25171
25181
  ...view === "card" ? {
25172
25182
  paddingBottom: "pb3"
@@ -25359,7 +25369,7 @@ function GridTableLayoutComponent(props) {
25359
25369
  } : {
25360
25370
  display: "df",
25361
25371
  flexDirection: "fdc"
25362
- }), ...tid.tableWrapper, children: tableScrollContent })
25372
+ }), ...showTableActions ? selfTopSpaced : {}, ...tid.tableWrapper, children: tableScrollContent })
25363
25373
  );
25364
25374
  }
25365
25375
  var GridTableLayout = import_react130.default.memo(GridTableLayoutComponent);
@@ -29659,7 +29669,7 @@ function FormSectionLayout(props) {
29659
29669
  }
29660
29670
 
29661
29671
  // src/layouts/NavbarLayout/NavbarLayout.tsx
29662
- var import_react165 = require("react");
29672
+ var import_react166 = require("react");
29663
29673
  var import_runtime153 = require("@homebound/truss/runtime");
29664
29674
 
29665
29675
  // src/layouts/useAutoHideOnScroll.ts
@@ -29667,49 +29677,41 @@ var import_react162 = require("react");
29667
29677
  var THRESHOLD = 80;
29668
29678
  function getInitialAutoHideState() {
29669
29679
  if (typeof window === "undefined" || window.scrollY <= 0) {
29670
- return { state: "static", atTop: true };
29680
+ return "resting";
29671
29681
  }
29672
- return { state: "hidden", atTop: false };
29682
+ return "hidden";
29673
29683
  }
29674
29684
  function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
29675
29685
  const initial = getInitialAutoHideState();
29676
- const [state, setState] = (0, import_react162.useState)(initial.state);
29677
- const stateRef = (0, import_react162.useRef)(initial.state);
29678
- const [atTop, setAtTop] = (0, import_react162.useState)(initial.atTop);
29679
- const atTopRef = (0, import_react162.useRef)(initial.atTop);
29686
+ const [state, setState] = (0, import_react162.useState)(initial);
29687
+ const stateRef = (0, import_react162.useRef)(initial);
29680
29688
  const getTopOffsetRef = (0, import_react162.useRef)(getTopOffset);
29681
29689
  getTopOffsetRef.current = getTopOffset;
29682
29690
  const lastScrollY = (0, import_react162.useRef)(Number.POSITIVE_INFINITY);
29683
29691
  const lastScrollHeight = (0, import_react162.useRef)(0);
29684
29692
  (0, import_react162.useLayoutEffect)(() => {
29685
29693
  if (!enabled) {
29686
- stateRef.current = "static";
29687
- atTopRef.current = true;
29694
+ stateRef.current = "resting";
29688
29695
  lastScrollY.current = Number.POSITIVE_INFINITY;
29689
29696
  lastScrollHeight.current = 0;
29690
- setState("static");
29691
- setAtTop(true);
29697
+ setState("resting");
29692
29698
  return;
29693
29699
  }
29694
- const commit = (nextState, nextAtTop) => {
29700
+ const commit = (nextState) => {
29695
29701
  if (nextState !== stateRef.current) {
29696
29702
  stateRef.current = nextState;
29697
29703
  setState(nextState);
29698
29704
  }
29699
- if (nextAtTop !== atTopRef.current) {
29700
- atTopRef.current = nextAtTop;
29701
- setAtTop(nextAtTop);
29702
- }
29703
29705
  };
29704
29706
  const autoHideStateOnLayoutChange = (rect, topOffset) => {
29705
29707
  const nextAtTop = rect.top >= topOffset;
29706
29708
  let next = stateRef.current;
29707
29709
  if (nextAtTop) {
29708
- next = "static";
29710
+ next = "resting";
29709
29711
  } else if (rect.bottom < -THRESHOLD && next !== "revealed") {
29710
29712
  next = "hidden";
29711
29713
  }
29712
- return { next, nextAtTop };
29714
+ return next;
29713
29715
  };
29714
29716
  const updateAutoHideState = () => {
29715
29717
  const el = spacerRef.current;
@@ -29720,7 +29722,7 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
29720
29722
  lastScrollHeight.current = currentScrollHeight;
29721
29723
  if (window.scrollY <= 0) {
29722
29724
  lastScrollY.current = 0;
29723
- commit("static", true);
29725
+ commit("resting");
29724
29726
  return;
29725
29727
  }
29726
29728
  const currentY = window.scrollY;
@@ -29728,8 +29730,7 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
29728
29730
  const topOffset = getTopOffsetRef.current?.() ?? 0;
29729
29731
  if (scrollHeightChanged) {
29730
29732
  lastScrollY.current = currentY;
29731
- const { next: next2, nextAtTop: nextAtTop2 } = autoHideStateOnLayoutChange(rect, topOffset);
29732
- commit(next2, nextAtTop2);
29733
+ commit(autoHideStateOnLayoutChange(rect, topOffset));
29733
29734
  return;
29734
29735
  }
29735
29736
  const dy = currentY - lastScrollY.current;
@@ -29738,18 +29739,18 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
29738
29739
  const nextAtTop = rect.top >= topOffset;
29739
29740
  let next = stateRef.current;
29740
29741
  if (nextAtTop) {
29741
- next = "static";
29742
+ next = "resting";
29742
29743
  } else if (rect.bottom < -THRESHOLD) {
29743
29744
  if (dy < 0 && !atBottom) next = "revealed";
29744
29745
  else if (dy > 0) next = "hidden";
29745
29746
  }
29746
- commit(next, nextAtTop);
29747
+ commit(next);
29747
29748
  };
29748
29749
  updateAutoHideState();
29749
29750
  window.addEventListener("scroll", updateAutoHideState, { passive: true });
29750
29751
  return () => window.removeEventListener("scroll", updateAutoHideState);
29751
29752
  }, [enabled, spacerRef]);
29752
- return { state, atTop };
29753
+ return { state };
29753
29754
  }
29754
29755
 
29755
29756
  // src/layouts/useMeasuredHeight.ts
@@ -29769,15 +29770,28 @@ function useMeasuredHeight(ref, enabled) {
29769
29770
  return height;
29770
29771
  }
29771
29772
 
29772
- // src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
29773
+ // src/layouts/useTransitionAfterPaint.ts
29773
29774
  var import_react164 = require("react");
29775
+ function useTransitionAfterPaint(ref, transition) {
29776
+ (0, import_react164.useLayoutEffect)(() => {
29777
+ const el = ref.current;
29778
+ if (!el) return;
29779
+ const id = requestAnimationFrame(() => {
29780
+ el.style.transition = transition;
29781
+ });
29782
+ return () => cancelAnimationFrame(id);
29783
+ }, [ref, transition]);
29784
+ }
29785
+
29786
+ // src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
29787
+ var import_react165 = require("react");
29774
29788
  var import_jsx_runtime232 = require("react/jsx-runtime");
29775
- var NavbarLayoutHeightContext = (0, import_react164.createContext)(0);
29789
+ var NavbarLayoutHeightContext = (0, import_react165.createContext)(0);
29776
29790
  function NavbarLayoutHeightProvider({ value, children }) {
29777
29791
  return /* @__PURE__ */ (0, import_jsx_runtime232.jsx)(NavbarLayoutHeightContext.Provider, { value, children });
29778
29792
  }
29779
29793
  function useNavbarLayoutHeight() {
29780
- return (0, import_react164.useContext)(NavbarLayoutHeightContext);
29794
+ return (0, import_react165.useContext)(NavbarLayoutHeightContext);
29781
29795
  }
29782
29796
 
29783
29797
  // src/layouts/NavbarLayout/NavbarLayout.tsx
@@ -29791,14 +29805,13 @@ function NavbarLayout(props) {
29791
29805
  children
29792
29806
  } = props;
29793
29807
  const tid = useTestIds(props, "navbarLayout");
29794
- const navMetricsRef = (0, import_react165.useRef)(null);
29795
- const spacerRef = (0, import_react165.useRef)(null);
29808
+ const navMetricsRef = (0, import_react166.useRef)(null);
29809
+ const spacerRef = (0, import_react166.useRef)(null);
29796
29810
  const navHeight = useMeasuredHeight(navMetricsRef, true);
29797
29811
  const {
29798
- state: autoHideState,
29799
- atTop
29812
+ state: autoHideState
29800
29813
  } = useAutoHideOnScroll(spacerRef, true);
29801
- const navOccupiesViewportTop = autoHideState === "revealed" || atTop;
29814
+ const navOccupiesViewportTop = autoHideState !== "hidden";
29802
29815
  const navbarOffsetPx = navHeight > 0 && navOccupiesViewportTop ? navHeight : 0;
29803
29816
  const cssVars = navbarOffsetPx > 0 ? {
29804
29817
  [beamNavbarLayoutHeightVar]: `${navbarOffsetPx}px`
@@ -29812,14 +29825,14 @@ function NavbarLayout(props) {
29812
29825
  }],
29813
29826
  width: ["w_var", {
29814
29827
  "--width": (0, import_runtime153.maybeCssVar)(__maybeInc33(innerWidth))
29815
- }],
29816
- transition: "transitionTop"
29828
+ }]
29817
29829
  };
29830
+ useTransitionAfterPaint(navMetricsRef, "top 200ms cubic-bezier(0.4, 0, 0.2, 1)");
29818
29831
  const bannerTop = `var(${beamEnvironmentBannerLayoutHeightVar}, 0px)`;
29819
29832
  const innerStyle = {
29820
29833
  top: autoHideState === "hidden" ? `calc(${bannerTop} - ${navHeight}px)` : bannerTop
29821
29834
  };
29822
- const navbarEl = (0, import_react165.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(Navbar, { ...navbar }), [navbar]);
29835
+ const navbarEl = (0, import_react166.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(Navbar, { ...navbar }), [navbar]);
29823
29836
  return /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(MobileSubNavProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime233.jsxs)("div", { ...(0, import_runtime153.mergeProps)(void 0, cssVars, {
29824
29837
  display: "df",
29825
29838
  flexDirection: "fdc",
@@ -29837,14 +29850,14 @@ function NavbarLayout(props) {
29837
29850
  }
29838
29851
 
29839
29852
  // src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
29840
- var import_react167 = require("react");
29853
+ var import_react168 = require("react");
29841
29854
 
29842
29855
  // src/hooks/useDocumentTitle.tsx
29843
- var import_react166 = require("react");
29856
+ var import_react167 = require("react");
29844
29857
  function useDocumentTitle(...titleSegments) {
29845
29858
  const config = useDocumentTitleConfig();
29846
29859
  const pageTitle = joinDocumentTitleSegments(...titleSegments);
29847
- (0, import_react166.useLayoutEffect)(() => {
29860
+ (0, import_react167.useLayoutEffect)(() => {
29848
29861
  if (!config || !pageTitle || typeof document === "undefined") {
29849
29862
  return;
29850
29863
  }
@@ -29967,17 +29980,16 @@ function PageHeaderLayout(props) {
29967
29980
  } = props;
29968
29981
  const tid = useTestIds(props, "pageHeaderLayout");
29969
29982
  const bannerAndNavbarHeight = useBannerAndNavbarHeight();
29970
- const bannerAndNavbarHeightRef = (0, import_react167.useRef)(bannerAndNavbarHeight);
29983
+ const bannerAndNavbarHeightRef = (0, import_react168.useRef)(bannerAndNavbarHeight);
29971
29984
  bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
29972
- const getBannerAndNavbarHeight = (0, import_react167.useCallback)(() => bannerAndNavbarHeightRef.current, []);
29973
- const headerMetricsRef = (0, import_react167.useRef)(null);
29974
- const spacerRef = (0, import_react167.useRef)(null);
29985
+ const getBannerAndNavbarHeight = (0, import_react168.useCallback)(() => bannerAndNavbarHeightRef.current, []);
29986
+ const headerMetricsRef = (0, import_react168.useRef)(null);
29987
+ const spacerRef = (0, import_react168.useRef)(null);
29975
29988
  const headerHeight = useMeasuredHeight(headerMetricsRef, true);
29976
29989
  const {
29977
- state: autoHideState,
29978
- atTop
29990
+ state: autoHideState
29979
29991
  } = useAutoHideOnScroll(spacerRef, true, getBannerAndNavbarHeight);
29980
- const headerOccupiesPosition = autoHideState === "revealed" || atTop;
29992
+ const headerOccupiesPosition = autoHideState !== "hidden";
29981
29993
  const cssVars = headerHeight > 0 && headerOccupiesPosition ? {
29982
29994
  [beamPageHeaderLayoutHeightVar]: `${headerHeight}px`
29983
29995
  } : void 0;
@@ -29994,13 +30006,13 @@ function PageHeaderLayout(props) {
29994
30006
  }],
29995
30007
  zIndex: ["z_var", {
29996
30008
  "--zIndex": (0, import_runtime156.maybeCssVar)(zIndices.pageStickyHeader)
29997
- }],
29998
- transition: "transitionAll"
30009
+ }]
29999
30010
  };
30011
+ useTransitionAfterPaint(headerMetricsRef, "all 200ms cubic-bezier(0.4, 0, 0.2, 1)");
30000
30012
  const innerStyle = {
30001
30013
  top: autoHideState === "hidden" ? `calc(${outerTop} - ${headerHeight}px)` : outerTop
30002
30014
  };
30003
- const pageHeaderEl = (0, import_react167.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime236.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
30015
+ const pageHeaderEl = (0, import_react168.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime236.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
30004
30016
  return /* @__PURE__ */ (0, import_jsx_runtime236.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime236.jsxs)("div", { ...(0, import_runtime156.mergeProps)(void 0, cssVars, {
30005
30017
  display: "df",
30006
30018
  flexDirection: "fdc",
@@ -30012,12 +30024,12 @@ function PageHeaderLayout(props) {
30012
30024
  flexShrink: "fs0",
30013
30025
  width: "w100"
30014
30026
  }), children: /* @__PURE__ */ (0, import_jsx_runtime236.jsx)("div", { ref: headerMetricsRef, ...(0, import_runtime156.mergeProps)(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
30015
- /* @__PURE__ */ (0, import_jsx_runtime236.jsx)("div", { className: "df fdc fg1 mh0 w100 mt3", ...tid.body, children })
30027
+ /* @__PURE__ */ (0, import_jsx_runtime236.jsx)("div", { className: "df fdc fg1 mh0 w100 first_child_n_data_self_top_spaced_mt3", ...tid.body, children })
30016
30028
  ] }) });
30017
30029
  }
30018
30030
 
30019
30031
  // src/layouts/Workflow/WorkflowPageLayout.tsx
30020
- var import_react170 = require("react");
30032
+ var import_react171 = require("react");
30021
30033
 
30022
30034
  // src/components/Headers/WorkflowHeader.tsx
30023
30035
  var import_jsx_runtime237 = require("react/jsx-runtime");
@@ -30034,7 +30046,7 @@ function WorkflowHeader(props) {
30034
30046
  }
30035
30047
 
30036
30048
  // src/layouts/Workflow/RightPaneTriggers.tsx
30037
- var import_react168 = require("react");
30049
+ var import_react169 = require("react");
30038
30050
  var import_runtime157 = require("@homebound/truss/runtime");
30039
30051
  var import_jsx_runtime238 = require("react/jsx-runtime");
30040
30052
  var __maybeInc35 = (inc) => {
@@ -30055,7 +30067,7 @@ function WorkflowPageRightPaneTriggers(props) {
30055
30067
  } = useRightPaneActions();
30056
30068
  const tid = useTestIds(props, "rightPaneTriggers");
30057
30069
  const pageTriggerInsetPx = 24;
30058
- const onClick = (0, import_react168.useCallback)((trigger) => {
30070
+ const onClick = (0, import_react169.useCallback)((trigger) => {
30059
30071
  openRightPane({
30060
30072
  content: /* @__PURE__ */ (0, import_jsx_runtime238.jsx)(RightPanePanel, { title: trigger.label, children: trigger.content })
30061
30073
  });
@@ -30098,18 +30110,18 @@ function WorkflowPageRightPaneTriggers(props) {
30098
30110
  }
30099
30111
 
30100
30112
  // src/layouts/Workflow/useUnsavedChangesGuard.tsx
30101
- var import_react169 = require("react");
30113
+ var import_react170 = require("react");
30102
30114
  var import_react_router_dom9 = require("react-router-dom");
30103
30115
  var import_jsx_runtime239 = require("react/jsx-runtime");
30104
30116
  function useUnsavedChangesGuard(options) {
30105
30117
  const { isDirty, allowNavigation, onCancel } = options;
30106
30118
  const { openModal } = useModal();
30107
- const isDirtyRef = (0, import_react169.useRef)(isDirty);
30119
+ const isDirtyRef = (0, import_react170.useRef)(isDirty);
30108
30120
  isDirtyRef.current = isDirty;
30109
- const allowNavigationRef = (0, import_react169.useRef)(allowNavigation);
30121
+ const allowNavigationRef = (0, import_react170.useRef)(allowNavigation);
30110
30122
  allowNavigationRef.current = allowNavigation;
30111
- const allowCancelNavigationRef = (0, import_react169.useRef)(false);
30112
- (0, import_react169.useEffect)(() => {
30123
+ const allowCancelNavigationRef = (0, import_react170.useRef)(false);
30124
+ (0, import_react170.useEffect)(() => {
30113
30125
  const onBeforeUnload = (e) => {
30114
30126
  if (isDirtyRef.current?.()) {
30115
30127
  e.preventDefault();
@@ -30145,7 +30157,7 @@ function useUnsavedChangesGuard(options) {
30145
30157
  function UnsavedChangesNavigationModal(props) {
30146
30158
  const { proceed, cancelNavigation } = props;
30147
30159
  const { openModal, closeModal } = useModal();
30148
- (0, import_react169.useEffect)(() => {
30160
+ (0, import_react170.useEffect)(() => {
30149
30161
  openModal({
30150
30162
  allowClosing: false,
30151
30163
  content: /* @__PURE__ */ (0, import_jsx_runtime239.jsx)(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
@@ -30222,7 +30234,7 @@ function WorkflowPageLayout(props) {
30222
30234
  const actions = /* @__PURE__ */ (0, import_jsx_runtime241.jsx)(WorkflowActions, { ...actionProps, aiMode, onCancel: onCancelClick });
30223
30235
  const triggers = rightPaneTriggers ?? [];
30224
30236
  const pageTriggers = triggers.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime241.jsx)(WorkflowPageRightPaneTriggers, { triggers }) : void 0;
30225
- const headerMetricsRef = (0, import_react170.useRef)(null);
30237
+ const headerMetricsRef = (0, import_react171.useRef)(null);
30226
30238
  const headerHeight = useMeasuredHeight(headerMetricsRef, true);
30227
30239
  const headerWidth = documentScrollChromeWidth();
30228
30240
  const outerTop = bannerAndNavbarChromeTop();
@@ -30230,7 +30242,7 @@ function WorkflowPageLayout(props) {
30230
30242
  [beamPageHeaderLayoutHeightVar]: `${headerHeight}px`
30231
30243
  } : void 0;
30232
30244
  const showFooter = isMobile;
30233
- (0, import_react170.useLayoutEffect)(() => {
30245
+ (0, import_react171.useLayoutEffect)(() => {
30234
30246
  const root = document.documentElement;
30235
30247
  const previous = root.style.getPropertyValue(beamWorkflowLayoutFooterHeightVar);
30236
30248
  root.style.setProperty(beamWorkflowLayoutFooterHeightVar, showFooter ? `${mobileFooterHeightPx}px` : "0px");
@@ -30360,7 +30372,7 @@ function FocusedFormLayout(props) {
30360
30372
  }
30361
30373
 
30362
30374
  // src/layouts/Workflow/StepperLayout.tsx
30363
- var import_react171 = require("react");
30375
+ var import_react172 = require("react");
30364
30376
  var import_jsx_runtime243 = require("react/jsx-runtime");
30365
30377
  function StepperLayout(props) {
30366
30378
  const {
@@ -30376,7 +30388,7 @@ function StepperLayout(props) {
30376
30388
  ...headerProps
30377
30389
  } = props;
30378
30390
  const stepTabs = steps.map((step) => ({ ...step, value: defaultTestId(step.label) }));
30379
- const [currentStep, setCurrentStep] = (0, import_react171.useState)(() => getInitialStep(stepTabs, defaultStep));
30391
+ const [currentStep, setCurrentStep] = (0, import_react172.useState)(() => getInitialStep(stepTabs, defaultStep));
30380
30392
  const tid = useTestIds(props, "stepperLayout");
30381
30393
  const { closeRightPane } = useRightPaneActions();
30382
30394
  const currentIndex = hasStep(stepTabs, currentStep) ? stepTabs.findIndex((step) => step.value === currentStep) : 0;
@@ -30579,9 +30591,9 @@ function StaticField(props) {
30579
30591
  }
30580
30592
 
30581
30593
  // src/hooks/useFilter.ts
30582
- var import_react172 = require("react");
30594
+ var import_react173 = require("react");
30583
30595
  function useFilter4({ filterDefs }) {
30584
- const [filter, setFilter] = (0, import_react172.useState)(
30596
+ const [filter, setFilter] = (0, import_react173.useState)(
30585
30597
  Object.fromEntries(
30586
30598
  safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
30587
30599
  )
@@ -30590,7 +30602,7 @@ function useFilter4({ filterDefs }) {
30590
30602
  }
30591
30603
 
30592
30604
  // src/inputs/Autocomplete.tsx
30593
- var import_react173 = require("react");
30605
+ var import_react174 = require("react");
30594
30606
  var import_react_aria66 = require("react-aria");
30595
30607
  var import_react_stately18 = require("react-stately");
30596
30608
  var import_jsx_runtime248 = require("react/jsx-runtime");
@@ -30610,7 +30622,7 @@ function Autocomplete(props) {
30610
30622
  } = props;
30611
30623
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
30612
30624
  const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
30613
- const comboBoxChildren = (0, import_react173.useCallback)(
30625
+ const comboBoxChildren = (0, import_react174.useCallback)(
30614
30626
  (item) => /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(import_react_stately18.Item, { textValue: getOptionLabel(item), children: getOptionMenuLabel ? getOptionMenuLabel(item) : getOptionLabel(item) }, getOptionValue(item)),
30615
30627
  [getOptionValue, getOptionLabel, getOptionMenuLabel]
30616
30628
  );
@@ -30635,10 +30647,10 @@ function Autocomplete(props) {
30635
30647
  ...others
30636
30648
  };
30637
30649
  const state = (0, import_react_stately18.useComboBoxState)(comboBoxProps);
30638
- const inputWrapRef = (0, import_react173.useRef)(null);
30639
- const inputRef = (0, import_react173.useRef)(null);
30640
- const listBoxRef = (0, import_react173.useRef)(null);
30641
- const popoverRef = (0, import_react173.useRef)(null);
30650
+ const inputWrapRef = (0, import_react174.useRef)(null);
30651
+ const inputRef = (0, import_react174.useRef)(null);
30652
+ const listBoxRef = (0, import_react174.useRef)(null);
30653
+ const popoverRef = (0, import_react174.useRef)(null);
30642
30654
  const { inputProps, listBoxProps, labelProps } = (0, import_react_aria66.useComboBox)(
30643
30655
  {
30644
30656
  ...comboBoxProps,
@@ -30706,7 +30718,7 @@ function Autocomplete(props) {
30706
30718
  }
30707
30719
 
30708
30720
  // src/inputs/ToggleButton.tsx
30709
- var import_react174 = require("react");
30721
+ var import_react175 = require("react");
30710
30722
  var import_react_aria67 = require("react-aria");
30711
30723
  var import_react_stately19 = require("react-stately");
30712
30724
  var import_runtime161 = require("@homebound/truss/runtime");
@@ -30721,7 +30733,7 @@ function ToggleButton(props) {
30721
30733
  __storyState,
30722
30734
  ...otherProps
30723
30735
  } = props;
30724
- const [asyncInProgress, setAsyncInProgress] = (0, import_react174.useState)(false);
30736
+ const [asyncInProgress, setAsyncInProgress] = (0, import_react175.useState)(false);
30725
30737
  const isDisabled = !!disabled || asyncInProgress;
30726
30738
  const ariaProps = {
30727
30739
  "aria-label": label,
@@ -30740,8 +30752,8 @@ function ToggleButton(props) {
30740
30752
  return result;
30741
30753
  }
30742
30754
  });
30743
- const labelRef = (0, import_react174.useRef)(null);
30744
- const ref = (0, import_react174.useRef)(null);
30755
+ const labelRef = (0, import_react175.useRef)(null);
30756
+ const ref = (0, import_react175.useRef)(null);
30745
30757
  const tid = useTestIds(otherProps, label);
30746
30758
  const {
30747
30759
  isPressed: isPressedFromEvents,