@homebound/beam 3.103.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 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 import_runtime21 = require("@homebound/truss/runtime");
8681
- var import_jsx_runtime27 = require("react/jsx-runtime");
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, import_jsx_runtime27.jsx)(Cell, { ...(0, import_runtime21.mergeProps)(classNames, void 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, import_jsx_runtime27.jsx)(Cell, { ...(0, import_runtime21.mergeProps)(classNames, void 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, import_jsx_runtime27.jsx)("td", { ...(0, import_runtime21.mergeProps)(classNames, void 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, import_jsx_runtime27.jsx)(import_react_router_dom2.Link, { to, ...(0, import_runtime21.mergeProps)(navLink, void 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, import_jsx_runtime27.jsx)(import_react_router_dom2.Link, { to, ...(0, import_runtime21.mergeProps)(`${navLink} ${classNames}`, void 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, import_jsx_runtime27.jsx)(Cell, { ...(0, import_runtime21.mergeProps)(classNames, void 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 import_runtime22 = require("@homebound/truss/runtime");
8735
- var import_jsx_runtime28 = require("react/jsx-runtime");
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, import_jsx_runtime28.jsxs)(import_jsx_runtime28.Fragment, { children: [
8899
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { ref: handleRef, onMouseDown: handleMouseDown, onMouseEnter: () => setIsHovering(true), onMouseLeave: () => !isDragging && setIsHovering(false), ...(0, import_runtime22.trussProps)({
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, import_jsx_runtime28.jsx)("div", { ...(0, import_runtime22.trussProps)({
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, import_runtime22.maybeCssVar)(zIndices.dragHandle)
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 import_runtime23 = require("@homebound/truss/runtime");
8943
- var import_jsx_runtime29 = require("react/jsx-runtime");
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, import_jsx_runtime29.jsx)(CellTag, { ...(0, import_runtime23.trussProps)({
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, import_runtime23.maybeCssVar)(__maybeInc5(`calc(${columnSizes.join(" + ")})`))
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, import_jsx_runtime29.jsxs)("div", { className: "df aic gap_12px", children: [
8977
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "w_38px df jcc", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CollapseToggle, { row, compact: true }) }),
8978
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "df aic gap1", children: [
8979
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon, { icon: "infoCircle", inc: 2 }),
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 import_runtime24 = require("@homebound/truss/runtime");
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, import_runtime24.maybeCssVar)(insetSeparator)
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, import_runtime24.maybeCssVar)(insetSeparator)
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, import_runtime24.maybeCssVar)(insetSeparatorCorner)
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, import_runtime24.maybeCssVar)(alignItems)
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, import_runtime24.maybeCssVar)(insetSeparator)
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, import_runtime24.maybeCssVar)("rgba(239, 246, 255, 1)" /* Blue50 */)
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 import_runtime25 = require("@homebound/truss/runtime");
9461
- var import_jsx_runtime30 = require("react/jsx-runtime");
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, import_jsx_runtime30.jsx)(RowTag, { ...(0, import_runtime25.mergeProps)(`${BorderHoverParent}${showRowHoverColor ? ` ${RowHoverClass}` : ""}`, void 0, rowCss), ...others, "data-gridrow": true, ...getCount(row.id), ref, children: isKeptGroupRow ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(KeptGroupRow, { as, style, columnSizes, row, colSpan: columns.length, isLastBodyRow }) : columns.map((column2, columnIndex) => {
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, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, {});
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, import_runtime25.maybeCssVar)(zIndices.tableStickyColumn)
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, import_runtime25.maybeCssVar)(__maybeInc6(columnIndex === 0 ? `var(${beamSideNavLayoutWidthVar}, 0px)` : `calc(var(${beamSideNavLayoutWidthVar}, 0px) + (${columnSizes.slice(0, columnIndex).join(" + ")}))`))
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, import_runtime25.maybeCssVar)(__maybeInc6(columnIndex + 1 === columnSizes.length ? `var(${beamRightPaneWidthVar}, 0px)` : `calc(var(${beamRightPaneWidthVar}, 0px) + (${columnSizes.slice(columnIndex + 1 - columnSizes.length).join(" + ")}))`))
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, import_runtime25.maybeCssVar)(`inset 0 -1px 0 ${maybeCssVar("--b-surface-separator" /* SurfaceSeparator */)}`)
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, import_runtime25.maybeCssVar)(`inset -1px -1px 0 ${maybeCssVar("--b-surface-separator" /* SurfaceSeparator */)}`)
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, import_runtime25.maybeCssVar)(style.activeBgColor ?? "rgba(239, 246, 255, 1)" /* Blue50 */)
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, import_runtime25.maybeCssVar)(`inset 0 0 0 1px ${maybeCssVar("--b-focus-ring-inset" /* FocusRingInset */)}`)
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, import_runtime25.maybeCssVar)(__maybeInc6(`calc(${columnSizes.slice(columnIndex, columnIndex + currentColspan).join(" + ")}${applyFirstContentColumnStyles && levelIndent ? ` - ${levelIndent}px` : ""})`))
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, import_runtime25.trussProps)({
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, import_jsx_runtime30.jsxs)(import_jsx_runtime30.Fragment, { children: [
9853
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
9825
9854
  cellElement.props.children,
9826
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ColumnResizeHandle, { columnId: column2.id, columnIndex, currentWidth: currentWidthPx, minWidth: minWidthPx, onResize: (colId, width2) => setResizedWidth?.(colId, width2, columnIndex), calculatePreviewWidth })
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, import_jsx_runtime30.jsx)(
9862
+ return row.draggable ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
9834
9863
  "div",
9835
9864
  {
9836
- ...(0, import_runtime25.trussProps)(containerCss),
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, import_jsx_runtime30.jsx)(import_jsx_runtime30.Fragment, { children: RowContent() });
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 import_runtime26 = require("@homebound/truss/runtime");
9876
- var import_jsx_runtime31 = require("react/jsx-runtime");
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, import_jsx_runtime31.jsxs)("div", { ...(0, import_runtime26.trussProps)({
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, import_jsx_runtime31.jsx)("span", { className: "fs0", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon, { icon: "error" }) }),
9895
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { id, className: "ml1 mt_2px", ...others, children: errorMsg })
9896
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, {});
9897
- return hidden ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react_aria7.VisuallyHidden, { children: errorEl }) : errorEl;
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": title,
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": "var(--b-field-border-default)"
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: title, loading: "lazy", ...tid.image }),
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": "var(--b-surface-subtle)"
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.`);
@@ -29319,6 +29331,7 @@ function getInitialStep(steps, defaultStep) {
29319
29331
  PinToggle,
29320
29332
  PresentationProvider,
29321
29333
  PreventBrowserScroll,
29334
+ ProposedValue,
29322
29335
  RIGHT_SIDEBAR_MIN_WIDTH,
29323
29336
  RadioGroupField,
29324
29337
  ResponsiveGrid,