@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.6 → 0.0.0-pr1498.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkbox/demo/customize.min.js +2 -2
- package/components/checkbox/demo/getting-started.min.js +2 -2
- package/components/checkbox/demo/index.min.js +2 -2
- package/components/checkbox/dist/index.js +2 -2
- package/components/checkbox/dist/registered.js +2 -2
- package/components/combobox/demo/customize.md +7 -3
- package/components/combobox/demo/customize.min.js +1438 -1668
- package/components/combobox/demo/getting-started.min.js +1440 -1670
- package/components/combobox/demo/index.min.js +1440 -1670
- package/components/combobox/dist/auro-combobox.d.ts +5 -0
- package/components/combobox/dist/index.js +485 -140
- package/components/combobox/dist/registered.js +485 -140
- package/components/counter/demo/customize.min.js +20 -3
- package/components/counter/demo/index.min.js +20 -3
- package/components/counter/dist/index.js +5447 -192
- package/components/counter/dist/registered.js +5447 -192
- package/components/datepicker/demo/customize.min.js +149 -58
- package/components/datepicker/demo/index.min.js +149 -58
- package/components/datepicker/dist/index.js +149 -58
- package/components/datepicker/dist/registered.js +149 -58
- package/components/dropdown/demo/customize.min.js +18 -1
- package/components/dropdown/demo/getting-started.min.js +18 -1
- package/components/dropdown/demo/index.min.js +18 -1
- package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
- package/components/dropdown/dist/index.js +18 -1
- package/components/dropdown/dist/registered.js +18 -1
- package/components/form/demo/customize.min.js +7910 -7909
- package/components/form/demo/getting-started.min.js +7910 -7909
- package/components/form/demo/index.min.js +7910 -7909
- package/components/form/demo/registerDemoDeps.min.js +7872 -7871
- package/components/input/demo/customize.min.js +131 -56
- package/components/input/demo/getting-started.min.js +131 -56
- package/components/input/demo/index.min.js +131 -56
- package/components/input/dist/base-input.d.ts +16 -0
- package/components/input/dist/index.js +131 -56
- package/components/input/dist/registered.js +131 -56
- package/components/menu/demo/api.md +41 -45
- package/components/menu/demo/customize.md +0 -28
- package/components/menu/demo/index.min.js +779 -1354
- package/components/menu/dist/auro-menu.d.ts +95 -110
- package/components/menu/dist/auro-menuoption.d.ts +32 -138
- package/components/menu/dist/index.js +753 -1308
- package/components/menu/dist/registered.js +765 -1308
- package/components/radio/demo/customize.min.js +2 -2
- package/components/radio/demo/getting-started.min.js +2 -2
- package/components/radio/demo/index.min.js +2 -2
- package/components/radio/dist/index.js +2 -2
- package/components/radio/dist/registered.js +2 -2
- package/components/select/demo/customize.md +7 -3
- package/components/select/demo/customize.min.js +1088 -1615
- package/components/select/demo/getting-started.min.js +1088 -1615
- package/components/select/demo/index.min.js +1088 -1615
- package/components/select/dist/index.js +63 -15
- package/components/select/dist/registered.js +63 -15
- package/components/select/dist/selectUtils.d.ts +12 -0
- package/custom-elements.json +379 -1025
- package/package.json +1 -1
- package/components/menu/dist/auro-menu.context.d.ts +0 -238
|
@@ -623,7 +623,7 @@ class AuroFormValidation {
|
|
|
623
623
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
|
|
624
624
|
const input = elem.renderRoot.querySelector('input');
|
|
625
625
|
|
|
626
|
-
if (input.validationMessage.length > 0) {
|
|
626
|
+
if (input && input.validationMessage.length > 0) {
|
|
627
627
|
elem.errorMessage = input.validationMessage;
|
|
628
628
|
}
|
|
629
629
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
@@ -835,6 +835,21 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
835
835
|
}
|
|
836
836
|
}
|
|
837
837
|
|
|
838
|
+
/**
|
|
839
|
+
* Returns the enabled (non-disabled) options for a menu, safely.
|
|
840
|
+
*
|
|
841
|
+
* Auro-menu's `options` getter returns `undefined` when the menu has no items
|
|
842
|
+
* (initItems sets `items` to undefined for empty menus). Callers that reach for
|
|
843
|
+
* `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
|
|
844
|
+
* empty case to `[]` so array methods are always safe.
|
|
845
|
+
*
|
|
846
|
+
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
847
|
+
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
848
|
+
*/
|
|
849
|
+
function getEnabledOptions(menu) {
|
|
850
|
+
return (menu?.options || []).filter((option) => !option.disabled);
|
|
851
|
+
}
|
|
852
|
+
|
|
838
853
|
/* eslint-disable new-cap */
|
|
839
854
|
|
|
840
855
|
const selectKeyboardStrategy = {
|
|
@@ -883,7 +898,8 @@ const selectKeyboardStrategy = {
|
|
|
883
898
|
}
|
|
884
899
|
evt.preventDefault();
|
|
885
900
|
evt.stopPropagation();
|
|
886
|
-
|
|
901
|
+
// `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
|
|
902
|
+
const lastOption = getEnabledOptions(component.menu).pop();
|
|
887
903
|
if (lastOption) {
|
|
888
904
|
component.menu.updateActiveOption(lastOption);
|
|
889
905
|
}
|
|
@@ -905,7 +921,7 @@ const selectKeyboardStrategy = {
|
|
|
905
921
|
}
|
|
906
922
|
evt.preventDefault();
|
|
907
923
|
evt.stopPropagation();
|
|
908
|
-
const firstOption = component.menu
|
|
924
|
+
const [firstOption] = getEnabledOptions(component.menu);
|
|
909
925
|
if (firstOption) {
|
|
910
926
|
component.menu.updateActiveOption(firstOption);
|
|
911
927
|
}
|
|
@@ -4846,7 +4862,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
4846
4862
|
}
|
|
4847
4863
|
};
|
|
4848
4864
|
|
|
4849
|
-
var formkitVersion$1 = '
|
|
4865
|
+
var formkitVersion$1 = '202606100232';
|
|
4850
4866
|
|
|
4851
4867
|
class AuroElement extends LitElement {
|
|
4852
4868
|
static get properties() {
|
|
@@ -5704,6 +5720,15 @@ class AuroDropdown extends AuroElement {
|
|
|
5704
5720
|
this.focusTrap = undefined;
|
|
5705
5721
|
}
|
|
5706
5722
|
|
|
5723
|
+
// Restore any focus-loss suppression we installed for a prior trap state.
|
|
5724
|
+
// The desktopModal trap moves focus into the bib via RAF, which would
|
|
5725
|
+
// otherwise trip AuroFloatingUI.handleFocusLoss (a popover-top-layer
|
|
5726
|
+
// timing issue makes its :focus-within guard miss the focused button).
|
|
5727
|
+
if (this._priorNoHideOnFocusLoss !== undefined) {
|
|
5728
|
+
this.noHideOnThisFocusLoss = this._priorNoHideOnFocusLoss;
|
|
5729
|
+
this._priorNoHideOnFocusLoss = undefined;
|
|
5730
|
+
}
|
|
5731
|
+
|
|
5707
5732
|
if (this.isPopoverVisible) {
|
|
5708
5733
|
if (!this.isBibFullscreen) {
|
|
5709
5734
|
if (this.desktopModal) {
|
|
@@ -5779,6 +5804,14 @@ class AuroDropdown extends AuroElement {
|
|
|
5779
5804
|
};
|
|
5780
5805
|
this.addEventListener('keydown', this._bibTabHandler);
|
|
5781
5806
|
|
|
5807
|
+
// Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
|
|
5808
|
+
// desktopModal trap owns focus management. Without this, the very
|
|
5809
|
+
// first focus move into the bib (from the RAF below) triggers
|
|
5810
|
+
// handleFocusLoss → hideBib, tearing down the trap before the
|
|
5811
|
+
// user can press Tab.
|
|
5812
|
+
this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
|
|
5813
|
+
this.noHideOnThisFocusLoss = true;
|
|
5814
|
+
|
|
5782
5815
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
5783
5816
|
requestAnimationFrame(() => {
|
|
5784
5817
|
const focusables = getFocusableElements(this.bibContent);
|
|
@@ -6841,7 +6874,7 @@ class AuroHelpText extends LitElement {
|
|
|
6841
6874
|
}
|
|
6842
6875
|
}
|
|
6843
6876
|
|
|
6844
|
-
var formkitVersion = '
|
|
6877
|
+
var formkitVersion = '202606100232';
|
|
6845
6878
|
|
|
6846
6879
|
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}`;
|
|
6847
6880
|
|
|
@@ -7393,7 +7426,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7393
7426
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7394
7427
|
} else {
|
|
7395
7428
|
// If no activeOption has yet to be set, then make the first enabled option active by default
|
|
7396
|
-
const firstActive = this.menu
|
|
7429
|
+
const [firstActive] = getEnabledOptions(this.menu);
|
|
7397
7430
|
this.menu.updateActiveOption(firstActive);
|
|
7398
7431
|
}
|
|
7399
7432
|
}
|
|
@@ -7617,12 +7650,23 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7617
7650
|
this.menu.multiSelect = this.multiSelect;
|
|
7618
7651
|
}
|
|
7619
7652
|
|
|
7653
|
+
// Menu's items are populated by initItems() during its firstUpdated/slotchange.
|
|
7654
|
+
// Since the parent select's firstUpdated runs before the child menu's, call initItems()
|
|
7655
|
+
// here so renderNativeSelect can render the native <option> list on first paint.
|
|
7656
|
+
if (typeof this.menu.initItems === 'function') {
|
|
7657
|
+
this.menu.initItems();
|
|
7658
|
+
}
|
|
7620
7659
|
this.options = this.menu.options;
|
|
7621
7660
|
this.updateOptionPositions();
|
|
7622
7661
|
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
7623
7662
|
|
|
7624
|
-
this.menu.addEventListener("auroMenu-
|
|
7625
|
-
this.
|
|
7663
|
+
this.menu.addEventListener("auroMenu-selectValueFailure", () => {
|
|
7664
|
+
this.value = undefined;
|
|
7665
|
+
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7666
|
+
// The trigger label is rendered imperatively into #value, so a property
|
|
7667
|
+
// change alone won't clear it. Refresh so stale text doesn't linger when
|
|
7668
|
+
// a runtime value change fails to match any option.
|
|
7669
|
+
this.updateDisplayedValue();
|
|
7626
7670
|
});
|
|
7627
7671
|
|
|
7628
7672
|
this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
|
|
@@ -7644,16 +7688,20 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7644
7688
|
}
|
|
7645
7689
|
});
|
|
7646
7690
|
|
|
7647
|
-
this.menu.addEventListener('auroMenu-selectedOption', (
|
|
7691
|
+
this.menu.addEventListener('auroMenu-selectedOption', () => {
|
|
7648
7692
|
|
|
7649
7693
|
// Update the displayed value
|
|
7650
7694
|
this.updateDisplayedValue();
|
|
7651
7695
|
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
this.value = event.detail.stringValue;
|
|
7696
|
+
this.value = this.menu.value;
|
|
7655
7697
|
|
|
7656
|
-
|
|
7698
|
+
// Clone the multiselect array so external mutation of select.optionSelected
|
|
7699
|
+
// can't reach back into menu's internal state through a shared reference.
|
|
7700
|
+
let nextSelected = this.menu.optionSelected;
|
|
7701
|
+
if (this.multiSelect) {
|
|
7702
|
+
nextSelected = Array.isArray(nextSelected) ? [...nextSelected] : [];
|
|
7703
|
+
}
|
|
7704
|
+
this.optionSelected = nextSelected;
|
|
7657
7705
|
|
|
7658
7706
|
if (this.dropdown.isPopoverVisible && !this.multiSelect) {
|
|
7659
7707
|
this.dropdown.hide();
|
|
@@ -7662,7 +7710,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7662
7710
|
|
|
7663
7711
|
// Announce the selection after the dropdown closes so it isn't
|
|
7664
7712
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
7665
|
-
const selectedValue =
|
|
7713
|
+
const selectedValue = this.menu.currentLabel;
|
|
7666
7714
|
const announcementDelay = 300;
|
|
7667
7715
|
setTimeout(() => {
|
|
7668
7716
|
announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
@@ -7858,7 +7906,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7858
7906
|
|
|
7859
7907
|
setMenuValue(value) {
|
|
7860
7908
|
if (!this.menu) return;
|
|
7861
|
-
this.menu.value
|
|
7909
|
+
this.menu.selectByValue(value);
|
|
7862
7910
|
}
|
|
7863
7911
|
|
|
7864
7912
|
/**
|
|
@@ -623,7 +623,7 @@ class AuroFormValidation {
|
|
|
623
623
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-input') && elem.errorMessage === '') {
|
|
624
624
|
const input = elem.renderRoot.querySelector('input');
|
|
625
625
|
|
|
626
|
-
if (input.validationMessage.length > 0) {
|
|
626
|
+
if (input && input.validationMessage.length > 0) {
|
|
627
627
|
elem.errorMessage = input.validationMessage;
|
|
628
628
|
}
|
|
629
629
|
} else if (this.runtimeUtils.elementMatch(elem, 'auro-combobox') && elem.errorMessage === '') {
|
|
@@ -835,6 +835,21 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
835
835
|
}
|
|
836
836
|
}
|
|
837
837
|
|
|
838
|
+
/**
|
|
839
|
+
* Returns the enabled (non-disabled) options for a menu, safely.
|
|
840
|
+
*
|
|
841
|
+
* Auro-menu's `options` getter returns `undefined` when the menu has no items
|
|
842
|
+
* (initItems sets `items` to undefined for empty menus). Callers that reach for
|
|
843
|
+
* `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
|
|
844
|
+
* empty case to `[]` so array methods are always safe.
|
|
845
|
+
*
|
|
846
|
+
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
847
|
+
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
848
|
+
*/
|
|
849
|
+
function getEnabledOptions(menu) {
|
|
850
|
+
return (menu?.options || []).filter((option) => !option.disabled);
|
|
851
|
+
}
|
|
852
|
+
|
|
838
853
|
/* eslint-disable new-cap */
|
|
839
854
|
|
|
840
855
|
const selectKeyboardStrategy = {
|
|
@@ -883,7 +898,8 @@ const selectKeyboardStrategy = {
|
|
|
883
898
|
}
|
|
884
899
|
evt.preventDefault();
|
|
885
900
|
evt.stopPropagation();
|
|
886
|
-
|
|
901
|
+
// `pop()` is safe here: getEnabledOptions returns a fresh filtered array.
|
|
902
|
+
const lastOption = getEnabledOptions(component.menu).pop();
|
|
887
903
|
if (lastOption) {
|
|
888
904
|
component.menu.updateActiveOption(lastOption);
|
|
889
905
|
}
|
|
@@ -905,7 +921,7 @@ const selectKeyboardStrategy = {
|
|
|
905
921
|
}
|
|
906
922
|
evt.preventDefault();
|
|
907
923
|
evt.stopPropagation();
|
|
908
|
-
const firstOption = component.menu
|
|
924
|
+
const [firstOption] = getEnabledOptions(component.menu);
|
|
909
925
|
if (firstOption) {
|
|
910
926
|
component.menu.updateActiveOption(firstOption);
|
|
911
927
|
}
|
|
@@ -4846,7 +4862,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
4846
4862
|
}
|
|
4847
4863
|
};
|
|
4848
4864
|
|
|
4849
|
-
var formkitVersion$1 = '
|
|
4865
|
+
var formkitVersion$1 = '202606100232';
|
|
4850
4866
|
|
|
4851
4867
|
class AuroElement extends LitElement {
|
|
4852
4868
|
static get properties() {
|
|
@@ -5704,6 +5720,15 @@ class AuroDropdown extends AuroElement {
|
|
|
5704
5720
|
this.focusTrap = undefined;
|
|
5705
5721
|
}
|
|
5706
5722
|
|
|
5723
|
+
// Restore any focus-loss suppression we installed for a prior trap state.
|
|
5724
|
+
// The desktopModal trap moves focus into the bib via RAF, which would
|
|
5725
|
+
// otherwise trip AuroFloatingUI.handleFocusLoss (a popover-top-layer
|
|
5726
|
+
// timing issue makes its :focus-within guard miss the focused button).
|
|
5727
|
+
if (this._priorNoHideOnFocusLoss !== undefined) {
|
|
5728
|
+
this.noHideOnThisFocusLoss = this._priorNoHideOnFocusLoss;
|
|
5729
|
+
this._priorNoHideOnFocusLoss = undefined;
|
|
5730
|
+
}
|
|
5731
|
+
|
|
5707
5732
|
if (this.isPopoverVisible) {
|
|
5708
5733
|
if (!this.isBibFullscreen) {
|
|
5709
5734
|
if (this.desktopModal) {
|
|
@@ -5779,6 +5804,14 @@ class AuroDropdown extends AuroElement {
|
|
|
5779
5804
|
};
|
|
5780
5805
|
this.addEventListener('keydown', this._bibTabHandler);
|
|
5781
5806
|
|
|
5807
|
+
// Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
|
|
5808
|
+
// desktopModal trap owns focus management. Without this, the very
|
|
5809
|
+
// first focus move into the bib (from the RAF below) triggers
|
|
5810
|
+
// handleFocusLoss → hideBib, tearing down the trap before the
|
|
5811
|
+
// user can press Tab.
|
|
5812
|
+
this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
|
|
5813
|
+
this.noHideOnThisFocusLoss = true;
|
|
5814
|
+
|
|
5782
5815
|
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
5783
5816
|
requestAnimationFrame(() => {
|
|
5784
5817
|
const focusables = getFocusableElements(this.bibContent);
|
|
@@ -6841,7 +6874,7 @@ class AuroHelpText extends LitElement {
|
|
|
6841
6874
|
}
|
|
6842
6875
|
}
|
|
6843
6876
|
|
|
6844
|
-
var formkitVersion = '
|
|
6877
|
+
var formkitVersion = '202606100232';
|
|
6845
6878
|
|
|
6846
6879
|
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}`;
|
|
6847
6880
|
|
|
@@ -7393,7 +7426,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7393
7426
|
this.menu.updateActiveOption(this.optionSelected[0]);
|
|
7394
7427
|
} else {
|
|
7395
7428
|
// If no activeOption has yet to be set, then make the first enabled option active by default
|
|
7396
|
-
const firstActive = this.menu
|
|
7429
|
+
const [firstActive] = getEnabledOptions(this.menu);
|
|
7397
7430
|
this.menu.updateActiveOption(firstActive);
|
|
7398
7431
|
}
|
|
7399
7432
|
}
|
|
@@ -7617,12 +7650,23 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7617
7650
|
this.menu.multiSelect = this.multiSelect;
|
|
7618
7651
|
}
|
|
7619
7652
|
|
|
7653
|
+
// Menu's items are populated by initItems() during its firstUpdated/slotchange.
|
|
7654
|
+
// Since the parent select's firstUpdated runs before the child menu's, call initItems()
|
|
7655
|
+
// here so renderNativeSelect can render the native <option> list on first paint.
|
|
7656
|
+
if (typeof this.menu.initItems === 'function') {
|
|
7657
|
+
this.menu.initItems();
|
|
7658
|
+
}
|
|
7620
7659
|
this.options = this.menu.options;
|
|
7621
7660
|
this.updateOptionPositions();
|
|
7622
7661
|
this.menu.addEventListener("auroMenu-loadingChange", (event) => this.handleMenuLoadingChange(event));
|
|
7623
7662
|
|
|
7624
|
-
this.menu.addEventListener("auroMenu-
|
|
7625
|
-
this.
|
|
7663
|
+
this.menu.addEventListener("auroMenu-selectValueFailure", () => {
|
|
7664
|
+
this.value = undefined;
|
|
7665
|
+
this.optionSelected = this.multiSelect ? [] : undefined;
|
|
7666
|
+
// The trigger label is rendered imperatively into #value, so a property
|
|
7667
|
+
// change alone won't clear it. Refresh so stale text doesn't linger when
|
|
7668
|
+
// a runtime value change fails to match any option.
|
|
7669
|
+
this.updateDisplayedValue();
|
|
7626
7670
|
});
|
|
7627
7671
|
|
|
7628
7672
|
this.menu.addEventListener('auroMenu-activatedOption', (evt) => {
|
|
@@ -7644,16 +7688,20 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7644
7688
|
}
|
|
7645
7689
|
});
|
|
7646
7690
|
|
|
7647
|
-
this.menu.addEventListener('auroMenu-selectedOption', (
|
|
7691
|
+
this.menu.addEventListener('auroMenu-selectedOption', () => {
|
|
7648
7692
|
|
|
7649
7693
|
// Update the displayed value
|
|
7650
7694
|
this.updateDisplayedValue();
|
|
7651
7695
|
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
this.value = event.detail.stringValue;
|
|
7696
|
+
this.value = this.menu.value;
|
|
7655
7697
|
|
|
7656
|
-
|
|
7698
|
+
// Clone the multiselect array so external mutation of select.optionSelected
|
|
7699
|
+
// can't reach back into menu's internal state through a shared reference.
|
|
7700
|
+
let nextSelected = this.menu.optionSelected;
|
|
7701
|
+
if (this.multiSelect) {
|
|
7702
|
+
nextSelected = Array.isArray(nextSelected) ? [...nextSelected] : [];
|
|
7703
|
+
}
|
|
7704
|
+
this.optionSelected = nextSelected;
|
|
7657
7705
|
|
|
7658
7706
|
if (this.dropdown.isPopoverVisible && !this.multiSelect) {
|
|
7659
7707
|
this.dropdown.hide();
|
|
@@ -7662,7 +7710,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7662
7710
|
|
|
7663
7711
|
// Announce the selection after the dropdown closes so it isn't
|
|
7664
7712
|
// overridden by VoiceOver's "collapsed" announcement from aria-expanded.
|
|
7665
|
-
const selectedValue =
|
|
7713
|
+
const selectedValue = this.menu.currentLabel;
|
|
7666
7714
|
const announcementDelay = 300;
|
|
7667
7715
|
setTimeout(() => {
|
|
7668
7716
|
announceToScreenReader(this._getAnnouncementRoot(), `${selectedValue}, selected`);
|
|
@@ -7858,7 +7906,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7858
7906
|
|
|
7859
7907
|
setMenuValue(value) {
|
|
7860
7908
|
if (!this.menu) return;
|
|
7861
|
-
this.menu.value
|
|
7909
|
+
this.menu.selectByValue(value);
|
|
7862
7910
|
}
|
|
7863
7911
|
|
|
7864
7912
|
/**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the enabled (non-disabled) options for a menu, safely.
|
|
3
|
+
*
|
|
4
|
+
* Auro-menu's `options` getter returns `undefined` when the menu has no items
|
|
5
|
+
* (initItems sets `items` to undefined for empty menus). Callers that reach for
|
|
6
|
+
* `.find()` / `[...spread]` would otherwise crash; this helper normalizes the
|
|
7
|
+
* empty case to `[]` so array methods are always safe.
|
|
8
|
+
*
|
|
9
|
+
* @param {HTMLElement | null | undefined} menu - The auro-menu element.
|
|
10
|
+
* @returns {Array<HTMLElement>} Non-disabled options, empty array when none.
|
|
11
|
+
*/
|
|
12
|
+
export function getEnabledOptions(menu: HTMLElement | null | undefined): Array<HTMLElement>;
|