@homebound/beam 4.16.0 → 4.17.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
@@ -6414,6 +6414,8 @@ interface BeamTextFieldProps<X> extends BeamFocusableProps, PresentationFieldPro
6414
6414
  helperText?: string | ReactNode;
6415
6415
  /** Input label */
6416
6416
  label: string;
6417
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
6418
+ tooltip?: ReactNode;
6417
6419
  /** Marks the field as required or optional, the default is assumed ambiguous/unknown. */
6418
6420
  required?: boolean;
6419
6421
  value: string | undefined;
@@ -8424,6 +8426,8 @@ type CheckboxGroupItemOption = {
8424
8426
  };
8425
8427
  type CheckboxGroupProps = {
8426
8428
  label: string;
8429
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8430
+ tooltip?: ReactNode;
8427
8431
  required?: boolean;
8428
8432
  /** Called when a checkbox is selected or deselected */
8429
8433
  onChange: (values: string[]) => void;
@@ -8480,7 +8484,6 @@ type TextFieldBaseProps<X> = {
8480
8484
  startAdornment?: ReactNode;
8481
8485
  clearable?: boolean;
8482
8486
  textAreaMinHeight?: number;
8483
- tooltip?: ReactNode;
8484
8487
  hideErrorMessage?: boolean;
8485
8488
  alwaysShowHelperText?: boolean;
8486
8489
  unfocusedPlaceholder?: ReactNode;
@@ -8494,9 +8497,9 @@ type TextFieldBaseProps<X> = {
8494
8497
  onUserBlur?: VoidFunction;
8495
8498
  /** Allow focusing without selecting, i.e. to let the user keep typing after we've pre-filled text + called focus, like the Add New component. */
8496
8499
  selectOnFocus?: boolean;
8497
- } & Pick<BeamTextFieldProps<X>, "label" | "required" | "errorMsg" | "errorInTooltip" | "onBlur" | "onFocus" | "helperText" | "labelStyle" | "placeholder" | "compact" | "borderless" | "borderOnHover" | "visuallyDisabled" | "fullWidth" | "xss" | "inputStylePalette"> & Partial<Pick<BeamTextFieldProps<X>, "onChange">>;
8500
+ } & Pick<BeamTextFieldProps<X>, "label" | "tooltip" | "required" | "errorMsg" | "errorInTooltip" | "onBlur" | "onFocus" | "helperText" | "labelStyle" | "placeholder" | "compact" | "borderless" | "borderOnHover" | "visuallyDisabled" | "fullWidth" | "xss" | "inputStylePalette"> & Partial<Pick<BeamTextFieldProps<X>, "onChange">>;
8498
8501
 
8499
- type DateFieldCommonProps = Pick<TextFieldBaseProps<Properties>, "borderless" | "visuallyDisabled" | "labelStyle" | "compact" | "fullWidth"> & {
8502
+ type DateFieldCommonProps = Pick<TextFieldBaseProps<Properties>, "borderless" | "visuallyDisabled" | "labelStyle" | "compact" | "fullWidth" | "tooltip"> & {
8500
8503
  label: string;
8501
8504
  /** Called when the component loses focus */
8502
8505
  onBlur?: () => void;
@@ -8596,6 +8599,8 @@ type ComboBoxBaseProps<O, V extends Value> = {
8596
8599
  fieldDecoration?: (opt: O) => ReactNode;
8597
8600
  /** Sets the form field label. */
8598
8601
  label: string;
8602
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8603
+ tooltip?: ReactNode;
8599
8604
  readOnly?: boolean | ReactNode;
8600
8605
  onBlur?: () => void;
8601
8606
  onFocus?: () => void;
@@ -8710,6 +8715,8 @@ type SelectCardListGroupItemOption<V extends Value> = SelectCardGroupItemOptionB
8710
8715
  type SelectCardGroupItemOption<V extends Value> = SelectCardGridGroupItemOption<V> | SelectCardListGroupItemOption<V>;
8711
8716
  type SelectCardGroupFieldPropsBase = {
8712
8717
  label: string;
8718
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8719
+ tooltip?: ReactNode;
8713
8720
  errorMsg?: string;
8714
8721
  helperText?: string | ReactNode;
8715
8722
  disabled?: boolean;
@@ -8787,6 +8794,8 @@ declare function BoundMultiSelectField<O extends HasIdAndName<V>, V extends Valu
8787
8794
  type NumberFieldType = "cents" | "dollars" | "percent" | "basisPoints" | "days" | "mills";
8788
8795
  interface NumberFieldProps extends Pick<PresentationFieldProps, "labelStyle" | "fullWidth"> {
8789
8796
  label: string;
8797
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8798
+ tooltip?: ReactNode;
8790
8799
  /** If set, the label will be defined as 'aria-label` on the input element */
8791
8800
  type?: NumberFieldType;
8792
8801
  value: number | undefined;
@@ -8847,6 +8856,8 @@ type RadioGroupFieldLayout = "vertical" | "horizontal";
8847
8856
  type RadioGroupFieldProps<K extends string> = {
8848
8857
  /** The label for the choice itself, i.e. "Favorite Cheese". */
8849
8858
  label: string;
8859
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8860
+ tooltip?: ReactNode;
8850
8861
  /** The currently selected option value (i.e. an id). */
8851
8862
  value: K | undefined;
8852
8863
  /** Called when an option is selected. We don't support unselecting. */
@@ -8892,6 +8903,8 @@ type RichTextFieldProps = {
8892
8903
  */
8893
8904
  mergeTags?: string[];
8894
8905
  label?: string;
8906
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8907
+ tooltip?: ReactNode;
8895
8908
  autoFocus?: boolean;
8896
8909
  placeholder?: string;
8897
8910
  /** Called when the component loses focus */
@@ -9095,6 +9108,8 @@ type ToggleChipItemProps = {
9095
9108
  };
9096
9109
  interface ToggleChipGroupProps extends Pick<PresentationFieldProps, "labelStyle"> {
9097
9110
  label: string;
9111
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
9112
+ tooltip?: ReactNode;
9098
9113
  options: ToggleChipItemProps[];
9099
9114
  values: string[];
9100
9115
  readonly?: boolean;
@@ -9156,6 +9171,8 @@ type TreeSelectFieldProps<O, V extends Value> = {
9156
9171
  fieldDecoration?: (opt: O) => ReactNode;
9157
9172
  /** Sets the form field label. */
9158
9173
  label: string;
9174
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
9175
+ tooltip?: ReactNode;
9159
9176
  readOnly?: boolean | ReactNode;
9160
9177
  onBlur?: () => void;
9161
9178
  onFocus?: () => void;
package/dist/index.d.ts CHANGED
@@ -6414,6 +6414,8 @@ interface BeamTextFieldProps<X> extends BeamFocusableProps, PresentationFieldPro
6414
6414
  helperText?: string | ReactNode;
6415
6415
  /** Input label */
6416
6416
  label: string;
6417
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
6418
+ tooltip?: ReactNode;
6417
6419
  /** Marks the field as required or optional, the default is assumed ambiguous/unknown. */
6418
6420
  required?: boolean;
6419
6421
  value: string | undefined;
@@ -8424,6 +8426,8 @@ type CheckboxGroupItemOption = {
8424
8426
  };
8425
8427
  type CheckboxGroupProps = {
8426
8428
  label: string;
8429
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8430
+ tooltip?: ReactNode;
8427
8431
  required?: boolean;
8428
8432
  /** Called when a checkbox is selected or deselected */
8429
8433
  onChange: (values: string[]) => void;
@@ -8480,7 +8484,6 @@ type TextFieldBaseProps<X> = {
8480
8484
  startAdornment?: ReactNode;
8481
8485
  clearable?: boolean;
8482
8486
  textAreaMinHeight?: number;
8483
- tooltip?: ReactNode;
8484
8487
  hideErrorMessage?: boolean;
8485
8488
  alwaysShowHelperText?: boolean;
8486
8489
  unfocusedPlaceholder?: ReactNode;
@@ -8494,9 +8497,9 @@ type TextFieldBaseProps<X> = {
8494
8497
  onUserBlur?: VoidFunction;
8495
8498
  /** Allow focusing without selecting, i.e. to let the user keep typing after we've pre-filled text + called focus, like the Add New component. */
8496
8499
  selectOnFocus?: boolean;
8497
- } & Pick<BeamTextFieldProps<X>, "label" | "required" | "errorMsg" | "errorInTooltip" | "onBlur" | "onFocus" | "helperText" | "labelStyle" | "placeholder" | "compact" | "borderless" | "borderOnHover" | "visuallyDisabled" | "fullWidth" | "xss" | "inputStylePalette"> & Partial<Pick<BeamTextFieldProps<X>, "onChange">>;
8500
+ } & Pick<BeamTextFieldProps<X>, "label" | "tooltip" | "required" | "errorMsg" | "errorInTooltip" | "onBlur" | "onFocus" | "helperText" | "labelStyle" | "placeholder" | "compact" | "borderless" | "borderOnHover" | "visuallyDisabled" | "fullWidth" | "xss" | "inputStylePalette"> & Partial<Pick<BeamTextFieldProps<X>, "onChange">>;
8498
8501
 
8499
- type DateFieldCommonProps = Pick<TextFieldBaseProps<Properties>, "borderless" | "visuallyDisabled" | "labelStyle" | "compact" | "fullWidth"> & {
8502
+ type DateFieldCommonProps = Pick<TextFieldBaseProps<Properties>, "borderless" | "visuallyDisabled" | "labelStyle" | "compact" | "fullWidth" | "tooltip"> & {
8500
8503
  label: string;
8501
8504
  /** Called when the component loses focus */
8502
8505
  onBlur?: () => void;
@@ -8596,6 +8599,8 @@ type ComboBoxBaseProps<O, V extends Value> = {
8596
8599
  fieldDecoration?: (opt: O) => ReactNode;
8597
8600
  /** Sets the form field label. */
8598
8601
  label: string;
8602
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8603
+ tooltip?: ReactNode;
8599
8604
  readOnly?: boolean | ReactNode;
8600
8605
  onBlur?: () => void;
8601
8606
  onFocus?: () => void;
@@ -8710,6 +8715,8 @@ type SelectCardListGroupItemOption<V extends Value> = SelectCardGroupItemOptionB
8710
8715
  type SelectCardGroupItemOption<V extends Value> = SelectCardGridGroupItemOption<V> | SelectCardListGroupItemOption<V>;
8711
8716
  type SelectCardGroupFieldPropsBase = {
8712
8717
  label: string;
8718
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8719
+ tooltip?: ReactNode;
8713
8720
  errorMsg?: string;
8714
8721
  helperText?: string | ReactNode;
8715
8722
  disabled?: boolean;
@@ -8787,6 +8794,8 @@ declare function BoundMultiSelectField<O extends HasIdAndName<V>, V extends Valu
8787
8794
  type NumberFieldType = "cents" | "dollars" | "percent" | "basisPoints" | "days" | "mills";
8788
8795
  interface NumberFieldProps extends Pick<PresentationFieldProps, "labelStyle" | "fullWidth"> {
8789
8796
  label: string;
8797
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8798
+ tooltip?: ReactNode;
8790
8799
  /** If set, the label will be defined as 'aria-label` on the input element */
8791
8800
  type?: NumberFieldType;
8792
8801
  value: number | undefined;
@@ -8847,6 +8856,8 @@ type RadioGroupFieldLayout = "vertical" | "horizontal";
8847
8856
  type RadioGroupFieldProps<K extends string> = {
8848
8857
  /** The label for the choice itself, i.e. "Favorite Cheese". */
8849
8858
  label: string;
8859
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8860
+ tooltip?: ReactNode;
8850
8861
  /** The currently selected option value (i.e. an id). */
8851
8862
  value: K | undefined;
8852
8863
  /** Called when an option is selected. We don't support unselecting. */
@@ -8892,6 +8903,8 @@ type RichTextFieldProps = {
8892
8903
  */
8893
8904
  mergeTags?: string[];
8894
8905
  label?: string;
8906
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
8907
+ tooltip?: ReactNode;
8895
8908
  autoFocus?: boolean;
8896
8909
  placeholder?: string;
8897
8910
  /** Called when the component loses focus */
@@ -9095,6 +9108,8 @@ type ToggleChipItemProps = {
9095
9108
  };
9096
9109
  interface ToggleChipGroupProps extends Pick<PresentationFieldProps, "labelStyle"> {
9097
9110
  label: string;
9111
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
9112
+ tooltip?: ReactNode;
9098
9113
  options: ToggleChipItemProps[];
9099
9114
  values: string[];
9100
9115
  readonly?: boolean;
@@ -9156,6 +9171,8 @@ type TreeSelectFieldProps<O, V extends Value> = {
9156
9171
  fieldDecoration?: (opt: O) => ReactNode;
9157
9172
  /** Sets the form field label. */
9158
9173
  label: string;
9174
+ /** Adds tooltip for the field, shown via an info icon beside the label. */
9175
+ tooltip?: ReactNode;
9159
9176
  readOnly?: boolean | ReactNode;
9160
9177
  onBlur?: () => void;
9161
9178
  onFocus?: () => void;
package/dist/index.js CHANGED
@@ -6312,6 +6312,22 @@ function shallowEqual(objA, objB) {
6312
6312
  if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
6313
6313
  return false;
6314
6314
  }
6315
+ if (objA instanceof Map || objB instanceof Map) {
6316
+ if (!(objA instanceof Map && objB instanceof Map) || objA.size !== objB.size) return false;
6317
+ for (const [key, value] of objA) {
6318
+ if (!objB.has(key) || !Object.is(value, objB.get(key))) return false;
6319
+ }
6320
+ return true;
6321
+ }
6322
+ if (objA instanceof Set || objB instanceof Set) {
6323
+ if (!(objA instanceof Set && objB instanceof Set) || objA.size !== objB.size) return false;
6324
+ for (const value of objA) {
6325
+ if (!objB.has(value)) return false;
6326
+ }
6327
+ return true;
6328
+ }
6329
+ if (Array.isArray(objA) !== Array.isArray(objB)) return false;
6330
+ if (!Array.isArray(objA) && (!isPlainObject(objA) || !isPlainObject(objB))) return false;
6315
6331
  const keysA = Object.keys(objA);
6316
6332
  const keysB = Object.keys(objB);
6317
6333
  if (keysA.length !== keysB.length) {
@@ -6319,12 +6335,16 @@ function shallowEqual(objA, objB) {
6319
6335
  }
6320
6336
  for (let i = 0; i < keysA.length; i++) {
6321
6337
  const currentKey = keysA[i];
6322
- if (!objB.hasOwnProperty(currentKey) || !Object.is(objA[currentKey], objB[currentKey])) {
6338
+ if (!Object.prototype.hasOwnProperty.call(objB, currentKey) || !Object.is(objA[currentKey], objB[currentKey])) {
6323
6339
  return false;
6324
6340
  }
6325
6341
  }
6326
6342
  return true;
6327
6343
  }
6344
+ function isPlainObject(value) {
6345
+ const prototype = Object.getPrototypeOf(value);
6346
+ return prototype === Object.prototype || prototype === null;
6347
+ }
6328
6348
 
6329
6349
  // src/hooks/useComputed.ts
6330
6350
  function useComputed(fn, deps) {
@@ -11230,6 +11250,7 @@ function TextFieldBase(props) {
11230
11250
  } = fieldProps ?? {};
11231
11251
  const {
11232
11252
  label,
11253
+ tooltip,
11233
11254
  required,
11234
11255
  labelProps,
11235
11256
  inputProps,
@@ -11251,7 +11272,6 @@ function TextFieldBase(props) {
11251
11272
  borderOnHover = fieldProps?.borderOnHover ?? false,
11252
11273
  textAreaMinHeight = 96,
11253
11274
  clearable = false,
11254
- tooltip,
11255
11275
  visuallyDisabled = fieldProps?.visuallyDisabled ?? true,
11256
11276
  errorInTooltip = fieldProps?.errorInTooltip ?? false,
11257
11277
  hideErrorMessage = false,
@@ -11272,6 +11292,9 @@ function TextFieldBase(props) {
11272
11292
  forceFocus = false,
11273
11293
  forceHover = false
11274
11294
  } = internalProps;
11295
+ const hasVisibleLabel = !!label && labelStyle !== "inline" && labelStyle !== "hidden" && !compound;
11296
+ const isInteractive = !inputProps.disabled && !inputProps.readOnly;
11297
+ const tooltipLocation = hasVisibleLabel ? "label" : !isInteractive ? "field" : void 0;
11275
11298
  const errorMessageId = `${inputProps.id}-error`;
11276
11299
  const labelSuffix = useLabelSuffix(required, inputProps.readOnly);
11277
11300
  const tid = useTestIds(props, defaultTestId(label));
@@ -11563,9 +11586,9 @@ function TextFieldBase(props) {
11563
11586
  };
11564
11587
  return /* @__PURE__ */ jsxs20(Fragment13, { children: [
11565
11588
  /* @__PURE__ */ jsxs20("div", { ...trussProps24(fieldStyles.container), ...groupProps, ...focusWithinProps, children: [
11566
- label && labelStyle !== "inline" && /* @__PURE__ */ jsx37(Label, { labelProps, hidden: labelStyle === "hidden" || compound, label, inline: labelStyle !== "above", suffix: labelSuffix, ...tid.label }),
11589
+ label && labelStyle !== "inline" && /* @__PURE__ */ jsx37(Label, { labelProps, hidden: labelStyle === "hidden" || compound, label, inline: labelStyle !== "above", suffix: labelSuffix, tooltip: tooltipLocation === "label" ? tooltip : void 0, ...tid.label }),
11567
11590
  maybeTooltip({
11568
- title: tooltip,
11591
+ title: tooltipLocation === "field" ? tooltip : void 0,
11569
11592
  placement: "top",
11570
11593
  children: inputProps.readOnly ? /* @__PURE__ */ jsxs20("div", { ...trussProps24({
11571
11594
  // Use input wrapper to get common styles, but then we need to override some
@@ -18804,7 +18827,7 @@ function TreeSelectFieldBase(props) {
18804
18827
  maxWidth: "maxw100"
18805
18828
  } : {}
18806
18829
  }), ref: comboBoxRef, children: [
18807
- /* @__PURE__ */ jsx105(ComboBoxInput, { ...otherProps, fullWidth, labelStyle, buttonProps, buttonRef: triggerRef, inputProps, inputRef, inputWrapRef, listBoxRef, state, labelProps, selectedOptions: fieldState.selectedOptions, selectedOptionsLabels: fieldState.selectedOptionsLabels, getOptionValue, getOptionLabel, borderless, tooltip: resolveTooltip(disabled, void 0, readOnly), resetField, nothingSelectedText, isTree: true }),
18830
+ /* @__PURE__ */ jsx105(ComboBoxInput, { ...otherProps, fullWidth, labelStyle, buttonProps, buttonRef: triggerRef, inputProps, inputRef, inputWrapRef, listBoxRef, state, labelProps, selectedOptions: fieldState.selectedOptions, selectedOptionsLabels: fieldState.selectedOptionsLabels, getOptionValue, getOptionLabel, borderless, tooltip: resolveTooltip(disabled, props.tooltip, readOnly), resetField, nothingSelectedText, isTree: true }),
18808
18831
  state.isOpen && /* @__PURE__ */ jsx105(
18809
18832
  Popover,
18810
18833
  {
@@ -19053,6 +19076,7 @@ function ComboBoxBase(props) {
19053
19076
  onAddNew,
19054
19077
  autoSort = true,
19055
19078
  hideChips = false,
19079
+ tooltip,
19056
19080
  ...otherProps
19057
19081
  } = props;
19058
19082
  const labelStyle = otherProps.labelStyle ?? fieldProps?.labelStyle ?? "above";
@@ -19285,7 +19309,7 @@ function ComboBoxBase(props) {
19285
19309
  maxWidth: "maxw100"
19286
19310
  } : {}
19287
19311
  }), ref: comboBoxRef, children: [
19288
- /* @__PURE__ */ jsx107(ComboBoxInput, { ...otherProps, inputStylePalette, fullWidth, buttonProps, buttonRef: triggerRef, inputProps, inputRef, inputWrapRef, listBoxRef, state, labelProps, selectedOptions, getOptionValue, getOptionLabel, nothingSelectedText, borderless, tooltip: resolveTooltip(disabled, void 0, readOnly), resetField, hideChips, ...proposalProps }),
19312
+ /* @__PURE__ */ jsx107(ComboBoxInput, { ...otherProps, inputStylePalette, fullWidth, buttonProps, buttonRef: triggerRef, inputProps, inputRef, inputWrapRef, listBoxRef, state, labelProps, selectedOptions, getOptionValue, getOptionLabel, nothingSelectedText, borderless, tooltip: resolveTooltip(disabled, tooltip, readOnly), resetField, hideChips, ...proposalProps }),
19289
19313
  state.isOpen && /* @__PURE__ */ jsx107(
19290
19314
  Popover,
19291
19315
  {
@@ -19959,6 +19983,7 @@ import { jsx as jsx116, jsxs as jsxs71 } from "react/jsx-runtime";
19959
19983
  function LabeledGroupField(props) {
19960
19984
  const {
19961
19985
  label,
19986
+ tooltip,
19962
19987
  labelStyle,
19963
19988
  labelProps,
19964
19989
  groupProps,
@@ -19972,7 +19997,7 @@ function LabeledGroupField(props) {
19972
19997
  } = props;
19973
19998
  const isHiddenLabel = labelStyle === "hidden";
19974
19999
  const isLeftLabel = labelStyle === "left";
19975
- const labelElement = /* @__PURE__ */ jsx116(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, hidden: isHiddenLabel, inline: isLeftLabel });
20000
+ const labelElement = /* @__PURE__ */ jsx116(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, tooltip, hidden: isHiddenLabel, inline: isLeftLabel });
19976
20001
  return /* @__PURE__ */ jsxs71("div", { ...groupProps, ...trussProps77({
19977
20002
  width: "w100",
19978
20003
  ...isLeftLabel ? {
@@ -20000,6 +20025,7 @@ function CheckboxGroup(props) {
20000
20025
  const {
20001
20026
  options,
20002
20027
  label,
20028
+ tooltip,
20003
20029
  labelStyle = fieldProps?.labelStyle ?? "above",
20004
20030
  values,
20005
20031
  errorMsg,
@@ -20019,7 +20045,7 @@ function CheckboxGroup(props) {
20019
20045
  } = useCheckboxGroup(props, state);
20020
20046
  const tid = useTestIds(props, defaultTestId(label));
20021
20047
  const labelSuffix = useLabelSuffix(required, false);
20022
- return /* @__PURE__ */ jsx117(LabeledGroupField, { label, labelStyle, labelProps, groupProps, errorMsg, helperText, labelSuffix, onBlur, onFocus, tid, children: /* @__PURE__ */ jsx117("div", { ...trussProps78({
20048
+ return /* @__PURE__ */ jsx117(LabeledGroupField, { label, tooltip, labelStyle, labelProps, groupProps, errorMsg, helperText, labelSuffix, onBlur, onFocus, tid, children: /* @__PURE__ */ jsx117("div", { ...trussProps78({
20023
20049
  display: "dg",
20024
20050
  gridTemplateColumns: ["gtc_var", {
20025
20051
  "--gridTemplateColumns": maybeCssVar36(`repeat(${columns}, auto)`)
@@ -20250,6 +20276,7 @@ import { Fragment as Fragment29, jsx as jsx121, jsxs as jsxs72 } from "react/jsx
20250
20276
  function DateFieldBase(props) {
20251
20277
  const {
20252
20278
  label,
20279
+ tooltip,
20253
20280
  disabled,
20254
20281
  required,
20255
20282
  value,
@@ -20442,7 +20469,7 @@ function DateFieldBase(props) {
20442
20469
  },
20443
20470
  endAdornment: !iconLeft && EndFieldButtons,
20444
20471
  startAdornment: !hideCalendarIcon && iconLeft && calendarButton,
20445
- tooltip: resolveTooltip(disabled, void 0, readOnly),
20472
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
20446
20473
  ...others
20447
20474
  }
20448
20475
  ),
@@ -20657,6 +20684,7 @@ function MultiLineSelectField(props) {
20657
20684
  getOptionValue = (opt) => opt.id,
20658
20685
  getOptionLabel = (opt) => opt.name,
20659
20686
  labelStyle,
20687
+ tooltip,
20660
20688
  ...otherProps
20661
20689
  } = props;
20662
20690
  const tid = useTestIds(props, "");
@@ -20672,7 +20700,7 @@ function MultiLineSelectField(props) {
20672
20700
  ...labelStyle === "left" ? {
20673
20701
  width: "w50"
20674
20702
  } : {}
20675
- }), children: /* @__PURE__ */ jsx128(Label, { ...tid.label, label: props.label }) }),
20703
+ }), children: /* @__PURE__ */ jsx128(Label, { ...tid.label, label: props.label, tooltip }) }),
20676
20704
  /* @__PURE__ */ jsxs74("div", { ...trussProps81({
20677
20705
  ...labelStyle === "left" ? {
20678
20706
  width: "w50"
@@ -21248,6 +21276,7 @@ function MultiSelectCardGroup(props) {
21248
21276
  } = usePresentationContext();
21249
21277
  const {
21250
21278
  label,
21279
+ tooltip,
21251
21280
  labelStyle = fieldProps?.labelStyle ?? "above",
21252
21281
  values,
21253
21282
  options,
@@ -21282,7 +21311,7 @@ function MultiSelectCardGroup(props) {
21282
21311
  label,
21283
21312
  isDisabled
21284
21313
  }, state);
21285
- return /* @__PURE__ */ jsx135(LabeledGroupField, { label, labelStyle, labelProps, groupProps, errorMsg, helperText, tid, children: /* @__PURE__ */ jsx135("div", { ...trussProps86(getSelectCardOptionsCss({
21314
+ return /* @__PURE__ */ jsx135(LabeledGroupField, { label, tooltip, labelStyle, labelProps, groupProps, errorMsg, helperText, tid, children: /* @__PURE__ */ jsx135("div", { ...trussProps86(getSelectCardOptionsCss({
21286
21315
  view,
21287
21316
  hasDescription,
21288
21317
  layout,
@@ -21496,6 +21525,7 @@ function NumberField(props) {
21496
21525
  readOnly,
21497
21526
  type,
21498
21527
  label,
21528
+ tooltip,
21499
21529
  onBlur,
21500
21530
  onFocus,
21501
21531
  errorMsg,
@@ -21655,7 +21685,7 @@ function NumberField(props) {
21655
21685
  onFocus,
21656
21686
  errorMsg,
21657
21687
  helperText,
21658
- tooltip: resolveTooltip(disabled, void 0, readOnly),
21688
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
21659
21689
  ...proposalProps,
21660
21690
  ...otherProps
21661
21691
  }
@@ -21738,6 +21768,7 @@ function RadioGroupField(props) {
21738
21768
  errorMsg,
21739
21769
  helperText,
21740
21770
  layout = "vertical",
21771
+ tooltip,
21741
21772
  ...otherProps
21742
21773
  } = props;
21743
21774
  const name = useMemo34(() => `radio-group-${++nextNameId}`, []);
@@ -21771,7 +21802,7 @@ function RadioGroupField(props) {
21771
21802
  justifyContent: "jcsb"
21772
21803
  } : {}
21773
21804
  }), ...tid, children: [
21774
- /* @__PURE__ */ jsx143(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, hidden: labelStyle === "hidden" }),
21805
+ /* @__PURE__ */ jsx143(Label, { label, ...labelProps, ...tid.label, suffix: labelSuffix, tooltip, hidden: labelStyle === "hidden" }),
21775
21806
  /* @__PURE__ */ jsxs79("div", { ...radioGroupProps, children: [
21776
21807
  /* @__PURE__ */ jsx143("div", { ...trussProps88({
21777
21808
  display: "df",
@@ -22073,7 +22104,7 @@ function RichTextFieldImpl(props) {
22073
22104
  maxWidth: "maxw_550px"
22074
22105
  } : {}
22075
22106
  }), children: [
22076
- label && /* @__PURE__ */ jsx146(Label, { labelProps: {}, label }),
22107
+ label && /* @__PURE__ */ jsx146(Label, { labelProps: {}, label, tooltip: props.tooltip }),
22077
22108
  /* @__PURE__ */ jsxs80("div", { className: "beam-trix-editor", children: [
22078
22109
  /* @__PURE__ */ jsx146("input", { type: "hidden", id: `input-${id}`, value }),
22079
22110
  createElement4("trix-editor", {
@@ -22096,7 +22127,7 @@ function RichTextFieldImpl(props) {
22096
22127
  maxWidth: "maxw_550px"
22097
22128
  } : {}
22098
22129
  }), children: [
22099
- label && /* @__PURE__ */ jsx146(Label, { label }),
22130
+ label && /* @__PURE__ */ jsx146(Label, { label, tooltip: props.tooltip }),
22100
22131
  /* @__PURE__ */ jsx146("div", { ...trussProps89({
22101
22132
  minHeight: "mh_120px",
22102
22133
  backgroundColor: ["bgColor_var", {
@@ -22241,6 +22272,7 @@ function SelectCardGroup(props) {
22241
22272
  } = usePresentationContext();
22242
22273
  const {
22243
22274
  label,
22275
+ tooltip,
22244
22276
  labelStyle = fieldProps?.labelStyle ?? "above",
22245
22277
  value,
22246
22278
  options,
@@ -22269,7 +22301,7 @@ function SelectCardGroup(props) {
22269
22301
  label,
22270
22302
  isDisabled
22271
22303
  }, state);
22272
- return /* @__PURE__ */ jsx149(LabeledGroupField, { label, labelStyle, labelProps, groupProps: radioGroupProps, errorMsg, helperText, tid, children: /* @__PURE__ */ jsx149("div", { ...trussProps90(getSelectCardOptionsCss({
22304
+ return /* @__PURE__ */ jsx149(LabeledGroupField, { label, tooltip, labelStyle, labelProps, groupProps: radioGroupProps, errorMsg, helperText, tid, children: /* @__PURE__ */ jsx149("div", { ...trussProps90(getSelectCardOptionsCss({
22273
22305
  view,
22274
22306
  hasDescription,
22275
22307
  layout,
@@ -22604,6 +22636,7 @@ function TextAreaField(props) {
22604
22636
  preventNewLines,
22605
22637
  onEnter,
22606
22638
  maxLines,
22639
+ tooltip,
22607
22640
  ...otherProps
22608
22641
  } = props;
22609
22642
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
@@ -22643,7 +22676,7 @@ function TextAreaField(props) {
22643
22676
  inputRef,
22644
22677
  inputWrapRef,
22645
22678
  textAreaMinHeight: preventNewLines ? 0 : void 0,
22646
- tooltip: resolveTooltip(disabled, void 0, readOnly),
22679
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
22647
22680
  ...proposalProps
22648
22681
  }
22649
22682
  );
@@ -22711,6 +22744,7 @@ function TextField(props) {
22711
22744
  onEnter,
22712
22745
  onEscapeBubble,
22713
22746
  hideErrorMessage,
22747
+ tooltip,
22714
22748
  ...otherProps
22715
22749
  } = props;
22716
22750
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
@@ -22753,7 +22787,7 @@ function TextField(props) {
22753
22787
  labelProps,
22754
22788
  inputProps,
22755
22789
  inputRef,
22756
- tooltip: resolveTooltip(disabled, void 0, readOnly),
22790
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
22757
22791
  hideErrorMessage,
22758
22792
  ...proposalProps
22759
22793
  }
@@ -22823,6 +22857,7 @@ function ToggleChipGroup(props) {
22823
22857
  const {
22824
22858
  values,
22825
22859
  label,
22860
+ tooltip,
22826
22861
  labelStyle = fieldProps?.labelStyle ?? "above",
22827
22862
  options,
22828
22863
  required,
@@ -22851,7 +22886,7 @@ function ToggleChipGroup(props) {
22851
22886
  justifyContent: "jcsb"
22852
22887
  } : {}
22853
22888
  }), children: [
22854
- /* @__PURE__ */ jsx158(Label, { label, ...labelProps, hidden: labelStyle === "hidden", inline: labelStyle !== "above", suffix: labelSuffix }),
22889
+ /* @__PURE__ */ jsx158(Label, { label, ...labelProps, ...tid.label, hidden: labelStyle === "hidden", inline: labelStyle !== "above", suffix: labelSuffix, tooltip }),
22855
22890
  /* @__PURE__ */ jsx158("div", { ...trussProps92({
22856
22891
  display: "df",
22857
22892
  gap: "g_1",