@descope/web-components-ui 1.0.414-1 → 1.0.414-3

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.
Files changed (47) hide show
  1. package/dist/cjs/index.cjs.js +462 -91
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +487 -94
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1053.js +1 -1
  6. package/dist/umd/2755.js +1 -0
  7. package/dist/umd/4480.js +1 -0
  8. package/dist/umd/4619.js +1 -1
  9. package/dist/umd/6726.js +1 -1
  10. package/dist/umd/7212.js +1 -1
  11. package/dist/umd/7607.js +1 -1
  12. package/dist/umd/DescopeDev.js +1 -1
  13. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
  14. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
  15. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  16. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  17. package/dist/umd/descope-combo-box-index-js.js +7 -7
  18. package/dist/umd/descope-date-field-descope-calendar-index-js.js +1 -1
  19. package/dist/umd/descope-date-field-index-js.js +1 -1
  20. package/dist/umd/descope-email-field-index-js.js +4 -4
  21. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  22. package/dist/umd/descope-grid-index-js.js +1 -1
  23. package/dist/umd/descope-hybrid-field-index-js.js +3 -3
  24. package/dist/umd/descope-multi-select-combo-box-index-js.js +1 -1
  25. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  26. package/dist/umd/descope-new-password-index-js.js +1 -1
  27. package/dist/umd/descope-number-field-index-js.js +1 -1
  28. package/dist/umd/descope-passcode-index-js.js +1 -1
  29. package/dist/umd/descope-password-index-js.js +1 -1
  30. package/dist/umd/descope-radio-group-index-js.js +1 -1
  31. package/dist/umd/descope-recaptcha-index-js.js +1 -1
  32. package/dist/umd/descope-scopes-list-index-js.js +1 -1
  33. package/dist/umd/descope-security-questions-setup-index-js.js +1 -1
  34. package/dist/umd/descope-security-questions-verify-index-js.js +2 -2
  35. package/dist/umd/descope-text-area-index-js.js +1 -1
  36. package/dist/umd/descope-text-field-index-js.js +2 -2
  37. package/dist/umd/index.js +1 -1
  38. package/dist/umd/mapping-fields-descope-mappings-field-descope-mapping-item-index-js.js +1 -1
  39. package/dist/umd/mapping-fields-descope-mappings-field-descope-mappings-field-internal-index-js.js +1 -1
  40. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  41. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  42. package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
  43. package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
  44. package/dist/umd/phone-fields-descope-phone-input-box-field-descope-phone-input-box-internal-index-js.js +2 -2
  45. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +8 -8
  46. package/package.json +1 -1
  47. package/dist/umd/5459.js +0 -1
package/dist/index.esm.js CHANGED
@@ -640,6 +640,8 @@ const booleanAttributesList = [
640
640
  'opening',
641
641
  'closing',
642
642
  'has-no-options',
643
+ 'loading',
644
+ 'allow-custom-value',
643
645
  ];
644
646
 
645
647
  const isBooleanAttribute = (attr) => {
@@ -1196,7 +1198,7 @@ const proxyInputMixin =
1196
1198
  forwardProps(this, [this.inputElement, ...proxyTargets], prop);
1197
1199
  });
1198
1200
 
1199
- this.setSelectionRange = this.inputElement.setSelectionRange?.bind(this.inputElement);
1201
+ this.setSelectionRange = this.inputElement?.setSelectionRange?.bind(this.inputElement);
1200
1202
 
1201
1203
  forwardAttrs(this, this.inputElement, { includeAttrs: ['inputmode'] });
1202
1204
  });
@@ -2320,7 +2322,7 @@ const {
2320
2322
  checkboxLabel: checkboxLabel$1,
2321
2323
  requiredIndicator: requiredIndicator$b,
2322
2324
  helperText: helperText$a,
2323
- errorMessage: errorMessage$c,
2325
+ errorMessage: errorMessage$d,
2324
2326
  } = {
2325
2327
  host: { selector: () => ':host' },
2326
2328
  requiredIndicator: { selector: '[required] vaadin-checkbox [slot="label"]:not(:empty)::after' },
@@ -2339,7 +2341,7 @@ const CheckboxClass = compose(
2339
2341
  hostDirection: { ...host$n, property: 'direction' },
2340
2342
 
2341
2343
  fontSize: [host$n, checkboxElement, checkboxLabel$1],
2342
- fontFamily: [checkboxLabel$1, helperText$a, errorMessage$c],
2344
+ fontFamily: [checkboxLabel$1, helperText$a, errorMessage$d],
2343
2345
 
2344
2346
  labelTextColor: { ...checkboxLabel$1, property: 'color' },
2345
2347
  labelSpacing: { ...checkboxLabel$1, property: 'padding-inline-start' },
@@ -2347,7 +2349,12 @@ const CheckboxClass = compose(
2347
2349
  labelFontWeight: { ...checkboxLabel$1, property: 'font-weight' },
2348
2350
  labelRequiredIndicator: { ...requiredIndicator$b, property: 'content' },
2349
2351
 
2350
- errorMessageTextColor: { ...errorMessage$c, property: 'color' },
2352
+ errorMessageTextColor: { ...errorMessage$d, property: 'color' },
2353
+ errorMessageIcon: { ...errorMessage$d, property: 'background-image' },
2354
+ errorMessageIconSize: { ...errorMessage$d, property: 'background-size' },
2355
+ errorMessageIconPadding: { ...errorMessage$d, property: 'padding-inline-start' },
2356
+ errorMessageIconRepeat: { ...errorMessage$d, property: 'background-repeat' },
2357
+ errorMessageIconPosition: { ...errorMessage$d, property: 'background-position' },
2351
2358
 
2352
2359
  inputValueTextColor: { ...checkboxSurface, property: 'color' },
2353
2360
  inputBackgroundColor: { ...checkboxElement, property: 'background-color' },
@@ -2440,7 +2447,7 @@ const {
2440
2447
  checkboxLabel,
2441
2448
  requiredIndicator: requiredIndicator$a,
2442
2449
  helperText: helperText$9,
2443
- errorMessage: errorMessage$b,
2450
+ errorMessage: errorMessage$c,
2444
2451
  } = {
2445
2452
  host: { selector: () => ':host' },
2446
2453
  requiredIndicator: { selector: '[required] vaadin-checkbox [slot="label"]:not(:empty)::after' },
@@ -2459,7 +2466,7 @@ const SwitchToggleClass = compose(
2459
2466
  hostDirection: { ...host$m, property: 'direction' },
2460
2467
 
2461
2468
  fontSize: [component, checkboxLabel, checkboxLabel],
2462
- fontFamily: [checkboxLabel, helperText$9, errorMessage$b],
2469
+ fontFamily: [checkboxLabel, helperText$9, errorMessage$c],
2463
2470
 
2464
2471
  labelTextColor: { ...checkboxLabel, property: 'color' },
2465
2472
  labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },
@@ -2467,7 +2474,13 @@ const SwitchToggleClass = compose(
2467
2474
  labelFontWeight: { ...checkboxLabel, property: 'font-weight' },
2468
2475
  labelRequiredIndicator: { ...requiredIndicator$a, property: 'content' },
2469
2476
 
2470
- errorMessageTextColor: { ...errorMessage$b, property: 'color' },
2477
+ errorMessageTextColor: { ...errorMessage$c, property: 'color' },
2478
+
2479
+ errorMessageIcon: { ...errorMessage$c, property: 'background-image' },
2480
+ errorMessageIconSize: { ...errorMessage$c, property: 'background-size' },
2481
+ errorMessageIconPadding: { ...errorMessage$c, property: 'padding-inline-start' },
2482
+ errorMessageIconRepeat: { ...errorMessage$c, property: 'background-repeat' },
2483
+ errorMessageIconPosition: { ...errorMessage$c, property: 'background-position' },
2471
2484
 
2472
2485
  trackBorderWidth: { ...track, property: 'border-width' },
2473
2486
  trackBorderStyle: { ...track, property: 'border-style' },
@@ -2774,6 +2787,23 @@ const ComboBoxMixin = (superclass) =>
2774
2787
  this.renderItems();
2775
2788
  }
2776
2789
 
2790
+ set renderer(fn) {
2791
+ // fn takes (root, comboBox, model) as arguments
2792
+ this.baseElement.renderer = fn;
2793
+ }
2794
+
2795
+ get loading() {
2796
+ return this.getAttribute('loading') === 'true';
2797
+ }
2798
+
2799
+ set loading(val) {
2800
+ if (val) {
2801
+ this.setAttribute('loading', 'true');
2802
+ } else {
2803
+ this.removeAttribute('loading');
2804
+ }
2805
+ }
2806
+
2777
2807
  get data() {
2778
2808
  if (this.#data) return this.#data;
2779
2809
 
@@ -2817,14 +2847,20 @@ const ComboBoxMixin = (superclass) =>
2817
2847
  }
2818
2848
 
2819
2849
  renderItems() {
2820
- const template = this.getItemsTemplate();
2821
- if (template) this.innerHTML = template;
2850
+ if (this.#data || this.getAttribute('data')) {
2851
+ const template = this.getItemsTemplate();
2852
+ this.innerHTML = template;
2853
+ }
2822
2854
  }
2823
2855
 
2824
2856
  handleSelectedItem() {
2825
- const currentSelected = this.baseElement.selectedItem?.['data-id'];
2857
+ const { selectedItem } = this.baseElement;
2858
+ const currentSelected = selectedItem?.['data-id'];
2826
2859
 
2827
- this.baseElement.selectedItem = undefined;
2860
+ // If the selected item is still a child, there's no need to update the value
2861
+ if (selectedItem && Array.from(this.children).includes(selectedItem)) {
2862
+ return;
2863
+ }
2828
2864
 
2829
2865
  // if previously selected item ID exists in current children, set it as selected
2830
2866
  if (currentSelected) {
@@ -2857,7 +2893,7 @@ const ComboBoxMixin = (superclass) =>
2857
2893
  value: {
2858
2894
  ...valueDescriptor,
2859
2895
  set(val) {
2860
- if (!comboBox.baseElement.items?.length) {
2896
+ if (!comboBox.baseElement.items?.length && !comboBox.allowCustomValue) {
2861
2897
  return;
2862
2898
  }
2863
2899
 
@@ -2877,39 +2913,27 @@ const ComboBoxMixin = (superclass) =>
2877
2913
  // in order to avoid it, we are passing the children of this component
2878
2914
  // to the items & renderer props, so it will be used as the combo box items
2879
2915
  #onChildrenChange() {
2880
- const baseElement = this.shadowRoot.querySelector(this.baseSelector);
2881
2916
  const items = Array.from(this.children);
2882
2917
 
2883
2918
  // we want the data-name attribute to be accessible as an object attribute
2884
- if (items.length) {
2885
- items.forEach((node) => {
2886
- Object.defineProperty(node, 'data-name', {
2887
- value: node.getAttribute('data-name'),
2888
- configurable: true,
2889
- writable: true,
2890
- });
2891
- Object.defineProperty(node, 'data-id', {
2892
- value: node.getAttribute('data-id'),
2893
- configurable: true,
2894
- writable: true,
2895
- });
2919
+ items.forEach((node) => {
2920
+ Object.defineProperty(node, 'data-name', {
2921
+ value: node.getAttribute('data-name'),
2922
+ configurable: true,
2923
+ writable: true,
2896
2924
  });
2925
+ Object.defineProperty(node, 'data-id', {
2926
+ value: node.getAttribute('data-id'),
2927
+ configurable: true,
2928
+ writable: true,
2929
+ });
2930
+ });
2897
2931
 
2898
- baseElement.items = items;
2899
-
2900
- setTimeout(() => {
2901
- // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden
2902
- this.handleSelectedItem();
2903
- }, 0);
2904
- }
2905
-
2906
- // use vaadin combobox custom renderer to render options as HTML
2907
- // and not via default renderer, which renders only the data-name's value
2908
- // in its own HTML template
2909
- baseElement.renderer = (root, combo, model) => {
2910
- // eslint-disable-next-line no-param-reassign
2911
- root.innerHTML = model.item.outerHTML;
2912
- };
2932
+ this.baseElement.items = items;
2933
+ setTimeout(() => {
2934
+ // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden
2935
+ this.handleSelectedItem();
2936
+ }, 0);
2913
2937
  }
2914
2938
 
2915
2939
  // the default vaadin behavior is to attach the overlay to the body when opened
@@ -2924,6 +2948,16 @@ const ComboBoxMixin = (superclass) =>
2924
2948
  overlay._enterModalState = () => {};
2925
2949
  }
2926
2950
 
2951
+ #overrideRenderer() {
2952
+ // use vaadin combobox custom renderer to render options as HTML
2953
+ // and not via default renderer, which renders only the data-name's value
2954
+ // in its own HTML template
2955
+ this.baseElement.renderer = (root, combo, model) => {
2956
+ // eslint-disable-next-line no-param-reassign
2957
+ root.innerHTML = model.item.outerHTML;
2958
+ };
2959
+ }
2960
+
2927
2961
  init() {
2928
2962
  super.init?.();
2929
2963
 
@@ -2938,13 +2972,11 @@ const ComboBoxMixin = (superclass) =>
2938
2972
  };
2939
2973
 
2940
2974
  this.setComboBoxDescriptor();
2941
-
2942
2975
  this.#overrideOverlaySettings();
2976
+ this.#overrideRenderer();
2943
2977
 
2944
- this.renderItems();
2945
-
2978
+ // Set up observers - order matters here since renderItems can clear innerHTML
2946
2979
  observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });
2947
-
2948
2980
  observeChildren(this, this.#onChildrenChange.bind(this));
2949
2981
 
2950
2982
  this.setDefaultValue();
@@ -2977,16 +3009,38 @@ const ComboBoxMixin = (superclass) =>
2977
3009
  }
2978
3010
 
2979
3011
  setDefaultValue() {
2980
- this.value = this.defaultValue;
3012
+ if (this.defaultValue) {
3013
+ this.value = this.defaultValue;
3014
+ }
2981
3015
  }
2982
3016
 
2983
- set value(val) {
2984
- if (val) {
2985
- const child = this.baseElement.items?.find((item) => item['data-id'] === val);
3017
+ #getChildToSelect(val) {
3018
+ return this.baseElement.items?.find((item) => item['data-id'] === val);
3019
+ }
2986
3020
 
2987
- if (child) {
2988
- this.baseElement.selectedItem = child;
2989
- }
3021
+ #preventSelectedItemChangeEventIfNeeded(val, selectedChild) {
3022
+ // If the actual value didn't change, but the selected item did (the element changed),
3023
+ // we want to stop the event propagation since it's not a real change
3024
+ const shouldPreventItemChangeEvent =
3025
+ val === this.value && selectedChild !== this.baseElement.selectedItem;
3026
+ if (shouldPreventItemChangeEvent) {
3027
+ this.baseElement.addEventListener(
3028
+ 'selected-item-changed',
3029
+ (e) => {
3030
+ e.stopImmediatePropagation();
3031
+ },
3032
+ { once: true, capture: true }
3033
+ );
3034
+ }
3035
+ }
3036
+
3037
+ set value(val) {
3038
+ const selectedChild = this.#getChildToSelect(val);
3039
+ this.#preventSelectedItemChangeEventIfNeeded(val, selectedChild);
3040
+ if (val && selectedChild) {
3041
+ this.baseElement.selectedItem = selectedChild;
3042
+ } else if (!selectedChild && this.allowCustomValue) {
3043
+ this.baseElement.value = val;
2990
3044
  } else {
2991
3045
  this.baseElement.selectedItem = undefined;
2992
3046
  }
@@ -3013,7 +3067,7 @@ const {
3013
3067
  label: label$9,
3014
3068
  requiredIndicator: requiredIndicator$9,
3015
3069
  helperText: helperText$8,
3016
- errorMessage: errorMessage$a,
3070
+ errorMessage: errorMessage$b,
3017
3071
  } = {
3018
3072
  host: { selector: () => ':host' },
3019
3073
  inputField: { selector: '::part(input-field)' },
@@ -3034,14 +3088,19 @@ const ComboBoxClass = compose(
3034
3088
  hostDirection: { ...host$k, property: 'direction' },
3035
3089
  // we apply font-size also on the host so we can set its width with em
3036
3090
  fontSize: [{}, host$k],
3037
- fontFamily: [label$9, placeholder$3, inputField$6, helperText$8, errorMessage$a],
3091
+ fontFamily: [label$9, placeholder$3, inputField$6, helperText$8, errorMessage$b],
3038
3092
  labelFontSize: { ...label$9, property: 'font-size' },
3039
3093
  labelFontWeight: { ...label$9, property: 'font-weight' },
3040
3094
  labelTextColor: [
3041
3095
  { ...label$9, property: 'color' },
3042
3096
  { ...requiredIndicator$9, property: 'color' },
3043
3097
  ],
3044
- errorMessageTextColor: { ...errorMessage$a, property: 'color' },
3098
+ errorMessageTextColor: { ...errorMessage$b, property: 'color' },
3099
+ errorMessageIcon: { ...errorMessage$b, property: 'background-image' },
3100
+ errorMessageIconSize: { ...errorMessage$b, property: 'background-size' },
3101
+ errorMessageIconPadding: { ...errorMessage$b, property: 'padding-inline-start' },
3102
+ errorMessageIconRepeat: { ...errorMessage$b, property: 'background-repeat' },
3103
+ errorMessageIconPosition: { ...errorMessage$b, property: 'background-position' },
3045
3104
  inputHeight: { ...inputField$6, property: 'height' },
3046
3105
  inputBackgroundColor: { ...inputField$6, property: 'background-color' },
3047
3106
  inputBorderColor: { ...inputField$6, property: 'border-color' },
@@ -3116,7 +3175,10 @@ const ComboBoxClass = compose(
3116
3175
  name: 'overlay',
3117
3176
  selector: '',
3118
3177
  mappings: {
3119
- backgroundColor: { selector: 'vaadin-combo-box-scroller' },
3178
+ backgroundColor: [
3179
+ { selector: 'vaadin-combo-box-scroller' },
3180
+ { selector: 'vaadin-combo-box-overlay::part(overlay)' },
3181
+ ],
3120
3182
  minHeight: { selector: 'vaadin-combo-box-overlay' },
3121
3183
  margin: { selector: 'vaadin-combo-box-overlay' },
3122
3184
  cursor: { selector: 'vaadin-combo-box-item' },
@@ -3129,6 +3191,24 @@ const ComboBoxClass = compose(
3129
3191
  property: 'padding-inline-start',
3130
3192
  },
3131
3193
  itemPaddingInlineEnd: { selector: 'vaadin-combo-box-item', property: 'padding-inline-end' },
3194
+
3195
+ loaderTop: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'top' },
3196
+ loaderLeft: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'left' },
3197
+ loaderRight: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'right' },
3198
+ loaderMargin: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'margin' },
3199
+ loaderWidth: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'width' },
3200
+ loaderHeight: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'height' },
3201
+ loaderBorder: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'border' },
3202
+ loaderBorderColor: {
3203
+ selector: 'vaadin-combo-box-overlay::part(loader)',
3204
+ property: 'border-color',
3205
+ },
3206
+ loaderBorderRadius: {
3207
+ selector: 'vaadin-combo-box-overlay::part(loader)',
3208
+ property: 'border-radius',
3209
+ },
3210
+ contentHeight: { selector: 'vaadin-combo-box-overlay::part(content)', property: 'height' },
3211
+ contentOpacity: { selector: 'vaadin-combo-box-overlay::part(content)', property: 'opacity' },
3132
3212
  },
3133
3213
  forward: {
3134
3214
  include: false,
@@ -3176,6 +3256,10 @@ const ComboBoxClass = compose(
3176
3256
  align-self: center;
3177
3257
  }
3178
3258
 
3259
+ vaadin-combo-box[hide-toggle-button="true"]::part(toggle-button) {
3260
+ display: none;
3261
+ }
3262
+
3179
3263
  vaadin-combo-box[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {
3180
3264
  opacity: 0;
3181
3265
  }
@@ -3190,7 +3274,7 @@ const ComboBoxClass = compose(
3190
3274
  // with the same name. Including it will cause Vaadin to calculate NaN size,
3191
3275
  // and reset items to an empty array, and opening the list box with no items
3192
3276
  // to display.
3193
- excludeAttrsSync: ['tabindex', 'size', 'data'],
3277
+ excludeAttrsSync: ['tabindex', 'size', 'data', 'loading'],
3194
3278
  componentName: componentName$Z,
3195
3279
  includeForwardProps: ['items', 'renderer', 'selectedItem'],
3196
3280
  })
@@ -3766,7 +3850,9 @@ class RawCalendar extends BaseInputClass$9 {
3766
3850
  this.monthInput.value = month;
3767
3851
  // For the yearInput we update the base element directly to properly trigger the change event
3768
3852
  // since this can be a custom value
3769
- this.yearInput.baseElement.value = year;
3853
+ setTimeout(() => {
3854
+ this.yearInput.baseElement.value = year;
3855
+ });
3770
3856
  }
3771
3857
  }
3772
3858
 
@@ -3905,11 +3991,10 @@ class RawCalendar extends BaseInputClass$9 {
3905
3991
  }
3906
3992
 
3907
3993
  onMonthNamesChange() {
3908
- Array.from(this.monthInput?.children || []).forEach((child, index) => {
3909
- const month = this.monthNames[index];
3910
- child.setAttribute('data-name', month);
3911
- // eslint-disable-next-line no-param-reassign
3912
- child.textContent = month;
3994
+ setTimeout(() => {
3995
+ if (this.monthInput) {
3996
+ this.monthInput.innerHTML = getMonthsOptions(this.monthNames);
3997
+ }
3913
3998
  });
3914
3999
  }
3915
4000
 
@@ -4156,7 +4241,7 @@ const {
4156
4241
  input: input$1,
4157
4242
  inputMask,
4158
4243
  helperText: helperText$7,
4159
- errorMessage: errorMessage$9,
4244
+ errorMessage: errorMessage$a,
4160
4245
  disabledPlaceholder,
4161
4246
  inputDisabled,
4162
4247
  inputIcon,
@@ -4189,7 +4274,7 @@ const {
4189
4274
  var textFieldMappings = {
4190
4275
  // we apply font-size also on the host so we can set its width with em
4191
4276
  fontSize: [{}, host$j],
4192
- fontFamily: [label$8, inputField$5, helperText$7, errorMessage$9],
4277
+ fontFamily: [label$8, inputField$5, helperText$7, errorMessage$a],
4193
4278
 
4194
4279
  labelFontSize: { ...label$8, property: 'font-size' },
4195
4280
  labelFontWeight: { ...label$8, property: 'font-weight' },
@@ -4211,7 +4296,13 @@ var textFieldMappings = {
4211
4296
  { ...inputMask, property: 'background-color' },
4212
4297
  ],
4213
4298
 
4214
- errorMessageTextColor: { ...errorMessage$9, property: 'color' },
4299
+ errorMessageTextColor: { ...errorMessage$a, property: 'color' },
4300
+ errorMessageIcon: { ...errorMessage$a, property: 'background-image' },
4301
+ errorMessageIconSize: { ...errorMessage$a, property: 'background-size' },
4302
+ errorMessageIconPadding: { ...errorMessage$a, property: 'padding-inline-start' },
4303
+ errorMessageIconRepeat: { ...errorMessage$a, property: 'background-repeat' },
4304
+ errorMessageIconPosition: { ...errorMessage$a, property: 'background-position' },
4305
+
4215
4306
  helperTextColor: { ...helperText$7, property: '-webkit-text-fill-color' },
4216
4307
 
4217
4308
  inputValueTextColor: [
@@ -5974,7 +6065,7 @@ const {
5974
6065
  requiredIndicator: requiredIndicator$7,
5975
6066
  internalWrapper: internalWrapper$1,
5976
6067
  focusedDigitField,
5977
- errorMessage: errorMessage$8,
6068
+ errorMessage: errorMessage$9,
5978
6069
  } = {
5979
6070
  host: { selector: () => ':host' },
5980
6071
  focusedDigitField: { selector: () => `${TextFieldClass.componentName}[focused="true"]` },
@@ -6000,7 +6091,12 @@ const PasscodeClass = compose(
6000
6091
  { ...requiredIndicator$7, property: 'color' },
6001
6092
  ],
6002
6093
  labelRequiredIndicator: { ...requiredIndicator$7, property: 'content' },
6003
- errorMessageTextColor: { ...errorMessage$8, property: 'color' },
6094
+ errorMessageTextColor: { ...errorMessage$9, property: 'color' },
6095
+ errorMessageIcon: { ...errorMessage$9, property: 'background-image' },
6096
+ errorMessageIconSize: { ...errorMessage$9, property: 'background-size' },
6097
+ errorMessageIconPadding: { ...errorMessage$9, property: 'padding-inline-start' },
6098
+ errorMessageIconRepeat: { ...errorMessage$9, property: 'background-repeat' },
6099
+ errorMessageIconPosition: { ...errorMessage$9, property: 'background-position' },
6004
6100
  digitValueTextColor: {
6005
6101
  selector: TextFieldClass.componentName,
6006
6102
  property: textVars$2.inputValueTextColor,
@@ -6269,7 +6365,7 @@ const {
6269
6365
  revealButtonIcon,
6270
6366
  label: label$6,
6271
6367
  requiredIndicator: requiredIndicator$6,
6272
- errorMessage: errorMessage$7,
6368
+ errorMessage: errorMessage$8,
6273
6369
  helperText: helperText$6,
6274
6370
  } = {
6275
6371
  host: { selector: () => ':host' },
@@ -6291,7 +6387,7 @@ const PasswordClass = compose(
6291
6387
  hostMinWidth: { ...host$e, property: 'min-width' },
6292
6388
  hostDirection: { ...host$e, property: 'direction' },
6293
6389
  fontSize: [{}, host$e],
6294
- fontFamily: [label$6, inputField$4, errorMessage$7, helperText$6],
6390
+ fontFamily: [label$6, inputField$4, errorMessage$8, helperText$6],
6295
6391
  inputHeight: { ...inputField$4, property: 'height' },
6296
6392
  inputHorizontalPadding: [
6297
6393
  { ...inputElement$2, property: 'padding-left' },
@@ -6316,7 +6412,12 @@ const PasswordClass = compose(
6316
6412
  { ...requiredIndicator$6, property: 'color' },
6317
6413
  ],
6318
6414
  labelRequiredIndicator: { ...requiredIndicator$6, property: 'content' },
6319
- errorMessageTextColor: { ...errorMessage$7, property: 'color' },
6415
+ errorMessageTextColor: { ...errorMessage$8, property: 'color' },
6416
+ errorMessageIcon: { ...errorMessage$8, property: 'background-image' },
6417
+ errorMessageIconSize: { ...errorMessage$8, property: 'background-size' },
6418
+ errorMessageIconPadding: { ...errorMessage$8, property: 'padding-inline-start' },
6419
+ errorMessageIconRepeat: { ...errorMessage$8, property: 'background-repeat' },
6420
+ errorMessageIconPosition: { ...errorMessage$8, property: 'background-position' },
6320
6421
 
6321
6422
  inputPlaceholderTextColor: [
6322
6423
  { ...inputElementPlaceholder, property: 'color' },
@@ -6668,7 +6769,7 @@ const {
6668
6769
  textArea: textArea$2,
6669
6770
  requiredIndicator: requiredIndicator$5,
6670
6771
  helperText: helperText$5,
6671
- errorMessage: errorMessage$6,
6772
+ errorMessage: errorMessage$7,
6672
6773
  } = {
6673
6774
  host: { selector: () => ':host' },
6674
6775
  label: { selector: '::part(label)' },
@@ -6687,13 +6788,18 @@ const TextAreaClass = compose(
6687
6788
  hostMinWidth: { ...host$d, property: 'min-width' },
6688
6789
  hostDirection: { ...host$d, property: 'direction' },
6689
6790
  fontSize: [host$d, textArea$2],
6690
- fontFamily: [label$5, inputField$3, helperText$5, errorMessage$6],
6791
+ fontFamily: [label$5, inputField$3, helperText$5, errorMessage$7],
6691
6792
  labelTextColor: [
6692
6793
  { ...label$5, property: 'color' },
6693
6794
  { ...requiredIndicator$5, property: 'color' },
6694
6795
  ],
6695
6796
  labelRequiredIndicator: { ...requiredIndicator$5, property: 'content' },
6696
- errorMessageTextColor: { ...errorMessage$6, property: 'color' },
6797
+ errorMessageTextColor: { ...errorMessage$7, property: 'color' },
6798
+ errorMessageIcon: { ...errorMessage$7, property: 'background-image' },
6799
+ errorMessageIconSize: { ...errorMessage$7, property: 'background-size' },
6800
+ errorMessageIconPadding: { ...errorMessage$7, property: 'padding-inline-start' },
6801
+ errorMessageIconRepeat: { ...errorMessage$7, property: 'background-repeat' },
6802
+ errorMessageIconPosition: { ...errorMessage$7, property: 'background-position' },
6697
6803
  inputBackgroundColor: { ...inputField$3, property: 'background-color' },
6698
6804
  inputValueTextColor: { ...textArea$2, property: 'color' },
6699
6805
  inputPlaceholderTextColor: { ...placeholder$1, property: 'color' },
@@ -8199,7 +8305,8 @@ let PhoneFieldInternal$1 = class PhoneFieldInternal extends BaseInputClass$6 {
8199
8305
  }
8200
8306
 
8201
8307
  getRestrictedCountries() {
8202
- return this.getAttribute('restrict-countries')?.split(',') || [];
8308
+ const attr = this.getAttribute('restrict-countries');
8309
+ return attr ? attr.split(',') : [];
8203
8310
  }
8204
8311
 
8205
8312
  getCountryByDialCode(countryDialCode) {
@@ -8396,7 +8503,7 @@ const {
8396
8503
  countryCodeInput,
8397
8504
  phoneInput: phoneInput$1,
8398
8505
  separator: separator$1,
8399
- errorMessage: errorMessage$5,
8506
+ errorMessage: errorMessage$6,
8400
8507
  helperText: helperText$4,
8401
8508
  } = {
8402
8509
  host: { selector: () => ':host' },
@@ -8428,7 +8535,7 @@ const PhoneFieldClass = compose(
8428
8535
  ],
8429
8536
  fontFamily: [
8430
8537
  label$4,
8431
- errorMessage$5,
8538
+ errorMessage$6,
8432
8539
  helperText$4,
8433
8540
  {
8434
8541
  ...countryCodeInput,
@@ -8478,7 +8585,13 @@ const PhoneFieldClass = compose(
8478
8585
  { ...requiredIndicator$4, property: 'color' },
8479
8586
  ],
8480
8587
  labelRequiredIndicator: { ...requiredIndicator$4, property: 'content' },
8481
- errorMessageTextColor: { ...errorMessage$5, property: 'color' },
8588
+
8589
+ errorMessageTextColor: { ...errorMessage$6, property: 'color' },
8590
+ errorMessageIcon: { ...errorMessage$6, property: 'background-image' },
8591
+ errorMessageIconSize: { ...errorMessage$6, property: 'background-size' },
8592
+ errorMessageIconPadding: { ...errorMessage$6, property: 'padding-inline-start' },
8593
+ errorMessageIconRepeat: { ...errorMessage$6, property: 'background-repeat' },
8594
+ errorMessageIconPosition: { ...errorMessage$6, property: 'background-position' },
8482
8595
 
8483
8596
  inputValueTextColor: [
8484
8597
  { ...phoneInput$1, property: textVars$1.inputValueTextColor },
@@ -8842,7 +8955,7 @@ const {
8842
8955
  inputField: inputField$1,
8843
8956
  inputFieldInternal,
8844
8957
  phoneInput,
8845
- errorMessage: errorMessage$4,
8958
+ errorMessage: errorMessage$5,
8846
8959
  helperText: helperText$3,
8847
8960
  } = {
8848
8961
  host: { selector: () => ':host' },
@@ -8870,7 +8983,7 @@ const PhoneFieldInputBoxClass = compose(
8870
8983
  property: TextFieldClass.cssVarList.fontSize,
8871
8984
  },
8872
8985
  ],
8873
- fontFamily: [label$3, errorMessage$4, helperText$3],
8986
+ fontFamily: [label$3, errorMessage$5, helperText$3],
8874
8987
  hostWidth: { ...host$b, property: 'width' },
8875
8988
  hostMinWidth: { ...host$b, property: 'min-width' },
8876
8989
  hostDirection: { ...host$b, property: 'direction' },
@@ -8895,7 +9008,13 @@ const PhoneFieldInputBoxClass = compose(
8895
9008
  { ...requiredIndicator$3, property: 'color' },
8896
9009
  ],
8897
9010
  labelRequiredIndicator: { ...requiredIndicator$3, property: 'content' },
8898
- errorMessageTextColor: { ...errorMessage$4, property: 'color' },
9011
+ errorMessageTextColor: { ...errorMessage$5, property: 'color' },
9012
+
9013
+ errorMessageIcon: { ...errorMessage$5, property: 'background-image' },
9014
+ errorMessageIconSize: { ...errorMessage$5, property: 'background-size' },
9015
+ errorMessageIconPadding: { ...errorMessage$5, property: 'padding-inline-start' },
9016
+ errorMessageIconRepeat: { ...errorMessage$5, property: 'background-repeat' },
9017
+ errorMessageIconPosition: { ...errorMessage$5, property: 'background-position' },
8899
9018
 
8900
9019
  inputValueTextColor: { ...phoneInput, property: textVars.inputValueTextColor },
8901
9020
 
@@ -9313,7 +9432,7 @@ const {
9313
9432
  host: host$9,
9314
9433
  label: label$2,
9315
9434
  internalInputsWrapper,
9316
- errorMessage: errorMessage$3,
9435
+ errorMessage: errorMessage$4,
9317
9436
  helperText: helperText$2,
9318
9437
  passwordInput,
9319
9438
  policyPreview,
@@ -9338,11 +9457,16 @@ const NewPasswordClass = compose(
9338
9457
  property: PasswordClass.cssVarList.fontSize,
9339
9458
  },
9340
9459
  ],
9341
- fontFamily: [label$2, errorMessage$3, helperText$2],
9460
+ fontFamily: [label$2, errorMessage$4, helperText$2],
9342
9461
  labelFontSize: { ...label$2, property: 'font-size' },
9343
9462
  labelFontWeight: { ...label$2, property: 'font-weight' },
9344
9463
  labelTextColor: { ...label$2, property: 'color' },
9345
- errorMessageTextColor: { ...errorMessage$3, property: 'color' },
9464
+ errorMessageTextColor: { ...errorMessage$4, property: 'color' },
9465
+ errorMessageIcon: { ...errorMessage$4, property: 'background-image' },
9466
+ errorMessageIconSize: { ...errorMessage$4, property: 'background-size' },
9467
+ errorMessageIconPadding: { ...errorMessage$4, property: 'padding-inline-start' },
9468
+ errorMessageIconRepeat: { ...errorMessage$4, property: 'background-repeat' },
9469
+ errorMessageIconPosition: { ...errorMessage$4, property: 'background-position' },
9346
9470
  hostWidth: { ...host$9, property: 'width' },
9347
9471
  hostMinWidth: { ...host$9, property: 'min-width' },
9348
9472
  hostDirection: [
@@ -9703,6 +9827,10 @@ class RawRecaptcha extends BaseClass$1 {
9703
9827
  return;
9704
9828
  }
9705
9829
 
9830
+ this.toggleRecaptchaEles(enabled);
9831
+ }
9832
+
9833
+ toggleRecaptchaEles(enabled) {
9706
9834
  if (enabled) {
9707
9835
  this.recaptchaEle.style.display = '';
9708
9836
  this.mockRecaptchaEle.style.display = 'none';
@@ -9767,6 +9895,7 @@ class RawRecaptcha extends BaseClass$1 {
9767
9895
  this.mockRecaptchaEle.style.display = 'none';
9768
9896
  this.badge.classList.add('hidden');
9769
9897
  } else {
9898
+ this.toggleRecaptchaEles(this.enabled);
9770
9899
  this.badge.classList.remove('hidden');
9771
9900
  }
9772
9901
  }
@@ -10397,7 +10526,7 @@ const buttonSelectionGroupBaseMixin = (superclass) =>
10397
10526
  }
10398
10527
  };
10399
10528
 
10400
- const { host: host$7, label: label$1, requiredIndicator: requiredIndicator$1, internalWrapper, errorMessage: errorMessage$2 } = {
10529
+ const { host: host$7, label: label$1, requiredIndicator: requiredIndicator$1, internalWrapper, errorMessage: errorMessage$3 } = {
10401
10530
  host: { selector: () => ':host' },
10402
10531
  label: { selector: '::part(label)' },
10403
10532
  requiredIndicator: { selector: '[required]::part(required-indicator)::after' },
@@ -10414,7 +10543,12 @@ const buttonSelectionGroupMappings = {
10414
10543
  { ...requiredIndicator$1, property: 'color' },
10415
10544
  ],
10416
10545
  labelRequiredIndicator: { ...requiredIndicator$1, property: 'content' },
10417
- errorMessageTextColor: { ...errorMessage$2, property: 'color' },
10546
+ errorMessageTextColor: { ...errorMessage$3, property: 'color' },
10547
+ errorMessageIcon: { ...errorMessage$3, property: 'background-image' },
10548
+ errorMessageIconSize: { ...errorMessage$3, property: 'background-size' },
10549
+ errorMessageIconPadding: { ...errorMessage$3, property: 'padding-inline-start' },
10550
+ errorMessageIconRepeat: { ...errorMessage$3, property: 'background-repeat' },
10551
+ errorMessageIconPosition: { ...errorMessage$3, property: 'background-position' },
10418
10552
  itemsSpacing: { ...internalWrapper, property: 'gap' },
10419
10553
  };
10420
10554
 
@@ -12050,7 +12184,7 @@ const {
12050
12184
  label,
12051
12185
  requiredIndicator,
12052
12186
  helperText: helperText$1,
12053
- errorMessage: errorMessage$1,
12187
+ errorMessage: errorMessage$2,
12054
12188
  chip,
12055
12189
  chipLabel,
12056
12190
  overflowChipFirstBorder,
@@ -12084,14 +12218,19 @@ const MultiSelectComboBoxClass = compose(
12084
12218
  // we apply font-size also on the host so we can set its width with em
12085
12219
  fontSize: [{}, host$5],
12086
12220
  chipFontSize: { ...chipLabel, property: 'font-size' },
12087
- fontFamily: [label, placeholder, inputField, helperText$1, errorMessage$1, chipLabel],
12221
+ fontFamily: [label, placeholder, inputField, helperText$1, errorMessage$2, chipLabel],
12088
12222
  labelFontSize: { ...label, property: 'font-size' },
12089
12223
  labelFontWeight: { ...label, property: 'font-weight' },
12090
12224
  labelTextColor: [
12091
12225
  { ...label, property: 'color' },
12092
12226
  { ...requiredIndicator, property: 'color' },
12093
12227
  ],
12094
- errorMessageTextColor: { ...errorMessage$1, property: 'color' },
12228
+ errorMessageTextColor: { ...errorMessage$2, property: 'color' },
12229
+ errorMessageIcon: { ...errorMessage$2, property: 'background-image' },
12230
+ errorMessageIconSize: { ...errorMessage$2, property: 'background-size' },
12231
+ errorMessageIconPadding: { ...errorMessage$2, property: 'padding-inline-start' },
12232
+ errorMessageIconRepeat: { ...errorMessage$2, property: 'background-repeat' },
12233
+ errorMessageIconPosition: { ...errorMessage$2, property: 'background-position' },
12095
12234
  inputHeight: { ...inputField, property: 'min-height' },
12096
12235
  inputBackgroundColor: { ...inputField, property: 'background-color' },
12097
12236
  inputBorderColor: { ...inputField, property: 'border-color' },
@@ -12800,6 +12939,9 @@ class MappingsFieldInternal extends BaseInputClass$2 {
12800
12939
  'invalid',
12801
12940
  'readonly',
12802
12941
  'disabled',
12942
+ 'st-error-message-icon',
12943
+ 'st-error-message-icon-size',
12944
+ 'st-error-message-icon-padding',
12803
12945
  ]);
12804
12946
  }
12805
12947
 
@@ -12840,7 +12982,16 @@ class MappingsFieldInternal extends BaseInputClass$2 {
12840
12982
  newMappingItem.setAttribute('bordered', 'true');
12841
12983
  this.mappingsContainerEle.appendChild(newMappingItem);
12842
12984
  forwardAttrs(this, newMappingItem, {
12843
- includeAttrs: ['size', 'full-width', 'separator', 'options', 'disabled'],
12985
+ includeAttrs: [
12986
+ 'size',
12987
+ 'full-width',
12988
+ 'separator',
12989
+ 'options',
12990
+ 'disabled',
12991
+ 'st-error-message-icon',
12992
+ 'st-error-message-icon-size',
12993
+ 'st-error-message-icon-padding',
12994
+ ],
12844
12995
  });
12845
12996
  // This needs to be done with the timeout, otherwise the validation is performed
12846
12997
  // before the new item is added and thus returns a wrong result
@@ -13073,6 +13224,9 @@ const customMixin$4 = (superclass) =>
13073
13224
  'invalid',
13074
13225
  'readonly',
13075
13226
  'disabled',
13227
+ 'st-error-message-icon',
13228
+ 'st-error-message-icon-size',
13229
+ 'st-error-message-icon-padding',
13076
13230
  ],
13077
13231
  });
13078
13232
 
@@ -13087,7 +13241,7 @@ const customMixin$4 = (superclass) =>
13087
13241
  const {
13088
13242
  host: host$3,
13089
13243
  helperText,
13090
- errorMessage,
13244
+ errorMessage: errorMessage$1,
13091
13245
  mappingItem,
13092
13246
  labels,
13093
13247
  labelsText,
@@ -13117,7 +13271,7 @@ const MappingsFieldClass = compose(
13117
13271
  hostDirection: { ...host$3, property: 'direction' },
13118
13272
  // we apply font-size also on the host so we can set its width with em
13119
13273
  fontSize: [{}, host$3, { ...separator, property: 'margin-top' }],
13120
- fontFamily: [helperText, errorMessage, labels],
13274
+ fontFamily: [helperText, errorMessage$1, labels],
13121
13275
  separatorFontSize: { ...separator, property: 'font-size' },
13122
13276
  labelsFontSize: { ...labelsText, property: 'font-size' },
13123
13277
  labelsLineHeight: [
@@ -13198,7 +13352,16 @@ customElements.define(componentName$h, MappingsFieldInternal);
13198
13352
 
13199
13353
  const componentName$f = getComponentName('mapping-item');
13200
13354
 
13201
- const inputAttrs = ['size', 'bordered', 'readonly', 'full-width', 'disabled'];
13355
+ const inputAttrs = [
13356
+ 'size',
13357
+ 'bordered',
13358
+ 'readonly',
13359
+ 'full-width',
13360
+ 'disabled',
13361
+ 'st-error-message-icon',
13362
+ 'st-error-message-icon-size',
13363
+ 'st-error-message-icon-padding',
13364
+ ];
13202
13365
 
13203
13366
  const BaseInputClass$1 = createBaseInputClass({ componentName: componentName$f, baseSelector: 'div' });
13204
13367
 
@@ -13961,9 +14124,10 @@ const customMixin$3 = (superclass) =>
13961
14124
  }
13962
14125
  };
13963
14126
 
13964
- const { host, groupInput } = {
14127
+ const { host, groupInput, errorMessage } = {
13965
14128
  host: { selector: () => ':host' },
13966
14129
  groupInput: { selector: 'descope-text-field' },
14130
+ errorMessage: { selector: '::part(error-message)' },
13967
14131
  };
13968
14132
 
13969
14133
  const SamlGroupMappingsClass = compose(
@@ -13972,6 +14136,11 @@ const SamlGroupMappingsClass = compose(
13972
14136
  hostWidth: { ...host, property: 'width' },
13973
14137
  hostDirection: { ...host, property: 'direction' },
13974
14138
  groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },
14139
+ errorMessageIcon: { ...errorMessage, property: 'background-image' },
14140
+ errorMessageIconSize: { ...errorMessage, property: 'background-size' },
14141
+ errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },
14142
+ errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },
14143
+ errorMessageIconPosition: { ...errorMessage, property: 'background-position' },
13975
14144
  },
13976
14145
  }),
13977
14146
  draggableMixin,
@@ -14917,6 +15086,9 @@ const attrsToSync$1 = [
14917
15086
  'answer-label',
14918
15087
  'answer-placeholder',
14919
15088
  'answer-data-errormessage-value-missing',
15089
+ 'st-error-message-icon',
15090
+ 'st-error-message-icon-size',
15091
+ 'st-error-message-icon-padding',
14920
15092
  ];
14921
15093
 
14922
15094
  const attrsToReRender$1 = ['count', 'questions'];
@@ -15145,6 +15317,9 @@ const textFieldsAttrs = [
15145
15317
  'size',
15146
15318
  'answer-placeholder',
15147
15319
  'answer-data-errormessage-value-missing',
15320
+ 'st-error-message-icon',
15321
+ 'st-error-message-icon-size',
15322
+ 'st-error-message-icon-padding',
15148
15323
  ];
15149
15324
 
15150
15325
  const textsAttrs = ['question-mode'];
@@ -15333,6 +15508,27 @@ const SecurityQuestionsVerifyClass = compose(
15333
15508
  selector: () => TextClass.componentName,
15334
15509
  property: 'cursor',
15335
15510
  },
15511
+
15512
+ errorMessageIcon: {
15513
+ selector: () => TextClass.componentName,
15514
+ property: TextClass.cssVarList.errorMessageIcon,
15515
+ },
15516
+ errorMessageIconSize: {
15517
+ selector: () => TextClass.componentName,
15518
+ property: TextClass.cssVarList.errorMessageSize,
15519
+ },
15520
+ errorMessageIconPadding: {
15521
+ selector: () => TextClass.componentName,
15522
+ property: TextClass.cssVarList.errorMessagePadding,
15523
+ },
15524
+ errorMessageIconRepeat: {
15525
+ selector: () => TextClass.componentName,
15526
+ property: TextClass.cssVarList.errorMessageRepeat,
15527
+ },
15528
+ errorMessageIconPosition: {
15529
+ selector: () => TextClass.componentName,
15530
+ property: TextClass.cssVarList.errorMessagePosition,
15531
+ },
15336
15532
  },
15337
15533
  }),
15338
15534
  draggableMixin,
@@ -15359,6 +15555,9 @@ const attrs = {
15359
15555
  'readonly',
15360
15556
  'required',
15361
15557
  'st-host-direction',
15558
+ 'st-error-message-icon',
15559
+ 'st-error-message-icon-size',
15560
+ 'st-error-message-icon-padding',
15362
15561
  ],
15363
15562
  email: [
15364
15563
  'label',
@@ -15644,6 +15843,56 @@ const HybridFieldClass = compose(
15644
15843
  { selector: () => 'descope-phone-field', property: 'direction' },
15645
15844
  { selector: () => 'descope-phone-input-box-field', property: 'direction' },
15646
15845
  ],
15846
+ errorMessageIcon: [
15847
+ {
15848
+ selector: () => PhoneFieldClass.componentName,
15849
+ property: PhoneFieldClass.cssVarList.errorMessageIcon,
15850
+ },
15851
+ {
15852
+ selector: () => PhoneFieldInputBoxClass.componentName,
15853
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIcon,
15854
+ },
15855
+ ],
15856
+ errorMessageIconSize: [
15857
+ {
15858
+ selector: () => PhoneFieldClass.componentName,
15859
+ property: PhoneFieldClass.cssVarList.errorMessageIconSize,
15860
+ },
15861
+ {
15862
+ selector: () => PhoneFieldInputBoxClass.componentName,
15863
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconSize,
15864
+ },
15865
+ ],
15866
+ errorMessageIconPadding: [
15867
+ {
15868
+ selector: () => PhoneFieldClass.componentName,
15869
+ property: PhoneFieldClass.cssVarList.errorMessageIconPadding,
15870
+ },
15871
+ {
15872
+ selector: () => PhoneFieldInputBoxClass.componentName,
15873
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconPadding,
15874
+ },
15875
+ ],
15876
+ errorMessageIconRepeat: [
15877
+ {
15878
+ selector: () => PhoneFieldClass.componentName,
15879
+ property: PhoneFieldClass.cssVarList.errorMessageIconRepeat,
15880
+ },
15881
+ {
15882
+ selector: () => PhoneFieldInputBoxClass.componentName,
15883
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconRepeat,
15884
+ },
15885
+ ],
15886
+ errorMessageIconPosition: [
15887
+ {
15888
+ selector: () => PhoneFieldClass.componentName,
15889
+ property: PhoneFieldClass.cssVarList.errorMessageIconPosition,
15890
+ },
15891
+ {
15892
+ selector: () => PhoneFieldInputBoxClass.componentName,
15893
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconPosition,
15894
+ },
15895
+ ],
15647
15896
  },
15648
15897
  }),
15649
15898
  draggableMixin,
@@ -16266,6 +16515,12 @@ const [theme$1, refs, vars$R] = createHelperVars(
16266
16515
 
16267
16516
  overlayOpacity: '0.3',
16268
16517
 
16518
+ errorMessageIcon: '',
16519
+ errorMessageIconSize: '0',
16520
+ errorMessageIconPadding: '0',
16521
+ errorMessageIconPosition: '0 0.4em',
16522
+ errorMessageIconRepeat: 'no-repeat',
16523
+
16269
16524
  size: {
16270
16525
  xs: { fontSize: '12px', chipFontSize: '10px' },
16271
16526
  sm: { fontSize: '14px', chipFontSize: '12px' },
@@ -16397,6 +16652,13 @@ const textField = {
16397
16652
  [vars$Q.inputIconOffset]: globalRefs$w.spacing.md,
16398
16653
  [vars$Q.inputIconSize]: refs.inputIconSize,
16399
16654
  [vars$Q.inputIconColor]: refs.placeholderTextColor,
16655
+
16656
+ // error message icon
16657
+ [vars$Q.errorMessageIcon]: refs.errorMessageIcon,
16658
+ [vars$Q.errorMessageIconSize]: refs.errorMessageIconSize,
16659
+ [vars$Q.errorMessageIconPadding]: refs.errorMessageIconPadding,
16660
+ [vars$Q.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16661
+ [vars$Q.errorMessageIconPosition]: refs.errorMessageIconPosition,
16400
16662
  };
16401
16663
 
16402
16664
  var textField$1 = /*#__PURE__*/Object.freeze({
@@ -16445,6 +16707,13 @@ const password = {
16445
16707
  [vars$P.placeholderOpacity]: refs.placeholderOpacity,
16446
16708
  [vars$P.inputVerticalAlignment]: refs.inputVerticalAlignment,
16447
16709
  [vars$P.valueInputHeight]: refs.valueInputHeight,
16710
+
16711
+ // error message icon
16712
+ [vars$P.errorMessageIcon]: refs.errorMessageIcon,
16713
+ [vars$P.errorMessageIconSize]: refs.errorMessageIconSize,
16714
+ [vars$P.errorMessageIconPadding]: refs.errorMessageIconPadding,
16715
+ [vars$P.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16716
+ [vars$P.errorMessageIconPosition]: refs.errorMessageIconPosition,
16448
16717
  };
16449
16718
 
16450
16719
  var password$1 = /*#__PURE__*/Object.freeze({
@@ -16489,6 +16758,13 @@ const numberField = {
16489
16758
  [vars$O.inputVerticalAlignment]: refs.inputVerticalAlignment,
16490
16759
  [vars$O.valueInputHeight]: refs.valueInputHeight,
16491
16760
  [vars$O.valueInputMarginBottom]: refs.valueInputMarginBottom,
16761
+
16762
+ // error message icon
16763
+ [vars$O.errorMessageIcon]: refs.errorMessageIcon,
16764
+ [vars$O.errorMessageIconSize]: refs.errorMessageIconSize,
16765
+ [vars$O.errorMessageIconPadding]: refs.errorMessageIconPadding,
16766
+ [vars$O.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16767
+ [vars$O.errorMessageIconPosition]: refs.errorMessageIconPosition,
16492
16768
  };
16493
16769
 
16494
16770
  var numberField$1 = /*#__PURE__*/Object.freeze({
@@ -16533,6 +16809,13 @@ const emailField = {
16533
16809
  [vars$N.inputVerticalAlignment]: refs.inputVerticalAlignment,
16534
16810
  [vars$N.valueInputHeight]: refs.valueInputHeight,
16535
16811
  [vars$N.valueInputMarginBottom]: refs.valueInputMarginBottom,
16812
+
16813
+ // error message icon
16814
+ [vars$N.errorMessageIcon]: refs.errorMessageIcon,
16815
+ [vars$N.errorMessageIconSize]: refs.errorMessageIconSize,
16816
+ [vars$N.errorMessageIconPadding]: refs.errorMessageIconPadding,
16817
+ [vars$N.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16818
+ [vars$N.errorMessageIconPosition]: refs.errorMessageIconPosition,
16536
16819
  };
16537
16820
 
16538
16821
  var emailField$1 = /*#__PURE__*/Object.freeze({
@@ -16565,6 +16848,14 @@ const textArea = {
16565
16848
  [vars$M.inputOutlineOffset]: refs.outlineOffset,
16566
16849
  [vars$M.inputResizeType]: 'vertical',
16567
16850
  [vars$M.inputMinHeight]: '5em',
16851
+
16852
+ // error message icon
16853
+ [vars$M.errorMessageIcon]: refs.errorMessageIcon,
16854
+ [vars$M.errorMessageIconSize]: refs.errorMessageIconSize,
16855
+ [vars$M.errorMessageIconPadding]: refs.errorMessageIconPadding,
16856
+ [vars$M.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16857
+ [vars$M.errorMessageIconPosition]: refs.errorMessageIconPosition,
16858
+
16568
16859
  textAlign: {
16569
16860
  right: { [vars$M.inputTextAlign]: 'right' },
16570
16861
  left: { [vars$M.inputTextAlign]: 'left' },
@@ -16607,6 +16898,13 @@ const checkbox = {
16607
16898
  [vars$L.inputBackgroundColor]: refs.backgroundColor,
16608
16899
  [vars$L.inputSize]: checkboxSize,
16609
16900
  [vars$L.inputValueTextColor]: refs.valueTextColor,
16901
+
16902
+ // error message icon
16903
+ [vars$L.errorMessageIcon]: refs.errorMessageIcon,
16904
+ [vars$L.errorMessageIconSize]: refs.errorMessageIconSize,
16905
+ [vars$L.errorMessageIconPadding]: refs.errorMessageIconPadding,
16906
+ [vars$L.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16907
+ [vars$L.errorMessageIconPosition]: refs.errorMessageIconPosition,
16610
16908
  };
16611
16909
 
16612
16910
  var checkbox$1 = /*#__PURE__*/Object.freeze({
@@ -16654,6 +16952,13 @@ const switchToggle = {
16654
16952
  [vars$K.labelRequiredIndicator]: refs.requiredIndicator,
16655
16953
  [vars$K.errorMessageTextColor]: refs.errorMessageTextColor,
16656
16954
 
16955
+ // error message icon
16956
+ [vars$K.errorMessageIcon]: refs.errorMessageIcon,
16957
+ [vars$K.errorMessageIconSize]: refs.errorMessageIconSize,
16958
+ [vars$K.errorMessageIconPadding]: refs.errorMessageIconPadding,
16959
+ [vars$K.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
16960
+ [vars$K.errorMessageIconPosition]: refs.errorMessageIconPosition,
16961
+
16657
16962
  _checked: {
16658
16963
  [vars$K.trackBorderColor]: refs.borderColor,
16659
16964
  [vars$K.knobLeftOffset]: `calc(100% - var(${vars$K.knobSize}) - ${knobMargin})`,
@@ -17088,6 +17393,13 @@ const passcode = {
17088
17393
  [vars$B.focusedDigitFieldOutlineColor]: refs.outlineColor,
17089
17394
  [vars$B.digitSize]: refs.inputHeight,
17090
17395
 
17396
+ // error message icon
17397
+ [vars$B.errorMessageIcon]: refs.errorMessageIcon,
17398
+ [vars$B.errorMessageIconSize]: refs.errorMessageIconSize,
17399
+ [vars$B.errorMessageIconPadding]: refs.errorMessageIconPadding,
17400
+ [vars$B.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17401
+ [vars$B.errorMessageIconPosition]: refs.errorMessageIconPosition,
17402
+
17091
17403
  size: {
17092
17404
  xs: { [vars$B.spinnerSize]: '15px' },
17093
17405
  sm: { [vars$B.spinnerSize]: '20px' },
@@ -17253,6 +17565,13 @@ const comboBox = {
17253
17565
  [vars$y.valueInputHeight]: refs.valueInputHeight,
17254
17566
  [vars$y.valueInputMarginBottom]: refs.valueInputMarginBottom,
17255
17567
 
17568
+ // error message icon
17569
+ [vars$y.errorMessageIcon]: refs.errorMessageIcon,
17570
+ [vars$y.errorMessageIconSize]: refs.errorMessageIconSize,
17571
+ [vars$y.errorMessageIconPadding]: refs.errorMessageIconPadding,
17572
+ [vars$y.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17573
+ [vars$y.errorMessageIconPosition]: refs.errorMessageIconPosition,
17574
+
17256
17575
  _readonly: {
17257
17576
  [vars$y.inputDropdownButtonCursor]: 'default',
17258
17577
  },
@@ -17268,6 +17587,25 @@ const comboBox = {
17268
17587
  // Overlay direct theme:
17269
17588
  [vars$y.overlay.minHeight]: '400px',
17270
17589
  [vars$y.overlay.margin]: '0',
17590
+
17591
+ [vars$y.overlay.contentHeight]: '100%',
17592
+ [vars$y.overlay.contentOpacity]: '1',
17593
+ _loading: {
17594
+ [vars$y.overlay.loaderTop]: '50%',
17595
+ [vars$y.overlay.loaderLeft]: '50%',
17596
+ [vars$y.overlay.loaderRight]: 'auto',
17597
+ // Margin has to be negative to center the loader, "transform" can't be used because the animation uses it
17598
+ // Margin has to be half of the width/height of the loader to center it
17599
+ [vars$y.overlay.loaderMargin]: '-15px 0 0 -15px',
17600
+ [vars$y.overlay.loaderWidth]: '30px',
17601
+ [vars$y.overlay.loaderHeight]: '30px',
17602
+ [vars$y.overlay.loaderBorder]: '2px solid transparent',
17603
+ [vars$y.overlay
17604
+ .loaderBorderColor]: `${globalRefs$m.colors.primary.highlight} ${globalRefs$m.colors.primary.highlight} ${globalRefs$m.colors.primary.main} ${globalRefs$m.colors.primary.main}`,
17605
+ [vars$y.overlay.loaderBorderRadius]: '50%',
17606
+ [vars$y.overlay.contentHeight]: '100px',
17607
+ [vars$y.overlay.contentOpacity]: '0',
17608
+ },
17271
17609
  };
17272
17610
 
17273
17611
  var comboBox$1 = /*#__PURE__*/Object.freeze({
@@ -17314,6 +17652,13 @@ const phoneField = {
17314
17652
  [vars$w.valueInputHeight]: refs.valueInputHeight,
17315
17653
  [vars$w.valueInputMarginBottom]: refs.valueInputMarginBottom,
17316
17654
 
17655
+ // error message icon
17656
+ [vars$w.errorMessageIcon]: refs.errorMessageIcon,
17657
+ [vars$w.errorMessageIconSize]: refs.errorMessageIconSize,
17658
+ [vars$w.errorMessageIconPadding]: refs.errorMessageIconPadding,
17659
+ [vars$w.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17660
+ [vars$w.errorMessageIconPosition]: refs.errorMessageIconPosition,
17661
+
17317
17662
  // '@overlay': {
17318
17663
  // overlayItemBackgroundColor: 'red'
17319
17664
  // }
@@ -17358,6 +17703,13 @@ const phoneInputBoxField = {
17358
17703
  [vars$v.valueInputMarginBottom]: refs.valueInputMarginBottom,
17359
17704
  [vars$v.inputHorizontalPadding]: '0',
17360
17705
 
17706
+ // error message icon
17707
+ [vars$v.errorMessageIcon]: refs.errorMessageIcon,
17708
+ [vars$v.errorMessageIconSize]: refs.errorMessageIconSize,
17709
+ [vars$v.errorMessageIconPadding]: refs.errorMessageIconPadding,
17710
+ [vars$v.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17711
+ [vars$v.errorMessageIconPosition]: refs.errorMessageIconPosition,
17712
+
17361
17713
  _fullWidth: {
17362
17714
  [vars$v.hostWidth]: refs.width,
17363
17715
  },
@@ -17387,6 +17739,13 @@ const newPassword = {
17387
17739
  [vars$u.policyPreviewPadding]: globalRefs$l.spacing.lg,
17388
17740
  [vars$u.valueInputHeight]: refs.valueInputHeight,
17389
17741
 
17742
+ // error message icon
17743
+ [vars$u.errorMessageIcon]: refs.errorMessageIcon,
17744
+ [vars$u.errorMessageIconSize]: refs.errorMessageIconSize,
17745
+ [vars$u.errorMessageIconPadding]: refs.errorMessageIconPadding,
17746
+ [vars$u.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17747
+ [vars$u.errorMessageIconPosition]: refs.errorMessageIconPosition,
17748
+
17390
17749
  _required: {
17391
17750
  // NewPassword doesn't pass `required` attribute to its Password components.
17392
17751
  // That's why we fake the required indicator on each input.
@@ -17510,9 +17869,17 @@ const createBaseButtonSelectionGroupMappings = (vars) => ({
17510
17869
  [vars.fontFamily]: refs.fontFamily,
17511
17870
  [vars.labelTextColor]: refs.labelTextColor,
17512
17871
  [vars.labelRequiredIndicator]: refs.requiredIndicator,
17513
- [vars.errorMessageTextColor]: refs.errorMessageTextColor,
17514
17872
  [vars.itemsSpacing]: globalRefs$j.spacing.sm,
17515
17873
  [vars.hostWidth]: refs.width,
17874
+
17875
+ [vars.errorMessageTextColor]: refs.errorMessageTextColor,
17876
+
17877
+ // error message icon
17878
+ [vars.errorMessageIcon]: refs.errorMessageIcon,
17879
+ [vars.errorMessageIconSize]: refs.errorMessageIconSize,
17880
+ [vars.errorMessageIconPadding]: refs.errorMessageIconPadding,
17881
+ [vars.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17882
+ [vars.errorMessageIconPosition]: refs.errorMessageIconPosition,
17516
17883
  });
17517
17884
 
17518
17885
  const vars$r = ButtonSelectionGroupClass.cssVarList;
@@ -17711,6 +18078,13 @@ const multiSelectComboBox = {
17711
18078
  [vars$m.placeholderOpacity]: refs.placeholderOpacity,
17712
18079
  [vars$m.inputVerticalAlignment]: refs.inputVerticalAlignment,
17713
18080
 
18081
+ // error message icon
18082
+ [vars$m.errorMessageIcon]: refs.errorMessageIcon,
18083
+ [vars$m.errorMessageIconSize]: refs.errorMessageIconSize,
18084
+ [vars$m.errorMessageIconPadding]: refs.errorMessageIconPadding,
18085
+ [vars$m.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
18086
+ [vars$m.errorMessageIconPosition]: refs.errorMessageIconPosition,
18087
+
17714
18088
  labelType: {
17715
18089
  floating: {
17716
18090
  [vars$m.inputHorizontalPadding]: '0.25em',
@@ -17938,6 +18312,13 @@ const samlGroupMappings = {
17938
18312
  [vars$g.hostWidth]: refs.width,
17939
18313
  [vars$g.hostDirection]: refs.direction,
17940
18314
  [vars$g.groupNameInputMarginBottom]: '1em',
18315
+
18316
+ // error message icon
18317
+ [vars$g.errorMessageIcon]: refs.errorMessageIcon,
18318
+ [vars$g.errorMessageIconSize]: refs.errorMessageIconSize,
18319
+ [vars$g.errorMessageIconPadding]: refs.errorMessageIconPadding,
18320
+ [vars$g.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
18321
+ [vars$g.errorMessageIconPosition]: refs.errorMessageIconPosition,
17941
18322
  };
17942
18323
 
17943
18324
  var samlGroupMappings$1 = /*#__PURE__*/Object.freeze({
@@ -18143,6 +18524,11 @@ const radioGroup = {
18143
18524
  [vars$c.labelTextColor]: refs.labelTextColor,
18144
18525
  [vars$c.labelRequiredIndicator]: refs.requiredIndicator,
18145
18526
  [vars$c.errorMessageTextColor]: refs.errorMessageTextColor,
18527
+ [vars$c.errorMessageIcon]: refs.errorMessageIcon,
18528
+ [vars$c.errorMessageIconSize]: refs.errorMessageIconSize,
18529
+ [vars$c.errorMessageIconPadding]: refs.errorMessageIconPadding,
18530
+ [vars$c.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
18531
+ [vars$c.errorMessageIconPosition]: refs.errorMessageIconPosition,
18146
18532
  [vars$c.helperTextColor]: refs.helperTextColor,
18147
18533
  [vars$c.itemsLabelColor]: globalRefs$7.colors.surface.contrast,
18148
18534
 
@@ -18560,6 +18946,13 @@ const vars$1 = HybridFieldClass.cssVarList;
18560
18946
  const hybridField = {
18561
18947
  [vars$1.hostDirection]: refs.direction,
18562
18948
 
18949
+ // error message icon
18950
+ [vars$1.errorMessageIcon]: refs.errorMessageIcon,
18951
+ [vars$1.errorMessageIconSize]: refs.errorMessageIconSize,
18952
+ [vars$1.errorMessageIconPadding]: refs.errorMessageIconPadding,
18953
+ [vars$1.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
18954
+ [vars$1.errorMessageIconPosition]: refs.errorMessageIconPosition,
18955
+
18563
18956
  _fullWidth: {
18564
18957
  [vars$1.hostWidth]: '100%',
18565
18958
  },