@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
|
@@ -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;
|
|
@@ -431,6 +431,12 @@ export class AuroSelect extends AuroElement {
|
|
|
431
431
|
private _getAnnouncementRoot;
|
|
432
432
|
/**
|
|
433
433
|
* Binds all behavior needed to the menu after rendering.
|
|
434
|
+
*
|
|
435
|
+
* The `<auro-menu>` reference is captured once and not re-targeted on
|
|
436
|
+
* `slotchange`. Runtime option mutations are covered via
|
|
437
|
+
* `auroMenu-optionsChange`, so swap options inside the menu freely; do not
|
|
438
|
+
* swap the `<auro-menu>` element itself under a live select — remount the
|
|
439
|
+
* parent `<auro-select>` instead.
|
|
434
440
|
* @private
|
|
435
441
|
* @returns {void}
|
|
436
442
|
*/
|
|
@@ -861,9 +861,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
861
861
|
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
862
862
|
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
863
863
|
*/
|
|
864
|
-
function getEnabledOptions(menu) {
|
|
865
|
-
return (menu?.options || []).filter((option) => !option.disabled);
|
|
866
|
-
}
|
|
867
864
|
|
|
868
865
|
/**
|
|
869
866
|
* Returns the active (selectable + visible) options for type-ahead navigation.
|
|
@@ -933,8 +930,10 @@ const selectKeyboardStrategy = {
|
|
|
933
930
|
End(component, evt, ctx) {
|
|
934
931
|
evt.preventDefault();
|
|
935
932
|
evt.stopPropagation();
|
|
936
|
-
// `pop()` is safe here:
|
|
937
|
-
|
|
933
|
+
// `pop()` is safe here: getActiveOptions returns a fresh filtered array.
|
|
934
|
+
// Uses "active" (not "enabled") so hidden and static rows — which a screen
|
|
935
|
+
// reader must not announce as focused — are skipped.
|
|
936
|
+
const lastOption = getActiveOptions(component.menu).pop();
|
|
938
937
|
if (!lastOption) {
|
|
939
938
|
return;
|
|
940
939
|
}
|
|
@@ -965,7 +964,7 @@ const selectKeyboardStrategy = {
|
|
|
965
964
|
Home(component, evt, ctx) {
|
|
966
965
|
evt.preventDefault();
|
|
967
966
|
evt.stopPropagation();
|
|
968
|
-
const [firstOption] =
|
|
967
|
+
const [firstOption] = getActiveOptions(component.menu);
|
|
969
968
|
if (!firstOption) {
|
|
970
969
|
return;
|
|
971
970
|
}
|
|
@@ -990,6 +989,15 @@ const selectKeyboardStrategy = {
|
|
|
990
989
|
},
|
|
991
990
|
|
|
992
991
|
default(component, evt, ctx) {
|
|
992
|
+
// Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts
|
|
993
|
+
// (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead
|
|
994
|
+
// or toggle the bib. Native <select> ignores modified keys.
|
|
995
|
+
// ArrowUp/ArrowDown handle modifier+arrow explicitly above; this
|
|
996
|
+
// guard only affects the default (printable/Space) branch.
|
|
997
|
+
if (evt.ctrlKey || evt.metaKey || evt.altKey) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
|
|
993
1001
|
// Space resolves to either typeahead-buffer extension or bib toggle
|
|
994
1002
|
// depending on whether a type-ahead buffer is active. Mirrors native
|
|
995
1003
|
// <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
|
|
@@ -4920,7 +4928,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
4920
4928
|
}
|
|
4921
4929
|
};
|
|
4922
4930
|
|
|
4923
|
-
var formkitVersion$1 = '
|
|
4931
|
+
var formkitVersion$1 = '202607022225';
|
|
4924
4932
|
|
|
4925
4933
|
class AuroElement extends LitElement {
|
|
4926
4934
|
static get properties() {
|
|
@@ -6959,7 +6967,7 @@ class AuroHelpText extends LitElement {
|
|
|
6959
6967
|
}
|
|
6960
6968
|
}
|
|
6961
6969
|
|
|
6962
|
-
var formkitVersion = '
|
|
6970
|
+
var formkitVersion = '202607022225';
|
|
6963
6971
|
|
|
6964
6972
|
var styleCss = css`.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}`;
|
|
6965
6973
|
|
|
@@ -7523,8 +7531,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7523
7531
|
} else if (this.multiSelect && Array.isArray(this.optionSelected) && this.optionSelected.length > 0) {
|
|
7524
7532
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7525
7533
|
} else {
|
|
7526
|
-
// If no activeOption has yet to be set,
|
|
7527
|
-
|
|
7534
|
+
// If no activeOption has yet to be set, make the first active option
|
|
7535
|
+
// (non-disabled, non-hidden, non-static) active by default. "Active" —
|
|
7536
|
+
// not just "enabled" — so hidden rows and static placeholders never
|
|
7537
|
+
// land in aria-activedescendant on open.
|
|
7538
|
+
const [firstActive] = getActiveOptions(this.menu);
|
|
7528
7539
|
this.menu.updateActiveOption(firstActive);
|
|
7529
7540
|
}
|
|
7530
7541
|
}
|
|
@@ -7770,6 +7781,12 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7770
7781
|
|
|
7771
7782
|
/**
|
|
7772
7783
|
* Binds all behavior needed to the menu after rendering.
|
|
7784
|
+
*
|
|
7785
|
+
* The `<auro-menu>` reference is captured once and not re-targeted on
|
|
7786
|
+
* `slotchange`. Runtime option mutations are covered via
|
|
7787
|
+
* `auroMenu-optionsChange`, so swap options inside the menu freely; do not
|
|
7788
|
+
* swap the `<auro-menu>` element itself under a live select — remount the
|
|
7789
|
+
* parent `<auro-select>` instead.
|
|
7773
7790
|
* @private
|
|
7774
7791
|
* @returns {void}
|
|
7775
7792
|
*/
|
|
@@ -7828,6 +7845,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7828
7845
|
if (this.menu.optionSelected !== undefined) {
|
|
7829
7846
|
return;
|
|
7830
7847
|
}
|
|
7848
|
+
// Skip when the select is already cleared (valueless click with no
|
|
7849
|
+
// prior selection): value/optionSelected are already empty and there
|
|
7850
|
+
// is no stale trigger text to refresh, so updateDisplayedValue would
|
|
7851
|
+
// just churn the DOM and request a needless dropdown re-render.
|
|
7852
|
+
const hasStaleState = this.value !== undefined ||
|
|
7853
|
+
(this.multiSelect ? this.optionSelected?.length > 0 : this.optionSelected !== undefined);
|
|
7854
|
+
if (!hasStaleState) {
|
|
7855
|
+
return;
|
|
7856
|
+
}
|
|
7831
7857
|
this.value = undefined;
|
|
7832
7858
|
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7833
7859
|
// The trigger label is rendered imperatively into #value, so a property
|
|
@@ -7857,10 +7883,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7857
7883
|
if (this.dropdown.isPopoverVisible) {
|
|
7858
7884
|
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
7859
7885
|
} else {
|
|
7860
|
-
// Typeahead-on-closed
|
|
7861
|
-
//
|
|
7862
|
-
//
|
|
7863
|
-
//
|
|
7886
|
+
// Typeahead-on-closed calls updateActiveOption() before show(), so
|
|
7887
|
+
// this handler runs with isPopoverVisible still false. queueMicrotask
|
|
7888
|
+
// is safe because show() → showBib() flips isPopoverVisible and
|
|
7889
|
+
// dialog.showModal() both run synchronously in the same task; the
|
|
7890
|
+
// microtask queue only drains once _handleTypeahead unwinds, by
|
|
7891
|
+
// which point _getAnnouncementRoot() resolves to the bib's shadow
|
|
7892
|
+
// root inside the now-open modal. Do NOT switch to auroDropdown-toggled
|
|
7893
|
+
// — it fires before showModal(), landing the announcement in the
|
|
7894
|
+
// host root while the dialog is still not-yet-modal.
|
|
7864
7895
|
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
7865
7896
|
}
|
|
7866
7897
|
}
|
|
@@ -8254,6 +8285,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8254
8285
|
}
|
|
8255
8286
|
|
|
8256
8287
|
if (changedProperties.has('value')) {
|
|
8288
|
+
// A value change ends the current interaction — whether it came from a
|
|
8289
|
+
// user commit, programmatic assignment, or reset(). Clear the buffer so
|
|
8290
|
+
// a stale prefix does not concatenate onto the next keystroke while the
|
|
8291
|
+
// host still has focus (the blur listener would otherwise be the only
|
|
8292
|
+
// focus-retained clear point, and hideBib() below does not blur).
|
|
8293
|
+
this._clearTypeaheadBuffer();
|
|
8294
|
+
|
|
8257
8295
|
this.setMenuValue(this.value);
|
|
8258
8296
|
|
|
8259
8297
|
this._updateNativeSelect();
|
|
@@ -8309,6 +8347,9 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8309
8347
|
* @returns {void}
|
|
8310
8348
|
*/
|
|
8311
8349
|
reset() {
|
|
8350
|
+
// Defense-in-depth: updated()'s value-change branch also clears, but
|
|
8351
|
+
// reset-to-same-value (e.g. undefined → undefined) skips that path.
|
|
8352
|
+
this._clearTypeaheadBuffer();
|
|
8312
8353
|
this.menu.reset();
|
|
8313
8354
|
this.validation.reset(this);
|
|
8314
8355
|
}
|
|
@@ -8331,8 +8372,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8331
8372
|
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
8332
8373
|
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
8333
8374
|
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
8334
|
-
// form control even with aria-hidden/tabindex=-1
|
|
8335
|
-
|
|
8375
|
+
// form control even with aria-hidden/tabindex=-1, so revert to the expected
|
|
8376
|
+
// mirror (formattedValue[0]) rather than letting the native select drift and
|
|
8377
|
+
// silently submit the autofilled scalar under `name`.
|
|
8378
|
+
if (this.multiSelect) {
|
|
8379
|
+
this._updateNativeSelect();
|
|
8380
|
+
return;
|
|
8381
|
+
}
|
|
8336
8382
|
|
|
8337
8383
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
8338
8384
|
if (!selectedOption) return;
|
|
@@ -861,9 +861,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
861
861
|
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
862
862
|
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
863
863
|
*/
|
|
864
|
-
function getEnabledOptions(menu) {
|
|
865
|
-
return (menu?.options || []).filter((option) => !option.disabled);
|
|
866
|
-
}
|
|
867
864
|
|
|
868
865
|
/**
|
|
869
866
|
* Returns the active (selectable + visible) options for type-ahead navigation.
|
|
@@ -933,8 +930,10 @@ const selectKeyboardStrategy = {
|
|
|
933
930
|
End(component, evt, ctx) {
|
|
934
931
|
evt.preventDefault();
|
|
935
932
|
evt.stopPropagation();
|
|
936
|
-
// `pop()` is safe here:
|
|
937
|
-
|
|
933
|
+
// `pop()` is safe here: getActiveOptions returns a fresh filtered array.
|
|
934
|
+
// Uses "active" (not "enabled") so hidden and static rows — which a screen
|
|
935
|
+
// reader must not announce as focused — are skipped.
|
|
936
|
+
const lastOption = getActiveOptions(component.menu).pop();
|
|
938
937
|
if (!lastOption) {
|
|
939
938
|
return;
|
|
940
939
|
}
|
|
@@ -965,7 +964,7 @@ const selectKeyboardStrategy = {
|
|
|
965
964
|
Home(component, evt, ctx) {
|
|
966
965
|
evt.preventDefault();
|
|
967
966
|
evt.stopPropagation();
|
|
968
|
-
const [firstOption] =
|
|
967
|
+
const [firstOption] = getActiveOptions(component.menu);
|
|
969
968
|
if (!firstOption) {
|
|
970
969
|
return;
|
|
971
970
|
}
|
|
@@ -990,6 +989,15 @@ const selectKeyboardStrategy = {
|
|
|
990
989
|
},
|
|
991
990
|
|
|
992
991
|
default(component, evt, ctx) {
|
|
992
|
+
// Ignore keys chorded with Ctrl/Meta/Alt so browser/OS shortcuts
|
|
993
|
+
// (Cmd+C, Ctrl+V, Alt+X, Cmd+Space, …) don't leak into typeahead
|
|
994
|
+
// or toggle the bib. Native <select> ignores modified keys.
|
|
995
|
+
// ArrowUp/ArrowDown handle modifier+arrow explicitly above; this
|
|
996
|
+
// guard only affects the default (printable/Space) branch.
|
|
997
|
+
if (evt.ctrlKey || evt.metaKey || evt.altKey) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
|
|
993
1001
|
// Space resolves to either typeahead-buffer extension or bib toggle
|
|
994
1002
|
// depending on whether a type-ahead buffer is active. Mirrors native
|
|
995
1003
|
// <select> and the WAI-ARIA APG Listbox guidance: mid-typeahead space
|
|
@@ -4920,7 +4928,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
4920
4928
|
}
|
|
4921
4929
|
};
|
|
4922
4930
|
|
|
4923
|
-
var formkitVersion$1 = '
|
|
4931
|
+
var formkitVersion$1 = '202607022225';
|
|
4924
4932
|
|
|
4925
4933
|
class AuroElement extends LitElement {
|
|
4926
4934
|
static get properties() {
|
|
@@ -6959,7 +6967,7 @@ class AuroHelpText extends LitElement {
|
|
|
6959
6967
|
}
|
|
6960
6968
|
}
|
|
6961
6969
|
|
|
6962
|
-
var formkitVersion = '
|
|
6970
|
+
var formkitVersion = '202607022225';
|
|
6963
6971
|
|
|
6964
6972
|
var styleCss = css`.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}`;
|
|
6965
6973
|
|
|
@@ -7523,8 +7531,11 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7523
7531
|
} else if (this.multiSelect && Array.isArray(this.optionSelected) && this.optionSelected.length > 0) {
|
|
7524
7532
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7525
7533
|
} else {
|
|
7526
|
-
// If no activeOption has yet to be set,
|
|
7527
|
-
|
|
7534
|
+
// If no activeOption has yet to be set, make the first active option
|
|
7535
|
+
// (non-disabled, non-hidden, non-static) active by default. "Active" —
|
|
7536
|
+
// not just "enabled" — so hidden rows and static placeholders never
|
|
7537
|
+
// land in aria-activedescendant on open.
|
|
7538
|
+
const [firstActive] = getActiveOptions(this.menu);
|
|
7528
7539
|
this.menu.updateActiveOption(firstActive);
|
|
7529
7540
|
}
|
|
7530
7541
|
}
|
|
@@ -7770,6 +7781,12 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7770
7781
|
|
|
7771
7782
|
/**
|
|
7772
7783
|
* Binds all behavior needed to the menu after rendering.
|
|
7784
|
+
*
|
|
7785
|
+
* The `<auro-menu>` reference is captured once and not re-targeted on
|
|
7786
|
+
* `slotchange`. Runtime option mutations are covered via
|
|
7787
|
+
* `auroMenu-optionsChange`, so swap options inside the menu freely; do not
|
|
7788
|
+
* swap the `<auro-menu>` element itself under a live select — remount the
|
|
7789
|
+
* parent `<auro-select>` instead.
|
|
7773
7790
|
* @private
|
|
7774
7791
|
* @returns {void}
|
|
7775
7792
|
*/
|
|
@@ -7828,6 +7845,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7828
7845
|
if (this.menu.optionSelected !== undefined) {
|
|
7829
7846
|
return;
|
|
7830
7847
|
}
|
|
7848
|
+
// Skip when the select is already cleared (valueless click with no
|
|
7849
|
+
// prior selection): value/optionSelected are already empty and there
|
|
7850
|
+
// is no stale trigger text to refresh, so updateDisplayedValue would
|
|
7851
|
+
// just churn the DOM and request a needless dropdown re-render.
|
|
7852
|
+
const hasStaleState = this.value !== undefined ||
|
|
7853
|
+
(this.multiSelect ? this.optionSelected?.length > 0 : this.optionSelected !== undefined);
|
|
7854
|
+
if (!hasStaleState) {
|
|
7855
|
+
return;
|
|
7856
|
+
}
|
|
7831
7857
|
this.value = undefined;
|
|
7832
7858
|
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7833
7859
|
// The trigger label is rendered imperatively into #value, so a property
|
|
@@ -7857,10 +7883,15 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7857
7883
|
if (this.dropdown.isPopoverVisible) {
|
|
7858
7884
|
announceToScreenReader(this._getAnnouncementRoot(), message);
|
|
7859
7885
|
} else {
|
|
7860
|
-
// Typeahead-on-closed
|
|
7861
|
-
//
|
|
7862
|
-
//
|
|
7863
|
-
//
|
|
7886
|
+
// Typeahead-on-closed calls updateActiveOption() before show(), so
|
|
7887
|
+
// this handler runs with isPopoverVisible still false. queueMicrotask
|
|
7888
|
+
// is safe because show() → showBib() flips isPopoverVisible and
|
|
7889
|
+
// dialog.showModal() both run synchronously in the same task; the
|
|
7890
|
+
// microtask queue only drains once _handleTypeahead unwinds, by
|
|
7891
|
+
// which point _getAnnouncementRoot() resolves to the bib's shadow
|
|
7892
|
+
// root inside the now-open modal. Do NOT switch to auroDropdown-toggled
|
|
7893
|
+
// — it fires before showModal(), landing the announcement in the
|
|
7894
|
+
// host root while the dialog is still not-yet-modal.
|
|
7864
7895
|
queueMicrotask(() => announceToScreenReader(this._getAnnouncementRoot(), message));
|
|
7865
7896
|
}
|
|
7866
7897
|
}
|
|
@@ -8254,6 +8285,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8254
8285
|
}
|
|
8255
8286
|
|
|
8256
8287
|
if (changedProperties.has('value')) {
|
|
8288
|
+
// A value change ends the current interaction — whether it came from a
|
|
8289
|
+
// user commit, programmatic assignment, or reset(). Clear the buffer so
|
|
8290
|
+
// a stale prefix does not concatenate onto the next keystroke while the
|
|
8291
|
+
// host still has focus (the blur listener would otherwise be the only
|
|
8292
|
+
// focus-retained clear point, and hideBib() below does not blur).
|
|
8293
|
+
this._clearTypeaheadBuffer();
|
|
8294
|
+
|
|
8257
8295
|
this.setMenuValue(this.value);
|
|
8258
8296
|
|
|
8259
8297
|
this._updateNativeSelect();
|
|
@@ -8309,6 +8347,9 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8309
8347
|
* @returns {void}
|
|
8310
8348
|
*/
|
|
8311
8349
|
reset() {
|
|
8350
|
+
// Defense-in-depth: updated()'s value-change branch also clears, but
|
|
8351
|
+
// reset-to-same-value (e.g. undefined → undefined) skips that path.
|
|
8352
|
+
this._clearTypeaheadBuffer();
|
|
8312
8353
|
this.menu.reset();
|
|
8313
8354
|
this.validation.reset(this);
|
|
8314
8355
|
}
|
|
@@ -8331,8 +8372,13 @@ class AuroSelect extends AuroElement$1 {
|
|
|
8331
8372
|
// Hidden native <select> has no `multiple` attribute, so any change it fires
|
|
8332
8373
|
// is a single raw value — applying it in multiSelect mode would collapse the
|
|
8333
8374
|
// JSON-array `value` shape. Bfcache/autofill can reach this on a name-bearing
|
|
8334
|
-
// form control even with aria-hidden/tabindex=-1
|
|
8335
|
-
|
|
8375
|
+
// form control even with aria-hidden/tabindex=-1, so revert to the expected
|
|
8376
|
+
// mirror (formattedValue[0]) rather than letting the native select drift and
|
|
8377
|
+
// silently submit the autofilled scalar under `name`.
|
|
8378
|
+
if (this.multiSelect) {
|
|
8379
|
+
this._updateNativeSelect();
|
|
8380
|
+
return;
|
|
8381
|
+
}
|
|
8336
8382
|
|
|
8337
8383
|
const selectedOption = event.target.options[event.target.selectedIndex];
|
|
8338
8384
|
if (!selectedOption) return;
|