@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
@@ -4289,45 +4289,70 @@ class AuroDropdownBib extends LitElement {
4289
4289
  firstUpdated(changedProperties) {
4290
4290
  super.firstUpdated(changedProperties);
4291
4291
 
4292
- // Handle ESC key via dialog's cancel event
4293
4292
  const dialog = this.shadowRoot.querySelector('dialog');
4293
+ this._setupCancelHandler(dialog);
4294
+ this._setupKeyboardBridge(dialog);
4295
+
4296
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4297
+ bubbles: true,
4298
+ composed: true,
4299
+ detail: {
4300
+ element: this
4301
+ }
4302
+ }));
4303
+ }
4304
+
4305
+ /**
4306
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
4307
+ * an `auro-bib-cancel` custom event so parent components can close.
4308
+ * @param {HTMLDialogElement} dialog
4309
+ * @private
4310
+ */
4311
+ _setupCancelHandler(dialog) {
4294
4312
  dialog.addEventListener('cancel', (event) => {
4295
- // Let parent handle closing
4296
4313
  event.preventDefault();
4297
4314
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
4298
4315
  bubbles: true,
4299
4316
  composed: true
4300
4317
  }));
4301
4318
  });
4319
+ }
4302
4320
 
4303
- // showModal() creates a closed focus scope — keyboard events inside
4304
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
4305
- // keydown handlers in the parent shadow DOM. This handler bridges
4306
- // that gap by re-dispatching navigation keys so they cross the
4307
- // shadow boundary and reach the menu navigation logic in the parent
4308
- // component.
4309
- //
4310
- // The trade-off: intercepting these keys means native keyboard
4311
- // behaviors that would normally "just work" must be manually
4312
- // re-implemented here:
4313
- //
4314
- // - Enter on buttons: Custom elements (auro-button) don't get the
4315
- // native Enter→click that <button> provides, so we call .click()
4316
- // directly when Enter is pressed on a button-like element.
4317
- //
4318
- // - Tab: Intercepted and re-dispatched so parent components
4319
- // (select/combobox) can select the active option and close the
4320
- // dialog. The <dialog> provides containment and isolation
4321
- // (inert background, VoiceOver focus trapping, top layer), while
4322
- // the content inside is a role="listbox" navigated via
4323
- // aria-activedescendant (options are not focusable). Tab keyboard
4324
- // behavior follows listbox conventions (select + close) because
4325
- // the dialog's native Tab trap only cycles between the close
4326
- // button and browser chrome.
4327
- //
4328
- // - Escape: The native <dialog> fires a `cancel` event on ESC
4329
- // (handled above), so the re-dispatched Escape is a secondary
4330
- // path for parent components that also listen for Escape keydown.
4321
+ /**
4322
+ * showModal() creates a closed focus scope keyboard events inside
4323
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
4324
+ * keydown handlers in the parent shadow DOM. This handler bridges
4325
+ * that gap by re-dispatching navigation keys so they cross the
4326
+ * shadow boundary and reach the menu navigation logic in the parent
4327
+ * component.
4328
+ *
4329
+ * The trade-off: intercepting these keys means native keyboard
4330
+ * behaviors that would normally "just work" must be manually
4331
+ * re-implemented here:
4332
+ *
4333
+ * - Enter on buttons: Custom elements (auro-button) don't get the
4334
+ * native Enter→click that <button> provides, so we call .click()
4335
+ * directly when Enter is pressed on a button-like element.
4336
+ *
4337
+ * - Tab: Intercepted and re-dispatched so parent components
4338
+ * (select/combobox) can select the active option and close the
4339
+ * dialog. The <dialog> provides containment and isolation
4340
+ * (inert background, VoiceOver focus trapping, top layer), while
4341
+ * the content inside is a role="listbox" navigated via
4342
+ * aria-activedescendant (options are not focusable). Tab keyboard
4343
+ * behavior follows listbox conventions (select + close) because
4344
+ * the dialog's native Tab trap only cycles between the close
4345
+ * button and browser chrome.
4346
+ *
4347
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
4348
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
4349
+ * is a secondary path for parent components that also listen for
4350
+ * Escape keydown.
4351
+ *
4352
+ * @param {HTMLDialogElement} dialog
4353
+ * @private
4354
+ */
4355
+ _setupKeyboardBridge(dialog) {
4331
4356
  const navKeys = new Set([
4332
4357
  'ArrowUp',
4333
4358
  'ArrowDown',
@@ -4335,6 +4360,7 @@ class AuroDropdownBib extends LitElement {
4335
4360
  'Escape',
4336
4361
  'Tab'
4337
4362
  ]);
4363
+
4338
4364
  dialog.addEventListener('keydown', (event) => {
4339
4365
  if (!navKeys.has(event.key)) {
4340
4366
  return;
@@ -4369,15 +4395,6 @@ class AuroDropdownBib extends LitElement {
4369
4395
  });
4370
4396
  this.dispatchEvent(newEvent);
4371
4397
  });
4372
-
4373
- // Dispatch a custom event when the component is connected
4374
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4375
- bubbles: true,
4376
- composed: true,
4377
- detail: {
4378
- element: this
4379
- }
4380
- }));
4381
4398
  }
4382
4399
 
4383
4400
  /**
@@ -4729,7 +4746,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
4729
4746
  }
4730
4747
  };
4731
4748
 
4732
- var formkitVersion$2 = '202603091734';
4749
+ var formkitVersion$2 = '202603091748';
4733
4750
 
4734
4751
  let AuroElement$2 = class AuroElement extends LitElement {
4735
4752
  static get properties() {
@@ -12466,7 +12483,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
12466
12483
  }
12467
12484
  };
12468
12485
 
12469
- var formkitVersion$1 = '202603091734';
12486
+ var formkitVersion$1 = '202603091748';
12470
12487
 
12471
12488
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12472
12489
  // See LICENSE in the project root for license information.
@@ -13505,7 +13522,7 @@ class AuroBibtemplate extends LitElement {
13505
13522
  }
13506
13523
  }
13507
13524
 
13508
- var formkitVersion = '202603091734';
13525
+ var formkitVersion = '202603091748';
13509
13526
 
13510
13527
  var styleCss$1 = css`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}: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}`;
13511
13528
 
@@ -1470,7 +1470,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1470
1470
  }
1471
1471
  };
1472
1472
 
1473
- var formkitVersion$1 = '202603091734';
1473
+ var formkitVersion$1 = '202603091748';
1474
1474
 
1475
1475
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1476
1476
  // See LICENSE in the project root for license information.
@@ -4973,45 +4973,70 @@ class AuroDropdownBib extends i$2 {
4973
4973
  firstUpdated(changedProperties) {
4974
4974
  super.firstUpdated(changedProperties);
4975
4975
 
4976
- // Handle ESC key via dialog's cancel event
4977
4976
  const dialog = this.shadowRoot.querySelector('dialog');
4977
+ this._setupCancelHandler(dialog);
4978
+ this._setupKeyboardBridge(dialog);
4979
+
4980
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4981
+ bubbles: true,
4982
+ composed: true,
4983
+ detail: {
4984
+ element: this
4985
+ }
4986
+ }));
4987
+ }
4988
+
4989
+ /**
4990
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
4991
+ * an `auro-bib-cancel` custom event so parent components can close.
4992
+ * @param {HTMLDialogElement} dialog
4993
+ * @private
4994
+ */
4995
+ _setupCancelHandler(dialog) {
4978
4996
  dialog.addEventListener('cancel', (event) => {
4979
- // Let parent handle closing
4980
4997
  event.preventDefault();
4981
4998
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
4982
4999
  bubbles: true,
4983
5000
  composed: true
4984
5001
  }));
4985
5002
  });
5003
+ }
4986
5004
 
4987
- // showModal() creates a closed focus scope — keyboard events inside
4988
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
4989
- // keydown handlers in the parent shadow DOM. This handler bridges
4990
- // that gap by re-dispatching navigation keys so they cross the
4991
- // shadow boundary and reach the menu navigation logic in the parent
4992
- // component.
4993
- //
4994
- // The trade-off: intercepting these keys means native keyboard
4995
- // behaviors that would normally "just work" must be manually
4996
- // re-implemented here:
4997
- //
4998
- // - Enter on buttons: Custom elements (auro-button) don't get the
4999
- // native Enter→click that <button> provides, so we call .click()
5000
- // directly when Enter is pressed on a button-like element.
5001
- //
5002
- // - Tab: Intercepted and re-dispatched so parent components
5003
- // (select/combobox) can select the active option and close the
5004
- // dialog. The <dialog> provides containment and isolation
5005
- // (inert background, VoiceOver focus trapping, top layer), while
5006
- // the content inside is a role="listbox" navigated via
5007
- // aria-activedescendant (options are not focusable). Tab keyboard
5008
- // behavior follows listbox conventions (select + close) because
5009
- // the dialog's native Tab trap only cycles between the close
5010
- // button and browser chrome.
5011
- //
5012
- // - Escape: The native <dialog> fires a `cancel` event on ESC
5013
- // (handled above), so the re-dispatched Escape is a secondary
5014
- // path for parent components that also listen for Escape keydown.
5005
+ /**
5006
+ * showModal() creates a closed focus scope keyboard events inside
5007
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
5008
+ * keydown handlers in the parent shadow DOM. This handler bridges
5009
+ * that gap by re-dispatching navigation keys so they cross the
5010
+ * shadow boundary and reach the menu navigation logic in the parent
5011
+ * component.
5012
+ *
5013
+ * The trade-off: intercepting these keys means native keyboard
5014
+ * behaviors that would normally "just work" must be manually
5015
+ * re-implemented here:
5016
+ *
5017
+ * - Enter on buttons: Custom elements (auro-button) don't get the
5018
+ * native Enter→click that <button> provides, so we call .click()
5019
+ * directly when Enter is pressed on a button-like element.
5020
+ *
5021
+ * - Tab: Intercepted and re-dispatched so parent components
5022
+ * (select/combobox) can select the active option and close the
5023
+ * dialog. The <dialog> provides containment and isolation
5024
+ * (inert background, VoiceOver focus trapping, top layer), while
5025
+ * the content inside is a role="listbox" navigated via
5026
+ * aria-activedescendant (options are not focusable). Tab keyboard
5027
+ * behavior follows listbox conventions (select + close) because
5028
+ * the dialog's native Tab trap only cycles between the close
5029
+ * button and browser chrome.
5030
+ *
5031
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
5032
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
5033
+ * is a secondary path for parent components that also listen for
5034
+ * Escape keydown.
5035
+ *
5036
+ * @param {HTMLDialogElement} dialog
5037
+ * @private
5038
+ */
5039
+ _setupKeyboardBridge(dialog) {
5015
5040
  const navKeys = new Set([
5016
5041
  'ArrowUp',
5017
5042
  'ArrowDown',
@@ -5019,6 +5044,7 @@ class AuroDropdownBib extends i$2 {
5019
5044
  'Escape',
5020
5045
  'Tab'
5021
5046
  ]);
5047
+
5022
5048
  dialog.addEventListener('keydown', (event) => {
5023
5049
  if (!navKeys.has(event.key)) {
5024
5050
  return;
@@ -5053,15 +5079,6 @@ class AuroDropdownBib extends i$2 {
5053
5079
  });
5054
5080
  this.dispatchEvent(newEvent);
5055
5081
  });
5056
-
5057
- // Dispatch a custom event when the component is connected
5058
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
5059
- bubbles: true,
5060
- composed: true,
5061
- detail: {
5062
- element: this
5063
- }
5064
- }));
5065
5082
  }
5066
5083
 
5067
5084
  /**
@@ -5413,7 +5430,7 @@ class AuroHelpText extends i$2 {
5413
5430
  }
5414
5431
  }
5415
5432
 
5416
- var formkitVersion = '202603091734';
5433
+ var formkitVersion = '202603091748';
5417
5434
 
5418
5435
  let AuroElement$1 = class AuroElement extends i$2 {
5419
5436
  static get properties() {
@@ -1470,7 +1470,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1470
1470
  }
1471
1471
  };
1472
1472
 
1473
- var formkitVersion$1 = '202603091734';
1473
+ var formkitVersion$1 = '202603091748';
1474
1474
 
1475
1475
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
1476
1476
  // See LICENSE in the project root for license information.
@@ -4973,45 +4973,70 @@ class AuroDropdownBib extends i$2 {
4973
4973
  firstUpdated(changedProperties) {
4974
4974
  super.firstUpdated(changedProperties);
4975
4975
 
4976
- // Handle ESC key via dialog's cancel event
4977
4976
  const dialog = this.shadowRoot.querySelector('dialog');
4977
+ this._setupCancelHandler(dialog);
4978
+ this._setupKeyboardBridge(dialog);
4979
+
4980
+ this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
4981
+ bubbles: true,
4982
+ composed: true,
4983
+ detail: {
4984
+ element: this
4985
+ }
4986
+ }));
4987
+ }
4988
+
4989
+ /**
4990
+ * Forwards the dialog's native `cancel` event (fired on ESC) as
4991
+ * an `auro-bib-cancel` custom event so parent components can close.
4992
+ * @param {HTMLDialogElement} dialog
4993
+ * @private
4994
+ */
4995
+ _setupCancelHandler(dialog) {
4978
4996
  dialog.addEventListener('cancel', (event) => {
4979
- // Let parent handle closing
4980
4997
  event.preventDefault();
4981
4998
  this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
4982
4999
  bubbles: true,
4983
5000
  composed: true
4984
5001
  }));
4985
5002
  });
5003
+ }
4986
5004
 
4987
- // showModal() creates a closed focus scope — keyboard events inside
4988
- // the dialog's shadow DOM do NOT bubble out to the combobox/select
4989
- // keydown handlers in the parent shadow DOM. This handler bridges
4990
- // that gap by re-dispatching navigation keys so they cross the
4991
- // shadow boundary and reach the menu navigation logic in the parent
4992
- // component.
4993
- //
4994
- // The trade-off: intercepting these keys means native keyboard
4995
- // behaviors that would normally "just work" must be manually
4996
- // re-implemented here:
4997
- //
4998
- // - Enter on buttons: Custom elements (auro-button) don't get the
4999
- // native Enter→click that <button> provides, so we call .click()
5000
- // directly when Enter is pressed on a button-like element.
5001
- //
5002
- // - Tab: Intercepted and re-dispatched so parent components
5003
- // (select/combobox) can select the active option and close the
5004
- // dialog. The <dialog> provides containment and isolation
5005
- // (inert background, VoiceOver focus trapping, top layer), while
5006
- // the content inside is a role="listbox" navigated via
5007
- // aria-activedescendant (options are not focusable). Tab keyboard
5008
- // behavior follows listbox conventions (select + close) because
5009
- // the dialog's native Tab trap only cycles between the close
5010
- // button and browser chrome.
5011
- //
5012
- // - Escape: The native <dialog> fires a `cancel` event on ESC
5013
- // (handled above), so the re-dispatched Escape is a secondary
5014
- // path for parent components that also listen for Escape keydown.
5005
+ /**
5006
+ * showModal() creates a closed focus scope keyboard events inside
5007
+ * the dialog's shadow DOM do NOT bubble out to the combobox/select
5008
+ * keydown handlers in the parent shadow DOM. This handler bridges
5009
+ * that gap by re-dispatching navigation keys so they cross the
5010
+ * shadow boundary and reach the menu navigation logic in the parent
5011
+ * component.
5012
+ *
5013
+ * The trade-off: intercepting these keys means native keyboard
5014
+ * behaviors that would normally "just work" must be manually
5015
+ * re-implemented here:
5016
+ *
5017
+ * - Enter on buttons: Custom elements (auro-button) don't get the
5018
+ * native Enter→click that <button> provides, so we call .click()
5019
+ * directly when Enter is pressed on a button-like element.
5020
+ *
5021
+ * - Tab: Intercepted and re-dispatched so parent components
5022
+ * (select/combobox) can select the active option and close the
5023
+ * dialog. The <dialog> provides containment and isolation
5024
+ * (inert background, VoiceOver focus trapping, top layer), while
5025
+ * the content inside is a role="listbox" navigated via
5026
+ * aria-activedescendant (options are not focusable). Tab keyboard
5027
+ * behavior follows listbox conventions (select + close) because
5028
+ * the dialog's native Tab trap only cycles between the close
5029
+ * button and browser chrome.
5030
+ *
5031
+ * - Escape: The native <dialog> fires a `cancel` event on ESC
5032
+ * (handled by _setupCancelHandler), so the re-dispatched Escape
5033
+ * is a secondary path for parent components that also listen for
5034
+ * Escape keydown.
5035
+ *
5036
+ * @param {HTMLDialogElement} dialog
5037
+ * @private
5038
+ */
5039
+ _setupKeyboardBridge(dialog) {
5015
5040
  const navKeys = new Set([
5016
5041
  'ArrowUp',
5017
5042
  'ArrowDown',
@@ -5019,6 +5044,7 @@ class AuroDropdownBib extends i$2 {
5019
5044
  'Escape',
5020
5045
  'Tab'
5021
5046
  ]);
5047
+
5022
5048
  dialog.addEventListener('keydown', (event) => {
5023
5049
  if (!navKeys.has(event.key)) {
5024
5050
  return;
@@ -5053,15 +5079,6 @@ class AuroDropdownBib extends i$2 {
5053
5079
  });
5054
5080
  this.dispatchEvent(newEvent);
5055
5081
  });
5056
-
5057
- // Dispatch a custom event when the component is connected
5058
- this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
5059
- bubbles: true,
5060
- composed: true,
5061
- detail: {
5062
- element: this
5063
- }
5064
- }));
5065
5082
  }
5066
5083
 
5067
5084
  /**
@@ -5413,7 +5430,7 @@ class AuroHelpText extends i$2 {
5413
5430
  }
5414
5431
  }
5415
5432
 
5416
- var formkitVersion = '202603091734';
5433
+ var formkitVersion = '202603091748';
5417
5434
 
5418
5435
  let AuroElement$1 = class AuroElement extends i$2 {
5419
5436
  static get properties() {
@@ -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() {