@aurodesignsystem-dev/auro-formkit 0.0.0-pr1405.2 → 0.0.0-pr1407.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +17 -120
- package/components/combobox/demo/index.min.js +17 -120
- package/components/combobox/dist/auro-combobox.d.ts +0 -2
- package/components/combobox/dist/comboboxKeyboardStrategy.d.ts +1 -1
- package/components/combobox/dist/index.js +17 -120
- package/components/combobox/dist/registered.js +17 -120
- package/components/counter/demo/api.min.js +2 -2
- package/components/counter/demo/index.min.js +2 -2
- package/components/counter/dist/index.js +2 -2
- package/components/counter/dist/registered.js +2 -2
- package/components/datepicker/demo/api.min.js +3 -3
- package/components/datepicker/demo/index.min.js +3 -3
- package/components/datepicker/dist/index.js +3 -3
- package/components/datepicker/dist/registered.js +3 -3
- package/components/dropdown/demo/api.min.js +1 -1
- package/components/dropdown/demo/index.min.js +1 -1
- package/components/dropdown/dist/index.js +1 -1
- package/components/dropdown/dist/registered.js +1 -1
- package/components/form/demo/api.min.js +27 -153
- package/components/form/demo/index.min.js +27 -153
- 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 +2 -25
- package/components/select/demo/index.min.js +2 -25
- package/components/select/dist/index.js +2 -25
- package/components/select/dist/registered.js +2 -25
- package/custom-elements.json +1405 -1405
- package/package.json +1 -1
|
@@ -1687,7 +1687,7 @@ class AuroHelpText extends i$2 {
|
|
|
1687
1687
|
}
|
|
1688
1688
|
}
|
|
1689
1689
|
|
|
1690
|
-
var formkitVersion = '
|
|
1690
|
+
var formkitVersion = '202603280001';
|
|
1691
1691
|
|
|
1692
1692
|
// Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
1693
1693
|
// See LICENSE in the project root for license information.
|
|
@@ -1679,7 +1679,7 @@ class AuroHelpText extends i$2 {
|
|
|
1679
1679
|
}
|
|
1680
1680
|
}
|
|
1681
1681
|
|
|
1682
|
-
var formkitVersion = '
|
|
1682
|
+
var formkitVersion = '202603280001';
|
|
1683
1683
|
|
|
1684
1684
|
// Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
1685
1685
|
// See LICENSE in the project root for license information.
|
|
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
|
|
|
1632
1632
|
}
|
|
1633
1633
|
}
|
|
1634
1634
|
|
|
1635
|
-
var formkitVersion = '
|
|
1635
|
+
var formkitVersion = '202603280001';
|
|
1636
1636
|
|
|
1637
1637
|
// Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
1638
1638
|
// See LICENSE in the project root for license information.
|
|
@@ -1632,7 +1632,7 @@ class AuroHelpText extends LitElement {
|
|
|
1632
1632
|
}
|
|
1633
1633
|
}
|
|
1634
1634
|
|
|
1635
|
-
var formkitVersion = '
|
|
1635
|
+
var formkitVersion = '202603280001';
|
|
1636
1636
|
|
|
1637
1637
|
// Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
1638
1638
|
// See LICENSE in the project root for license information.
|
|
@@ -1201,27 +1201,6 @@ function guardTouchPassthrough(element) {
|
|
|
1201
1201
|
}, { once: true });
|
|
1202
1202
|
}
|
|
1203
1203
|
|
|
1204
|
-
/**
|
|
1205
|
-
* Closes the fullscreen dialog element synchronously.
|
|
1206
|
-
*
|
|
1207
|
-
* When a dropdown closes, Lit's async update cycle may call `dialog.close()`
|
|
1208
|
-
* too late — the browser's native focus restoration (back to `document.body`)
|
|
1209
|
-
* can race with the `requestAnimationFrame` in {@link restoreTriggerAfterClose},
|
|
1210
|
-
* stealing focus back to `body` after it was already placed on the trigger.
|
|
1211
|
-
*
|
|
1212
|
-
* Calling this *before* `restoreTriggerAfterClose` ensures the dialog's native
|
|
1213
|
-
* focus restore fires first, so the rAF wins the race.
|
|
1214
|
-
*
|
|
1215
|
-
* @param {HTMLElement} dropdown - The `auro-dropdown` element whose bib may
|
|
1216
|
-
* contain a `<dialog>`.
|
|
1217
|
-
*/
|
|
1218
|
-
function closeFullscreenDialog(dropdown) {
|
|
1219
|
-
const bibEl = dropdown.bibElement && dropdown.bibElement.value;
|
|
1220
|
-
if (bibEl) {
|
|
1221
|
-
bibEl.close();
|
|
1222
|
-
}
|
|
1223
|
-
}
|
|
1224
|
-
|
|
1225
1204
|
/**
|
|
1226
1205
|
* Restores the dropdown trigger after a fullscreen dialog closes.
|
|
1227
1206
|
*
|
|
@@ -1321,8 +1300,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
1321
1300
|
}
|
|
1322
1301
|
}
|
|
1323
1302
|
|
|
1324
|
-
/* eslint-disable no-underscore-dangle */
|
|
1325
|
-
|
|
1326
1303
|
/**
|
|
1327
1304
|
* Returns the clear button element from the active input's shadow
|
|
1328
1305
|
* DOM, if available.
|
|
@@ -1353,7 +1330,7 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
1353
1330
|
}
|
|
1354
1331
|
|
|
1355
1332
|
const comboboxKeyboardStrategy = {
|
|
1356
|
-
Enter(component, evt, ctx) {
|
|
1333
|
+
async Enter(component, evt, ctx) {
|
|
1357
1334
|
// If the clear button has focus, let the browser activate it normally.
|
|
1358
1335
|
// stopPropagation prevents parent containers (e.g., forms) from treating
|
|
1359
1336
|
// Enter as a submit, but we must NOT call preventDefault — that would
|
|
@@ -1364,15 +1341,11 @@ const comboboxKeyboardStrategy = {
|
|
|
1364
1341
|
}
|
|
1365
1342
|
|
|
1366
1343
|
if (ctx.isExpanded && component.optionActive) {
|
|
1344
|
+
component.menu.makeSelection();
|
|
1345
|
+
await component.updateComplete;
|
|
1367
1346
|
evt.preventDefault();
|
|
1368
1347
|
evt.stopPropagation();
|
|
1369
|
-
|
|
1370
|
-
// auroDropdown-toggled close handler both see them when the value
|
|
1371
|
-
// change propagates through Lit's microtask update cycle.
|
|
1372
|
-
component._focusClearBtnAfterClose = true;
|
|
1373
|
-
component._clearBtnFocusPending = true;
|
|
1374
|
-
component.menu.makeSelection();
|
|
1375
|
-
component.hideBib();
|
|
1348
|
+
component.setClearBtnFocus();
|
|
1376
1349
|
} else {
|
|
1377
1350
|
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
1378
1351
|
// which could interpret Enter as a submit or trigger other unintended behavior.
|
|
@@ -1404,32 +1377,15 @@ const comboboxKeyboardStrategy = {
|
|
|
1404
1377
|
if (!ctx.activeInput) {
|
|
1405
1378
|
return;
|
|
1406
1379
|
}
|
|
1407
|
-
|
|
1408
|
-
// Active option → select immediately and close the dialog.
|
|
1409
|
-
// Flag the component so the close handler focuses the trigger's
|
|
1410
|
-
// clear button instead of the input. Set flags before makeSelection
|
|
1411
|
-
// because the value change triggers showBib via Lit's updated().
|
|
1412
|
-
if (component.optionActive) {
|
|
1413
|
-
evt.preventDefault();
|
|
1414
|
-
component._focusClearBtnAfterClose = true;
|
|
1415
|
-
component._clearBtnFocusPending = true;
|
|
1416
|
-
component.menu.makeSelection();
|
|
1417
|
-
component.hideBib();
|
|
1418
|
-
return;
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
1380
|
const clearBtn = getClearBtn(ctx);
|
|
1422
1381
|
const clearBtnHasFocus = isClearBtnFocused(ctx, clearBtn);
|
|
1423
1382
|
|
|
1424
|
-
//
|
|
1425
|
-
// move focus to the dialog's clear button.
|
|
1383
|
+
// Tab from input: if clear button exists and doesn't have focus, focus it
|
|
1426
1384
|
if (clearBtn && !clearBtnHasFocus && ctx.activeInput.value) {
|
|
1427
|
-
|
|
1428
1385
|
// Force clear button container visible to work around Safari not
|
|
1429
1386
|
// propagating :focus-within through shadow DOM boundaries, which
|
|
1430
1387
|
// causes .wrapper:not(:focus-within) to hide .notification.clear.
|
|
1431
1388
|
const clearContainer = clearBtn.closest('.clear');
|
|
1432
|
-
|
|
1433
1389
|
if (clearContainer) {
|
|
1434
1390
|
clearContainer.style.display = 'flex';
|
|
1435
1391
|
clearBtn.addEventListener('focusout', () => {
|
|
@@ -1452,17 +1408,18 @@ const comboboxKeyboardStrategy = {
|
|
|
1452
1408
|
return;
|
|
1453
1409
|
}
|
|
1454
1410
|
|
|
1455
|
-
//
|
|
1411
|
+
// Tab from clear button (or no clear button / no value) →
|
|
1412
|
+
// select the highlighted option if any, then close
|
|
1413
|
+
if (component.optionActive) {
|
|
1414
|
+
component.menu.makeSelection();
|
|
1415
|
+
}
|
|
1456
1416
|
component.hideBib();
|
|
1457
1417
|
return;
|
|
1458
1418
|
}
|
|
1459
1419
|
|
|
1460
1420
|
// Non-fullscreen: select + close
|
|
1461
|
-
if (component.optionActive) {
|
|
1462
|
-
|
|
1463
|
-
component._focusClearBtnAfterClose = true;
|
|
1464
|
-
component._clearBtnFocusPending = true;
|
|
1465
|
-
component.menu.makeSelection();
|
|
1421
|
+
if (component.menu.optionActive && component.menu.optionActive.value) {
|
|
1422
|
+
component.menu.value = component.menu.optionActive.value;
|
|
1466
1423
|
}
|
|
1467
1424
|
component.hideBib();
|
|
1468
1425
|
},
|
|
@@ -5113,7 +5070,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
|
|
|
5113
5070
|
}
|
|
5114
5071
|
};
|
|
5115
5072
|
|
|
5116
|
-
var formkitVersion$2 = '
|
|
5073
|
+
var formkitVersion$2 = '202603280001';
|
|
5117
5074
|
|
|
5118
5075
|
let AuroElement$2 = class AuroElement extends i$4 {
|
|
5119
5076
|
static get properties() {
|
|
@@ -12877,7 +12834,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
|
|
|
12877
12834
|
}
|
|
12878
12835
|
};
|
|
12879
12836
|
|
|
12880
|
-
var formkitVersion$1 = '
|
|
12837
|
+
var formkitVersion$1 = '202603280001';
|
|
12881
12838
|
|
|
12882
12839
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12883
12840
|
// See LICENSE in the project root for license information.
|
|
@@ -13916,7 +13873,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
13916
13873
|
}
|
|
13917
13874
|
}
|
|
13918
13875
|
|
|
13919
|
-
var formkitVersion = '
|
|
13876
|
+
var formkitVersion = '202603280001';
|
|
13920
13877
|
|
|
13921
13878
|
var styleCss$3 = i$7`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
13922
13879
|
|
|
@@ -14926,12 +14883,6 @@ class AuroCombobox extends AuroElement {
|
|
|
14926
14883
|
* @returns {void}
|
|
14927
14884
|
*/
|
|
14928
14885
|
showBib() {
|
|
14929
|
-
// Suppress reopening the bib when a Tab selection is in progress —
|
|
14930
|
-
// the value change from makeSelection triggers availableOptions update
|
|
14931
|
-
// which calls showBib from updated(), but the bib should stay closed.
|
|
14932
|
-
if (this._clearBtnFocusPending) {
|
|
14933
|
-
return;
|
|
14934
|
-
}
|
|
14935
14886
|
if (!this.input.value && !this.dropdown.isBibFullscreen) {
|
|
14936
14887
|
this.dropdown.hide();
|
|
14937
14888
|
return;
|
|
@@ -15002,40 +14953,7 @@ class AuroCombobox extends AuroElement {
|
|
|
15002
14953
|
// during fullscreen open to prevent touch pass-through.
|
|
15003
14954
|
this.menu.style.pointerEvents = '';
|
|
15004
14955
|
|
|
15005
|
-
|
|
15006
|
-
|
|
15007
|
-
const shouldFocusClearBtn = this._focusClearBtnAfterClose;
|
|
15008
|
-
this._focusClearBtnAfterClose = false;
|
|
15009
|
-
|
|
15010
|
-
if (shouldFocusClearBtn) {
|
|
15011
|
-
// Set a guard so duplicate toggle events don't call
|
|
15012
|
-
// restoreTriggerAfterClose and steal focus from the clear button.
|
|
15013
|
-
this._clearBtnFocusPending = true;
|
|
15014
|
-
|
|
15015
|
-
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
15016
|
-
|
|
15017
|
-
if (this.input.componentHasFocus) {
|
|
15018
|
-
// Desktop: input already has focus, redirect to clear button
|
|
15019
|
-
// after restoreTriggerAfterClose's rAF settles.
|
|
15020
|
-
requestAnimationFrame(() => {
|
|
15021
|
-
this.setClearBtnFocus();
|
|
15022
|
-
this._clearBtnFocusPending = false;
|
|
15023
|
-
});
|
|
15024
|
-
} else {
|
|
15025
|
-
// Fullscreen: input will receive focus after dialog.close().
|
|
15026
|
-
// Listen for that focus event then redirect to clear button.
|
|
15027
|
-
const onFocus = () => {
|
|
15028
|
-
this.input.removeEventListener('focusin', onFocus);
|
|
15029
|
-
requestAnimationFrame(() => {
|
|
15030
|
-
this.setClearBtnFocus();
|
|
15031
|
-
this._clearBtnFocusPending = false;
|
|
15032
|
-
});
|
|
15033
|
-
};
|
|
15034
|
-
this.input.addEventListener('focusin', onFocus);
|
|
15035
|
-
}
|
|
15036
|
-
} else if (!this._clearBtnFocusPending) {
|
|
15037
|
-
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
15038
|
-
}
|
|
14956
|
+
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
15039
14957
|
}
|
|
15040
14958
|
|
|
15041
14959
|
if (this.dropdownOpen) {
|
|
@@ -15126,28 +15044,7 @@ class AuroCombobox extends AuroElement {
|
|
|
15126
15044
|
setClearBtnFocus() {
|
|
15127
15045
|
const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
|
|
15128
15046
|
if (clearBtn) {
|
|
15129
|
-
|
|
15130
|
-
// the CSS rule `.wrapper:not(:focus-within) .notification.clear`
|
|
15131
|
-
// hides the container with display:none, preventing focus.
|
|
15132
|
-
const clearContainer = clearBtn.closest('.clear');
|
|
15133
|
-
|
|
15134
|
-
if (clearContainer) {
|
|
15135
|
-
clearContainer.style.display = 'flex';
|
|
15136
|
-
clearBtn.addEventListener('focusout', () => {
|
|
15137
|
-
requestAnimationFrame(() => {
|
|
15138
|
-
clearContainer.style.display = '';
|
|
15139
|
-
});
|
|
15140
|
-
}, { once: true });
|
|
15141
|
-
}
|
|
15142
|
-
|
|
15143
|
-
// Focus the native button inside auro-button so the browser
|
|
15144
|
-
// treats it as a real focusable element.
|
|
15145
|
-
const nativeBtn = clearBtn.shadowRoot && clearBtn.shadowRoot.querySelector('button');
|
|
15146
|
-
if (nativeBtn) {
|
|
15147
|
-
nativeBtn.focus();
|
|
15148
|
-
} else {
|
|
15149
|
-
clearBtn.focus();
|
|
15150
|
-
}
|
|
15047
|
+
clearBtn.focus();
|
|
15151
15048
|
}
|
|
15152
15049
|
}
|
|
15153
15050
|
|
|
@@ -1124,27 +1124,6 @@ function guardTouchPassthrough(element) {
|
|
|
1124
1124
|
}, { once: true });
|
|
1125
1125
|
}
|
|
1126
1126
|
|
|
1127
|
-
/**
|
|
1128
|
-
* Closes the fullscreen dialog element synchronously.
|
|
1129
|
-
*
|
|
1130
|
-
* When a dropdown closes, Lit's async update cycle may call `dialog.close()`
|
|
1131
|
-
* too late — the browser's native focus restoration (back to `document.body`)
|
|
1132
|
-
* can race with the `requestAnimationFrame` in {@link restoreTriggerAfterClose},
|
|
1133
|
-
* stealing focus back to `body` after it was already placed on the trigger.
|
|
1134
|
-
*
|
|
1135
|
-
* Calling this *before* `restoreTriggerAfterClose` ensures the dialog's native
|
|
1136
|
-
* focus restore fires first, so the rAF wins the race.
|
|
1137
|
-
*
|
|
1138
|
-
* @param {HTMLElement} dropdown - The `auro-dropdown` element whose bib may
|
|
1139
|
-
* contain a `<dialog>`.
|
|
1140
|
-
*/
|
|
1141
|
-
function closeFullscreenDialog(dropdown) {
|
|
1142
|
-
const bibEl = dropdown.bibElement && dropdown.bibElement.value;
|
|
1143
|
-
if (bibEl) {
|
|
1144
|
-
bibEl.close();
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
1127
|
/**
|
|
1149
1128
|
* Restores the dropdown trigger after a fullscreen dialog closes.
|
|
1150
1129
|
*
|
|
@@ -1244,8 +1223,6 @@ function navigateArrow(component, direction, options = {}) {
|
|
|
1244
1223
|
}
|
|
1245
1224
|
}
|
|
1246
1225
|
|
|
1247
|
-
/* eslint-disable no-underscore-dangle */
|
|
1248
|
-
|
|
1249
1226
|
/**
|
|
1250
1227
|
* Returns the clear button element from the active input's shadow
|
|
1251
1228
|
* DOM, if available.
|
|
@@ -1276,7 +1253,7 @@ function isClearBtnFocused(ctx, clearBtn = getClearBtn(ctx)) {
|
|
|
1276
1253
|
}
|
|
1277
1254
|
|
|
1278
1255
|
const comboboxKeyboardStrategy = {
|
|
1279
|
-
Enter(component, evt, ctx) {
|
|
1256
|
+
async Enter(component, evt, ctx) {
|
|
1280
1257
|
// If the clear button has focus, let the browser activate it normally.
|
|
1281
1258
|
// stopPropagation prevents parent containers (e.g., forms) from treating
|
|
1282
1259
|
// Enter as a submit, but we must NOT call preventDefault — that would
|
|
@@ -1287,15 +1264,11 @@ const comboboxKeyboardStrategy = {
|
|
|
1287
1264
|
}
|
|
1288
1265
|
|
|
1289
1266
|
if (ctx.isExpanded && component.optionActive) {
|
|
1267
|
+
component.menu.makeSelection();
|
|
1268
|
+
await component.updateComplete;
|
|
1290
1269
|
evt.preventDefault();
|
|
1291
1270
|
evt.stopPropagation();
|
|
1292
|
-
|
|
1293
|
-
// auroDropdown-toggled close handler both see them when the value
|
|
1294
|
-
// change propagates through Lit's microtask update cycle.
|
|
1295
|
-
component._focusClearBtnAfterClose = true;
|
|
1296
|
-
component._clearBtnFocusPending = true;
|
|
1297
|
-
component.menu.makeSelection();
|
|
1298
|
-
component.hideBib();
|
|
1271
|
+
component.setClearBtnFocus();
|
|
1299
1272
|
} else {
|
|
1300
1273
|
// Prevent the keypress from bubbling to parent containers (e.g., forms)
|
|
1301
1274
|
// which could interpret Enter as a submit or trigger other unintended behavior.
|
|
@@ -1327,32 +1300,15 @@ const comboboxKeyboardStrategy = {
|
|
|
1327
1300
|
if (!ctx.activeInput) {
|
|
1328
1301
|
return;
|
|
1329
1302
|
}
|
|
1330
|
-
|
|
1331
|
-
// Active option → select immediately and close the dialog.
|
|
1332
|
-
// Flag the component so the close handler focuses the trigger's
|
|
1333
|
-
// clear button instead of the input. Set flags before makeSelection
|
|
1334
|
-
// because the value change triggers showBib via Lit's updated().
|
|
1335
|
-
if (component.optionActive) {
|
|
1336
|
-
evt.preventDefault();
|
|
1337
|
-
component._focusClearBtnAfterClose = true;
|
|
1338
|
-
component._clearBtnFocusPending = true;
|
|
1339
|
-
component.menu.makeSelection();
|
|
1340
|
-
component.hideBib();
|
|
1341
|
-
return;
|
|
1342
|
-
}
|
|
1343
|
-
|
|
1344
1303
|
const clearBtn = getClearBtn(ctx);
|
|
1345
1304
|
const clearBtnHasFocus = isClearBtnFocused(ctx, clearBtn);
|
|
1346
1305
|
|
|
1347
|
-
//
|
|
1348
|
-
// move focus to the dialog's clear button.
|
|
1306
|
+
// Tab from input: if clear button exists and doesn't have focus, focus it
|
|
1349
1307
|
if (clearBtn && !clearBtnHasFocus && ctx.activeInput.value) {
|
|
1350
|
-
|
|
1351
1308
|
// Force clear button container visible to work around Safari not
|
|
1352
1309
|
// propagating :focus-within through shadow DOM boundaries, which
|
|
1353
1310
|
// causes .wrapper:not(:focus-within) to hide .notification.clear.
|
|
1354
1311
|
const clearContainer = clearBtn.closest('.clear');
|
|
1355
|
-
|
|
1356
1312
|
if (clearContainer) {
|
|
1357
1313
|
clearContainer.style.display = 'flex';
|
|
1358
1314
|
clearBtn.addEventListener('focusout', () => {
|
|
@@ -1375,17 +1331,18 @@ const comboboxKeyboardStrategy = {
|
|
|
1375
1331
|
return;
|
|
1376
1332
|
}
|
|
1377
1333
|
|
|
1378
|
-
//
|
|
1334
|
+
// Tab from clear button (or no clear button / no value) →
|
|
1335
|
+
// select the highlighted option if any, then close
|
|
1336
|
+
if (component.optionActive) {
|
|
1337
|
+
component.menu.makeSelection();
|
|
1338
|
+
}
|
|
1379
1339
|
component.hideBib();
|
|
1380
1340
|
return;
|
|
1381
1341
|
}
|
|
1382
1342
|
|
|
1383
1343
|
// Non-fullscreen: select + close
|
|
1384
|
-
if (component.optionActive) {
|
|
1385
|
-
|
|
1386
|
-
component._focusClearBtnAfterClose = true;
|
|
1387
|
-
component._clearBtnFocusPending = true;
|
|
1388
|
-
component.menu.makeSelection();
|
|
1344
|
+
if (component.menu.optionActive && component.menu.optionActive.value) {
|
|
1345
|
+
component.menu.value = component.menu.optionActive.value;
|
|
1389
1346
|
}
|
|
1390
1347
|
component.hideBib();
|
|
1391
1348
|
},
|
|
@@ -5036,7 +4993,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
|
|
|
5036
4993
|
}
|
|
5037
4994
|
};
|
|
5038
4995
|
|
|
5039
|
-
var formkitVersion$2 = '
|
|
4996
|
+
var formkitVersion$2 = '202603280001';
|
|
5040
4997
|
|
|
5041
4998
|
let AuroElement$2 = class AuroElement extends i$4 {
|
|
5042
4999
|
static get properties() {
|
|
@@ -12800,7 +12757,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
|
|
|
12800
12757
|
}
|
|
12801
12758
|
};
|
|
12802
12759
|
|
|
12803
|
-
var formkitVersion$1 = '
|
|
12760
|
+
var formkitVersion$1 = '202603280001';
|
|
12804
12761
|
|
|
12805
12762
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12806
12763
|
// See LICENSE in the project root for license information.
|
|
@@ -13839,7 +13796,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
13839
13796
|
}
|
|
13840
13797
|
}
|
|
13841
13798
|
|
|
13842
|
-
var formkitVersion = '
|
|
13799
|
+
var formkitVersion = '202603280001';
|
|
13843
13800
|
|
|
13844
13801
|
var styleCss$3 = i$7`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
13845
13802
|
|
|
@@ -14849,12 +14806,6 @@ class AuroCombobox extends AuroElement {
|
|
|
14849
14806
|
* @returns {void}
|
|
14850
14807
|
*/
|
|
14851
14808
|
showBib() {
|
|
14852
|
-
// Suppress reopening the bib when a Tab selection is in progress —
|
|
14853
|
-
// the value change from makeSelection triggers availableOptions update
|
|
14854
|
-
// which calls showBib from updated(), but the bib should stay closed.
|
|
14855
|
-
if (this._clearBtnFocusPending) {
|
|
14856
|
-
return;
|
|
14857
|
-
}
|
|
14858
14809
|
if (!this.input.value && !this.dropdown.isBibFullscreen) {
|
|
14859
14810
|
this.dropdown.hide();
|
|
14860
14811
|
return;
|
|
@@ -14925,40 +14876,7 @@ class AuroCombobox extends AuroElement {
|
|
|
14925
14876
|
// during fullscreen open to prevent touch pass-through.
|
|
14926
14877
|
this.menu.style.pointerEvents = '';
|
|
14927
14878
|
|
|
14928
|
-
|
|
14929
|
-
|
|
14930
|
-
const shouldFocusClearBtn = this._focusClearBtnAfterClose;
|
|
14931
|
-
this._focusClearBtnAfterClose = false;
|
|
14932
|
-
|
|
14933
|
-
if (shouldFocusClearBtn) {
|
|
14934
|
-
// Set a guard so duplicate toggle events don't call
|
|
14935
|
-
// restoreTriggerAfterClose and steal focus from the clear button.
|
|
14936
|
-
this._clearBtnFocusPending = true;
|
|
14937
|
-
|
|
14938
|
-
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
14939
|
-
|
|
14940
|
-
if (this.input.componentHasFocus) {
|
|
14941
|
-
// Desktop: input already has focus, redirect to clear button
|
|
14942
|
-
// after restoreTriggerAfterClose's rAF settles.
|
|
14943
|
-
requestAnimationFrame(() => {
|
|
14944
|
-
this.setClearBtnFocus();
|
|
14945
|
-
this._clearBtnFocusPending = false;
|
|
14946
|
-
});
|
|
14947
|
-
} else {
|
|
14948
|
-
// Fullscreen: input will receive focus after dialog.close().
|
|
14949
|
-
// Listen for that focus event then redirect to clear button.
|
|
14950
|
-
const onFocus = () => {
|
|
14951
|
-
this.input.removeEventListener('focusin', onFocus);
|
|
14952
|
-
requestAnimationFrame(() => {
|
|
14953
|
-
this.setClearBtnFocus();
|
|
14954
|
-
this._clearBtnFocusPending = false;
|
|
14955
|
-
});
|
|
14956
|
-
};
|
|
14957
|
-
this.input.addEventListener('focusin', onFocus);
|
|
14958
|
-
}
|
|
14959
|
-
} else if (!this._clearBtnFocusPending) {
|
|
14960
|
-
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
14961
|
-
}
|
|
14879
|
+
restoreTriggerAfterClose(this.dropdown, this.input);
|
|
14962
14880
|
}
|
|
14963
14881
|
|
|
14964
14882
|
if (this.dropdownOpen) {
|
|
@@ -15049,28 +14967,7 @@ class AuroCombobox extends AuroElement {
|
|
|
15049
14967
|
setClearBtnFocus() {
|
|
15050
14968
|
const clearBtn = this.input.shadowRoot.querySelector('.clearBtn');
|
|
15051
14969
|
if (clearBtn) {
|
|
15052
|
-
|
|
15053
|
-
// the CSS rule `.wrapper:not(:focus-within) .notification.clear`
|
|
15054
|
-
// hides the container with display:none, preventing focus.
|
|
15055
|
-
const clearContainer = clearBtn.closest('.clear');
|
|
15056
|
-
|
|
15057
|
-
if (clearContainer) {
|
|
15058
|
-
clearContainer.style.display = 'flex';
|
|
15059
|
-
clearBtn.addEventListener('focusout', () => {
|
|
15060
|
-
requestAnimationFrame(() => {
|
|
15061
|
-
clearContainer.style.display = '';
|
|
15062
|
-
});
|
|
15063
|
-
}, { once: true });
|
|
15064
|
-
}
|
|
15065
|
-
|
|
15066
|
-
// Focus the native button inside auro-button so the browser
|
|
15067
|
-
// treats it as a real focusable element.
|
|
15068
|
-
const nativeBtn = clearBtn.shadowRoot && clearBtn.shadowRoot.querySelector('button');
|
|
15069
|
-
if (nativeBtn) {
|
|
15070
|
-
nativeBtn.focus();
|
|
15071
|
-
} else {
|
|
15072
|
-
clearBtn.focus();
|
|
15073
|
-
}
|
|
14970
|
+
clearBtn.focus();
|
|
15074
14971
|
}
|
|
15075
14972
|
}
|
|
15076
14973
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export namespace comboboxKeyboardStrategy {
|
|
2
|
-
function Enter(component: any, evt: any, ctx: any): void
|
|
2
|
+
function Enter(component: any, evt: any, ctx: any): Promise<void>;
|
|
3
3
|
function Tab(component: any, evt: any, ctx: any): void;
|
|
4
4
|
function ArrowUp(component: any, evt: any, ctx: any): void;
|
|
5
5
|
function ArrowDown(component: any, evt: any, ctx: any): void;
|