@aurodesignsystem-dev/auro-formkit 0.0.0-pr1552.0 → 0.0.0-pr1553.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.
Files changed (44) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +46 -207
  7. package/components/combobox/demo/getting-started.min.js +46 -207
  8. package/components/combobox/demo/index.min.js +46 -207
  9. package/components/combobox/dist/index.js +46 -207
  10. package/components/combobox/dist/registered.js +46 -207
  11. package/components/counter/demo/customize.min.js +58 -206
  12. package/components/counter/demo/index.min.js +58 -206
  13. package/components/counter/dist/index.js +58 -206
  14. package/components/counter/dist/registered.js +58 -206
  15. package/components/datepicker/demo/customize.min.js +46 -207
  16. package/components/datepicker/demo/index.min.js +46 -207
  17. package/components/datepicker/dist/index.js +46 -207
  18. package/components/datepicker/dist/registered.js +46 -207
  19. package/components/dropdown/demo/customize.min.js +44 -205
  20. package/components/dropdown/demo/getting-started.min.js +44 -205
  21. package/components/dropdown/demo/index.min.js +44 -205
  22. package/components/dropdown/dist/index.js +44 -205
  23. package/components/dropdown/dist/registered.js +44 -205
  24. package/components/form/demo/customize.min.js +198 -829
  25. package/components/form/demo/getting-started.min.js +198 -829
  26. package/components/form/demo/index.min.js +198 -829
  27. package/components/form/demo/registerDemoDeps.min.js +198 -829
  28. package/components/input/demo/customize.min.js +1 -1
  29. package/components/input/demo/getting-started.min.js +1 -1
  30. package/components/input/demo/index.min.js +1 -1
  31. package/components/input/dist/index.js +1 -1
  32. package/components/input/dist/registered.js +1 -1
  33. package/components/radio/demo/customize.min.js +1 -1
  34. package/components/radio/demo/getting-started.min.js +1 -1
  35. package/components/radio/demo/index.min.js +1 -1
  36. package/components/radio/dist/index.js +1 -1
  37. package/components/radio/dist/registered.js +1 -1
  38. package/components/select/demo/customize.min.js +45 -206
  39. package/components/select/demo/getting-started.min.js +45 -206
  40. package/components/select/demo/index.min.js +45 -206
  41. package/components/select/dist/index.js +45 -206
  42. package/components/select/dist/registered.js +45 -206
  43. package/custom-elements.json +1521 -1521
  44. package/package.json +2 -2
@@ -3379,12 +3379,40 @@ class AuroFloatingUI {
3379
3379
  return;
3380
3380
  }
3381
3381
 
3382
+ // Chrome-specific: during popover top-layer promotion after a click on a
3383
+ // slotted focusable, :focus-within can briefly evaluate false while the
3384
+ // active element is still structurally inside the trigger/bib. Fall back
3385
+ // to a shadow-piercing ancestry walk from the deep active element before
3386
+ // treating this as a real focus loss.
3387
+ try {
3388
+ let active = document.activeElement;
3389
+ while (active && active.shadowRoot && active.shadowRoot.activeElement) {
3390
+ active = active.shadowRoot.activeElement;
3391
+ }
3392
+ const targets = [element, element.trigger, element.bib].filter(Boolean);
3393
+ let node = active;
3394
+ while (node) {
3395
+ if (targets.includes(node)) {
3396
+ return;
3397
+ }
3398
+ node =
3399
+ node.parentElement ||
3400
+ (node.getRootNode && node.getRootNode().host) ||
3401
+ null;
3402
+ }
3403
+ } catch (e) {
3404
+ // Defensive: fall through to the existing close path if traversal fails.
3405
+ }
3406
+
3382
3407
  // if fullscreen bib is in fullscreen mode, do not close
3383
3408
  if (element.bib.hasAttribute("isfullscreen")) {
3384
3409
  return;
3385
3410
  }
3386
3411
 
3387
- this.hideBib("keydown");
3412
+ // eventType "focusloss" distinguishes a Tab/click-driven close from an
3413
+ // Escape keydown close. Consumers use this to decide whether to restore
3414
+ // focus to the trigger (Escape) or let it advance naturally (Tab).
3415
+ this.hideBib("focusloss");
3388
3416
  }
3389
3417
 
3390
3418
  setupHideHandlers() {
@@ -4054,199 +4082,6 @@ function getFocusableElements(container) {
4054
4082
  return tabIndexedUniqueElements;
4055
4083
  }
4056
4084
 
4057
- /**
4058
- * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
4059
- * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
4060
- */
4061
- class FocusTrap {
4062
- /**
4063
- * Creates a new FocusTrap instance for the given container element.
4064
- * Initializes event listeners and prepares the container for focus management.
4065
- *
4066
- * @param {HTMLElement} container The DOM element to trap focus within.
4067
- * @param {boolean} [controlTabOrder=false] If true enables manual control of the tab order by the FocusTrap.
4068
- * @throws {Error} If the provided container is not a valid HTMLElement.
4069
- */
4070
- constructor(container, controlTabOrder = false) {
4071
- if (!container || !(container instanceof HTMLElement)) {
4072
- throw new Error("FocusTrap requires a valid HTMLElement.");
4073
- }
4074
-
4075
- this.container = container;
4076
- this.tabDirection = "forward"; // or 'backward';
4077
- this.controlTabOrder = controlTabOrder;
4078
-
4079
- this._init();
4080
- }
4081
-
4082
- /**
4083
- * Initializes the focus trap by setting up event listeners and attributes on the container.
4084
- * Prepares the container for focus management, including support for shadow DOM and inert attributes.
4085
- *
4086
- * @private
4087
- */
4088
- _init() {
4089
- // Add inert attribute to prevent focusing programmatically as well (if supported)
4090
- if ("inert" in HTMLElement.prototype) {
4091
- this.container.inert = false; // Ensure the container isn't inert
4092
- this.container.setAttribute("data-focus-trap-container", true); // Mark for identification
4093
- }
4094
-
4095
- // Track tab direction
4096
- this.container.addEventListener("keydown", this._onKeydown);
4097
- }
4098
-
4099
- /**
4100
- * Gets an array of currently active (focused) elements in the document and shadow DOM.
4101
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
4102
- * @private
4103
- */
4104
- _getActiveElements() {
4105
- // Get the active element(s) in the document and shadow root
4106
- // This will include the active element in the shadow DOM if it exists
4107
- // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
4108
- let { activeElement } = document;
4109
- const actives = [activeElement];
4110
- while (activeElement?.shadowRoot?.activeElement) {
4111
- actives.push(activeElement.shadowRoot.activeElement);
4112
- activeElement = activeElement.shadowRoot.activeElement;
4113
- }
4114
- return actives;
4115
- }
4116
-
4117
- /**
4118
- * Gets the next focus index based on the current index and focusable elements.
4119
- * @param {number} currentIndex The current index of the focused element.
4120
- * @param {Array<HTMLElement>} focusables The array of focusable elements.
4121
- * @returns {number|null} The next focus index or null if not determined.
4122
- */
4123
- _getNextFocusIndex(currentIndex, focusables, actives) {
4124
- if (this.controlTabOrder) {
4125
- // Calculate the new index based on the current index and tab direction
4126
- let newFocusIndex =
4127
- currentIndex + (this.tabDirection === "forward" ? 1 : -1);
4128
-
4129
- // Wrap-around logic
4130
- if (newFocusIndex < 0) newFocusIndex = focusables.length - 1;
4131
- if (newFocusIndex >= focusables.length) newFocusIndex = 0;
4132
-
4133
- // Early return with the new index
4134
- return newFocusIndex;
4135
- }
4136
-
4137
- // Determine if we need to wrap
4138
- const atFirst =
4139
- actives.includes(focusables[0]) || actives.includes(this.container);
4140
- const atLast = actives.includes(focusables[focusables.length - 1]);
4141
-
4142
- // Only wrap if at the ends
4143
- if (this.tabDirection === "backward" && atFirst) {
4144
- return focusables.length - 1;
4145
- }
4146
-
4147
- if (this.tabDirection === "forward" && atLast) {
4148
- return 0;
4149
- }
4150
-
4151
- // No wrap, so don't change focus, return early
4152
- return null;
4153
- }
4154
-
4155
- /**
4156
- * Handles the Tab key press event to manage focus within the container.
4157
- * @param {KeyboardEvent} e The keyboard event triggered by the user.
4158
- * @returns {void}
4159
- */
4160
- _handleTabKey(e) {
4161
- // Update the focusable elements
4162
- const focusables = this._getFocusableElements();
4163
-
4164
- // If there are no focusable elements, exit
4165
- if (!focusables.length) return;
4166
-
4167
- // Set the tab direction based on the key pressed
4168
- this.tabDirection = e.shiftKey ? "backward" : "forward";
4169
-
4170
- // Get the active elements that are currently focused
4171
- const actives = this._getActiveElements();
4172
-
4173
- // If we're at either end of the focusable elements, wrap around to the other end
4174
- let focusIndex = focusables.findIndex((el) => actives.includes(el));
4175
-
4176
- // Fallback if we have no focused element
4177
- if (focusIndex === -1) focusIndex = 0;
4178
-
4179
- // Get the next focus index based on the current focus index, tab direction, and controlTabOrder setting
4180
- // Is null if no new focus index is determined
4181
- const newFocusIndex = this._getNextFocusIndex(
4182
- focusIndex,
4183
- focusables,
4184
- actives,
4185
- );
4186
-
4187
- // If we have a new focus index, set focus to that element
4188
- if (newFocusIndex !== null) {
4189
- e.preventDefault();
4190
- focusables[newFocusIndex].focus();
4191
- }
4192
- }
4193
-
4194
- /**
4195
- * Catches the keydown event
4196
- * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
4197
- * @private
4198
- */
4199
- _onKeydown = (e) => {
4200
- // Handle tab
4201
- if (e.key === "Tab") this._handleTabKey(e);
4202
- };
4203
-
4204
- /**
4205
- * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
4206
- * Returns a unique, ordered array of elements that can receive focus.
4207
- *
4208
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
4209
- * @private
4210
- */
4211
- _getFocusableElements() {
4212
- // Use the imported utility function to get focusable elements
4213
- const elements = getFocusableElements(this.container);
4214
-
4215
- // Return the elements found
4216
- return elements;
4217
- }
4218
-
4219
- /**
4220
- * Moves focus to the first focusable element within the container.
4221
- * Useful for setting initial focus when activating the focus trap.
4222
- */
4223
- focusFirstElement() {
4224
- const focusables = this._getFocusableElements();
4225
- if (focusables.length) focusables[0].focus();
4226
- }
4227
-
4228
- /**
4229
- * Moves focus to the last focusable element within the container.
4230
- * Useful for setting focus when deactivating or cycling focus in reverse.
4231
- */
4232
- focusLastElement() {
4233
- const focusables = this._getFocusableElements();
4234
- if (focusables.length) focusables[focusables.length - 1].focus();
4235
- }
4236
-
4237
- /**
4238
- * Removes event listeners and attributes added by the focus trap.
4239
- * Call this method to clean up when the focus trap is no longer needed.
4240
- */
4241
- disconnect() {
4242
- if (this.container.hasAttribute("data-focus-trap-container")) {
4243
- this.container.removeAttribute("data-focus-trap-container");
4244
- }
4245
-
4246
- this.container.removeEventListener("keydown", this._onKeydown);
4247
- }
4248
- }
4249
-
4250
4085
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
4251
4086
  // See LICENSE in the project root for license information.
4252
4087
 
@@ -4744,7 +4579,7 @@ class AuroDropdownBib extends i$2 {
4744
4579
  classes[`shape-${this.shape}`] = true;
4745
4580
 
4746
4581
  return u$4`
4747
- <dialog class="${e$2(classes)}" part="bibContainer" role="${o(this.dialogRole)}" aria-labelledby="${o(this.dialogLabel ? 'dialogLabel' : undefined)}">
4582
+ <dialog tabindex="-1" class="${e$2(classes)}" part="bibContainer" role="${o(this.dialogRole)}" aria-labelledby="${o(this.dialogLabel ? 'dialogLabel' : undefined)}">
4748
4583
  ${this.dialogLabel ? u$4`<span id="dialogLabel" class="util_displayHiddenVisually">${this.dialogLabel}</span>` : ''}
4749
4584
  <slot></slot>
4750
4585
  <span id="srAnnouncement" class="util_displayHiddenVisually" aria-live="polite" role="status"></span>
@@ -4995,7 +4830,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4995
4830
  }
4996
4831
  };
4997
4832
 
4998
- var formkitVersion$1 = '202607092329';
4833
+ var formkitVersion$1 = '202607102017';
4999
4834
 
5000
4835
  class AuroElement extends i$2 {
5001
4836
  static get properties() {
@@ -5749,7 +5584,10 @@ class AuroDropdown extends AuroElement {
5749
5584
  }
5750
5585
 
5751
5586
 
5752
- if (!this.isPopoverVisible) {
5587
+ // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5588
+ // — restoring to the trigger would trap the user on this dropdown, forcing
5589
+ // an extra Tab to move on. Escape and outside-click still restore.
5590
+ if (!this.isPopoverVisible && eventType !== "focusloss") {
5753
5591
  // wait til the bib gets fully closed and rendered
5754
5592
  setTimeout(() => {
5755
5593
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -5979,15 +5817,16 @@ class AuroDropdown extends AuroElement {
5979
5817
  }
5980
5818
  });
5981
5819
  } else {
5982
- // Normal desktop: use FocusTrap on the bib element.
5983
- // Defer focusFirstElement to the next frame because the popover
5984
- // is positioned asynchronously by Floating UI — calling focus()
5985
- // synchronously here would target elements with zero dimensions
5986
- // and the focus call would be silently ignored.
5987
- this.focusTrap = new FocusTrap(this.bibContent);
5820
+ // Normal desktop (non-modal): move initial focus into the bib but
5821
+ // don't trap Tab. Tab should exit the bib and let the floater's
5822
+ // handleFocusLoss close it, matching native <select>/<details>
5823
+ // behavior. Deferred one frame because Floating UI positions the
5824
+ // popover asynchronously a synchronous focus() would target
5825
+ // zero-dimension elements and be silently ignored.
5988
5826
  requestAnimationFrame(() => {
5989
- if (this.focusTrap) {
5990
- this.focusTrap.focusFirstElement();
5827
+ const focusables = getFocusableElements(this.bibContent);
5828
+ if (focusables.length) {
5829
+ focusables[0].focus();
5991
5830
  }
5992
5831
  });
5993
5832
  }
@@ -7034,7 +6873,7 @@ class AuroHelpText extends i$2 {
7034
6873
  }
7035
6874
  }
7036
6875
 
7037
- var formkitVersion = '202607092329';
6876
+ var formkitVersion = '202607102017';
7038
6877
 
7039
6878
  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}`;
7040
6879
 
@@ -3379,12 +3379,40 @@ class AuroFloatingUI {
3379
3379
  return;
3380
3380
  }
3381
3381
 
3382
+ // Chrome-specific: during popover top-layer promotion after a click on a
3383
+ // slotted focusable, :focus-within can briefly evaluate false while the
3384
+ // active element is still structurally inside the trigger/bib. Fall back
3385
+ // to a shadow-piercing ancestry walk from the deep active element before
3386
+ // treating this as a real focus loss.
3387
+ try {
3388
+ let active = document.activeElement;
3389
+ while (active && active.shadowRoot && active.shadowRoot.activeElement) {
3390
+ active = active.shadowRoot.activeElement;
3391
+ }
3392
+ const targets = [element, element.trigger, element.bib].filter(Boolean);
3393
+ let node = active;
3394
+ while (node) {
3395
+ if (targets.includes(node)) {
3396
+ return;
3397
+ }
3398
+ node =
3399
+ node.parentElement ||
3400
+ (node.getRootNode && node.getRootNode().host) ||
3401
+ null;
3402
+ }
3403
+ } catch (e) {
3404
+ // Defensive: fall through to the existing close path if traversal fails.
3405
+ }
3406
+
3382
3407
  // if fullscreen bib is in fullscreen mode, do not close
3383
3408
  if (element.bib.hasAttribute("isfullscreen")) {
3384
3409
  return;
3385
3410
  }
3386
3411
 
3387
- this.hideBib("keydown");
3412
+ // eventType "focusloss" distinguishes a Tab/click-driven close from an
3413
+ // Escape keydown close. Consumers use this to decide whether to restore
3414
+ // focus to the trigger (Escape) or let it advance naturally (Tab).
3415
+ this.hideBib("focusloss");
3388
3416
  }
3389
3417
 
3390
3418
  setupHideHandlers() {
@@ -4054,199 +4082,6 @@ function getFocusableElements(container) {
4054
4082
  return tabIndexedUniqueElements;
4055
4083
  }
4056
4084
 
4057
- /**
4058
- * FocusTrap manages keyboard focus within a specified container element, ensuring that focus does not leave the container when tabbing.
4059
- * It is commonly used for modal dialogs or overlays to improve accessibility by trapping focus within interactive UI components.
4060
- */
4061
- class FocusTrap {
4062
- /**
4063
- * Creates a new FocusTrap instance for the given container element.
4064
- * Initializes event listeners and prepares the container for focus management.
4065
- *
4066
- * @param {HTMLElement} container The DOM element to trap focus within.
4067
- * @param {boolean} [controlTabOrder=false] If true enables manual control of the tab order by the FocusTrap.
4068
- * @throws {Error} If the provided container is not a valid HTMLElement.
4069
- */
4070
- constructor(container, controlTabOrder = false) {
4071
- if (!container || !(container instanceof HTMLElement)) {
4072
- throw new Error("FocusTrap requires a valid HTMLElement.");
4073
- }
4074
-
4075
- this.container = container;
4076
- this.tabDirection = "forward"; // or 'backward';
4077
- this.controlTabOrder = controlTabOrder;
4078
-
4079
- this._init();
4080
- }
4081
-
4082
- /**
4083
- * Initializes the focus trap by setting up event listeners and attributes on the container.
4084
- * Prepares the container for focus management, including support for shadow DOM and inert attributes.
4085
- *
4086
- * @private
4087
- */
4088
- _init() {
4089
- // Add inert attribute to prevent focusing programmatically as well (if supported)
4090
- if ("inert" in HTMLElement.prototype) {
4091
- this.container.inert = false; // Ensure the container isn't inert
4092
- this.container.setAttribute("data-focus-trap-container", true); // Mark for identification
4093
- }
4094
-
4095
- // Track tab direction
4096
- this.container.addEventListener("keydown", this._onKeydown);
4097
- }
4098
-
4099
- /**
4100
- * Gets an array of currently active (focused) elements in the document and shadow DOM.
4101
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
4102
- * @private
4103
- */
4104
- _getActiveElements() {
4105
- // Get the active element(s) in the document and shadow root
4106
- // This will include the active element in the shadow DOM if it exists
4107
- // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
4108
- let { activeElement } = document;
4109
- const actives = [activeElement];
4110
- while (activeElement?.shadowRoot?.activeElement) {
4111
- actives.push(activeElement.shadowRoot.activeElement);
4112
- activeElement = activeElement.shadowRoot.activeElement;
4113
- }
4114
- return actives;
4115
- }
4116
-
4117
- /**
4118
- * Gets the next focus index based on the current index and focusable elements.
4119
- * @param {number} currentIndex The current index of the focused element.
4120
- * @param {Array<HTMLElement>} focusables The array of focusable elements.
4121
- * @returns {number|null} The next focus index or null if not determined.
4122
- */
4123
- _getNextFocusIndex(currentIndex, focusables, actives) {
4124
- if (this.controlTabOrder) {
4125
- // Calculate the new index based on the current index and tab direction
4126
- let newFocusIndex =
4127
- currentIndex + (this.tabDirection === "forward" ? 1 : -1);
4128
-
4129
- // Wrap-around logic
4130
- if (newFocusIndex < 0) newFocusIndex = focusables.length - 1;
4131
- if (newFocusIndex >= focusables.length) newFocusIndex = 0;
4132
-
4133
- // Early return with the new index
4134
- return newFocusIndex;
4135
- }
4136
-
4137
- // Determine if we need to wrap
4138
- const atFirst =
4139
- actives.includes(focusables[0]) || actives.includes(this.container);
4140
- const atLast = actives.includes(focusables[focusables.length - 1]);
4141
-
4142
- // Only wrap if at the ends
4143
- if (this.tabDirection === "backward" && atFirst) {
4144
- return focusables.length - 1;
4145
- }
4146
-
4147
- if (this.tabDirection === "forward" && atLast) {
4148
- return 0;
4149
- }
4150
-
4151
- // No wrap, so don't change focus, return early
4152
- return null;
4153
- }
4154
-
4155
- /**
4156
- * Handles the Tab key press event to manage focus within the container.
4157
- * @param {KeyboardEvent} e The keyboard event triggered by the user.
4158
- * @returns {void}
4159
- */
4160
- _handleTabKey(e) {
4161
- // Update the focusable elements
4162
- const focusables = this._getFocusableElements();
4163
-
4164
- // If there are no focusable elements, exit
4165
- if (!focusables.length) return;
4166
-
4167
- // Set the tab direction based on the key pressed
4168
- this.tabDirection = e.shiftKey ? "backward" : "forward";
4169
-
4170
- // Get the active elements that are currently focused
4171
- const actives = this._getActiveElements();
4172
-
4173
- // If we're at either end of the focusable elements, wrap around to the other end
4174
- let focusIndex = focusables.findIndex((el) => actives.includes(el));
4175
-
4176
- // Fallback if we have no focused element
4177
- if (focusIndex === -1) focusIndex = 0;
4178
-
4179
- // Get the next focus index based on the current focus index, tab direction, and controlTabOrder setting
4180
- // Is null if no new focus index is determined
4181
- const newFocusIndex = this._getNextFocusIndex(
4182
- focusIndex,
4183
- focusables,
4184
- actives,
4185
- );
4186
-
4187
- // If we have a new focus index, set focus to that element
4188
- if (newFocusIndex !== null) {
4189
- e.preventDefault();
4190
- focusables[newFocusIndex].focus();
4191
- }
4192
- }
4193
-
4194
- /**
4195
- * Catches the keydown event
4196
- * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
4197
- * @private
4198
- */
4199
- _onKeydown = (e) => {
4200
- // Handle tab
4201
- if (e.key === "Tab") this._handleTabKey(e);
4202
- };
4203
-
4204
- /**
4205
- * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
4206
- * Returns a unique, ordered array of elements that can receive focus.
4207
- *
4208
- * @returns {Array<HTMLElement>} An array of focusable elements within the container.
4209
- * @private
4210
- */
4211
- _getFocusableElements() {
4212
- // Use the imported utility function to get focusable elements
4213
- const elements = getFocusableElements(this.container);
4214
-
4215
- // Return the elements found
4216
- return elements;
4217
- }
4218
-
4219
- /**
4220
- * Moves focus to the first focusable element within the container.
4221
- * Useful for setting initial focus when activating the focus trap.
4222
- */
4223
- focusFirstElement() {
4224
- const focusables = this._getFocusableElements();
4225
- if (focusables.length) focusables[0].focus();
4226
- }
4227
-
4228
- /**
4229
- * Moves focus to the last focusable element within the container.
4230
- * Useful for setting focus when deactivating or cycling focus in reverse.
4231
- */
4232
- focusLastElement() {
4233
- const focusables = this._getFocusableElements();
4234
- if (focusables.length) focusables[focusables.length - 1].focus();
4235
- }
4236
-
4237
- /**
4238
- * Removes event listeners and attributes added by the focus trap.
4239
- * Call this method to clean up when the focus trap is no longer needed.
4240
- */
4241
- disconnect() {
4242
- if (this.container.hasAttribute("data-focus-trap-container")) {
4243
- this.container.removeAttribute("data-focus-trap-container");
4244
- }
4245
-
4246
- this.container.removeEventListener("keydown", this._onKeydown);
4247
- }
4248
- }
4249
-
4250
4085
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
4251
4086
  // See LICENSE in the project root for license information.
4252
4087
 
@@ -4744,7 +4579,7 @@ class AuroDropdownBib extends i$2 {
4744
4579
  classes[`shape-${this.shape}`] = true;
4745
4580
 
4746
4581
  return u$4`
4747
- <dialog class="${e$2(classes)}" part="bibContainer" role="${o(this.dialogRole)}" aria-labelledby="${o(this.dialogLabel ? 'dialogLabel' : undefined)}">
4582
+ <dialog tabindex="-1" class="${e$2(classes)}" part="bibContainer" role="${o(this.dialogRole)}" aria-labelledby="${o(this.dialogLabel ? 'dialogLabel' : undefined)}">
4748
4583
  ${this.dialogLabel ? u$4`<span id="dialogLabel" class="util_displayHiddenVisually">${this.dialogLabel}</span>` : ''}
4749
4584
  <slot></slot>
4750
4585
  <span id="srAnnouncement" class="util_displayHiddenVisually" aria-live="polite" role="status"></span>
@@ -4995,7 +4830,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4995
4830
  }
4996
4831
  };
4997
4832
 
4998
- var formkitVersion$1 = '202607092329';
4833
+ var formkitVersion$1 = '202607102017';
4999
4834
 
5000
4835
  class AuroElement extends i$2 {
5001
4836
  static get properties() {
@@ -5749,7 +5584,10 @@ class AuroDropdown extends AuroElement {
5749
5584
  }
5750
5585
 
5751
5586
 
5752
- if (!this.isPopoverVisible) {
5587
+ // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5588
+ // — restoring to the trigger would trap the user on this dropdown, forcing
5589
+ // an extra Tab to move on. Escape and outside-click still restore.
5590
+ if (!this.isPopoverVisible && eventType !== "focusloss") {
5753
5591
  // wait til the bib gets fully closed and rendered
5754
5592
  setTimeout(() => {
5755
5593
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -5979,15 +5817,16 @@ class AuroDropdown extends AuroElement {
5979
5817
  }
5980
5818
  });
5981
5819
  } else {
5982
- // Normal desktop: use FocusTrap on the bib element.
5983
- // Defer focusFirstElement to the next frame because the popover
5984
- // is positioned asynchronously by Floating UI — calling focus()
5985
- // synchronously here would target elements with zero dimensions
5986
- // and the focus call would be silently ignored.
5987
- this.focusTrap = new FocusTrap(this.bibContent);
5820
+ // Normal desktop (non-modal): move initial focus into the bib but
5821
+ // don't trap Tab. Tab should exit the bib and let the floater's
5822
+ // handleFocusLoss close it, matching native <select>/<details>
5823
+ // behavior. Deferred one frame because Floating UI positions the
5824
+ // popover asynchronously a synchronous focus() would target
5825
+ // zero-dimension elements and be silently ignored.
5988
5826
  requestAnimationFrame(() => {
5989
- if (this.focusTrap) {
5990
- this.focusTrap.focusFirstElement();
5827
+ const focusables = getFocusableElements(this.bibContent);
5828
+ if (focusables.length) {
5829
+ focusables[0].focus();
5991
5830
  }
5992
5831
  });
5993
5832
  }
@@ -7034,7 +6873,7 @@ class AuroHelpText extends i$2 {
7034
6873
  }
7035
6874
  }
7036
6875
 
7037
- var formkitVersion = '202607092329';
6876
+ var formkitVersion = '202607102017';
7038
6877
 
7039
6878
  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}`;
7040
6879