@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
|
@@ -11497,6 +11497,13 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
11497
11497
|
* @returns {string | undefined}
|
|
11498
11498
|
*/
|
|
11499
11499
|
toFormattedValue(valueObject, format) {
|
|
11500
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
11501
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
11502
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
11503
|
+
// as "no format → no display value".
|
|
11504
|
+
if (!format) {
|
|
11505
|
+
return undefined;
|
|
11506
|
+
}
|
|
11500
11507
|
const normalizedFormat = format.toLowerCase();
|
|
11501
11508
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
11502
11509
|
|
|
@@ -11647,79 +11654,18 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11647
11654
|
constructor() {
|
|
11648
11655
|
super();
|
|
11649
11656
|
|
|
11650
|
-
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11657
|
-
|
|
11658
|
-
|
|
11659
|
-
|
|
11660
|
-
this.required = false;
|
|
11661
|
-
this.onDark = false;
|
|
11662
|
-
this.setCustomValidityForType = undefined;
|
|
11663
|
-
this.size = 'lg';
|
|
11664
|
-
this.shape = 'classic';
|
|
11665
|
-
this.value = undefined;
|
|
11666
|
-
this._valueObject = undefined;
|
|
11667
|
-
|
|
11668
|
-
this._initializePrivateDefaults();
|
|
11669
|
-
}
|
|
11670
|
-
|
|
11671
|
-
/**
|
|
11672
|
-
* Internal Defaults.
|
|
11673
|
-
* @private
|
|
11674
|
-
* @returns {void}
|
|
11675
|
-
*/
|
|
11676
|
-
_initializePrivateDefaults() {
|
|
11657
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
11658
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
11659
|
+
// exactly once here (previously the constructor + the old
|
|
11660
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
11661
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
11662
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
11663
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
11664
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
11665
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
11666
|
+
// during its own update cycle sees a populated util instance.
|
|
11677
11667
|
this.activeLabel = false;
|
|
11678
|
-
|
|
11679
|
-
this.icon = false;
|
|
11680
|
-
this.disabled = false;
|
|
11681
|
-
this.dvInputOnly = false;
|
|
11682
|
-
this.hideLabelVisually = false;
|
|
11683
|
-
this.max = undefined;
|
|
11684
|
-
this.maxLength = undefined;
|
|
11685
|
-
this.min = undefined;
|
|
11686
|
-
this.minLength = undefined;
|
|
11687
|
-
this.noValidate = false;
|
|
11688
|
-
this.onDark = false;
|
|
11689
|
-
this.required = false;
|
|
11690
|
-
this.setCustomValidityForType = undefined;
|
|
11691
|
-
|
|
11692
|
-
// Used for storing raw values returned from input mask.
|
|
11693
|
-
this._rawMaskValue = undefined;
|
|
11694
|
-
|
|
11695
|
-
/**
|
|
11696
|
-
* @private
|
|
11697
|
-
*/
|
|
11698
|
-
this.layout = 'classic';
|
|
11699
|
-
|
|
11700
|
-
/**
|
|
11701
|
-
* @private
|
|
11702
|
-
*/
|
|
11703
|
-
this.shape = 'classic';
|
|
11704
|
-
|
|
11705
|
-
/**
|
|
11706
|
-
* @private
|
|
11707
|
-
*/
|
|
11708
|
-
this.size = 'lg';
|
|
11709
|
-
|
|
11710
|
-
this.touched = false;
|
|
11711
|
-
this.util = new AuroInputUtilities$3({
|
|
11712
|
-
locale: "en-US",
|
|
11713
|
-
format: this.format
|
|
11714
|
-
});
|
|
11715
|
-
this.validation = new AuroFormValidation$7();
|
|
11716
|
-
this.inputIconName = undefined;
|
|
11717
|
-
this.showPassword = false;
|
|
11718
|
-
this.validationCCLength = undefined;
|
|
11719
|
-
this.hasValue = false;
|
|
11720
|
-
this.label = 'Input label is undefined';
|
|
11721
|
-
|
|
11722
|
-
|
|
11668
|
+
/** @private */
|
|
11723
11669
|
this.allowedInputTypes = [
|
|
11724
11670
|
"text",
|
|
11725
11671
|
"number",
|
|
@@ -11728,7 +11674,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11728
11674
|
"credit-card",
|
|
11729
11675
|
"tel"
|
|
11730
11676
|
];
|
|
11731
|
-
this.
|
|
11677
|
+
this.appearance = "default";
|
|
11678
|
+
/** @private */
|
|
11732
11679
|
this.dateFormatMap = {
|
|
11733
11680
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
11734
11681
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -11745,27 +11692,57 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11745
11692
|
'dd/mm': 'dateDDMM',
|
|
11746
11693
|
'mm/dd': 'dateMMDD'
|
|
11747
11694
|
};
|
|
11695
|
+
this.disabled = false;
|
|
11696
|
+
/** @private */
|
|
11748
11697
|
this.domHandler = new DomHandler$3();
|
|
11749
11698
|
this.dvInputOnly = false;
|
|
11750
11699
|
this.hasValue = false;
|
|
11700
|
+
this.hideLabelVisually = false;
|
|
11701
|
+
this.icon = false;
|
|
11702
|
+
/** @private */
|
|
11751
11703
|
this.inputIconName = undefined;
|
|
11704
|
+
/** @private */
|
|
11752
11705
|
this.label = 'Input label is undefined';
|
|
11706
|
+
this.layout = 'classic';
|
|
11707
|
+
this.locale = 'en-US';
|
|
11708
|
+
this.max = undefined;
|
|
11709
|
+
this._maxObject = undefined;
|
|
11710
|
+
this.maxLength = undefined;
|
|
11711
|
+
this.min = undefined;
|
|
11712
|
+
this._minObject = undefined;
|
|
11713
|
+
this.minLength = undefined;
|
|
11753
11714
|
this.noValidate = false;
|
|
11754
|
-
this.
|
|
11715
|
+
this.onDark = false;
|
|
11716
|
+
// Raw values returned from the input mask before model normalization.
|
|
11717
|
+
this._rawMaskValue = undefined;
|
|
11718
|
+
this.required = false;
|
|
11719
|
+
this.setCustomValidityForType = undefined;
|
|
11720
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
11721
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
11722
|
+
/** @private */
|
|
11755
11723
|
this.setSelectionInputTypes = [
|
|
11756
11724
|
"text",
|
|
11757
11725
|
"password",
|
|
11758
11726
|
"email"
|
|
11759
|
-
];
|
|
11727
|
+
];
|
|
11728
|
+
this.shape = 'classic';
|
|
11729
|
+
/** @private */
|
|
11760
11730
|
this.showPassword = false;
|
|
11731
|
+
this.size = 'lg';
|
|
11761
11732
|
this.touched = false;
|
|
11733
|
+
/** @private */
|
|
11762
11734
|
this.uniqueId = new UniqueId$2().create();
|
|
11735
|
+
/** @private */
|
|
11763
11736
|
this.util = new AuroInputUtilities$3({
|
|
11764
11737
|
locale: this.locale,
|
|
11765
11738
|
format: this.format
|
|
11766
11739
|
});
|
|
11740
|
+
/** @private */
|
|
11767
11741
|
this.validation = new AuroFormValidation$7();
|
|
11742
|
+
/** @private */
|
|
11768
11743
|
this.validationCCLength = undefined;
|
|
11744
|
+
this.value = undefined;
|
|
11745
|
+
this._valueObject = undefined;
|
|
11769
11746
|
}
|
|
11770
11747
|
|
|
11771
11748
|
// function to define props used within the scope of this component
|
|
@@ -12313,6 +12290,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12313
12290
|
|
|
12314
12291
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
12315
12292
|
|
|
12293
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
12294
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
12295
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
12296
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
12297
|
+
// unset.
|
|
12298
|
+
if (this.format) {
|
|
12299
|
+
this.format = this.format.toLowerCase();
|
|
12300
|
+
}
|
|
12301
|
+
|
|
12316
12302
|
// use validity message override if declared when initializing the component
|
|
12317
12303
|
if (this.hasAttribute('setCustomValidity')) {
|
|
12318
12304
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -12746,6 +12732,38 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
12746
12732
|
this.touched = true;
|
|
12747
12733
|
this.validation.validate(this);
|
|
12748
12734
|
}
|
|
12735
|
+
|
|
12736
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
12737
|
+
// update that can re-render the input and reset the native cursor; we
|
|
12738
|
+
// capture the caret position before that update commits and restore it
|
|
12739
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
12740
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
12741
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
12742
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
12743
|
+
// on input types that don't support text selection (number, email in
|
|
12744
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
12745
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
12746
|
+
// the gated types currently support it, since the list is a public
|
|
12747
|
+
// property a consumer could mutate.
|
|
12748
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
12749
|
+
let selectionStart;
|
|
12750
|
+
try {
|
|
12751
|
+
selectionStart = this.inputElement.selectionStart;
|
|
12752
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12753
|
+
return;
|
|
12754
|
+
}
|
|
12755
|
+
if (typeof selectionStart !== 'number') {
|
|
12756
|
+
return;
|
|
12757
|
+
}
|
|
12758
|
+
this.updateComplete.then(() => {
|
|
12759
|
+
try {
|
|
12760
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
12761
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
12762
|
+
// Some input types (number/email in certain UAs) throw on
|
|
12763
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
12764
|
+
}
|
|
12765
|
+
});
|
|
12766
|
+
}
|
|
12749
12767
|
}
|
|
12750
12768
|
|
|
12751
12769
|
/**
|
|
@@ -13372,7 +13390,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$3 {
|
|
|
13372
13390
|
}
|
|
13373
13391
|
};
|
|
13374
13392
|
|
|
13375
|
-
var formkitVersion$8 = '
|
|
13393
|
+
var formkitVersion$8 = '202606252337';
|
|
13376
13394
|
|
|
13377
13395
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
13378
13396
|
// See LICENSE in the project root for license information.
|
|
@@ -13875,6 +13893,7 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13875
13893
|
<${this.buttonTag}
|
|
13876
13894
|
@click="${this.handleClickShowPassword}"
|
|
13877
13895
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
13896
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
13878
13897
|
class="notificationBtn passwordBtn"
|
|
13879
13898
|
shape="circle"
|
|
13880
13899
|
size="sm"
|
|
@@ -13948,25 +13967,29 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
13948
13967
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
13949
13968
|
*/
|
|
13950
13969
|
renderHtmlHelpText() {
|
|
13970
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
13971
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
13972
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
13973
|
+
// re-announce because the live-region element it was watching had been
|
|
13974
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
13975
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
13976
|
+
// observe and announce.
|
|
13977
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
13951
13978
|
return u$c`
|
|
13952
|
-
|
|
13953
|
-
?
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
|
|
13962
|
-
|
|
13963
|
-
|
|
13964
|
-
|
|
13965
|
-
|
|
13966
|
-
</p>
|
|
13967
|
-
</${this.helpTextTag}>
|
|
13968
|
-
`
|
|
13969
|
-
}
|
|
13979
|
+
<${this.helpTextTag}
|
|
13980
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
13981
|
+
?error=${isError}>
|
|
13982
|
+
<p
|
|
13983
|
+
id="${this.uniqueId}"
|
|
13984
|
+
part="helpText"
|
|
13985
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
13986
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
13987
|
+
${isError
|
|
13988
|
+
? this.errorMessage
|
|
13989
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
13990
|
+
}
|
|
13991
|
+
</p>
|
|
13992
|
+
</${this.helpTextTag}>
|
|
13970
13993
|
`;
|
|
13971
13994
|
}
|
|
13972
13995
|
|
|
@@ -24607,6 +24630,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
24607
24630
|
* @returns {string | undefined}
|
|
24608
24631
|
*/
|
|
24609
24632
|
toFormattedValue(valueObject, format) {
|
|
24633
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
24634
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
24635
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
24636
|
+
// as "no format → no display value".
|
|
24637
|
+
if (!format) {
|
|
24638
|
+
return undefined;
|
|
24639
|
+
}
|
|
24610
24640
|
const normalizedFormat = format.toLowerCase();
|
|
24611
24641
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
24612
24642
|
|
|
@@ -27491,7 +27521,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$3 {
|
|
|
27491
27521
|
}
|
|
27492
27522
|
};
|
|
27493
27523
|
|
|
27494
|
-
var formkitVersion$2$1 = '
|
|
27524
|
+
var formkitVersion$2$1 = '202606252337';
|
|
27495
27525
|
|
|
27496
27526
|
let l$1$2 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$2`${s$3(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1$2 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1$2 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1$3=i$6`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
27497
27527
|
`,u$4$2=i$6`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -33002,7 +33032,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$3 {
|
|
|
33002
33032
|
}
|
|
33003
33033
|
};
|
|
33004
33034
|
|
|
33005
|
-
var formkitVersion$1$3 = '
|
|
33035
|
+
var formkitVersion$1$3 = '202606252337';
|
|
33006
33036
|
|
|
33007
33037
|
let AuroElement$2$2 = class AuroElement extends i$3 {
|
|
33008
33038
|
static get properties() {
|
|
@@ -34274,7 +34304,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
34274
34304
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
34275
34305
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
34276
34306
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
34277
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
34278
34307
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
34279
34308
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
34280
34309
|
@focusin="${this.handleFocusin}"
|
|
@@ -44721,6 +44750,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
44721
44750
|
* @returns {string | undefined}
|
|
44722
44751
|
*/
|
|
44723
44752
|
toFormattedValue(valueObject, format) {
|
|
44753
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
44754
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
44755
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
44756
|
+
// as "no format → no display value".
|
|
44757
|
+
if (!format) {
|
|
44758
|
+
return undefined;
|
|
44759
|
+
}
|
|
44724
44760
|
const normalizedFormat = format.toLowerCase();
|
|
44725
44761
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
44726
44762
|
|
|
@@ -44871,79 +44907,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44871
44907
|
constructor() {
|
|
44872
44908
|
super();
|
|
44873
44909
|
|
|
44874
|
-
|
|
44875
|
-
|
|
44876
|
-
|
|
44877
|
-
|
|
44878
|
-
|
|
44879
|
-
|
|
44880
|
-
|
|
44881
|
-
|
|
44882
|
-
|
|
44883
|
-
|
|
44884
|
-
this.required = false;
|
|
44885
|
-
this.onDark = false;
|
|
44886
|
-
this.setCustomValidityForType = undefined;
|
|
44887
|
-
this.size = 'lg';
|
|
44888
|
-
this.shape = 'classic';
|
|
44889
|
-
this.value = undefined;
|
|
44890
|
-
this._valueObject = undefined;
|
|
44891
|
-
|
|
44892
|
-
this._initializePrivateDefaults();
|
|
44893
|
-
}
|
|
44894
|
-
|
|
44895
|
-
/**
|
|
44896
|
-
* Internal Defaults.
|
|
44897
|
-
* @private
|
|
44898
|
-
* @returns {void}
|
|
44899
|
-
*/
|
|
44900
|
-
_initializePrivateDefaults() {
|
|
44910
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
44911
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
44912
|
+
// exactly once here (previously the constructor + the old
|
|
44913
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
44914
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
44915
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
44916
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
44917
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
44918
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
44919
|
+
// during its own update cycle sees a populated util instance.
|
|
44901
44920
|
this.activeLabel = false;
|
|
44902
|
-
|
|
44903
|
-
this.icon = false;
|
|
44904
|
-
this.disabled = false;
|
|
44905
|
-
this.dvInputOnly = false;
|
|
44906
|
-
this.hideLabelVisually = false;
|
|
44907
|
-
this.max = undefined;
|
|
44908
|
-
this.maxLength = undefined;
|
|
44909
|
-
this.min = undefined;
|
|
44910
|
-
this.minLength = undefined;
|
|
44911
|
-
this.noValidate = false;
|
|
44912
|
-
this.onDark = false;
|
|
44913
|
-
this.required = false;
|
|
44914
|
-
this.setCustomValidityForType = undefined;
|
|
44915
|
-
|
|
44916
|
-
// Used for storing raw values returned from input mask.
|
|
44917
|
-
this._rawMaskValue = undefined;
|
|
44918
|
-
|
|
44919
|
-
/**
|
|
44920
|
-
* @private
|
|
44921
|
-
*/
|
|
44922
|
-
this.layout = 'classic';
|
|
44923
|
-
|
|
44924
|
-
/**
|
|
44925
|
-
* @private
|
|
44926
|
-
*/
|
|
44927
|
-
this.shape = 'classic';
|
|
44928
|
-
|
|
44929
|
-
/**
|
|
44930
|
-
* @private
|
|
44931
|
-
*/
|
|
44932
|
-
this.size = 'lg';
|
|
44933
|
-
|
|
44934
|
-
this.touched = false;
|
|
44935
|
-
this.util = new AuroInputUtilities$2({
|
|
44936
|
-
locale: "en-US",
|
|
44937
|
-
format: this.format
|
|
44938
|
-
});
|
|
44939
|
-
this.validation = new AuroFormValidation$6();
|
|
44940
|
-
this.inputIconName = undefined;
|
|
44941
|
-
this.showPassword = false;
|
|
44942
|
-
this.validationCCLength = undefined;
|
|
44943
|
-
this.hasValue = false;
|
|
44944
|
-
this.label = 'Input label is undefined';
|
|
44945
|
-
|
|
44946
|
-
|
|
44921
|
+
/** @private */
|
|
44947
44922
|
this.allowedInputTypes = [
|
|
44948
44923
|
"text",
|
|
44949
44924
|
"number",
|
|
@@ -44952,7 +44927,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44952
44927
|
"credit-card",
|
|
44953
44928
|
"tel"
|
|
44954
44929
|
];
|
|
44955
|
-
this.
|
|
44930
|
+
this.appearance = "default";
|
|
44931
|
+
/** @private */
|
|
44956
44932
|
this.dateFormatMap = {
|
|
44957
44933
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
44958
44934
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -44969,27 +44945,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44969
44945
|
'dd/mm': 'dateDDMM',
|
|
44970
44946
|
'mm/dd': 'dateMMDD'
|
|
44971
44947
|
};
|
|
44948
|
+
this.disabled = false;
|
|
44949
|
+
/** @private */
|
|
44972
44950
|
this.domHandler = new DomHandler$2();
|
|
44973
44951
|
this.dvInputOnly = false;
|
|
44974
44952
|
this.hasValue = false;
|
|
44953
|
+
this.hideLabelVisually = false;
|
|
44954
|
+
this.icon = false;
|
|
44955
|
+
/** @private */
|
|
44975
44956
|
this.inputIconName = undefined;
|
|
44957
|
+
/** @private */
|
|
44976
44958
|
this.label = 'Input label is undefined';
|
|
44959
|
+
this.layout = 'classic';
|
|
44960
|
+
this.locale = 'en-US';
|
|
44961
|
+
this.max = undefined;
|
|
44962
|
+
this._maxObject = undefined;
|
|
44963
|
+
this.maxLength = undefined;
|
|
44964
|
+
this.min = undefined;
|
|
44965
|
+
this._minObject = undefined;
|
|
44966
|
+
this.minLength = undefined;
|
|
44977
44967
|
this.noValidate = false;
|
|
44978
|
-
this.
|
|
44968
|
+
this.onDark = false;
|
|
44969
|
+
// Raw values returned from the input mask before model normalization.
|
|
44970
|
+
this._rawMaskValue = undefined;
|
|
44971
|
+
this.required = false;
|
|
44972
|
+
this.setCustomValidityForType = undefined;
|
|
44973
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
44974
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
44975
|
+
/** @private */
|
|
44979
44976
|
this.setSelectionInputTypes = [
|
|
44980
44977
|
"text",
|
|
44981
44978
|
"password",
|
|
44982
44979
|
"email"
|
|
44983
|
-
];
|
|
44980
|
+
];
|
|
44981
|
+
this.shape = 'classic';
|
|
44982
|
+
/** @private */
|
|
44984
44983
|
this.showPassword = false;
|
|
44984
|
+
this.size = 'lg';
|
|
44985
44985
|
this.touched = false;
|
|
44986
|
+
/** @private */
|
|
44986
44987
|
this.uniqueId = new UniqueId$1().create();
|
|
44988
|
+
/** @private */
|
|
44987
44989
|
this.util = new AuroInputUtilities$2({
|
|
44988
44990
|
locale: this.locale,
|
|
44989
44991
|
format: this.format
|
|
44990
44992
|
});
|
|
44993
|
+
/** @private */
|
|
44991
44994
|
this.validation = new AuroFormValidation$6();
|
|
44995
|
+
/** @private */
|
|
44992
44996
|
this.validationCCLength = undefined;
|
|
44997
|
+
this.value = undefined;
|
|
44998
|
+
this._valueObject = undefined;
|
|
44993
44999
|
}
|
|
44994
45000
|
|
|
44995
45001
|
// function to define props used within the scope of this component
|
|
@@ -45537,6 +45543,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45537
45543
|
|
|
45538
45544
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
45539
45545
|
|
|
45546
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
45547
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
45548
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
45549
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
45550
|
+
// unset.
|
|
45551
|
+
if (this.format) {
|
|
45552
|
+
this.format = this.format.toLowerCase();
|
|
45553
|
+
}
|
|
45554
|
+
|
|
45540
45555
|
// use validity message override if declared when initializing the component
|
|
45541
45556
|
if (this.hasAttribute('setCustomValidity')) {
|
|
45542
45557
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -45970,6 +45985,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
45970
45985
|
this.touched = true;
|
|
45971
45986
|
this.validation.validate(this);
|
|
45972
45987
|
}
|
|
45988
|
+
|
|
45989
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
45990
|
+
// update that can re-render the input and reset the native cursor; we
|
|
45991
|
+
// capture the caret position before that update commits and restore it
|
|
45992
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
45993
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
45994
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
45995
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
45996
|
+
// on input types that don't support text selection (number, email in
|
|
45997
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
45998
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
45999
|
+
// the gated types currently support it, since the list is a public
|
|
46000
|
+
// property a consumer could mutate.
|
|
46001
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
46002
|
+
let selectionStart;
|
|
46003
|
+
try {
|
|
46004
|
+
selectionStart = this.inputElement.selectionStart;
|
|
46005
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46006
|
+
return;
|
|
46007
|
+
}
|
|
46008
|
+
if (typeof selectionStart !== 'number') {
|
|
46009
|
+
return;
|
|
46010
|
+
}
|
|
46011
|
+
this.updateComplete.then(() => {
|
|
46012
|
+
try {
|
|
46013
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
46014
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
46015
|
+
// Some input types (number/email in certain UAs) throw on
|
|
46016
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
46017
|
+
}
|
|
46018
|
+
});
|
|
46019
|
+
}
|
|
45973
46020
|
}
|
|
45974
46021
|
|
|
45975
46022
|
/**
|
|
@@ -46596,7 +46643,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$3 {
|
|
|
46596
46643
|
}
|
|
46597
46644
|
};
|
|
46598
46645
|
|
|
46599
|
-
var formkitVersion$7 = '
|
|
46646
|
+
var formkitVersion$7 = '202606252337';
|
|
46600
46647
|
|
|
46601
46648
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
46602
46649
|
// See LICENSE in the project root for license information.
|
|
@@ -47099,6 +47146,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
47099
47146
|
<${this.buttonTag}
|
|
47100
47147
|
@click="${this.handleClickShowPassword}"
|
|
47101
47148
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
47149
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
47102
47150
|
class="notificationBtn passwordBtn"
|
|
47103
47151
|
shape="circle"
|
|
47104
47152
|
size="sm"
|
|
@@ -47172,25 +47220,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
47172
47220
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
47173
47221
|
*/
|
|
47174
47222
|
renderHtmlHelpText() {
|
|
47223
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
47224
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
47225
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
47226
|
+
// re-announce because the live-region element it was watching had been
|
|
47227
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
47228
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
47229
|
+
// observe and announce.
|
|
47230
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
47175
47231
|
return u$c`
|
|
47176
|
-
|
|
47177
|
-
?
|
|
47178
|
-
|
|
47179
|
-
|
|
47180
|
-
|
|
47181
|
-
|
|
47182
|
-
|
|
47183
|
-
|
|
47184
|
-
|
|
47185
|
-
|
|
47186
|
-
|
|
47187
|
-
|
|
47188
|
-
|
|
47189
|
-
|
|
47190
|
-
</p>
|
|
47191
|
-
</${this.helpTextTag}>
|
|
47192
|
-
`
|
|
47193
|
-
}
|
|
47232
|
+
<${this.helpTextTag}
|
|
47233
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
47234
|
+
?error=${isError}>
|
|
47235
|
+
<p
|
|
47236
|
+
id="${this.uniqueId}"
|
|
47237
|
+
part="helpText"
|
|
47238
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
47239
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
47240
|
+
${isError
|
|
47241
|
+
? this.errorMessage
|
|
47242
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
47243
|
+
}
|
|
47244
|
+
</p>
|
|
47245
|
+
</${this.helpTextTag}>
|
|
47194
47246
|
`;
|
|
47195
47247
|
}
|
|
47196
47248
|
|
|
@@ -47337,6 +47389,15 @@ function formatISODate(isoStr, format) {
|
|
|
47337
47389
|
try {
|
|
47338
47390
|
const date = dateFormatter$2.stringToDateInstance(isoStr);
|
|
47339
47391
|
|
|
47392
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
47393
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
47394
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
47395
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
47396
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
47397
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
47398
|
+
return undefined;
|
|
47399
|
+
}
|
|
47400
|
+
|
|
47340
47401
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
47341
47402
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
47342
47403
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -47347,7 +47408,10 @@ function formatISODate(isoStr, format) {
|
|
|
47347
47408
|
replace(/mm/iu, month).
|
|
47348
47409
|
replace(/dd/iu, day);
|
|
47349
47410
|
} catch (err) {
|
|
47350
|
-
//
|
|
47411
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
47412
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
47413
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
47414
|
+
// "not a valid date" and return undefined.
|
|
47351
47415
|
return undefined;
|
|
47352
47416
|
}
|
|
47353
47417
|
}
|
|
@@ -51299,7 +51363,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$3 {
|
|
|
51299
51363
|
}
|
|
51300
51364
|
};
|
|
51301
51365
|
|
|
51302
|
-
var formkitVersion$1$2 = '
|
|
51366
|
+
var formkitVersion$1$2 = '202606252337';
|
|
51303
51367
|
|
|
51304
51368
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
51305
51369
|
// See LICENSE in the project root for license information.
|
|
@@ -55627,7 +55691,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$3 {
|
|
|
55627
55691
|
}
|
|
55628
55692
|
};
|
|
55629
55693
|
|
|
55630
|
-
var formkitVersion$6 = '
|
|
55694
|
+
var formkitVersion$6 = '202606252337';
|
|
55631
55695
|
|
|
55632
55696
|
let AuroElement$1$2 = class AuroElement extends i$3 {
|
|
55633
55697
|
static get properties() {
|
|
@@ -56899,7 +56963,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
56899
56963
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
56900
56964
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
56901
56965
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
56902
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
56903
56966
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
56904
56967
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
56905
56968
|
@focusin="${this.handleFocusin}"
|
|
@@ -59568,7 +59631,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$3 {
|
|
|
59568
59631
|
}
|
|
59569
59632
|
};
|
|
59570
59633
|
|
|
59571
|
-
var formkitVersion$5 = '
|
|
59634
|
+
var formkitVersion$5 = '202606252337';
|
|
59572
59635
|
|
|
59573
59636
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
59574
59637
|
// See LICENSE in the project root for license information.
|
|
@@ -61318,7 +61381,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$3 {
|
|
|
61318
61381
|
}
|
|
61319
61382
|
};
|
|
61320
61383
|
|
|
61321
|
-
var formkitVersion$4 = '
|
|
61384
|
+
var formkitVersion$4 = '202606252337';
|
|
61322
61385
|
|
|
61323
61386
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
61324
61387
|
// See LICENSE in the project root for license information.
|
|
@@ -66533,7 +66596,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$3 {
|
|
|
66533
66596
|
}
|
|
66534
66597
|
};
|
|
66535
66598
|
|
|
66536
|
-
var formkitVersion$2 = '
|
|
66599
|
+
var formkitVersion$2 = '202606252337';
|
|
66537
66600
|
|
|
66538
66601
|
let AuroElement$2$1 = class AuroElement extends i$3 {
|
|
66539
66602
|
static get properties() {
|
|
@@ -67805,7 +67868,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
67805
67868
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
67806
67869
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
67807
67870
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
67808
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
67809
67871
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
67810
67872
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
67811
67873
|
@focusin="${this.handleFocusin}"
|
|
@@ -78252,6 +78314,13 @@ class AuroInputUtilities {
|
|
|
78252
78314
|
* @returns {string | undefined}
|
|
78253
78315
|
*/
|
|
78254
78316
|
toFormattedValue(valueObject, format) {
|
|
78317
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
78318
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
78319
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
78320
|
+
// as "no format → no display value".
|
|
78321
|
+
if (!format) {
|
|
78322
|
+
return undefined;
|
|
78323
|
+
}
|
|
78255
78324
|
const normalizedFormat = format.toLowerCase();
|
|
78256
78325
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
78257
78326
|
|
|
@@ -78402,79 +78471,18 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78402
78471
|
constructor() {
|
|
78403
78472
|
super();
|
|
78404
78473
|
|
|
78405
|
-
|
|
78406
|
-
|
|
78407
|
-
|
|
78408
|
-
|
|
78409
|
-
|
|
78410
|
-
|
|
78411
|
-
|
|
78412
|
-
|
|
78413
|
-
|
|
78414
|
-
|
|
78415
|
-
this.required = false;
|
|
78416
|
-
this.onDark = false;
|
|
78417
|
-
this.setCustomValidityForType = undefined;
|
|
78418
|
-
this.size = 'lg';
|
|
78419
|
-
this.shape = 'classic';
|
|
78420
|
-
this.value = undefined;
|
|
78421
|
-
this._valueObject = undefined;
|
|
78422
|
-
|
|
78423
|
-
this._initializePrivateDefaults();
|
|
78424
|
-
}
|
|
78425
|
-
|
|
78426
|
-
/**
|
|
78427
|
-
* Internal Defaults.
|
|
78428
|
-
* @private
|
|
78429
|
-
* @returns {void}
|
|
78430
|
-
*/
|
|
78431
|
-
_initializePrivateDefaults() {
|
|
78474
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
78475
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
78476
|
+
// exactly once here (previously the constructor + the old
|
|
78477
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
78478
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
78479
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
78480
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
78481
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
78482
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
78483
|
+
// during its own update cycle sees a populated util instance.
|
|
78432
78484
|
this.activeLabel = false;
|
|
78433
|
-
|
|
78434
|
-
this.icon = false;
|
|
78435
|
-
this.disabled = false;
|
|
78436
|
-
this.dvInputOnly = false;
|
|
78437
|
-
this.hideLabelVisually = false;
|
|
78438
|
-
this.max = undefined;
|
|
78439
|
-
this.maxLength = undefined;
|
|
78440
|
-
this.min = undefined;
|
|
78441
|
-
this.minLength = undefined;
|
|
78442
|
-
this.noValidate = false;
|
|
78443
|
-
this.onDark = false;
|
|
78444
|
-
this.required = false;
|
|
78445
|
-
this.setCustomValidityForType = undefined;
|
|
78446
|
-
|
|
78447
|
-
// Used for storing raw values returned from input mask.
|
|
78448
|
-
this._rawMaskValue = undefined;
|
|
78449
|
-
|
|
78450
|
-
/**
|
|
78451
|
-
* @private
|
|
78452
|
-
*/
|
|
78453
|
-
this.layout = 'classic';
|
|
78454
|
-
|
|
78455
|
-
/**
|
|
78456
|
-
* @private
|
|
78457
|
-
*/
|
|
78458
|
-
this.shape = 'classic';
|
|
78459
|
-
|
|
78460
|
-
/**
|
|
78461
|
-
* @private
|
|
78462
|
-
*/
|
|
78463
|
-
this.size = 'lg';
|
|
78464
|
-
|
|
78465
|
-
this.touched = false;
|
|
78466
|
-
this.util = new AuroInputUtilities({
|
|
78467
|
-
locale: "en-US",
|
|
78468
|
-
format: this.format
|
|
78469
|
-
});
|
|
78470
|
-
this.validation = new AuroFormValidation$2();
|
|
78471
|
-
this.inputIconName = undefined;
|
|
78472
|
-
this.showPassword = false;
|
|
78473
|
-
this.validationCCLength = undefined;
|
|
78474
|
-
this.hasValue = false;
|
|
78475
|
-
this.label = 'Input label is undefined';
|
|
78476
|
-
|
|
78477
|
-
|
|
78485
|
+
/** @private */
|
|
78478
78486
|
this.allowedInputTypes = [
|
|
78479
78487
|
"text",
|
|
78480
78488
|
"number",
|
|
@@ -78483,7 +78491,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78483
78491
|
"credit-card",
|
|
78484
78492
|
"tel"
|
|
78485
78493
|
];
|
|
78486
|
-
this.
|
|
78494
|
+
this.appearance = "default";
|
|
78495
|
+
/** @private */
|
|
78487
78496
|
this.dateFormatMap = {
|
|
78488
78497
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
78489
78498
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -78500,27 +78509,57 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78500
78509
|
'dd/mm': 'dateDDMM',
|
|
78501
78510
|
'mm/dd': 'dateMMDD'
|
|
78502
78511
|
};
|
|
78512
|
+
this.disabled = false;
|
|
78513
|
+
/** @private */
|
|
78503
78514
|
this.domHandler = new DomHandler();
|
|
78504
78515
|
this.dvInputOnly = false;
|
|
78505
78516
|
this.hasValue = false;
|
|
78517
|
+
this.hideLabelVisually = false;
|
|
78518
|
+
this.icon = false;
|
|
78519
|
+
/** @private */
|
|
78506
78520
|
this.inputIconName = undefined;
|
|
78521
|
+
/** @private */
|
|
78507
78522
|
this.label = 'Input label is undefined';
|
|
78523
|
+
this.layout = 'classic';
|
|
78524
|
+
this.locale = 'en-US';
|
|
78525
|
+
this.max = undefined;
|
|
78526
|
+
this._maxObject = undefined;
|
|
78527
|
+
this.maxLength = undefined;
|
|
78528
|
+
this.min = undefined;
|
|
78529
|
+
this._minObject = undefined;
|
|
78530
|
+
this.minLength = undefined;
|
|
78508
78531
|
this.noValidate = false;
|
|
78509
|
-
this.
|
|
78532
|
+
this.onDark = false;
|
|
78533
|
+
// Raw values returned from the input mask before model normalization.
|
|
78534
|
+
this._rawMaskValue = undefined;
|
|
78535
|
+
this.required = false;
|
|
78536
|
+
this.setCustomValidityForType = undefined;
|
|
78537
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
78538
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
78539
|
+
/** @private */
|
|
78510
78540
|
this.setSelectionInputTypes = [
|
|
78511
78541
|
"text",
|
|
78512
78542
|
"password",
|
|
78513
78543
|
"email"
|
|
78514
|
-
];
|
|
78544
|
+
];
|
|
78545
|
+
this.shape = 'classic';
|
|
78546
|
+
/** @private */
|
|
78515
78547
|
this.showPassword = false;
|
|
78548
|
+
this.size = 'lg';
|
|
78516
78549
|
this.touched = false;
|
|
78550
|
+
/** @private */
|
|
78517
78551
|
this.uniqueId = new UniqueId().create();
|
|
78552
|
+
/** @private */
|
|
78518
78553
|
this.util = new AuroInputUtilities({
|
|
78519
78554
|
locale: this.locale,
|
|
78520
78555
|
format: this.format
|
|
78521
78556
|
});
|
|
78557
|
+
/** @private */
|
|
78522
78558
|
this.validation = new AuroFormValidation$2();
|
|
78559
|
+
/** @private */
|
|
78523
78560
|
this.validationCCLength = undefined;
|
|
78561
|
+
this.value = undefined;
|
|
78562
|
+
this._valueObject = undefined;
|
|
78524
78563
|
}
|
|
78525
78564
|
|
|
78526
78565
|
// function to define props used within the scope of this component
|
|
@@ -79068,6 +79107,15 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79068
79107
|
|
|
79069
79108
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
79070
79109
|
|
|
79110
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
79111
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
79112
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
79113
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
79114
|
+
// unset.
|
|
79115
|
+
if (this.format) {
|
|
79116
|
+
this.format = this.format.toLowerCase();
|
|
79117
|
+
}
|
|
79118
|
+
|
|
79071
79119
|
// use validity message override if declared when initializing the component
|
|
79072
79120
|
if (this.hasAttribute('setCustomValidity')) {
|
|
79073
79121
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -79501,6 +79549,38 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
79501
79549
|
this.touched = true;
|
|
79502
79550
|
this.validation.validate(this);
|
|
79503
79551
|
}
|
|
79552
|
+
|
|
79553
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
79554
|
+
// update that can re-render the input and reset the native cursor; we
|
|
79555
|
+
// capture the caret position before that update commits and restore it
|
|
79556
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
79557
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
79558
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
79559
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
79560
|
+
// on input types that don't support text selection (number, email in
|
|
79561
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
79562
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
79563
|
+
// the gated types currently support it, since the list is a public
|
|
79564
|
+
// property a consumer could mutate.
|
|
79565
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
79566
|
+
let selectionStart;
|
|
79567
|
+
try {
|
|
79568
|
+
selectionStart = this.inputElement.selectionStart;
|
|
79569
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79570
|
+
return;
|
|
79571
|
+
}
|
|
79572
|
+
if (typeof selectionStart !== 'number') {
|
|
79573
|
+
return;
|
|
79574
|
+
}
|
|
79575
|
+
this.updateComplete.then(() => {
|
|
79576
|
+
try {
|
|
79577
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
79578
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
79579
|
+
// Some input types (number/email in certain UAs) throw on
|
|
79580
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
79581
|
+
}
|
|
79582
|
+
});
|
|
79583
|
+
}
|
|
79504
79584
|
}
|
|
79505
79585
|
|
|
79506
79586
|
/**
|
|
@@ -80127,7 +80207,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$3 {
|
|
|
80127
80207
|
}
|
|
80128
80208
|
};
|
|
80129
80209
|
|
|
80130
|
-
var formkitVersion$1$1 = '
|
|
80210
|
+
var formkitVersion$1$1 = '202606252337';
|
|
80131
80211
|
|
|
80132
80212
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
80133
80213
|
// See LICENSE in the project root for license information.
|
|
@@ -80630,6 +80710,7 @@ class AuroInput extends BaseInput {
|
|
|
80630
80710
|
<${this.buttonTag}
|
|
80631
80711
|
@click="${this.handleClickShowPassword}"
|
|
80632
80712
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
80713
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
80633
80714
|
class="notificationBtn passwordBtn"
|
|
80634
80715
|
shape="circle"
|
|
80635
80716
|
size="sm"
|
|
@@ -80703,25 +80784,29 @@ class AuroInput extends BaseInput {
|
|
|
80703
80784
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
80704
80785
|
*/
|
|
80705
80786
|
renderHtmlHelpText() {
|
|
80787
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
80788
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
80789
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
80790
|
+
// re-announce because the live-region element it was watching had been
|
|
80791
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
80792
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
80793
|
+
// observe and announce.
|
|
80794
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
80706
80795
|
return u$c`
|
|
80707
|
-
|
|
80708
|
-
?
|
|
80709
|
-
|
|
80710
|
-
|
|
80711
|
-
|
|
80712
|
-
|
|
80713
|
-
|
|
80714
|
-
|
|
80715
|
-
|
|
80716
|
-
|
|
80717
|
-
|
|
80718
|
-
|
|
80719
|
-
|
|
80720
|
-
|
|
80721
|
-
</p>
|
|
80722
|
-
</${this.helpTextTag}>
|
|
80723
|
-
`
|
|
80724
|
-
}
|
|
80796
|
+
<${this.helpTextTag}
|
|
80797
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
80798
|
+
?error=${isError}>
|
|
80799
|
+
<p
|
|
80800
|
+
id="${this.uniqueId}"
|
|
80801
|
+
part="helpText"
|
|
80802
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
80803
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
80804
|
+
${isError
|
|
80805
|
+
? this.errorMessage
|
|
80806
|
+
: u$c`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
80807
|
+
}
|
|
80808
|
+
</p>
|
|
80809
|
+
</${this.helpTextTag}>
|
|
80725
80810
|
`;
|
|
80726
80811
|
}
|
|
80727
80812
|
|
|
@@ -81248,7 +81333,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$3 {
|
|
|
81248
81333
|
}
|
|
81249
81334
|
};
|
|
81250
81335
|
|
|
81251
|
-
var formkitVersion$3 = '
|
|
81336
|
+
var formkitVersion$3 = '202606252337';
|
|
81252
81337
|
|
|
81253
81338
|
var styleCss$1$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}`;
|
|
81254
81339
|
|
|
@@ -86061,24 +86146,19 @@ const selectKeyboardStrategy = {
|
|
|
86061
86146
|
},
|
|
86062
86147
|
|
|
86063
86148
|
End(component, evt, ctx) {
|
|
86149
|
+
if (!ctx.isExpanded) {
|
|
86150
|
+
return;
|
|
86151
|
+
}
|
|
86064
86152
|
evt.preventDefault();
|
|
86065
86153
|
evt.stopPropagation();
|
|
86066
86154
|
// `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
|
|
86067
86155
|
const lastOption = getEnabledOptions(component.menu).pop();
|
|
86068
|
-
if (
|
|
86069
|
-
|
|
86070
|
-
}
|
|
86071
|
-
if (!ctx.isExpanded) {
|
|
86072
|
-
component.dropdown.show();
|
|
86156
|
+
if (lastOption) {
|
|
86157
|
+
component.menu.updateActiveOption(lastOption);
|
|
86073
86158
|
}
|
|
86074
|
-
component.menu.updateActiveOption(lastOption);
|
|
86075
86159
|
},
|
|
86076
86160
|
|
|
86077
86161
|
Enter(component, evt, ctx) {
|
|
86078
|
-
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
86079
|
-
// which could interpret Enter as a submit. Matches APG select-only combobox
|
|
86080
|
-
// and native <select> behavior: Enter opens the listbox when closed, selects
|
|
86081
|
-
// the active option when open — it does not submit a parent form.
|
|
86082
86162
|
evt.preventDefault();
|
|
86083
86163
|
evt.stopPropagation();
|
|
86084
86164
|
if (!ctx.isExpanded) {
|
|
@@ -86089,16 +86169,15 @@ const selectKeyboardStrategy = {
|
|
|
86089
86169
|
},
|
|
86090
86170
|
|
|
86091
86171
|
Home(component, evt, ctx) {
|
|
86172
|
+
if (!ctx.isExpanded) {
|
|
86173
|
+
return;
|
|
86174
|
+
}
|
|
86092
86175
|
evt.preventDefault();
|
|
86093
86176
|
evt.stopPropagation();
|
|
86094
86177
|
const [firstOption] = getEnabledOptions(component.menu);
|
|
86095
|
-
if (
|
|
86096
|
-
|
|
86178
|
+
if (firstOption) {
|
|
86179
|
+
component.menu.updateActiveOption(firstOption);
|
|
86097
86180
|
}
|
|
86098
|
-
if (!ctx.isExpanded) {
|
|
86099
|
-
component.dropdown.show();
|
|
86100
|
-
}
|
|
86101
|
-
component.menu.updateActiveOption(firstOption);
|
|
86102
86181
|
},
|
|
86103
86182
|
|
|
86104
86183
|
Tab(component, evt, ctx) {
|
|
@@ -90045,7 +90124,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
90045
90124
|
}
|
|
90046
90125
|
};
|
|
90047
90126
|
|
|
90048
|
-
var formkitVersion$1 = '
|
|
90127
|
+
var formkitVersion$1 = '202606252337';
|
|
90049
90128
|
|
|
90050
90129
|
class AuroElement extends i$3 {
|
|
90051
90130
|
static get properties() {
|
|
@@ -91317,7 +91396,6 @@ class AuroDropdown extends AuroElement {
|
|
|
91317
91396
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
91318
91397
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
91319
91398
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
91320
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
91321
91399
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
91322
91400
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
91323
91401
|
@focusin="${this.handleFocusin}"
|
|
@@ -92067,7 +92145,7 @@ class AuroHelpText extends i$3 {
|
|
|
92067
92145
|
}
|
|
92068
92146
|
}
|
|
92069
92147
|
|
|
92070
|
-
var formkitVersion = '
|
|
92148
|
+
var formkitVersion = '202606252337';
|
|
92071
92149
|
|
|
92072
92150
|
var styleCss = 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}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 300);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 300);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
92073
92151
|
|
|
@@ -92399,6 +92477,14 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92399
92477
|
reflect: true
|
|
92400
92478
|
},
|
|
92401
92479
|
|
|
92480
|
+
/**
|
|
92481
|
+
* @private
|
|
92482
|
+
*/
|
|
92483
|
+
options: {
|
|
92484
|
+
type: Array,
|
|
92485
|
+
state: true
|
|
92486
|
+
},
|
|
92487
|
+
|
|
92402
92488
|
/**
|
|
92403
92489
|
* Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
|
|
92404
92490
|
* @type {HTMLElement|Array<HTMLElement>}
|
|
@@ -92686,68 +92772,16 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92686
92772
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
92687
92773
|
}
|
|
92688
92774
|
|
|
92689
|
-
|
|
92775
|
+
// Pass label text to the dropdown bib for accessible dialog naming
|
|
92776
|
+
const labelElement = this.querySelector('span[slot="label"]');
|
|
92777
|
+
if (labelElement) {
|
|
92778
|
+
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
92779
|
+
}
|
|
92690
92780
|
|
|
92691
92781
|
// Exposes the CSS parts from the dropdown for styling
|
|
92692
92782
|
this.dropdown.exposeCssParts();
|
|
92693
92783
|
}
|
|
92694
92784
|
|
|
92695
|
-
/**
|
|
92696
|
-
* Reads the current label slot text and pushes it to the dropdown bib
|
|
92697
|
-
* (for dialog naming) and the menu (for listbox aria-label). Safe to call
|
|
92698
|
-
* before either child has been wired up — each branch self-guards.
|
|
92699
|
-
* @private
|
|
92700
|
-
*/
|
|
92701
|
-
_syncLabelText() {
|
|
92702
|
-
const labelElement = this.querySelector('[slot="label"]');
|
|
92703
|
-
const text = labelElement ? labelElement.textContent.trim() : '';
|
|
92704
|
-
if (this.dropdown) {
|
|
92705
|
-
this.dropdown.bibDialogLabel = text || undefined;
|
|
92706
|
-
}
|
|
92707
|
-
if (this.menu) {
|
|
92708
|
-
if (text) {
|
|
92709
|
-
this.menu.setAttribute('aria-label', text);
|
|
92710
|
-
} else {
|
|
92711
|
-
this.menu.removeAttribute('aria-label');
|
|
92712
|
-
}
|
|
92713
|
-
}
|
|
92714
|
-
}
|
|
92715
|
-
|
|
92716
|
-
/**
|
|
92717
|
-
* Keeps the dialog/menu accessible names in sync when consumers mutate the
|
|
92718
|
-
* label slot at runtime (e.g., i18n locale swap). `slotchange` alone is
|
|
92719
|
-
* insufficient — it doesn't fire when textContent of an already-assigned
|
|
92720
|
-
* slotted node changes, which is the common case. We scope the observer to
|
|
92721
|
-
* the label node itself (not the whole host subtree) so option-content
|
|
92722
|
-
* mutations don't trigger label re-syncs, and re-target on `slotchange`
|
|
92723
|
-
* when consumers add or replace the label element.
|
|
92724
|
-
* @private
|
|
92725
|
-
*/
|
|
92726
|
-
_observeLabelChanges() {
|
|
92727
|
-
if (this._labelObserver) return;
|
|
92728
|
-
this._labelObserver = new MutationObserver(() => this._syncLabelText());
|
|
92729
|
-
|
|
92730
|
-
const retarget = () => {
|
|
92731
|
-
this._labelObserver.disconnect();
|
|
92732
|
-
const labelElement = this.querySelector('[slot="label"]');
|
|
92733
|
-
if (labelElement) {
|
|
92734
|
-
this._labelObserver.observe(labelElement, {
|
|
92735
|
-
childList: true,
|
|
92736
|
-
subtree: true,
|
|
92737
|
-
characterData: true
|
|
92738
|
-
});
|
|
92739
|
-
}
|
|
92740
|
-
this._syncLabelText();
|
|
92741
|
-
};
|
|
92742
|
-
|
|
92743
|
-
retarget();
|
|
92744
|
-
|
|
92745
|
-
this._retargetLabelObserver = retarget;
|
|
92746
|
-
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
92747
|
-
slot.addEventListener('slotchange', retarget);
|
|
92748
|
-
});
|
|
92749
|
-
}
|
|
92750
|
-
|
|
92751
92785
|
/**
|
|
92752
92786
|
* This will register this element with the browser.
|
|
92753
92787
|
* @param {string} [name="auro-select"] - The name of element that you want to register to.
|
|
@@ -92898,7 +92932,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92898
92932
|
this.updateMenuShapeSize();
|
|
92899
92933
|
this.setMenuValue(this.value);
|
|
92900
92934
|
|
|
92901
|
-
|
|
92935
|
+
// Set accessible name on the menu for screen readers based on the label slot content
|
|
92936
|
+
const labelElement = this.querySelector('[slot="label"]');
|
|
92937
|
+
if (labelElement) {
|
|
92938
|
+
this.menu.setAttribute('aria-label', labelElement.textContent.trim());
|
|
92939
|
+
}
|
|
92902
92940
|
|
|
92903
92941
|
if (this.multiSelect) {
|
|
92904
92942
|
this.menu.multiSelect = this.multiSelect;
|
|
@@ -92910,21 +92948,8 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92910
92948
|
if (typeof this.menu.initItems === 'function') {
|
|
92911
92949
|
this.menu.initItems();
|
|
92912
92950
|
}
|
|
92951
|
+
this.options = this.menu.options;
|
|
92913
92952
|
this.updateOptionPositions();
|
|
92914
|
-
// renderNativeSelect reads this.menu.options, which the parent doesn't
|
|
92915
|
-
// observe — request an update so the hidden native <option> list reflects
|
|
92916
|
-
// the menu's options after initItems populates them.
|
|
92917
|
-
this.requestUpdate();
|
|
92918
|
-
|
|
92919
|
-
// Keep aria-setsize/aria-posinset (and the native <option> list) in sync
|
|
92920
|
-
// when the menu re-initializes its items — e.g., slotchange, async/lazy
|
|
92921
|
-
// loads, value-triggered re-init. Without this, stale set-size is
|
|
92922
|
-
// announced and the native select goes stale after dynamic mutations.
|
|
92923
|
-
this.menu.addEventListener('auroMenu-optionsChange', () => {
|
|
92924
|
-
this.updateOptionPositions();
|
|
92925
|
-
this.requestUpdate();
|
|
92926
|
-
});
|
|
92927
|
-
|
|
92928
92953
|
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
92929
92954
|
|
|
92930
92955
|
this.menu.addEventListener("auroMenu-selectValueFailure", () => {
|
|
@@ -92943,22 +92968,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92943
92968
|
this.dropdown.setActiveDescendant(this.optionActive);
|
|
92944
92969
|
}
|
|
92945
92970
|
|
|
92946
|
-
// Announce the active option for screen readers
|
|
92947
|
-
|
|
92948
|
-
// re-announce, and aria-selected on the active descendant otherwise
|
|
92949
|
-
// conveys state without an explicit utterance.
|
|
92950
|
-
if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
|
|
92971
|
+
// Announce the active option for screen readers
|
|
92972
|
+
if (this.optionActive) {
|
|
92951
92973
|
const optionText = this.optionActive.textContent.trim();
|
|
92952
|
-
const
|
|
92953
|
-
|
|
92954
|
-
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
92955
|
-
} else {
|
|
92956
|
-
// Typeahead-on-closed fires this event before `show()` flips
|
|
92957
|
-
// isPopoverVisible. Defer so the announcement targets the bib's
|
|
92958
|
-
// live region once the fullscreen <dialog> opens — otherwise it
|
|
92959
|
-
// lands in the host root, which is inert under the active modal.
|
|
92960
|
-
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
92961
|
-
}
|
|
92974
|
+
const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
|
|
92975
|
+
announceToScreenReader(this._getAnnouncementRoot(), `${optionText}${selectedState}`);
|
|
92962
92976
|
}
|
|
92963
92977
|
|
|
92964
92978
|
if (this.dropdown.isPopoverVisible) {
|
|
@@ -93090,32 +93104,24 @@ class AuroSelect extends AuroElement$1 {
|
|
|
93090
93104
|
|
|
93091
93105
|
this.typeaheadBuffer += key;
|
|
93092
93106
|
|
|
93093
|
-
|
|
93094
|
-
// next item with a name that starts with the string of characters typed").
|
|
93095
|
-
// Only fall back to single-char cycling when the repeated buffer has no
|
|
93096
|
-
// longer prefix match — e.g. "aa" cycles through ["Apple", "Apricot"] only
|
|
93097
|
-
// because no option starts with "aa".
|
|
93098
|
-
let match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
93107
|
+
const isRepeatedChar = this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
|
|
93099
93108
|
|
|
93100
|
-
|
|
93109
|
+
let match = null;
|
|
93101
93110
|
if (isRepeatedChar) {
|
|
93102
93111
|
const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
|
|
93103
93112
|
if (matches.length) {
|
|
93104
93113
|
const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
|
|
93105
93114
|
match = matches[cycleIndex];
|
|
93106
93115
|
}
|
|
93116
|
+
} else {
|
|
93117
|
+
match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
93107
93118
|
}
|
|
93108
93119
|
|
|
93109
|
-
// Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
|
|
93110
93120
|
if (match) {
|
|
93111
|
-
// Pre-stash the match so the auroDropdown-toggled handler's `!optionActive`
|
|
93112
|
-
// guard short-circuits and skips the firstActive/selected fallback —
|
|
93113
|
-
// otherwise show() synchronously fires the handler, which writes
|
|
93114
|
-
// aria-activedescendant once before we overwrite it.
|
|
93115
|
-
this.menu.updateActiveOption(match);
|
|
93116
93121
|
if (!this.dropdown.isPopoverVisible) {
|
|
93117
93122
|
this.dropdown.show();
|
|
93118
93123
|
}
|
|
93124
|
+
this.menu.updateActiveOption(match);
|
|
93119
93125
|
}
|
|
93120
93126
|
}
|
|
93121
93127
|
|
|
@@ -93232,16 +93238,6 @@ class AuroSelect extends AuroElement$1 {
|
|
|
93232
93238
|
disconnectedCallback() {
|
|
93233
93239
|
super.disconnectedCallback();
|
|
93234
93240
|
this._clearTypeaheadBuffer();
|
|
93235
|
-
if (this._labelObserver) {
|
|
93236
|
-
this._labelObserver.disconnect();
|
|
93237
|
-
this._labelObserver = null;
|
|
93238
|
-
}
|
|
93239
|
-
if (this._retargetLabelObserver && this.shadowRoot) {
|
|
93240
|
-
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
93241
|
-
slot.removeEventListener('slotchange', this._retargetLabelObserver);
|
|
93242
|
-
});
|
|
93243
|
-
this._retargetLabelObserver = null;
|
|
93244
|
-
}
|
|
93245
93241
|
}
|
|
93246
93242
|
|
|
93247
93243
|
// lifecycle runs only after the element's DOM has been updated the first time
|
|
@@ -93252,7 +93248,6 @@ class AuroSelect extends AuroElement$1 {
|
|
|
93252
93248
|
this.configureDropdown();
|
|
93253
93249
|
this.configureMenu();
|
|
93254
93250
|
this.configureSelect();
|
|
93255
|
-
this._observeLabelChanges();
|
|
93256
93251
|
}
|
|
93257
93252
|
|
|
93258
93253
|
setMenuValue(value) {
|
|
@@ -93389,8 +93384,21 @@ class AuroSelect extends AuroElement$1 {
|
|
|
93389
93384
|
if (!selectedOption) return;
|
|
93390
93385
|
const selectedValue = selectedOption.value;
|
|
93391
93386
|
|
|
93392
|
-
if (this.
|
|
93393
|
-
this.value
|
|
93387
|
+
if (this.multiSelect) {
|
|
93388
|
+
const currentArray = this.menu.value || [];
|
|
93389
|
+
|
|
93390
|
+
if (!currentArray.includes(selectedValue)) {
|
|
93391
|
+
this.value = JSON.stringify([
|
|
93392
|
+
...currentArray,
|
|
93393
|
+
selectedValue
|
|
93394
|
+
]);
|
|
93395
|
+
}
|
|
93396
|
+
} else {
|
|
93397
|
+
const currentValue = this.value;
|
|
93398
|
+
|
|
93399
|
+
if (currentValue !== selectedValue) {
|
|
93400
|
+
this.value = selectedValue;
|
|
93401
|
+
}
|
|
93394
93402
|
}
|
|
93395
93403
|
}
|
|
93396
93404
|
|