@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 +89 -77
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +53 -41
- package/dist/index.js.map +1 -1
- package/dist/truss.css +4 -2
- package/package.json +1 -1
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(
|
|
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
|
|
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
|
|
29680
|
+
return "resting";
|
|
29671
29681
|
}
|
|
29672
|
-
return
|
|
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
|
|
29677
|
-
const stateRef = (0, import_react162.useRef)(initial
|
|
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 = "
|
|
29687
|
-
atTopRef.current = true;
|
|
29694
|
+
stateRef.current = "resting";
|
|
29688
29695
|
lastScrollY.current = Number.POSITIVE_INFINITY;
|
|
29689
29696
|
lastScrollHeight.current = 0;
|
|
29690
|
-
setState("
|
|
29691
|
-
setAtTop(true);
|
|
29697
|
+
setState("resting");
|
|
29692
29698
|
return;
|
|
29693
29699
|
}
|
|
29694
|
-
const commit = (nextState
|
|
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 = "
|
|
29710
|
+
next = "resting";
|
|
29709
29711
|
} else if (rect.bottom < -THRESHOLD && next !== "revealed") {
|
|
29710
29712
|
next = "hidden";
|
|
29711
29713
|
}
|
|
29712
|
-
return
|
|
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("
|
|
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
|
-
|
|
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 = "
|
|
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
|
|
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
|
|
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/
|
|
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,
|
|
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,
|
|
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,
|
|
29795
|
-
const spacerRef = (0,
|
|
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
|
|
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,
|
|
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
|
|
29853
|
+
var import_react168 = require("react");
|
|
29841
29854
|
|
|
29842
29855
|
// src/hooks/useDocumentTitle.tsx
|
|
29843
|
-
var
|
|
29856
|
+
var import_react167 = require("react");
|
|
29844
29857
|
function useDocumentTitle(...titleSegments) {
|
|
29845
29858
|
const config = useDocumentTitleConfig();
|
|
29846
29859
|
const pageTitle = joinDocumentTitleSegments(...titleSegments);
|
|
29847
|
-
(0,
|
|
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,
|
|
29983
|
+
const bannerAndNavbarHeightRef = (0, import_react168.useRef)(bannerAndNavbarHeight);
|
|
29971
29984
|
bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
|
|
29972
|
-
const getBannerAndNavbarHeight = (0,
|
|
29973
|
-
const headerMetricsRef = (0,
|
|
29974
|
-
const spacerRef = (0,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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,
|
|
30119
|
+
const isDirtyRef = (0, import_react170.useRef)(isDirty);
|
|
30108
30120
|
isDirtyRef.current = isDirty;
|
|
30109
|
-
const allowNavigationRef = (0,
|
|
30121
|
+
const allowNavigationRef = (0, import_react170.useRef)(allowNavigation);
|
|
30110
30122
|
allowNavigationRef.current = allowNavigation;
|
|
30111
|
-
const allowCancelNavigationRef = (0,
|
|
30112
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
30594
|
+
var import_react173 = require("react");
|
|
30583
30595
|
function useFilter4({ filterDefs }) {
|
|
30584
|
-
const [filter, setFilter] = (0,
|
|
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
|
|
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,
|
|
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,
|
|
30639
|
-
const inputRef = (0,
|
|
30640
|
-
const listBoxRef = (0,
|
|
30641
|
-
const popoverRef = (0,
|
|
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
|
|
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,
|
|
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,
|
|
30744
|
-
const ref = (0,
|
|
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,
|