@aurodesignsystem-dev/auro-formkit 0.0.0-pr1346.13 → 0.0.0-pr1346.14

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 (37) hide show
  1. package/components/checkbox/demo/api.min.js +1 -1
  2. package/components/checkbox/demo/index.min.js +1 -1
  3. package/components/checkbox/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/demo/api.min.js +59 -42
  6. package/components/combobox/demo/index.min.js +59 -42
  7. package/components/combobox/dist/index.js +59 -42
  8. package/components/combobox/dist/registered.js +59 -42
  9. package/components/counter/demo/api.min.js +58 -41
  10. package/components/counter/demo/index.min.js +58 -41
  11. package/components/counter/dist/index.js +58 -41
  12. package/components/counter/dist/registered.js +58 -41
  13. package/components/datepicker/demo/api.min.js +59 -42
  14. package/components/datepicker/demo/index.min.js +59 -42
  15. package/components/datepicker/dist/index.js +59 -42
  16. package/components/datepicker/dist/registered.js +59 -42
  17. package/components/dropdown/demo/api.min.js +57 -40
  18. package/components/dropdown/demo/index.min.js +57 -40
  19. package/components/dropdown/dist/auro-dropdownBib.d.ts +42 -0
  20. package/components/dropdown/dist/index.js +57 -40
  21. package/components/dropdown/dist/registered.js +57 -40
  22. package/components/form/demo/api.min.js +237 -169
  23. package/components/form/demo/index.min.js +237 -169
  24. package/components/input/demo/api.min.js +1 -1
  25. package/components/input/demo/index.min.js +1 -1
  26. package/components/input/dist/index.js +1 -1
  27. package/components/input/dist/registered.js +1 -1
  28. package/components/radio/demo/api.min.js +1 -1
  29. package/components/radio/demo/index.min.js +1 -1
  30. package/components/radio/dist/index.js +1 -1
  31. package/components/radio/dist/registered.js +1 -1
  32. package/components/select/demo/api.min.js +58 -41
  33. package/components/select/demo/index.min.js +58 -41
  34. package/components/select/dist/index.js +58 -41
  35. package/components/select/dist/registered.js +58 -41
  36. package/custom-elements.json +1418 -1390
  37. package/package.json +1 -1
@@ -1420,7 +1420,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1420
1420
  }
1421
1421
  };
1422
1422
 
1423
- var formkitVersion$1 = '202603091734';
1423
+ var formkitVersion$1 = '202603091748';
1424
1424
 
1425
1425
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1426
1426
  // See LICENSE in the project root for license information.
@@ -4905,45 +4905,70 @@ class AuroDropdownBib extends LitElement {
4905
4905
  firstUpdated(changedProperties) {
4906
4906
  super.firstUpdated(changedProperties);
4907
4907
 
4908
- // Handle ESC key via dialog's cancel event
4909
4908
  const dialog = this.shadowRoot.querySelector('dialog');
4909
+ this._setupCancelHandler(dialog);
4910
+ this._setupKeyboardBridge(dialog);
4911
+
4912
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4913
+ bubbles: true,
4914
+ composed: true,
4915
+ detail: {
4916
+ element: this
4917
+ }
4918
+ }));
4919
+ }
4920
+
4921
+ /**
4922
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
4923
+ * an `auro-bib-cancel` custom event so parent components can close.
4924
+ * @param {HTMLDialogElement} dialog
4925
+ * @private
4926
+ */
4927
+ _setupCancelHandler(dialog) {
4910
4928
  dialog.addEventListener('cancel', (event) => {
4911
- // Let parent handle closing
4912
4929
  event.preventDefault();
4913
4930
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
4914
4931
  bubbles: true,
4915
4932
  composed: true
4916
4933
  }));
4917
4934
  });
4935
+ }
4918
4936
 
4919
- // showModal() creates a closed focus scope — keyboard events inside
4920
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
4921
- // keydown handlers in the parent shadow DOM. This handler bridges
4922
- // that gap by re-dispatching navigation keys so they cross the
4923
- // shadow boundary and reach the menu navigation logic in the parent
4924
- // component.
4925
- //
4926
- // The trade-off: intercepting these keys means native keyboard
4927
- // behaviors that would normally "just work" must be manually
4928
- // re-implemented here:
4929
- //
4930
- // - Enter on buttons: Custom elements (auro-button) don't get the
4931
- // native Enter→click that <button> provides, so we call .click()
4932
- // directly when Enter is pressed on a button-like element.
4933
- //
4934
- // - Tab: Intercepted and re-dispatched so parent components
4935
- // (select/combobox) can select the active option and close the
4936
- // dialog. The <dialog> provides containment and isolation
4937
- // (inert background, VoiceOver focus trapping, top layer), while
4938
- // the content inside is a role="listbox" navigated via
4939
- // aria-activedescendant (options are not focusable). Tab keyboard
4940
- // behavior follows listbox conventions (select + close) because
4941
- // the dialog's native Tab trap only cycles between the close
4942
- // button and browser chrome.
4943
- //
4944
- // - Escape: The native <dialog> fires a `cancel` event on ESC
4945
- // (handled above), so the re-dispatched Escape is a secondary
4946
- // path for parent components that also listen for Escape keydown.
4937
+ /**
4938
+ * showModal() creates a closed focus scope keyboard events inside
4939
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
4940
+ * keydown handlers in the parent shadow DOM. This handler bridges
4941
+ * that gap by re-dispatching navigation keys so they cross the
4942
+ * shadow boundary and reach the menu navigation logic in the parent
4943
+ * component.
4944
+ *
4945
+ * The trade-off: intercepting these keys means native keyboard
4946
+ * behaviors that would normally "just work" must be manually
4947
+ * re-implemented here:
4948
+ *
4949
+ * - Enter on buttons: Custom elements (auro-button) don't get the
4950
+ * native Enter→click that <button> provides, so we call .click()
4951
+ * directly when Enter is pressed on a button-like element.
4952
+ *
4953
+ * - Tab: Intercepted and re-dispatched so parent components
4954
+ * (select/combobox) can select the active option and close the
4955
+ * dialog. The <dialog> provides containment and isolation
4956
+ * (inert background, VoiceOver focus trapping, top layer), while
4957
+ * the content inside is a role="listbox" navigated via
4958
+ * aria-activedescendant (options are not focusable). Tab keyboard
4959
+ * behavior follows listbox conventions (select + close) because
4960
+ * the dialog's native Tab trap only cycles between the close
4961
+ * button and browser chrome.
4962
+ *
4963
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
4964
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
4965
+ * is a secondary path for parent components that also listen for
4966
+ * Escape keydown.
4967
+ *
4968
+ * @param {HTMLDialogElement} dialog
4969
+ * @private
4970
+ */
4971
+ _setupKeyboardBridge(dialog) {
4947
4972
  const navKeys = new Set([
4948
4973
  'ArrowUp',
4949
4974
  'ArrowDown',
@@ -4951,6 +4976,7 @@ class AuroDropdownBib extends LitElement {
4951
4976
  'Escape',
4952
4977
  'Tab'
4953
4978
  ]);
4979
+
4954
4980
  dialog.addEventListener('keydown', (event) => {
4955
4981
  if (!navKeys.has(event.key)) {
4956
4982
  return;
@@ -4985,15 +5011,6 @@ class AuroDropdownBib extends LitElement {
4985
5011
  });
4986
5012
  this.dispatchEvent(newEvent);
4987
5013
  });
4988
-
4989
- // Dispatch a custom event when the component is connected
4990
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4991
- bubbles: true,
4992
- composed: true,
4993
- detail: {
4994
- element: this
4995
- }
4996
- }));
4997
5014
  }
4998
5015
 
4999
5016
  /**
@@ -5345,7 +5362,7 @@ class AuroHelpText extends LitElement {
5345
5362
  }
5346
5363
  }
5347
5364
 
5348
- var formkitVersion = '202603091734';
5365
+ var formkitVersion = '202603091748';
5349
5366
 
5350
5367
  let AuroElement$1 = class AuroElement extends LitElement {
5351
5368
  static get properties() {
@@ -9549,7 +9549,7 @@ class AuroBibtemplate extends i$1 {
9549
9549
  }
9550
9550
  }
9551
9551
 
9552
- var formkitVersion$2 = '202603091734';
9552
+ var formkitVersion$2 = '202603091748';
9553
9553
 
9554
9554
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
9555
9555
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .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, 450);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, 450);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, .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, .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, .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, .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, .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, .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(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -13101,45 +13101,70 @@ class AuroDropdownBib extends i$1 {
13101
13101
  firstUpdated(changedProperties) {
13102
13102
  super.firstUpdated(changedProperties);
13103
13103
 
13104
- // Handle ESC key via dialog's cancel event
13105
13104
  const dialog = this.shadowRoot.querySelector('dialog');
13105
+ this._setupCancelHandler(dialog);
13106
+ this._setupKeyboardBridge(dialog);
13107
+
13108
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
13109
+ bubbles: true,
13110
+ composed: true,
13111
+ detail: {
13112
+ element: this
13113
+ }
13114
+ }));
13115
+ }
13116
+
13117
+ /**
13118
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
13119
+ * an `auro-bib-cancel` custom event so parent components can close.
13120
+ * @param {HTMLDialogElement} dialog
13121
+ * @private
13122
+ */
13123
+ _setupCancelHandler(dialog) {
13106
13124
  dialog.addEventListener('cancel', (event) => {
13107
- // Let parent handle closing
13108
13125
  event.preventDefault();
13109
13126
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
13110
13127
  bubbles: true,
13111
13128
  composed: true
13112
13129
  }));
13113
13130
  });
13131
+ }
13114
13132
 
13115
- // showModal() creates a closed focus scope — keyboard events inside
13116
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
13117
- // keydown handlers in the parent shadow DOM. This handler bridges
13118
- // that gap by re-dispatching navigation keys so they cross the
13119
- // shadow boundary and reach the menu navigation logic in the parent
13120
- // component.
13121
- //
13122
- // The trade-off: intercepting these keys means native keyboard
13123
- // behaviors that would normally "just work" must be manually
13124
- // re-implemented here:
13125
- //
13126
- // - Enter on buttons: Custom elements (auro-button) don't get the
13127
- // native Enter→click that <button> provides, so we call .click()
13128
- // directly when Enter is pressed on a button-like element.
13129
- //
13130
- // - Tab: Intercepted and re-dispatched so parent components
13131
- // (select/combobox) can select the active option and close the
13132
- // dialog. The <dialog> provides containment and isolation
13133
- // (inert background, VoiceOver focus trapping, top layer), while
13134
- // the content inside is a role="listbox" navigated via
13135
- // aria-activedescendant (options are not focusable). Tab keyboard
13136
- // behavior follows listbox conventions (select + close) because
13137
- // the dialog's native Tab trap only cycles between the close
13138
- // button and browser chrome.
13139
- //
13140
- // - Escape: The native <dialog> fires a `cancel` event on ESC
13141
- // (handled above), so the re-dispatched Escape is a secondary
13142
- // path for parent components that also listen for Escape keydown.
13133
+ /**
13134
+ * showModal() creates a closed focus scope keyboard events inside
13135
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
13136
+ * keydown handlers in the parent shadow DOM. This handler bridges
13137
+ * that gap by re-dispatching navigation keys so they cross the
13138
+ * shadow boundary and reach the menu navigation logic in the parent
13139
+ * component.
13140
+ *
13141
+ * The trade-off: intercepting these keys means native keyboard
13142
+ * behaviors that would normally "just work" must be manually
13143
+ * re-implemented here:
13144
+ *
13145
+ * - Enter on buttons: Custom elements (auro-button) don't get the
13146
+ * native Enter→click that <button> provides, so we call .click()
13147
+ * directly when Enter is pressed on a button-like element.
13148
+ *
13149
+ * - Tab: Intercepted and re-dispatched so parent components
13150
+ * (select/combobox) can select the active option and close the
13151
+ * dialog. The <dialog> provides containment and isolation
13152
+ * (inert background, VoiceOver focus trapping, top layer), while
13153
+ * the content inside is a role="listbox" navigated via
13154
+ * aria-activedescendant (options are not focusable). Tab keyboard
13155
+ * behavior follows listbox conventions (select + close) because
13156
+ * the dialog's native Tab trap only cycles between the close
13157
+ * button and browser chrome.
13158
+ *
13159
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
13160
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
13161
+ * is a secondary path for parent components that also listen for
13162
+ * Escape keydown.
13163
+ *
13164
+ * @param {HTMLDialogElement} dialog
13165
+ * @private
13166
+ */
13167
+ _setupKeyboardBridge(dialog) {
13143
13168
  const navKeys = new Set([
13144
13169
  'ArrowUp',
13145
13170
  'ArrowDown',
@@ -13147,6 +13172,7 @@ class AuroDropdownBib extends i$1 {
13147
13172
  'Escape',
13148
13173
  'Tab'
13149
13174
  ]);
13175
+
13150
13176
  dialog.addEventListener('keydown', (event) => {
13151
13177
  if (!navKeys.has(event.key)) {
13152
13178
  return;
@@ -13181,15 +13207,6 @@ class AuroDropdownBib extends i$1 {
13181
13207
  });
13182
13208
  this.dispatchEvent(newEvent);
13183
13209
  });
13184
-
13185
- // Dispatch a custom event when the component is connected
13186
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
13187
- bubbles: true,
13188
- composed: true,
13189
- detail: {
13190
- element: this
13191
- }
13192
- }));
13193
13210
  }
13194
13211
 
13195
13212
  /**
@@ -13541,7 +13558,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
13541
13558
  }
13542
13559
  };
13543
13560
 
13544
- var formkitVersion$1 = '202603091734';
13561
+ var formkitVersion$1 = '202603091748';
13545
13562
 
13546
13563
  let AuroElement$2 = class AuroElement extends i$1 {
13547
13564
  static get properties() {
@@ -21285,7 +21302,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
21285
21302
  }
21286
21303
  };
21287
21304
 
21288
- var formkitVersion = '202603091734';
21305
+ var formkitVersion = '202603091748';
21289
21306
 
21290
21307
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
21291
21308
  // See LICENSE in the project root for license information.
@@ -9290,7 +9290,7 @@ class AuroBibtemplate extends i$1 {
9290
9290
  }
9291
9291
  }
9292
9292
 
9293
- var formkitVersion$2 = '202603091734';
9293
+ var formkitVersion$2 = '202603091748';
9294
9294
 
9295
9295
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
9296
9296
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .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, 450);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, 450);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, .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, .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, .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, .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, .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, .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(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -12842,45 +12842,70 @@ class AuroDropdownBib extends i$1 {
12842
12842
  firstUpdated(changedProperties) {
12843
12843
  super.firstUpdated(changedProperties);
12844
12844
 
12845
- // Handle ESC key via dialog's cancel event
12846
12845
  const dialog = this.shadowRoot.querySelector('dialog');
12846
+ this._setupCancelHandler(dialog);
12847
+ this._setupKeyboardBridge(dialog);
12848
+
12849
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
12850
+ bubbles: true,
12851
+ composed: true,
12852
+ detail: {
12853
+ element: this
12854
+ }
12855
+ }));
12856
+ }
12857
+
12858
+ /**
12859
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
12860
+ * an `auro-bib-cancel` custom event so parent components can close.
12861
+ * @param {HTMLDialogElement} dialog
12862
+ * @private
12863
+ */
12864
+ _setupCancelHandler(dialog) {
12847
12865
  dialog.addEventListener('cancel', (event) => {
12848
- // Let parent handle closing
12849
12866
  event.preventDefault();
12850
12867
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
12851
12868
  bubbles: true,
12852
12869
  composed: true
12853
12870
  }));
12854
12871
  });
12872
+ }
12855
12873
 
12856
- // showModal() creates a closed focus scope — keyboard events inside
12857
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
12858
- // keydown handlers in the parent shadow DOM. This handler bridges
12859
- // that gap by re-dispatching navigation keys so they cross the
12860
- // shadow boundary and reach the menu navigation logic in the parent
12861
- // component.
12862
- //
12863
- // The trade-off: intercepting these keys means native keyboard
12864
- // behaviors that would normally "just work" must be manually
12865
- // re-implemented here:
12866
- //
12867
- // - Enter on buttons: Custom elements (auro-button) don't get the
12868
- // native Enter→click that <button> provides, so we call .click()
12869
- // directly when Enter is pressed on a button-like element.
12870
- //
12871
- // - Tab: Intercepted and re-dispatched so parent components
12872
- // (select/combobox) can select the active option and close the
12873
- // dialog. The <dialog> provides containment and isolation
12874
- // (inert background, VoiceOver focus trapping, top layer), while
12875
- // the content inside is a role="listbox" navigated via
12876
- // aria-activedescendant (options are not focusable). Tab keyboard
12877
- // behavior follows listbox conventions (select + close) because
12878
- // the dialog's native Tab trap only cycles between the close
12879
- // button and browser chrome.
12880
- //
12881
- // - Escape: The native <dialog> fires a `cancel` event on ESC
12882
- // (handled above), so the re-dispatched Escape is a secondary
12883
- // path for parent components that also listen for Escape keydown.
12874
+ /**
12875
+ * showModal() creates a closed focus scope keyboard events inside
12876
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
12877
+ * keydown handlers in the parent shadow DOM. This handler bridges
12878
+ * that gap by re-dispatching navigation keys so they cross the
12879
+ * shadow boundary and reach the menu navigation logic in the parent
12880
+ * component.
12881
+ *
12882
+ * The trade-off: intercepting these keys means native keyboard
12883
+ * behaviors that would normally "just work" must be manually
12884
+ * re-implemented here:
12885
+ *
12886
+ * - Enter on buttons: Custom elements (auro-button) don't get the
12887
+ * native Enter→click that <button> provides, so we call .click()
12888
+ * directly when Enter is pressed on a button-like element.
12889
+ *
12890
+ * - Tab: Intercepted and re-dispatched so parent components
12891
+ * (select/combobox) can select the active option and close the
12892
+ * dialog. The <dialog> provides containment and isolation
12893
+ * (inert background, VoiceOver focus trapping, top layer), while
12894
+ * the content inside is a role="listbox" navigated via
12895
+ * aria-activedescendant (options are not focusable). Tab keyboard
12896
+ * behavior follows listbox conventions (select + close) because
12897
+ * the dialog's native Tab trap only cycles between the close
12898
+ * button and browser chrome.
12899
+ *
12900
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
12901
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
12902
+ * is a secondary path for parent components that also listen for
12903
+ * Escape keydown.
12904
+ *
12905
+ * @param {HTMLDialogElement} dialog
12906
+ * @private
12907
+ */
12908
+ _setupKeyboardBridge(dialog) {
12884
12909
  const navKeys = new Set([
12885
12910
  'ArrowUp',
12886
12911
  'ArrowDown',
@@ -12888,6 +12913,7 @@ class AuroDropdownBib extends i$1 {
12888
12913
  'Escape',
12889
12914
  'Tab'
12890
12915
  ]);
12916
+
12891
12917
  dialog.addEventListener('keydown', (event) => {
12892
12918
  if (!navKeys.has(event.key)) {
12893
12919
  return;
@@ -12922,15 +12948,6 @@ class AuroDropdownBib extends i$1 {
12922
12948
  });
12923
12949
  this.dispatchEvent(newEvent);
12924
12950
  });
12925
-
12926
- // Dispatch a custom event when the component is connected
12927
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
12928
- bubbles: true,
12929
- composed: true,
12930
- detail: {
12931
- element: this
12932
- }
12933
- }));
12934
12951
  }
12935
12952
 
12936
12953
  /**
@@ -13282,7 +13299,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
13282
13299
  }
13283
13300
  };
13284
13301
 
13285
- var formkitVersion$1 = '202603091734';
13302
+ var formkitVersion$1 = '202603091748';
13286
13303
 
13287
13304
  let AuroElement$2 = class AuroElement extends i$1 {
13288
13305
  static get properties() {
@@ -21026,7 +21043,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
21026
21043
  }
21027
21044
  };
21028
21045
 
21029
- var formkitVersion = '202603091734';
21046
+ var formkitVersion = '202603091748';
21030
21047
 
21031
21048
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
21032
21049
  // See LICENSE in the project root for license information.