@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
@@ -1060,6 +1060,8 @@ const booleanAttributesList = [
1060
1060
  'opening',
1061
1061
  'closing',
1062
1062
  'has-no-options',
1063
+ 'loading',
1064
+ 'allow-custom-value',
1063
1065
  ];
1064
1066
 
1065
1067
  const isBooleanAttribute = (attr) => {
@@ -2423,7 +2425,7 @@ const proxyInputMixin =
2423
2425
  forwardProps(this, [this.inputElement, ...proxyTargets], prop);
2424
2426
  });
2425
2427
 
2426
- this.setSelectionRange = this.inputElement.setSelectionRange?.bind(this.inputElement);
2428
+ this.setSelectionRange = this.inputElement?.setSelectionRange?.bind(this.inputElement);
2427
2429
 
2428
2430
  forwardAttrs(this, this.inputElement, { includeAttrs: ['inputmode'] });
2429
2431
  });
@@ -3369,7 +3371,7 @@ const {
3369
3371
  input: input$1,
3370
3372
  inputMask,
3371
3373
  helperText: helperText$a,
3372
- errorMessage: errorMessage$c,
3374
+ errorMessage: errorMessage$d,
3373
3375
  disabledPlaceholder,
3374
3376
  inputDisabled,
3375
3377
  inputIcon,
@@ -3402,7 +3404,7 @@ const {
3402
3404
  var textFieldMappings = {
3403
3405
  // we apply font-size also on the host so we can set its width with em
3404
3406
  fontSize: [{}, host$n],
3405
- fontFamily: [label$9, inputField$6, helperText$a, errorMessage$c],
3407
+ fontFamily: [label$9, inputField$6, helperText$a, errorMessage$d],
3406
3408
 
3407
3409
  labelFontSize: { ...label$9, property: 'font-size' },
3408
3410
  labelFontWeight: { ...label$9, property: 'font-weight' },
@@ -3424,7 +3426,13 @@ var textFieldMappings = {
3424
3426
  { ...inputMask, property: 'background-color' },
3425
3427
  ],
3426
3428
 
3427
- errorMessageTextColor: { ...errorMessage$c, property: 'color' },
3429
+ errorMessageTextColor: { ...errorMessage$d, property: 'color' },
3430
+ errorMessageIcon: { ...errorMessage$d, property: 'background-image' },
3431
+ errorMessageIconSize: { ...errorMessage$d, property: 'background-size' },
3432
+ errorMessageIconPadding: { ...errorMessage$d, property: 'padding-inline-start' },
3433
+ errorMessageIconRepeat: { ...errorMessage$d, property: 'background-repeat' },
3434
+ errorMessageIconPosition: { ...errorMessage$d, property: 'background-position' },
3435
+
3428
3436
  helperTextColor: { ...helperText$a, property: '-webkit-text-fill-color' },
3429
3437
 
3430
3438
  inputValueTextColor: [
@@ -3818,6 +3826,12 @@ const [theme$1, refs, vars$R] = createHelperVars(
3818
3826
 
3819
3827
  overlayOpacity: '0.3',
3820
3828
 
3829
+ errorMessageIcon: '',
3830
+ errorMessageIconSize: '0',
3831
+ errorMessageIconPadding: '0',
3832
+ errorMessageIconPosition: '0 0.4em',
3833
+ errorMessageIconRepeat: 'no-repeat',
3834
+
3821
3835
  size: {
3822
3836
  xs: { fontSize: '12px', chipFontSize: '10px' },
3823
3837
  sm: { fontSize: '14px', chipFontSize: '12px' },
@@ -3949,6 +3963,13 @@ const textField$1 = {
3949
3963
  [vars$Q.inputIconOffset]: globalRefs$w.spacing.md,
3950
3964
  [vars$Q.inputIconSize]: refs.inputIconSize,
3951
3965
  [vars$Q.inputIconColor]: refs.placeholderTextColor,
3966
+
3967
+ // error message icon
3968
+ [vars$Q.errorMessageIcon]: refs.errorMessageIcon,
3969
+ [vars$Q.errorMessageIconSize]: refs.errorMessageIconSize,
3970
+ [vars$Q.errorMessageIconPadding]: refs.errorMessageIconPadding,
3971
+ [vars$Q.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
3972
+ [vars$Q.errorMessageIconPosition]: refs.errorMessageIconPosition,
3952
3973
  };
3953
3974
 
3954
3975
  var textField$2 = /*#__PURE__*/Object.freeze({
@@ -4114,7 +4135,7 @@ const {
4114
4135
  revealButtonIcon,
4115
4136
  label: label$8,
4116
4137
  requiredIndicator: requiredIndicator$a,
4117
- errorMessage: errorMessage$b,
4138
+ errorMessage: errorMessage$c,
4118
4139
  helperText: helperText$9,
4119
4140
  } = {
4120
4141
  host: { selector: () => ':host' },
@@ -4136,7 +4157,7 @@ const PasswordClass = compose(
4136
4157
  hostMinWidth: { ...host$m, property: 'min-width' },
4137
4158
  hostDirection: { ...host$m, property: 'direction' },
4138
4159
  fontSize: [{}, host$m],
4139
- fontFamily: [label$8, inputField$5, errorMessage$b, helperText$9],
4160
+ fontFamily: [label$8, inputField$5, errorMessage$c, helperText$9],
4140
4161
  inputHeight: { ...inputField$5, property: 'height' },
4141
4162
  inputHorizontalPadding: [
4142
4163
  { ...inputElement$3, property: 'padding-left' },
@@ -4161,7 +4182,12 @@ const PasswordClass = compose(
4161
4182
  { ...requiredIndicator$a, property: 'color' },
4162
4183
  ],
4163
4184
  labelRequiredIndicator: { ...requiredIndicator$a, property: 'content' },
4164
- errorMessageTextColor: { ...errorMessage$b, property: 'color' },
4185
+ errorMessageTextColor: { ...errorMessage$c, property: 'color' },
4186
+ errorMessageIcon: { ...errorMessage$c, property: 'background-image' },
4187
+ errorMessageIconSize: { ...errorMessage$c, property: 'background-size' },
4188
+ errorMessageIconPadding: { ...errorMessage$c, property: 'padding-inline-start' },
4189
+ errorMessageIconRepeat: { ...errorMessage$c, property: 'background-repeat' },
4190
+ errorMessageIconPosition: { ...errorMessage$c, property: 'background-position' },
4165
4191
 
4166
4192
  inputPlaceholderTextColor: [
4167
4193
  { ...inputElementPlaceholder, property: 'color' },
@@ -4316,6 +4342,13 @@ const password = {
4316
4342
  [vars$P.placeholderOpacity]: refs.placeholderOpacity,
4317
4343
  [vars$P.inputVerticalAlignment]: refs.inputVerticalAlignment,
4318
4344
  [vars$P.valueInputHeight]: refs.valueInputHeight,
4345
+
4346
+ // error message icon
4347
+ [vars$P.errorMessageIcon]: refs.errorMessageIcon,
4348
+ [vars$P.errorMessageIconSize]: refs.errorMessageIconSize,
4349
+ [vars$P.errorMessageIconPadding]: refs.errorMessageIconPadding,
4350
+ [vars$P.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
4351
+ [vars$P.errorMessageIconPosition]: refs.errorMessageIconPosition,
4319
4352
  };
4320
4353
 
4321
4354
  var password$1 = /*#__PURE__*/Object.freeze({
@@ -4398,6 +4431,13 @@ const numberField = {
4398
4431
  [vars$O.inputVerticalAlignment]: refs.inputVerticalAlignment,
4399
4432
  [vars$O.valueInputHeight]: refs.valueInputHeight,
4400
4433
  [vars$O.valueInputMarginBottom]: refs.valueInputMarginBottom,
4434
+
4435
+ // error message icon
4436
+ [vars$O.errorMessageIcon]: refs.errorMessageIcon,
4437
+ [vars$O.errorMessageIconSize]: refs.errorMessageIconSize,
4438
+ [vars$O.errorMessageIconPadding]: refs.errorMessageIconPadding,
4439
+ [vars$O.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
4440
+ [vars$O.errorMessageIconPosition]: refs.errorMessageIconPosition,
4401
4441
  };
4402
4442
 
4403
4443
  var numberField$1 = /*#__PURE__*/Object.freeze({
@@ -4515,6 +4555,13 @@ const emailField = {
4515
4555
  [vars$N.inputVerticalAlignment]: refs.inputVerticalAlignment,
4516
4556
  [vars$N.valueInputHeight]: refs.valueInputHeight,
4517
4557
  [vars$N.valueInputMarginBottom]: refs.valueInputMarginBottom,
4558
+
4559
+ // error message icon
4560
+ [vars$N.errorMessageIcon]: refs.errorMessageIcon,
4561
+ [vars$N.errorMessageIconSize]: refs.errorMessageIconSize,
4562
+ [vars$N.errorMessageIconPadding]: refs.errorMessageIconPadding,
4563
+ [vars$N.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
4564
+ [vars$N.errorMessageIconPosition]: refs.errorMessageIconPosition,
4518
4565
  };
4519
4566
 
4520
4567
  var emailField$1 = /*#__PURE__*/Object.freeze({
@@ -4533,7 +4580,7 @@ const {
4533
4580
  textArea: textArea$2,
4534
4581
  requiredIndicator: requiredIndicator$9,
4535
4582
  helperText: helperText$8,
4536
- errorMessage: errorMessage$a,
4583
+ errorMessage: errorMessage$b,
4537
4584
  } = {
4538
4585
  host: { selector: () => ':host' },
4539
4586
  label: { selector: '::part(label)' },
@@ -4552,13 +4599,18 @@ const TextAreaClass = compose(
4552
4599
  hostMinWidth: { ...host$l, property: 'min-width' },
4553
4600
  hostDirection: { ...host$l, property: 'direction' },
4554
4601
  fontSize: [host$l, textArea$2],
4555
- fontFamily: [label$7, inputField$4, helperText$8, errorMessage$a],
4602
+ fontFamily: [label$7, inputField$4, helperText$8, errorMessage$b],
4556
4603
  labelTextColor: [
4557
4604
  { ...label$7, property: 'color' },
4558
4605
  { ...requiredIndicator$9, property: 'color' },
4559
4606
  ],
4560
4607
  labelRequiredIndicator: { ...requiredIndicator$9, property: 'content' },
4561
- errorMessageTextColor: { ...errorMessage$a, property: 'color' },
4608
+ errorMessageTextColor: { ...errorMessage$b, property: 'color' },
4609
+ errorMessageIcon: { ...errorMessage$b, property: 'background-image' },
4610
+ errorMessageIconSize: { ...errorMessage$b, property: 'background-size' },
4611
+ errorMessageIconPadding: { ...errorMessage$b, property: 'padding-inline-start' },
4612
+ errorMessageIconRepeat: { ...errorMessage$b, property: 'background-repeat' },
4613
+ errorMessageIconPosition: { ...errorMessage$b, property: 'background-position' },
4562
4614
  inputBackgroundColor: { ...inputField$4, property: 'background-color' },
4563
4615
  inputValueTextColor: { ...textArea$2, property: 'color' },
4564
4616
  inputPlaceholderTextColor: { ...placeholder$2, property: 'color' },
@@ -4627,6 +4679,14 @@ const textArea = {
4627
4679
  [vars$M.inputOutlineOffset]: refs.outlineOffset,
4628
4680
  [vars$M.inputResizeType]: 'vertical',
4629
4681
  [vars$M.inputMinHeight]: '5em',
4682
+
4683
+ // error message icon
4684
+ [vars$M.errorMessageIcon]: refs.errorMessageIcon,
4685
+ [vars$M.errorMessageIconSize]: refs.errorMessageIconSize,
4686
+ [vars$M.errorMessageIconPadding]: refs.errorMessageIconPadding,
4687
+ [vars$M.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
4688
+ [vars$M.errorMessageIconPosition]: refs.errorMessageIconPosition,
4689
+
4630
4690
  textAlign: {
4631
4691
  right: { [vars$M.inputTextAlign]: 'right' },
4632
4692
  left: { [vars$M.inputTextAlign]: 'left' },
@@ -4749,7 +4809,7 @@ const {
4749
4809
  checkboxLabel: checkboxLabel$1,
4750
4810
  requiredIndicator: requiredIndicator$8,
4751
4811
  helperText: helperText$7,
4752
- errorMessage: errorMessage$9,
4812
+ errorMessage: errorMessage$a,
4753
4813
  } = {
4754
4814
  host: { selector: () => ':host' },
4755
4815
  requiredIndicator: { selector: '[required] vaadin-checkbox [slot="label"]:not(:empty)::after' },
@@ -4768,7 +4828,7 @@ const CheckboxClass = compose(
4768
4828
  hostDirection: { ...host$k, property: 'direction' },
4769
4829
 
4770
4830
  fontSize: [host$k, checkboxElement, checkboxLabel$1],
4771
- fontFamily: [checkboxLabel$1, helperText$7, errorMessage$9],
4831
+ fontFamily: [checkboxLabel$1, helperText$7, errorMessage$a],
4772
4832
 
4773
4833
  labelTextColor: { ...checkboxLabel$1, property: 'color' },
4774
4834
  labelSpacing: { ...checkboxLabel$1, property: 'padding-inline-start' },
@@ -4776,7 +4836,12 @@ const CheckboxClass = compose(
4776
4836
  labelFontWeight: { ...checkboxLabel$1, property: 'font-weight' },
4777
4837
  labelRequiredIndicator: { ...requiredIndicator$8, property: 'content' },
4778
4838
 
4779
- errorMessageTextColor: { ...errorMessage$9, property: 'color' },
4839
+ errorMessageTextColor: { ...errorMessage$a, property: 'color' },
4840
+ errorMessageIcon: { ...errorMessage$a, property: 'background-image' },
4841
+ errorMessageIconSize: { ...errorMessage$a, property: 'background-size' },
4842
+ errorMessageIconPadding: { ...errorMessage$a, property: 'padding-inline-start' },
4843
+ errorMessageIconRepeat: { ...errorMessage$a, property: 'background-repeat' },
4844
+ errorMessageIconPosition: { ...errorMessage$a, property: 'background-position' },
4780
4845
 
4781
4846
  inputValueTextColor: { ...checkboxSurface, property: 'color' },
4782
4847
  inputBackgroundColor: { ...checkboxElement, property: 'background-color' },
@@ -4880,6 +4945,13 @@ const checkbox = {
4880
4945
  [vars$L.inputBackgroundColor]: refs.backgroundColor,
4881
4946
  [vars$L.inputSize]: checkboxSize,
4882
4947
  [vars$L.inputValueTextColor]: refs.valueTextColor,
4948
+
4949
+ // error message icon
4950
+ [vars$L.errorMessageIcon]: refs.errorMessageIcon,
4951
+ [vars$L.errorMessageIconSize]: refs.errorMessageIconSize,
4952
+ [vars$L.errorMessageIconPadding]: refs.errorMessageIconPadding,
4953
+ [vars$L.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
4954
+ [vars$L.errorMessageIconPosition]: refs.errorMessageIconPosition,
4883
4955
  };
4884
4956
 
4885
4957
  var checkbox$1 = /*#__PURE__*/Object.freeze({
@@ -4898,7 +4970,7 @@ const {
4898
4970
  checkboxLabel,
4899
4971
  requiredIndicator: requiredIndicator$7,
4900
4972
  helperText: helperText$6,
4901
- errorMessage: errorMessage$8,
4973
+ errorMessage: errorMessage$9,
4902
4974
  } = {
4903
4975
  host: { selector: () => ':host' },
4904
4976
  requiredIndicator: { selector: '[required] vaadin-checkbox [slot="label"]:not(:empty)::after' },
@@ -4917,7 +4989,7 @@ const SwitchToggleClass = compose(
4917
4989
  hostDirection: { ...host$j, property: 'direction' },
4918
4990
 
4919
4991
  fontSize: [component, checkboxLabel, checkboxLabel],
4920
- fontFamily: [checkboxLabel, helperText$6, errorMessage$8],
4992
+ fontFamily: [checkboxLabel, helperText$6, errorMessage$9],
4921
4993
 
4922
4994
  labelTextColor: { ...checkboxLabel, property: 'color' },
4923
4995
  labelSpacing: { ...checkboxLabel, property: 'padding-inline-start' },
@@ -4925,7 +4997,13 @@ const SwitchToggleClass = compose(
4925
4997
  labelFontWeight: { ...checkboxLabel, property: 'font-weight' },
4926
4998
  labelRequiredIndicator: { ...requiredIndicator$7, property: 'content' },
4927
4999
 
4928
- errorMessageTextColor: { ...errorMessage$8, property: 'color' },
5000
+ errorMessageTextColor: { ...errorMessage$9, property: 'color' },
5001
+
5002
+ errorMessageIcon: { ...errorMessage$9, property: 'background-image' },
5003
+ errorMessageIconSize: { ...errorMessage$9, property: 'background-size' },
5004
+ errorMessageIconPadding: { ...errorMessage$9, property: 'padding-inline-start' },
5005
+ errorMessageIconRepeat: { ...errorMessage$9, property: 'background-repeat' },
5006
+ errorMessageIconPosition: { ...errorMessage$9, property: 'background-position' },
4929
5007
 
4930
5008
  trackBorderWidth: { ...track, property: 'border-width' },
4931
5009
  trackBorderStyle: { ...track, property: 'border-style' },
@@ -5063,6 +5141,13 @@ const switchToggle = {
5063
5141
  [vars$K.labelRequiredIndicator]: refs.requiredIndicator,
5064
5142
  [vars$K.errorMessageTextColor]: refs.errorMessageTextColor,
5065
5143
 
5144
+ // error message icon
5145
+ [vars$K.errorMessageIcon]: refs.errorMessageIcon,
5146
+ [vars$K.errorMessageIconSize]: refs.errorMessageIconSize,
5147
+ [vars$K.errorMessageIconPadding]: refs.errorMessageIconPadding,
5148
+ [vars$K.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
5149
+ [vars$K.errorMessageIconPosition]: refs.errorMessageIconPosition,
5150
+
5066
5151
  _checked: {
5067
5152
  [vars$K.trackBorderColor]: refs.borderColor,
5068
5153
  [vars$K.knobLeftOffset]: `calc(100% - var(${vars$K.knobSize}) - ${knobMargin})`,
@@ -6162,7 +6247,7 @@ const {
6162
6247
  requiredIndicator: requiredIndicator$6,
6163
6248
  internalWrapper: internalWrapper$1,
6164
6249
  focusedDigitField,
6165
- errorMessage: errorMessage$7,
6250
+ errorMessage: errorMessage$8,
6166
6251
  } = {
6167
6252
  host: { selector: () => ':host' },
6168
6253
  focusedDigitField: { selector: () => `${TextFieldClass.componentName}[focused="true"]` },
@@ -6188,7 +6273,12 @@ const PasscodeClass = compose(
6188
6273
  { ...requiredIndicator$6, property: 'color' },
6189
6274
  ],
6190
6275
  labelRequiredIndicator: { ...requiredIndicator$6, property: 'content' },
6191
- errorMessageTextColor: { ...errorMessage$7, property: 'color' },
6276
+ errorMessageTextColor: { ...errorMessage$8, property: 'color' },
6277
+ errorMessageIcon: { ...errorMessage$8, property: 'background-image' },
6278
+ errorMessageIconSize: { ...errorMessage$8, property: 'background-size' },
6279
+ errorMessageIconPadding: { ...errorMessage$8, property: 'padding-inline-start' },
6280
+ errorMessageIconRepeat: { ...errorMessage$8, property: 'background-repeat' },
6281
+ errorMessageIconPosition: { ...errorMessage$8, property: 'background-position' },
6192
6282
  digitValueTextColor: {
6193
6283
  selector: TextFieldClass.componentName,
6194
6284
  property: textVars$3.inputValueTextColor,
@@ -6316,6 +6406,13 @@ const passcode = {
6316
6406
  [vars$B.focusedDigitFieldOutlineColor]: refs.outlineColor,
6317
6407
  [vars$B.digitSize]: refs.inputHeight,
6318
6408
 
6409
+ // error message icon
6410
+ [vars$B.errorMessageIcon]: refs.errorMessageIcon,
6411
+ [vars$B.errorMessageIconSize]: refs.errorMessageIconSize,
6412
+ [vars$B.errorMessageIconPadding]: refs.errorMessageIconPadding,
6413
+ [vars$B.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
6414
+ [vars$B.errorMessageIconPosition]: refs.errorMessageIconPosition,
6415
+
6319
6416
  size: {
6320
6417
  xs: { [vars$B.spinnerSize]: '15px' },
6321
6418
  sm: { [vars$B.spinnerSize]: '20px' },
@@ -6531,6 +6628,23 @@ const ComboBoxMixin = (superclass) =>
6531
6628
  this.renderItems();
6532
6629
  }
6533
6630
 
6631
+ set renderer(fn) {
6632
+ // fn takes (root, comboBox, model) as arguments
6633
+ this.baseElement.renderer = fn;
6634
+ }
6635
+
6636
+ get loading() {
6637
+ return this.getAttribute('loading') === 'true';
6638
+ }
6639
+
6640
+ set loading(val) {
6641
+ if (val) {
6642
+ this.setAttribute('loading', 'true');
6643
+ } else {
6644
+ this.removeAttribute('loading');
6645
+ }
6646
+ }
6647
+
6534
6648
  get data() {
6535
6649
  if (this.#data) return this.#data;
6536
6650
 
@@ -6574,14 +6688,20 @@ const ComboBoxMixin = (superclass) =>
6574
6688
  }
6575
6689
 
6576
6690
  renderItems() {
6577
- const template = this.getItemsTemplate();
6578
- if (template) this.innerHTML = template;
6691
+ if (this.#data || this.getAttribute('data')) {
6692
+ const template = this.getItemsTemplate();
6693
+ this.innerHTML = template;
6694
+ }
6579
6695
  }
6580
6696
 
6581
6697
  handleSelectedItem() {
6582
- const currentSelected = this.baseElement.selectedItem?.['data-id'];
6698
+ const { selectedItem } = this.baseElement;
6699
+ const currentSelected = selectedItem?.['data-id'];
6583
6700
 
6584
- this.baseElement.selectedItem = undefined;
6701
+ // If the selected item is still a child, there's no need to update the value
6702
+ if (selectedItem && Array.from(this.children).includes(selectedItem)) {
6703
+ return;
6704
+ }
6585
6705
 
6586
6706
  // if previously selected item ID exists in current children, set it as selected
6587
6707
  if (currentSelected) {
@@ -6614,7 +6734,7 @@ const ComboBoxMixin = (superclass) =>
6614
6734
  value: {
6615
6735
  ...valueDescriptor,
6616
6736
  set(val) {
6617
- if (!comboBox.baseElement.items?.length) {
6737
+ if (!comboBox.baseElement.items?.length && !comboBox.allowCustomValue) {
6618
6738
  return;
6619
6739
  }
6620
6740
 
@@ -6634,39 +6754,27 @@ const ComboBoxMixin = (superclass) =>
6634
6754
  // in order to avoid it, we are passing the children of this component
6635
6755
  // to the items & renderer props, so it will be used as the combo box items
6636
6756
  #onChildrenChange() {
6637
- const baseElement = this.shadowRoot.querySelector(this.baseSelector);
6638
6757
  const items = Array.from(this.children);
6639
6758
 
6640
6759
  // we want the data-name attribute to be accessible as an object attribute
6641
- if (items.length) {
6642
- items.forEach((node) => {
6643
- Object.defineProperty(node, 'data-name', {
6644
- value: node.getAttribute('data-name'),
6645
- configurable: true,
6646
- writable: true,
6647
- });
6648
- Object.defineProperty(node, 'data-id', {
6649
- value: node.getAttribute('data-id'),
6650
- configurable: true,
6651
- writable: true,
6652
- });
6760
+ items.forEach((node) => {
6761
+ Object.defineProperty(node, 'data-name', {
6762
+ value: node.getAttribute('data-name'),
6763
+ configurable: true,
6764
+ writable: true,
6653
6765
  });
6766
+ Object.defineProperty(node, 'data-id', {
6767
+ value: node.getAttribute('data-id'),
6768
+ configurable: true,
6769
+ writable: true,
6770
+ });
6771
+ });
6654
6772
 
6655
- baseElement.items = items;
6656
-
6657
- setTimeout(() => {
6658
- // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden
6659
- this.handleSelectedItem();
6660
- }, 0);
6661
- }
6662
-
6663
- // use vaadin combobox custom renderer to render options as HTML
6664
- // and not via default renderer, which renders only the data-name's value
6665
- // in its own HTML template
6666
- baseElement.renderer = (root, combo, model) => {
6667
- // eslint-disable-next-line no-param-reassign
6668
- root.innerHTML = model.item.outerHTML;
6669
- };
6773
+ this.baseElement.items = items;
6774
+ setTimeout(() => {
6775
+ // set timeout to ensure this runs after customValueTransformFn had the chance to be overriden
6776
+ this.handleSelectedItem();
6777
+ }, 0);
6670
6778
  }
6671
6779
 
6672
6780
  // the default vaadin behavior is to attach the overlay to the body when opened
@@ -6681,6 +6789,16 @@ const ComboBoxMixin = (superclass) =>
6681
6789
  overlay._enterModalState = () => {};
6682
6790
  }
6683
6791
 
6792
+ #overrideRenderer() {
6793
+ // use vaadin combobox custom renderer to render options as HTML
6794
+ // and not via default renderer, which renders only the data-name's value
6795
+ // in its own HTML template
6796
+ this.baseElement.renderer = (root, combo, model) => {
6797
+ // eslint-disable-next-line no-param-reassign
6798
+ root.innerHTML = model.item.outerHTML;
6799
+ };
6800
+ }
6801
+
6684
6802
  init() {
6685
6803
  super.init?.();
6686
6804
 
@@ -6695,13 +6813,11 @@ const ComboBoxMixin = (superclass) =>
6695
6813
  };
6696
6814
 
6697
6815
  this.setComboBoxDescriptor();
6698
-
6699
6816
  this.#overrideOverlaySettings();
6817
+ this.#overrideRenderer();
6700
6818
 
6701
- this.renderItems();
6702
-
6819
+ // Set up observers - order matters here since renderItems can clear innerHTML
6703
6820
  observeAttributes(this, this.renderItems.bind(this), { includeAttrs: ['data'] });
6704
-
6705
6821
  observeChildren(this, this.#onChildrenChange.bind(this));
6706
6822
 
6707
6823
  this.setDefaultValue();
@@ -6734,16 +6850,38 @@ const ComboBoxMixin = (superclass) =>
6734
6850
  }
6735
6851
 
6736
6852
  setDefaultValue() {
6737
- this.value = this.defaultValue;
6853
+ if (this.defaultValue) {
6854
+ this.value = this.defaultValue;
6855
+ }
6738
6856
  }
6739
6857
 
6740
- set value(val) {
6741
- if (val) {
6742
- const child = this.baseElement.items?.find((item) => item['data-id'] === val);
6858
+ #getChildToSelect(val) {
6859
+ return this.baseElement.items?.find((item) => item['data-id'] === val);
6860
+ }
6743
6861
 
6744
- if (child) {
6745
- this.baseElement.selectedItem = child;
6746
- }
6862
+ #preventSelectedItemChangeEventIfNeeded(val, selectedChild) {
6863
+ // If the actual value didn't change, but the selected item did (the element changed),
6864
+ // we want to stop the event propagation since it's not a real change
6865
+ const shouldPreventItemChangeEvent =
6866
+ val === this.value && selectedChild !== this.baseElement.selectedItem;
6867
+ if (shouldPreventItemChangeEvent) {
6868
+ this.baseElement.addEventListener(
6869
+ 'selected-item-changed',
6870
+ (e) => {
6871
+ e.stopImmediatePropagation();
6872
+ },
6873
+ { once: true, capture: true }
6874
+ );
6875
+ }
6876
+ }
6877
+
6878
+ set value(val) {
6879
+ const selectedChild = this.#getChildToSelect(val);
6880
+ this.#preventSelectedItemChangeEventIfNeeded(val, selectedChild);
6881
+ if (val && selectedChild) {
6882
+ this.baseElement.selectedItem = selectedChild;
6883
+ } else if (!selectedChild && this.allowCustomValue) {
6884
+ this.baseElement.value = val;
6747
6885
  } else {
6748
6886
  this.baseElement.selectedItem = undefined;
6749
6887
  }
@@ -6770,7 +6908,7 @@ const {
6770
6908
  label: label$5,
6771
6909
  requiredIndicator: requiredIndicator$5,
6772
6910
  helperText: helperText$5,
6773
- errorMessage: errorMessage$6,
6911
+ errorMessage: errorMessage$7,
6774
6912
  } = {
6775
6913
  host: { selector: () => ':host' },
6776
6914
  inputField: { selector: '::part(input-field)' },
@@ -6791,14 +6929,19 @@ const ComboBoxClass = compose(
6791
6929
  hostDirection: { ...host$e, property: 'direction' },
6792
6930
  // we apply font-size also on the host so we can set its width with em
6793
6931
  fontSize: [{}, host$e],
6794
- fontFamily: [label$5, placeholder$1, inputField$3, helperText$5, errorMessage$6],
6932
+ fontFamily: [label$5, placeholder$1, inputField$3, helperText$5, errorMessage$7],
6795
6933
  labelFontSize: { ...label$5, property: 'font-size' },
6796
6934
  labelFontWeight: { ...label$5, property: 'font-weight' },
6797
6935
  labelTextColor: [
6798
6936
  { ...label$5, property: 'color' },
6799
6937
  { ...requiredIndicator$5, property: 'color' },
6800
6938
  ],
6801
- errorMessageTextColor: { ...errorMessage$6, property: 'color' },
6939
+ errorMessageTextColor: { ...errorMessage$7, property: 'color' },
6940
+ errorMessageIcon: { ...errorMessage$7, property: 'background-image' },
6941
+ errorMessageIconSize: { ...errorMessage$7, property: 'background-size' },
6942
+ errorMessageIconPadding: { ...errorMessage$7, property: 'padding-inline-start' },
6943
+ errorMessageIconRepeat: { ...errorMessage$7, property: 'background-repeat' },
6944
+ errorMessageIconPosition: { ...errorMessage$7, property: 'background-position' },
6802
6945
  inputHeight: { ...inputField$3, property: 'height' },
6803
6946
  inputBackgroundColor: { ...inputField$3, property: 'background-color' },
6804
6947
  inputBorderColor: { ...inputField$3, property: 'border-color' },
@@ -6873,7 +7016,10 @@ const ComboBoxClass = compose(
6873
7016
  name: 'overlay',
6874
7017
  selector: '',
6875
7018
  mappings: {
6876
- backgroundColor: { selector: 'vaadin-combo-box-scroller' },
7019
+ backgroundColor: [
7020
+ { selector: 'vaadin-combo-box-scroller' },
7021
+ { selector: 'vaadin-combo-box-overlay::part(overlay)' },
7022
+ ],
6877
7023
  minHeight: { selector: 'vaadin-combo-box-overlay' },
6878
7024
  margin: { selector: 'vaadin-combo-box-overlay' },
6879
7025
  cursor: { selector: 'vaadin-combo-box-item' },
@@ -6886,6 +7032,24 @@ const ComboBoxClass = compose(
6886
7032
  property: 'padding-inline-start',
6887
7033
  },
6888
7034
  itemPaddingInlineEnd: { selector: 'vaadin-combo-box-item', property: 'padding-inline-end' },
7035
+
7036
+ loaderTop: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'top' },
7037
+ loaderLeft: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'left' },
7038
+ loaderRight: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'right' },
7039
+ loaderMargin: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'margin' },
7040
+ loaderWidth: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'width' },
7041
+ loaderHeight: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'height' },
7042
+ loaderBorder: { selector: 'vaadin-combo-box-overlay::part(loader)', property: 'border' },
7043
+ loaderBorderColor: {
7044
+ selector: 'vaadin-combo-box-overlay::part(loader)',
7045
+ property: 'border-color',
7046
+ },
7047
+ loaderBorderRadius: {
7048
+ selector: 'vaadin-combo-box-overlay::part(loader)',
7049
+ property: 'border-radius',
7050
+ },
7051
+ contentHeight: { selector: 'vaadin-combo-box-overlay::part(content)', property: 'height' },
7052
+ contentOpacity: { selector: 'vaadin-combo-box-overlay::part(content)', property: 'opacity' },
6889
7053
  },
6890
7054
  forward: {
6891
7055
  include: false,
@@ -6933,6 +7097,10 @@ const ComboBoxClass = compose(
6933
7097
  align-self: center;
6934
7098
  }
6935
7099
 
7100
+ vaadin-combo-box[hide-toggle-button="true"]::part(toggle-button) {
7101
+ display: none;
7102
+ }
7103
+
6936
7104
  vaadin-combo-box[label-type="floating"]:not([focused])[readonly] > input:placeholder-shown {
6937
7105
  opacity: 0;
6938
7106
  }
@@ -6947,7 +7115,7 @@ const ComboBoxClass = compose(
6947
7115
  // with the same name. Including it will cause Vaadin to calculate NaN size,
6948
7116
  // and reset items to an empty array, and opening the list box with no items
6949
7117
  // to display.
6950
- excludeAttrsSync: ['tabindex', 'size', 'data'],
7118
+ excludeAttrsSync: ['tabindex', 'size', 'data', 'loading'],
6951
7119
  componentName: componentName$F,
6952
7120
  includeForwardProps: ['items', 'renderer', 'selectedItem'],
6953
7121
  })
@@ -6996,6 +7164,13 @@ const comboBox = {
6996
7164
  [vars$y.valueInputHeight]: refs.valueInputHeight,
6997
7165
  [vars$y.valueInputMarginBottom]: refs.valueInputMarginBottom,
6998
7166
 
7167
+ // error message icon
7168
+ [vars$y.errorMessageIcon]: refs.errorMessageIcon,
7169
+ [vars$y.errorMessageIconSize]: refs.errorMessageIconSize,
7170
+ [vars$y.errorMessageIconPadding]: refs.errorMessageIconPadding,
7171
+ [vars$y.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
7172
+ [vars$y.errorMessageIconPosition]: refs.errorMessageIconPosition,
7173
+
6999
7174
  _readonly: {
7000
7175
  [vars$y.inputDropdownButtonCursor]: 'default',
7001
7176
  },
@@ -7011,6 +7186,25 @@ const comboBox = {
7011
7186
  // Overlay direct theme:
7012
7187
  [vars$y.overlay.minHeight]: '400px',
7013
7188
  [vars$y.overlay.margin]: '0',
7189
+
7190
+ [vars$y.overlay.contentHeight]: '100%',
7191
+ [vars$y.overlay.contentOpacity]: '1',
7192
+ _loading: {
7193
+ [vars$y.overlay.loaderTop]: '50%',
7194
+ [vars$y.overlay.loaderLeft]: '50%',
7195
+ [vars$y.overlay.loaderRight]: 'auto',
7196
+ // Margin has to be negative to center the loader, "transform" can't be used because the animation uses it
7197
+ // Margin has to be half of the width/height of the loader to center it
7198
+ [vars$y.overlay.loaderMargin]: '-15px 0 0 -15px',
7199
+ [vars$y.overlay.loaderWidth]: '30px',
7200
+ [vars$y.overlay.loaderHeight]: '30px',
7201
+ [vars$y.overlay.loaderBorder]: '2px solid transparent',
7202
+ [vars$y.overlay
7203
+ .loaderBorderColor]: `${globalRefs$m.colors.primary.highlight} ${globalRefs$m.colors.primary.highlight} ${globalRefs$m.colors.primary.main} ${globalRefs$m.colors.primary.main}`,
7204
+ [vars$y.overlay.loaderBorderRadius]: '50%',
7205
+ [vars$y.overlay.contentHeight]: '100px',
7206
+ [vars$y.overlay.contentOpacity]: '0',
7207
+ },
7014
7208
  };
7015
7209
 
7016
7210
  var comboBox$1 = /*#__PURE__*/Object.freeze({
@@ -8370,7 +8564,7 @@ const {
8370
8564
  countryCodeInput,
8371
8565
  phoneInput: phoneInput$1,
8372
8566
  separator: separator$1,
8373
- errorMessage: errorMessage$5,
8567
+ errorMessage: errorMessage$6,
8374
8568
  helperText: helperText$4,
8375
8569
  } = {
8376
8570
  host: { selector: () => ':host' },
@@ -8402,7 +8596,7 @@ const PhoneFieldClass = compose(
8402
8596
  ],
8403
8597
  fontFamily: [
8404
8598
  label$4,
8405
- errorMessage$5,
8599
+ errorMessage$6,
8406
8600
  helperText$4,
8407
8601
  {
8408
8602
  ...countryCodeInput,
@@ -8452,7 +8646,13 @@ const PhoneFieldClass = compose(
8452
8646
  { ...requiredIndicator$4, property: 'color' },
8453
8647
  ],
8454
8648
  labelRequiredIndicator: { ...requiredIndicator$4, property: 'content' },
8455
- errorMessageTextColor: { ...errorMessage$5, property: 'color' },
8649
+
8650
+ errorMessageTextColor: { ...errorMessage$6, property: 'color' },
8651
+ errorMessageIcon: { ...errorMessage$6, property: 'background-image' },
8652
+ errorMessageIconSize: { ...errorMessage$6, property: 'background-size' },
8653
+ errorMessageIconPadding: { ...errorMessage$6, property: 'padding-inline-start' },
8654
+ errorMessageIconRepeat: { ...errorMessage$6, property: 'background-repeat' },
8655
+ errorMessageIconPosition: { ...errorMessage$6, property: 'background-position' },
8456
8656
 
8457
8657
  inputValueTextColor: [
8458
8658
  { ...phoneInput$1, property: textVars$2.inputValueTextColor },
@@ -8612,6 +8812,13 @@ const phoneField = {
8612
8812
  [vars$w.valueInputHeight]: refs.valueInputHeight,
8613
8813
  [vars$w.valueInputMarginBottom]: refs.valueInputMarginBottom,
8614
8814
 
8815
+ // error message icon
8816
+ [vars$w.errorMessageIcon]: refs.errorMessageIcon,
8817
+ [vars$w.errorMessageIconSize]: refs.errorMessageIconSize,
8818
+ [vars$w.errorMessageIconPadding]: refs.errorMessageIconPadding,
8819
+ [vars$w.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
8820
+ [vars$w.errorMessageIconPosition]: refs.errorMessageIconPosition,
8821
+
8615
8822
  // '@overlay': {
8616
8823
  // overlayItemBackgroundColor: 'red'
8617
8824
  // }
@@ -8683,7 +8890,7 @@ const {
8683
8890
  inputField: inputField$1,
8684
8891
  inputFieldInternal,
8685
8892
  phoneInput,
8686
- errorMessage: errorMessage$4,
8893
+ errorMessage: errorMessage$5,
8687
8894
  helperText: helperText$3,
8688
8895
  } = {
8689
8896
  host: { selector: () => ':host' },
@@ -8711,7 +8918,7 @@ const PhoneFieldInputBoxClass = compose(
8711
8918
  property: TextFieldClass.cssVarList.fontSize,
8712
8919
  },
8713
8920
  ],
8714
- fontFamily: [label$3, errorMessage$4, helperText$3],
8921
+ fontFamily: [label$3, errorMessage$5, helperText$3],
8715
8922
  hostWidth: { ...host$c, property: 'width' },
8716
8923
  hostMinWidth: { ...host$c, property: 'min-width' },
8717
8924
  hostDirection: { ...host$c, property: 'direction' },
@@ -8736,7 +8943,13 @@ const PhoneFieldInputBoxClass = compose(
8736
8943
  { ...requiredIndicator$3, property: 'color' },
8737
8944
  ],
8738
8945
  labelRequiredIndicator: { ...requiredIndicator$3, property: 'content' },
8739
- errorMessageTextColor: { ...errorMessage$4, property: 'color' },
8946
+ errorMessageTextColor: { ...errorMessage$5, property: 'color' },
8947
+
8948
+ errorMessageIcon: { ...errorMessage$5, property: 'background-image' },
8949
+ errorMessageIconSize: { ...errorMessage$5, property: 'background-size' },
8950
+ errorMessageIconPadding: { ...errorMessage$5, property: 'padding-inline-start' },
8951
+ errorMessageIconRepeat: { ...errorMessage$5, property: 'background-repeat' },
8952
+ errorMessageIconPosition: { ...errorMessage$5, property: 'background-position' },
8740
8953
 
8741
8954
  inputValueTextColor: { ...phoneInput, property: textVars$1.inputValueTextColor },
8742
8955
 
@@ -8874,6 +9087,13 @@ const phoneInputBoxField = {
8874
9087
  [vars$v.valueInputMarginBottom]: refs.valueInputMarginBottom,
8875
9088
  [vars$v.inputHorizontalPadding]: '0',
8876
9089
 
9090
+ // error message icon
9091
+ [vars$v.errorMessageIcon]: refs.errorMessageIcon,
9092
+ [vars$v.errorMessageIconSize]: refs.errorMessageIconSize,
9093
+ [vars$v.errorMessageIconPadding]: refs.errorMessageIconPadding,
9094
+ [vars$v.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
9095
+ [vars$v.errorMessageIconPosition]: refs.errorMessageIconPosition,
9096
+
8877
9097
  _fullWidth: {
8878
9098
  [vars$v.hostWidth]: refs.width,
8879
9099
  },
@@ -9196,7 +9416,7 @@ const {
9196
9416
  host: host$a,
9197
9417
  label: label$2,
9198
9418
  internalInputsWrapper,
9199
- errorMessage: errorMessage$3,
9419
+ errorMessage: errorMessage$4,
9200
9420
  helperText: helperText$2,
9201
9421
  passwordInput,
9202
9422
  policyPreview,
@@ -9221,11 +9441,16 @@ const NewPasswordClass = compose(
9221
9441
  property: PasswordClass.cssVarList.fontSize,
9222
9442
  },
9223
9443
  ],
9224
- fontFamily: [label$2, errorMessage$3, helperText$2],
9444
+ fontFamily: [label$2, errorMessage$4, helperText$2],
9225
9445
  labelFontSize: { ...label$2, property: 'font-size' },
9226
9446
  labelFontWeight: { ...label$2, property: 'font-weight' },
9227
9447
  labelTextColor: { ...label$2, property: 'color' },
9228
- errorMessageTextColor: { ...errorMessage$3, property: 'color' },
9448
+ errorMessageTextColor: { ...errorMessage$4, property: 'color' },
9449
+ errorMessageIcon: { ...errorMessage$4, property: 'background-image' },
9450
+ errorMessageIconSize: { ...errorMessage$4, property: 'background-size' },
9451
+ errorMessageIconPadding: { ...errorMessage$4, property: 'padding-inline-start' },
9452
+ errorMessageIconRepeat: { ...errorMessage$4, property: 'background-repeat' },
9453
+ errorMessageIconPosition: { ...errorMessage$4, property: 'background-position' },
9229
9454
  hostWidth: { ...host$a, property: 'width' },
9230
9455
  hostMinWidth: { ...host$a, property: 'min-width' },
9231
9456
  hostDirection: [
@@ -9330,6 +9555,13 @@ const newPassword = {
9330
9555
  [vars$u.policyPreviewPadding]: globalRefs$l.spacing.lg,
9331
9556
  [vars$u.valueInputHeight]: refs.valueInputHeight,
9332
9557
 
9558
+ // error message icon
9559
+ [vars$u.errorMessageIcon]: refs.errorMessageIcon,
9560
+ [vars$u.errorMessageIconSize]: refs.errorMessageIconSize,
9561
+ [vars$u.errorMessageIconPadding]: refs.errorMessageIconPadding,
9562
+ [vars$u.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
9563
+ [vars$u.errorMessageIconPosition]: refs.errorMessageIconPosition,
9564
+
9333
9565
  _required: {
9334
9566
  // NewPassword doesn't pass `required` attribute to its Password components.
9335
9567
  // That's why we fake the required indicator on each input.
@@ -10053,7 +10285,7 @@ const buttonSelectionGroupBaseMixin = (superclass) =>
10053
10285
  }
10054
10286
  };
10055
10287
 
10056
- const { host: host$8, label: label$1, requiredIndicator: requiredIndicator$1, internalWrapper, errorMessage: errorMessage$2 } = {
10288
+ const { host: host$8, label: label$1, requiredIndicator: requiredIndicator$1, internalWrapper, errorMessage: errorMessage$3 } = {
10057
10289
  host: { selector: () => ':host' },
10058
10290
  label: { selector: '::part(label)' },
10059
10291
  requiredIndicator: { selector: '[required]::part(required-indicator)::after' },
@@ -10070,7 +10302,12 @@ const buttonSelectionGroupMappings = {
10070
10302
  { ...requiredIndicator$1, property: 'color' },
10071
10303
  ],
10072
10304
  labelRequiredIndicator: { ...requiredIndicator$1, property: 'content' },
10073
- errorMessageTextColor: { ...errorMessage$2, property: 'color' },
10305
+ errorMessageTextColor: { ...errorMessage$3, property: 'color' },
10306
+ errorMessageIcon: { ...errorMessage$3, property: 'background-image' },
10307
+ errorMessageIconSize: { ...errorMessage$3, property: 'background-size' },
10308
+ errorMessageIconPadding: { ...errorMessage$3, property: 'padding-inline-start' },
10309
+ errorMessageIconRepeat: { ...errorMessage$3, property: 'background-repeat' },
10310
+ errorMessageIconPosition: { ...errorMessage$3, property: 'background-position' },
10074
10311
  itemsSpacing: { ...internalWrapper, property: 'gap' },
10075
10312
  };
10076
10313
 
@@ -10186,9 +10423,17 @@ const createBaseButtonSelectionGroupMappings = (vars) => ({
10186
10423
  [vars.fontFamily]: refs.fontFamily,
10187
10424
  [vars.labelTextColor]: refs.labelTextColor,
10188
10425
  [vars.labelRequiredIndicator]: refs.requiredIndicator,
10189
- [vars.errorMessageTextColor]: refs.errorMessageTextColor,
10190
10426
  [vars.itemsSpacing]: globalRefs$j.spacing.sm,
10191
10427
  [vars.hostWidth]: refs.width,
10428
+
10429
+ [vars.errorMessageTextColor]: refs.errorMessageTextColor,
10430
+
10431
+ // error message icon
10432
+ [vars.errorMessageIcon]: refs.errorMessageIcon,
10433
+ [vars.errorMessageIconSize]: refs.errorMessageIconSize,
10434
+ [vars.errorMessageIconPadding]: refs.errorMessageIconPadding,
10435
+ [vars.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
10436
+ [vars.errorMessageIconPosition]: refs.errorMessageIconPosition,
10192
10437
  });
10193
10438
 
10194
10439
  const vars$r = ButtonSelectionGroupClass.cssVarList;
@@ -11548,7 +11793,7 @@ const {
11548
11793
  label,
11549
11794
  requiredIndicator,
11550
11795
  helperText: helperText$1,
11551
- errorMessage: errorMessage$1,
11796
+ errorMessage: errorMessage$2,
11552
11797
  chip,
11553
11798
  chipLabel,
11554
11799
  overflowChipFirstBorder,
@@ -11582,14 +11827,19 @@ const MultiSelectComboBoxClass = compose(
11582
11827
  // we apply font-size also on the host so we can set its width with em
11583
11828
  fontSize: [{}, host$6],
11584
11829
  chipFontSize: { ...chipLabel, property: 'font-size' },
11585
- fontFamily: [label, placeholder, inputField, helperText$1, errorMessage$1, chipLabel],
11830
+ fontFamily: [label, placeholder, inputField, helperText$1, errorMessage$2, chipLabel],
11586
11831
  labelFontSize: { ...label, property: 'font-size' },
11587
11832
  labelFontWeight: { ...label, property: 'font-weight' },
11588
11833
  labelTextColor: [
11589
11834
  { ...label, property: 'color' },
11590
11835
  { ...requiredIndicator, property: 'color' },
11591
11836
  ],
11592
- errorMessageTextColor: { ...errorMessage$1, property: 'color' },
11837
+ errorMessageTextColor: { ...errorMessage$2, property: 'color' },
11838
+ errorMessageIcon: { ...errorMessage$2, property: 'background-image' },
11839
+ errorMessageIconSize: { ...errorMessage$2, property: 'background-size' },
11840
+ errorMessageIconPadding: { ...errorMessage$2, property: 'padding-inline-start' },
11841
+ errorMessageIconRepeat: { ...errorMessage$2, property: 'background-repeat' },
11842
+ errorMessageIconPosition: { ...errorMessage$2, property: 'background-position' },
11593
11843
  inputHeight: { ...inputField, property: 'min-height' },
11594
11844
  inputBackgroundColor: { ...inputField, property: 'background-color' },
11595
11845
  inputBorderColor: { ...inputField, property: 'border-color' },
@@ -11836,6 +12086,13 @@ const multiSelectComboBox = {
11836
12086
  [vars$m.placeholderOpacity]: refs.placeholderOpacity,
11837
12087
  [vars$m.inputVerticalAlignment]: refs.inputVerticalAlignment,
11838
12088
 
12089
+ // error message icon
12090
+ [vars$m.errorMessageIcon]: refs.errorMessageIcon,
12091
+ [vars$m.errorMessageIconSize]: refs.errorMessageIconSize,
12092
+ [vars$m.errorMessageIconPadding]: refs.errorMessageIconPadding,
12093
+ [vars$m.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
12094
+ [vars$m.errorMessageIconPosition]: refs.errorMessageIconPosition,
12095
+
11839
12096
  labelType: {
11840
12097
  floating: {
11841
12098
  [vars$m.inputHorizontalPadding]: '0.25em',
@@ -12198,6 +12455,9 @@ const customMixin$4 = (superclass) =>
12198
12455
  'invalid',
12199
12456
  'readonly',
12200
12457
  'disabled',
12458
+ 'st-error-message-icon',
12459
+ 'st-error-message-icon-size',
12460
+ 'st-error-message-icon-padding',
12201
12461
  ],
12202
12462
  });
12203
12463
 
@@ -12212,7 +12472,7 @@ const customMixin$4 = (superclass) =>
12212
12472
  const {
12213
12473
  host: host$4,
12214
12474
  helperText,
12215
- errorMessage,
12475
+ errorMessage: errorMessage$1,
12216
12476
  mappingItem,
12217
12477
  labels,
12218
12478
  labelsText,
@@ -12242,7 +12502,7 @@ const MappingsFieldClass = compose(
12242
12502
  hostDirection: { ...host$4, property: 'direction' },
12243
12503
  // we apply font-size also on the host so we can set its width with em
12244
12504
  fontSize: [{}, host$4, { ...separator, property: 'margin-top' }],
12245
- fontFamily: [helperText, errorMessage, labels],
12505
+ fontFamily: [helperText, errorMessage$1, labels],
12246
12506
  separatorFontSize: { ...separator, property: 'font-size' },
12247
12507
  labelsFontSize: { ...labelsText, property: 'font-size' },
12248
12508
  labelsLineHeight: [
@@ -12870,9 +13130,10 @@ const customMixin$3 = (superclass) =>
12870
13130
  }
12871
13131
  };
12872
13132
 
12873
- const { host: host$1, groupInput } = {
13133
+ const { host: host$1, groupInput, errorMessage } = {
12874
13134
  host: { selector: () => ':host' },
12875
13135
  groupInput: { selector: 'descope-text-field' },
13136
+ errorMessage: { selector: '::part(error-message)' },
12876
13137
  };
12877
13138
 
12878
13139
  const SamlGroupMappingsClass = compose(
@@ -12881,6 +13142,11 @@ const SamlGroupMappingsClass = compose(
12881
13142
  hostWidth: { ...host$1, property: 'width' },
12882
13143
  hostDirection: { ...host$1, property: 'direction' },
12883
13144
  groupNameInputMarginBottom: { ...groupInput, property: 'margin-bottom' },
13145
+ errorMessageIcon: { ...errorMessage, property: 'background-image' },
13146
+ errorMessageIconSize: { ...errorMessage, property: 'background-size' },
13147
+ errorMessageIconPadding: { ...errorMessage, property: 'padding-inline-start' },
13148
+ errorMessageIconRepeat: { ...errorMessage, property: 'background-repeat' },
13149
+ errorMessageIconPosition: { ...errorMessage, property: 'background-position' },
12884
13150
  },
12885
13151
  }),
12886
13152
  draggableMixin,
@@ -12936,6 +13202,13 @@ const samlGroupMappings = {
12936
13202
  [vars$g.hostWidth]: refs.width,
12937
13203
  [vars$g.hostDirection]: refs.direction,
12938
13204
  [vars$g.groupNameInputMarginBottom]: '1em',
13205
+
13206
+ // error message icon
13207
+ [vars$g.errorMessageIcon]: refs.errorMessageIcon,
13208
+ [vars$g.errorMessageIconSize]: refs.errorMessageIconSize,
13209
+ [vars$g.errorMessageIconPadding]: refs.errorMessageIconPadding,
13210
+ [vars$g.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
13211
+ [vars$g.errorMessageIconPosition]: refs.errorMessageIconPosition,
12939
13212
  };
12940
13213
 
12941
13214
  var samlGroupMappings$1 = /*#__PURE__*/Object.freeze({
@@ -13627,6 +13900,11 @@ const radioGroup = {
13627
13900
  [vars$c.labelTextColor]: refs.labelTextColor,
13628
13901
  [vars$c.labelRequiredIndicator]: refs.requiredIndicator,
13629
13902
  [vars$c.errorMessageTextColor]: refs.errorMessageTextColor,
13903
+ [vars$c.errorMessageIcon]: refs.errorMessageIcon,
13904
+ [vars$c.errorMessageIconSize]: refs.errorMessageIconSize,
13905
+ [vars$c.errorMessageIconPadding]: refs.errorMessageIconPadding,
13906
+ [vars$c.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
13907
+ [vars$c.errorMessageIconPosition]: refs.errorMessageIconPosition,
13630
13908
  [vars$c.helperTextColor]: refs.helperTextColor,
13631
13909
  [vars$c.itemsLabelColor]: globalRefs$7.colors.surface.contrast,
13632
13910
 
@@ -14262,7 +14540,9 @@ class RawCalendar extends BaseInputClass$1 {
14262
14540
  this.monthInput.value = month;
14263
14541
  // For the yearInput we update the base element directly to properly trigger the change event
14264
14542
  // since this can be a custom value
14265
- this.yearInput.baseElement.value = year;
14543
+ setTimeout(() => {
14544
+ this.yearInput.baseElement.value = year;
14545
+ });
14266
14546
  }
14267
14547
  }
14268
14548
 
@@ -14401,11 +14681,10 @@ class RawCalendar extends BaseInputClass$1 {
14401
14681
  }
14402
14682
 
14403
14683
  onMonthNamesChange() {
14404
- Array.from(this.monthInput?.children || []).forEach((child, index) => {
14405
- const month = this.monthNames[index];
14406
- child.setAttribute('data-name', month);
14407
- // eslint-disable-next-line no-param-reassign
14408
- child.textContent = month;
14684
+ setTimeout(() => {
14685
+ if (this.monthInput) {
14686
+ this.monthInput.innerHTML = getMonthsOptions(this.monthNames);
14687
+ }
14409
14688
  });
14410
14689
  }
14411
14690
 
@@ -16394,6 +16673,9 @@ const attrsToSync$1 = [
16394
16673
  'answer-label',
16395
16674
  'answer-placeholder',
16396
16675
  'answer-data-errormessage-value-missing',
16676
+ 'st-error-message-icon',
16677
+ 'st-error-message-icon-size',
16678
+ 'st-error-message-icon-padding',
16397
16679
  ];
16398
16680
 
16399
16681
  const attrsToReRender$1 = ['count', 'questions'];
@@ -16635,6 +16917,9 @@ const textFieldsAttrs = [
16635
16917
  'size',
16636
16918
  'answer-placeholder',
16637
16919
  'answer-data-errormessage-value-missing',
16920
+ 'st-error-message-icon',
16921
+ 'st-error-message-icon-size',
16922
+ 'st-error-message-icon-padding',
16638
16923
  ];
16639
16924
 
16640
16925
  const textsAttrs = ['question-mode'];
@@ -16823,6 +17108,27 @@ const SecurityQuestionsVerifyClass = compose(
16823
17108
  selector: () => TextClass.componentName,
16824
17109
  property: 'cursor',
16825
17110
  },
17111
+
17112
+ errorMessageIcon: {
17113
+ selector: () => TextClass.componentName,
17114
+ property: TextClass.cssVarList.errorMessageIcon,
17115
+ },
17116
+ errorMessageIconSize: {
17117
+ selector: () => TextClass.componentName,
17118
+ property: TextClass.cssVarList.errorMessageSize,
17119
+ },
17120
+ errorMessageIconPadding: {
17121
+ selector: () => TextClass.componentName,
17122
+ property: TextClass.cssVarList.errorMessagePadding,
17123
+ },
17124
+ errorMessageIconRepeat: {
17125
+ selector: () => TextClass.componentName,
17126
+ property: TextClass.cssVarList.errorMessageRepeat,
17127
+ },
17128
+ errorMessageIconPosition: {
17129
+ selector: () => TextClass.componentName,
17130
+ property: TextClass.cssVarList.errorMessagePosition,
17131
+ },
16826
17132
  },
16827
17133
  }),
16828
17134
  draggableMixin,
@@ -16865,6 +17171,9 @@ const attrs = {
16865
17171
  'readonly',
16866
17172
  'required',
16867
17173
  'st-host-direction',
17174
+ 'st-error-message-icon',
17175
+ 'st-error-message-icon-size',
17176
+ 'st-error-message-icon-padding',
16868
17177
  ],
16869
17178
  email: [
16870
17179
  'label',
@@ -17150,6 +17459,56 @@ const HybridFieldClass = compose(
17150
17459
  { selector: () => 'descope-phone-field', property: 'direction' },
17151
17460
  { selector: () => 'descope-phone-input-box-field', property: 'direction' },
17152
17461
  ],
17462
+ errorMessageIcon: [
17463
+ {
17464
+ selector: () => PhoneFieldClass.componentName,
17465
+ property: PhoneFieldClass.cssVarList.errorMessageIcon,
17466
+ },
17467
+ {
17468
+ selector: () => PhoneFieldInputBoxClass.componentName,
17469
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIcon,
17470
+ },
17471
+ ],
17472
+ errorMessageIconSize: [
17473
+ {
17474
+ selector: () => PhoneFieldClass.componentName,
17475
+ property: PhoneFieldClass.cssVarList.errorMessageIconSize,
17476
+ },
17477
+ {
17478
+ selector: () => PhoneFieldInputBoxClass.componentName,
17479
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconSize,
17480
+ },
17481
+ ],
17482
+ errorMessageIconPadding: [
17483
+ {
17484
+ selector: () => PhoneFieldClass.componentName,
17485
+ property: PhoneFieldClass.cssVarList.errorMessageIconPadding,
17486
+ },
17487
+ {
17488
+ selector: () => PhoneFieldInputBoxClass.componentName,
17489
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconPadding,
17490
+ },
17491
+ ],
17492
+ errorMessageIconRepeat: [
17493
+ {
17494
+ selector: () => PhoneFieldClass.componentName,
17495
+ property: PhoneFieldClass.cssVarList.errorMessageIconRepeat,
17496
+ },
17497
+ {
17498
+ selector: () => PhoneFieldInputBoxClass.componentName,
17499
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconRepeat,
17500
+ },
17501
+ ],
17502
+ errorMessageIconPosition: [
17503
+ {
17504
+ selector: () => PhoneFieldClass.componentName,
17505
+ property: PhoneFieldClass.cssVarList.errorMessageIconPosition,
17506
+ },
17507
+ {
17508
+ selector: () => PhoneFieldInputBoxClass.componentName,
17509
+ property: PhoneFieldInputBoxClass.cssVarList.errorMessageIconPosition,
17510
+ },
17511
+ ],
17153
17512
  },
17154
17513
  }),
17155
17514
  draggableMixin,
@@ -17161,6 +17520,13 @@ const vars$1 = HybridFieldClass.cssVarList;
17161
17520
  const hybridField = {
17162
17521
  [vars$1.hostDirection]: refs.direction,
17163
17522
 
17523
+ // error message icon
17524
+ [vars$1.errorMessageIcon]: refs.errorMessageIcon,
17525
+ [vars$1.errorMessageIconSize]: refs.errorMessageIconSize,
17526
+ [vars$1.errorMessageIconPadding]: refs.errorMessageIconPadding,
17527
+ [vars$1.errorMessageIconRepeat]: refs.errorMessageIconRepeat,
17528
+ [vars$1.errorMessageIconPosition]: refs.errorMessageIconPosition,
17529
+
17164
17530
  _fullWidth: {
17165
17531
  [vars$1.hostWidth]: '100%',
17166
17532
  },
@@ -17316,6 +17682,10 @@ class RawRecaptcha extends BaseClass {
17316
17682
  return;
17317
17683
  }
17318
17684
 
17685
+ this.toggleRecaptchaEles(enabled);
17686
+ }
17687
+
17688
+ toggleRecaptchaEles(enabled) {
17319
17689
  if (enabled) {
17320
17690
  this.recaptchaEle.style.display = '';
17321
17691
  this.mockRecaptchaEle.style.display = 'none';
@@ -17380,6 +17750,7 @@ class RawRecaptcha extends BaseClass {
17380
17750
  this.mockRecaptchaEle.style.display = 'none';
17381
17751
  this.badge.classList.add('hidden');
17382
17752
  } else {
17753
+ this.toggleRecaptchaEles(this.enabled);
17383
17754
  this.badge.classList.remove('hidden');
17384
17755
  }
17385
17756
  }