@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
@@ -2,6 +2,7 @@ import { css, LitElement, html as html$1 } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
3
  import { unsafeStatic, literal, html } from 'lit/static-html.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
+ import { ifDefined as ifDefined$1 } from 'lit-html/directives/if-defined.js';
5
6
 
6
7
  class DateFormatter {
7
8
 
@@ -730,7 +731,20 @@ class AuroFormValidation {
730
731
  * The validityState definitions are located at https://developer.mozilla.org/en-US/docs/Web/API/ValidityState.
731
732
  */
732
733
 
733
- let hasValue = elem.value && elem.value.length > 0;
734
+ let hasValue = false;
735
+
736
+ // Check string for having a value
737
+ if (typeof elem.value === "string") {
738
+ hasValue = elem.value && elem.value.length > 0;
739
+ }
740
+
741
+ // Check array value types for having a value
742
+ if (Array.isArray(elem.value)) {
743
+ hasValue = Boolean(
744
+ elem.value.length > 0 &&
745
+ elem.value.some((value) => typeof value === "string" && value.length > 0)
746
+ );
747
+ }
734
748
 
735
749
  // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
736
750
  if (this.auroInputElements?.length === 2) {
@@ -5425,7 +5439,7 @@ css`:host{--ds-auro-icon-color:var(--ds-basic-color-texticon-default, #2a2a2a);-
5425
5439
 
5426
5440
  css`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]){--ds-auro-icon-color:var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]){--ds-auro-icon-color:var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]){--ds-auro-icon-color:var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]){--ds-auro-icon-color:var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]){--ds-auro-icon-color:var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]){--ds-auro-icon-color:var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]){--ds-auro-icon-color:var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]){--ds-auro-icon-color:var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]){--ds-auro-icon-color:var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]){--ds-auro-icon-color:var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]){--ds-auro-icon-color:var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]){--ds-auro-icon-color:var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}`;
5427
5441
 
5428
- var styleCss = css`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[slot=trigger]{width:100%;padding:0;border:0;cursor:pointer;font-family:inherit;font-size:inherit;text-align:left}[slot=trigger] .nestingSpacer{display:none}[slot=trigger] #placeholder.hidden{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host [auro-dropdown]{position:relative}:host [auro-dropdown]::part(trigger){max-height:var(--ds-size-300, 1.5rem)}:host [auro-dropdown]::part(popover){max-width:-webkit-fill-available;overflow-y:scroll}:host([disabled]) *{user-select:none}.outerWrapper{position:relative}auro-menuoption{padding:0;pointer-events:none}.menuWrapper{padding:var(--ds-size-50, 0.25rem) 0}:host([multiselect]) [slot=trigger]{display:flex}:host([multiselect]) auro-menuoption:not(:first-child){margin-left:var(--ds-size-100)}#slotHolder{display:none}`;
5442
+ var styleCss = css`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}[slot=trigger]{width:100%;padding:0;border:0;cursor:pointer;font-family:inherit;font-size:inherit;text-align:left}[slot=trigger] .nestingSpacer{display:none}[slot=trigger] #placeholder.hidden{position:absolute;z-index:-1;opacity:0;pointer-events:none}:host .nativeSelectWrapper{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip:rect(0, 0, 0, 0);opacity:.01}:host [auro-dropdown]{position:relative}:host [auro-dropdown]::part(trigger){max-height:var(--ds-size-300, 1.5rem)}:host [auro-dropdown]::part(popover){max-width:-webkit-fill-available;overflow-y:scroll}:host([disabled]) *{user-select:none}.outerWrapper{position:relative}auro-menuoption{padding:0;pointer-events:none}.menuWrapper{padding:var(--ds-size-50, 0.25rem) 0}:host([multiselect]) [slot=trigger]{display:flex}:host([multiselect]) auro-menuoption:not(:first-child){margin-left:var(--ds-size-100)}#slotHolder{display:none}`;
5429
5443
 
5430
5444
  // Copyright (c) 2021 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5431
5445
  // See LICENSE in the project root for license information.
@@ -5520,6 +5534,14 @@ class AuroSelect extends LitElement {
5520
5534
  static get properties() {
5521
5535
  return {
5522
5536
 
5537
+ /**
5538
+ * If declared, sets the autocomplete attribute for the select element.
5539
+ */
5540
+ autocomplete: {
5541
+ type: String,
5542
+ reflect: true
5543
+ },
5544
+
5523
5545
  /**
5524
5546
  * If declared, bib's position will be automatically calculated where to appear.
5525
5547
  * @default false
@@ -5537,6 +5559,14 @@ class AuroSelect extends LitElement {
5537
5559
  reflect: true
5538
5560
  },
5539
5561
 
5562
+ /**
5563
+ * The name for the select element.
5564
+ */
5565
+ name: {
5566
+ type: String,
5567
+ reflect: true
5568
+ },
5569
+
5540
5570
  /**
5541
5571
  * If set, makes dropdown width match the size of the content, rather than the width of the trigger.
5542
5572
  */
@@ -6080,6 +6110,7 @@ class AuroSelect extends LitElement {
6080
6110
  this.menu.value = undefined;
6081
6111
  }
6082
6112
 
6113
+ this._updateNativeSelect();
6083
6114
  this.validation.validate(this);
6084
6115
 
6085
6116
  // LEGACY EVENT
@@ -6131,6 +6162,34 @@ class AuroSelect extends LitElement {
6131
6162
  this.validation.validate(this, force);
6132
6163
  }
6133
6164
 
6165
+ /**
6166
+ * Syncs the value from the native select element to the component's value.
6167
+ * @param {Event} event // The change event from the native select element.
6168
+ * @returns {void}
6169
+ * @private
6170
+ */
6171
+ _handleNativeSelectChange(event) {
6172
+ const selectedOption = event.target.options[event.target.selectedIndex];
6173
+ const selectedValue = selectedOption.value;
6174
+ const [currentValue] = this.value || [];
6175
+ this.value = !currentValue || currentValue !== selectedValue ? [selectedValue] : this.value;
6176
+ }
6177
+
6178
+ /**
6179
+ * Updates the native select element's value based on the component's value.
6180
+ * @returns {void}
6181
+ * @private
6182
+ */
6183
+ _updateNativeSelect() {
6184
+ const nativeSelect = this.shadowRoot.querySelector('select');
6185
+ if (!nativeSelect) {
6186
+ return;
6187
+ }
6188
+ const [value] = this.value || [];
6189
+ nativeSelect.value = value || '';
6190
+ }
6191
+
6192
+
6134
6193
  // When using auroElement, use the following attribute and function when hiding content from screen readers.
6135
6194
  // aria-hidden="${this.hideAudible(this.hiddenAudible)}"
6136
6195
 
@@ -6197,6 +6256,29 @@ class AuroSelect extends LitElement {
6197
6256
  }
6198
6257
  </p>
6199
6258
  </${this.dropdownTag}>
6259
+ <div class="nativeSelectWrapper">
6260
+ <select
6261
+ tabindex="-1"
6262
+ id="${`native-select-${this.id || this.uniqueId}`}"
6263
+ name="${this.name || ''}"
6264
+ ?disabled="${this.disabled}"
6265
+ ?required="${this.required}"
6266
+ aria-hidden="true"
6267
+ autocomplete="${ifDefined$1(this.autocomplete)}"
6268
+ @change="${this._handleNativeSelectChange}">
6269
+ <option value="" ?selected="${!this.value}"></option>
6270
+ ${this.options.map((option) => {
6271
+ const optionValue = option.value || option.textContent;
6272
+ return html`
6273
+ <option
6274
+ value="${optionValue}"
6275
+ ?selected="${this.value === optionValue}">
6276
+ ${option.textContent}
6277
+ </option>
6278
+ `;
6279
+ })}
6280
+ </select>
6281
+ </div>
6200
6282
  <!-- Help text and error message template -->
6201
6283
  </div>
6202
6284
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurodesignsystem/auro-formkit",
3
- "version": "3.4.1-rc-602.2.1",
3
+ "version": "3.5.0-rc-627.1",
4
4
  "description": "A collection of web components used to build forms.",
5
5
  "homepage": "https://github.com/AlaskaAirlines/auro-formkit#readme",
6
6
  "bugs": {