@homebound/beam 3.102.0 → 3.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +293 -259
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +45 -23
- package/dist/index.d.ts +45 -23
- package/dist/index.js +260 -227
- package/dist/index.js.map +1 -1
- package/dist/truss.css +2 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -162,6 +162,7 @@ __export(index_exports, {
|
|
|
162
162
|
PinToggle: () => PinToggle,
|
|
163
163
|
PresentationProvider: () => PresentationProvider,
|
|
164
164
|
PreventBrowserScroll: () => PreventBrowserScroll,
|
|
165
|
+
ProposedValue: () => ProposedValue,
|
|
165
166
|
RIGHT_SIDEBAR_MIN_WIDTH: () => RIGHT_SIDEBAR_MIN_WIDTH,
|
|
166
167
|
RadioGroupField: () => RadioGroupField,
|
|
167
168
|
ResponsiveGrid: () => ResponsiveGrid,
|
|
@@ -8670,6 +8671,34 @@ function InlineLabel({
|
|
|
8670
8671
|
] });
|
|
8671
8672
|
}
|
|
8672
8673
|
|
|
8674
|
+
// src/components/ProposedValue.tsx
|
|
8675
|
+
var import_runtime21 = require("@homebound/truss/runtime");
|
|
8676
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
8677
|
+
function ProposedValue(props) {
|
|
8678
|
+
const {
|
|
8679
|
+
original,
|
|
8680
|
+
proposed
|
|
8681
|
+
} = props;
|
|
8682
|
+
const tid = useTestIds(props, "proposedValue");
|
|
8683
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { ...tid, children: [
|
|
8684
|
+
original && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
|
|
8685
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { ...(0, import_runtime21.trussProps)({
|
|
8686
|
+
textDecoration: "tdlt",
|
|
8687
|
+
color: ["color_var", {
|
|
8688
|
+
"--color": "var(--b-on-surface-muted)"
|
|
8689
|
+
}]
|
|
8690
|
+
}), ...tid.original, children: original }),
|
|
8691
|
+
" "
|
|
8692
|
+
] }),
|
|
8693
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { ...(0, import_runtime21.trussProps)({
|
|
8694
|
+
fontWeight: "fw6",
|
|
8695
|
+
color: ["color_var", {
|
|
8696
|
+
"--color": "var(--b-ai-field-fg)"
|
|
8697
|
+
}]
|
|
8698
|
+
}), ...tid.proposed, children: proposed })
|
|
8699
|
+
] });
|
|
8700
|
+
}
|
|
8701
|
+
|
|
8673
8702
|
// src/components/Table/components/Row.tsx
|
|
8674
8703
|
var import_mobx_react = require("mobx-react");
|
|
8675
8704
|
var import_react33 = __toESM(require("react"), 1);
|
|
@@ -8677,11 +8706,11 @@ var import_react_aria6 = require("react-aria");
|
|
|
8677
8706
|
|
|
8678
8707
|
// src/components/Table/components/cell.tsx
|
|
8679
8708
|
var import_react_router_dom2 = require("react-router-dom");
|
|
8680
|
-
var
|
|
8681
|
-
var
|
|
8709
|
+
var import_runtime22 = require("@homebound/truss/runtime");
|
|
8710
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
8682
8711
|
var defaultRenderFn = (as, colSpan) => (key, css2, content, row, rowStyle, classNames, onClick, tooltip) => {
|
|
8683
8712
|
const Cell = as === "table" ? "td" : "div";
|
|
8684
|
-
return /* @__PURE__ */ (0,
|
|
8713
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Cell, { ...(0, import_runtime22.mergeProps)(classNames, void 0, {
|
|
8685
8714
|
...css2,
|
|
8686
8715
|
...{
|
|
8687
8716
|
cursor: "cursor_default"
|
|
@@ -8692,7 +8721,7 @@ var defaultRenderFn = (as, colSpan) => (key, css2, content, row, rowStyle, class
|
|
|
8692
8721
|
};
|
|
8693
8722
|
var headerRenderFn = (column2, as, colSpan) => (key, css2, content, row, rowStyle, classNames, onClick, tooltip) => {
|
|
8694
8723
|
const Cell = as === "table" ? "th" : "div";
|
|
8695
|
-
return /* @__PURE__ */ (0,
|
|
8724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Cell, { ...(0, import_runtime22.mergeProps)(classNames, void 0, {
|
|
8696
8725
|
...css2
|
|
8697
8726
|
}), ...as === "table" && {
|
|
8698
8727
|
colSpan
|
|
@@ -8701,15 +8730,15 @@ var headerRenderFn = (column2, as, colSpan) => (key, css2, content, row, rowStyl
|
|
|
8701
8730
|
var rowLinkRenderFn = (as, colSpan) => (key, css2, content, row, rowStyle, classNames, onClick, tooltip) => {
|
|
8702
8731
|
const to = rowStyle.rowLink(row);
|
|
8703
8732
|
if (as === "table") {
|
|
8704
|
-
return /* @__PURE__ */ (0,
|
|
8733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("td", { ...(0, import_runtime22.mergeProps)(classNames, void 0, {
|
|
8705
8734
|
...css2
|
|
8706
|
-
}), colSpan, children: /* @__PURE__ */ (0,
|
|
8735
|
+
}), colSpan, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_router_dom2.Link, { to, ...(0, import_runtime22.mergeProps)(navLink, void 0, {
|
|
8707
8736
|
textDecoration: "tdn",
|
|
8708
8737
|
color: "color_unset",
|
|
8709
8738
|
display: "db"
|
|
8710
8739
|
}), children: content }) }, key);
|
|
8711
8740
|
}
|
|
8712
|
-
return /* @__PURE__ */ (0,
|
|
8741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_router_dom2.Link, { to, ...(0, import_runtime22.mergeProps)(`${navLink} ${classNames}`, void 0, {
|
|
8713
8742
|
...{
|
|
8714
8743
|
textDecoration: "tdn",
|
|
8715
8744
|
color: "color_unset"
|
|
@@ -8719,7 +8748,7 @@ var rowLinkRenderFn = (as, colSpan) => (key, css2, content, row, rowStyle, class
|
|
|
8719
8748
|
};
|
|
8720
8749
|
var rowClickRenderFn = (as, api, colSpan) => (key, css2, content, row, rowStyle, classNames, onClick, tooltip) => {
|
|
8721
8750
|
const Cell = as === "table" ? "td" : "div";
|
|
8722
|
-
return /* @__PURE__ */ (0,
|
|
8751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Cell, { ...(0, import_runtime22.mergeProps)(classNames, void 0, {
|
|
8723
8752
|
...css2
|
|
8724
8753
|
}), onClick: (e) => {
|
|
8725
8754
|
rowStyle.onClick(row, api);
|
|
@@ -8731,8 +8760,8 @@ var rowClickRenderFn = (as, api, colSpan) => (key, css2, content, row, rowStyle,
|
|
|
8731
8760
|
|
|
8732
8761
|
// src/components/Table/components/ColumnResizeHandle.tsx
|
|
8733
8762
|
var import_react31 = require("react");
|
|
8734
|
-
var
|
|
8735
|
-
var
|
|
8763
|
+
var import_runtime23 = require("@homebound/truss/runtime");
|
|
8764
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
8736
8765
|
function findScrollableParent(element) {
|
|
8737
8766
|
if (!element) return null;
|
|
8738
8767
|
let parent = element.parentElement;
|
|
@@ -8895,8 +8924,8 @@ function ColumnResizeHandle({
|
|
|
8895
8924
|
document.body.style.userSelect = "";
|
|
8896
8925
|
};
|
|
8897
8926
|
}, []);
|
|
8898
|
-
return /* @__PURE__ */ (0,
|
|
8899
|
-
/* @__PURE__ */ (0,
|
|
8927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
8928
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { ref: handleRef, onMouseDown: handleMouseDown, onMouseEnter: () => setIsHovering(true), onMouseLeave: () => !isDragging && setIsHovering(false), ...(0, import_runtime23.trussProps)({
|
|
8900
8929
|
position: "absolute",
|
|
8901
8930
|
top: "top0",
|
|
8902
8931
|
bottom: "bottom0",
|
|
@@ -8913,7 +8942,7 @@ function ColumnResizeHandle({
|
|
|
8913
8942
|
}]
|
|
8914
8943
|
} : {}
|
|
8915
8944
|
}), ...tid.handle, "data-column-id": columnId, "data-column-index": columnIndex }),
|
|
8916
|
-
isDragging && guideLineX !== null && /* @__PURE__ */ (0,
|
|
8945
|
+
isDragging && guideLineX !== null && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { ...(0, import_runtime23.trussProps)({
|
|
8917
8946
|
position: "fixed",
|
|
8918
8947
|
top: ["top_var", {
|
|
8919
8948
|
"--top": `${guideLineTop}px`
|
|
@@ -8930,7 +8959,7 @@ function ColumnResizeHandle({
|
|
|
8930
8959
|
}],
|
|
8931
8960
|
pointerEvents: "pointerEvents_none",
|
|
8932
8961
|
zIndex: ["z_var", {
|
|
8933
|
-
"--zIndex": (0,
|
|
8962
|
+
"--zIndex": (0, import_runtime23.maybeCssVar)(zIndices.dragHandle)
|
|
8934
8963
|
}],
|
|
8935
8964
|
transform: "transform_translateX_50"
|
|
8936
8965
|
}), ...tid.guideLine })
|
|
@@ -8939,8 +8968,8 @@ function ColumnResizeHandle({
|
|
|
8939
8968
|
|
|
8940
8969
|
// src/components/Table/components/KeptGroupRow.tsx
|
|
8941
8970
|
var import_react32 = require("react");
|
|
8942
|
-
var
|
|
8943
|
-
var
|
|
8971
|
+
var import_runtime24 = require("@homebound/truss/runtime");
|
|
8972
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
8944
8973
|
var __maybeInc5 = (inc) => {
|
|
8945
8974
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
8946
8975
|
};
|
|
@@ -8958,7 +8987,7 @@ function KeptGroupRow(props) {
|
|
|
8958
8987
|
tableState
|
|
8959
8988
|
} = (0, import_react32.useContext)(TableStateContext);
|
|
8960
8989
|
const numHiddenSelectedRows = useComputed(() => tableState.keptRows.length, [tableState]);
|
|
8961
|
-
return /* @__PURE__ */ (0,
|
|
8990
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(CellTag, { ...(0, import_runtime24.trussProps)({
|
|
8962
8991
|
...style.cellCss,
|
|
8963
8992
|
...style.betweenRowsCss,
|
|
8964
8993
|
...isLastBodyRow && style.lastRowCellCss,
|
|
@@ -8968,22 +8997,22 @@ function KeptGroupRow(props) {
|
|
|
8968
8997
|
...{
|
|
8969
8998
|
paddingLeft: "pl0",
|
|
8970
8999
|
width: ["w_var", {
|
|
8971
|
-
"--width": (0,
|
|
9000
|
+
"--width": (0, import_runtime24.maybeCssVar)(__maybeInc5(`calc(${columnSizes.join(" + ")})`))
|
|
8972
9001
|
}]
|
|
8973
9002
|
}
|
|
8974
9003
|
}), ...as === "table" ? {
|
|
8975
9004
|
colSpan
|
|
8976
|
-
} : {}, children: /* @__PURE__ */ (0,
|
|
8977
|
-
/* @__PURE__ */ (0,
|
|
8978
|
-
/* @__PURE__ */ (0,
|
|
8979
|
-
/* @__PURE__ */ (0,
|
|
9005
|
+
} : {}, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "df aic gap_12px", children: [
|
|
9006
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "w_38px df jcc", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(CollapseToggle, { row, compact: true }) }),
|
|
9007
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "df aic gap1", children: [
|
|
9008
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon, { icon: "infoCircle", inc: 2 }),
|
|
8980
9009
|
`${numHiddenSelectedRows} selected ${pluralize(numHiddenSelectedRows, "row")} hidden due to filters`
|
|
8981
9010
|
] })
|
|
8982
9011
|
] }) });
|
|
8983
9012
|
}
|
|
8984
9013
|
|
|
8985
9014
|
// src/components/Table/TableStyles.tsx
|
|
8986
|
-
var
|
|
9015
|
+
var import_runtime25 = require("@homebound/truss/runtime");
|
|
8987
9016
|
var __typography = {
|
|
8988
9017
|
xs2: {
|
|
8989
9018
|
fontWeight: "fw4",
|
|
@@ -9076,7 +9105,7 @@ function memoizedTableStyles() {
|
|
|
9076
9105
|
"--backgroundColor": "var(--b-surface-hover)"
|
|
9077
9106
|
}],
|
|
9078
9107
|
boxShadow: ["boxShadow_var", {
|
|
9079
|
-
"--boxShadow": (0,
|
|
9108
|
+
"--boxShadow": (0, import_runtime25.maybeCssVar)(insetSeparator)
|
|
9080
9109
|
}]
|
|
9081
9110
|
},
|
|
9082
9111
|
...allWhite && {
|
|
@@ -9216,14 +9245,14 @@ function memoizedTableStyles() {
|
|
|
9216
9245
|
paddingTop: "pt0",
|
|
9217
9246
|
paddingBottom: "pb0",
|
|
9218
9247
|
boxShadow: ["boxShadow_var", {
|
|
9219
|
-
"--boxShadow": (0,
|
|
9248
|
+
"--boxShadow": (0, import_runtime25.maybeCssVar)(insetSeparator)
|
|
9220
9249
|
}]
|
|
9221
9250
|
},
|
|
9222
9251
|
// Draw a 1px divider inside the cell on the right edge and bottom edge.
|
|
9223
9252
|
// Using `inset` keeps the line inside the cell so it doesn't change layout.
|
|
9224
9253
|
expandableHeaderNonLastColumnCss: {
|
|
9225
9254
|
boxShadow: ["boxShadow_var", {
|
|
9226
|
-
"--boxShadow": (0,
|
|
9255
|
+
"--boxShadow": (0, import_runtime25.maybeCssVar)(insetSeparatorCorner)
|
|
9227
9256
|
}]
|
|
9228
9257
|
},
|
|
9229
9258
|
cellCss: {
|
|
@@ -9236,12 +9265,12 @@ function memoizedTableStyles() {
|
|
|
9236
9265
|
"--backgroundColor": "var(--b-surface)"
|
|
9237
9266
|
}],
|
|
9238
9267
|
alignItems: ["ai_var", {
|
|
9239
|
-
"--alignItems": (0,
|
|
9268
|
+
"--alignItems": (0, import_runtime25.maybeCssVar)(alignItems)
|
|
9240
9269
|
}],
|
|
9241
9270
|
paddingLeft: "pl_12px",
|
|
9242
9271
|
paddingRight: "pr_12px",
|
|
9243
9272
|
boxShadow: ["boxShadow_var", {
|
|
9244
|
-
"--boxShadow": (0,
|
|
9273
|
+
"--boxShadow": (0, import_runtime25.maybeCssVar)(insetSeparator)
|
|
9245
9274
|
}]
|
|
9246
9275
|
},
|
|
9247
9276
|
...rowHeight === "flexible" ? {
|
|
@@ -9337,7 +9366,7 @@ function memoizedTableStyles() {
|
|
|
9337
9366
|
// Pinned rows keep Blue50 until a selection-surface token exists.
|
|
9338
9367
|
pinnedRowCss: {
|
|
9339
9368
|
backgroundColor: ["bgColor_var", {
|
|
9340
|
-
"--backgroundColor": (0,
|
|
9369
|
+
"--backgroundColor": (0, import_runtime25.maybeCssVar)("rgba(239, 246, 255, 1)" /* Blue50 */)
|
|
9341
9370
|
}]
|
|
9342
9371
|
}
|
|
9343
9372
|
};
|
|
@@ -9457,8 +9486,8 @@ function resolveStyles(style) {
|
|
|
9457
9486
|
|
|
9458
9487
|
// src/components/Table/components/Row.tsx
|
|
9459
9488
|
var import_use_debounce2 = require("use-debounce");
|
|
9460
|
-
var
|
|
9461
|
-
var
|
|
9489
|
+
var import_runtime26 = require("@homebound/truss/runtime");
|
|
9490
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
9462
9491
|
var __maybeInc6 = (inc) => {
|
|
9463
9492
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
9464
9493
|
};
|
|
@@ -9630,12 +9659,12 @@ function RowImpl(props) {
|
|
|
9630
9659
|
const ref = (0, import_react33.useRef)(null);
|
|
9631
9660
|
const dragOverCallback = (0, import_react33.useCallback)((row2, evt) => onDragOver?.(row2, evt), [onDragOver]);
|
|
9632
9661
|
const onDragOverDebounced = (0, import_use_debounce2.useDebouncedCallback)(dragOverCallback, 100);
|
|
9633
|
-
const RowContent = () => /* @__PURE__ */ (0,
|
|
9662
|
+
const RowContent = () => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(RowTag, { ...(0, import_runtime26.mergeProps)(`${BorderHoverParent}${showRowHoverColor ? ` ${RowHoverClass}` : ""}`, void 0, rowCss), ...others, "data-gridrow": true, ...getCount(row.id), ref, children: isKeptGroupRow ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(KeptGroupRow, { as, style, columnSizes, row, colSpan: columns.length, isLastBodyRow }) : columns.map((column2, columnIndex) => {
|
|
9634
9663
|
const maybeExpandedColumn = expandColumnHidden ? columns[columnIndex - 1] : column2;
|
|
9635
9664
|
const isExpanded = tableState.isExpandedColumn(maybeExpandedColumn.id);
|
|
9636
9665
|
if (column2.hideOnExpand && isExpanded) {
|
|
9637
9666
|
expandColumnHidden = true;
|
|
9638
|
-
return /* @__PURE__ */ (0,
|
|
9667
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {});
|
|
9639
9668
|
}
|
|
9640
9669
|
const numExpandedColumns = isExpanded ? tableState.numberOfExpandedChildren(maybeExpandedColumn.id) ? (
|
|
9641
9670
|
// Subtract 1 if the column is hidden on expand, since we're not rendering it.
|
|
@@ -9681,7 +9710,7 @@ function RowImpl(props) {
|
|
|
9681
9710
|
...{
|
|
9682
9711
|
position: "sticky",
|
|
9683
9712
|
zIndex: ["z_var", {
|
|
9684
|
-
"--zIndex": (0,
|
|
9713
|
+
"--zIndex": (0, import_runtime26.maybeCssVar)(zIndices.tableStickyColumn)
|
|
9685
9714
|
}],
|
|
9686
9715
|
backgroundColor: ["bgColor_var", {
|
|
9687
9716
|
"--backgroundColor": "var(--b-surface)"
|
|
@@ -9689,13 +9718,13 @@ function RowImpl(props) {
|
|
|
9689
9718
|
},
|
|
9690
9719
|
...maybeSticky === "left" ? {
|
|
9691
9720
|
left: ["left_var", {
|
|
9692
|
-
"--left": (0,
|
|
9721
|
+
"--left": (0, import_runtime26.maybeCssVar)(__maybeInc6(columnIndex === 0 ? `var(${beamSideNavLayoutWidthVar}, 0px)` : `calc(var(${beamSideNavLayoutWidthVar}, 0px) + (${columnSizes.slice(0, columnIndex).join(" + ")}))`))
|
|
9693
9722
|
}]
|
|
9694
9723
|
} : {},
|
|
9695
9724
|
// Offset by the open right pane so sticky-right cells pin to the clear edge, not under it (0 when closed).
|
|
9696
9725
|
...maybeSticky === "right" ? {
|
|
9697
9726
|
right: ["right_var", {
|
|
9698
|
-
"--right": (0,
|
|
9727
|
+
"--right": (0, import_runtime26.maybeCssVar)(__maybeInc6(columnIndex + 1 === columnSizes.length ? `var(${beamRightPaneWidthVar}, 0px)` : `calc(var(${beamRightPaneWidthVar}, 0px) + (${columnSizes.slice(columnIndex + 1 - columnSizes.length).join(" + ")}))`))
|
|
9699
9728
|
}]
|
|
9700
9729
|
} : {}
|
|
9701
9730
|
} : {};
|
|
@@ -9741,7 +9770,7 @@ function RowImpl(props) {
|
|
|
9741
9770
|
...isTotals && style.totalsCellCss,
|
|
9742
9771
|
...isTotals && hasExpandableHeader && {
|
|
9743
9772
|
boxShadow: ["boxShadow_var", {
|
|
9744
|
-
"--boxShadow": (0,
|
|
9773
|
+
"--boxShadow": (0, import_runtime26.maybeCssVar)(`inset 0 -1px 0 ${maybeCssVar("--b-surface-separator" /* SurfaceSeparator */)}`)
|
|
9745
9774
|
}]
|
|
9746
9775
|
},
|
|
9747
9776
|
// Then apply any expandable header specific override
|
|
@@ -9752,7 +9781,7 @@ function RowImpl(props) {
|
|
|
9752
9781
|
// Only apply if not the last column in the table AND when this column is the last column in the group of expandable column or not expanded AND
|
|
9753
9782
|
...hasExpandableHeader && columnIndex + currentColspan < columns.length && (isHeader || isTotals) && currentExpandedColumnCount === 0 && {
|
|
9754
9783
|
boxShadow: ["boxShadow_var", {
|
|
9755
|
-
"--boxShadow": (0,
|
|
9784
|
+
"--boxShadow": (0, import_runtime26.maybeCssVar)(`inset -1px -1px 0 ${maybeCssVar("--b-surface-separator" /* SurfaceSeparator */)}`)
|
|
9756
9785
|
}]
|
|
9757
9786
|
},
|
|
9758
9787
|
// Or level-specific styling
|
|
@@ -9766,7 +9795,7 @@ function RowImpl(props) {
|
|
|
9766
9795
|
// Active/pinned blue selection fills have no semantic token yet — keep Blue50 default.
|
|
9767
9796
|
...isActive ? {
|
|
9768
9797
|
backgroundColor: ["bgColor_var", {
|
|
9769
|
-
"--backgroundColor": (0,
|
|
9798
|
+
"--backgroundColor": (0, import_runtime26.maybeCssVar)(style.activeBgColor ?? "rgba(239, 246, 255, 1)" /* Blue50 */)
|
|
9770
9799
|
}]
|
|
9771
9800
|
} : {},
|
|
9772
9801
|
// Add any cell specific style overrides
|
|
@@ -9790,7 +9819,7 @@ function RowImpl(props) {
|
|
|
9790
9819
|
...applyCellHighlight && isCellActive ? {
|
|
9791
9820
|
borderRadius: "br4",
|
|
9792
9821
|
boxShadow: ["boxShadow_var", {
|
|
9793
|
-
"--boxShadow": (0,
|
|
9822
|
+
"--boxShadow": (0, import_runtime26.maybeCssVar)(`inset 0 0 0 1px ${maybeCssVar("--b-focus-ring-inset" /* FocusRingInset */)}`)
|
|
9794
9823
|
}]
|
|
9795
9824
|
} : {}
|
|
9796
9825
|
},
|
|
@@ -9798,7 +9827,7 @@ function RowImpl(props) {
|
|
|
9798
9827
|
// If we have a 'levelIndent' defined, then subtract that amount from the first content column's width to ensure all columns will still line up properly.
|
|
9799
9828
|
...{
|
|
9800
9829
|
width: ["w_var", {
|
|
9801
|
-
"--width": (0,
|
|
9830
|
+
"--width": (0, import_runtime26.maybeCssVar)(__maybeInc6(`calc(${columnSizes.slice(columnIndex, columnIndex + currentColspan).join(" + ")}${applyFirstContentColumnStyles && levelIndent ? ` - ${levelIndent}px` : ""})`))
|
|
9802
9831
|
}]
|
|
9803
9832
|
},
|
|
9804
9833
|
// Gutter columns are budgeted at pageContentGutterPx; strip cell padding so flex min-content does not exceed that width.
|
|
@@ -9816,24 +9845,24 @@ function RowImpl(props) {
|
|
|
9816
9845
|
const currentSizeStr = columnSizes[columnIndex];
|
|
9817
9846
|
const minWidthPx = column2.mw ? parseInt(column2.mw.replace("px", ""), 10) : 100;
|
|
9818
9847
|
const currentWidthPx = parseWidthToPx(currentSizeStr, void 0) ?? resizedWidths?.[column2.id] ?? minWidthPx;
|
|
9819
|
-
const cellElementWithHandle = import_react33.default.cloneElement(cellElement, (0, import_react_aria6.mergeProps)(cellElement.props, (0,
|
|
9848
|
+
const cellElementWithHandle = import_react33.default.cloneElement(cellElement, (0, import_react_aria6.mergeProps)(cellElement.props, (0, import_runtime26.trussProps)({
|
|
9820
9849
|
...!maybeSticky && {
|
|
9821
9850
|
position: "relative"
|
|
9822
9851
|
}
|
|
9823
9852
|
}), {
|
|
9824
|
-
children: /* @__PURE__ */ (0,
|
|
9853
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
9825
9854
|
cellElement.props.children,
|
|
9826
|
-
/* @__PURE__ */ (0,
|
|
9855
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ColumnResizeHandle, { columnId: column2.id, columnIndex, currentWidth: currentWidthPx, minWidth: minWidthPx, onResize: (colId, width2) => setResizedWidth?.(colId, width2, columnIndex), calculatePreviewWidth })
|
|
9827
9856
|
] })
|
|
9828
9857
|
}));
|
|
9829
9858
|
return cellElementWithHandle;
|
|
9830
9859
|
}
|
|
9831
9860
|
return cellElement;
|
|
9832
9861
|
}) });
|
|
9833
|
-
return row.draggable ? /* @__PURE__ */ (0,
|
|
9862
|
+
return row.draggable ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
9834
9863
|
"div",
|
|
9835
9864
|
{
|
|
9836
|
-
...(0,
|
|
9865
|
+
...(0, import_runtime26.trussProps)(containerCss),
|
|
9837
9866
|
onDrop: (evt) => onDrop?.(row, evt),
|
|
9838
9867
|
onDragEnter: (evt) => onDragEnter?.(row, evt),
|
|
9839
9868
|
onDragOver: (evt) => {
|
|
@@ -9842,7 +9871,7 @@ function RowImpl(props) {
|
|
|
9842
9871
|
},
|
|
9843
9872
|
children: RowContent()
|
|
9844
9873
|
}
|
|
9845
|
-
) : /* @__PURE__ */ (0,
|
|
9874
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children: RowContent() });
|
|
9846
9875
|
}
|
|
9847
9876
|
var Row = (0, import_mobx_react.observer)(RowImpl);
|
|
9848
9877
|
var BorderHoverParent = "beam-bhp";
|
|
@@ -9872,8 +9901,8 @@ function useLabelSuffix(required, readOnly) {
|
|
|
9872
9901
|
|
|
9873
9902
|
// src/inputs/ErrorMessage.tsx
|
|
9874
9903
|
var import_react_aria7 = require("react-aria");
|
|
9875
|
-
var
|
|
9876
|
-
var
|
|
9904
|
+
var import_runtime27 = require("@homebound/truss/runtime");
|
|
9905
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
9877
9906
|
function ErrorMessage(props) {
|
|
9878
9907
|
const {
|
|
9879
9908
|
id,
|
|
@@ -9881,7 +9910,7 @@ function ErrorMessage(props) {
|
|
|
9881
9910
|
hidden = false,
|
|
9882
9911
|
...others
|
|
9883
9912
|
} = props;
|
|
9884
|
-
const errorEl = errorMsg ? /* @__PURE__ */ (0,
|
|
9913
|
+
const errorEl = errorMsg ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { ...(0, import_runtime27.trussProps)({
|
|
9885
9914
|
color: ["color_var", {
|
|
9886
9915
|
"--color": "var(--b-danger)"
|
|
9887
9916
|
}],
|
|
@@ -9891,38 +9920,10 @@ function ErrorMessage(props) {
|
|
|
9891
9920
|
display: "df",
|
|
9892
9921
|
marginTop: "mt_4px"
|
|
9893
9922
|
}), children: [
|
|
9894
|
-
/* @__PURE__ */ (0,
|
|
9895
|
-
/* @__PURE__ */ (0,
|
|
9896
|
-
] }) : /* @__PURE__ */ (0,
|
|
9897
|
-
return hidden ? /* @__PURE__ */ (0,
|
|
9898
|
-
}
|
|
9899
|
-
|
|
9900
|
-
// src/inputs/internal/ProposedValue.tsx
|
|
9901
|
-
var import_runtime27 = require("@homebound/truss/runtime");
|
|
9902
|
-
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
9903
|
-
function ProposedValue(props) {
|
|
9904
|
-
const {
|
|
9905
|
-
original,
|
|
9906
|
-
proposed
|
|
9907
|
-
} = props;
|
|
9908
|
-
const tid = useTestIds(props, "proposedValue");
|
|
9909
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { ...tid, children: [
|
|
9910
|
-
original && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
9911
|
-
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { ...(0, import_runtime27.trussProps)({
|
|
9912
|
-
textDecoration: "tdlt",
|
|
9913
|
-
color: ["color_var", {
|
|
9914
|
-
"--color": "var(--b-on-surface-muted)"
|
|
9915
|
-
}]
|
|
9916
|
-
}), ...tid.original, children: original }),
|
|
9917
|
-
" "
|
|
9918
|
-
] }),
|
|
9919
|
-
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { ...(0, import_runtime27.trussProps)({
|
|
9920
|
-
fontWeight: "fw6",
|
|
9921
|
-
color: ["color_var", {
|
|
9922
|
-
"--color": "var(--b-ai-field-fg)"
|
|
9923
|
-
}]
|
|
9924
|
-
}), ...tid.proposed, children: proposed })
|
|
9925
|
-
] });
|
|
9923
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "fs0", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Icon, { icon: "error" }) }),
|
|
9924
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { id, className: "ml1 mt_2px", ...others, children: errorMsg })
|
|
9925
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_jsx_runtime32.Fragment, {});
|
|
9926
|
+
return hidden ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react_aria7.VisuallyHidden, { children: errorEl }) : errorEl;
|
|
9926
9927
|
}
|
|
9927
9928
|
|
|
9928
9929
|
// src/inputs/utils.ts
|
|
@@ -18108,6 +18109,7 @@ function TableCardView(props) {
|
|
|
18108
18109
|
aiMode = false
|
|
18109
18110
|
} = props;
|
|
18110
18111
|
const tid = useTestIds(props, "tableCardView");
|
|
18112
|
+
const titleText = typeof title === "string" ? title : title.proposed;
|
|
18111
18113
|
const action = to || onClick;
|
|
18112
18114
|
const progressValue = (0, import_react89.useMemo)(() => progress !== void 0 ? clampProgress(progress) : 0, [progress]);
|
|
18113
18115
|
const shownFooter = shownInteractiveFooter(interactiveFooter);
|
|
@@ -18120,7 +18122,7 @@ function TableCardView(props) {
|
|
|
18120
18122
|
} = (0, import_react_aria48.useFocusRing)();
|
|
18121
18123
|
const actionAttrs = {
|
|
18122
18124
|
...tid.action,
|
|
18123
|
-
"aria-label":
|
|
18125
|
+
"aria-label": titleText,
|
|
18124
18126
|
// `getButtonOrLink` renders its `<button>` without a type, which would default to submit inside a form.
|
|
18125
18127
|
type: typeof action === "string" ? void 0 : "button",
|
|
18126
18128
|
...(0, import_runtime71.trussProps)(contentStyles),
|
|
@@ -18134,7 +18136,7 @@ function TableCardView(props) {
|
|
|
18134
18136
|
borderBottomStyle: "bbs_solid",
|
|
18135
18137
|
borderBottomWidth: "bbw_1px",
|
|
18136
18138
|
borderColor: ["bc_var", {
|
|
18137
|
-
"--borderColor": "
|
|
18139
|
+
"--borderColor": (0, import_runtime71.maybeCssVar)(aiMode ? "--b-ai-field-bg" /* AiFieldBg */ : "--b-field-border-default" /* FieldBorderDefault */)
|
|
18138
18140
|
}],
|
|
18139
18141
|
overflow: "oh",
|
|
18140
18142
|
borderRadius: "borderRadius_12px_12px_0_0"
|
|
@@ -18145,7 +18147,7 @@ function TableCardView(props) {
|
|
|
18145
18147
|
objectFit: ["objectFit_var", {
|
|
18146
18148
|
"--objectFit": (0, import_runtime71.maybeCssVar)(imageFit)
|
|
18147
18149
|
}]
|
|
18148
|
-
}), src: imgSrc, alt:
|
|
18150
|
+
}), src: imgSrc, alt: titleText, loading: "lazy", ...tid.image }),
|
|
18149
18151
|
status && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "absolute top1 left1 df", ...tid.status, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(Tag, { ...status }) })
|
|
18150
18152
|
] }),
|
|
18151
18153
|
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { ...(0, import_runtime71.trussProps)({
|
|
@@ -18169,8 +18171,8 @@ function TableCardView(props) {
|
|
|
18169
18171
|
"--color": "var(--b-on-surface)"
|
|
18170
18172
|
}]
|
|
18171
18173
|
}), ...tid.eyebrow, children: [
|
|
18172
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "wsnw oh to_ellipsis", ...tid.leftEyebrow, children: leftEyebrow }),
|
|
18173
|
-
rightEyebrow && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "fs0", ...tid.rightEyebrow, children: rightEyebrow })
|
|
18174
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "wsnw oh to_ellipsis", ...tid.leftEyebrow, children: renderMaybeProposed(leftEyebrow, tid.leftEyebrowProposal) }),
|
|
18175
|
+
rightEyebrow && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "fs0", ...tid.rightEyebrow, children: renderMaybeProposed(rightEyebrow, tid.rightEyebrowProposal) })
|
|
18174
18176
|
] }),
|
|
18175
18177
|
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "dif w100 jcsb aic", children: [
|
|
18176
18178
|
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("h4", { ...(0, import_runtime71.trussProps)({
|
|
@@ -18185,7 +18187,7 @@ function TableCardView(props) {
|
|
|
18185
18187
|
color: ["color_var", {
|
|
18186
18188
|
"--color": "var(--b-on-surface)"
|
|
18187
18189
|
}]
|
|
18188
|
-
}), ...tid.title, children: title }),
|
|
18190
|
+
}), ...tid.title, children: renderMaybeProposed(title, tid.titleProposal) }),
|
|
18189
18191
|
(badge || badgeTags?.length) && /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "dif aic gap1 fs0", ...tid.badge, children: [
|
|
18190
18192
|
badge && /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "fw4 fz_14px lh_20px wsnw", children: badge }),
|
|
18191
18193
|
badgeTags?.map((tag) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(Tag, { ...tag }, tag.text))
|
|
@@ -18204,19 +18206,19 @@ function TableCardView(props) {
|
|
|
18204
18206
|
} : {}
|
|
18205
18207
|
}), children: [
|
|
18206
18208
|
data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("dl", { className: "df gap2 fw4 fz_14px lh_20px", children: [
|
|
18207
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "df fdc fg1", children: col1.map((d) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "df gap_4px", ...tid[defaultTestId(d.label)], children: [
|
|
18208
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("dt", { children: [
|
|
18209
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "df fdc fg1 fb2 mw0", children: col1.map((d) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "df gap_4px", ...tid[defaultTestId(d.label)], children: [
|
|
18210
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("dt", { className: "fs0", children: [
|
|
18209
18211
|
d.label,
|
|
18210
18212
|
":"
|
|
18211
18213
|
] }),
|
|
18212
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("dd", { children: d.value })
|
|
18214
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("dd", { className: "mw0", children: d.value })
|
|
18213
18215
|
] }, d.label)) }),
|
|
18214
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "df fdc fg1", children: col2.map((d) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "df gap_4px", ...tid[defaultTestId(d.label)], children: [
|
|
18215
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("dt", { children: [
|
|
18216
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { className: "df fdc fg1 fb2 mw0", children: col2.map((d) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "df gap_4px", ...tid[defaultTestId(d.label)], children: [
|
|
18217
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("dt", { className: "fs0", children: [
|
|
18216
18218
|
d.label,
|
|
18217
18219
|
":"
|
|
18218
18220
|
] }),
|
|
18219
|
-
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("dd", { children: d.value })
|
|
18221
|
+
/* @__PURE__ */ (0, import_jsx_runtime97.jsx)("dd", { className: "mw0", children: d.value })
|
|
18220
18222
|
] }, d.label)) })
|
|
18221
18223
|
] }),
|
|
18222
18224
|
progress !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "df aic gap1 fs_10px lh_14px", children: [
|
|
@@ -18225,16 +18227,16 @@ function TableCardView(props) {
|
|
|
18225
18227
|
height: "h_8px",
|
|
18226
18228
|
borderRadius: "br4",
|
|
18227
18229
|
backgroundColor: ["bgColor_var", {
|
|
18228
|
-
"--backgroundColor": "
|
|
18230
|
+
"--backgroundColor": (0, import_runtime71.maybeCssVar)(aiMode ? "rgba(221, 214, 254, 1)" /* Purple200 */ : "--b-surface-subtle" /* SurfaceSubtle */)
|
|
18229
18231
|
}]
|
|
18230
|
-
}), children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { ...(0, import_runtime71.trussProps)({
|
|
18232
|
+
}), ...tid.progressTrack, children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("div", { ...(0, import_runtime71.trussProps)({
|
|
18231
18233
|
height: "h100",
|
|
18232
18234
|
borderRadius: "br4",
|
|
18233
18235
|
backgroundColor: "bgBlue500",
|
|
18234
18236
|
width: ["w_var", {
|
|
18235
18237
|
"--width": (0, import_runtime71.maybeCssVar)(__maybeInc13(`${progressValue}%`))
|
|
18236
18238
|
}]
|
|
18237
|
-
}) }) }),
|
|
18239
|
+
}), ...tid.progressFill }) }),
|
|
18238
18240
|
/* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("span", { ...tid.progressValue, children: [
|
|
18239
18241
|
progressValue,
|
|
18240
18242
|
"%"
|
|
@@ -18267,6 +18269,13 @@ function TableCardView(props) {
|
|
|
18267
18269
|
boxShadow: "bshFocus",
|
|
18268
18270
|
borderStyle: "bss",
|
|
18269
18271
|
borderWidth: "bw1"
|
|
18272
|
+
} : {},
|
|
18273
|
+
// Must follow the focus ring, whose `ba` would reset the AI border back to 1px.
|
|
18274
|
+
...aiMode ? {
|
|
18275
|
+
borderWidth: "bw2",
|
|
18276
|
+
borderColor: ["bc_var", {
|
|
18277
|
+
"--borderColor": "var(--b-ai-field-fg)"
|
|
18278
|
+
}]
|
|
18270
18279
|
} : {}
|
|
18271
18280
|
}), ...tid, children: [
|
|
18272
18281
|
action ? getButtonOrLink(content, action, actionAttrs) : (
|
|
@@ -18328,6 +18337,9 @@ function Thumbnail(props) {
|
|
|
18328
18337
|
pointerEvents: "after_a_pointerEvents_none"
|
|
18329
18338
|
}), children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("span", { className: "db w100 h100 oh br8", children: /* @__PURE__ */ (0, import_jsx_runtime97.jsx)("img", { className: "w100 h100 objectFit_cover db", src: item.imgUrl, alt: "", loading: "lazy" }) }) }) });
|
|
18330
18339
|
}
|
|
18340
|
+
function renderMaybeProposed(value, tid) {
|
|
18341
|
+
return typeof value === "string" || value === void 0 ? value : /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(ProposedValue, { ...value, ...tid });
|
|
18342
|
+
}
|
|
18331
18343
|
function clampProgress(value) {
|
|
18332
18344
|
if (process.env.NODE_ENV !== "production" && (value < 0 || value > 100)) {
|
|
18333
18345
|
console.warn(`[TableCard] progress value ${value} is outside the expected range [0, 100] and will be clamped.`);
|
|
@@ -28422,8 +28434,72 @@ function EnvironmentBannerLayout(props) {
|
|
|
28422
28434
|
}
|
|
28423
28435
|
|
|
28424
28436
|
// src/layouts/FormSectionLayout/FormSectionLayout.tsx
|
|
28437
|
+
var import_runtime148 = require("@homebound/truss/runtime");
|
|
28438
|
+
|
|
28439
|
+
// src/layouts/FormSectionLayout/JumpLinksRail.tsx
|
|
28425
28440
|
var import_runtime147 = require("@homebound/truss/runtime");
|
|
28426
28441
|
var import_jsx_runtime229 = require("react/jsx-runtime");
|
|
28442
|
+
var __maybeInc31 = (inc) => {
|
|
28443
|
+
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28444
|
+
};
|
|
28445
|
+
function JumpLinksRail(props) {
|
|
28446
|
+
const {
|
|
28447
|
+
links,
|
|
28448
|
+
activeId
|
|
28449
|
+
} = props;
|
|
28450
|
+
const tid = useTestIds(props, "jumpLinks");
|
|
28451
|
+
return /* @__PURE__ */ (0, import_jsx_runtime229.jsx)("nav", { ...(0, import_runtime147.trussProps)({
|
|
28452
|
+
display: "df",
|
|
28453
|
+
flexDirection: "fdc",
|
|
28454
|
+
flexShrink: "fs0",
|
|
28455
|
+
width: ["w_var", {
|
|
28456
|
+
"--width": `${jumpLinksRailWidthPx}px`
|
|
28457
|
+
}],
|
|
28458
|
+
position: "sticky",
|
|
28459
|
+
alignSelf: "asfs",
|
|
28460
|
+
top: ["top_var", {
|
|
28461
|
+
"--top": (0, import_runtime147.maybeCssVar)(__maybeInc31(stickyNavAndHeaderOffset()))
|
|
28462
|
+
}]
|
|
28463
|
+
}), ...tid, children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime229.jsx)(JumpLink, { label: link.label, href: `#${link.id}`, active: link.id === activeId, ...tid.link }, link.id)) });
|
|
28464
|
+
}
|
|
28465
|
+
var jumpLinksRailWidthPx = 192;
|
|
28466
|
+
var railAndShellPx = centeredShellMaxPx.sm + jumpLinksRailWidthPx;
|
|
28467
|
+
var jumpLinksRailReservation = `clamp(0px, 100% - ${railAndShellPx}px, ${jumpLinksRailWidthPx}px)`;
|
|
28468
|
+
|
|
28469
|
+
// src/layouts/FormSectionLayout/useActiveJumpLink.ts
|
|
28470
|
+
var import_react158 = require("react");
|
|
28471
|
+
var activationLeadPx = 120;
|
|
28472
|
+
function useActiveJumpLink(sectionIds) {
|
|
28473
|
+
const idsKey = sectionIds.join("\0");
|
|
28474
|
+
const [activeId, setActiveId] = (0, import_react158.useState)(sectionIds[0]);
|
|
28475
|
+
(0, import_react158.useLayoutEffect)(() => {
|
|
28476
|
+
const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
|
|
28477
|
+
if (ids.length === 0) return;
|
|
28478
|
+
const update = () => {
|
|
28479
|
+
const first = ids.map((id) => document.getElementById(id)).find((el) => el !== null);
|
|
28480
|
+
if (!first) return;
|
|
28481
|
+
const headerOffset = stickyNavAndHeaderOffsetPx(first);
|
|
28482
|
+
let current = ids[0];
|
|
28483
|
+
for (const id of ids) {
|
|
28484
|
+
const el = document.getElementById(id);
|
|
28485
|
+
if (el && el.getBoundingClientRect().top - headerOffset <= activationLeadPx) {
|
|
28486
|
+
current = id;
|
|
28487
|
+
}
|
|
28488
|
+
}
|
|
28489
|
+
setActiveId(current);
|
|
28490
|
+
};
|
|
28491
|
+
update();
|
|
28492
|
+
window.addEventListener("scroll", update, { passive: true });
|
|
28493
|
+
return () => window.removeEventListener("scroll", update);
|
|
28494
|
+
}, [idsKey]);
|
|
28495
|
+
return sectionIds.includes(activeId ?? "") ? activeId : sectionIds[0];
|
|
28496
|
+
}
|
|
28497
|
+
|
|
28498
|
+
// src/layouts/FormSectionLayout/FormSectionLayout.tsx
|
|
28499
|
+
var import_jsx_runtime230 = require("react/jsx-runtime");
|
|
28500
|
+
var __maybeInc32 = (inc) => {
|
|
28501
|
+
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28502
|
+
};
|
|
28427
28503
|
function FormSectionLayout(props) {
|
|
28428
28504
|
const {
|
|
28429
28505
|
title,
|
|
@@ -28432,10 +28508,23 @@ function FormSectionLayout(props) {
|
|
|
28432
28508
|
withAutoSave,
|
|
28433
28509
|
initialFields,
|
|
28434
28510
|
sections,
|
|
28435
|
-
aiMode = false
|
|
28511
|
+
aiMode = false,
|
|
28512
|
+
withJumpLinks = false
|
|
28436
28513
|
} = props;
|
|
28437
28514
|
const tid = useTestIds(props, "formSectionLayout");
|
|
28438
|
-
const
|
|
28515
|
+
const {
|
|
28516
|
+
sm: isMobile
|
|
28517
|
+
} = useBreakpoint();
|
|
28518
|
+
const jumpLinks = (sections ?? []).filter((section) => !section.excludeJumpLink).map((section) => {
|
|
28519
|
+
const id = defaultTestId(section.title);
|
|
28520
|
+
return {
|
|
28521
|
+
id,
|
|
28522
|
+
label: section.title
|
|
28523
|
+
};
|
|
28524
|
+
});
|
|
28525
|
+
const showRail = withJumpLinks && jumpLinks.length >= 2 && !isMobile;
|
|
28526
|
+
const activeId = useActiveJumpLink(showRail ? jumpLinks.map((link) => link.id) : []);
|
|
28527
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime230.jsxs)("div", { ...(0, import_runtime148.trussProps)({
|
|
28439
28528
|
display: "df",
|
|
28440
28529
|
flexDirection: "fdc",
|
|
28441
28530
|
gap: "gap8",
|
|
@@ -28446,21 +28535,34 @@ function FormSectionLayout(props) {
|
|
|
28446
28535
|
paddingLeft: "pl3"
|
|
28447
28536
|
} : {}
|
|
28448
28537
|
}), children: [
|
|
28449
|
-
/* @__PURE__ */ (0,
|
|
28450
|
-
/* @__PURE__ */ (0,
|
|
28538
|
+
/* @__PURE__ */ (0, import_jsx_runtime230.jsxs)("div", { className: "df fdc gap3", children: [
|
|
28539
|
+
/* @__PURE__ */ (0, import_jsx_runtime230.jsx)(ContentHeader, { ...tid, title, description, actions, withAutoSave, level: 2, aiMode }),
|
|
28451
28540
|
initialFields
|
|
28452
28541
|
] }),
|
|
28453
|
-
sections && /* @__PURE__ */ (0,
|
|
28542
|
+
sections && /* @__PURE__ */ (0, import_jsx_runtime230.jsx)("div", { className: "df fdc gap8", children: sections.map((section, i) => /* @__PURE__ */ (0, import_jsx_runtime230.jsx)(FormSection, { ...section }, defaultTestId(section.title) || i)) })
|
|
28543
|
+
] });
|
|
28544
|
+
const form = /* @__PURE__ */ (0, import_jsx_runtime230.jsx)(CenteredLayout, { size: "sm", children: aiMode ? /* @__PURE__ */ (0, import_jsx_runtime230.jsx)(AiCard, { size: "lg", ...tid, children: content }) : content });
|
|
28545
|
+
if (!showRail) {
|
|
28546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime230.jsx)("div", { className: "mb4", children: form });
|
|
28547
|
+
}
|
|
28548
|
+
return /* @__PURE__ */ (0, import_jsx_runtime230.jsxs)("div", { className: "df w100 mb4", children: [
|
|
28549
|
+
/* @__PURE__ */ (0, import_jsx_runtime230.jsx)(JumpLinksRail, { links: jumpLinks, activeId, ...tid.jumpLinks }),
|
|
28550
|
+
/* @__PURE__ */ (0, import_jsx_runtime230.jsx)("div", { ...(0, import_runtime148.trussProps)({
|
|
28551
|
+
flexGrow: "fg1",
|
|
28552
|
+
minWidth: "mw0",
|
|
28553
|
+
marginRight: ["mr_var", {
|
|
28554
|
+
"--marginRight": (0, import_runtime148.maybeCssVar)(__maybeInc32(jumpLinksRailReservation))
|
|
28555
|
+
}]
|
|
28556
|
+
}), ...tid.column, children: form })
|
|
28454
28557
|
] });
|
|
28455
|
-
return /* @__PURE__ */ (0, import_jsx_runtime229.jsx)(CenteredLayout, { size: "sm", children: aiMode ? /* @__PURE__ */ (0, import_jsx_runtime229.jsx)(AiCard, { size: "lg", ...tid, children: content }) : content });
|
|
28456
28558
|
}
|
|
28457
28559
|
|
|
28458
28560
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
28459
|
-
var
|
|
28460
|
-
var
|
|
28561
|
+
var import_react162 = require("react");
|
|
28562
|
+
var import_runtime149 = require("@homebound/truss/runtime");
|
|
28461
28563
|
|
|
28462
28564
|
// src/layouts/useAutoHideOnScroll.ts
|
|
28463
|
-
var
|
|
28565
|
+
var import_react159 = require("react");
|
|
28464
28566
|
var THRESHOLD = 80;
|
|
28465
28567
|
function getInitialAutoHideState() {
|
|
28466
28568
|
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
@@ -28470,15 +28572,15 @@ function getInitialAutoHideState() {
|
|
|
28470
28572
|
}
|
|
28471
28573
|
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
28472
28574
|
const initial = getInitialAutoHideState();
|
|
28473
|
-
const [state, setState] = (0,
|
|
28474
|
-
const stateRef = (0,
|
|
28475
|
-
const [atTop, setAtTop] = (0,
|
|
28476
|
-
const atTopRef = (0,
|
|
28477
|
-
const getTopOffsetRef = (0,
|
|
28575
|
+
const [state, setState] = (0, import_react159.useState)(initial.state);
|
|
28576
|
+
const stateRef = (0, import_react159.useRef)(initial.state);
|
|
28577
|
+
const [atTop, setAtTop] = (0, import_react159.useState)(initial.atTop);
|
|
28578
|
+
const atTopRef = (0, import_react159.useRef)(initial.atTop);
|
|
28579
|
+
const getTopOffsetRef = (0, import_react159.useRef)(getTopOffset);
|
|
28478
28580
|
getTopOffsetRef.current = getTopOffset;
|
|
28479
|
-
const lastScrollY = (0,
|
|
28480
|
-
const lastScrollHeight = (0,
|
|
28481
|
-
(0,
|
|
28581
|
+
const lastScrollY = (0, import_react159.useRef)(Number.POSITIVE_INFINITY);
|
|
28582
|
+
const lastScrollHeight = (0, import_react159.useRef)(0);
|
|
28583
|
+
(0, import_react159.useLayoutEffect)(() => {
|
|
28482
28584
|
if (!enabled) {
|
|
28483
28585
|
stateRef.current = "static";
|
|
28484
28586
|
atTopRef.current = true;
|
|
@@ -28550,36 +28652,36 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
|
28550
28652
|
}
|
|
28551
28653
|
|
|
28552
28654
|
// src/layouts/useMeasuredHeight.ts
|
|
28553
|
-
var
|
|
28554
|
-
var
|
|
28655
|
+
var import_utils194 = require("@react-aria/utils");
|
|
28656
|
+
var import_react160 = require("react");
|
|
28555
28657
|
function useMeasuredHeight(ref, enabled) {
|
|
28556
|
-
const [height, setHeight] = (0,
|
|
28557
|
-
const syncElementHeight = (0,
|
|
28658
|
+
const [height, setHeight] = (0, import_react160.useState)(0);
|
|
28659
|
+
const syncElementHeight = (0, import_react160.useCallback)(() => {
|
|
28558
28660
|
const el = ref.current;
|
|
28559
28661
|
const next = el ? Math.round(el.getBoundingClientRect().height) : 0;
|
|
28560
28662
|
setHeight((prev) => prev === next ? prev : next);
|
|
28561
28663
|
}, [ref]);
|
|
28562
|
-
(0,
|
|
28563
|
-
(0,
|
|
28664
|
+
(0, import_utils194.useResizeObserver)({ ref, onResize: syncElementHeight });
|
|
28665
|
+
(0, import_react160.useLayoutEffect)(() => {
|
|
28564
28666
|
syncElementHeight();
|
|
28565
28667
|
}, [enabled, syncElementHeight]);
|
|
28566
28668
|
return height;
|
|
28567
28669
|
}
|
|
28568
28670
|
|
|
28569
28671
|
// src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
|
|
28570
|
-
var
|
|
28571
|
-
var
|
|
28572
|
-
var NavbarLayoutHeightContext = (0,
|
|
28672
|
+
var import_react161 = require("react");
|
|
28673
|
+
var import_jsx_runtime231 = require("react/jsx-runtime");
|
|
28674
|
+
var NavbarLayoutHeightContext = (0, import_react161.createContext)(0);
|
|
28573
28675
|
function NavbarLayoutHeightProvider({ value, children }) {
|
|
28574
|
-
return /* @__PURE__ */ (0,
|
|
28676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime231.jsx)(NavbarLayoutHeightContext.Provider, { value, children });
|
|
28575
28677
|
}
|
|
28576
28678
|
function useNavbarLayoutHeight() {
|
|
28577
|
-
return (0,
|
|
28679
|
+
return (0, import_react161.useContext)(NavbarLayoutHeightContext);
|
|
28578
28680
|
}
|
|
28579
28681
|
|
|
28580
28682
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
28581
|
-
var
|
|
28582
|
-
var
|
|
28683
|
+
var import_jsx_runtime232 = require("react/jsx-runtime");
|
|
28684
|
+
var __maybeInc33 = (inc) => {
|
|
28583
28685
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28584
28686
|
};
|
|
28585
28687
|
function NavbarLayout(props) {
|
|
@@ -28588,8 +28690,8 @@ function NavbarLayout(props) {
|
|
|
28588
28690
|
children
|
|
28589
28691
|
} = props;
|
|
28590
28692
|
const tid = useTestIds(props, "navbarLayout");
|
|
28591
|
-
const navMetricsRef = (0,
|
|
28592
|
-
const spacerRef = (0,
|
|
28693
|
+
const navMetricsRef = (0, import_react162.useRef)(null);
|
|
28694
|
+
const spacerRef = (0, import_react162.useRef)(null);
|
|
28593
28695
|
const navHeight = useMeasuredHeight(navMetricsRef, true);
|
|
28594
28696
|
const {
|
|
28595
28697
|
state: autoHideState,
|
|
@@ -28607,10 +28709,10 @@ function NavbarLayout(props) {
|
|
|
28607
28709
|
position: "sticky",
|
|
28608
28710
|
left: "left0",
|
|
28609
28711
|
zIndex: ["z_var", {
|
|
28610
|
-
"--zIndex": (0,
|
|
28712
|
+
"--zIndex": (0, import_runtime149.maybeCssVar)(zIndices.navbar)
|
|
28611
28713
|
}],
|
|
28612
28714
|
width: ["w_var", {
|
|
28613
|
-
"--width": (0,
|
|
28715
|
+
"--width": (0, import_runtime149.maybeCssVar)(__maybeInc33(innerWidth))
|
|
28614
28716
|
}]
|
|
28615
28717
|
}
|
|
28616
28718
|
) : (
|
|
@@ -28619,10 +28721,10 @@ function NavbarLayout(props) {
|
|
|
28619
28721
|
position: "fixed",
|
|
28620
28722
|
left: "left0",
|
|
28621
28723
|
zIndex: ["z_var", {
|
|
28622
|
-
"--zIndex": (0,
|
|
28724
|
+
"--zIndex": (0, import_runtime149.maybeCssVar)(zIndices.navbar)
|
|
28623
28725
|
}],
|
|
28624
28726
|
width: ["w_var", {
|
|
28625
|
-
"--width": (0,
|
|
28727
|
+
"--width": (0, import_runtime149.maybeCssVar)(__maybeInc33(innerWidth))
|
|
28626
28728
|
}],
|
|
28627
28729
|
transition: "transitionTop"
|
|
28628
28730
|
}
|
|
@@ -28631,29 +28733,29 @@ function NavbarLayout(props) {
|
|
|
28631
28733
|
const innerStyle = autoHideState !== "static" ? {
|
|
28632
28734
|
top: autoHideState === "revealed" ? bannerTop : `calc(${bannerTop} - ${navHeight}px)`
|
|
28633
28735
|
} : void 0;
|
|
28634
|
-
const navbarEl = (0,
|
|
28635
|
-
return /* @__PURE__ */ (0,
|
|
28736
|
+
const navbarEl = (0, import_react162.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime232.jsx)(Navbar, { ...navbar }), [navbar]);
|
|
28737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime232.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime232.jsx)(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ (0, import_jsx_runtime232.jsx)(MobileSubNavProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime232.jsxs)("div", { ...(0, import_runtime149.mergeProps)(void 0, cssVars, {
|
|
28636
28738
|
display: "df",
|
|
28637
28739
|
flexDirection: "fdc",
|
|
28638
28740
|
width: "wfc",
|
|
28639
28741
|
minWidth: "mw100"
|
|
28640
28742
|
}), ...tid, children: [
|
|
28641
|
-
/* @__PURE__ */ (0,
|
|
28743
|
+
/* @__PURE__ */ (0, import_jsx_runtime232.jsx)("div", { ref: spacerRef, ...(0, import_runtime149.mergeProps)(void 0, {
|
|
28642
28744
|
height: navHeight
|
|
28643
28745
|
}, {
|
|
28644
28746
|
flexShrink: "fs0",
|
|
28645
28747
|
width: "w100"
|
|
28646
|
-
}), children: /* @__PURE__ */ (0,
|
|
28647
|
-
/* @__PURE__ */ (0,
|
|
28748
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime232.jsx)("div", { ref: navMetricsRef, ...(0, import_runtime149.mergeProps)(void 0, innerStyle, innerCss), ...tid.navbar, children: navbarEl }) }),
|
|
28749
|
+
/* @__PURE__ */ (0, import_jsx_runtime232.jsx)("div", { className: "df fdc mh0 mw100 w100", ...tid.body, children })
|
|
28648
28750
|
] }) }) }) });
|
|
28649
28751
|
}
|
|
28650
28752
|
|
|
28651
28753
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
28652
|
-
var
|
|
28754
|
+
var import_react163 = require("react");
|
|
28653
28755
|
|
|
28654
28756
|
// src/components/Headers/BaseHeader.tsx
|
|
28655
|
-
var
|
|
28656
|
-
var
|
|
28757
|
+
var import_runtime150 = require("@homebound/truss/runtime");
|
|
28758
|
+
var import_jsx_runtime233 = require("react/jsx-runtime");
|
|
28657
28759
|
function BaseHeader(props) {
|
|
28658
28760
|
const {
|
|
28659
28761
|
title,
|
|
@@ -28665,7 +28767,7 @@ function BaseHeader(props) {
|
|
|
28665
28767
|
} = props;
|
|
28666
28768
|
const tid = useTestIds(otherProps, "header");
|
|
28667
28769
|
useDocumentTitle(title, documentTitleSuffix);
|
|
28668
|
-
return /* @__PURE__ */ (0,
|
|
28770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime233.jsxs)("header", { ...tid, ...(0, import_runtime150.trussProps)({
|
|
28669
28771
|
display: "df",
|
|
28670
28772
|
flexDirection: "fdc",
|
|
28671
28773
|
paddingTop: "pt3",
|
|
@@ -28679,7 +28781,7 @@ function BaseHeader(props) {
|
|
|
28679
28781
|
"--backgroundColor": "var(--b-surface)"
|
|
28680
28782
|
}]
|
|
28681
28783
|
}), children: [
|
|
28682
|
-
/* @__PURE__ */ (0,
|
|
28784
|
+
/* @__PURE__ */ (0, import_jsx_runtime233.jsxs)("div", { ...(0, import_runtime150.trussProps)({
|
|
28683
28785
|
...{
|
|
28684
28786
|
display: "df",
|
|
28685
28787
|
justifyContent: "jcsb",
|
|
@@ -28693,9 +28795,9 @@ function BaseHeader(props) {
|
|
|
28693
28795
|
} : {}
|
|
28694
28796
|
}
|
|
28695
28797
|
}), children: [
|
|
28696
|
-
/* @__PURE__ */ (0,
|
|
28697
|
-
breadcrumbs && /* @__PURE__ */ (0,
|
|
28698
|
-
/* @__PURE__ */ (0,
|
|
28798
|
+
/* @__PURE__ */ (0, import_jsx_runtime233.jsxs)("div", { className: "mw0", children: [
|
|
28799
|
+
breadcrumbs && /* @__PURE__ */ (0, import_jsx_runtime233.jsx)(Breadcrumbs, { ...breadcrumbs }),
|
|
28800
|
+
/* @__PURE__ */ (0, import_jsx_runtime233.jsx)("h1", { ...tid.title, ...(0, import_runtime150.trussProps)({
|
|
28699
28801
|
fontWeight: "fw6",
|
|
28700
28802
|
fontSize: "fz_20px",
|
|
28701
28803
|
lineHeight: "lh_28px",
|
|
@@ -28704,15 +28806,15 @@ function BaseHeader(props) {
|
|
|
28704
28806
|
}]
|
|
28705
28807
|
}), children: title })
|
|
28706
28808
|
] }),
|
|
28707
|
-
/* @__PURE__ */ (0,
|
|
28809
|
+
/* @__PURE__ */ (0, import_jsx_runtime233.jsx)("div", { className: "fs0", children: rightSlot })
|
|
28708
28810
|
] }),
|
|
28709
28811
|
bottomSlot
|
|
28710
28812
|
] });
|
|
28711
28813
|
}
|
|
28712
28814
|
|
|
28713
28815
|
// src/components/Headers/PageHeader.tsx
|
|
28714
|
-
var
|
|
28715
|
-
var
|
|
28816
|
+
var import_runtime151 = require("@homebound/truss/runtime");
|
|
28817
|
+
var import_jsx_runtime234 = require("react/jsx-runtime");
|
|
28716
28818
|
function PageHeader2(props) {
|
|
28717
28819
|
const {
|
|
28718
28820
|
tabs,
|
|
@@ -28721,10 +28823,10 @@ function PageHeader2(props) {
|
|
|
28721
28823
|
...otherProps
|
|
28722
28824
|
} = props;
|
|
28723
28825
|
const tid = useTestIds(otherProps, "header");
|
|
28724
|
-
return /* @__PURE__ */ (0,
|
|
28826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime234.jsx)(BaseHeader, { ...otherProps, rightSlot: /* @__PURE__ */ (0, import_jsx_runtime234.jsxs)(import_jsx_runtime234.Fragment, { children: [
|
|
28725
28827
|
rightSlot,
|
|
28726
|
-
actions && actions.length > 0 && /* @__PURE__ */ (0,
|
|
28727
|
-
] }), bottomSlot: tabs && /* @__PURE__ */ (0,
|
|
28828
|
+
actions && actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime234.jsx)(HeaderActions, { actions, collapseOnSm: true })
|
|
28829
|
+
] }), bottomSlot: tabs && /* @__PURE__ */ (0, import_jsx_runtime234.jsx)("div", { ...(0, import_runtime151.trussProps)(pageContentPaddingX), children: /* @__PURE__ */ (0, import_jsx_runtime234.jsx)(Tabs, { ...tabs, ...tid.tabs }) }) });
|
|
28728
28830
|
}
|
|
28729
28831
|
|
|
28730
28832
|
// src/layouts/useBannerAndNavbarHeight.ts
|
|
@@ -28733,9 +28835,9 @@ function useBannerAndNavbarHeight() {
|
|
|
28733
28835
|
}
|
|
28734
28836
|
|
|
28735
28837
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
28736
|
-
var
|
|
28737
|
-
var
|
|
28738
|
-
var
|
|
28838
|
+
var import_runtime152 = require("@homebound/truss/runtime");
|
|
28839
|
+
var import_jsx_runtime235 = require("react/jsx-runtime");
|
|
28840
|
+
var __maybeInc34 = (inc) => {
|
|
28739
28841
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28740
28842
|
};
|
|
28741
28843
|
function PageHeaderLayout(props) {
|
|
@@ -28745,11 +28847,11 @@ function PageHeaderLayout(props) {
|
|
|
28745
28847
|
} = props;
|
|
28746
28848
|
const tid = useTestIds(props, "pageHeaderLayout");
|
|
28747
28849
|
const bannerAndNavbarHeight = useBannerAndNavbarHeight();
|
|
28748
|
-
const bannerAndNavbarHeightRef = (0,
|
|
28850
|
+
const bannerAndNavbarHeightRef = (0, import_react163.useRef)(bannerAndNavbarHeight);
|
|
28749
28851
|
bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
|
|
28750
|
-
const getBannerAndNavbarHeight = (0,
|
|
28751
|
-
const headerMetricsRef = (0,
|
|
28752
|
-
const spacerRef = (0,
|
|
28852
|
+
const getBannerAndNavbarHeight = (0, import_react163.useCallback)(() => bannerAndNavbarHeightRef.current, []);
|
|
28853
|
+
const headerMetricsRef = (0, import_react163.useRef)(null);
|
|
28854
|
+
const spacerRef = (0, import_react163.useRef)(null);
|
|
28753
28855
|
const headerHeight = useMeasuredHeight(headerMetricsRef, true);
|
|
28754
28856
|
const {
|
|
28755
28857
|
state: autoHideState,
|
|
@@ -28765,103 +28867,46 @@ function PageHeaderLayout(props) {
|
|
|
28765
28867
|
const innerCss = autoHideState === "static" ? {
|
|
28766
28868
|
position: "sticky",
|
|
28767
28869
|
left: ["left_var", {
|
|
28768
|
-
"--left": (0,
|
|
28870
|
+
"--left": (0, import_runtime152.maybeCssVar)(__maybeInc34(headerLeft))
|
|
28769
28871
|
}],
|
|
28770
28872
|
width: ["w_var", {
|
|
28771
|
-
"--width": (0,
|
|
28873
|
+
"--width": (0, import_runtime152.maybeCssVar)(__maybeInc34(headerWidth))
|
|
28772
28874
|
}],
|
|
28773
28875
|
zIndex: ["z_var", {
|
|
28774
|
-
"--zIndex": (0,
|
|
28876
|
+
"--zIndex": (0, import_runtime152.maybeCssVar)(zIndices.pageStickyHeader)
|
|
28775
28877
|
}]
|
|
28776
28878
|
} : {
|
|
28777
28879
|
position: "fixed",
|
|
28778
28880
|
left: ["left_var", {
|
|
28779
|
-
"--left": (0,
|
|
28881
|
+
"--left": (0, import_runtime152.maybeCssVar)(__maybeInc34(headerLeft))
|
|
28780
28882
|
}],
|
|
28781
28883
|
width: ["w_var", {
|
|
28782
|
-
"--width": (0,
|
|
28884
|
+
"--width": (0, import_runtime152.maybeCssVar)(__maybeInc34(headerWidth))
|
|
28783
28885
|
}],
|
|
28784
28886
|
zIndex: ["z_var", {
|
|
28785
|
-
"--zIndex": (0,
|
|
28887
|
+
"--zIndex": (0, import_runtime152.maybeCssVar)(zIndices.pageStickyHeader)
|
|
28786
28888
|
}],
|
|
28787
28889
|
transition: "transitionTop"
|
|
28788
28890
|
};
|
|
28789
28891
|
const innerStyle = autoHideState !== "static" ? {
|
|
28790
28892
|
top: autoHideState === "revealed" ? outerTop : `calc(${outerTop} - ${headerHeight}px)`
|
|
28791
28893
|
} : void 0;
|
|
28792
|
-
const pageHeaderEl = (0,
|
|
28793
|
-
return /* @__PURE__ */ (0,
|
|
28894
|
+
const pageHeaderEl = (0, import_react163.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime235.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
|
|
28895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime235.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime235.jsxs)("div", { ...(0, import_runtime152.mergeProps)(void 0, cssVars, {
|
|
28794
28896
|
display: "df",
|
|
28795
28897
|
flexDirection: "fdc",
|
|
28796
28898
|
width: "w100"
|
|
28797
28899
|
}), ...tid, children: [
|
|
28798
|
-
/* @__PURE__ */ (0,
|
|
28900
|
+
/* @__PURE__ */ (0, import_jsx_runtime235.jsx)("div", { ref: spacerRef, ...(0, import_runtime152.mergeProps)(void 0, {
|
|
28799
28901
|
height: headerHeight
|
|
28800
28902
|
}, {
|
|
28801
28903
|
flexShrink: "fs0",
|
|
28802
28904
|
width: "w100"
|
|
28803
|
-
}), children: /* @__PURE__ */ (0,
|
|
28804
|
-
/* @__PURE__ */ (0,
|
|
28905
|
+
}), children: /* @__PURE__ */ (0, import_jsx_runtime235.jsx)("div", { ref: headerMetricsRef, ...(0, import_runtime152.mergeProps)(void 0, innerStyle, innerCss), ...tid.pageHeader, children: pageHeaderEl }) }),
|
|
28906
|
+
/* @__PURE__ */ (0, import_jsx_runtime235.jsx)("div", { className: "df fdc fg1 mh0 w100", ...tid.body, children })
|
|
28805
28907
|
] }) });
|
|
28806
28908
|
}
|
|
28807
28909
|
|
|
28808
|
-
// src/layouts/Workflow/JumpLinksRail.tsx
|
|
28809
|
-
var import_runtime152 = require("@homebound/truss/runtime");
|
|
28810
|
-
var import_jsx_runtime235 = require("react/jsx-runtime");
|
|
28811
|
-
var __maybeInc33 = (inc) => {
|
|
28812
|
-
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28813
|
-
};
|
|
28814
|
-
var jumpLinksRailWidthPx = 180;
|
|
28815
|
-
function JumpLinksRail(props) {
|
|
28816
|
-
const {
|
|
28817
|
-
links,
|
|
28818
|
-
activeId
|
|
28819
|
-
} = props;
|
|
28820
|
-
const tid = useTestIds(props, "jumpLinks");
|
|
28821
|
-
return /* @__PURE__ */ (0, import_jsx_runtime235.jsx)("nav", { ...(0, import_runtime152.trussProps)({
|
|
28822
|
-
display: "df",
|
|
28823
|
-
flexDirection: "fdc",
|
|
28824
|
-
flexShrink: "fs0",
|
|
28825
|
-
width: ["w_var", {
|
|
28826
|
-
"--width": `${jumpLinksRailWidthPx}px`
|
|
28827
|
-
}],
|
|
28828
|
-
position: "sticky",
|
|
28829
|
-
alignSelf: "asfs",
|
|
28830
|
-
top: ["top_var", {
|
|
28831
|
-
"--top": (0, import_runtime152.maybeCssVar)(__maybeInc33(stickyNavAndHeaderOffset()))
|
|
28832
|
-
}]
|
|
28833
|
-
}), ...tid, children: links.map((link) => /* @__PURE__ */ (0, import_jsx_runtime235.jsx)(JumpLink, { label: link.label, href: `#${link.id}`, active: link.id === activeId, ...tid.link }, link.id)) });
|
|
28834
|
-
}
|
|
28835
|
-
|
|
28836
|
-
// src/layouts/Workflow/useActiveJumpLink.ts
|
|
28837
|
-
var import_react163 = require("react");
|
|
28838
|
-
var activationLeadPx = 120;
|
|
28839
|
-
function useActiveJumpLink(sectionIds) {
|
|
28840
|
-
const idsKey = sectionIds.join("\0");
|
|
28841
|
-
const [activeId, setActiveId] = (0, import_react163.useState)(sectionIds[0]);
|
|
28842
|
-
(0, import_react163.useLayoutEffect)(() => {
|
|
28843
|
-
const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
|
|
28844
|
-
if (ids.length === 0) return;
|
|
28845
|
-
const update = () => {
|
|
28846
|
-
const first = ids.map((id) => document.getElementById(id)).find((el) => el !== null);
|
|
28847
|
-
if (!first) return;
|
|
28848
|
-
const headerOffset = stickyNavAndHeaderOffsetPx(first);
|
|
28849
|
-
let current = ids[0];
|
|
28850
|
-
for (const id of ids) {
|
|
28851
|
-
const el = document.getElementById(id);
|
|
28852
|
-
if (el && el.getBoundingClientRect().top - headerOffset <= activationLeadPx) {
|
|
28853
|
-
current = id;
|
|
28854
|
-
}
|
|
28855
|
-
}
|
|
28856
|
-
setActiveId(current);
|
|
28857
|
-
};
|
|
28858
|
-
update();
|
|
28859
|
-
window.addEventListener("scroll", update, { passive: true });
|
|
28860
|
-
return () => window.removeEventListener("scroll", update);
|
|
28861
|
-
}, [idsKey]);
|
|
28862
|
-
return sectionIds.includes(activeId ?? "") ? activeId : sectionIds[0];
|
|
28863
|
-
}
|
|
28864
|
-
|
|
28865
28910
|
// src/layouts/Workflow/WorkflowPageLayout.tsx
|
|
28866
28911
|
var import_react165 = require("react");
|
|
28867
28912
|
|
|
@@ -28958,7 +29003,7 @@ function WorkflowActions(props) {
|
|
|
28958
29003
|
// src/layouts/Workflow/WorkflowPageLayout.tsx
|
|
28959
29004
|
var import_runtime153 = require("@homebound/truss/runtime");
|
|
28960
29005
|
var import_jsx_runtime239 = require("react/jsx-runtime");
|
|
28961
|
-
var
|
|
29006
|
+
var __maybeInc35 = (inc) => {
|
|
28962
29007
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
28963
29008
|
};
|
|
28964
29009
|
var mobileFooterHeightPx = 80;
|
|
@@ -29016,13 +29061,13 @@ function WorkflowPageLayout(props) {
|
|
|
29016
29061
|
position: "sticky",
|
|
29017
29062
|
left: "left0",
|
|
29018
29063
|
width: ["w_var", {
|
|
29019
|
-
"--width": (0, import_runtime153.maybeCssVar)(
|
|
29064
|
+
"--width": (0, import_runtime153.maybeCssVar)(__maybeInc35(headerWidth))
|
|
29020
29065
|
}],
|
|
29021
29066
|
zIndex: ["z_var", {
|
|
29022
29067
|
"--zIndex": (0, import_runtime153.maybeCssVar)(zIndices.pageStickyHeader)
|
|
29023
29068
|
}],
|
|
29024
29069
|
top: ["top_var", {
|
|
29025
|
-
"--top": (0, import_runtime153.maybeCssVar)(
|
|
29070
|
+
"--top": (0, import_runtime153.maybeCssVar)(__maybeInc35(outerTop))
|
|
29026
29071
|
}]
|
|
29027
29072
|
}), ...tid.header, children: /* @__PURE__ */ (0, import_jsx_runtime239.jsx)(WorkflowHeader, { title, documentTitleSuffix, breadcrumbs, rightSlot: isMobile ? void 0 : actions, stepperTabs }) }),
|
|
29028
29073
|
/* @__PURE__ */ (0, import_jsx_runtime239.jsx)("div", { ...(0, import_runtime153.trussProps)({
|
|
@@ -29052,7 +29097,7 @@ function WorkflowPageLayout(props) {
|
|
|
29052
29097
|
position: "fixed",
|
|
29053
29098
|
bottom: "bottom0",
|
|
29054
29099
|
width: ["w_var", {
|
|
29055
|
-
"--width": (0, import_runtime153.maybeCssVar)(
|
|
29100
|
+
"--width": (0, import_runtime153.maybeCssVar)(__maybeInc35(headerWidth))
|
|
29056
29101
|
}],
|
|
29057
29102
|
height: ["h_var", {
|
|
29058
29103
|
"--height": `${mobileFooterHeightPx}px`
|
|
@@ -29083,35 +29128,23 @@ function WorkflowPageLayout(props) {
|
|
|
29083
29128
|
// src/layouts/Workflow/FocusedFormLayout.tsx
|
|
29084
29129
|
var import_jsx_runtime240 = require("react/jsx-runtime");
|
|
29085
29130
|
function FocusedFormLayout(props) {
|
|
29086
|
-
const {
|
|
29087
|
-
onCancel,
|
|
29088
|
-
completeLabel,
|
|
29089
|
-
onComplete,
|
|
29090
|
-
onSaveAndExit,
|
|
29091
|
-
isValid,
|
|
29092
|
-
isDirty,
|
|
29093
|
-
withJumpLinks = true,
|
|
29094
|
-
aiMode,
|
|
29095
|
-
form,
|
|
29096
|
-
...headerProps
|
|
29097
|
-
} = props;
|
|
29131
|
+
const { onCancel, completeLabel, onComplete, onSaveAndExit, isValid, isDirty, aiMode, children, ...headerProps } = props;
|
|
29098
29132
|
const tid = useTestIds(props, "focusedFormLayout");
|
|
29099
|
-
|
|
29100
|
-
|
|
29101
|
-
|
|
29102
|
-
|
|
29103
|
-
|
|
29104
|
-
|
|
29105
|
-
|
|
29106
|
-
|
|
29107
|
-
|
|
29108
|
-
|
|
29109
|
-
|
|
29110
|
-
|
|
29111
|
-
|
|
29112
|
-
|
|
29113
|
-
|
|
29114
|
-
] }) });
|
|
29133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime240.jsx)(
|
|
29134
|
+
WorkflowPageLayout,
|
|
29135
|
+
{
|
|
29136
|
+
...tid,
|
|
29137
|
+
...headerProps,
|
|
29138
|
+
aiMode,
|
|
29139
|
+
isDirty,
|
|
29140
|
+
onCancel,
|
|
29141
|
+
onSaveAndExit,
|
|
29142
|
+
completeLabel,
|
|
29143
|
+
onComplete,
|
|
29144
|
+
primaryDisabled: !isValid,
|
|
29145
|
+
children
|
|
29146
|
+
}
|
|
29147
|
+
);
|
|
29115
29148
|
}
|
|
29116
29149
|
|
|
29117
29150
|
// src/layouts/Workflow/StepperLayout.tsx
|
|
@@ -29298,6 +29331,7 @@ function getInitialStep(steps, defaultStep) {
|
|
|
29298
29331
|
PinToggle,
|
|
29299
29332
|
PresentationProvider,
|
|
29300
29333
|
PreventBrowserScroll,
|
|
29334
|
+
ProposedValue,
|
|
29301
29335
|
RIGHT_SIDEBAR_MIN_WIDTH,
|
|
29302
29336
|
RadioGroupField,
|
|
29303
29337
|
ResponsiveGrid,
|