@aurodesignsystem-dev/auro-formkit 0.0.0-pr1428.1 → 0.0.0-pr1429.1

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 (54) hide show
  1. package/components/checkbox/demo/api.min.js +3 -3
  2. package/components/checkbox/demo/index.min.js +3 -3
  3. package/components/checkbox/dist/index.js +3 -3
  4. package/components/checkbox/dist/registered.js +3 -3
  5. package/components/combobox/demo/api.html +1 -0
  6. package/components/combobox/demo/api.js +3 -1
  7. package/components/combobox/demo/api.md +75 -0
  8. package/components/combobox/demo/api.min.js +29 -8
  9. package/components/combobox/demo/index.min.js +16 -7
  10. package/components/combobox/dist/comboboxKeyboardStrategy.d.ts +1 -1
  11. package/components/combobox/dist/index.js +16 -7
  12. package/components/combobox/dist/registered.js +16 -7
  13. package/components/counter/demo/api.html +3 -0
  14. package/components/counter/demo/api.js +4 -0
  15. package/components/counter/demo/api.md +130 -0
  16. package/components/counter/demo/api.min.js +47 -5
  17. package/components/counter/demo/index.min.js +27 -5
  18. package/components/counter/dist/counterGroupKeyboardStrategy.d.ts +3 -0
  19. package/components/counter/dist/index.js +27 -5
  20. package/components/counter/dist/registered.js +27 -5
  21. package/components/datepicker/demo/api.html +1 -0
  22. package/components/datepicker/demo/api.js +2 -0
  23. package/components/datepicker/demo/api.md +57 -0
  24. package/components/datepicker/demo/api.min.js +103 -9
  25. package/components/datepicker/demo/index.min.js +91 -9
  26. package/components/datepicker/dist/datepickerKeyboardStrategy.d.ts +3 -1
  27. package/components/datepicker/dist/index.js +91 -9
  28. package/components/datepicker/dist/registered.js +91 -9
  29. package/components/dropdown/demo/api.html +1 -0
  30. package/components/dropdown/demo/api.js +2 -0
  31. package/components/dropdown/demo/api.md +95 -0
  32. package/components/dropdown/demo/api.min.js +22 -2
  33. package/components/dropdown/demo/index.min.js +2 -2
  34. package/components/dropdown/dist/index.js +2 -2
  35. package/components/dropdown/dist/registered.js +2 -2
  36. package/components/form/demo/api.min.js +148 -31
  37. package/components/form/demo/index.min.js +148 -31
  38. package/components/input/demo/api.min.js +1 -1
  39. package/components/input/demo/index.min.js +1 -1
  40. package/components/input/dist/index.js +1 -1
  41. package/components/input/dist/registered.js +1 -1
  42. package/components/radio/demo/api.min.js +2 -2
  43. package/components/radio/demo/index.min.js +2 -2
  44. package/components/radio/dist/index.js +2 -2
  45. package/components/radio/dist/registered.js +2 -2
  46. package/components/select/demo/api.html +1 -0
  47. package/components/select/demo/api.js +2 -0
  48. package/components/select/demo/api.md +76 -0
  49. package/components/select/demo/api.min.js +21 -4
  50. package/components/select/demo/index.min.js +8 -4
  51. package/components/select/dist/index.js +8 -4
  52. package/components/select/dist/registered.js +8 -4
  53. package/custom-elements.json +1459 -1435
  54. package/package.json +3 -1
@@ -196,7 +196,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
196
196
  }
197
197
  };
198
198
 
199
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
199
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
200
200
  // See LICENSE in the project root for license information.
201
201
 
202
202
 
@@ -1521,9 +1521,9 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1521
1521
  }
1522
1522
  };
1523
1523
 
1524
- var formkitVersion$1 = '202604081450';
1524
+ var formkitVersion$1 = '202604081945';
1525
1525
 
1526
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1526
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1527
1527
  // See LICENSE in the project root for license information.
1528
1528
 
1529
1529
  const keyboardStrategy = {
@@ -5705,7 +5705,7 @@ class AuroHelpText extends i$2 {
5705
5705
  }
5706
5706
  }
5707
5707
 
5708
- var formkitVersion = '202604081450';
5708
+ var formkitVersion = '202604081945';
5709
5709
 
5710
5710
  let AuroElement$1 = class AuroElement extends i$2 {
5711
5711
  static get properties() {
@@ -5811,7 +5811,7 @@ let AuroElement$1 = class AuroElement extends i$2 {
5811
5811
  }
5812
5812
  };
5813
5813
 
5814
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5814
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
5815
5815
  // See LICENSE in the project root for license information.
5816
5816
 
5817
5817
 
@@ -7379,6 +7379,24 @@ class AuroElement extends i$2 {
7379
7379
  }
7380
7380
  }
7381
7381
 
7382
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
7383
+ // See LICENSE in the project root for license information.
7384
+
7385
+ const counterGroupKeyboardStrategy = {
7386
+ Escape(component, evt) {
7387
+ if (!component.dropdown || !component.dropdown.isPopoverVisible) {
7388
+ return;
7389
+ }
7390
+
7391
+ // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
7392
+ // Because stopPropagation prevents the document-level floatingUI keydown handler from
7393
+ // seeing this event, we must also close the dropdown explicitly.
7394
+ evt.stopPropagation();
7395
+
7396
+ component.dropdown.hide();
7397
+ },
7398
+ };
7399
+
7382
7400
  /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
7383
7401
  */
7384
7402
 
@@ -7979,6 +7997,10 @@ class AuroCounterGroup extends AuroElement {
7979
7997
  super.firstUpdated();
7980
7998
  this.updateValue();
7981
7999
  this.updateValueText();
8000
+
8001
+ if (this.isDropdown) {
8002
+ applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
8003
+ }
7982
8004
  }
7983
8005
 
7984
8006
  /**
@@ -8216,6 +8238,24 @@ function eventCounterExample() {
8216
8238
  });
8217
8239
  }
8218
8240
 
8241
+ function inDialogExample() {
8242
+ document.querySelector("#counter-dialog-opener").addEventListener("click", () => {
8243
+ const dialog = document.querySelector("#counter-dialog");
8244
+ dialog.open = true;
8245
+ });
8246
+ }
8247
+
8248
+ function inDrawerExample() {
8249
+ document.querySelector("#counter-drawer-opener").addEventListener("click", () => {
8250
+ const drawer = document.querySelector("#counter-drawer");
8251
+ if (drawer.hasAttribute('open')) {
8252
+ drawer.removeAttribute('open');
8253
+ } else {
8254
+ drawer.setAttribute('open', true);
8255
+ }
8256
+ });
8257
+ }
8258
+
8219
8259
  /* eslint-disable jsdoc/require-jsdoc, no-magic-numbers */
8220
8260
 
8221
8261
  function initExamples(initialCount = 0) {
@@ -8223,6 +8263,8 @@ function initExamples(initialCount = 0) {
8223
8263
  // javascript example function calls to be added here upon creation to test examples
8224
8264
  // dropdownCounterExample();
8225
8265
  eventCounterExample();
8266
+ inDialogExample();
8267
+ inDrawerExample();
8226
8268
 
8227
8269
  } catch (err) {
8228
8270
  if (initialCount <= 20) {
@@ -196,7 +196,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
196
196
  }
197
197
  };
198
198
 
199
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
199
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
200
200
  // See LICENSE in the project root for license information.
201
201
 
202
202
 
@@ -1521,9 +1521,9 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1521
1521
  }
1522
1522
  };
1523
1523
 
1524
- var formkitVersion$1 = '202604081450';
1524
+ var formkitVersion$1 = '202604081945';
1525
1525
 
1526
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1526
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1527
1527
  // See LICENSE in the project root for license information.
1528
1528
 
1529
1529
  const keyboardStrategy = {
@@ -5705,7 +5705,7 @@ class AuroHelpText extends i$2 {
5705
5705
  }
5706
5706
  }
5707
5707
 
5708
- var formkitVersion = '202604081450';
5708
+ var formkitVersion = '202604081945';
5709
5709
 
5710
5710
  let AuroElement$1 = class AuroElement extends i$2 {
5711
5711
  static get properties() {
@@ -5811,7 +5811,7 @@ let AuroElement$1 = class AuroElement extends i$2 {
5811
5811
  }
5812
5812
  };
5813
5813
 
5814
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5814
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
5815
5815
  // See LICENSE in the project root for license information.
5816
5816
 
5817
5817
 
@@ -7379,6 +7379,24 @@ class AuroElement extends i$2 {
7379
7379
  }
7380
7380
  }
7381
7381
 
7382
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
7383
+ // See LICENSE in the project root for license information.
7384
+
7385
+ const counterGroupKeyboardStrategy = {
7386
+ Escape(component, evt) {
7387
+ if (!component.dropdown || !component.dropdown.isPopoverVisible) {
7388
+ return;
7389
+ }
7390
+
7391
+ // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
7392
+ // Because stopPropagation prevents the document-level floatingUI keydown handler from
7393
+ // seeing this event, we must also close the dropdown explicitly.
7394
+ evt.stopPropagation();
7395
+
7396
+ component.dropdown.hide();
7397
+ },
7398
+ };
7399
+
7382
7400
  /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
7383
7401
  */
7384
7402
 
@@ -7979,6 +7997,10 @@ class AuroCounterGroup extends AuroElement {
7979
7997
  super.firstUpdated();
7980
7998
  this.updateValue();
7981
7999
  this.updateValueText();
8000
+
8001
+ if (this.isDropdown) {
8002
+ applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
8003
+ }
7982
8004
  }
7983
8005
 
7984
8006
  /**
@@ -0,0 +1,3 @@
1
+ export namespace counterGroupKeyboardStrategy {
2
+ function Escape(component: any, evt: any): void;
3
+ }
@@ -152,7 +152,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
152
152
  }
153
153
  };
154
154
 
155
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
155
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
156
156
  // See LICENSE in the project root for license information.
157
157
 
158
158
 
@@ -1471,9 +1471,9 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1471
1471
  }
1472
1472
  };
1473
1473
 
1474
- var formkitVersion$1 = '202604081450';
1474
+ var formkitVersion$1 = '202604081945';
1475
1475
 
1476
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1476
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1477
1477
  // See LICENSE in the project root for license information.
1478
1478
 
1479
1479
  const keyboardStrategy = {
@@ -5637,7 +5637,7 @@ class AuroHelpText extends LitElement {
5637
5637
  }
5638
5638
  }
5639
5639
 
5640
- var formkitVersion = '202604081450';
5640
+ var formkitVersion = '202604081945';
5641
5641
 
5642
5642
  let AuroElement$1 = class AuroElement extends LitElement {
5643
5643
  static get properties() {
@@ -5743,7 +5743,7 @@ let AuroElement$1 = class AuroElement extends LitElement {
5743
5743
  }
5744
5744
  };
5745
5745
 
5746
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5746
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
5747
5747
  // See LICENSE in the project root for license information.
5748
5748
 
5749
5749
 
@@ -7311,6 +7311,24 @@ class AuroElement extends LitElement {
7311
7311
  }
7312
7312
  }
7313
7313
 
7314
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
7315
+ // See LICENSE in the project root for license information.
7316
+
7317
+ const counterGroupKeyboardStrategy = {
7318
+ Escape(component, evt) {
7319
+ if (!component.dropdown || !component.dropdown.isPopoverVisible) {
7320
+ return;
7321
+ }
7322
+
7323
+ // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
7324
+ // Because stopPropagation prevents the document-level floatingUI keydown handler from
7325
+ // seeing this event, we must also close the dropdown explicitly.
7326
+ evt.stopPropagation();
7327
+
7328
+ component.dropdown.hide();
7329
+ },
7330
+ };
7331
+
7314
7332
  /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
7315
7333
  */
7316
7334
 
@@ -7911,6 +7929,10 @@ class AuroCounterGroup extends AuroElement {
7911
7929
  super.firstUpdated();
7912
7930
  this.updateValue();
7913
7931
  this.updateValueText();
7932
+
7933
+ if (this.isDropdown) {
7934
+ applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
7935
+ }
7914
7936
  }
7915
7937
 
7916
7938
  /**
@@ -152,7 +152,7 @@ let AuroLibraryRuntimeUtils$4 = class AuroLibraryRuntimeUtils {
152
152
  }
153
153
  };
154
154
 
155
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
155
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
156
156
  // See LICENSE in the project root for license information.
157
157
 
158
158
 
@@ -1471,9 +1471,9 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1471
1471
  }
1472
1472
  };
1473
1473
 
1474
- var formkitVersion$1 = '202604081450';
1474
+ var formkitVersion$1 = '202604081945';
1475
1475
 
1476
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1476
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1477
1477
  // See LICENSE in the project root for license information.
1478
1478
 
1479
1479
  const keyboardStrategy = {
@@ -5637,7 +5637,7 @@ class AuroHelpText extends LitElement {
5637
5637
  }
5638
5638
  }
5639
5639
 
5640
- var formkitVersion = '202604081450';
5640
+ var formkitVersion = '202604081945';
5641
5641
 
5642
5642
  let AuroElement$1 = class AuroElement extends LitElement {
5643
5643
  static get properties() {
@@ -5743,7 +5743,7 @@ let AuroElement$1 = class AuroElement extends LitElement {
5743
5743
  }
5744
5744
  };
5745
5745
 
5746
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
5746
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
5747
5747
  // See LICENSE in the project root for license information.
5748
5748
 
5749
5749
 
@@ -7311,6 +7311,24 @@ class AuroElement extends LitElement {
7311
7311
  }
7312
7312
  }
7313
7313
 
7314
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
7315
+ // See LICENSE in the project root for license information.
7316
+
7317
+ const counterGroupKeyboardStrategy = {
7318
+ Escape(component, evt) {
7319
+ if (!component.dropdown || !component.dropdown.isPopoverVisible) {
7320
+ return;
7321
+ }
7322
+
7323
+ // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
7324
+ // Because stopPropagation prevents the document-level floatingUI keydown handler from
7325
+ // seeing this event, we must also close the dropdown explicitly.
7326
+ evt.stopPropagation();
7327
+
7328
+ component.dropdown.hide();
7329
+ },
7330
+ };
7331
+
7314
7332
  /* eslint-disable lit/no-invalid-html, lit/binding-positions, max-lines, no-underscore-dangle, arrow-parens, no-confusing-arrow, curly, dot-location, no-inline-comments, line-comment-position,
7315
7333
  */
7316
7334
 
@@ -7911,6 +7929,10 @@ class AuroCounterGroup extends AuroElement {
7911
7929
  super.firstUpdated();
7912
7930
  this.updateValue();
7913
7931
  this.updateValueText();
7932
+
7933
+ if (this.isDropdown) {
7934
+ applyKeyboardStrategy$1(this, counterGroupKeyboardStrategy);
7935
+ }
7914
7936
  }
7915
7937
 
7916
7938
  /**
@@ -53,6 +53,7 @@
53
53
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-accordion@latest/+esm" type="module"></script>
54
54
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-button@latest/+esm" type="module"></script>
55
55
  <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-dialog@latest/+esm" type="module"></script>
56
+ <script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-drawer@latest/+esm" type="module"></script>
56
57
 
57
58
  <script type="module" data-demo-script="true">
58
59
  import { initExamples } from "./api.min.js";
@@ -6,6 +6,7 @@ import { updateMaxDateExample } from './../apiExamples/update-max-date';
6
6
  import { updateMinDateExample } from './../apiExamples/update-min-date';
7
7
  import { validityExample } from './../apiExamples/validity';
8
8
  import { inDialogExample } from '../apiExamples/in-dialog';
9
+ import { inDrawerExample } from '../apiExamples/in-drawer';
9
10
  import { localizationExample } from '../apiExamples/localization';
10
11
  import { resetStateExample } from '../apiExamples/reset-state';
11
12
  import '../src/registered.js';
@@ -22,6 +23,7 @@ export function initExamples(initCount) {
22
23
  updateMinDateExample();
23
24
  validityExample();
24
25
  inDialogExample();
26
+ inDrawerExample();
25
27
  localizationExample();
26
28
  resetStateExample();
27
29
  } catch (error) {
@@ -1759,6 +1759,63 @@ export function inDialogExample() {
1759
1759
  <!-- AURO-GENERATED-CONTENT:END -->
1760
1760
  </auro-accordion>
1761
1761
 
1762
+ ### Datepicker in Drawer
1763
+
1764
+ The following example demonstrates the use of `<auro-datepicker>` within an `<auro-drawer>` component.
1765
+
1766
+ <div class="exampleWrapper">
1767
+ <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../apiExamples/in-drawer.html) -->
1768
+ <!-- The below content is automatically added from ./../apiExamples/in-drawer.html -->
1769
+ <div>
1770
+ <auro-button id="datepicker-drawer-opener">Datepicker in Drawer</auro-button>
1771
+ <auro-drawer id="datepicker-drawer">
1772
+ <span slot="header">Datepicker in Drawer</span>
1773
+ <div slot="content">
1774
+ <auro-datepicker>
1775
+ <span slot="bib.fullscreen.headline">inDrawer Example</span>
1776
+ </auro-datepicker>
1777
+ </div>
1778
+ </auro-drawer>
1779
+ </div>
1780
+ <!-- AURO-GENERATED-CONTENT:END -->
1781
+ </div>
1782
+ <auro-accordion alignRight>
1783
+ <span slot="trigger">See code</span>
1784
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/in-drawer.html) -->
1785
+ <!-- The below code snippet is automatically added from ./../apiExamples/in-drawer.html -->
1786
+
1787
+ ```html
1788
+ <div>
1789
+ <auro-button id="datepicker-drawer-opener">Datepicker in Drawer</auro-button>
1790
+ <auro-drawer id="datepicker-drawer">
1791
+ <span slot="header">Datepicker in Drawer</span>
1792
+ <div slot="content">
1793
+ <auro-datepicker>
1794
+ <span slot="bib.fullscreen.headline">inDrawer Example</span>
1795
+ </auro-datepicker>
1796
+ </div>
1797
+ </auro-drawer>
1798
+ </div>
1799
+ ```
1800
+ <!-- AURO-GENERATED-CONTENT:END -->
1801
+ <!-- AURO-GENERATED-CONTENT:START (CODE:src=./../apiExamples/in-drawer.js) -->
1802
+ <!-- The below code snippet is automatically added from ./../apiExamples/in-drawer.js -->
1803
+
1804
+ ```js
1805
+ export function inDrawerExample() {
1806
+ document.querySelector("#datepicker-drawer-opener").addEventListener("click", () => {
1807
+ const drawer = document.querySelector("#datepicker-drawer");
1808
+ if (drawer.hasAttribute('open')) {
1809
+ drawer.removeAttribute('open');
1810
+ } else {
1811
+ drawer.setAttribute('open', true);
1812
+ }
1813
+ });
1814
+ };
1815
+ ```
1816
+ <!-- AURO-GENERATED-CONTENT:END -->
1817
+ </auro-accordion>
1818
+
1762
1819
  ## Restyle Component with CSS Variables
1763
1820
 
1764
1821
  The component may be restyled by changing the values of the following token(s).
@@ -243,6 +243,17 @@ function inDialogExample() {
243
243
  });
244
244
  }
245
245
 
246
+ function inDrawerExample() {
247
+ document.querySelector("#datepicker-drawer-opener").addEventListener("click", () => {
248
+ const drawer = document.querySelector("#datepicker-drawer");
249
+ if (drawer.hasAttribute('open')) {
250
+ drawer.removeAttribute('open');
251
+ } else {
252
+ drawer.setAttribute('open', true);
253
+ }
254
+ });
255
+ }
256
+
246
257
  function localizationExample() {
247
258
  const localizedDatepicker = document.querySelector("#localizationExample");
248
259
 
@@ -9549,7 +9560,7 @@ class AuroBibtemplate extends i$1 {
9549
9560
  }
9550
9561
  }
9551
9562
 
9552
- var formkitVersion$2 = '202604081450';
9563
+ var formkitVersion$2 = '202604081945';
9553
9564
 
9554
9565
  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
9566
  `,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}}
@@ -13080,7 +13091,7 @@ var iconVersion$2 = '9.1.2';
13080
13091
  * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
13081
13092
  * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
13082
13093
  */
13083
- function createDisplayContext(component, options = {}) {
13094
+ function createDisplayContext$1(component, options = {}) {
13084
13095
  const dd = options.dropdown || component.dropdown;
13085
13096
  // isPopoverVisible reflects as the `open` attribute.
13086
13097
  // It reports whether the bib is open in any mode (popover or modal).
@@ -13110,11 +13121,11 @@ function createDisplayContext(component, options = {}) {
13110
13121
  * @param {Object} strategy - Map of key names to handler functions.
13111
13122
  * @param {Object} [options] - Optional config passed to createDisplayContext.
13112
13123
  */
13113
- function applyKeyboardStrategy(component, strategy, options = {}) {
13124
+ function applyKeyboardStrategy$1(component, strategy, options = {}) {
13114
13125
  component.addEventListener('keydown', async (evt) => {
13115
13126
  const handler = strategy[evt.key] || strategy.default;
13116
13127
  if (typeof handler === 'function') {
13117
- const ctx = createDisplayContext(component, options);
13128
+ const ctx = createDisplayContext$1(component, options);
13118
13129
  await handler(component, evt, ctx);
13119
13130
  }
13120
13131
  });
@@ -13349,7 +13360,7 @@ class AuroDropdownBib extends i$1 {
13349
13360
 
13350
13361
  const dialog = this.shadowRoot.querySelector('dialog');
13351
13362
  this._setupCancelHandler(dialog);
13352
- applyKeyboardStrategy(dialog, createDropdownBibKeyboardStrategy());
13363
+ applyKeyboardStrategy$1(dialog, createDropdownBibKeyboardStrategy());
13353
13364
 
13354
13365
  this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
13355
13366
  bubbles: true,
@@ -13751,7 +13762,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
13751
13762
  }
13752
13763
  };
13753
13764
 
13754
- var formkitVersion$1 = '202604081450';
13765
+ var formkitVersion$1 = '202604081945';
13755
13766
 
13756
13767
  let AuroElement$2 = class AuroElement extends i$1 {
13757
13768
  static get properties() {
@@ -13857,7 +13868,7 @@ let AuroElement$2 = class AuroElement extends i$1 {
13857
13868
  }
13858
13869
  };
13859
13870
 
13860
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
13871
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
13861
13872
  // See LICENSE in the project root for license information.
13862
13873
 
13863
13874
 
@@ -21515,7 +21526,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
21515
21526
  }
21516
21527
  };
21517
21528
 
21518
- var formkitVersion = '202604081450';
21529
+ var formkitVersion = '202604081945';
21519
21530
 
21520
21531
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
21521
21532
  // See LICENSE in the project root for license information.
@@ -22712,7 +22723,88 @@ function guardTouchPassthrough(element) {
22712
22723
  }, { once: true });
22713
22724
  }
22714
22725
 
22715
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22726
+ /**
22727
+ * Computes display state once per keydown event.
22728
+ * Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
22729
+ *
22730
+ * @param {HTMLElement} component - The component with a dropdown reference.
22731
+ * @param {Object} [options] - Optional config.
22732
+ * @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
22733
+ * @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
22734
+ * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
22735
+ * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
22736
+ */
22737
+ function createDisplayContext(component, options = {}) {
22738
+ const dd = options.dropdown || component.dropdown;
22739
+ // isPopoverVisible reflects as the `open` attribute.
22740
+ // It reports whether the bib is open in any mode (popover or modal).
22741
+ const isExpanded = Boolean(dd && dd.isPopoverVisible);
22742
+ const isFullscreen = Boolean(dd && dd.isBibFullscreen);
22743
+
22744
+ const ctx = {
22745
+ isExpanded,
22746
+ isModal: isFullscreen,
22747
+ isPopover: !isFullscreen,
22748
+ activeInput: null,
22749
+ };
22750
+
22751
+ if (options.inputResolver) {
22752
+ const resolvedInput = options.inputResolver(component, ctx);
22753
+ // Guard against resolvers returning undefined or non-HTMLElement values.
22754
+ ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
22755
+ }
22756
+
22757
+ return ctx;
22758
+ }
22759
+
22760
+ /**
22761
+ * Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
22762
+ * Handles both sync and async handlers.
22763
+ * @param {HTMLElement} component - The component to attach the listener to.
22764
+ * @param {Object} strategy - Map of key names to handler functions.
22765
+ * @param {Object} [options] - Optional config passed to createDisplayContext.
22766
+ */
22767
+ function applyKeyboardStrategy(component, strategy, options = {}) {
22768
+ component.addEventListener('keydown', async (evt) => {
22769
+ const handler = strategy[evt.key] || strategy.default;
22770
+ if (typeof handler === 'function') {
22771
+ const ctx = createDisplayContext(component, options);
22772
+ await handler(component, evt, ctx);
22773
+ }
22774
+ });
22775
+ }
22776
+
22777
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
22778
+ // See LICENSE in the project root for license information.
22779
+
22780
+ // Authoritative datepicker keyboard behavior spec:
22781
+ // components/datepicker/docs/partials/keyboardBehavior.md
22782
+ //
22783
+ // Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
22784
+ // - The bib opens and closes via pointer/touch interaction only.
22785
+ // - Escape closes the bib and prevents the event from reaching parent containers.
22786
+ // - Tab uses the browser's default tabindex sequence across trigger controls.
22787
+ // - Enter and Space do not open or close the bib.
22788
+ //
22789
+ // This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
22790
+ // added, handlers should go here following the same strategy pattern used by
22791
+ // auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
22792
+ const datepickerKeyboardStrategy = {
22793
+ Escape(component, evt) {
22794
+ if (!component.dropdown || !component.dropdown.isPopoverVisible) {
22795
+ return;
22796
+ }
22797
+
22798
+ // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
22799
+ // Because stopPropagation prevents the document-level floatingUI keydown handler from
22800
+ // seeing this event, we must also close the dropdown explicitly.
22801
+ evt.stopPropagation();
22802
+
22803
+ component.dropdown.hide();
22804
+ },
22805
+ };
22806
+
22807
+ // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
22716
22808
  // See LICENSE in the project root for license information.
22717
22809
 
22718
22810
 
@@ -24169,6 +24261,7 @@ class AuroDatePicker extends AuroElement {
24169
24261
  this.configureCalendar();
24170
24262
  this.configureDatepicker();
24171
24263
  this.configureClickHandler();
24264
+ applyKeyboardStrategy(this, datepickerKeyboardStrategy);
24172
24265
  }
24173
24266
 
24174
24267
  connectedCallback() {
@@ -24639,6 +24732,7 @@ function initExamples(initCount) {
24639
24732
  updateMinDateExample();
24640
24733
  validityExample();
24641
24734
  inDialogExample();
24735
+ inDrawerExample();
24642
24736
  localizationExample();
24643
24737
  resetStateExample();
24644
24738
  } catch (error) {