@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
|
@@ -10456,6 +10456,13 @@ let AuroInputUtilities$3 = class AuroInputUtilities {
|
|
|
10456
10456
|
* @returns {string | undefined}
|
|
10457
10457
|
*/
|
|
10458
10458
|
toFormattedValue(valueObject, format) {
|
|
10459
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
10460
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
10461
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
10462
|
+
// as "no format → no display value".
|
|
10463
|
+
if (!format) {
|
|
10464
|
+
return undefined;
|
|
10465
|
+
}
|
|
10459
10466
|
const normalizedFormat = format.toLowerCase();
|
|
10460
10467
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
10461
10468
|
|
|
@@ -10606,79 +10613,18 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10606
10613
|
constructor() {
|
|
10607
10614
|
super();
|
|
10608
10615
|
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
|
|
10612
|
-
|
|
10613
|
-
|
|
10614
|
-
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
|
|
10619
|
-
this.required = false;
|
|
10620
|
-
this.onDark = false;
|
|
10621
|
-
this.setCustomValidityForType = undefined;
|
|
10622
|
-
this.size = 'lg';
|
|
10623
|
-
this.shape = 'classic';
|
|
10624
|
-
this.value = undefined;
|
|
10625
|
-
this._valueObject = undefined;
|
|
10626
|
-
|
|
10627
|
-
this._initializePrivateDefaults();
|
|
10628
|
-
}
|
|
10629
|
-
|
|
10630
|
-
/**
|
|
10631
|
-
* Internal Defaults.
|
|
10632
|
-
* @private
|
|
10633
|
-
* @returns {void}
|
|
10634
|
-
*/
|
|
10635
|
-
_initializePrivateDefaults() {
|
|
10616
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
10617
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
10618
|
+
// exactly once here (previously the constructor + the old
|
|
10619
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
10620
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
10621
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
10622
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
10623
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
10624
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
10625
|
+
// during its own update cycle sees a populated util instance.
|
|
10636
10626
|
this.activeLabel = false;
|
|
10637
|
-
|
|
10638
|
-
this.icon = false;
|
|
10639
|
-
this.disabled = false;
|
|
10640
|
-
this.dvInputOnly = false;
|
|
10641
|
-
this.hideLabelVisually = false;
|
|
10642
|
-
this.max = undefined;
|
|
10643
|
-
this.maxLength = undefined;
|
|
10644
|
-
this.min = undefined;
|
|
10645
|
-
this.minLength = undefined;
|
|
10646
|
-
this.noValidate = false;
|
|
10647
|
-
this.onDark = false;
|
|
10648
|
-
this.required = false;
|
|
10649
|
-
this.setCustomValidityForType = undefined;
|
|
10650
|
-
|
|
10651
|
-
// Used for storing raw values returned from input mask.
|
|
10652
|
-
this._rawMaskValue = undefined;
|
|
10653
|
-
|
|
10654
|
-
/**
|
|
10655
|
-
* @private
|
|
10656
|
-
*/
|
|
10657
|
-
this.layout = 'classic';
|
|
10658
|
-
|
|
10659
|
-
/**
|
|
10660
|
-
* @private
|
|
10661
|
-
*/
|
|
10662
|
-
this.shape = 'classic';
|
|
10663
|
-
|
|
10664
|
-
/**
|
|
10665
|
-
* @private
|
|
10666
|
-
*/
|
|
10667
|
-
this.size = 'lg';
|
|
10668
|
-
|
|
10669
|
-
this.touched = false;
|
|
10670
|
-
this.util = new AuroInputUtilities$3({
|
|
10671
|
-
locale: "en-US",
|
|
10672
|
-
format: this.format
|
|
10673
|
-
});
|
|
10674
|
-
this.validation = new AuroFormValidation$7();
|
|
10675
|
-
this.inputIconName = undefined;
|
|
10676
|
-
this.showPassword = false;
|
|
10677
|
-
this.validationCCLength = undefined;
|
|
10678
|
-
this.hasValue = false;
|
|
10679
|
-
this.label = 'Input label is undefined';
|
|
10680
|
-
|
|
10681
|
-
|
|
10627
|
+
/** @private */
|
|
10682
10628
|
this.allowedInputTypes = [
|
|
10683
10629
|
"text",
|
|
10684
10630
|
"number",
|
|
@@ -10687,7 +10633,8 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10687
10633
|
"credit-card",
|
|
10688
10634
|
"tel"
|
|
10689
10635
|
];
|
|
10690
|
-
this.
|
|
10636
|
+
this.appearance = "default";
|
|
10637
|
+
/** @private */
|
|
10691
10638
|
this.dateFormatMap = {
|
|
10692
10639
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
10693
10640
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -10704,27 +10651,57 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
10704
10651
|
'dd/mm': 'dateDDMM',
|
|
10705
10652
|
'mm/dd': 'dateMMDD'
|
|
10706
10653
|
};
|
|
10654
|
+
this.disabled = false;
|
|
10655
|
+
/** @private */
|
|
10707
10656
|
this.domHandler = new DomHandler$3();
|
|
10708
10657
|
this.dvInputOnly = false;
|
|
10709
10658
|
this.hasValue = false;
|
|
10659
|
+
this.hideLabelVisually = false;
|
|
10660
|
+
this.icon = false;
|
|
10661
|
+
/** @private */
|
|
10710
10662
|
this.inputIconName = undefined;
|
|
10663
|
+
/** @private */
|
|
10711
10664
|
this.label = 'Input label is undefined';
|
|
10665
|
+
this.layout = 'classic';
|
|
10666
|
+
this.locale = 'en-US';
|
|
10667
|
+
this.max = undefined;
|
|
10668
|
+
this._maxObject = undefined;
|
|
10669
|
+
this.maxLength = undefined;
|
|
10670
|
+
this.min = undefined;
|
|
10671
|
+
this._minObject = undefined;
|
|
10672
|
+
this.minLength = undefined;
|
|
10712
10673
|
this.noValidate = false;
|
|
10713
|
-
this.
|
|
10674
|
+
this.onDark = false;
|
|
10675
|
+
// Raw values returned from the input mask before model normalization.
|
|
10676
|
+
this._rawMaskValue = undefined;
|
|
10677
|
+
this.required = false;
|
|
10678
|
+
this.setCustomValidityForType = undefined;
|
|
10679
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
10680
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
10681
|
+
/** @private */
|
|
10714
10682
|
this.setSelectionInputTypes = [
|
|
10715
10683
|
"text",
|
|
10716
10684
|
"password",
|
|
10717
10685
|
"email"
|
|
10718
|
-
];
|
|
10686
|
+
];
|
|
10687
|
+
this.shape = 'classic';
|
|
10688
|
+
/** @private */
|
|
10719
10689
|
this.showPassword = false;
|
|
10690
|
+
this.size = 'lg';
|
|
10720
10691
|
this.touched = false;
|
|
10692
|
+
/** @private */
|
|
10721
10693
|
this.uniqueId = new UniqueId$2().create();
|
|
10694
|
+
/** @private */
|
|
10722
10695
|
this.util = new AuroInputUtilities$3({
|
|
10723
10696
|
locale: this.locale,
|
|
10724
10697
|
format: this.format
|
|
10725
10698
|
});
|
|
10699
|
+
/** @private */
|
|
10726
10700
|
this.validation = new AuroFormValidation$7();
|
|
10701
|
+
/** @private */
|
|
10727
10702
|
this.validationCCLength = undefined;
|
|
10703
|
+
this.value = undefined;
|
|
10704
|
+
this._valueObject = undefined;
|
|
10728
10705
|
}
|
|
10729
10706
|
|
|
10730
10707
|
// function to define props used within the scope of this component
|
|
@@ -11272,6 +11249,15 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11272
11249
|
|
|
11273
11250
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11274
11251
|
|
|
11252
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11253
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11254
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11255
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11256
|
+
// unset.
|
|
11257
|
+
if (this.format) {
|
|
11258
|
+
this.format = this.format.toLowerCase();
|
|
11259
|
+
}
|
|
11260
|
+
|
|
11275
11261
|
// use validity message override if declared when initializing the component
|
|
11276
11262
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11277
11263
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11705,6 +11691,38 @@ let BaseInput$2 = class BaseInput extends AuroElement$6 {
|
|
|
11705
11691
|
this.touched = true;
|
|
11706
11692
|
this.validation.validate(this);
|
|
11707
11693
|
}
|
|
11694
|
+
|
|
11695
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
11696
|
+
// update that can re-render the input and reset the native cursor; we
|
|
11697
|
+
// capture the caret position before that update commits and restore it
|
|
11698
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
11699
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
11700
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
11701
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
11702
|
+
// on input types that don't support text selection (number, email in
|
|
11703
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
11704
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
11705
|
+
// the gated types currently support it, since the list is a public
|
|
11706
|
+
// property a consumer could mutate.
|
|
11707
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
11708
|
+
let selectionStart;
|
|
11709
|
+
try {
|
|
11710
|
+
selectionStart = this.inputElement.selectionStart;
|
|
11711
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
11712
|
+
return;
|
|
11713
|
+
}
|
|
11714
|
+
if (typeof selectionStart !== 'number') {
|
|
11715
|
+
return;
|
|
11716
|
+
}
|
|
11717
|
+
this.updateComplete.then(() => {
|
|
11718
|
+
try {
|
|
11719
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
11720
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
11721
|
+
// Some input types (number/email in certain UAs) throw on
|
|
11722
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
11723
|
+
}
|
|
11724
|
+
});
|
|
11725
|
+
}
|
|
11708
11726
|
}
|
|
11709
11727
|
|
|
11710
11728
|
/**
|
|
@@ -12331,7 +12349,7 @@ let AuroHelpText$8 = class AuroHelpText extends i$2 {
|
|
|
12331
12349
|
}
|
|
12332
12350
|
};
|
|
12333
12351
|
|
|
12334
|
-
var formkitVersion$8 = '
|
|
12352
|
+
var formkitVersion$8 = '202606252337';
|
|
12335
12353
|
|
|
12336
12354
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12337
12355
|
// See LICENSE in the project root for license information.
|
|
@@ -12834,6 +12852,7 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
12834
12852
|
<${this.buttonTag}
|
|
12835
12853
|
@click="${this.handleClickShowPassword}"
|
|
12836
12854
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
12855
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
12837
12856
|
class="notificationBtn passwordBtn"
|
|
12838
12857
|
shape="circle"
|
|
12839
12858
|
size="sm"
|
|
@@ -12907,25 +12926,29 @@ let AuroInput$2 = class AuroInput extends BaseInput$2 {
|
|
|
12907
12926
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
12908
12927
|
*/
|
|
12909
12928
|
renderHtmlHelpText() {
|
|
12929
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
12930
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
12931
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
12932
|
+
// re-announce because the live-region element it was watching had been
|
|
12933
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
12934
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
12935
|
+
// observe and announce.
|
|
12936
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
12910
12937
|
return u$d`
|
|
12911
|
-
|
|
12912
|
-
?
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
12924
|
-
|
|
12925
|
-
</p>
|
|
12926
|
-
</${this.helpTextTag}>
|
|
12927
|
-
`
|
|
12928
|
-
}
|
|
12938
|
+
<${this.helpTextTag}
|
|
12939
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
12940
|
+
?error=${isError}>
|
|
12941
|
+
<p
|
|
12942
|
+
id="${this.uniqueId}"
|
|
12943
|
+
part="helpText"
|
|
12944
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
12945
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
12946
|
+
${isError
|
|
12947
|
+
? this.errorMessage
|
|
12948
|
+
: u$d`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
12949
|
+
}
|
|
12950
|
+
</p>
|
|
12951
|
+
</${this.helpTextTag}>
|
|
12929
12952
|
`;
|
|
12930
12953
|
}
|
|
12931
12954
|
|
|
@@ -23566,6 +23589,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
|
|
|
23566
23589
|
* @returns {string | undefined}
|
|
23567
23590
|
*/
|
|
23568
23591
|
toFormattedValue(valueObject, format) {
|
|
23592
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
23593
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
23594
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
23595
|
+
// as "no format → no display value".
|
|
23596
|
+
if (!format) {
|
|
23597
|
+
return undefined;
|
|
23598
|
+
}
|
|
23569
23599
|
const normalizedFormat = format.toLowerCase();
|
|
23570
23600
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
23571
23601
|
|
|
@@ -26450,7 +26480,7 @@ let AuroBibtemplate$3 = class AuroBibtemplate extends i$2 {
|
|
|
26450
26480
|
}
|
|
26451
26481
|
};
|
|
26452
26482
|
|
|
26453
|
-
var formkitVersion$2$1 = '
|
|
26483
|
+
var formkitVersion$2$1 = '202606252337';
|
|
26454
26484
|
|
|
26455
26485
|
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$5`${s$5(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$4`: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}
|
|
26456
26486
|
`,u$4$2=i$4`.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}}
|
|
@@ -31961,7 +31991,7 @@ let AuroHelpText$2$1 = class AuroHelpText extends i$2 {
|
|
|
31961
31991
|
}
|
|
31962
31992
|
};
|
|
31963
31993
|
|
|
31964
|
-
var formkitVersion$1$3 = '
|
|
31994
|
+
var formkitVersion$1$3 = '202606252337';
|
|
31965
31995
|
|
|
31966
31996
|
let AuroElement$2$2 = class AuroElement extends i$2 {
|
|
31967
31997
|
static get properties() {
|
|
@@ -33233,7 +33263,6 @@ let AuroDropdown$3 = class AuroDropdown extends AuroElement$2$2 {
|
|
|
33233
33263
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
33234
33264
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
33235
33265
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
33236
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
33237
33266
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
33238
33267
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
33239
33268
|
@focusin="${this.handleFocusin}"
|
|
@@ -43680,6 +43709,13 @@ let AuroInputUtilities$2 = class AuroInputUtilities {
|
|
|
43680
43709
|
* @returns {string | undefined}
|
|
43681
43710
|
*/
|
|
43682
43711
|
toFormattedValue(valueObject, format) {
|
|
43712
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
43713
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
43714
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
43715
|
+
// as "no format → no display value".
|
|
43716
|
+
if (!format) {
|
|
43717
|
+
return undefined;
|
|
43718
|
+
}
|
|
43683
43719
|
const normalizedFormat = format.toLowerCase();
|
|
43684
43720
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
43685
43721
|
|
|
@@ -43830,79 +43866,18 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43830
43866
|
constructor() {
|
|
43831
43867
|
super();
|
|
43832
43868
|
|
|
43833
|
-
|
|
43834
|
-
|
|
43835
|
-
|
|
43836
|
-
|
|
43837
|
-
|
|
43838
|
-
|
|
43839
|
-
|
|
43840
|
-
|
|
43841
|
-
|
|
43842
|
-
|
|
43843
|
-
this.required = false;
|
|
43844
|
-
this.onDark = false;
|
|
43845
|
-
this.setCustomValidityForType = undefined;
|
|
43846
|
-
this.size = 'lg';
|
|
43847
|
-
this.shape = 'classic';
|
|
43848
|
-
this.value = undefined;
|
|
43849
|
-
this._valueObject = undefined;
|
|
43850
|
-
|
|
43851
|
-
this._initializePrivateDefaults();
|
|
43852
|
-
}
|
|
43853
|
-
|
|
43854
|
-
/**
|
|
43855
|
-
* Internal Defaults.
|
|
43856
|
-
* @private
|
|
43857
|
-
* @returns {void}
|
|
43858
|
-
*/
|
|
43859
|
-
_initializePrivateDefaults() {
|
|
43869
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
43870
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
43871
|
+
// exactly once here (previously the constructor + the old
|
|
43872
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
43873
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
43874
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
43875
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
43876
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
43877
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
43878
|
+
// during its own update cycle sees a populated util instance.
|
|
43860
43879
|
this.activeLabel = false;
|
|
43861
|
-
|
|
43862
|
-
this.icon = false;
|
|
43863
|
-
this.disabled = false;
|
|
43864
|
-
this.dvInputOnly = false;
|
|
43865
|
-
this.hideLabelVisually = false;
|
|
43866
|
-
this.max = undefined;
|
|
43867
|
-
this.maxLength = undefined;
|
|
43868
|
-
this.min = undefined;
|
|
43869
|
-
this.minLength = undefined;
|
|
43870
|
-
this.noValidate = false;
|
|
43871
|
-
this.onDark = false;
|
|
43872
|
-
this.required = false;
|
|
43873
|
-
this.setCustomValidityForType = undefined;
|
|
43874
|
-
|
|
43875
|
-
// Used for storing raw values returned from input mask.
|
|
43876
|
-
this._rawMaskValue = undefined;
|
|
43877
|
-
|
|
43878
|
-
/**
|
|
43879
|
-
* @private
|
|
43880
|
-
*/
|
|
43881
|
-
this.layout = 'classic';
|
|
43882
|
-
|
|
43883
|
-
/**
|
|
43884
|
-
* @private
|
|
43885
|
-
*/
|
|
43886
|
-
this.shape = 'classic';
|
|
43887
|
-
|
|
43888
|
-
/**
|
|
43889
|
-
* @private
|
|
43890
|
-
*/
|
|
43891
|
-
this.size = 'lg';
|
|
43892
|
-
|
|
43893
|
-
this.touched = false;
|
|
43894
|
-
this.util = new AuroInputUtilities$2({
|
|
43895
|
-
locale: "en-US",
|
|
43896
|
-
format: this.format
|
|
43897
|
-
});
|
|
43898
|
-
this.validation = new AuroFormValidation$6();
|
|
43899
|
-
this.inputIconName = undefined;
|
|
43900
|
-
this.showPassword = false;
|
|
43901
|
-
this.validationCCLength = undefined;
|
|
43902
|
-
this.hasValue = false;
|
|
43903
|
-
this.label = 'Input label is undefined';
|
|
43904
|
-
|
|
43905
|
-
|
|
43880
|
+
/** @private */
|
|
43906
43881
|
this.allowedInputTypes = [
|
|
43907
43882
|
"text",
|
|
43908
43883
|
"number",
|
|
@@ -43911,7 +43886,8 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43911
43886
|
"credit-card",
|
|
43912
43887
|
"tel"
|
|
43913
43888
|
];
|
|
43914
|
-
this.
|
|
43889
|
+
this.appearance = "default";
|
|
43890
|
+
/** @private */
|
|
43915
43891
|
this.dateFormatMap = {
|
|
43916
43892
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
43917
43893
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -43928,27 +43904,57 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
43928
43904
|
'dd/mm': 'dateDDMM',
|
|
43929
43905
|
'mm/dd': 'dateMMDD'
|
|
43930
43906
|
};
|
|
43907
|
+
this.disabled = false;
|
|
43908
|
+
/** @private */
|
|
43931
43909
|
this.domHandler = new DomHandler$2();
|
|
43932
43910
|
this.dvInputOnly = false;
|
|
43933
43911
|
this.hasValue = false;
|
|
43912
|
+
this.hideLabelVisually = false;
|
|
43913
|
+
this.icon = false;
|
|
43914
|
+
/** @private */
|
|
43934
43915
|
this.inputIconName = undefined;
|
|
43916
|
+
/** @private */
|
|
43935
43917
|
this.label = 'Input label is undefined';
|
|
43918
|
+
this.layout = 'classic';
|
|
43919
|
+
this.locale = 'en-US';
|
|
43920
|
+
this.max = undefined;
|
|
43921
|
+
this._maxObject = undefined;
|
|
43922
|
+
this.maxLength = undefined;
|
|
43923
|
+
this.min = undefined;
|
|
43924
|
+
this._minObject = undefined;
|
|
43925
|
+
this.minLength = undefined;
|
|
43936
43926
|
this.noValidate = false;
|
|
43937
|
-
this.
|
|
43927
|
+
this.onDark = false;
|
|
43928
|
+
// Raw values returned from the input mask before model normalization.
|
|
43929
|
+
this._rawMaskValue = undefined;
|
|
43930
|
+
this.required = false;
|
|
43931
|
+
this.setCustomValidityForType = undefined;
|
|
43932
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
43933
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
43934
|
+
/** @private */
|
|
43938
43935
|
this.setSelectionInputTypes = [
|
|
43939
43936
|
"text",
|
|
43940
43937
|
"password",
|
|
43941
43938
|
"email"
|
|
43942
|
-
];
|
|
43939
|
+
];
|
|
43940
|
+
this.shape = 'classic';
|
|
43941
|
+
/** @private */
|
|
43943
43942
|
this.showPassword = false;
|
|
43943
|
+
this.size = 'lg';
|
|
43944
43944
|
this.touched = false;
|
|
43945
|
+
/** @private */
|
|
43945
43946
|
this.uniqueId = new UniqueId$1().create();
|
|
43947
|
+
/** @private */
|
|
43946
43948
|
this.util = new AuroInputUtilities$2({
|
|
43947
43949
|
locale: this.locale,
|
|
43948
43950
|
format: this.format
|
|
43949
43951
|
});
|
|
43952
|
+
/** @private */
|
|
43950
43953
|
this.validation = new AuroFormValidation$6();
|
|
43954
|
+
/** @private */
|
|
43951
43955
|
this.validationCCLength = undefined;
|
|
43956
|
+
this.value = undefined;
|
|
43957
|
+
this._valueObject = undefined;
|
|
43952
43958
|
}
|
|
43953
43959
|
|
|
43954
43960
|
// function to define props used within the scope of this component
|
|
@@ -44496,6 +44502,15 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44496
44502
|
|
|
44497
44503
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
44498
44504
|
|
|
44505
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
44506
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
44507
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
44508
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
44509
|
+
// unset.
|
|
44510
|
+
if (this.format) {
|
|
44511
|
+
this.format = this.format.toLowerCase();
|
|
44512
|
+
}
|
|
44513
|
+
|
|
44499
44514
|
// use validity message override if declared when initializing the component
|
|
44500
44515
|
if (this.hasAttribute('setCustomValidity')) {
|
|
44501
44516
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -44929,6 +44944,38 @@ let BaseInput$1 = class BaseInput extends AuroElement$1$3 {
|
|
|
44929
44944
|
this.touched = true;
|
|
44930
44945
|
this.validation.validate(this);
|
|
44931
44946
|
}
|
|
44947
|
+
|
|
44948
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
44949
|
+
// update that can re-render the input and reset the native cursor; we
|
|
44950
|
+
// capture the caret position before that update commits and restore it
|
|
44951
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
44952
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
44953
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
44954
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
44955
|
+
// on input types that don't support text selection (number, email in
|
|
44956
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
44957
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
44958
|
+
// the gated types currently support it, since the list is a public
|
|
44959
|
+
// property a consumer could mutate.
|
|
44960
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
44961
|
+
let selectionStart;
|
|
44962
|
+
try {
|
|
44963
|
+
selectionStart = this.inputElement.selectionStart;
|
|
44964
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
44965
|
+
return;
|
|
44966
|
+
}
|
|
44967
|
+
if (typeof selectionStart !== 'number') {
|
|
44968
|
+
return;
|
|
44969
|
+
}
|
|
44970
|
+
this.updateComplete.then(() => {
|
|
44971
|
+
try {
|
|
44972
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
44973
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
44974
|
+
// Some input types (number/email in certain UAs) throw on
|
|
44975
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
44976
|
+
}
|
|
44977
|
+
});
|
|
44978
|
+
}
|
|
44932
44979
|
}
|
|
44933
44980
|
|
|
44934
44981
|
/**
|
|
@@ -45555,7 +45602,7 @@ let AuroHelpText$1$3 = class AuroHelpText extends i$2 {
|
|
|
45555
45602
|
}
|
|
45556
45603
|
};
|
|
45557
45604
|
|
|
45558
|
-
var formkitVersion$7 = '
|
|
45605
|
+
var formkitVersion$7 = '202606252337';
|
|
45559
45606
|
|
|
45560
45607
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
45561
45608
|
// See LICENSE in the project root for license information.
|
|
@@ -46058,6 +46105,7 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46058
46105
|
<${this.buttonTag}
|
|
46059
46106
|
@click="${this.handleClickShowPassword}"
|
|
46060
46107
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
46108
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
46061
46109
|
class="notificationBtn passwordBtn"
|
|
46062
46110
|
shape="circle"
|
|
46063
46111
|
size="sm"
|
|
@@ -46131,25 +46179,29 @@ let AuroInput$1 = class AuroInput extends BaseInput$1 {
|
|
|
46131
46179
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
46132
46180
|
*/
|
|
46133
46181
|
renderHtmlHelpText() {
|
|
46182
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
46183
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
46184
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
46185
|
+
// re-announce because the live-region element it was watching had been
|
|
46186
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
46187
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
46188
|
+
// observe and announce.
|
|
46189
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
46134
46190
|
return u$d`
|
|
46135
|
-
|
|
46136
|
-
?
|
|
46137
|
-
|
|
46138
|
-
|
|
46139
|
-
|
|
46140
|
-
|
|
46141
|
-
|
|
46142
|
-
|
|
46143
|
-
|
|
46144
|
-
|
|
46145
|
-
|
|
46146
|
-
|
|
46147
|
-
|
|
46148
|
-
|
|
46149
|
-
</p>
|
|
46150
|
-
</${this.helpTextTag}>
|
|
46151
|
-
`
|
|
46152
|
-
}
|
|
46191
|
+
<${this.helpTextTag}
|
|
46192
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
46193
|
+
?error=${isError}>
|
|
46194
|
+
<p
|
|
46195
|
+
id="${this.uniqueId}"
|
|
46196
|
+
part="helpText"
|
|
46197
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
46198
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
46199
|
+
${isError
|
|
46200
|
+
? this.errorMessage
|
|
46201
|
+
: u$d`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
46202
|
+
}
|
|
46203
|
+
</p>
|
|
46204
|
+
</${this.helpTextTag}>
|
|
46153
46205
|
`;
|
|
46154
46206
|
}
|
|
46155
46207
|
|
|
@@ -46296,6 +46348,15 @@ function formatISODate(isoStr, format) {
|
|
|
46296
46348
|
try {
|
|
46297
46349
|
const date = dateFormatter$2.stringToDateInstance(isoStr);
|
|
46298
46350
|
|
|
46351
|
+
// `stringToDateInstance` returns an `Invalid Date` for malformed strings
|
|
46352
|
+
// and `null` for non-string input — it does NOT throw. Without this
|
|
46353
|
+
// guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
|
|
46354
|
+
// yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
|
|
46355
|
+
// like "0NaN/0NaN/0NaN" instead of `undefined`.
|
|
46356
|
+
if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
|
|
46357
|
+
return undefined;
|
|
46358
|
+
}
|
|
46359
|
+
|
|
46299
46360
|
const year = String(date.getFullYear()).padStart(4, '0');
|
|
46300
46361
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
46301
46362
|
const day = String(date.getDate()).padStart(2, '0');
|
|
@@ -46306,7 +46367,10 @@ function formatISODate(isoStr, format) {
|
|
|
46306
46367
|
replace(/mm/iu, month).
|
|
46307
46368
|
replace(/dd/iu, day);
|
|
46308
46369
|
} catch (err) {
|
|
46309
|
-
//
|
|
46370
|
+
// Defensive: the Date-returning path is guarded above, but `parseDate`
|
|
46371
|
+
// (inside `stringToDateInstance`) could throw on pathological input
|
|
46372
|
+
// future-library-versions might introduce. Treat any thrown error as
|
|
46373
|
+
// "not a valid date" and return undefined.
|
|
46310
46374
|
return undefined;
|
|
46311
46375
|
}
|
|
46312
46376
|
}
|
|
@@ -50258,7 +50322,7 @@ let AuroHelpText$1$2 = class AuroHelpText extends i$2 {
|
|
|
50258
50322
|
}
|
|
50259
50323
|
};
|
|
50260
50324
|
|
|
50261
|
-
var formkitVersion$1$2 = '
|
|
50325
|
+
var formkitVersion$1$2 = '202606252337';
|
|
50262
50326
|
|
|
50263
50327
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
50264
50328
|
// See LICENSE in the project root for license information.
|
|
@@ -54586,7 +54650,7 @@ let AuroHelpText$6 = class AuroHelpText extends i$2 {
|
|
|
54586
54650
|
}
|
|
54587
54651
|
};
|
|
54588
54652
|
|
|
54589
|
-
var formkitVersion$6 = '
|
|
54653
|
+
var formkitVersion$6 = '202606252337';
|
|
54590
54654
|
|
|
54591
54655
|
let AuroElement$1$2 = class AuroElement extends i$2 {
|
|
54592
54656
|
static get properties() {
|
|
@@ -55858,7 +55922,6 @@ let AuroDropdown$2 = class AuroDropdown extends AuroElement$1$2 {
|
|
|
55858
55922
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
55859
55923
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
55860
55924
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
55861
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
55862
55925
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
55863
55926
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
55864
55927
|
@focusin="${this.handleFocusin}"
|
|
@@ -58527,7 +58590,7 @@ let AuroHelpText$5 = class AuroHelpText extends i$2 {
|
|
|
58527
58590
|
}
|
|
58528
58591
|
};
|
|
58529
58592
|
|
|
58530
|
-
var formkitVersion$5 = '
|
|
58593
|
+
var formkitVersion$5 = '202606252337';
|
|
58531
58594
|
|
|
58532
58595
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
58533
58596
|
// See LICENSE in the project root for license information.
|
|
@@ -60277,7 +60340,7 @@ let AuroHelpText$4 = class AuroHelpText extends i$2 {
|
|
|
60277
60340
|
}
|
|
60278
60341
|
};
|
|
60279
60342
|
|
|
60280
|
-
var formkitVersion$4 = '
|
|
60343
|
+
var formkitVersion$4 = '202606252337';
|
|
60281
60344
|
|
|
60282
60345
|
// Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
|
|
60283
60346
|
// See LICENSE in the project root for license information.
|
|
@@ -65492,7 +65555,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$2 {
|
|
|
65492
65555
|
}
|
|
65493
65556
|
};
|
|
65494
65557
|
|
|
65495
|
-
var formkitVersion$2 = '
|
|
65558
|
+
var formkitVersion$2 = '202606252337';
|
|
65496
65559
|
|
|
65497
65560
|
let AuroElement$2$1 = class AuroElement extends i$2 {
|
|
65498
65561
|
static get properties() {
|
|
@@ -66764,7 +66827,6 @@ let AuroDropdown$1 = class AuroDropdown extends AuroElement$2$1 {
|
|
|
66764
66827
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
66765
66828
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
66766
66829
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
66767
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
66768
66830
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
66769
66831
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
66770
66832
|
@focusin="${this.handleFocusin}"
|
|
@@ -77211,6 +77273,13 @@ class AuroInputUtilities {
|
|
|
77211
77273
|
* @returns {string | undefined}
|
|
77212
77274
|
*/
|
|
77213
77275
|
toFormattedValue(valueObject, format) {
|
|
77276
|
+
// Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
|
|
77277
|
+
// `format` argument has to fail gracefully rather than throw on
|
|
77278
|
+
// `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
|
|
77279
|
+
// as "no format → no display value".
|
|
77280
|
+
if (!format) {
|
|
77281
|
+
return undefined;
|
|
77282
|
+
}
|
|
77214
77283
|
const normalizedFormat = format.toLowerCase();
|
|
77215
77284
|
const maskOptions = this.getMaskOptions('date', normalizedFormat);
|
|
77216
77285
|
|
|
@@ -77361,79 +77430,18 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77361
77430
|
constructor() {
|
|
77362
77431
|
super();
|
|
77363
77432
|
|
|
77364
|
-
|
|
77365
|
-
|
|
77366
|
-
|
|
77367
|
-
|
|
77368
|
-
|
|
77369
|
-
|
|
77370
|
-
|
|
77371
|
-
|
|
77372
|
-
|
|
77373
|
-
|
|
77374
|
-
this.required = false;
|
|
77375
|
-
this.onDark = false;
|
|
77376
|
-
this.setCustomValidityForType = undefined;
|
|
77377
|
-
this.size = 'lg';
|
|
77378
|
-
this.shape = 'classic';
|
|
77379
|
-
this.value = undefined;
|
|
77380
|
-
this._valueObject = undefined;
|
|
77381
|
-
|
|
77382
|
-
this._initializePrivateDefaults();
|
|
77383
|
-
}
|
|
77384
|
-
|
|
77385
|
-
/**
|
|
77386
|
-
* Internal Defaults.
|
|
77387
|
-
* @private
|
|
77388
|
-
* @returns {void}
|
|
77389
|
-
*/
|
|
77390
|
-
_initializePrivateDefaults() {
|
|
77433
|
+
// Single-source initialization. Alphabetized so duplicate or stale
|
|
77434
|
+
// defaults are immediately obvious on a diff. Every field is assigned
|
|
77435
|
+
// exactly once here (previously the constructor + the old
|
|
77436
|
+
// `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
|
|
77437
|
+
// fields and double-allocated `util` and `validation`, discarding the
|
|
77438
|
+
// first instance). `validation` is now allocated exactly once; `util`
|
|
77439
|
+
// is seeded here with an en-US default and then rebuilt in
|
|
77440
|
+
// `connectedCallback` once the consumer-resolved locale is available,
|
|
77441
|
+
// so a parent (datepicker/combobox) calling `validate()` synchronously
|
|
77442
|
+
// during its own update cycle sees a populated util instance.
|
|
77391
77443
|
this.activeLabel = false;
|
|
77392
|
-
|
|
77393
|
-
this.icon = false;
|
|
77394
|
-
this.disabled = false;
|
|
77395
|
-
this.dvInputOnly = false;
|
|
77396
|
-
this.hideLabelVisually = false;
|
|
77397
|
-
this.max = undefined;
|
|
77398
|
-
this.maxLength = undefined;
|
|
77399
|
-
this.min = undefined;
|
|
77400
|
-
this.minLength = undefined;
|
|
77401
|
-
this.noValidate = false;
|
|
77402
|
-
this.onDark = false;
|
|
77403
|
-
this.required = false;
|
|
77404
|
-
this.setCustomValidityForType = undefined;
|
|
77405
|
-
|
|
77406
|
-
// Used for storing raw values returned from input mask.
|
|
77407
|
-
this._rawMaskValue = undefined;
|
|
77408
|
-
|
|
77409
|
-
/**
|
|
77410
|
-
* @private
|
|
77411
|
-
*/
|
|
77412
|
-
this.layout = 'classic';
|
|
77413
|
-
|
|
77414
|
-
/**
|
|
77415
|
-
* @private
|
|
77416
|
-
*/
|
|
77417
|
-
this.shape = 'classic';
|
|
77418
|
-
|
|
77419
|
-
/**
|
|
77420
|
-
* @private
|
|
77421
|
-
*/
|
|
77422
|
-
this.size = 'lg';
|
|
77423
|
-
|
|
77424
|
-
this.touched = false;
|
|
77425
|
-
this.util = new AuroInputUtilities({
|
|
77426
|
-
locale: "en-US",
|
|
77427
|
-
format: this.format
|
|
77428
|
-
});
|
|
77429
|
-
this.validation = new AuroFormValidation$2();
|
|
77430
|
-
this.inputIconName = undefined;
|
|
77431
|
-
this.showPassword = false;
|
|
77432
|
-
this.validationCCLength = undefined;
|
|
77433
|
-
this.hasValue = false;
|
|
77434
|
-
this.label = 'Input label is undefined';
|
|
77435
|
-
|
|
77436
|
-
|
|
77444
|
+
/** @private */
|
|
77437
77445
|
this.allowedInputTypes = [
|
|
77438
77446
|
"text",
|
|
77439
77447
|
"number",
|
|
@@ -77442,7 +77450,8 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77442
77450
|
"credit-card",
|
|
77443
77451
|
"tel"
|
|
77444
77452
|
];
|
|
77445
|
-
this.
|
|
77453
|
+
this.appearance = "default";
|
|
77454
|
+
/** @private */
|
|
77446
77455
|
this.dateFormatMap = {
|
|
77447
77456
|
'mm/dd/yyyy': 'dateMMDDYYYY',
|
|
77448
77457
|
'dd/mm/yyyy': 'dateDDMMYYYY',
|
|
@@ -77459,27 +77468,57 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
77459
77468
|
'dd/mm': 'dateDDMM',
|
|
77460
77469
|
'mm/dd': 'dateMMDD'
|
|
77461
77470
|
};
|
|
77471
|
+
this.disabled = false;
|
|
77472
|
+
/** @private */
|
|
77462
77473
|
this.domHandler = new DomHandler();
|
|
77463
77474
|
this.dvInputOnly = false;
|
|
77464
77475
|
this.hasValue = false;
|
|
77476
|
+
this.hideLabelVisually = false;
|
|
77477
|
+
this.icon = false;
|
|
77478
|
+
/** @private */
|
|
77465
77479
|
this.inputIconName = undefined;
|
|
77480
|
+
/** @private */
|
|
77466
77481
|
this.label = 'Input label is undefined';
|
|
77482
|
+
this.layout = 'classic';
|
|
77483
|
+
this.locale = 'en-US';
|
|
77484
|
+
this.max = undefined;
|
|
77485
|
+
this._maxObject = undefined;
|
|
77486
|
+
this.maxLength = undefined;
|
|
77487
|
+
this.min = undefined;
|
|
77488
|
+
this._minObject = undefined;
|
|
77489
|
+
this.minLength = undefined;
|
|
77467
77490
|
this.noValidate = false;
|
|
77468
|
-
this.
|
|
77491
|
+
this.onDark = false;
|
|
77492
|
+
// Raw values returned from the input mask before model normalization.
|
|
77493
|
+
this._rawMaskValue = undefined;
|
|
77494
|
+
this.required = false;
|
|
77495
|
+
this.setCustomValidityForType = undefined;
|
|
77496
|
+
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
77497
|
+
// itself, and listing it here caused cursor placement issues in Safari.
|
|
77498
|
+
/** @private */
|
|
77469
77499
|
this.setSelectionInputTypes = [
|
|
77470
77500
|
"text",
|
|
77471
77501
|
"password",
|
|
77472
77502
|
"email"
|
|
77473
|
-
];
|
|
77503
|
+
];
|
|
77504
|
+
this.shape = 'classic';
|
|
77505
|
+
/** @private */
|
|
77474
77506
|
this.showPassword = false;
|
|
77507
|
+
this.size = 'lg';
|
|
77475
77508
|
this.touched = false;
|
|
77509
|
+
/** @private */
|
|
77476
77510
|
this.uniqueId = new UniqueId().create();
|
|
77511
|
+
/** @private */
|
|
77477
77512
|
this.util = new AuroInputUtilities({
|
|
77478
77513
|
locale: this.locale,
|
|
77479
77514
|
format: this.format
|
|
77480
77515
|
});
|
|
77516
|
+
/** @private */
|
|
77481
77517
|
this.validation = new AuroFormValidation$2();
|
|
77518
|
+
/** @private */
|
|
77482
77519
|
this.validationCCLength = undefined;
|
|
77520
|
+
this.value = undefined;
|
|
77521
|
+
this._valueObject = undefined;
|
|
77483
77522
|
}
|
|
77484
77523
|
|
|
77485
77524
|
// function to define props used within the scope of this component
|
|
@@ -78027,6 +78066,15 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78027
78066
|
|
|
78028
78067
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
78029
78068
|
|
|
78069
|
+
// Normalize the format token to lowercase so case-mixed values supplied
|
|
78070
|
+
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
78071
|
+
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
78072
|
+
// format silently misses the map and leaves `setCustomValidityForType`
|
|
78073
|
+
// unset.
|
|
78074
|
+
if (this.format) {
|
|
78075
|
+
this.format = this.format.toLowerCase();
|
|
78076
|
+
}
|
|
78077
|
+
|
|
78030
78078
|
// use validity message override if declared when initializing the component
|
|
78031
78079
|
if (this.hasAttribute('setCustomValidity')) {
|
|
78032
78080
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -78460,6 +78508,38 @@ class BaseInput extends AuroElement$1$1 {
|
|
|
78460
78508
|
this.touched = true;
|
|
78461
78509
|
this.validation.validate(this);
|
|
78462
78510
|
}
|
|
78511
|
+
|
|
78512
|
+
// Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
|
|
78513
|
+
// update that can re-render the input and reset the native cursor; we
|
|
78514
|
+
// capture the caret position before that update commits and restore it
|
|
78515
|
+
// via `setSelectionRange` once the update has flushed. Gated on
|
|
78516
|
+
// `setSelectionInputTypes` so credit-card (and other masked types whose
|
|
78517
|
+
// formatter manages the cursor itself) doesn't get a competing write.
|
|
78518
|
+
// Capture the caret position INSIDE the gate — reading `selectionStart`
|
|
78519
|
+
// on input types that don't support text selection (number, email in
|
|
78520
|
+
// some browsers) throws InvalidStateError, which would crash all input
|
|
78521
|
+
// handling. Wrap the read in try/catch belt-and-suspenders even though
|
|
78522
|
+
// the gated types currently support it, since the list is a public
|
|
78523
|
+
// property a consumer could mutate.
|
|
78524
|
+
if (this.setSelectionInputTypes.includes(this.type)) {
|
|
78525
|
+
let selectionStart;
|
|
78526
|
+
try {
|
|
78527
|
+
selectionStart = this.inputElement.selectionStart;
|
|
78528
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
78529
|
+
return;
|
|
78530
|
+
}
|
|
78531
|
+
if (typeof selectionStart !== 'number') {
|
|
78532
|
+
return;
|
|
78533
|
+
}
|
|
78534
|
+
this.updateComplete.then(() => {
|
|
78535
|
+
try {
|
|
78536
|
+
this.inputElement.setSelectionRange(selectionStart, selectionStart);
|
|
78537
|
+
} catch (error) { // eslint-disable-line no-unused-vars
|
|
78538
|
+
// Some input types (number/email in certain UAs) throw on
|
|
78539
|
+
// setSelectionRange; swallow and let the native cursor stand.
|
|
78540
|
+
}
|
|
78541
|
+
});
|
|
78542
|
+
}
|
|
78463
78543
|
}
|
|
78464
78544
|
|
|
78465
78545
|
/**
|
|
@@ -79086,7 +79166,7 @@ let AuroHelpText$1$1 = class AuroHelpText extends i$2 {
|
|
|
79086
79166
|
}
|
|
79087
79167
|
};
|
|
79088
79168
|
|
|
79089
|
-
var formkitVersion$1$1 = '
|
|
79169
|
+
var formkitVersion$1$1 = '202606252337';
|
|
79090
79170
|
|
|
79091
79171
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
79092
79172
|
// See LICENSE in the project root for license information.
|
|
@@ -79589,6 +79669,7 @@ class AuroInput extends BaseInput {
|
|
|
79589
79669
|
<${this.buttonTag}
|
|
79590
79670
|
@click="${this.handleClickShowPassword}"
|
|
79591
79671
|
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
79672
|
+
aria-pressed="${this.showPassword ? 'true' : 'false'}"
|
|
79592
79673
|
class="notificationBtn passwordBtn"
|
|
79593
79674
|
shape="circle"
|
|
79594
79675
|
size="sm"
|
|
@@ -79662,25 +79743,29 @@ class AuroInput extends BaseInput {
|
|
|
79662
79743
|
* @returns {html} - Returns HTML for the help text and error message.
|
|
79663
79744
|
*/
|
|
79664
79745
|
renderHtmlHelpText() {
|
|
79746
|
+
// Single `<p>` with stable identity across validity transitions —
|
|
79747
|
+
// previously two distinct templates (valid vs invalid) caused Lit to
|
|
79748
|
+
// replace the node entirely on a flip, and VoiceOver wouldn't
|
|
79749
|
+
// re-announce because the live-region element it was watching had been
|
|
79750
|
+
// removed and a new one inserted. Keeping one node means the `role`,
|
|
79751
|
+
// `aria-live`, and text content all change in-place, which AT does
|
|
79752
|
+
// observe and announce.
|
|
79753
|
+
const isError = this.validity && this.validity !== 'valid';
|
|
79665
79754
|
return u$d`
|
|
79666
|
-
|
|
79667
|
-
?
|
|
79668
|
-
|
|
79669
|
-
|
|
79670
|
-
|
|
79671
|
-
|
|
79672
|
-
|
|
79673
|
-
|
|
79674
|
-
|
|
79675
|
-
|
|
79676
|
-
|
|
79677
|
-
|
|
79678
|
-
|
|
79679
|
-
|
|
79680
|
-
</p>
|
|
79681
|
-
</${this.helpTextTag}>
|
|
79682
|
-
`
|
|
79683
|
-
}
|
|
79755
|
+
<${this.helpTextTag}
|
|
79756
|
+
appearance="${this.onDark ? 'inverse' : this.appearance}"
|
|
79757
|
+
?error=${isError}>
|
|
79758
|
+
<p
|
|
79759
|
+
id="${this.uniqueId}"
|
|
79760
|
+
part="helpText"
|
|
79761
|
+
role="${o$4(isError ? 'alert' : undefined)}"
|
|
79762
|
+
aria-live="${o$4(isError ? 'assertive' : undefined)}">
|
|
79763
|
+
${isError
|
|
79764
|
+
? this.errorMessage
|
|
79765
|
+
: u$d`<slot name="helpText">${this.getHelpText()}</slot>`
|
|
79766
|
+
}
|
|
79767
|
+
</p>
|
|
79768
|
+
</${this.helpTextTag}>
|
|
79684
79769
|
`;
|
|
79685
79770
|
}
|
|
79686
79771
|
|
|
@@ -80207,7 +80292,7 @@ let AuroBibtemplate$1 = class AuroBibtemplate extends i$2 {
|
|
|
80207
80292
|
}
|
|
80208
80293
|
};
|
|
80209
80294
|
|
|
80210
|
-
var formkitVersion$3 = '
|
|
80295
|
+
var formkitVersion$3 = '202606252337';
|
|
80211
80296
|
|
|
80212
80297
|
var styleCss$1$3 = i$4`.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}`;
|
|
80213
80298
|
|
|
@@ -85020,24 +85105,19 @@ const selectKeyboardStrategy = {
|
|
|
85020
85105
|
},
|
|
85021
85106
|
|
|
85022
85107
|
End(component, evt, ctx) {
|
|
85108
|
+
if (!ctx.isExpanded) {
|
|
85109
|
+
return;
|
|
85110
|
+
}
|
|
85023
85111
|
evt.preventDefault();
|
|
85024
85112
|
evt.stopPropagation();
|
|
85025
85113
|
// `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
|
|
85026
85114
|
const lastOption = getEnabledOptions(component.menu).pop();
|
|
85027
|
-
if (
|
|
85028
|
-
|
|
85029
|
-
}
|
|
85030
|
-
if (!ctx.isExpanded) {
|
|
85031
|
-
component.dropdown.show();
|
|
85115
|
+
if (lastOption) {
|
|
85116
|
+
component.menu.updateActiveOption(lastOption);
|
|
85032
85117
|
}
|
|
85033
|
-
component.menu.updateActiveOption(lastOption);
|
|
85034
85118
|
},
|
|
85035
85119
|
|
|
85036
85120
|
Enter(component, evt, ctx) {
|
|
85037
|
-
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
85038
|
-
// which could interpret Enter as a submit. Matches APG select-only combobox
|
|
85039
|
-
// and native <select> behavior: Enter opens the listbox when closed, selects
|
|
85040
|
-
// the active option when open — it does not submit a parent form.
|
|
85041
85121
|
evt.preventDefault();
|
|
85042
85122
|
evt.stopPropagation();
|
|
85043
85123
|
if (!ctx.isExpanded) {
|
|
@@ -85048,16 +85128,15 @@ const selectKeyboardStrategy = {
|
|
|
85048
85128
|
},
|
|
85049
85129
|
|
|
85050
85130
|
Home(component, evt, ctx) {
|
|
85131
|
+
if (!ctx.isExpanded) {
|
|
85132
|
+
return;
|
|
85133
|
+
}
|
|
85051
85134
|
evt.preventDefault();
|
|
85052
85135
|
evt.stopPropagation();
|
|
85053
85136
|
const [firstOption] = getEnabledOptions(component.menu);
|
|
85054
|
-
if (
|
|
85055
|
-
|
|
85056
|
-
}
|
|
85057
|
-
if (!ctx.isExpanded) {
|
|
85058
|
-
component.dropdown.show();
|
|
85137
|
+
if (firstOption) {
|
|
85138
|
+
component.menu.updateActiveOption(firstOption);
|
|
85059
85139
|
}
|
|
85060
|
-
component.menu.updateActiveOption(firstOption);
|
|
85061
85140
|
},
|
|
85062
85141
|
|
|
85063
85142
|
Tab(component, evt, ctx) {
|
|
@@ -89004,7 +89083,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
89004
89083
|
}
|
|
89005
89084
|
};
|
|
89006
89085
|
|
|
89007
|
-
var formkitVersion$1 = '
|
|
89086
|
+
var formkitVersion$1 = '202606252337';
|
|
89008
89087
|
|
|
89009
89088
|
class AuroElement extends i$2 {
|
|
89010
89089
|
static get properties() {
|
|
@@ -90276,7 +90355,6 @@ class AuroDropdown extends AuroElement {
|
|
|
90276
90355
|
role="${o$4(this.triggerContentFocusable ? undefined : this.a11yRole)}"
|
|
90277
90356
|
aria-expanded="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
90278
90357
|
aria-controls="${o$4(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
90279
|
-
aria-haspopup="${o$4(this.a11yRole === 'combobox' ? 'listbox' : undefined)}"
|
|
90280
90358
|
aria-labelledby="${o$4(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
90281
90359
|
aria-disabled="${o$4(this.disabled ? 'true' : undefined)}"
|
|
90282
90360
|
@focusin="${this.handleFocusin}"
|
|
@@ -91026,7 +91104,7 @@ class AuroHelpText extends i$2 {
|
|
|
91026
91104
|
}
|
|
91027
91105
|
}
|
|
91028
91106
|
|
|
91029
|
-
var formkitVersion = '
|
|
91107
|
+
var formkitVersion = '202606252337';
|
|
91030
91108
|
|
|
91031
91109
|
var styleCss = i$4`.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}`;
|
|
91032
91110
|
|
|
@@ -91358,6 +91436,14 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91358
91436
|
reflect: true
|
|
91359
91437
|
},
|
|
91360
91438
|
|
|
91439
|
+
/**
|
|
91440
|
+
* @private
|
|
91441
|
+
*/
|
|
91442
|
+
options: {
|
|
91443
|
+
type: Array,
|
|
91444
|
+
state: true
|
|
91445
|
+
},
|
|
91446
|
+
|
|
91361
91447
|
/**
|
|
91362
91448
|
* Specifies the current selected menuOption. Default type is `HTMLElement`, changing to `Array<HTMLElement>` when `multiSelect` is true.
|
|
91363
91449
|
* @type {HTMLElement|Array<HTMLElement>}
|
|
@@ -91645,68 +91731,16 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91645
91731
|
this.dropdown.dropdownWidth = this.customBibWidth;
|
|
91646
91732
|
}
|
|
91647
91733
|
|
|
91648
|
-
|
|
91734
|
+
// Pass label text to the dropdown bib for accessible dialog naming
|
|
91735
|
+
const labelElement = this.querySelector('span[slot="label"]');
|
|
91736
|
+
if (labelElement) {
|
|
91737
|
+
this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
|
|
91738
|
+
}
|
|
91649
91739
|
|
|
91650
91740
|
// Exposes the CSS parts from the dropdown for styling
|
|
91651
91741
|
this.dropdown.exposeCssParts();
|
|
91652
91742
|
}
|
|
91653
91743
|
|
|
91654
|
-
/**
|
|
91655
|
-
* Reads the current label slot text and pushes it to the dropdown bib
|
|
91656
|
-
* (for dialog naming) and the menu (for listbox aria-label). Safe to call
|
|
91657
|
-
* before either child has been wired up — each branch self-guards.
|
|
91658
|
-
* @private
|
|
91659
|
-
*/
|
|
91660
|
-
_syncLabelText() {
|
|
91661
|
-
const labelElement = this.querySelector('[slot="label"]');
|
|
91662
|
-
const text = labelElement ? labelElement.textContent.trim() : '';
|
|
91663
|
-
if (this.dropdown) {
|
|
91664
|
-
this.dropdown.bibDialogLabel = text || undefined;
|
|
91665
|
-
}
|
|
91666
|
-
if (this.menu) {
|
|
91667
|
-
if (text) {
|
|
91668
|
-
this.menu.setAttribute('aria-label', text);
|
|
91669
|
-
} else {
|
|
91670
|
-
this.menu.removeAttribute('aria-label');
|
|
91671
|
-
}
|
|
91672
|
-
}
|
|
91673
|
-
}
|
|
91674
|
-
|
|
91675
|
-
/**
|
|
91676
|
-
* Keeps the dialog/menu accessible names in sync when consumers mutate the
|
|
91677
|
-
* label slot at runtime (e.g., i18n locale swap). `slotchange` alone is
|
|
91678
|
-
* insufficient — it doesn't fire when textContent of an already-assigned
|
|
91679
|
-
* slotted node changes, which is the common case. We scope the observer to
|
|
91680
|
-
* the label node itself (not the whole host subtree) so option-content
|
|
91681
|
-
* mutations don't trigger label re-syncs, and re-target on `slotchange`
|
|
91682
|
-
* when consumers add or replace the label element.
|
|
91683
|
-
* @private
|
|
91684
|
-
*/
|
|
91685
|
-
_observeLabelChanges() {
|
|
91686
|
-
if (this._labelObserver) return;
|
|
91687
|
-
this._labelObserver = new MutationObserver(() => this._syncLabelText());
|
|
91688
|
-
|
|
91689
|
-
const retarget = () => {
|
|
91690
|
-
this._labelObserver.disconnect();
|
|
91691
|
-
const labelElement = this.querySelector('[slot="label"]');
|
|
91692
|
-
if (labelElement) {
|
|
91693
|
-
this._labelObserver.observe(labelElement, {
|
|
91694
|
-
childList: true,
|
|
91695
|
-
subtree: true,
|
|
91696
|
-
characterData: true
|
|
91697
|
-
});
|
|
91698
|
-
}
|
|
91699
|
-
this._syncLabelText();
|
|
91700
|
-
};
|
|
91701
|
-
|
|
91702
|
-
retarget();
|
|
91703
|
-
|
|
91704
|
-
this._retargetLabelObserver = retarget;
|
|
91705
|
-
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
91706
|
-
slot.addEventListener('slotchange', retarget);
|
|
91707
|
-
});
|
|
91708
|
-
}
|
|
91709
|
-
|
|
91710
91744
|
/**
|
|
91711
91745
|
* This will register this element with the browser.
|
|
91712
91746
|
* @param {string} [name="auro-select"] - The name of element that you want to register to.
|
|
@@ -91857,7 +91891,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91857
91891
|
this.updateMenuShapeSize();
|
|
91858
91892
|
this.setMenuValue(this.value);
|
|
91859
91893
|
|
|
91860
|
-
|
|
91894
|
+
// Set accessible name on the menu for screen readers based on the label slot content
|
|
91895
|
+
const labelElement = this.querySelector('[slot="label"]');
|
|
91896
|
+
if (labelElement) {
|
|
91897
|
+
this.menu.setAttribute('aria-label', labelElement.textContent.trim());
|
|
91898
|
+
}
|
|
91861
91899
|
|
|
91862
91900
|
if (this.multiSelect) {
|
|
91863
91901
|
this.menu.multiSelect = this.multiSelect;
|
|
@@ -91869,21 +91907,8 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91869
91907
|
if (typeof this.menu.initItems === 'function') {
|
|
91870
91908
|
this.menu.initItems();
|
|
91871
91909
|
}
|
|
91910
|
+
this.options = this.menu.options;
|
|
91872
91911
|
this.updateOptionPositions();
|
|
91873
|
-
// renderNativeSelect reads this.menu.options, which the parent doesn't
|
|
91874
|
-
// observe — request an update so the hidden native <option> list reflects
|
|
91875
|
-
// the menu's options after initItems populates them.
|
|
91876
|
-
this.requestUpdate();
|
|
91877
|
-
|
|
91878
|
-
// Keep aria-setsize/aria-posinset (and the native <option> list) in sync
|
|
91879
|
-
// when the menu re-initializes its items — e.g., slotchange, async/lazy
|
|
91880
|
-
// loads, value-triggered re-init. Without this, stale set-size is
|
|
91881
|
-
// announced and the native select goes stale after dynamic mutations.
|
|
91882
|
-
this.menu.addEventListener('auroMenu-optionsChange', () => {
|
|
91883
|
-
this.updateOptionPositions();
|
|
91884
|
-
this.requestUpdate();
|
|
91885
|
-
});
|
|
91886
|
-
|
|
91887
91912
|
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
91888
91913
|
|
|
91889
91914
|
this.menu.addEventListener("auroMenu-selectValueFailure", () => {
|
|
@@ -91902,22 +91927,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
91902
91927
|
this.dropdown.setActiveDescendant(this.optionActive);
|
|
91903
91928
|
}
|
|
91904
91929
|
|
|
91905
|
-
// Announce the active option for screen readers
|
|
91906
|
-
|
|
91907
|
-
// re-announce, and aria-selected on the active descendant otherwise
|
|
91908
|
-
// conveys state without an explicit utterance.
|
|
91909
|
-
if (this.optionActive && !this.optionActive.hasAttribute('selected')) {
|
|
91930
|
+
// Announce the active option for screen readers
|
|
91931
|
+
if (this.optionActive) {
|
|
91910
91932
|
const optionText = this.optionActive.textContent.trim();
|
|
91911
|
-
const
|
|
91912
|
-
|
|
91913
|
-
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
91914
|
-
} else {
|
|
91915
|
-
// Typeahead-on-closed fires this event before `show()` flips
|
|
91916
|
-
// isPopoverVisible. Defer so the announcement targets the bib's
|
|
91917
|
-
// live region once the fullscreen <dialog> opens — otherwise it
|
|
91918
|
-
// lands in the host root, which is inert under the active modal.
|
|
91919
|
-
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
91920
|
-
}
|
|
91933
|
+
const selectedState = this.optionActive.hasAttribute('selected') ? ', selected' : ', not selected';
|
|
91934
|
+
announceToScreenReader(this._getAnnouncementRoot(), `${optionText}${selectedState}`);
|
|
91921
91935
|
}
|
|
91922
91936
|
|
|
91923
91937
|
if (this.dropdown.isPopoverVisible) {
|
|
@@ -92049,32 +92063,24 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92049
92063
|
|
|
92050
92064
|
this.typeaheadBuffer += key;
|
|
92051
92065
|
|
|
92052
|
-
|
|
92053
|
-
// next item with a name that starts with the string of characters typed").
|
|
92054
|
-
// Only fall back to single-char cycling when the repeated buffer has no
|
|
92055
|
-
// longer prefix match — e.g. "aa" cycles through ["Apple", "Apricot"] only
|
|
92056
|
-
// because no option starts with "aa".
|
|
92057
|
-
let match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
92066
|
+
const isRepeatedChar = this.typeaheadBuffer.length > 1 && new Set(this.typeaheadBuffer).size === 1;
|
|
92058
92067
|
|
|
92059
|
-
|
|
92068
|
+
let match = null;
|
|
92060
92069
|
if (isRepeatedChar) {
|
|
92061
92070
|
const matches = options.filter((option) => this._getOptionDisplayText(option).startsWith(key));
|
|
92062
92071
|
if (matches.length) {
|
|
92063
92072
|
const cycleIndex = (this.typeaheadBuffer.length - 1) % matches.length;
|
|
92064
92073
|
match = matches[cycleIndex];
|
|
92065
92074
|
}
|
|
92075
|
+
} else {
|
|
92076
|
+
match = options.find((option) => this._getOptionDisplayText(option).startsWith(this.typeaheadBuffer));
|
|
92066
92077
|
}
|
|
92067
92078
|
|
|
92068
|
-
// Intentional: no-match leaves the bib closed (deviates from APG / some native <select>).
|
|
92069
92079
|
if (match) {
|
|
92070
|
-
// Pre-stash the match so the auroDropdown-toggled handler's `!optionActive`
|
|
92071
|
-
// guard short-circuits and skips the firstActive/selected fallback —
|
|
92072
|
-
// otherwise show() synchronously fires the handler, which writes
|
|
92073
|
-
// aria-activedescendant once before we overwrite it.
|
|
92074
|
-
this.menu.updateActiveOption(match);
|
|
92075
92080
|
if (!this.dropdown.isPopoverVisible) {
|
|
92076
92081
|
this.dropdown.show();
|
|
92077
92082
|
}
|
|
92083
|
+
this.menu.updateActiveOption(match);
|
|
92078
92084
|
}
|
|
92079
92085
|
}
|
|
92080
92086
|
|
|
@@ -92191,16 +92197,6 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92191
92197
|
disconnectedCallback() {
|
|
92192
92198
|
super.disconnectedCallback();
|
|
92193
92199
|
this._clearTypeaheadBuffer();
|
|
92194
|
-
if (this._labelObserver) {
|
|
92195
|
-
this._labelObserver.disconnect();
|
|
92196
|
-
this._labelObserver = null;
|
|
92197
|
-
}
|
|
92198
|
-
if (this._retargetLabelObserver && this.shadowRoot) {
|
|
92199
|
-
this.shadowRoot.querySelectorAll('slot[name="label"]').forEach((slot) => {
|
|
92200
|
-
slot.removeEventListener('slotchange', this._retargetLabelObserver);
|
|
92201
|
-
});
|
|
92202
|
-
this._retargetLabelObserver = null;
|
|
92203
|
-
}
|
|
92204
92200
|
}
|
|
92205
92201
|
|
|
92206
92202
|
// lifecycle runs only after the element's DOM has been updated the first time
|
|
@@ -92211,7 +92207,6 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92211
92207
|
this.configureDropdown();
|
|
92212
92208
|
this.configureMenu();
|
|
92213
92209
|
this.configureSelect();
|
|
92214
|
-
this._observeLabelChanges();
|
|
92215
92210
|
}
|
|
92216
92211
|
|
|
92217
92212
|
setMenuValue(value) {
|
|
@@ -92348,8 +92343,21 @@ class AuroSelect extends AuroElement$1 {
|
|
|
92348
92343
|
if (!selectedOption) return;
|
|
92349
92344
|
const selectedValue = selectedOption.value;
|
|
92350
92345
|
|
|
92351
|
-
if (this.
|
|
92352
|
-
this.value
|
|
92346
|
+
if (this.multiSelect) {
|
|
92347
|
+
const currentArray = this.menu.value || [];
|
|
92348
|
+
|
|
92349
|
+
if (!currentArray.includes(selectedValue)) {
|
|
92350
|
+
this.value = JSON.stringify([
|
|
92351
|
+
...currentArray,
|
|
92352
|
+
selectedValue
|
|
92353
|
+
]);
|
|
92354
|
+
}
|
|
92355
|
+
} else {
|
|
92356
|
+
const currentValue = this.value;
|
|
92357
|
+
|
|
92358
|
+
if (currentValue !== selectedValue) {
|
|
92359
|
+
this.value = selectedValue;
|
|
92360
|
+
}
|
|
92353
92361
|
}
|
|
92354
92362
|
}
|
|
92355
92363
|
|