@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.
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/customize.min.js +119 -97
- package/components/combobox/demo/getting-started.min.js +119 -97
- package/components/combobox/demo/index.min.js +119 -97
- package/components/combobox/dist/index.js +118 -96
- package/components/combobox/dist/registered.js +118 -96
- package/components/counter/demo/customize.min.js +2 -3
- package/components/counter/demo/index.min.js +2 -3
- package/components/counter/dist/index.js +2 -3
- package/components/counter/dist/registered.js +2 -3
- package/components/datepicker/demo/customize.min.js +139 -98
- package/components/datepicker/demo/index.min.js +139 -98
- package/components/datepicker/dist/index.js +139 -98
- package/components/datepicker/dist/registered.js +139 -98
- package/components/dropdown/demo/customize.min.js +1 -2
- package/components/dropdown/demo/getting-started.min.js +1 -2
- package/components/dropdown/demo/index.min.js +1 -2
- package/components/dropdown/dist/index.js +1 -2
- package/components/dropdown/dist/registered.js +1 -2
- package/components/form/demo/customize.min.js +434 -426
- package/components/form/demo/getting-started.min.js +434 -426
- package/components/form/demo/index.min.js +434 -426
- package/components/form/demo/registerDemoDeps.min.js +434 -426
- package/components/input/demo/api.md +5 -5
- package/components/input/demo/customize.md +8 -8
- package/components/input/demo/customize.min.js +116 -93
- package/components/input/demo/getting-started.min.js +116 -93
- package/components/input/demo/index.min.js +116 -93
- package/components/input/dist/base-input.d.ts +33 -44
- package/components/input/dist/index.js +129 -94
- package/components/input/dist/registered.js +116 -93
- package/components/radio/demo/customize.min.js +1 -1
- package/components/radio/demo/getting-started.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/customize.min.js +55 -132
- package/components/select/demo/getting-started.min.js +55 -132
- package/components/select/demo/index.min.js +55 -132
- package/components/select/demo/keyboard-behavior.md +4 -18
- package/components/select/dist/auro-select.d.ts +8 -20
- package/components/select/dist/index.js +55 -132
- package/components/select/dist/registered.js +55 -132
- package/custom-elements.json +1942 -1728
- package/package.json +1 -1
|
@@ -4873,7 +4873,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
4873
4873
|
}
|
|
4874
4874
|
};
|
|
4875
4875
|
|
|
4876
|
-
var formkitVersion$2 = '
|
|
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
|
-
|
|
16753
|
-
|
|
16754
|
-
|
|
16755
|
-
|
|
16756
|
-
|
|
16757
|
-
|
|
16758
|
-
|
|
16759
|
-
|
|
16760
|
-
|
|
16761
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
];
|
|
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 = '
|
|
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
|
-
|
|
19055
|
-
?
|
|
19056
|
-
|
|
19057
|
-
|
|
19058
|
-
|
|
19059
|
-
|
|
19060
|
-
|
|
19061
|
-
|
|
19062
|
-
|
|
19063
|
-
|
|
19064
|
-
|
|
19065
|
-
|
|
19066
|
-
|
|
19067
|
-
|
|
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 = '
|
|
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
|
|
|
@@ -4888,7 +4888,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
4888
4888
|
}
|
|
4889
4889
|
};
|
|
4890
4890
|
|
|
4891
|
-
var formkitVersion$2 = '
|
|
4891
|
+
var formkitVersion$2 = '202606252337';
|
|
4892
4892
|
|
|
4893
4893
|
let AuroElement$2 = class AuroElement extends i$3 {
|
|
4894
4894
|
static get properties() {
|
|
@@ -6160,7 +6160,6 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
6160
6160
|
role="${o(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
6161
6161
|
aria-expanded="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
6162
6162
|
aria-controls="${o(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
6163
|
-
aria-haspopup="${o(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
6164
6163
|
aria-labelledby="${o(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
6165
6164
|
aria-disabled="${o(this.disabled ? 'true' : undefined)}"
|
|
6166
6165
|
@focusin="${this.handleFocusin}"
|
|
@@ -16614,6 +16613,13 @@ class AuroInputUtilities {
|
|
|
16614
16613
|
* @returns {string | undefined}
|
|
16615
16614
|
*/
|
|
16616
16615
|
toFormattedValue(valueObject, format) {
|
|
16616
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
16617
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
16618
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
16619
|
+
// as "no format → no display value".
|
|
16620
|
+
if (!format) {
|
|
16621
|
+
return undefined;
|
|
16622
|
+
}
|
|
16617
16623
|
const normalizedFormat = format.toLowerCase();
|
|
16618
16624
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
16619
16625
|
|
|
@@ -16764,79 +16770,18 @@ class BaseInput extends AuroElement$1 {
|
|
|
16764
16770
|
constructor() {
|
|
16765
16771
|
super();
|
|
16766
16772
|
|
|
16767
|
-
|
|
16768
|
-
|
|
16769
|
-
|
|
16770
|
-
|
|
16771
|
-
|
|
16772
|
-
|
|
16773
|
-
|
|
16774
|
-
|
|
16775
|
-
|
|
16776
|
-
|
|
16777
|
-
this.required = false;
|
|
16778
|
-
this.onDark = false;
|
|
16779
|
-
this.setCustomValidityForType = undefined;
|
|
16780
|
-
this.size = 'lg';
|
|
16781
|
-
this.shape = 'classic';
|
|
16782
|
-
this.value = undefined;
|
|
16783
|
-
this._valueObject = undefined;
|
|
16784
|
-
|
|
16785
|
-
this._initializePrivateDefaults();
|
|
16786
|
-
}
|
|
16787
|
-
|
|
16788
|
-
/**
|
|
16789
|
-
* Internal Defaults.
|
|
16790
|
-
* @private
|
|
16791
|
-
* @returns {void}
|
|
16792
|
-
*/
|
|
16793
|
-
_initializePrivateDefaults() {
|
|
16773
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
16774
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
16775
|
+
// exactly once here (previously the constructor + the old
|
|
16776
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
16777
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
16778
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
16779
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
16780
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
16781
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
16782
|
+
// during its own update cycle sees a populated util instance.
|
|
16794
16783
|
this.activeLabel = false;
|
|
16795
|
-
|
|
16796
|
-
this.icon = false;
|
|
16797
|
-
this.disabled = false;
|
|
16798
|
-
this.dvInputOnly = false;
|
|
16799
|
-
this.hideLabelVisually = false;
|
|
16800
|
-
this.max = undefined;
|
|
16801
|
-
this.maxLength = undefined;
|
|
16802
|
-
this.min = undefined;
|
|
16803
|
-
this.minLength = undefined;
|
|
16804
|
-
this.noValidate = false;
|
|
16805
|
-
this.onDark = false;
|
|
16806
|
-
this.required = false;
|
|
16807
|
-
this.setCustomValidityForType = undefined;
|
|
16808
|
-
|
|
16809
|
-
// Used for storing raw values returned from input mask.
|
|
16810
|
-
this._rawMaskValue = undefined;
|
|
16811
|
-
|
|
16812
|
-
/**
|
|
16813
|
-
* @private
|
|
16814
|
-
*/
|
|
16815
|
-
this.layout = 'classic';
|
|
16816
|
-
|
|
16817
|
-
/**
|
|
16818
|
-
* @private
|
|
16819
|
-
*/
|
|
16820
|
-
this.shape = 'classic';
|
|
16821
|
-
|
|
16822
|
-
/**
|
|
16823
|
-
* @private
|
|
16824
|
-
*/
|
|
16825
|
-
this.size = 'lg';
|
|
16826
|
-
|
|
16827
|
-
this.touched = false;
|
|
16828
|
-
this.util = new AuroInputUtilities({
|
|
16829
|
-
locale: "en-US",
|
|
16830
|
-
format: this.format
|
|
16831
|
-
});
|
|
16832
|
-
this.validation = new AuroFormValidation();
|
|
16833
|
-
this.inputIconName = undefined;
|
|
16834
|
-
this.showPassword = false;
|
|
16835
|
-
this.validationCCLength = undefined;
|
|
16836
|
-
this.hasValue = false;
|
|
16837
|
-
this.label = 'Input label is undefined';
|
|
16838
|
-
|
|
16839
|
-
|
|
16784
|
+
/** @private */
|
|
16840
16785
|
this.allowedInputTypes = [
|
|
16841
16786
|
"text",
|
|
16842
16787
|
"number",
|
|
@@ -16845,7 +16790,8 @@ class BaseInput extends AuroElement$1 {
|
|
|
16845
16790
|
"credit-card",
|
|
16846
16791
|
"tel"
|
|
16847
16792
|
];
|
|
16848
|
-
this.
|
|
16793
|
+
this.appearance = "default";
|
|
16794
|
+
/** @private */
|
|
16849
16795
|
this.dateFormatMap = {
|
|
16850
16796
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
16851
16797
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -16862,27 +16808,57 @@ class BaseInput extends AuroElement$1 {
|
|
|
16862
16808
|
'dd/mm': 'dateDDMM',
|
|
16863
16809
|
'mm/dd': 'dateMMDD'
|
|
16864
16810
|
};
|
|
16811
|
+
this.disabled = false;
|
|
16812
|
+
/** @private */
|
|
16865
16813
|
this.domHandler = new DomHandler();
|
|
16866
16814
|
this.dvInputOnly = false;
|
|
16867
16815
|
this.hasValue = false;
|
|
16816
|
+
this.hideLabelVisually = false;
|
|
16817
|
+
this.icon = false;
|
|
16818
|
+
/** @private */
|
|
16868
16819
|
this.inputIconName = undefined;
|
|
16820
|
+
/** @private */
|
|
16869
16821
|
this.label = 'Input label is undefined';
|
|
16822
|
+
this.layout = 'classic';
|
|
16823
|
+
this.locale = 'en-US';
|
|
16824
|
+
this.max = undefined;
|
|
16825
|
+
this._maxObject = undefined;
|
|
16826
|
+
this.maxLength = undefined;
|
|
16827
|
+
this.min = undefined;
|
|
16828
|
+
this._minObject = undefined;
|
|
16829
|
+
this.minLength = undefined;
|
|
16870
16830
|
this.noValidate = false;
|
|
16871
|
-
this.
|
|
16831
|
+
this.onDark = false;
|
|
16832
|
+
// Raw values returned from the input mask before model normalization.
|
|
16833
|
+
this._rawMaskValue = undefined;
|
|
16834
|
+
this.required = false;
|
|
16835
|
+
this.setCustomValidityForType = undefined;
|
|
16836
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
16837
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
16838
|
+
/** @private */
|
|
16872
16839
|
this.setSelectionInputTypes = [
|
|
16873
16840
|
"text",
|
|
16874
16841
|
"password",
|
|
16875
16842
|
"email"
|
|
16876
|
-
];
|
|
16843
|
+
];
|
|
16844
|
+
this.shape = 'classic';
|
|
16845
|
+
/** @private */
|
|
16877
16846
|
this.showPassword = false;
|
|
16847
|
+
this.size = 'lg';
|
|
16878
16848
|
this.touched = false;
|
|
16849
|
+
/** @private */
|
|
16879
16850
|
this.uniqueId = new UniqueId().create();
|
|
16851
|
+
/** @private */
|
|
16880
16852
|
this.util = new AuroInputUtilities({
|
|
16881
16853
|
locale: this.locale,
|
|
16882
16854
|
format: this.format
|
|
16883
16855
|
});
|
|
16856
|
+
/** @private */
|
|
16884
16857
|
this.validation = new AuroFormValidation();
|
|
16858
|
+
/** @private */
|
|
16885
16859
|
this.validationCCLength = undefined;
|
|
16860
|
+
this.value = undefined;
|
|
16861
|
+
this._valueObject = undefined;
|
|
16886
16862
|
}
|
|
16887
16863
|
|
|
16888
16864
|
// function to define props used within the scope of this component
|
|
@@ -17430,6 +17406,15 @@ class BaseInput extends AuroElement$1 {
|
|
|
17430
17406
|
|
|
17431
17407
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
17432
17408
|
|
|
17409
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
17410
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
17411
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
17412
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
17413
|
+
// unset.
|
|
17414
|
+
if (this.format) {
|
|
17415
|
+
this.format = this.format.toLowerCase();
|
|
17416
|
+
}
|
|
17417
|
+
|
|
17433
17418
|
// use validity message override if declared when initializing the component
|
|
17434
17419
|
if (this.hasAttribute('setCustomValidity')) {
|
|
17435
17420
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -17863,6 +17848,38 @@ class BaseInput extends AuroElement$1 {
|
|
|
17863
17848
|
this.touched = true;
|
|
17864
17849
|
this.validation.validate(this);
|
|
17865
17850
|
}
|
|
17851
|
+
|
|
17852
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
17853
|
+
// update that can re-render the input and reset the native cursor; we
|
|
17854
|
+
// capture the caret position before that update commits and restore it
|
|
17855
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
17856
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
17857
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
17858
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
17859
|
+
// on input types that don't support text selection (number, email in
|
|
17860
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
17861
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
17862
|
+
// the gated types currently support it, since the list is a public
|
|
17863
|
+
// property a consumer could mutate.
|
|
17864
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
17865
|
+
let selectionStart;
|
|
17866
|
+
try {
|
|
17867
|
+
selectionStart = this.inputElement.selectionStart;
|
|
17868
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
17869
|
+
return;
|
|
17870
|
+
}
|
|
17871
|
+
if (typeof selectionStart !== 'number') {
|
|
17872
|
+
return;
|
|
17873
|
+
}
|
|
17874
|
+
this.updateComplete.then(() => {
|
|
17875
|
+
try {
|
|
17876
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
17877
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
17878
|
+
// Some input types (number/email in certain UAs) throw on
|
|
17879
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
17880
|
+
}
|
|
17881
|
+
});
|
|
17882
|
+
}
|
|
17866
17883
|
}
|
|
17867
17884
|
|
|
17868
17885
|
/**
|
|
@@ -18489,7 +18506,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
18489
18506
|
}
|
|
18490
18507
|
};
|
|
18491
18508
|
|
|
18492
|
-
var formkitVersion$1 = '
|
|
18509
|
+
var formkitVersion$1 = '202606252337';
|
|
18493
18510
|
|
|
18494
18511
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
18495
18512
|
// See LICENSE in the project root for license information.
|
|
@@ -18992,6 +19009,7 @@ class AuroInput extends BaseInput {
|
|
|
18992
19009
|
<${this.buttonTag}
|
|
18993
19010
|
@click="${this.handleClickShowPassword}"
|
|
18994
19011
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
19012
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
18995
19013
|
class="notificationBtn passwordBtn"
|
|
18996
19014
|
shape="circle"
|
|
18997
19015
|
size="sm"
|
|
@@ -19065,25 +19083,29 @@ class AuroInput extends BaseInput {
|
|
|
19065
19083
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
19066
19084
|
*/
|
|
19067
19085
|
renderHtmlHelpText() {
|
|
19086
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
19087
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
19088
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
19089
|
+
// re-announce because the live-region element it was watching had been
|
|
19090
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
19091
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
19092
|
+
// observe and announce.
|
|
19093
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
19068
19094
|
return u$7`
|
|
19069
|
-
|
|
19070
|
-
?
|
|
19071
|
-
|
|
19072
|
-
|
|
19073
|
-
|
|
19074
|
-
|
|
19075
|
-
|
|
19076
|
-
|
|
19077
|
-
|
|
19078
|
-
|
|
19079
|
-
|
|
19080
|
-
|
|
19081
|
-
|
|
19082
|
-
|
|
19083
|
-
</p>
|
|
19084
|
-
</${this.helpTextTag}>
|
|
19085
|
-
`
|
|
19086
|
-
}
|
|
19095
|
+
<${this.helpTextTag}
|
|
19096
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
19097
|
+
?error=${isError}>
|
|
19098
|
+
<p
|
|
19099
|
+
id="${this.uniqueId}"
|
|
19100
|
+
part="helpText"
|
|
19101
|
+
role="${o(isError ? 'alert' : undefined)}"
|
|
19102
|
+
aria-live="${o(isError ? 'assertive' : undefined)}">
|
|
19103
|
+
${isError
|
|
19104
|
+
? this.errorMessage
|
|
19105
|
+
: u$7`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
19106
|
+
}
|
|
19107
|
+
</p>
|
|
19108
|
+
</${this.helpTextTag}>
|
|
19087
19109
|
`;
|
|
19088
19110
|
}
|
|
19089
19111
|
|
|
@@ -19610,7 +19632,7 @@ class AuroBibtemplate extends i$3 {
|
|
|
19610
19632
|
}
|
|
19611
19633
|
}
|
|
19612
19634
|
|
|
19613
|
-
var formkitVersion = '
|
|
19635
|
+
var formkitVersion = '202606252337';
|
|
19614
19636
|
|
|
19615
19637
|
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}`;
|
|
19616
19638
|
|