@homebound/beam 4.9.2 → 4.10.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.d.cts CHANGED
@@ -4892,7 +4892,7 @@ type ProposedValueProps = {
4892
4892
  * Renders an AI proposal as `original proposed`, with the original struck through.
4893
4893
  *
4894
4894
  * Only used on the read-only path, which renders no input. Editable fields instead style the input's
4895
- * own text and render the original as a sibling, so it survives focus. See `TextFieldBase`.
4895
+ * own text and render the original in a slot below the field. See `TextFieldBase`.
4896
4896
  */
4897
4897
  declare function ProposedValue$1(props: ProposedValueProps): React$1.JSX.Element;
4898
4898
 
@@ -7999,7 +7999,7 @@ type TextFieldBaseProps<X> = {
7999
7999
  unfocusedPlaceholder?: ReactNode;
8000
8000
  /** Value proposed by an AI model; puts the field in AI mode. Pre-formatted for display. */
8001
8001
  proposedValue?: string;
8002
- /** The formatted value on record, rendered struck through beside the input. Independent of `proposedValue`. */
8002
+ /** The formatted value on record, rendered struck through below the field. Independent of `proposedValue`. */
8003
8003
  originalValue?: string;
8004
8004
  /** Called on any edit the user makes, so the owning field can end AI mode. */
8005
8005
  onUserEdit?: VoidFunction;
package/dist/index.d.ts CHANGED
@@ -4892,7 +4892,7 @@ type ProposedValueProps = {
4892
4892
  * Renders an AI proposal as `original proposed`, with the original struck through.
4893
4893
  *
4894
4894
  * Only used on the read-only path, which renders no input. Editable fields instead style the input's
4895
- * own text and render the original as a sibling, so it survives focus. See `TextFieldBase`.
4895
+ * own text and render the original in a slot below the field. See `TextFieldBase`.
4896
4896
  */
4897
4897
  declare function ProposedValue$1(props: ProposedValueProps): React$1.JSX.Element;
4898
4898
 
@@ -7999,7 +7999,7 @@ type TextFieldBaseProps<X> = {
7999
7999
  unfocusedPlaceholder?: ReactNode;
8000
8000
  /** Value proposed by an AI model; puts the field in AI mode. Pre-formatted for display. */
8001
8001
  proposedValue?: string;
8002
- /** The formatted value on record, rendered struck through beside the input. Independent of `proposedValue`. */
8002
+ /** The formatted value on record, rendered struck through below the field. Independent of `proposedValue`. */
8003
8003
  originalValue?: string;
8004
8004
  /** Called on any edit the user makes, so the owning field can end AI mode. */
8005
8005
  onUserEdit?: VoidFunction;
package/dist/index.js CHANGED
@@ -10714,6 +10714,8 @@ function TextFieldBase(props) {
10714
10714
  const compactFieldHeight = 32;
10715
10715
  const showProposal = proposedValue !== void 0;
10716
10716
  const showOriginal = originalValue !== void 0 && originalValue !== "";
10717
+ const originalBelow = showOriginal && !inputProps.readOnly && !compound ? originalValue : void 0;
10718
+ const showErrorAndHelper = alwaysShowHelperText || !compound && !inputProps.disabled && !inputProps.readOnly;
10717
10719
  const [bgColor, hoverBgColor, disabledBgColor] = showProposal ? ["--b-ai-field-bg" /* AiFieldBg */, "rgba(237, 233, 254, 1)" /* Purple100 */, "--b-field-bg-disabled" /* FieldBgDisabled */] : inputStylePalette ? getInputStylePalette(inputStylePalette) : borderOnHover ? (
10718
10720
  // Use transparent backgrounds to blend with the table row hover color
10719
10721
  ["rgba(0,0,0,0)" /* Transparent */, "rgba(219, 234, 254, 1)" /* Blue100 */, "rgba(247, 245, 245, 1)" /* Gray100 */]
@@ -11039,21 +11041,6 @@ function TextFieldBase(props) {
11039
11041
  children: [
11040
11042
  labelStyle === "inline" && label && /* @__PURE__ */ jsx36(InlineLabel, { multiline, labelProps, label, ...tid.label }),
11041
11043
  startAdornment && /* @__PURE__ */ jsx36("span", { className: "df aic asc fs0 br4 pr1", children: startAdornment }),
11042
- showOriginal && /* @__PURE__ */ jsx36("span", { ...trussProps24({
11043
- display: "df",
11044
- alignItems: "aic",
11045
- flexShrink: "fs0",
11046
- paddingRight: "pr1",
11047
- textDecoration: "tdlt",
11048
- color: ["color_var", {
11049
- "--color": "var(--b-on-surface-muted)"
11050
- }],
11051
- ...multiline ? {
11052
- alignSelf: "asfs",
11053
- paddingTop: "pt_11px",
11054
- paddingBottom: "pb_11px"
11055
- } : {}
11056
- }), ...tid.originalValue, children: originalValue }),
11057
11044
  unfocusedPlaceholder && /* @__PURE__ */ jsx36(
11058
11045
  "div",
11059
11046
  {
@@ -11103,18 +11090,40 @@ function TextFieldBase(props) {
11103
11090
  }
11104
11091
  )
11105
11092
  }),
11106
- labelStyle !== "left" && (alwaysShowHelperText || !compound && !inputProps.disabled && !inputProps.readOnly) && /* @__PURE__ */ jsxs20(Fragment13, { children: [
11107
- errorMsg && !errorInTooltip && /* @__PURE__ */ jsx36(ErrorMessage, { id: errorMessageId, errorMsg, hidden: hideErrorMessage, ...tid.errorMsg }),
11108
- helperText && /* @__PURE__ */ jsx36(HelperText, { helperText, ...tid.helperText })
11093
+ labelStyle !== "left" && /* @__PURE__ */ jsxs20(Fragment13, { children: [
11094
+ originalBelow && /* @__PURE__ */ jsx36(OriginalValue, { originalValue: originalBelow, ...tid.originalValue }),
11095
+ showErrorAndHelper && /* @__PURE__ */ jsxs20(Fragment13, { children: [
11096
+ errorMsg && !errorInTooltip && /* @__PURE__ */ jsx36(ErrorMessage, { id: errorMessageId, errorMsg, hidden: hideErrorMessage, ...tid.errorMsg }),
11097
+ helperText && /* @__PURE__ */ jsx36(HelperText, { helperText, ...tid.helperText })
11098
+ ] })
11109
11099
  ] })
11110
11100
  ] }),
11111
- labelStyle === "left" && (alwaysShowHelperText || !compound && !inputProps.disabled && !inputProps.readOnly && (errorMsg && !errorInTooltip || helperText)) && // Reduces the margin between the error/helper text and input field
11101
+ labelStyle === "left" && (originalBelow || alwaysShowHelperText || !compound && !inputProps.disabled && !inputProps.readOnly && (errorMsg && !errorInTooltip || helperText)) && // Reduces the margin between the error/helper text and input field
11112
11102
  /* @__PURE__ */ jsxs20("div", { className: "mt_neg8px", children: [
11113
- errorMsg && !errorInTooltip && /* @__PURE__ */ jsx36(ErrorMessage, { id: errorMessageId, errorMsg, hidden: hideErrorMessage, ...tid.errorMsg }),
11114
- helperText && /* @__PURE__ */ jsx36(HelperText, { helperText, ...tid.helperText })
11103
+ originalBelow && /* @__PURE__ */ jsx36(OriginalValue, { originalValue: originalBelow, ...tid.originalValue }),
11104
+ showErrorAndHelper && /* @__PURE__ */ jsxs20(Fragment13, { children: [
11105
+ errorMsg && !errorInTooltip && /* @__PURE__ */ jsx36(ErrorMessage, { id: errorMessageId, errorMsg, hidden: hideErrorMessage, ...tid.errorMsg }),
11106
+ helperText && /* @__PURE__ */ jsx36(HelperText, { helperText, ...tid.helperText })
11107
+ ] })
11115
11108
  ] })
11116
11109
  ] });
11117
11110
  }
11111
+ function OriginalValue(props) {
11112
+ const {
11113
+ originalValue,
11114
+ ...others
11115
+ } = props;
11116
+ return /* @__PURE__ */ jsx36("div", { ...trussProps24({
11117
+ color: ["color_var", {
11118
+ "--color": "var(--b-text-helper)"
11119
+ }],
11120
+ fontWeight: "fw4",
11121
+ fontSize: "fz_12px",
11122
+ lineHeight: "lh_16px",
11123
+ marginTop: "mt_4px",
11124
+ textDecoration: "tdlt"
11125
+ }), ...others, children: originalValue });
11126
+ }
11118
11127
  function getInputStylePalette(inputStylePalette) {
11119
11128
  switch (inputStylePalette) {
11120
11129
  case "success":