@homebound/beam 4.16.1 → 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
@@ -11250,6 +11250,7 @@ function TextFieldBase(props) {
11250
11250
  } = fieldProps ?? {};
11251
11251
  const {
11252
11252
  label,
11253
+ tooltip,
11253
11254
  required,
11254
11255
  labelProps,
11255
11256
  inputProps,
@@ -11271,7 +11272,6 @@ function TextFieldBase(props) {
11271
11272
  borderOnHover = fieldProps?.borderOnHover ?? false,
11272
11273
  textAreaMinHeight = 96,
11273
11274
  clearable = false,
11274
- tooltip,
11275
11275
  visuallyDisabled = fieldProps?.visuallyDisabled ?? true,
11276
11276
  errorInTooltip = fieldProps?.errorInTooltip ?? false,
11277
11277
  hideErrorMessage = false,
@@ -11292,6 +11292,9 @@ function TextFieldBase(props) {
11292
11292
  forceFocus = false,
11293
11293
  forceHover = false
11294
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;
11295
11298
  const errorMessageId = `${inputProps.id}-error`;
11296
11299
  const labelSuffix = useLabelSuffix(required, inputProps.readOnly);
11297
11300
  const tid = useTestIds(props, defaultTestId(label));
@@ -11583,9 +11586,9 @@ function TextFieldBase(props) {
11583
11586
  };
11584
11587
  return /* @__PURE__ */ jsxs20(Fragment13, { children: [
11585
11588
  /* @__PURE__ */ jsxs20("div", { ...trussProps24(fieldStyles.container), ...groupProps, ...focusWithinProps, children: [
11586
- 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 }),
11587
11590
  maybeTooltip({
11588
- title: tooltip,
11591
+ title: tooltipLocation === "field" ? tooltip : void 0,
11589
11592
  placement: "top",
11590
11593
  children: inputProps.readOnly ? /* @__PURE__ */ jsxs20("div", { ...trussProps24({
11591
11594
  // Use input wrapper to get common styles, but then we need to override some
@@ -18824,7 +18827,7 @@ function TreeSelectFieldBase(props) {
18824
18827
  maxWidth: "maxw100"
18825
18828
  } : {}
18826
18829
  }), ref: comboBoxRef, children: [
18827
- /* @__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 }),
18828
18831
  state.isOpen && /* @__PURE__ */ jsx105(
18829
18832
  Popover,
18830
18833
  {
@@ -19073,6 +19076,7 @@ function ComboBoxBase(props) {
19073
19076
  onAddNew,
19074
19077
  autoSort = true,
19075
19078
  hideChips = false,
19079
+ tooltip,
19076
19080
  ...otherProps
19077
19081
  } = props;
19078
19082
  const labelStyle = otherProps.labelStyle ?? fieldProps?.labelStyle ?? "above";
@@ -19305,7 +19309,7 @@ function ComboBoxBase(props) {
19305
19309
  maxWidth: "maxw100"
19306
19310
  } : {}
19307
19311
  }), ref: comboBoxRef, children: [
19308
- /* @__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 }),
19309
19313
  state.isOpen && /* @__PURE__ */ jsx107(
19310
19314
  Popover,
19311
19315
  {
@@ -19979,6 +19983,7 @@ import { jsx as jsx116, jsxs as jsxs71 } from "react/jsx-runtime";
19979
19983
  function LabeledGroupField(props) {
19980
19984
  const {
19981
19985
  label,
19986
+ tooltip,
19982
19987
  labelStyle,
19983
19988
  labelProps,
19984
19989
  groupProps,
@@ -19992,7 +19997,7 @@ function LabeledGroupField(props) {
19992
19997
  } = props;
19993
19998
  const isHiddenLabel = labelStyle === "hidden";
19994
19999
  const isLeftLabel = labelStyle === "left";
19995
- 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 });
19996
20001
  return /* @__PURE__ */ jsxs71("div", { ...groupProps, ...trussProps77({
19997
20002
  width: "w100",
19998
20003
  ...isLeftLabel ? {
@@ -20020,6 +20025,7 @@ function CheckboxGroup(props) {
20020
20025
  const {
20021
20026
  options,
20022
20027
  label,
20028
+ tooltip,
20023
20029
  labelStyle = fieldProps?.labelStyle ?? "above",
20024
20030
  values,
20025
20031
  errorMsg,
@@ -20039,7 +20045,7 @@ function CheckboxGroup(props) {
20039
20045
  } = useCheckboxGroup(props, state);
20040
20046
  const tid = useTestIds(props, defaultTestId(label));
20041
20047
  const labelSuffix = useLabelSuffix(required, false);
20042
- 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({
20043
20049
  display: "dg",
20044
20050
  gridTemplateColumns: ["gtc_var", {
20045
20051
  "--gridTemplateColumns": maybeCssVar36(`repeat(${columns}, auto)`)
@@ -20270,6 +20276,7 @@ import { Fragment as Fragment29, jsx as jsx121, jsxs as jsxs72 } from "react/jsx
20270
20276
  function DateFieldBase(props) {
20271
20277
  const {
20272
20278
  label,
20279
+ tooltip,
20273
20280
  disabled,
20274
20281
  required,
20275
20282
  value,
@@ -20462,7 +20469,7 @@ function DateFieldBase(props) {
20462
20469
  },
20463
20470
  endAdornment: !iconLeft && EndFieldButtons,
20464
20471
  startAdornment: !hideCalendarIcon && iconLeft && calendarButton,
20465
- tooltip: resolveTooltip(disabled, void 0, readOnly),
20472
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
20466
20473
  ...others
20467
20474
  }
20468
20475
  ),
@@ -20677,6 +20684,7 @@ function MultiLineSelectField(props) {
20677
20684
  getOptionValue = (opt) => opt.id,
20678
20685
  getOptionLabel = (opt) => opt.name,
20679
20686
  labelStyle,
20687
+ tooltip,
20680
20688
  ...otherProps
20681
20689
  } = props;
20682
20690
  const tid = useTestIds(props, "");
@@ -20692,7 +20700,7 @@ function MultiLineSelectField(props) {
20692
20700
  ...labelStyle === "left" ? {
20693
20701
  width: "w50"
20694
20702
  } : {}
20695
- }), children: /* @__PURE__ */ jsx128(Label, { ...tid.label, label: props.label }) }),
20703
+ }), children: /* @__PURE__ */ jsx128(Label, { ...tid.label, label: props.label, tooltip }) }),
20696
20704
  /* @__PURE__ */ jsxs74("div", { ...trussProps81({
20697
20705
  ...labelStyle === "left" ? {
20698
20706
  width: "w50"
@@ -21268,6 +21276,7 @@ function MultiSelectCardGroup(props) {
21268
21276
  } = usePresentationContext();
21269
21277
  const {
21270
21278
  label,
21279
+ tooltip,
21271
21280
  labelStyle = fieldProps?.labelStyle ?? "above",
21272
21281
  values,
21273
21282
  options,
@@ -21302,7 +21311,7 @@ function MultiSelectCardGroup(props) {
21302
21311
  label,
21303
21312
  isDisabled
21304
21313
  }, state);
21305
- 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({
21306
21315
  view,
21307
21316
  hasDescription,
21308
21317
  layout,
@@ -21516,6 +21525,7 @@ function NumberField(props) {
21516
21525
  readOnly,
21517
21526
  type,
21518
21527
  label,
21528
+ tooltip,
21519
21529
  onBlur,
21520
21530
  onFocus,
21521
21531
  errorMsg,
@@ -21675,7 +21685,7 @@ function NumberField(props) {
21675
21685
  onFocus,
21676
21686
  errorMsg,
21677
21687
  helperText,
21678
- tooltip: resolveTooltip(disabled, void 0, readOnly),
21688
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
21679
21689
  ...proposalProps,
21680
21690
  ...otherProps
21681
21691
  }
@@ -21758,6 +21768,7 @@ function RadioGroupField(props) {
21758
21768
  errorMsg,
21759
21769
  helperText,
21760
21770
  layout = "vertical",
21771
+ tooltip,
21761
21772
  ...otherProps
21762
21773
  } = props;
21763
21774
  const name = useMemo34(() => `radio-group-${++nextNameId}`, []);
@@ -21791,7 +21802,7 @@ function RadioGroupField(props) {
21791
21802
  justifyContent: "jcsb"
21792
21803
  } : {}
21793
21804
  }), ...tid, children: [
21794
- /* @__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" }),
21795
21806
  /* @__PURE__ */ jsxs79("div", { ...radioGroupProps, children: [
21796
21807
  /* @__PURE__ */ jsx143("div", { ...trussProps88({
21797
21808
  display: "df",
@@ -22093,7 +22104,7 @@ function RichTextFieldImpl(props) {
22093
22104
  maxWidth: "maxw_550px"
22094
22105
  } : {}
22095
22106
  }), children: [
22096
- label && /* @__PURE__ */ jsx146(Label, { labelProps: {}, label }),
22107
+ label && /* @__PURE__ */ jsx146(Label, { labelProps: {}, label, tooltip: props.tooltip }),
22097
22108
  /* @__PURE__ */ jsxs80("div", { className: "beam-trix-editor", children: [
22098
22109
  /* @__PURE__ */ jsx146("input", { type: "hidden", id: `input-${id}`, value }),
22099
22110
  createElement4("trix-editor", {
@@ -22116,7 +22127,7 @@ function RichTextFieldImpl(props) {
22116
22127
  maxWidth: "maxw_550px"
22117
22128
  } : {}
22118
22129
  }), children: [
22119
- label && /* @__PURE__ */ jsx146(Label, { label }),
22130
+ label && /* @__PURE__ */ jsx146(Label, { label, tooltip: props.tooltip }),
22120
22131
  /* @__PURE__ */ jsx146("div", { ...trussProps89({
22121
22132
  minHeight: "mh_120px",
22122
22133
  backgroundColor: ["bgColor_var", {
@@ -22261,6 +22272,7 @@ function SelectCardGroup(props) {
22261
22272
  } = usePresentationContext();
22262
22273
  const {
22263
22274
  label,
22275
+ tooltip,
22264
22276
  labelStyle = fieldProps?.labelStyle ?? "above",
22265
22277
  value,
22266
22278
  options,
@@ -22289,7 +22301,7 @@ function SelectCardGroup(props) {
22289
22301
  label,
22290
22302
  isDisabled
22291
22303
  }, state);
22292
- 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({
22293
22305
  view,
22294
22306
  hasDescription,
22295
22307
  layout,
@@ -22624,6 +22636,7 @@ function TextAreaField(props) {
22624
22636
  preventNewLines,
22625
22637
  onEnter,
22626
22638
  maxLines,
22639
+ tooltip,
22627
22640
  ...otherProps
22628
22641
  } = props;
22629
22642
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
@@ -22663,7 +22676,7 @@ function TextAreaField(props) {
22663
22676
  inputRef,
22664
22677
  inputWrapRef,
22665
22678
  textAreaMinHeight: preventNewLines ? 0 : void 0,
22666
- tooltip: resolveTooltip(disabled, void 0, readOnly),
22679
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
22667
22680
  ...proposalProps
22668
22681
  }
22669
22682
  );
@@ -22731,6 +22744,7 @@ function TextField(props) {
22731
22744
  onEnter,
22732
22745
  onEscapeBubble,
22733
22746
  hideErrorMessage,
22747
+ tooltip,
22734
22748
  ...otherProps
22735
22749
  } = props;
22736
22750
  const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
@@ -22773,7 +22787,7 @@ function TextField(props) {
22773
22787
  labelProps,
22774
22788
  inputProps,
22775
22789
  inputRef,
22776
- tooltip: resolveTooltip(disabled, void 0, readOnly),
22790
+ tooltip: resolveTooltip(disabled, tooltip, readOnly),
22777
22791
  hideErrorMessage,
22778
22792
  ...proposalProps
22779
22793
  }
@@ -22843,6 +22857,7 @@ function ToggleChipGroup(props) {
22843
22857
  const {
22844
22858
  values,
22845
22859
  label,
22860
+ tooltip,
22846
22861
  labelStyle = fieldProps?.labelStyle ?? "above",
22847
22862
  options,
22848
22863
  required,
@@ -22871,7 +22886,7 @@ function ToggleChipGroup(props) {
22871
22886
  justifyContent: "jcsb"
22872
22887
  } : {}
22873
22888
  }), children: [
22874
- /* @__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 }),
22875
22890
  /* @__PURE__ */ jsx158("div", { ...trussProps92({
22876
22891
  display: "df",
22877
22892
  gap: "g_1",