@aurodesignsystem/auro-formkit 3.4.1-rc-602.2.1 → 3.5.0-rc-627.1

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 (57) hide show
  1. package/components/checkbox/demo/api.md +1 -1
  2. package/components/checkbox/demo/api.min.js +31 -8
  3. package/components/checkbox/demo/index.min.js +31 -8
  4. package/components/checkbox/dist/auro-checkbox.d.ts +13 -6
  5. package/components/checkbox/dist/index.js +31 -8
  6. package/components/checkbox/dist/registered.js +31 -8
  7. package/components/combobox/demo/api.md +25 -25
  8. package/components/combobox/demo/api.min.js +48 -13
  9. package/components/combobox/demo/index.min.js +48 -13
  10. package/components/combobox/dist/auro-combobox.d.ts +2 -4
  11. package/components/combobox/dist/index.js +47 -12
  12. package/components/combobox/dist/registered.js +47 -12
  13. package/components/counter/demo/api.min.js +14 -1
  14. package/components/counter/demo/index.min.js +14 -1
  15. package/components/counter/dist/index.js +14 -1
  16. package/components/counter/dist/registered.js +14 -1
  17. package/components/datepicker/demo/api.min.js +45 -12
  18. package/components/datepicker/demo/index.min.js +45 -12
  19. package/components/datepicker/dist/index.js +45 -12
  20. package/components/datepicker/dist/registered.js +45 -12
  21. package/components/form/demo/api.md +1 -5
  22. package/components/form/demo/api.min.js +8 -2
  23. package/components/form/demo/index.html +1 -0
  24. package/components/form/demo/index.md +321 -27
  25. package/components/form/demo/index.min.js +8 -2
  26. package/components/form/demo/registerDemoDeps.js +1 -0
  27. package/components/form/dist/auro-form.d.ts +12 -6
  28. package/components/form/dist/index.js +8 -2
  29. package/components/form/dist/registered.js +8 -2
  30. package/components/input/demo/api.md +1 -1
  31. package/components/input/demo/api.min.js +31 -11
  32. package/components/input/demo/index.min.js +31 -11
  33. package/components/input/dist/base-input.d.ts +13 -6
  34. package/components/input/dist/index.js +31 -11
  35. package/components/input/dist/registered.js +31 -11
  36. package/components/menu/demo/api.md +11 -17
  37. package/components/menu/demo/api.min.js +1 -1
  38. package/components/menu/demo/index.min.js +1 -1
  39. package/components/menu/dist/auro-menu.d.ts +1 -1
  40. package/components/menu/dist/index.js +1 -1
  41. package/components/menu/dist/registered.js +1 -1
  42. package/components/radio/demo/api.md +1 -1
  43. package/components/radio/demo/api.min.js +32 -4
  44. package/components/radio/demo/index.min.js +32 -4
  45. package/components/radio/dist/auro-radio.d.ts +14 -3
  46. package/components/radio/dist/index.js +32 -4
  47. package/components/radio/dist/registered.js +32 -4
  48. package/components/select/demo/api.html +15 -0
  49. package/components/select/demo/api.md +178 -0
  50. package/components/select/demo/api.min.js +84 -3
  51. package/components/select/demo/index.html +15 -0
  52. package/components/select/demo/index.md +177 -0
  53. package/components/select/demo/index.min.js +84 -3
  54. package/components/select/dist/auro-select.d.ts +27 -0
  55. package/components/select/dist/index.js +84 -2
  56. package/components/select/dist/registered.js +84 -2
  57. package/package.json +1 -1
@@ -821,7 +821,20 @@ let AuroFormValidation$1 = class AuroFormValidation {
821
821
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
822
822
  */
823
823
 
824
- let hasValue = elem.value && elem.value.length > 0;
824
+ let hasValue = false;
825
+
826
+ // Check string for having a value
827
+ if (typeof elem.value === "string") {
828
+ hasValue = elem.value && elem.value.length > 0;
829
+ }
830
+
831
+ // Check array value types for having a value
832
+ if (Array.isArray(elem.value)) {
833
+ hasValue = Boolean(
834
+ elem.value.length > 0 &&
835
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
836
+ );
837
+ }
825
838
 
826
839
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
827
840
  if (this.auroInputElements?.length === 2) {
@@ -9383,7 +9396,20 @@ class AuroFormValidation {
9383
9396
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
9384
9397
  */
9385
9398
 
9386
- let hasValue = elem.value && elem.value.length > 0;
9399
+ let hasValue = false;
9400
+
9401
+ // Check string for having a value
9402
+ if (typeof elem.value === "string") {
9403
+ hasValue = elem.value && elem.value.length > 0;
9404
+ }
9405
+
9406
+ // Check array value types for having a value
9407
+ if (Array.isArray(elem.value)) {
9408
+ hasValue = Boolean(
9409
+ elem.value.length > 0 &&
9410
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
9411
+ );
9412
+ }
9387
9413
 
9388
9414
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
9389
9415
  if (this.auroInputElements?.length === 2) {
@@ -9497,6 +9523,9 @@ class AuroFormValidation {
9497
9523
  * @attr {Boolean} bordered - Applies bordered UI variant.
9498
9524
  * @attr {Boolean} borderless - Applies borderless UI variant.
9499
9525
  *
9526
+ * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
9527
+ * @attr id
9528
+ *
9500
9529
  * @slot helptext - Sets the help text displayed below the input.
9501
9530
  * @slot label - Sets the label text for the input.
9502
9531
  *
@@ -9687,13 +9716,6 @@ class BaseInput extends i$2 {
9687
9716
  reflect: true
9688
9717
  },
9689
9718
 
9690
- /**
9691
- * Sets the unique ID of the element.
9692
- */
9693
- id: {
9694
- type: String
9695
- },
9696
-
9697
9719
  /** Exposes inputmode attribute for input. */
9698
9720
  inputmode: {
9699
9721
  type: String,
@@ -9914,6 +9936,16 @@ class BaseInput extends i$2 {
9914
9936
  type: Boolean,
9915
9937
  reflect: true,
9916
9938
  attribute: false
9939
+ },
9940
+
9941
+ /**
9942
+ * @private
9943
+ * id for input node
9944
+ */
9945
+ inputId: {
9946
+ type: String,
9947
+ reflect: false,
9948
+ attribute: false
9917
9949
  }
9918
9950
  };
9919
9951
  }
@@ -9945,6 +9977,7 @@ class BaseInput extends i$2 {
9945
9977
  if (this.tagName.toLowerCase() !== 'auro-input') {
9946
9978
  this.setAttribute('auro-input', true);
9947
9979
  }
9980
+ this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
9948
9981
 
9949
9982
  this.inputElement = this.renderRoot.querySelector('input');
9950
9983
  this.labelElement = this.shadowRoot.querySelector('label');
@@ -11610,7 +11643,7 @@ class AuroInput extends BaseInput {
11610
11643
  : undefined
11611
11644
  }
11612
11645
  </div>
11613
- <label for=${this.id} class="${e(labelClasses)}" part="label">
11646
+ <label for=${this.inputId} class="${e(labelClasses)}" part="label">
11614
11647
  <slot name="label">
11615
11648
  ${this.label}
11616
11649
  </slot>
@@ -11620,7 +11653,7 @@ class AuroInput extends BaseInput {
11620
11653
  @input="${this.handleInput}"
11621
11654
  @focusin="${this.handleFocusin}"
11622
11655
  @blur="${this.handleBlur}"
11623
- id="${this.id}"
11656
+ id="${this.inputId}"
11624
11657
  name="${o(this.name)}"
11625
11658
  type="${this.type === 'password' && this.showPassword ? 'text' : this.getInputType(this.type)}"
11626
11659
  pattern="${o(this.definePattern())}"
@@ -11688,7 +11721,7 @@ class AuroInput extends BaseInput {
11688
11721
  variant="flat"
11689
11722
  ?onDark="${this.onDark}"
11690
11723
  class="notificationBtn clearBtn"
11691
- aria-label="${i18n(this.lang, 'clearInput')}"
11724
+ arialabel="${i18n(this.lang, 'clearInput')}"
11692
11725
  @click="${this.handleClickClear}">
11693
11726
  <${this.iconTag}
11694
11727
  customColor
@@ -12813,6 +12846,7 @@ class AuroCombobox extends i$2 {
12813
12846
 
12814
12847
  /**
12815
12848
  * Value selected for the dropdown menu.
12849
+ * @type {Array|String<Array>}
12816
12850
  */
12817
12851
  value: {
12818
12852
  converter: arrayConverter$1,
@@ -13194,6 +13228,7 @@ class AuroCombobox extends i$2 {
13194
13228
  }
13195
13229
  });
13196
13230
 
13231
+ // Handle validation messages from auroFormElement-validated event
13197
13232
  this.input.addEventListener('auroFormElement-validated', (evt) => {
13198
13233
  this.errorMessage = evt.detail.message;
13199
13234
  });
@@ -13744,7 +13779,7 @@ function dispatchMenuEvent(element, eventName, detail = null) {
13744
13779
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
13745
13780
  /**
13746
13781
  * The auro-menu element provides users a way to select from a list of options.
13747
- * @attr {Array<HTMLElement>|undefined} optionselected - An array of currently selected menu options. In single-select mode, the array will contain only one HTMLElement. `undefined` when no options are selected.
13782
+ * @attr {Array<HTMLElement>|undefined} optionSelected - An array of currently selected menu options. In single-select mode, the array will contain only one HTMLElement. `undefined` when no options are selected.
13748
13783
  * @attr {object} optionactive - Specifies the current active menuOption.
13749
13784
  * @attr {string} matchword - Specifies a string used to highlight matched string parts in options.
13750
13785
  * @attr {boolean} disabled - When true, the entire menu and all options are disabled;
@@ -175,11 +175,9 @@ export class AuroCombobox extends LitElement {
175
175
  };
176
176
  /**
177
177
  * Value selected for the dropdown menu.
178
+ * @type {Array|String<Array>}
178
179
  */
179
- value: {
180
- converter: typeof arrayConverter;
181
- hasChanged: typeof arrayOrUndefinedHasChanged;
182
- };
180
+ value: any[] | string;
183
181
  /**
184
182
  * If declared, make bib.fullscreen.headline in HeadingDisplay.
185
183
  * Otherwise, Heading 600
@@ -771,7 +771,20 @@ let AuroFormValidation$1 = class AuroFormValidation {
771
771
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
772
772
  */
773
773
 
774
- let hasValue = elem.value && elem.value.length > 0;
774
+ let hasValue = false;
775
+
776
+ // Check string for having a value
777
+ if (typeof elem.value === "string") {
778
+ hasValue = elem.value && elem.value.length > 0;
779
+ }
780
+
781
+ // Check array value types for having a value
782
+ if (Array.isArray(elem.value)) {
783
+ hasValue = Boolean(
784
+ elem.value.length > 0 &&
785
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
786
+ );
787
+ }
775
788
 
776
789
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
777
790
  if (this.auroInputElements?.length === 2) {
@@ -9301,7 +9314,20 @@ class AuroFormValidation {
9301
9314
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
9302
9315
  */
9303
9316
 
9304
- let hasValue = elem.value && elem.value.length > 0;
9317
+ let hasValue = false;
9318
+
9319
+ // Check string for having a value
9320
+ if (typeof elem.value === "string") {
9321
+ hasValue = elem.value && elem.value.length > 0;
9322
+ }
9323
+
9324
+ // Check array value types for having a value
9325
+ if (Array.isArray(elem.value)) {
9326
+ hasValue = Boolean(
9327
+ elem.value.length > 0 &&
9328
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
9329
+ );
9330
+ }
9305
9331
 
9306
9332
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
9307
9333
  if (this.auroInputElements?.length === 2) {
@@ -9415,6 +9441,9 @@ class AuroFormValidation {
9415
9441
  * @attr {Boolean} bordered - Applies bordered UI variant.
9416
9442
  * @attr {Boolean} borderless - Applies borderless UI variant.
9417
9443
  *
9444
+ * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
9445
+ * @attr id
9446
+ *
9418
9447
  * @slot helptext - Sets the help text displayed below the input.
9419
9448
  * @slot label - Sets the label text for the input.
9420
9449
  *
@@ -9605,13 +9634,6 @@ class BaseInput extends LitElement {
9605
9634
  reflect: true
9606
9635
  },
9607
9636
 
9608
- /**
9609
- * Sets the unique ID of the element.
9610
- */
9611
- id: {
9612
- type: String
9613
- },
9614
-
9615
9637
  /** Exposes inputmode attribute for input. */
9616
9638
  inputmode: {
9617
9639
  type: String,
@@ -9832,6 +9854,16 @@ class BaseInput extends LitElement {
9832
9854
  type: Boolean,
9833
9855
  reflect: true,
9834
9856
  attribute: false
9857
+ },
9858
+
9859
+ /**
9860
+ * @private
9861
+ * id for input node
9862
+ */
9863
+ inputId: {
9864
+ type: String,
9865
+ reflect: false,
9866
+ attribute: false
9835
9867
  }
9836
9868
  };
9837
9869
  }
@@ -9863,6 +9895,7 @@ class BaseInput extends LitElement {
9863
9895
  if (this.tagName.toLowerCase() !== 'auro-input') {
9864
9896
  this.setAttribute('auro-input', true);
9865
9897
  }
9898
+ this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
9866
9899
 
9867
9900
  this.inputElement = this.renderRoot.querySelector('input');
9868
9901
  this.labelElement = this.shadowRoot.querySelector('label');
@@ -11528,7 +11561,7 @@ class AuroInput extends BaseInput {
11528
11561
  : undefined
11529
11562
  }
11530
11563
  </div>
11531
- <label for=${this.id} class="${classMap(labelClasses)}" part="label">
11564
+ <label for=${this.inputId} class="${classMap(labelClasses)}" part="label">
11532
11565
  <slot name="label">
11533
11566
  ${this.label}
11534
11567
  </slot>
@@ -11538,7 +11571,7 @@ class AuroInput extends BaseInput {
11538
11571
  @input="${this.handleInput}"
11539
11572
  @focusin="${this.handleFocusin}"
11540
11573
  @blur="${this.handleBlur}"
11541
- id="${this.id}"
11574
+ id="${this.inputId}"
11542
11575
  name="${ifDefined(this.name)}"
11543
11576
  type="${this.type === 'password' && this.showPassword ? 'text' : this.getInputType(this.type)}"
11544
11577
  pattern="${ifDefined(this.definePattern())}"
@@ -11606,7 +11639,7 @@ class AuroInput extends BaseInput {
11606
11639
  variant="flat"
11607
11640
  ?onDark="${this.onDark}"
11608
11641
  class="notificationBtn clearBtn"
11609
- aria-label="${i18n(this.lang, 'clearInput')}"
11642
+ arialabel="${i18n(this.lang, 'clearInput')}"
11610
11643
  @click="${this.handleClickClear}">
11611
11644
  <${this.iconTag}
11612
11645
  customColor
@@ -12731,6 +12764,7 @@ class AuroCombobox extends LitElement {
12731
12764
 
12732
12765
  /**
12733
12766
  * Value selected for the dropdown menu.
12767
+ * @type {Array|String<Array>}
12734
12768
  */
12735
12769
  value: {
12736
12770
  converter: arrayConverter,
@@ -13112,6 +13146,7 @@ class AuroCombobox extends LitElement {
13112
13146
  }
13113
13147
  });
13114
13148
 
13149
+ // Handle validation messages from auroFormElement-validated event
13115
13150
  this.input.addEventListener('auroFormElement-validated', (evt) => {
13116
13151
  this.errorMessage = evt.detail.message;
13117
13152
  });
@@ -771,7 +771,20 @@ let AuroFormValidation$1 = class AuroFormValidation {
771
771
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
772
772
  */
773
773
 
774
- let hasValue = elem.value && elem.value.length > 0;
774
+ let hasValue = false;
775
+
776
+ // Check string for having a value
777
+ if (typeof elem.value === "string") {
778
+ hasValue = elem.value && elem.value.length > 0;
779
+ }
780
+
781
+ // Check array value types for having a value
782
+ if (Array.isArray(elem.value)) {
783
+ hasValue = Boolean(
784
+ elem.value.length > 0 &&
785
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
786
+ );
787
+ }
775
788
 
776
789
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
777
790
  if (this.auroInputElements?.length === 2) {
@@ -9301,7 +9314,20 @@ class AuroFormValidation {
9301
9314
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
9302
9315
  */
9303
9316
 
9304
- let hasValue = elem.value && elem.value.length > 0;
9317
+ let hasValue = false;
9318
+
9319
+ // Check string for having a value
9320
+ if (typeof elem.value === "string") {
9321
+ hasValue = elem.value && elem.value.length > 0;
9322
+ }
9323
+
9324
+ // Check array value types for having a value
9325
+ if (Array.isArray(elem.value)) {
9326
+ hasValue = Boolean(
9327
+ elem.value.length > 0 &&
9328
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
9329
+ );
9330
+ }
9305
9331
 
9306
9332
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
9307
9333
  if (this.auroInputElements?.length === 2) {
@@ -9415,6 +9441,9 @@ class AuroFormValidation {
9415
9441
  * @attr {Boolean} bordered - Applies bordered UI variant.
9416
9442
  * @attr {Boolean} borderless - Applies borderless UI variant.
9417
9443
  *
9444
+ * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
9445
+ * @attr id
9446
+ *
9418
9447
  * @slot helptext - Sets the help text displayed below the input.
9419
9448
  * @slot label - Sets the label text for the input.
9420
9449
  *
@@ -9605,13 +9634,6 @@ class BaseInput extends LitElement {
9605
9634
  reflect: true
9606
9635
  },
9607
9636
 
9608
- /**
9609
- * Sets the unique ID of the element.
9610
- */
9611
- id: {
9612
- type: String
9613
- },
9614
-
9615
9637
  /** Exposes inputmode attribute for input. */
9616
9638
  inputmode: {
9617
9639
  type: String,
@@ -9832,6 +9854,16 @@ class BaseInput extends LitElement {
9832
9854
  type: Boolean,
9833
9855
  reflect: true,
9834
9856
  attribute: false
9857
+ },
9858
+
9859
+ /**
9860
+ * @private
9861
+ * id for input node
9862
+ */
9863
+ inputId: {
9864
+ type: String,
9865
+ reflect: false,
9866
+ attribute: false
9835
9867
  }
9836
9868
  };
9837
9869
  }
@@ -9863,6 +9895,7 @@ class BaseInput extends LitElement {
9863
9895
  if (this.tagName.toLowerCase() !== 'auro-input') {
9864
9896
  this.setAttribute('auro-input', true);
9865
9897
  }
9898
+ this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
9866
9899
 
9867
9900
  this.inputElement = this.renderRoot.querySelector('input');
9868
9901
  this.labelElement = this.shadowRoot.querySelector('label');
@@ -11528,7 +11561,7 @@ class AuroInput extends BaseInput {
11528
11561
  : undefined
11529
11562
  }
11530
11563
  </div>
11531
- <label for=${this.id} class="${classMap(labelClasses)}" part="label">
11564
+ <label for=${this.inputId} class="${classMap(labelClasses)}" part="label">
11532
11565
  <slot name="label">
11533
11566
  ${this.label}
11534
11567
  </slot>
@@ -11538,7 +11571,7 @@ class AuroInput extends BaseInput {
11538
11571
  @input="${this.handleInput}"
11539
11572
  @focusin="${this.handleFocusin}"
11540
11573
  @blur="${this.handleBlur}"
11541
- id="${this.id}"
11574
+ id="${this.inputId}"
11542
11575
  name="${ifDefined(this.name)}"
11543
11576
  type="${this.type === 'password' && this.showPassword ? 'text' : this.getInputType(this.type)}"
11544
11577
  pattern="${ifDefined(this.definePattern())}"
@@ -11606,7 +11639,7 @@ class AuroInput extends BaseInput {
11606
11639
  variant="flat"
11607
11640
  ?onDark="${this.onDark}"
11608
11641
  class="notificationBtn clearBtn"
11609
- aria-label="${i18n(this.lang, 'clearInput')}"
11642
+ arialabel="${i18n(this.lang, 'clearInput')}"
11610
11643
  @click="${this.handleClickClear}">
11611
11644
  <${this.iconTag}
11612
11645
  customColor
@@ -12731,6 +12764,7 @@ class AuroCombobox extends LitElement {
12731
12764
 
12732
12765
  /**
12733
12766
  * Value selected for the dropdown menu.
12767
+ * @type {Array|String<Array>}
12734
12768
  */
12735
12769
  value: {
12736
12770
  converter: arrayConverter,
@@ -13112,6 +13146,7 @@ class AuroCombobox extends LitElement {
13112
13146
  }
13113
13147
  });
13114
13148
 
13149
+ // Handle validation messages from auroFormElement-validated event
13115
13150
  this.input.addEventListener('auroFormElement-validated', (evt) => {
13116
13151
  this.errorMessage = evt.detail.message;
13117
13152
  });
@@ -1619,7 +1619,20 @@ class AuroFormValidation {
1619
1619
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
1620
1620
  */
1621
1621
 
1622
- let hasValue = elem.value && elem.value.length > 0;
1622
+ let hasValue = false;
1623
+
1624
+ // Check string for having a value
1625
+ if (typeof elem.value === "string") {
1626
+ hasValue = elem.value && elem.value.length > 0;
1627
+ }
1628
+
1629
+ // Check array value types for having a value
1630
+ if (Array.isArray(elem.value)) {
1631
+ hasValue = Boolean(
1632
+ elem.value.length > 0 &&
1633
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
1634
+ );
1635
+ }
1623
1636
 
1624
1637
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
1625
1638
  if (this.auroInputElements?.length === 2) {
@@ -1619,7 +1619,20 @@ class AuroFormValidation {
1619
1619
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
1620
1620
  */
1621
1621
 
1622
- let hasValue = elem.value && elem.value.length > 0;
1622
+ let hasValue = false;
1623
+
1624
+ // Check string for having a value
1625
+ if (typeof elem.value === "string") {
1626
+ hasValue = elem.value && elem.value.length > 0;
1627
+ }
1628
+
1629
+ // Check array value types for having a value
1630
+ if (Array.isArray(elem.value)) {
1631
+ hasValue = Boolean(
1632
+ elem.value.length > 0 &&
1633
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
1634
+ );
1635
+ }
1623
1636
 
1624
1637
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
1625
1638
  if (this.auroInputElements?.length === 2) {
@@ -1572,7 +1572,20 @@ class AuroFormValidation {
1572
1572
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
1573
1573
  */
1574
1574
 
1575
- let hasValue = elem.value && elem.value.length > 0;
1575
+ let hasValue = false;
1576
+
1577
+ // Check string for having a value
1578
+ if (typeof elem.value === "string") {
1579
+ hasValue = elem.value && elem.value.length > 0;
1580
+ }
1581
+
1582
+ // Check array value types for having a value
1583
+ if (Array.isArray(elem.value)) {
1584
+ hasValue = Boolean(
1585
+ elem.value.length > 0 &&
1586
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
1587
+ );
1588
+ }
1576
1589
 
1577
1590
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
1578
1591
  if (this.auroInputElements?.length === 2) {
@@ -1572,7 +1572,20 @@ class AuroFormValidation {
1572
1572
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
1573
1573
  */
1574
1574
 
1575
- let hasValue = elem.value && elem.value.length > 0;
1575
+ let hasValue = false;
1576
+
1577
+ // Check string for having a value
1578
+ if (typeof elem.value === "string") {
1579
+ hasValue = elem.value && elem.value.length > 0;
1580
+ }
1581
+
1582
+ // Check array value types for having a value
1583
+ if (Array.isArray(elem.value)) {
1584
+ hasValue = Boolean(
1585
+ elem.value.length > 0 &&
1586
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
1587
+ );
1588
+ }
1576
1589
 
1577
1590
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
1578
1591
  if (this.auroInputElements?.length === 2) {
@@ -1017,7 +1017,20 @@ let AuroFormValidation$1 = class AuroFormValidation {
1017
1017
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
1018
1018
  */
1019
1019
 
1020
- let hasValue = elem.value && elem.value.length > 0;
1020
+ let hasValue = false;
1021
+
1022
+ // Check string for having a value
1023
+ if (typeof elem.value === "string") {
1024
+ hasValue = elem.value && elem.value.length > 0;
1025
+ }
1026
+
1027
+ // Check array value types for having a value
1028
+ if (Array.isArray(elem.value)) {
1029
+ hasValue = Boolean(
1030
+ elem.value.length > 0 &&
1031
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
1032
+ );
1033
+ }
1021
1034
 
1022
1035
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
1023
1036
  if (this.auroInputElements?.length === 2) {
@@ -20995,7 +21008,20 @@ class AuroFormValidation {
20995
21008
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
20996
21009
  */
20997
21010
 
20998
- let hasValue = elem.value && elem.value.length > 0;
21011
+ let hasValue = false;
21012
+
21013
+ // Check string for having a value
21014
+ if (typeof elem.value === "string") {
21015
+ hasValue = elem.value && elem.value.length > 0;
21016
+ }
21017
+
21018
+ // Check array value types for having a value
21019
+ if (Array.isArray(elem.value)) {
21020
+ hasValue = Boolean(
21021
+ elem.value.length > 0 &&
21022
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
21023
+ );
21024
+ }
20999
21025
 
21000
21026
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
21001
21027
  if (this.auroInputElements?.length === 2) {
@@ -21109,6 +21135,9 @@ class AuroFormValidation {
21109
21135
  * @attr {Boolean} bordered - Applies bordered UI variant.
21110
21136
  * @attr {Boolean} borderless - Applies borderless UI variant.
21111
21137
  *
21138
+ * @prop {string} id - The id global attribute defines an identifier (ID) which must be unique in the whole document.
21139
+ * @attr id
21140
+ *
21112
21141
  * @slot helptext - Sets the help text displayed below the input.
21113
21142
  * @slot label - Sets the label text for the input.
21114
21143
  *
@@ -21299,13 +21328,6 @@ class BaseInput extends i$2 {
21299
21328
  reflect: true
21300
21329
  },
21301
21330
 
21302
- /**
21303
- * Sets the unique ID of the element.
21304
- */
21305
- id: {
21306
- type: String
21307
- },
21308
-
21309
21331
  /** Exposes inputmode attribute for input. */
21310
21332
  inputmode: {
21311
21333
  type: String,
@@ -21526,6 +21548,16 @@ class BaseInput extends i$2 {
21526
21548
  type: Boolean,
21527
21549
  reflect: true,
21528
21550
  attribute: false
21551
+ },
21552
+
21553
+ /**
21554
+ * @private
21555
+ * id for input node
21556
+ */
21557
+ inputId: {
21558
+ type: String,
21559
+ reflect: false,
21560
+ attribute: false
21529
21561
  }
21530
21562
  };
21531
21563
  }
@@ -21557,6 +21589,7 @@ class BaseInput extends i$2 {
21557
21589
  if (this.tagName.toLowerCase() !== 'auro-input') {
21558
21590
  this.setAttribute('auro-input', true);
21559
21591
  }
21592
+ this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
21560
21593
 
21561
21594
  this.inputElement = this.renderRoot.querySelector('input');
21562
21595
  this.labelElement = this.shadowRoot.querySelector('label');
@@ -23222,7 +23255,7 @@ class AuroInput extends BaseInput {
23222
23255
  : undefined
23223
23256
  }
23224
23257
  </div>
23225
- <label for=${this.id} class="${e(labelClasses)}" part="label">
23258
+ <label for=${this.inputId} class="${e(labelClasses)}" part="label">
23226
23259
  <slot name="label">
23227
23260
  ${this.label}
23228
23261
  </slot>
@@ -23232,7 +23265,7 @@ class AuroInput extends BaseInput {
23232
23265
  @input="${this.handleInput}"
23233
23266
  @focusin="${this.handleFocusin}"
23234
23267
  @blur="${this.handleBlur}"
23235
- id="${this.id}"
23268
+ id="${this.inputId}"
23236
23269
  name="${o(this.name)}"
23237
23270
  type="${this.type === 'password' && this.showPassword ? 'text' : this.getInputType(this.type)}"
23238
23271
  pattern="${o(this.definePattern())}"
@@ -23300,7 +23333,7 @@ class AuroInput extends BaseInput {
23300
23333
  variant="flat"
23301
23334
  ?onDark="${this.onDark}"
23302
23335
  class="notificationBtn clearBtn"
23303
- aria-label="${i18n(this.lang, 'clearInput')}"
23336
+ arialabel="${i18n(this.lang, 'clearInput')}"
23304
23337
  @click="${this.handleClickClear}">
23305
23338
  <${this.iconTag}
23306
23339
  customColor