@aurodesignsystem-dev/auro-formkit 0.0.0-pr1530.0 → 0.0.0-pr1530.2
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 +42 -29
- package/components/combobox/demo/getting-started.min.js +42 -29
- package/components/combobox/demo/index.min.js +42 -29
- package/components/combobox/dist/index.js +42 -29
- package/components/combobox/dist/registered.js +42 -29
- 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/accessibility.md +7 -7
- package/components/datepicker/demo/customize.min.js +121 -47
- package/components/datepicker/demo/index.min.js +121 -47
- package/components/datepicker/demo/keyboard-behavior.md +3 -3
- package/components/datepicker/demo/voiceover.md +3 -3
- package/components/datepicker/demo/why-datepicker.md +2 -2
- package/components/datepicker/dist/auro-calendar-cell.d.ts +9 -0
- package/components/datepicker/dist/auro-calendar.d.ts +9 -0
- package/components/datepicker/dist/index.js +121 -47
- package/components/datepicker/dist/registered.js +121 -47
- 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 +269 -123
- package/components/form/demo/getting-started.min.js +269 -123
- package/components/form/demo/index.min.js +269 -123
- package/components/form/demo/registerDemoDeps.min.js +269 -123
- package/components/input/demo/customize.min.js +40 -27
- package/components/input/demo/getting-started.min.js +40 -27
- package/components/input/demo/index.min.js +40 -27
- package/components/input/dist/base-input.d.ts +20 -4
- package/components/input/dist/index.js +40 -27
- package/components/input/dist/registered.js +40 -27
- 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 +427 -343
- package/package.json +1 -1
|
@@ -10599,14 +10599,16 @@ 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;
|
|
10602
10606
|
this.max = undefined;
|
|
10603
10607
|
this.maxLength = undefined;
|
|
10604
10608
|
this.min = undefined;
|
|
10605
10609
|
this.minLength = undefined;
|
|
10606
10610
|
this.noValidate = false;
|
|
10607
10611
|
this.onDark = false;
|
|
10608
|
-
// Raw values returned from the input mask before model normalization.
|
|
10609
|
-
this._rawMaskValue = undefined;
|
|
10610
10612
|
this.required = false;
|
|
10611
10613
|
this.setCustomValidityForType = undefined;
|
|
10612
10614
|
// Credit Card is intentionally excluded — its mask manages the cursor
|
|
@@ -10764,7 +10766,8 @@ class BaseInput extends AuroElement {
|
|
|
10764
10766
|
*/
|
|
10765
10767
|
format: {
|
|
10766
10768
|
type: String,
|
|
10767
|
-
reflect: true
|
|
10769
|
+
reflect: true,
|
|
10770
|
+
noAccessor: true
|
|
10768
10771
|
},
|
|
10769
10772
|
|
|
10770
10773
|
/**
|
|
@@ -11102,6 +11105,34 @@ class BaseInput extends AuroElement {
|
|
|
11102
11105
|
return this.max && dateFormatter.isValidDate(this.max) ? dateFormatter.stringToDateInstance(this.max) : undefined;
|
|
11103
11106
|
}
|
|
11104
11107
|
|
|
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 ? value.toLowerCase() : value;
|
|
11120
|
+
this._userSetFormat = Boolean(value);
|
|
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 ? value.toLowerCase() : value;
|
|
11133
|
+
this.requestUpdate('format', oldValue);
|
|
11134
|
+
}
|
|
11135
|
+
|
|
11105
11136
|
connectedCallback() {
|
|
11106
11137
|
super.connectedCallback();
|
|
11107
11138
|
|
|
@@ -11149,15 +11180,6 @@ class BaseInput extends AuroElement {
|
|
|
11149
11180
|
|
|
11150
11181
|
this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
|
|
11151
11182
|
|
|
11152
|
-
// Normalize the format token to lowercase so case-mixed values supplied
|
|
11153
|
-
// via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
|
|
11154
|
-
// lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
|
|
11155
|
-
// format silently misses the map and leaves `setCustomValidityForType`
|
|
11156
|
-
// unset.
|
|
11157
|
-
if (this.format) {
|
|
11158
|
-
this.format = this.format.toLowerCase();
|
|
11159
|
-
}
|
|
11160
|
-
|
|
11161
11183
|
// use validity message override if declared when initializing the component
|
|
11162
11184
|
if (this.hasAttribute('setCustomValidity')) {
|
|
11163
11185
|
this.ValidityMessageOverride = this.setCustomValidity;
|
|
@@ -11264,12 +11286,10 @@ class BaseInput extends AuroElement {
|
|
|
11264
11286
|
updated(changedProperties) {
|
|
11265
11287
|
super.updated(changedProperties);
|
|
11266
11288
|
|
|
11267
|
-
// When locale changes
|
|
11268
|
-
// Only runs if the current format is still the previous locale's default (not user-overridden).
|
|
11289
|
+
// When locale changes, auto-derive format unless the consumer explicitly set one.
|
|
11269
11290
|
if (changedProperties.has('locale') && !changedProperties.has('format') && this.type === 'date') {
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
this.format = getDateFormatFromLocale(this.locale);
|
|
11291
|
+
if (!this._userSetFormat) {
|
|
11292
|
+
this._setFormatFromLocale(getDateFormatFromLocale(this.locale));
|
|
11273
11293
|
}
|
|
11274
11294
|
}
|
|
11275
11295
|
|
|
@@ -11440,9 +11460,6 @@ class BaseInput extends AuroElement {
|
|
|
11440
11460
|
this.maskInstance.on('accept', () => {
|
|
11441
11461
|
if (this._configuringMask) return;
|
|
11442
11462
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11443
|
-
if (this.type === "date") {
|
|
11444
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11445
|
-
}
|
|
11446
11463
|
});
|
|
11447
11464
|
|
|
11448
11465
|
// Mask fires 'complete' on the restore step below for any value that
|
|
@@ -11450,9 +11467,6 @@ class BaseInput extends AuroElement {
|
|
|
11450
11467
|
this.maskInstance.on('complete', () => {
|
|
11451
11468
|
if (this._configuringMask) return;
|
|
11452
11469
|
this.value = this.util.toModelValue(this.maskInstance.value, this.format);
|
|
11453
|
-
if (this.type === "date") {
|
|
11454
|
-
this._rawMaskValue = this.maskInstance.value;
|
|
11455
|
-
}
|
|
11456
11470
|
});
|
|
11457
11471
|
|
|
11458
11472
|
// Write existingValue through the mask (not the input directly) so
|
|
@@ -11689,8 +11703,7 @@ class BaseInput extends AuroElement {
|
|
|
11689
11703
|
|
|
11690
11704
|
// Set default date format if type=date and no format is defined
|
|
11691
11705
|
if (this.type === "date" && !this.format) {
|
|
11692
|
-
|
|
11693
|
-
this.format = this.util.getDateMaskFromLocale().toLowerCase();
|
|
11706
|
+
this._setFormatFromLocale(this.util.getDateMaskFromLocale().toLowerCase());
|
|
11694
11707
|
this.util.updateFormat(this.format);
|
|
11695
11708
|
}
|
|
11696
11709
|
}
|
|
@@ -11719,7 +11732,7 @@ class BaseInput extends AuroElement {
|
|
|
11719
11732
|
const creditCard = this.matchInputValueToCreditCard();
|
|
11720
11733
|
const previousFormat = this.format;
|
|
11721
11734
|
|
|
11722
|
-
this.
|
|
11735
|
+
this._setFormatFromLocale(creditCard.maskFormat);
|
|
11723
11736
|
|
|
11724
11737
|
this.maxLength = creditCard.formatLength;
|
|
11725
11738
|
this.minLength = creditCard.formatMinLength;
|
|
@@ -12193,7 +12206,7 @@ class AuroHelpText extends LitElement {
|
|
|
12193
12206
|
}
|
|
12194
12207
|
}
|
|
12195
12208
|
|
|
12196
|
-
var formkitVersion = '
|
|
12209
|
+
var formkitVersion = '202607022225';
|
|
12197
12210
|
|
|
12198
12211
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12199
12212
|
// 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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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 = '202607022225';
|
|
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;
|