@aurodesignsystem-dev/auro-formkit 0.0.0-pr1408.8 → 0.0.0-pr1411.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 (62) 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/demo/keyboardBehavior.md +0 -0
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/api.min.js +121 -144
  7. package/components/combobox/demo/index.min.js +121 -144
  8. package/components/combobox/demo/keyboardBehavior.html +1 -0
  9. package/components/combobox/demo/keyboardBehavior.md +21 -22
  10. package/components/combobox/dist/index.js +87 -117
  11. package/components/combobox/dist/registered.js +87 -117
  12. package/components/counter/demo/api.md +1 -1
  13. package/components/counter/demo/api.min.js +184 -148
  14. package/components/counter/demo/index.min.js +184 -148
  15. package/components/counter/demo/keyboardBehavior.html +1 -0
  16. package/components/counter/demo/keyboardBehavior.md +1 -1
  17. package/components/counter/dist/auro-counter.d.ts +11 -8
  18. package/components/counter/dist/index.js +184 -148
  19. package/components/counter/dist/keyboardStrategy.d.ts +4 -0
  20. package/components/counter/dist/registered.js +184 -148
  21. package/components/datepicker/demo/api.min.js +89 -120
  22. package/components/datepicker/demo/index.min.js +89 -120
  23. package/components/datepicker/demo/keyboardBehavior.html +1 -0
  24. package/components/datepicker/demo/keyboardBehavior.md +14 -13
  25. package/components/datepicker/dist/index.js +84 -115
  26. package/components/datepicker/dist/registered.js +84 -115
  27. package/components/dropdown/demo/api.md +0 -1
  28. package/components/dropdown/demo/api.min.js +99 -123
  29. package/components/dropdown/demo/index.md +2 -2
  30. package/components/dropdown/demo/index.min.js +99 -123
  31. package/components/dropdown/demo/keyboardBehavior.html +1 -0
  32. package/components/dropdown/dist/auro-dropdown.d.ts +0 -8
  33. package/components/dropdown/dist/auro-dropdownBib.d.ts +1 -40
  34. package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +7 -0
  35. package/components/dropdown/dist/index.js +83 -111
  36. package/components/dropdown/dist/registered.js +83 -111
  37. package/components/form/demo/api.min.js +542 -564
  38. package/components/form/demo/index.min.js +542 -564
  39. package/components/form/demo/keyboardBehavior.md +0 -0
  40. package/components/input/demo/api.min.js +1 -1
  41. package/components/input/demo/index.min.js +1 -1
  42. package/components/input/demo/keyboardBehavior.md +0 -0
  43. package/components/input/dist/index.js +1 -1
  44. package/components/input/dist/registered.js +1 -1
  45. package/components/menu/demo/api.min.js +34 -27
  46. package/components/menu/demo/index.min.js +34 -27
  47. package/components/menu/dist/auro-menu.d.ts +0 -6
  48. package/components/menu/dist/index.js +34 -27
  49. package/components/menu/dist/registered.js +34 -27
  50. package/components/radio/demo/api.min.js +1 -1
  51. package/components/radio/demo/index.min.js +1 -1
  52. package/components/radio/dist/index.js +1 -1
  53. package/components/radio/dist/registered.js +1 -1
  54. package/components/select/demo/api.min.js +181 -178
  55. package/components/select/demo/index.min.js +181 -178
  56. package/components/select/demo/keyboardBehavior.html +1 -0
  57. package/components/select/demo/keyboardBehavior.md +240 -239
  58. package/components/select/dist/index.js +147 -151
  59. package/components/select/dist/registered.js +147 -151
  60. package/components/select/dist/selectKeyboardStrategy.d.ts +3 -1
  61. package/custom-elements.json +1521 -1503
  62. package/package.json +5 -3
@@ -1687,7 +1687,7 @@ class AuroHelpText extends i$2 {
1687
1687
  }
1688
1688
  }
1689
1689
 
1690
- var formkitVersion = '202603310455';
1690
+ var formkitVersion = '202604021512';
1691
1691
 
1692
1692
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1693
1693
  // See LICENSE in the project root for license information.
@@ -1679,7 +1679,7 @@ class AuroHelpText extends i$2 {
1679
1679
  }
1680
1680
  }
1681
1681
 
1682
- var formkitVersion = '202603310455';
1682
+ var formkitVersion = '202604021512';
1683
1683
 
1684
1684
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1685
1685
  // See LICENSE in the project root for license information.
File without changes
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
1632
1632
  }
1633
1633
  }
1634
1634
 
1635
- var formkitVersion = '202603310455';
1635
+ var formkitVersion = '202604021512';
1636
1636
 
1637
1637
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1638
1638
  // See LICENSE in the project root for license information.
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
1632
1632
  }
1633
1633
  }
1634
1634
 
1635
- var formkitVersion = '202603310455';
1635
+ var formkitVersion = '202604021512';
1636
1636
 
1637
1637
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1638
1638
  // See LICENSE in the project root for license information.
@@ -1242,7 +1242,7 @@ function restoreTriggerAfterClose(dropdown, focusTarget) {
1242
1242
  * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
1243
1243
  * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
1244
1244
  */
1245
- function createDisplayContext(component, options = {}) {
1245
+ function createDisplayContext$1(component, options = {}) {
1246
1246
  const dd = options.dropdown || component.dropdown;
1247
1247
  // isPopoverVisible reflects as the `open` attribute.
1248
1248
  // It reports whether the bib is open in any mode (popover or modal).
@@ -1272,11 +1272,11 @@ function createDisplayContext(component, options = {}) {
1272
1272
  * @param {Object} strategy - Map of key names to handler functions.
1273
1273
  * @param {Object} [options] - Optional config passed to createDisplayContext.
1274
1274
  */
1275
- function applyKeyboardStrategy(component, strategy, options = {}) {
1275
+ function applyKeyboardStrategy$1(component, strategy, options = {}) {
1276
1276
  component.addEventListener('keydown', async (evt) => {
1277
1277
  const handler = strategy[evt.key] || strategy.default;
1278
1278
  if (typeof handler === 'function') {
1279
- const ctx = createDisplayContext(component, options);
1279
+ const ctx = createDisplayContext$1(component, options);
1280
1280
  await handler(component, evt, ctx);
1281
1281
  }
1282
1282
  });
@@ -3532,11 +3532,10 @@ class AuroFloatingUI {
3532
3532
  return;
3533
3533
  }
3534
3534
 
3535
- const { activeElement } = document;
3536
3535
  // if focus is still inside of trigger or bib, do not close
3537
3536
  if (
3538
- this.element.contains(activeElement) ||
3539
- this.element.bib?.contains(activeElement)
3537
+ this.element.matches(":focus") ||
3538
+ this.element.matches(":focus-within")
3540
3539
  ) {
3541
3540
  return;
3542
3541
  }
@@ -4375,12 +4374,83 @@ let p$4 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
4375
4374
 
4376
4375
  var iconVersion$3 = '9.1.2';
4377
4376
 
4377
+ /**
4378
+ * Computes display state once per keydown event.
4379
+ * Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
4380
+ *
4381
+ * @param {HTMLElement} component - The component with a dropdown reference.
4382
+ * @param {Object} [options] - Optional config.
4383
+ * @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
4384
+ * @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
4385
+ * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
4386
+ * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
4387
+ */
4388
+ function createDisplayContext(component, options = {}) {
4389
+ const dd = options.dropdown || component.dropdown;
4390
+ // isPopoverVisible reflects as the `open` attribute.
4391
+ // It reports whether the bib is open in any mode (popover or modal).
4392
+ const isExpanded = Boolean(dd && dd.isPopoverVisible);
4393
+ const isFullscreen = Boolean(dd && dd.isBibFullscreen);
4394
+
4395
+ const ctx = {
4396
+ isExpanded,
4397
+ isModal: isFullscreen,
4398
+ isPopover: !isFullscreen,
4399
+ activeInput: null,
4400
+ };
4401
+
4402
+ if (options.inputResolver) {
4403
+ const resolvedInput = options.inputResolver(component, ctx);
4404
+ // Guard against resolvers returning undefined or non-HTMLElement values.
4405
+ ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
4406
+ }
4407
+
4408
+ return ctx;
4409
+ }
4410
+
4411
+ /**
4412
+ * Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
4413
+ * Handles both sync and async handlers.
4414
+ * @param {HTMLElement} component - The component to attach the listener to.
4415
+ * @param {Object} strategy - Map of key names to handler functions.
4416
+ * @param {Object} [options] - Optional config passed to createDisplayContext.
4417
+ */
4418
+ function applyKeyboardStrategy(component, strategy, options = {}) {
4419
+ component.addEventListener('keydown', async (evt) => {
4420
+ const handler = strategy[evt.key] || strategy.default;
4421
+ if (typeof handler === 'function') {
4422
+ const ctx = createDisplayContext(component, options);
4423
+ await handler(component, evt, ctx);
4424
+ }
4425
+ });
4426
+ }
4427
+
4378
4428
  var styleCss$2$1 = i$7`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
4379
4429
 
4380
4430
  var colorCss$2$1 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
4381
4431
 
4382
4432
  var tokensCss$1$2 = i$7`:host(:not([ondark])),:host(:not([appearance=inverse])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-hover-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-hover-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
4383
4433
 
4434
+ /**
4435
+ * Creates a keyboard strategy for dialog-specific key handling.
4436
+ * All other keydown behavior is left to the browser's native bubbling path.
4437
+ * @param {HTMLElement} bib - The dropdown bib element.
4438
+ * @returns {Object} Keyboard handlers keyed by `event.key`.
4439
+ */
4440
+ // eslint-disable-next-line no-unused-vars
4441
+ function createDropdownBibKeyboardStrategy(bib) {
4442
+ return {
4443
+ // eslint-disable-next-line no-unused-vars
4444
+ Enter(_dialog, event) {
4445
+ // Floating UI handles Enter key to open the dropdown
4446
+ },
4447
+ // eslint-disable-next-line no-unused-vars
4448
+ Escape(_dialog, event) {
4449
+ // Floating UI handles Escape key to close the dropdown
4450
+ }
4451
+ };
4452
+ }
4453
+
4384
4454
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
4385
4455
  // See LICENSE in the project root for license information.
4386
4456
  /* eslint-disable max-lines */
@@ -4505,11 +4575,7 @@ class AuroDropdownBib extends i$4 {
4505
4575
  },
4506
4576
 
4507
4577
  /**
4508
- * Set by auro-dropdown when a menu option is highlighted via
4509
- * aria-activedescendant. The dialog keyboard bridge checks this
4510
- * flag so that Enter selects the highlighted option instead of
4511
- * activating the focused interactive element (e.g. the trigger
4512
- * button, or the bibtemplate close button in fullscreen).
4578
+ * Tracks whether a menu option is currently highlighted.
4513
4579
  * @private
4514
4580
  */
4515
4581
  hasActiveDescendant: {
@@ -4583,7 +4649,7 @@ class AuroDropdownBib extends i$4 {
4583
4649
 
4584
4650
  const dialog = this.shadowRoot.querySelector('dialog');
4585
4651
  this._setupCancelHandler(dialog);
4586
- this._setupKeyboardBridge(dialog);
4652
+ applyKeyboardStrategy(dialog, createDropdownBibKeyboardStrategy());
4587
4653
 
4588
4654
  this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4589
4655
  bubbles: true,
@@ -4610,92 +4676,6 @@ class AuroDropdownBib extends i$4 {
4610
4676
  });
4611
4677
  }
4612
4678
 
4613
- /**
4614
- * showModal() creates a closed focus scope — keyboard events inside
4615
- * the dialog's shadow DOM do NOT bubble out to the combobox/select
4616
- * keydown handlers in the parent shadow DOM. This handler bridges
4617
- * that gap by re-dispatching navigation keys so they cross the
4618
- * shadow boundary and reach the menu navigation logic in the parent
4619
- * component.
4620
- *
4621
- * The trade-off: intercepting these keys means native keyboard
4622
- * behaviors that would normally "just work" must be manually
4623
- * re-implemented here:
4624
- *
4625
- * - Enter on buttons: Custom elements (auro-button) don't get the
4626
- * native Enter→click that <button> provides, so we call .click()
4627
- * directly when Enter is pressed on a button-like element.
4628
- *
4629
- * - Tab: Intercepted and re-dispatched so parent components
4630
- * (select/combobox) can select the active option and close the
4631
- * dialog. The <dialog> provides containment and isolation
4632
- * (inert background, VoiceOver focus trapping, top layer), while
4633
- * the content inside is a role="listbox" navigated via
4634
- * aria-activedescendant (options are not focusable). Tab keyboard
4635
- * behavior follows listbox conventions (select + close) because
4636
- * the dialog's native Tab trap only cycles between the close
4637
- * button and browser chrome.
4638
- *
4639
- * - Escape: The native <dialog> fires a `cancel` event on ESC
4640
- * (handled by _setupCancelHandler), so the re-dispatched Escape
4641
- * is a secondary path for parent components that also listen for
4642
- * Escape keydown.
4643
- *
4644
- * @param {HTMLDialogElement} dialog - The dialog element to attach the keyboard bridge to.
4645
- * @private
4646
- */
4647
- _setupKeyboardBridge(dialog) {
4648
- const navKeys = new Set([
4649
- 'ArrowUp',
4650
- 'ArrowDown',
4651
- 'Enter',
4652
- 'Escape',
4653
- 'Tab'
4654
- ]);
4655
-
4656
- dialog.addEventListener('keydown', (event) => {
4657
- if (!navKeys.has(event.key)) {
4658
- return;
4659
- }
4660
-
4661
- // Custom elements (auro-button) don't get the native Enter→click
4662
- // behavior that <button> has. Find the button in the composed path
4663
- // and click it directly — but only when no menu option is
4664
- // highlighted. In fullscreen mode focus stays on the close button
4665
- // while arrow keys move the active-descendant highlight through
4666
- // the listbox. If the user presses Enter with an option
4667
- // highlighted, the intent is to select that option, not to click
4668
- // the close button. In that case we fall through and bridge the
4669
- // Enter key to the parent component's keyboard strategy.
4670
- if (event.key === 'Enter') {
4671
- if (!this.hasActiveDescendant) {
4672
- const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
4673
- const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
4674
- if (btn) {
4675
- event.preventDefault();
4676
- event.stopPropagation();
4677
- btn.click();
4678
- return;
4679
- }
4680
- }
4681
- }
4682
-
4683
- event.preventDefault();
4684
- event.stopPropagation();
4685
- const newEvent = new KeyboardEvent('keydown', {
4686
- key: event.key,
4687
- code: event.code,
4688
- shiftKey: event.shiftKey,
4689
- altKey: event.altKey,
4690
- ctrlKey: event.ctrlKey,
4691
- metaKey: event.metaKey,
4692
- bubbles: true,
4693
- composed: true,
4694
- cancelable: true
4695
- });
4696
- this.dispatchEvent(newEvent);
4697
- });
4698
- }
4699
4679
 
4700
4680
  /**
4701
4681
  * Blocks touch-driven page scroll while a fullscreen modal dialog is open.
@@ -5070,7 +5050,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
5070
5050
  }
5071
5051
  };
5072
5052
 
5073
- var formkitVersion$2 = '202603310455';
5053
+ var formkitVersion$2 = '202604021512';
5074
5054
 
5075
5055
  let AuroElement$2 = class AuroElement extends i$4 {
5076
5056
  static get properties() {
@@ -5251,7 +5231,6 @@ class AuroDropdown extends AuroElement$2 {
5251
5231
  this.appearance = 'default';
5252
5232
  this.chevron = false;
5253
5233
  this.disabled = false;
5254
- this.disableFocusTrap = false;
5255
5234
  this.error = false;
5256
5235
  this.tabIndex = 0;
5257
5236
  this.noToggle = false;
@@ -5349,9 +5328,8 @@ class AuroDropdown extends AuroElement$2 {
5349
5328
  // showModal() fires asynchronously via Lit's update cycle, which
5350
5329
  // falls outside the user activation window and causes iOS to
5351
5330
  // dismiss the keyboard.
5352
- if (this.isBibFullscreen && this.bibElement && this.bibElement.value) {
5353
- const useModal = !this.disableFocusTrap;
5354
- this.bibElement.value.open(useModal);
5331
+ if (this.bibElement && this.bibElement.value) {
5332
+ this.bibElement.value.open(this.isBibFullscreen);
5355
5333
  }
5356
5334
  }
5357
5335
 
@@ -5464,14 +5442,6 @@ class AuroDropdown extends AuroElement$2 {
5464
5442
  reflect: true
5465
5443
  },
5466
5444
 
5467
- /**
5468
- * If declared, the focus trap inside of bib will be turned off.
5469
- */
5470
- disableFocusTrap: {
5471
- type: Boolean,
5472
- reflect: true
5473
- },
5474
-
5475
5445
  /**
5476
5446
  * @private
5477
5447
  */
@@ -5745,7 +5715,7 @@ class AuroDropdown extends AuroElement$2 {
5745
5715
  if (this.isPopoverVisible) {
5746
5716
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
5747
5717
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
5748
- const useModal = this.isBibFullscreen && !this.disableFocusTrap;
5718
+ const useModal = this.isBibFullscreen;
5749
5719
  this.bibElement.value.open(useModal);
5750
5720
  } else {
5751
5721
  this.bibElement.value.close();
@@ -5755,7 +5725,7 @@ class AuroDropdown extends AuroElement$2 {
5755
5725
  // When fullscreen strategy changes while open, re-open dialog with correct mode
5756
5726
  // (e.g. resizing from desktop → mobile while dropdown is open)
5757
5727
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
5758
- const useModal = this.isBibFullscreen && !this.disableFocusTrap;
5728
+ const useModal = this.isBibFullscreen;
5759
5729
  this.bibElement.value.close();
5760
5730
  this.bibElement.value.open(useModal);
5761
5731
  }
@@ -5867,7 +5837,7 @@ class AuroDropdown extends AuroElement$2 {
5867
5837
  * @private
5868
5838
  */
5869
5839
  updateFocusTrap() {
5870
- if (this.isPopoverVisible && !this.disableFocusTrap) {
5840
+ if (this.isPopoverVisible) {
5871
5841
  if (!this.isBibFullscreen) {
5872
5842
  // Desktop: show() doesn't trap focus, so use FocusTrap
5873
5843
  this.focusTrap = new FocusTrap(this.bibContent);
@@ -12834,7 +12804,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
12834
12804
  }
12835
12805
  };
12836
12806
 
12837
- var formkitVersion$1 = '202603310455';
12807
+ var formkitVersion$1 = '202604021512';
12838
12808
 
12839
12809
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12840
12810
  // See LICENSE in the project root for license information.
@@ -13873,7 +13843,7 @@ class AuroBibtemplate extends i$4 {
13873
13843
  }
13874
13844
  }
13875
13845
 
13876
- var formkitVersion = '202603310455';
13846
+ var formkitVersion = '202604021512';
13877
13847
 
13878
13848
  var styleCss$3 = i$7`.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}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
13879
13849
 
@@ -15367,7 +15337,7 @@ class AuroCombobox extends AuroElement {
15367
15337
  * @returns {void}
15368
15338
  */
15369
15339
  configureCombobox() {
15370
- applyKeyboardStrategy(this, comboboxKeyboardStrategy, {
15340
+ applyKeyboardStrategy$1(this, comboboxKeyboardStrategy, {
15371
15341
  // In modal mode the input moves into the bib; route keyboard events to that element instead.
15372
15342
  inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
15373
15343
  });
@@ -16376,7 +16346,7 @@ class AuroMenuOption extends AuroElement {
16376
16346
  });
16377
16347
 
16378
16348
  return u$7`
16379
- <div class="${classes}">
16349
+ <div class="${classes}" aria-disabled="${this.disabled ? 'true' : 'false'}">
16380
16350
  ${this.selected && !this.noCheckmark
16381
16351
  ? this.generateIconHtml(checkmarkIcon.svg)
16382
16352
  : undefined}
@@ -17147,10 +17117,10 @@ class AuroMenu extends AuroElement {
17147
17117
 
17148
17118
  // Event Bindings
17149
17119
 
17150
- /**
17151
- * @private
17152
- */
17153
- this.handleKeyDown = this.handleKeyDown.bind(this);
17120
+ // /**
17121
+ // * @private
17122
+ // */
17123
+ // this.handleKeyDown = this.handleKeyDown.bind(this);
17154
17124
 
17155
17125
 
17156
17126
  /**
@@ -17499,7 +17469,7 @@ class AuroMenu extends AuroElement {
17499
17469
 
17500
17470
  this.provideContext();
17501
17471
 
17502
- this.addEventListener('keydown', this.handleKeyDown);
17472
+ // this.addEventListener('keydown', this.handleKeyDown);
17503
17473
  this.addEventListener('auroMenuOption-click', this.handleMouseSelect);
17504
17474
  this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
17505
17475
  this.addEventListener('slotchange', this.handleSlotChange);
@@ -17507,7 +17477,7 @@ class AuroMenu extends AuroElement {
17507
17477
  }
17508
17478
 
17509
17479
  disconnectedCallback() {
17510
- this.removeEventListener('keydown', this.handleKeyDown);
17480
+ // this.removeEventListener('keydown', this.handleKeyDown);
17511
17481
  this.removeEventListener('auroMenuOption-click', this.handleMouseSelect);
17512
17482
  this.removeEventListener('auroMenuOption-mouseover', this.handleOptionHover);
17513
17483
  this.removeEventListener('slotchange', this.handleSlotChange);
@@ -17648,26 +17618,33 @@ class AuroMenu extends AuroElement {
17648
17618
 
17649
17619
  // Event Handlers
17650
17620
 
17651
- /**
17652
- * Handles keyboard navigation.
17653
- * @private
17654
- * @param {KeyboardEvent} event - Event object from the browser.
17655
- */
17656
- handleKeyDown(event) {
17657
- event.preventDefault();
17658
- switch (event.key) {
17659
- case "ArrowDown":
17660
- this.menuService.highlightNext();
17661
- break;
17662
- case "ArrowUp":
17663
- this.menuService.highlightPrevious();
17664
- break;
17665
- case "Tab":
17666
- case "Enter":
17667
- this.menuService.selectHighlightedOption();
17668
- break;
17669
- }
17670
- }
17621
+ // /**
17622
+ // * Handles keyboard navigation.
17623
+ // * @private
17624
+ // * @param {KeyboardEvent} event - Event object from the browser.
17625
+ // */
17626
+ // handleKeyDown(event) {
17627
+ // // Update to Chris keyboard handler
17628
+ // // We have a new "navigateArrow" function in that handler, maybe that replaces those keys here?
17629
+ // event.preventDefault();
17630
+ // switch (event.key) {
17631
+ // case "ArrowDown":
17632
+ // console.warn("ArrowDown key is pressed and heard from menu");
17633
+ // this.menuService.highlightNext();
17634
+ // break;
17635
+ // case "ArrowUp":
17636
+ // console.warn("ArrowUp key is pressed and heard from menu");
17637
+ // this.menuService.highlightPrevious();
17638
+ // break;
17639
+ // case "Tab":
17640
+ // case "Enter":
17641
+ // this.menuService.selectHighlightedOption();
17642
+ // // Does this need to get separated into two cases to handle the different expected behavior of tab vs enter?
17643
+ // break;
17644
+ // default:
17645
+ // break;
17646
+ // }
17647
+ // }
17671
17648
 
17672
17649
  /**
17673
17650
  * Navigates the menu options in the specified direction.