@aurodesignsystem-dev/auro-formkit 0.0.0-pr1531.0 → 0.0.0-pr1532.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 +21 -43
- package/components/combobox/demo/getting-started.min.js +21 -43
- package/components/combobox/demo/index.min.js +21 -43
- package/components/combobox/dist/index.js +21 -43
- package/components/combobox/dist/registered.js +21 -43
- package/components/counter/demo/customize.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/customize.min.js +21 -43
- package/components/datepicker/demo/index.min.js +21 -43
- package/components/datepicker/dist/index.js +21 -43
- package/components/datepicker/dist/registered.js +21 -43
- package/components/dropdown/demo/customize.min.js +1 -1
- package/components/dropdown/demo/getting-started.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/customize.min.js +127 -147
- package/components/form/demo/getting-started.min.js +127 -147
- package/components/form/demo/index.min.js +127 -147
- package/components/form/demo/registerDemoDeps.min.js +127 -147
- package/components/input/demo/customize.min.js +19 -41
- package/components/input/demo/getting-started.min.js +19 -41
- package/components/input/demo/index.min.js +19 -41
- package/components/input/dist/base-input.d.ts +4 -20
- package/components/input/dist/index.js +19 -41
- package/components/input/dist/registered.js +19 -41
- 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 +62 -16
- package/components/select/demo/getting-started.min.js +62 -16
- package/components/select/demo/index.min.js +62 -16
- package/components/select/dist/auro-select.d.ts +6 -0
- package/components/select/dist/index.js +62 -16
- package/components/select/dist/registered.js +62 -16
- package/custom-elements.json +44 -98
- package/package.json +1 -1
|
@@ -10599,16 +10599,14 @@ class BaseInput extends AuroElement {
|
|
|
10599
10599
|
this.label = 'Input label is undefined';
|
|
10600
10600
|
this.layout = 'classic';
|
|
10601
10601
|
this.locale = 'en-US';
|
|
10602
|
-
this._format = undefined;
|
|
10603
|
-
|
|
10604
|
-
/** @private */
|
|
10605
|
-
this._userSetFormat = false;
|
|
10606
10602
|
this.max = undefined;
|
|
10607
10603
|
this.maxLength = undefined;
|
|
10608
10604
|
this.min = undefined;
|
|
10609
10605
|
this.minLength = undefined;
|
|
10610
10606
|
this.noValidate = false;
|
|
10611
10607
|
this.onDark = false;
|
|
10608
|
+
// Raw values returned from the input mask before model normalization.
|
|
10609
|
+
this._rawMaskValue = undefined;
|
|
10612
10610
|
this.required = false;
|
|
10613
10611
|
this.setCustomValidityForType = undefined;
|
|
10614
10612
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -10766,8 +10764,7 @@ class BaseInput extends AuroElement {
|
|
|
10766
10764
|
*/
|
|
10767
10765
|
format: {
|
|
10768
10766
|
type: String,
|
|
10769
|
-
reflect: true
|
|
10770
|
-
noAccessor: true
|
|
10767
|
+
reflect: true
|
|
10771
10768
|
},
|
|
10772
10769
|
|
|
10773
10770
|
/**
|
|
@@ -11105,34 +11102,6 @@ class BaseInput extends AuroElement {
|
|
|
11105
11102
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
11106
11103
|
}
|
|
11107
11104
|
|
|
11108
|
-
get format() {
|
|
11109
|
-
return this._format;
|
|
11110
|
-
}
|
|
11111
|
-
|
|
11112
|
-
/**
|
|
11113
|
-
* Overrides LitElement's generated accessor so we can track whether the
|
|
11114
|
-
* consumer explicitly set `format`. Locale-derived updates use
|
|
11115
|
-
* `_setFormatFromLocale` instead, which skips this flag.
|
|
11116
|
-
*/
|
|
11117
|
-
set format(value) {
|
|
11118
|
-
const oldValue = this._format;
|
|
11119
|
-
this._format = value;
|
|
11120
|
-
this._userSetFormat = true;
|
|
11121
|
-
this.requestUpdate('format', oldValue);
|
|
11122
|
-
}
|
|
11123
|
-
|
|
11124
|
-
/**
|
|
11125
|
-
* Sets format without marking it as user-set. Used by locale auto-derive
|
|
11126
|
-
* so that a subsequent locale change can still update the format.
|
|
11127
|
-
* @private
|
|
11128
|
-
* @param {string} value
|
|
11129
|
-
*/
|
|
11130
|
-
_setFormatFromLocale(value) {
|
|
11131
|
-
const oldValue = this._format;
|
|
11132
|
-
this._format = value;
|
|
11133
|
-
this.requestUpdate('format', oldValue);
|
|
11134
|
-
}
|
|
11135
|
-
|
|
11136
11105
|
connectedCallback() {
|
|
11137
11106
|
super.connectedCallback();
|
|
11138
11107
|
|
|
@@ -11186,7 +11155,7 @@ class BaseInput extends AuroElement {
|
|
|
11186
11155
|
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11187
11156
|
// unset.
|
|
11188
11157
|
if (this.format) {
|
|
11189
|
-
this.
|
|
11158
|
+
this.format = this.format.toLowerCase();
|
|
11190
11159
|
}
|
|
11191
11160
|
|
|
11192
11161
|
// use validity message override if declared when initializing the component
|
|
@@ -11295,10 +11264,12 @@ class BaseInput extends AuroElement {
|
|
|
11295
11264
|
updated(changedProperties) {
|
|
11296
11265
|
super.updated(changedProperties);
|
|
11297
11266
|
|
|
11298
|
-
// When locale changes,
|
|
11267
|
+
// When locale changes without an explicit format override, derive format from the new locale.
|
|
11268
|
+
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
11299
11269
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
11300
|
-
|
|
11301
|
-
|
|
11270
|
+
const previousLocaleFormat = getDateFormatFromLocale(changedProperties.get('locale'));
|
|
11271
|
+
if (!this.format || this.format.toLowerCase() === previousLocaleFormat) {
|
|
11272
|
+
this.format = getDateFormatFromLocale(this.locale);
|
|
11302
11273
|
}
|
|
11303
11274
|
}
|
|
11304
11275
|
|
|
@@ -11469,6 +11440,9 @@ class BaseInput extends AuroElement {
|
|
|
11469
11440
|
this.maskInstance.on('accept', () => {
|
|
11470
11441
|
if (this._configuringMask) return;
|
|
11471
11442
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11443
|
+
if (this.type === "date") {
|
|
11444
|
+
this._rawMaskValue = this.maskInstance.value;
|
|
11445
|
+
}
|
|
11472
11446
|
});
|
|
11473
11447
|
|
|
11474
11448
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -11476,6 +11450,9 @@ class BaseInput extends AuroElement {
|
|
|
11476
11450
|
this.maskInstance.on('complete', () => {
|
|
11477
11451
|
if (this._configuringMask) return;
|
|
11478
11452
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11453
|
+
if (this.type === "date") {
|
|
11454
|
+
this._rawMaskValue = this.maskInstance.value;
|
|
11455
|
+
}
|
|
11479
11456
|
});
|
|
11480
11457
|
|
|
11481
11458
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -11712,7 +11689,8 @@ class BaseInput extends AuroElement {
|
|
|
11712
11689
|
|
|
11713
11690
|
// Set default date format if type=date and no format is defined
|
|
11714
11691
|
if (this.type === "date" && !this.format) {
|
|
11715
|
-
|
|
11692
|
+
// Use locale to determine default date format
|
|
11693
|
+
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
11716
11694
|
this.util.updateFormat(this.format);
|
|
11717
11695
|
}
|
|
11718
11696
|
}
|
|
@@ -11741,7 +11719,7 @@ class BaseInput extends AuroElement {
|
|
|
11741
11719
|
const creditCard = this.matchInputValueToCreditCard();
|
|
11742
11720
|
const previousFormat = this.format;
|
|
11743
11721
|
|
|
11744
|
-
this.
|
|
11722
|
+
this.format = creditCard.maskFormat;
|
|
11745
11723
|
|
|
11746
11724
|
this.maxLength = creditCard.formatLength;
|
|
11747
11725
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -12215,7 +12193,7 @@ class AuroHelpText extends LitElement {
|
|
|
12215
12193
|
}
|
|
12216
12194
|
}
|
|
12217
12195
|
|
|
12218
|
-
var formkitVersion = '
|
|
12196
|
+
var formkitVersion = '202607022008';
|
|
12219
12197
|
|
|
12220
12198
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12221
12199
|
// See LICENSE in the project root for license information.
|
|
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
|
|
|
1227
1227
|
}
|
|
1228
1228
|
}
|
|
1229
1229
|
|
|
1230
|
-
var formkitVersion = '
|
|
1230
|
+
var formkitVersion = '202607022008';
|
|
1231
1231
|
|
|
1232
1232
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
1233
1233
|
// See LICENSE in the project root for license information.
|
|
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
|
|
|
1227
1227
|
}
|
|
1228
1228
|
}
|
|
1229
1229
|
|
|
1230
|
-
var formkitVersion = '
|
|
1230
|
+
var formkitVersion = '202607022008';
|
|
1231
1231
|
|
|
1232
1232
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
1233
1233
|
// See LICENSE in the project root for license information.
|
|
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
|
|
|
1227
1227
|
}
|
|
1228
1228
|
}
|
|
1229
1229
|
|
|
1230
|
-
var formkitVersion = '
|
|
1230
|
+
var formkitVersion = '202607022008';
|
|
1231
1231
|
|
|
1232
1232
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
1233
1233
|
// See LICENSE in the project root for license information.
|
|
@@ -1166,7 +1166,7 @@ class AuroHelpText extends LitElement {
|
|
|
1166
1166
|
}
|
|
1167
1167
|
}
|
|
1168
1168
|
|
|
1169
|
-
var formkitVersion = '
|
|
1169
|
+
var formkitVersion = '202607022008';
|
|
1170
1170
|
|
|
1171
1171
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
1172
1172
|
// See LICENSE in the project root for license information.
|
|
@@ -1166,7 +1166,7 @@ class AuroHelpText extends LitElement {
|
|
|
1166
1166
|
}
|
|
1167
1167
|
}
|
|
1168
1168
|
|
|
1169
|
-
var formkitVersion = '
|
|
1169
|
+
var formkitVersion = '202607022008';
|
|
1170
1170
|
|
|
1171
1171
|
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
1172
1172
|
// See LICENSE in the project root for license information.
|
|
@@ -904,9 +904,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
904
904
|
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
905
905
|
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
906
906
|
*/
|
|
907
|
-
function getEnabledOptions(menu) {
|
|
908
|
-
return (menu?.options || []).filter((option) => !option.disabled);
|
|
909
|
-
}
|
|
910
907
|
|
|
911
908
|
/**
|
|
912
909
|
* Returns the active (selectable + visible) options for type-ahead navigation.
|
|
@@ -976,8 +973,10 @@ const selectKeyboardStrategy = {
|
|
|
976
973
|
End(component, evt, ctx) {
|
|
977
974
|
evt.preventDefault();
|
|
978
975
|
evt.stopPropagation();
|
|
979
|
-
// `pop()` is safe here:
|
|
980
|
-
|
|
976
|
+
// `pop()` is safe here: getActiveOptions returns a fresh filtered array.
|
|
977
|
+
// Uses "active" (not "enabled") so hidden and static rows — which a screen
|
|
978
|
+
// reader must not announce as focused — are skipped.
|
|
979
|
+
const lastOption = getActiveOptions(component.menu).pop();
|
|
981
980
|
if (!lastOption) {
|
|
982
981
|
return;
|
|
983
982
|
}
|
|
@@ -1008,7 +1007,7 @@ const selectKeyboardStrategy = {
|
|
|
1008
1007
|
Home(component, evt, ctx) {
|
|
1009
1008
|
evt.preventDefault();
|
|
1010
1009
|
evt.stopPropagation();
|
|
1011
|
-
const [firstOption] =
|
|
1010
|
+
const [firstOption] = getActiveOptions(component.menu);
|
|
1012
1011
|
if (!firstOption) {
|
|
1013
1012
|
return;
|
|
1014
1013
|
}
|
|
@@ -1033,6 +1032,15 @@ const selectKeyboardStrategy = {
|
|
|
1033
1032
|
},
|
|
1034
1033
|
|
|
1035
1034
|
default(component, evt, ctx) {
|
|
1035
|
+
// Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts
|
|
1036
|
+
// (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead
|
|
1037
|
+
// or toggle the bib. Native <select> ignores modified keys.
|
|
1038
|
+
// ArrowUp/ArrowDown handle modifier+arrow explicitly above; this
|
|
1039
|
+
// guard only affects the default (printable/Space) branch.
|
|
1040
|
+
if (evt.ctrlKey || evt.metaKey || evt.altKey) {
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1036
1044
|
// Space resolves to either typeahead-buffer extension or bib toggle
|
|
1037
1045
|
// depending on whether a type-ahead buffer is active. Mirrors native
|
|
1038
1046
|
// <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
|
|
@@ -4987,7 +4995,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4987
4995
|
}
|
|
4988
4996
|
};
|
|
4989
4997
|
|
|
4990
|
-
var formkitVersion$1 = '
|
|
4998
|
+
var formkitVersion$1 = '202607022008';
|
|
4991
4999
|
|
|
4992
5000
|
class AuroElement extends i$2 {
|
|
4993
5001
|
static get properties() {
|
|
@@ -7026,7 +7034,7 @@ class AuroHelpText extends i$2 {
|
|
|
7026
7034
|
}
|
|
7027
7035
|
}
|
|
7028
7036
|
|
|
7029
|
-
var formkitVersion = '
|
|
7037
|
+
var formkitVersion = '202607022008';
|
|
7030
7038
|
|
|
7031
7039
|
var styleCss$2 = i$5`.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}`;
|
|
7032
7040
|
|
|
@@ -7590,8 +7598,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7590
7598
|
} else if (this.multiSelect && Array.isArray(this.optionSelected) && this.optionSelected.length > 0) {
|
|
7591
7599
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7592
7600
|
} else {
|
|
7593
|
-
// If no activeOption has yet to be set,
|
|
7594
|
-
|
|
7601
|
+
// If no activeOption has yet to be set, make the first active option
|
|
7602
|
+
// (non-disabled, non-hidden, non-static) active by default. "Active" —
|
|
7603
|
+
// not just "enabled" — so hidden rows and static placeholders never
|
|
7604
|
+
// land in aria-activedescendant on open.
|
|
7605
|
+
const [firstActive] = getActiveOptions(this.menu);
|
|
7595
7606
|
this.menu.updateActiveOption(firstActive);
|
|
7596
7607
|
}
|
|
7597
7608
|
}
|
|
@@ -7837,6 +7848,12 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7837
7848
|
|
|
7838
7849
|
/**
|
|
7839
7850
|
* Binds all behavior needed to the menu after rendering.
|
|
7851
|
+
*
|
|
7852
|
+
* The `<auro-menu>` reference is captured once and not re-targeted on
|
|
7853
|
+
* `slotchange`. Runtime option mutations are covered via
|
|
7854
|
+
* `auroMenu-optionsChange`, so swap options inside the menu freely; do not
|
|
7855
|
+
* swap the `<auro-menu>` element itself under a live select — remount the
|
|
7856
|
+
* parent `<auro-select>` instead.
|
|
7840
7857
|
* @private
|
|
7841
7858
|
* @returns {void}
|
|
7842
7859
|
*/
|
|
@@ -7895,6 +7912,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7895
7912
|
if (this.menu.optionSelected !== undefined) {
|
|
7896
7913
|
return;
|
|
7897
7914
|
}
|
|
7915
|
+
// Skip when the select is already cleared (valueless click with no
|
|
7916
|
+
// prior selection): value/optionSelected are already empty and there
|
|
7917
|
+
// is no stale trigger text to refresh, so updateDisplayedValue would
|
|
7918
|
+
// just churn the DOM and request a needless dropdown re-render.
|
|
7919
|
+
const hasStaleState = this.value !== undefined ||
|
|
7920
|
+
(this.multiSelect ? this.optionSelected?.length > 0 : this.optionSelected !== undefined);
|
|
7921
|
+
if (!hasStaleState) {
|
|
7922
|
+
return;
|
|
7923
|
+
}
|
|
7898
7924
|
this.value = undefined;
|
|
7899
7925
|
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7900
7926
|
// The trigger label is rendered imperatively into #value, so a property
|
|
@@ -7924,10 +7950,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7924
7950
|
if (this.dropdown.isPopoverVisible) {
|
|
7925
7951
|
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
7926
7952
|
} else {
|
|
7927
|
-
// Typeahead-on-closed
|
|
7928
|
-
//
|
|
7929
|
-
//
|
|
7930
|
-
//
|
|
7953
|
+
// Typeahead-on-closed calls updateActiveOption() before show(), so
|
|
7954
|
+
// this handler runs with isPopoverVisible still false. queueMicrotask
|
|
7955
|
+
// is safe because show() → showBib() flips isPopoverVisible and
|
|
7956
|
+
// dialog.showModal() both run synchronously in the same task; the
|
|
7957
|
+
// microtask queue only drains once _handleTypeahead unwinds, by
|
|
7958
|
+
// which point _getAnnouncementRoot() resolves to the bib's shadow
|
|
7959
|
+
// root inside the now-open modal. Do NOT switch to auroDropdown-toggled
|
|
7960
|
+
// — it fires before showModal(), landing the announcement in the
|
|
7961
|
+
// host root while the dialog is still not-yet-modal.
|
|
7931
7962
|
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
7932
7963
|
}
|
|
7933
7964
|
}
|
|
@@ -8321,6 +8352,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8321
8352
|
}
|
|
8322
8353
|
|
|
8323
8354
|
if (changedProperties.has('value')) {
|
|
8355
|
+
// A value change ends the current interaction — whether it came from a
|
|
8356
|
+
// user commit, programmatic assignment, or reset(). Clear the buffer so
|
|
8357
|
+
// a stale prefix does not concatenate onto the next keystroke while the
|
|
8358
|
+
// host still has focus (the blur listener would otherwise be the only
|
|
8359
|
+
// focus-retained clear point, and hideBib() below does not blur).
|
|
8360
|
+
this._clearTypeaheadBuffer();
|
|
8361
|
+
|
|
8324
8362
|
this.setMenuValue(this.value);
|
|
8325
8363
|
|
|
8326
8364
|
this._updateNativeSelect();
|
|
@@ -8376,6 +8414,9 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8376
8414
|
* @returns {void}
|
|
8377
8415
|
*/
|
|
8378
8416
|
reset() {
|
|
8417
|
+
// Defense-in-depth: updated()'s value-change branch also clears, but
|
|
8418
|
+
// reset-to-same-value (e.g. undefined → undefined) skips that path.
|
|
8419
|
+
this._clearTypeaheadBuffer();
|
|
8379
8420
|
this.menu.reset();
|
|
8380
8421
|
this.validation.reset(this);
|
|
8381
8422
|
}
|
|
@@ -8398,8 +8439,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8398
8439
|
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
8399
8440
|
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
8400
8441
|
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
8401
|
-
// form control even with aria-hidden/tabindex=-1
|
|
8402
|
-
|
|
8442
|
+
// form control even with aria-hidden/tabindex=-1, so revert to the expected
|
|
8443
|
+
// mirror (formattedValue[0]) rather than letting the native select drift and
|
|
8444
|
+
// silently submit the autofilled scalar under `name`.
|
|
8445
|
+
if (this.multiSelect) {
|
|
8446
|
+
this._updateNativeSelect();
|
|
8447
|
+
return;
|
|
8448
|
+
}
|
|
8403
8449
|
|
|
8404
8450
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
8405
8451
|
if (!selectedOption) return;
|
|
@@ -904,9 +904,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
904
904
|
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
905
905
|
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
906
906
|
*/
|
|
907
|
-
function getEnabledOptions(menu) {
|
|
908
|
-
return (menu?.options || []).filter((option) => !option.disabled);
|
|
909
|
-
}
|
|
910
907
|
|
|
911
908
|
/**
|
|
912
909
|
* Returns the active (selectable + visible) options for type-ahead navigation.
|
|
@@ -976,8 +973,10 @@ const selectKeyboardStrategy = {
|
|
|
976
973
|
End(component, evt, ctx) {
|
|
977
974
|
evt.preventDefault();
|
|
978
975
|
evt.stopPropagation();
|
|
979
|
-
// `pop()` is safe here:
|
|
980
|
-
|
|
976
|
+
// `pop()` is safe here: getActiveOptions returns a fresh filtered array.
|
|
977
|
+
// Uses "active" (not "enabled") so hidden and static rows — which a screen
|
|
978
|
+
// reader must not announce as focused — are skipped.
|
|
979
|
+
const lastOption = getActiveOptions(component.menu).pop();
|
|
981
980
|
if (!lastOption) {
|
|
982
981
|
return;
|
|
983
982
|
}
|
|
@@ -1008,7 +1007,7 @@ const selectKeyboardStrategy = {
|
|
|
1008
1007
|
Home(component, evt, ctx) {
|
|
1009
1008
|
evt.preventDefault();
|
|
1010
1009
|
evt.stopPropagation();
|
|
1011
|
-
const [firstOption] =
|
|
1010
|
+
const [firstOption] = getActiveOptions(component.menu);
|
|
1012
1011
|
if (!firstOption) {
|
|
1013
1012
|
return;
|
|
1014
1013
|
}
|
|
@@ -1033,6 +1032,15 @@ const selectKeyboardStrategy = {
|
|
|
1033
1032
|
},
|
|
1034
1033
|
|
|
1035
1034
|
default(component, evt, ctx) {
|
|
1035
|
+
// Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts
|
|
1036
|
+
// (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead
|
|
1037
|
+
// or toggle the bib. Native <select> ignores modified keys.
|
|
1038
|
+
// ArrowUp/ArrowDown handle modifier+arrow explicitly above; this
|
|
1039
|
+
// guard only affects the default (printable/Space) branch.
|
|
1040
|
+
if (evt.ctrlKey || evt.metaKey || evt.altKey) {
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1036
1044
|
// Space resolves to either typeahead-buffer extension or bib toggle
|
|
1037
1045
|
// depending on whether a type-ahead buffer is active. Mirrors native
|
|
1038
1046
|
// <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
|
|
@@ -4987,7 +4995,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
|
|
|
4987
4995
|
}
|
|
4988
4996
|
};
|
|
4989
4997
|
|
|
4990
|
-
var formkitVersion$1 = '
|
|
4998
|
+
var formkitVersion$1 = '202607022008';
|
|
4991
4999
|
|
|
4992
5000
|
class AuroElement extends i$2 {
|
|
4993
5001
|
static get properties() {
|
|
@@ -7026,7 +7034,7 @@ class AuroHelpText extends i$2 {
|
|
|
7026
7034
|
}
|
|
7027
7035
|
}
|
|
7028
7036
|
|
|
7029
|
-
var formkitVersion = '
|
|
7037
|
+
var formkitVersion = '202607022008';
|
|
7030
7038
|
|
|
7031
7039
|
var styleCss$2 = i$5`.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}`;
|
|
7032
7040
|
|
|
@@ -7590,8 +7598,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7590
7598
|
} else if (this.multiSelect && Array.isArray(this.optionSelected) && this.optionSelected.length > 0) {
|
|
7591
7599
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7592
7600
|
} else {
|
|
7593
|
-
// If no activeOption has yet to be set,
|
|
7594
|
-
|
|
7601
|
+
// If no activeOption has yet to be set, make the first active option
|
|
7602
|
+
// (non-disabled, non-hidden, non-static) active by default. "Active" —
|
|
7603
|
+
// not just "enabled" — so hidden rows and static placeholders never
|
|
7604
|
+
// land in aria-activedescendant on open.
|
|
7605
|
+
const [firstActive] = getActiveOptions(this.menu);
|
|
7595
7606
|
this.menu.updateActiveOption(firstActive);
|
|
7596
7607
|
}
|
|
7597
7608
|
}
|
|
@@ -7837,6 +7848,12 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7837
7848
|
|
|
7838
7849
|
/**
|
|
7839
7850
|
* Binds all behavior needed to the menu after rendering.
|
|
7851
|
+
*
|
|
7852
|
+
* The `<auro-menu>` reference is captured once and not re-targeted on
|
|
7853
|
+
* `slotchange`. Runtime option mutations are covered via
|
|
7854
|
+
* `auroMenu-optionsChange`, so swap options inside the menu freely; do not
|
|
7855
|
+
* swap the `<auro-menu>` element itself under a live select — remount the
|
|
7856
|
+
* parent `<auro-select>` instead.
|
|
7840
7857
|
* @private
|
|
7841
7858
|
* @returns {void}
|
|
7842
7859
|
*/
|
|
@@ -7895,6 +7912,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7895
7912
|
if (this.menu.optionSelected !== undefined) {
|
|
7896
7913
|
return;
|
|
7897
7914
|
}
|
|
7915
|
+
// Skip when the select is already cleared (valueless click with no
|
|
7916
|
+
// prior selection): value/optionSelected are already empty and there
|
|
7917
|
+
// is no stale trigger text to refresh, so updateDisplayedValue would
|
|
7918
|
+
// just churn the DOM and request a needless dropdown re-render.
|
|
7919
|
+
const hasStaleState = this.value !== undefined ||
|
|
7920
|
+
(this.multiSelect ? this.optionSelected?.length > 0 : this.optionSelected !== undefined);
|
|
7921
|
+
if (!hasStaleState) {
|
|
7922
|
+
return;
|
|
7923
|
+
}
|
|
7898
7924
|
this.value = undefined;
|
|
7899
7925
|
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7900
7926
|
// The trigger label is rendered imperatively into #value, so a property
|
|
@@ -7924,10 +7950,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7924
7950
|
if (this.dropdown.isPopoverVisible) {
|
|
7925
7951
|
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
7926
7952
|
} else {
|
|
7927
|
-
// Typeahead-on-closed
|
|
7928
|
-
//
|
|
7929
|
-
//
|
|
7930
|
-
//
|
|
7953
|
+
// Typeahead-on-closed calls updateActiveOption() before show(), so
|
|
7954
|
+
// this handler runs with isPopoverVisible still false. queueMicrotask
|
|
7955
|
+
// is safe because show() → showBib() flips isPopoverVisible and
|
|
7956
|
+
// dialog.showModal() both run synchronously in the same task; the
|
|
7957
|
+
// microtask queue only drains once _handleTypeahead unwinds, by
|
|
7958
|
+
// which point _getAnnouncementRoot() resolves to the bib's shadow
|
|
7959
|
+
// root inside the now-open modal. Do NOT switch to auroDropdown-toggled
|
|
7960
|
+
// — it fires before showModal(), landing the announcement in the
|
|
7961
|
+
// host root while the dialog is still not-yet-modal.
|
|
7931
7962
|
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
7932
7963
|
}
|
|
7933
7964
|
}
|
|
@@ -8321,6 +8352,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8321
8352
|
}
|
|
8322
8353
|
|
|
8323
8354
|
if (changedProperties.has('value')) {
|
|
8355
|
+
// A value change ends the current interaction — whether it came from a
|
|
8356
|
+
// user commit, programmatic assignment, or reset(). Clear the buffer so
|
|
8357
|
+
// a stale prefix does not concatenate onto the next keystroke while the
|
|
8358
|
+
// host still has focus (the blur listener would otherwise be the only
|
|
8359
|
+
// focus-retained clear point, and hideBib() below does not blur).
|
|
8360
|
+
this._clearTypeaheadBuffer();
|
|
8361
|
+
|
|
8324
8362
|
this.setMenuValue(this.value);
|
|
8325
8363
|
|
|
8326
8364
|
this._updateNativeSelect();
|
|
@@ -8376,6 +8414,9 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8376
8414
|
* @returns {void}
|
|
8377
8415
|
*/
|
|
8378
8416
|
reset() {
|
|
8417
|
+
// Defense-in-depth: updated()'s value-change branch also clears, but
|
|
8418
|
+
// reset-to-same-value (e.g. undefined → undefined) skips that path.
|
|
8419
|
+
this._clearTypeaheadBuffer();
|
|
8379
8420
|
this.menu.reset();
|
|
8380
8421
|
this.validation.reset(this);
|
|
8381
8422
|
}
|
|
@@ -8398,8 +8439,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8398
8439
|
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
8399
8440
|
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
8400
8441
|
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
8401
|
-
// form control even with aria-hidden/tabindex=-1
|
|
8402
|
-
|
|
8442
|
+
// form control even with aria-hidden/tabindex=-1, so revert to the expected
|
|
8443
|
+
// mirror (formattedValue[0]) rather than letting the native select drift and
|
|
8444
|
+
// silently submit the autofilled scalar under `name`.
|
|
8445
|
+
if (this.multiSelect) {
|
|
8446
|
+
this._updateNativeSelect();
|
|
8447
|
+
return;
|
|
8448
|
+
}
|
|
8403
8449
|
|
|
8404
8450
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
8405
8451
|
if (!selectedOption) return;
|