@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.
- package/components/checkbox/demo/api.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/api.min.js +59 -42
- package/components/combobox/demo/index.min.js +59 -42
- package/components/combobox/dist/index.js +59 -42
- package/components/combobox/dist/registered.js +59 -42
- package/components/counter/demo/api.min.js +58 -41
- package/components/counter/demo/index.min.js +58 -41
- package/components/counter/dist/index.js +58 -41
- package/components/counter/dist/registered.js +58 -41
- package/components/datepicker/demo/api.min.js +59 -42
- package/components/datepicker/demo/index.min.js +59 -42
- package/components/datepicker/dist/index.js +59 -42
- package/components/datepicker/dist/registered.js +59 -42
- package/components/dropdown/demo/api.min.js +57 -40
- package/components/dropdown/demo/index.min.js +57 -40
- package/components/dropdown/dist/auro-dropdownBib.d.ts +42 -0
- package/components/dropdown/dist/index.js +57 -40
- package/components/dropdown/dist/registered.js +57 -40
- package/components/form/demo/api.min.js +237 -169
- package/components/form/demo/index.min.js +237 -169
- package/components/input/demo/api.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/radio/demo/api.min.js +1 -1
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/api.min.js +58 -41
- package/components/select/demo/index.min.js +58 -41
- package/components/select/dist/index.js +58 -41
- package/components/select/dist/registered.js +58 -41
- package/custom-elements.json +1418 -1390
- 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
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
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 = '
|
|
5365
|
+
var formkitVersion = '202603091748';
|
|
5349
5366
|
|
|
5350
5367
|
let AuroElement$1 = class AuroElement extends LitElement {
|
|
5351
5368
|
static get properties() {
|