@aurodesignsystem-dev/auro-formkit 0.0.0-pr1511.0 → 0.0.0-pr1512.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +119 -97
  7. package/components/combobox/demo/getting-started.min.js +119 -97
  8. package/components/combobox/demo/index.min.js +119 -97
  9. package/components/combobox/dist/index.js +118 -96
  10. package/components/combobox/dist/registered.js +118 -96
  11. package/components/counter/demo/customize.min.js +2 -3
  12. package/components/counter/demo/index.min.js +2 -3
  13. package/components/counter/dist/index.js +2 -3
  14. package/components/counter/dist/registered.js +2 -3
  15. package/components/datepicker/demo/customize.min.js +139 -98
  16. package/components/datepicker/demo/index.min.js +139 -98
  17. package/components/datepicker/dist/index.js +139 -98
  18. package/components/datepicker/dist/registered.js +139 -98
  19. package/components/dropdown/demo/customize.min.js +1 -2
  20. package/components/dropdown/demo/getting-started.min.js +1 -2
  21. package/components/dropdown/demo/index.min.js +1 -2
  22. package/components/dropdown/dist/index.js +1 -2
  23. package/components/dropdown/dist/registered.js +1 -2
  24. package/components/form/demo/customize.min.js +434 -426
  25. package/components/form/demo/getting-started.min.js +434 -426
  26. package/components/form/demo/index.min.js +434 -426
  27. package/components/form/demo/registerDemoDeps.min.js +434 -426
  28. package/components/input/demo/api.md +5 -5
  29. package/components/input/demo/customize.md +8 -8
  30. package/components/input/demo/customize.min.js +116 -93
  31. package/components/input/demo/getting-started.min.js +116 -93
  32. package/components/input/demo/index.min.js +116 -93
  33. package/components/input/dist/base-input.d.ts +33 -44
  34. package/components/input/dist/index.js +129 -94
  35. package/components/input/dist/registered.js +116 -93
  36. package/components/radio/demo/customize.min.js +1 -1
  37. package/components/radio/demo/getting-started.min.js +1 -1
  38. package/components/radio/demo/index.min.js +1 -1
  39. package/components/radio/dist/index.js +1 -1
  40. package/components/radio/dist/registered.js +1 -1
  41. package/components/select/demo/customize.min.js +55 -132
  42. package/components/select/demo/getting-started.min.js +55 -132
  43. package/components/select/demo/index.min.js +55 -132
  44. package/components/select/demo/keyboard-behavior.md +4 -18
  45. package/components/select/dist/auro-select.d.ts +8 -20
  46. package/components/select/dist/index.js +55 -132
  47. package/components/select/dist/registered.js +55 -132
  48. package/custom-elements.json +1942 -1728
  49. package/package.json +1 -1
@@ -1260,7 +1260,7 @@ class AuroHelpText extends i$2 {
1260
1260
  }
1261
1261
  }
1262
1262
 
1263
- var formkitVersion = '202606252142';
1263
+ var formkitVersion = '202606252337';
1264
1264
 
1265
1265
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1266
1266
  // See LICENSE in the project root for license information.
@@ -1260,7 +1260,7 @@ class AuroHelpText extends i$2 {
1260
1260
  }
1261
1261
  }
1262
1262
 
1263
- var formkitVersion = '202606252142';
1263
+ var formkitVersion = '202606252337';
1264
1264
 
1265
1265
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1266
1266
  // See LICENSE in the project root for license information.
@@ -1260,7 +1260,7 @@ class AuroHelpText extends i$2 {
1260
1260
  }
1261
1261
  }
1262
1262
 
1263
- var formkitVersion = '202606252142';
1263
+ var formkitVersion = '202606252337';
1264
1264
 
1265
1265
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1266
1266
  // See LICENSE in the project root for license information.
@@ -1213,7 +1213,7 @@ class AuroHelpText extends LitElement {
1213
1213
  }
1214
1214
  }
1215
1215
 
1216
- var formkitVersion = '202606252142';
1216
+ var formkitVersion = '202606252337';
1217
1217
 
1218
1218
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1219
1219
  // See LICENSE in the project root for license information.
@@ -1213,7 +1213,7 @@ class AuroHelpText extends LitElement {
1213
1213
  }
1214
1214
  }
1215
1215
 
1216
- var formkitVersion = '202606252142';
1216
+ var formkitVersion = '202606252337';
1217
1217
 
1218
1218
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1219
1219
  // See LICENSE in the project root for license information.
@@ -4873,7 +4873,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
4873
4873
  }
4874
4874
  };
4875
4875
 
4876
- var formkitVersion$2 = '202606252142';
4876
+ var formkitVersion$2 = '202606252337';
4877
4877
 
4878
4878
  let AuroElement$2 = class AuroElement extends i$3 {
4879
4879
  static get properties() {
@@ -6145,7 +6145,6 @@ class AuroDropdown extends AuroElement$2 {
6145
6145
  role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6146
6146
  aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6147
6147
  aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6148
- aria-haspopup="${o(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
6149
6148
  aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6150
6149
  aria-disabled="${o(this.disabled ? 'true' : undefined)}"
6151
6150
  @focusin="${this.handleFocusin}"
@@ -16599,6 +16598,13 @@ class AuroInputUtilities {
16599
16598
  * @returns {string | undefined}
16600
16599
  */
16601
16600
  toFormattedValue(valueObject, format) {
16601
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
16602
+ // `format` argument has to fail gracefully rather than throw on
16603
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
16604
+ // as "no format → no display value".
16605
+ if (!format) {
16606
+ return undefined;
16607
+ }
16602
16608
  const normalizedFormat = format.toLowerCase();
16603
16609
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
16604
16610
 
@@ -16749,79 +16755,18 @@ class BaseInput extends AuroElement$1 {
16749
16755
  constructor() {
16750
16756
  super();
16751
16757
 
16752
- this.appearance = "default";
16753
- this.disabled = false;
16754
- this.layout = 'classic';
16755
- this.locale = 'en-US';
16756
- this.max = undefined;
16757
- this._maxObject = undefined;
16758
- this.maxLength = undefined;
16759
- this.min = undefined;
16760
- this._minObject = undefined;
16761
- this.minLength = undefined;
16762
- this.required = false;
16763
- this.onDark = false;
16764
- this.setCustomValidityForType = undefined;
16765
- this.size = 'lg';
16766
- this.shape = 'classic';
16767
- this.value = undefined;
16768
- this._valueObject = undefined;
16769
-
16770
- this._initializePrivateDefaults();
16771
- }
16772
-
16773
- /**
16774
- * Internal Defaults.
16775
- * @private
16776
- * @returns {void}
16777
- */
16778
- _initializePrivateDefaults() {
16758
+ // Single-source initialization. Alphabetized so duplicate or stale
16759
+ // defaults are immediately obvious on a diff. Every field is assigned
16760
+ // exactly once here (previously the constructor + the old
16761
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
16762
+ // fields and double-allocated `util` and `validation`, discarding the
16763
+ // first instance). `validation` is now allocated exactly once; `util`
16764
+ // is seeded here with an en-US default and then rebuilt in
16765
+ // `connectedCallback` once the consumer-resolved locale is available,
16766
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
16767
+ // during its own update cycle sees a populated util instance.
16779
16768
  this.activeLabel = false;
16780
- this.appearance = "default";
16781
- this.icon = false;
16782
- this.disabled = false;
16783
- this.dvInputOnly = false;
16784
- this.hideLabelVisually = false;
16785
- this.max = undefined;
16786
- this.maxLength = undefined;
16787
- this.min = undefined;
16788
- this.minLength = undefined;
16789
- this.noValidate = false;
16790
- this.onDark = false;
16791
- this.required = false;
16792
- this.setCustomValidityForType = undefined;
16793
-
16794
- // Used for storing raw values returned from input mask.
16795
- this._rawMaskValue = undefined;
16796
-
16797
- /**
16798
- * @private
16799
- */
16800
- this.layout = 'classic';
16801
-
16802
- /**
16803
- * @private
16804
- */
16805
- this.shape = 'classic';
16806
-
16807
- /**
16808
- * @private
16809
- */
16810
- this.size = 'lg';
16811
-
16812
- this.touched = false;
16813
- this.util = new AuroInputUtilities({
16814
- locale: "en-US",
16815
- format: this.format
16816
- });
16817
- this.validation = new AuroFormValidation();
16818
- this.inputIconName = undefined;
16819
- this.showPassword = false;
16820
- this.validationCCLength = undefined;
16821
- this.hasValue = false;
16822
- this.label = 'Input label is undefined';
16823
-
16824
-
16769
+ /** @private */
16825
16770
  this.allowedInputTypes = [
16826
16771
  "text",
16827
16772
  "number",
@@ -16830,7 +16775,8 @@ class BaseInput extends AuroElement$1 {
16830
16775
  "credit-card",
16831
16776
  "tel"
16832
16777
  ];
16833
- this.icon = false;
16778
+ this.appearance = "default";
16779
+ /** @private */
16834
16780
  this.dateFormatMap = {
16835
16781
  'mm/dd/yyyy': 'dateMMDDYYYY',
16836
16782
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -16847,27 +16793,57 @@ class BaseInput extends AuroElement$1 {
16847
16793
  'dd/mm': 'dateDDMM',
16848
16794
  'mm/dd': 'dateMMDD'
16849
16795
  };
16796
+ this.disabled = false;
16797
+ /** @private */
16850
16798
  this.domHandler = new DomHandler();
16851
16799
  this.dvInputOnly = false;
16852
16800
  this.hasValue = false;
16801
+ this.hideLabelVisually = false;
16802
+ this.icon = false;
16803
+ /** @private */
16853
16804
  this.inputIconName = undefined;
16805
+ /** @private */
16854
16806
  this.label = 'Input label is undefined';
16807
+ this.layout = 'classic';
16808
+ this.locale = 'en-US';
16809
+ this.max = undefined;
16810
+ this._maxObject = undefined;
16811
+ this.maxLength = undefined;
16812
+ this.min = undefined;
16813
+ this._minObject = undefined;
16814
+ this.minLength = undefined;
16855
16815
  this.noValidate = false;
16856
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
16816
+ this.onDark = false;
16817
+ // Raw values returned from the input mask before model normalization.
16818
+ this._rawMaskValue = undefined;
16819
+ this.required = false;
16820
+ this.setCustomValidityForType = undefined;
16821
+ // Credit Card is intentionally excluded — its mask manages the cursor
16822
+ // itself, and listing it here caused cursor placement issues in Safari.
16823
+ /** @private */
16857
16824
  this.setSelectionInputTypes = [
16858
16825
  "text",
16859
16826
  "password",
16860
16827
  "email"
16861
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
16828
+ ];
16829
+ this.shape = 'classic';
16830
+ /** @private */
16862
16831
  this.showPassword = false;
16832
+ this.size = 'lg';
16863
16833
  this.touched = false;
16834
+ /** @private */
16864
16835
  this.uniqueId = new UniqueId().create();
16836
+ /** @private */
16865
16837
  this.util = new AuroInputUtilities({
16866
16838
  locale: this.locale,
16867
16839
  format: this.format
16868
16840
  });
16841
+ /** @private */
16869
16842
  this.validation = new AuroFormValidation();
16843
+ /** @private */
16870
16844
  this.validationCCLength = undefined;
16845
+ this.value = undefined;
16846
+ this._valueObject = undefined;
16871
16847
  }
16872
16848
 
16873
16849
  // function to define props used within the scope of this component
@@ -17415,6 +17391,15 @@ class BaseInput extends AuroElement$1 {
17415
17391
 
17416
17392
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
17417
17393
 
17394
+ // Normalize the format token to lowercase so case-mixed values supplied
17395
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
17396
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
17397
+ // format silently misses the map and leaves `setCustomValidityForType`
17398
+ // unset.
17399
+ if (this.format) {
17400
+ this.format = this.format.toLowerCase();
17401
+ }
17402
+
17418
17403
  // use validity message override if declared when initializing the component
17419
17404
  if (this.hasAttribute('setCustomValidity')) {
17420
17405
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -17848,6 +17833,38 @@ class BaseInput extends AuroElement$1 {
17848
17833
  this.touched = true;
17849
17834
  this.validation.validate(this);
17850
17835
  }
17836
+
17837
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
17838
+ // update that can re-render the input and reset the native cursor; we
17839
+ // capture the caret position before that update commits and restore it
17840
+ // via `setSelectionRange` once the update has flushed. Gated on
17841
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
17842
+ // formatter manages the cursor itself) doesn't get a competing write.
17843
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
17844
+ // on input types that don't support text selection (number, email in
17845
+ // some browsers) throws InvalidStateError, which would crash all input
17846
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
17847
+ // the gated types currently support it, since the list is a public
17848
+ // property a consumer could mutate.
17849
+ if (this.setSelectionInputTypes.includes(this.type)) {
17850
+ let selectionStart;
17851
+ try {
17852
+ selectionStart = this.inputElement.selectionStart;
17853
+ } catch (error) { // eslint-disable-line no-unused-vars
17854
+ return;
17855
+ }
17856
+ if (typeof selectionStart !== 'number') {
17857
+ return;
17858
+ }
17859
+ this.updateComplete.then(() => {
17860
+ try {
17861
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
17862
+ } catch (error) { // eslint-disable-line no-unused-vars
17863
+ // Some input types (number/email in certain UAs) throw on
17864
+ // setSelectionRange; swallow and let the native cursor stand.
17865
+ }
17866
+ });
17867
+ }
17851
17868
  }
17852
17869
 
17853
17870
  /**
@@ -18474,7 +18491,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
18474
18491
  }
18475
18492
  };
18476
18493
 
18477
- var formkitVersion$1 = '202606252142';
18494
+ var formkitVersion$1 = '202606252337';
18478
18495
 
18479
18496
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
18480
18497
  // See LICENSE in the project root for license information.
@@ -18977,6 +18994,7 @@ class AuroInput extends BaseInput {
18977
18994
  <${this.buttonTag}
18978
18995
  @click="${this.handleClickShowPassword}"
18979
18996
  appearance="${this.onDark ? 'inverse' : this.appearance}"
18997
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
18980
18998
  class="notificationBtn passwordBtn"
18981
18999
  shape="circle"
18982
19000
  size="sm"
@@ -19050,25 +19068,29 @@ class AuroInput extends BaseInput {
19050
19068
  * @returns {html} - Returns HTML for the help text and error message.
19051
19069
  */
19052
19070
  renderHtmlHelpText() {
19071
+ // Single `<p>` with stable identity across validity transitions —
19072
+ // previously two distinct templates (valid vs invalid) caused Lit to
19073
+ // replace the node entirely on a flip, and VoiceOver wouldn't
19074
+ // re-announce because the live-region element it was watching had been
19075
+ // removed and a new one inserted. Keeping one node means the `role`,
19076
+ // `aria-live`, and text content all change in-place, which AT does
19077
+ // observe and announce.
19078
+ const isError = this.validity && this.validity !== 'valid';
19053
19079
  return u$7`
19054
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
19055
- ? u$7`
19056
- <${this.helpTextTag}
19057
- appearance="${this.onDark ? 'inverse' : this.appearance}">
19058
- <p id="${this.uniqueId}" part="helpText">
19059
- <slot name="helpText">${this.getHelpText()}</slot>
19060
- </p>
19061
- </${this.helpTextTag}>
19062
- `
19063
- : u$7`
19064
- <${this.helpTextTag} error
19065
- appearance="${this.onDark ? 'inverse' : this.appearance}">
19066
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
19067
- ${this.errorMessage}
19068
- </p>
19069
- </${this.helpTextTag}>
19070
- `
19071
- }
19080
+ <${this.helpTextTag}
19081
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
19082
+ ?error=${isError}>
19083
+ <p
19084
+ id="${this.uniqueId}"
19085
+ part="helpText"
19086
+ role="${o(isError ? 'alert' : undefined)}"
19087
+ aria-live="${o(isError ? 'assertive' : undefined)}">
19088
+ ${isError
19089
+ ? this.errorMessage
19090
+ : u$7`<slot name="helpText">${this.getHelpText()}</slot>`
19091
+ }
19092
+ </p>
19093
+ </${this.helpTextTag}>
19072
19094
  `;
19073
19095
  }
19074
19096
 
@@ -19595,7 +19617,7 @@ class AuroBibtemplate extends i$3 {
19595
19617
  }
19596
19618
  }
19597
19619
 
19598
- var formkitVersion = '202606252142';
19620
+ var formkitVersion = '202606252337';
19599
19621
 
19600
19622
  var styleCss$3 = i$6`.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}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
19601
19623