@aurodesignsystem-dev/auro-formkit 0.0.0-pr1408.14 → 0.0.0-pr1408.16
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/demo/keyboardBehavior.md +0 -0
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/api.min.js +139 -142
- package/components/combobox/demo/index.min.js +139 -142
- package/components/combobox/demo/keyboardBehavior.md +1 -2
- package/components/combobox/dist/index.js +105 -115
- package/components/combobox/dist/registered.js +105 -115
- package/components/counter/demo/api.md +1 -1
- package/components/counter/demo/api.min.js +202 -146
- package/components/counter/demo/index.min.js +202 -146
- package/components/counter/dist/auro-counter.d.ts +11 -8
- package/components/counter/dist/index.js +202 -146
- package/components/counter/dist/keyboardStrategy.d.ts +4 -0
- package/components/counter/dist/registered.js +202 -146
- package/components/datepicker/demo/api.min.js +107 -118
- package/components/datepicker/demo/index.min.js +107 -118
- package/components/datepicker/dist/index.js +102 -113
- package/components/datepicker/dist/registered.js +102 -113
- package/components/dropdown/demo/api.md +29 -29
- package/components/dropdown/demo/api.min.js +117 -121
- package/components/dropdown/demo/index.min.js +117 -121
- package/components/dropdown/dist/auro-dropdown.d.ts +3 -3
- package/components/dropdown/dist/auro-dropdownBib.d.ts +1 -40
- package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +7 -0
- package/components/dropdown/dist/index.js +101 -109
- package/components/dropdown/dist/registered.js +101 -109
- package/components/form/demo/api.min.js +629 -544
- package/components/form/demo/index.min.js +629 -544
- package/components/form/demo/keyboardBehavior.md +0 -0
- package/components/input/demo/api.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/demo/keyboardBehavior.md +0 -0
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/api.min.js +34 -27
- package/components/menu/demo/index.min.js +34 -27
- package/components/menu/dist/auro-menu.d.ts +0 -6
- package/components/menu/dist/index.js +34 -27
- package/components/menu/dist/registered.js +34 -27
- 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 +214 -164
- package/components/select/demo/index.min.js +214 -164
- package/components/select/demo/keyboardBehavior.md +3 -3
- package/components/select/dist/index.js +180 -137
- package/components/select/dist/registered.js +180 -137
- package/components/select/dist/selectKeyboardStrategy.d.ts +5 -2
- package/custom-elements.json +1518 -1481
- package/package.json +8 -6
|
@@ -1122,7 +1122,7 @@ function restoreTriggerAfterClose(dropdown, focusTarget) {
|
|
|
1122
1122
|
* @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
|
|
1123
1123
|
* isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
|
|
1124
1124
|
*/
|
|
1125
|
-
function createDisplayContext(component, options = {}) {
|
|
1125
|
+
function createDisplayContext$1(component, options = {}) {
|
|
1126
1126
|
const dd = options.dropdown || component.dropdown;
|
|
1127
1127
|
// isPopoverVisible reflects as the `open` attribute.
|
|
1128
1128
|
// It reports whether the bib is open in any mode (popover or modal).
|
|
@@ -1152,11 +1152,11 @@ function createDisplayContext(component, options = {}) {
|
|
|
1152
1152
|
* @param {Object} strategy - Map of key names to handler functions.
|
|
1153
1153
|
* @param {Object} [options] - Optional config passed to createDisplayContext.
|
|
1154
1154
|
*/
|
|
1155
|
-
function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
1155
|
+
function applyKeyboardStrategy$1(component, strategy, options = {}) {
|
|
1156
1156
|
component.addEventListener('keydown', async (evt) => {
|
|
1157
1157
|
const handler = strategy[evt.key] || strategy.default;
|
|
1158
1158
|
if (typeof handler === 'function') {
|
|
1159
|
-
const ctx = createDisplayContext(component, options);
|
|
1159
|
+
const ctx = createDisplayContext$1(component, options);
|
|
1160
1160
|
await handler(component, evt, ctx);
|
|
1161
1161
|
}
|
|
1162
1162
|
});
|
|
@@ -3128,6 +3128,11 @@ class AuroFloatingUI {
|
|
|
3128
3128
|
this.clickHandler = null;
|
|
3129
3129
|
this.keyDownHandler = null;
|
|
3130
3130
|
|
|
3131
|
+
/**
|
|
3132
|
+
* @private
|
|
3133
|
+
*/
|
|
3134
|
+
this.enableKeyboardHandling = true;
|
|
3135
|
+
|
|
3131
3136
|
/**
|
|
3132
3137
|
* @private
|
|
3133
3138
|
*/
|
|
@@ -3388,11 +3393,10 @@ class AuroFloatingUI {
|
|
|
3388
3393
|
return;
|
|
3389
3394
|
}
|
|
3390
3395
|
|
|
3391
|
-
const { activeElement } = document;
|
|
3392
3396
|
// if focus is still inside of trigger or bib, do not close
|
|
3393
3397
|
if (
|
|
3394
|
-
this.element.
|
|
3395
|
-
this.element.
|
|
3398
|
+
this.element.matches(":focus") ||
|
|
3399
|
+
this.element.matches(":focus-within")
|
|
3396
3400
|
) {
|
|
3397
3401
|
return;
|
|
3398
3402
|
}
|
|
@@ -3463,7 +3467,9 @@ class AuroFloatingUI {
|
|
|
3463
3467
|
document.addEventListener("focusin", this.focusHandler);
|
|
3464
3468
|
}
|
|
3465
3469
|
|
|
3466
|
-
|
|
3470
|
+
if (this.enableKeyboardHandling) {
|
|
3471
|
+
document.addEventListener("keydown", this.keyDownHandler);
|
|
3472
|
+
}
|
|
3467
3473
|
|
|
3468
3474
|
// send this task to the end of queue to prevent conflicting
|
|
3469
3475
|
// it conflicts if showBib gets call from a button that's not this.element.trigger
|
|
@@ -3719,8 +3725,9 @@ class AuroFloatingUI {
|
|
|
3719
3725
|
this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
|
|
3720
3726
|
}
|
|
3721
3727
|
|
|
3722
|
-
configure(elem, eventPrefix) {
|
|
3728
|
+
configure(elem, eventPrefix, enableKeyboardHandling = true) {
|
|
3723
3729
|
AuroFloatingUI.setupMousePressChecker();
|
|
3730
|
+
this.enableKeyboardHandling = enableKeyboardHandling;
|
|
3724
3731
|
|
|
3725
3732
|
this.eventPrefix = eventPrefix;
|
|
3726
3733
|
if (this.element !== elem) {
|
|
@@ -3753,7 +3760,9 @@ class AuroFloatingUI {
|
|
|
3753
3760
|
|
|
3754
3761
|
this.handleEvent = this.handleEvent.bind(this);
|
|
3755
3762
|
if (this.element.trigger) {
|
|
3756
|
-
|
|
3763
|
+
if (this.enableKeyboardHandling) {
|
|
3764
|
+
this.element.trigger.addEventListener("keydown", this.handleEvent);
|
|
3765
|
+
}
|
|
3757
3766
|
this.element.trigger.addEventListener("click", this.handleEvent);
|
|
3758
3767
|
this.element.trigger.addEventListener("mouseenter", this.handleEvent);
|
|
3759
3768
|
this.element.trigger.addEventListener("mouseleave", this.handleEvent);
|
|
@@ -4231,12 +4240,83 @@ let p$3 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
|
|
|
4231
4240
|
|
|
4232
4241
|
var iconVersion$2 = '9.1.2';
|
|
4233
4242
|
|
|
4243
|
+
/**
|
|
4244
|
+
* Computes display state once per keydown event.
|
|
4245
|
+
* Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
|
|
4246
|
+
*
|
|
4247
|
+
* @param {HTMLElement} component - The component with a dropdown reference.
|
|
4248
|
+
* @param {Object} [options] - Optional config.
|
|
4249
|
+
* @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
|
|
4250
|
+
* @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
|
|
4251
|
+
* @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
|
|
4252
|
+
* isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
|
|
4253
|
+
*/
|
|
4254
|
+
function createDisplayContext(component, options = {}) {
|
|
4255
|
+
const dd = options.dropdown || component.dropdown;
|
|
4256
|
+
// isPopoverVisible reflects as the `open` attribute.
|
|
4257
|
+
// It reports whether the bib is open in any mode (popover or modal).
|
|
4258
|
+
const isExpanded = Boolean(dd && dd.isPopoverVisible);
|
|
4259
|
+
const isFullscreen = Boolean(dd && dd.isBibFullscreen);
|
|
4260
|
+
|
|
4261
|
+
const ctx = {
|
|
4262
|
+
isExpanded,
|
|
4263
|
+
isModal: isFullscreen,
|
|
4264
|
+
isPopover: !isFullscreen,
|
|
4265
|
+
activeInput: null,
|
|
4266
|
+
};
|
|
4267
|
+
|
|
4268
|
+
if (options.inputResolver) {
|
|
4269
|
+
const resolvedInput = options.inputResolver(component, ctx);
|
|
4270
|
+
// Guard against resolvers returning undefined or non-HTMLElement values.
|
|
4271
|
+
ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
|
|
4272
|
+
}
|
|
4273
|
+
|
|
4274
|
+
return ctx;
|
|
4275
|
+
}
|
|
4276
|
+
|
|
4277
|
+
/**
|
|
4278
|
+
* Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
|
|
4279
|
+
* Handles both sync and async handlers.
|
|
4280
|
+
* @param {HTMLElement} component - The component to attach the listener to.
|
|
4281
|
+
* @param {Object} strategy - Map of key names to handler functions.
|
|
4282
|
+
* @param {Object} [options] - Optional config passed to createDisplayContext.
|
|
4283
|
+
*/
|
|
4284
|
+
function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
4285
|
+
component.addEventListener('keydown', async (evt) => {
|
|
4286
|
+
const handler = strategy[evt.key] || strategy.default;
|
|
4287
|
+
if (typeof handler === 'function') {
|
|
4288
|
+
const ctx = createDisplayContext(component, options);
|
|
4289
|
+
await handler(component, evt, ctx);
|
|
4290
|
+
}
|
|
4291
|
+
});
|
|
4292
|
+
}
|
|
4293
|
+
|
|
4234
4294
|
var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
|
|
4235
4295
|
|
|
4236
4296
|
var colorCss$2$1 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
4237
4297
|
|
|
4238
4298
|
var tokensCss$1$1 = css`:host(:not([ondark])),:host(:not([appearance=inverse])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-hover-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-hover-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
|
|
4239
4299
|
|
|
4300
|
+
/**
|
|
4301
|
+
* Creates a keyboard strategy for dialog-specific key handling.
|
|
4302
|
+
* All other keydown behavior is left to the browser's native bubbling path.
|
|
4303
|
+
* @param {HTMLElement} bib - The dropdown bib element.
|
|
4304
|
+
* @returns {Object} Keyboard handlers keyed by `event.key`.
|
|
4305
|
+
*/
|
|
4306
|
+
// eslint-disable-next-line no-unused-vars
|
|
4307
|
+
function createDropdownBibKeyboardStrategy(bib) {
|
|
4308
|
+
return {
|
|
4309
|
+
// eslint-disable-next-line no-unused-vars
|
|
4310
|
+
Enter(_dialog, event) {
|
|
4311
|
+
// Floating UI handles Enter key to open the dropdown
|
|
4312
|
+
},
|
|
4313
|
+
// eslint-disable-next-line no-unused-vars
|
|
4314
|
+
Escape(_dialog, event) {
|
|
4315
|
+
// Floating UI handles Escape key to close the dropdown
|
|
4316
|
+
}
|
|
4317
|
+
};
|
|
4318
|
+
}
|
|
4319
|
+
|
|
4240
4320
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4241
4321
|
// See LICENSE in the project root for license information.
|
|
4242
4322
|
/* eslint-disable max-lines */
|
|
@@ -4361,11 +4441,7 @@ class AuroDropdownBib extends LitElement {
|
|
|
4361
4441
|
},
|
|
4362
4442
|
|
|
4363
4443
|
/**
|
|
4364
|
-
*
|
|
4365
|
-
* aria-activedescendant. The dialog keyboard bridge checks this
|
|
4366
|
-
* flag so that Enter selects the highlighted option instead of
|
|
4367
|
-
* activating the focused interactive element (e.g. the trigger
|
|
4368
|
-
* button, or the bibtemplate close button in fullscreen).
|
|
4444
|
+
* Tracks whether a menu option is currently highlighted.
|
|
4369
4445
|
* @private
|
|
4370
4446
|
*/
|
|
4371
4447
|
hasActiveDescendant: {
|
|
@@ -4439,7 +4515,7 @@ class AuroDropdownBib extends LitElement {
|
|
|
4439
4515
|
|
|
4440
4516
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4441
4517
|
this._setupCancelHandler(dialog);
|
|
4442
|
-
|
|
4518
|
+
applyKeyboardStrategy(dialog, createDropdownBibKeyboardStrategy());
|
|
4443
4519
|
|
|
4444
4520
|
this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
|
|
4445
4521
|
bubbles: true,
|
|
@@ -4466,92 +4542,6 @@ class AuroDropdownBib extends LitElement {
|
|
|
4466
4542
|
});
|
|
4467
4543
|
}
|
|
4468
4544
|
|
|
4469
|
-
/**
|
|
4470
|
-
* showModal() creates a closed focus scope — keyboard events inside
|
|
4471
|
-
* the dialog's shadow DOM do NOT bubble out to the combobox/select
|
|
4472
|
-
* keydown handlers in the parent shadow DOM. This handler bridges
|
|
4473
|
-
* that gap by re-dispatching navigation keys so they cross the
|
|
4474
|
-
* shadow boundary and reach the menu navigation logic in the parent
|
|
4475
|
-
* component.
|
|
4476
|
-
*
|
|
4477
|
-
* The trade-off: intercepting these keys means native keyboard
|
|
4478
|
-
* behaviors that would normally "just work" must be manually
|
|
4479
|
-
* re-implemented here:
|
|
4480
|
-
*
|
|
4481
|
-
* - Enter on buttons: Custom elements (auro-button) don't get the
|
|
4482
|
-
* native Enter→click that <button> provides, so we call .click()
|
|
4483
|
-
* directly when Enter is pressed on a button-like element.
|
|
4484
|
-
*
|
|
4485
|
-
* - Tab: Intercepted and re-dispatched so parent components
|
|
4486
|
-
* (select/combobox) can select the active option and close the
|
|
4487
|
-
* dialog. The <dialog> provides containment and isolation
|
|
4488
|
-
* (inert background, VoiceOver focus trapping, top layer), while
|
|
4489
|
-
* the content inside is a role="listbox" navigated via
|
|
4490
|
-
* aria-activedescendant (options are not focusable). Tab keyboard
|
|
4491
|
-
* behavior follows listbox conventions (select + close) because
|
|
4492
|
-
* the dialog's native Tab trap only cycles between the close
|
|
4493
|
-
* button and browser chrome.
|
|
4494
|
-
*
|
|
4495
|
-
* - Escape: The native <dialog> fires a `cancel` event on ESC
|
|
4496
|
-
* (handled by _setupCancelHandler), so the re-dispatched Escape
|
|
4497
|
-
* is a secondary path for parent components that also listen for
|
|
4498
|
-
* Escape keydown.
|
|
4499
|
-
*
|
|
4500
|
-
* @param {HTMLDialogElement} dialog - The dialog element to attach the keyboard bridge to.
|
|
4501
|
-
* @private
|
|
4502
|
-
*/
|
|
4503
|
-
_setupKeyboardBridge(dialog) {
|
|
4504
|
-
const navKeys = new Set([
|
|
4505
|
-
'ArrowUp',
|
|
4506
|
-
'ArrowDown',
|
|
4507
|
-
'Enter',
|
|
4508
|
-
'Escape',
|
|
4509
|
-
'Tab'
|
|
4510
|
-
]);
|
|
4511
|
-
|
|
4512
|
-
dialog.addEventListener('keydown', (event) => {
|
|
4513
|
-
if (!navKeys.has(event.key)) {
|
|
4514
|
-
return;
|
|
4515
|
-
}
|
|
4516
|
-
|
|
4517
|
-
// Custom elements (auro-button) don't get the native Enter→click
|
|
4518
|
-
// behavior that <button> has. Find the button in the composed path
|
|
4519
|
-
// and click it directly — but only when no menu option is
|
|
4520
|
-
// highlighted. In fullscreen mode focus stays on the close button
|
|
4521
|
-
// while arrow keys move the active-descendant highlight through
|
|
4522
|
-
// the listbox. If the user presses Enter with an option
|
|
4523
|
-
// highlighted, the intent is to select that option, not to click
|
|
4524
|
-
// the close button. In that case we fall through and bridge the
|
|
4525
|
-
// Enter key to the parent component's keyboard strategy.
|
|
4526
|
-
if (event.key === 'Enter') {
|
|
4527
|
-
if (!this.hasActiveDescendant) {
|
|
4528
|
-
const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
|
|
4529
|
-
const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
|
|
4530
|
-
if (btn) {
|
|
4531
|
-
event.preventDefault();
|
|
4532
|
-
event.stopPropagation();
|
|
4533
|
-
btn.click();
|
|
4534
|
-
return;
|
|
4535
|
-
}
|
|
4536
|
-
}
|
|
4537
|
-
}
|
|
4538
|
-
|
|
4539
|
-
event.preventDefault();
|
|
4540
|
-
event.stopPropagation();
|
|
4541
|
-
const newEvent = new KeyboardEvent('keydown', {
|
|
4542
|
-
key: event.key,
|
|
4543
|
-
code: event.code,
|
|
4544
|
-
shiftKey: event.shiftKey,
|
|
4545
|
-
altKey: event.altKey,
|
|
4546
|
-
ctrlKey: event.ctrlKey,
|
|
4547
|
-
metaKey: event.metaKey,
|
|
4548
|
-
bubbles: true,
|
|
4549
|
-
composed: true,
|
|
4550
|
-
cancelable: true
|
|
4551
|
-
});
|
|
4552
|
-
this.dispatchEvent(newEvent);
|
|
4553
|
-
});
|
|
4554
|
-
}
|
|
4555
4545
|
|
|
4556
4546
|
/**
|
|
4557
4547
|
* Blocks touch-driven page scroll while a fullscreen modal dialog is open.
|
|
@@ -4926,7 +4916,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
|
|
|
4926
4916
|
}
|
|
4927
4917
|
};
|
|
4928
4918
|
|
|
4929
|
-
var formkitVersion$2 = '
|
|
4919
|
+
var formkitVersion$2 = '202604022013';
|
|
4930
4920
|
|
|
4931
4921
|
let AuroElement$2 = class AuroElement extends LitElement {
|
|
4932
4922
|
static get properties() {
|
|
@@ -5107,7 +5097,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5107
5097
|
this.appearance = 'default';
|
|
5108
5098
|
this.chevron = false;
|
|
5109
5099
|
this.disabled = false;
|
|
5110
|
-
this.
|
|
5100
|
+
this.disableKeyboardHandling = false;
|
|
5111
5101
|
this.error = false;
|
|
5112
5102
|
this.tabIndex = 0;
|
|
5113
5103
|
this.noToggle = false;
|
|
@@ -5205,9 +5195,8 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5205
5195
|
// showModal() fires asynchronously via Lit's update cycle, which
|
|
5206
5196
|
// falls outside the user activation window and causes iOS to
|
|
5207
5197
|
// dismiss the keyboard.
|
|
5208
|
-
if (this.
|
|
5209
|
-
|
|
5210
|
-
this.bibElement.value.open(useModal);
|
|
5198
|
+
if (this.bibElement && this.bibElement.value) {
|
|
5199
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5211
5200
|
}
|
|
5212
5201
|
}
|
|
5213
5202
|
|
|
@@ -5321,9 +5310,9 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5321
5310
|
},
|
|
5322
5311
|
|
|
5323
5312
|
/**
|
|
5324
|
-
* If declared, the
|
|
5313
|
+
* If declared, the dropdown will not handle keyboard events and will require the consumer to manage this behavior.
|
|
5325
5314
|
*/
|
|
5326
|
-
|
|
5315
|
+
disableKeyboardHandling: {
|
|
5327
5316
|
type: Boolean,
|
|
5328
5317
|
reflect: true
|
|
5329
5318
|
},
|
|
@@ -5601,7 +5590,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5601
5590
|
if (this.isPopoverVisible) {
|
|
5602
5591
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
5603
5592
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
5604
|
-
const useModal = this.isBibFullscreen
|
|
5593
|
+
const useModal = this.isBibFullscreen;
|
|
5605
5594
|
this.bibElement.value.open(useModal);
|
|
5606
5595
|
} else {
|
|
5607
5596
|
this.bibElement.value.close();
|
|
@@ -5611,7 +5600,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5611
5600
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5612
5601
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5613
5602
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5614
|
-
const useModal = this.isBibFullscreen
|
|
5603
|
+
const useModal = this.isBibFullscreen;
|
|
5615
5604
|
this.bibElement.value.close();
|
|
5616
5605
|
this.bibElement.value.open(useModal);
|
|
5617
5606
|
}
|
|
@@ -5633,7 +5622,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5633
5622
|
|
|
5634
5623
|
firstUpdated() {
|
|
5635
5624
|
// Configure the floater to, this will generate the ID for the bib
|
|
5636
|
-
this.floater.configure(this, 'auroDropdown');
|
|
5625
|
+
this.floater.configure(this, 'auroDropdown', !this.disableKeyboardHandling);
|
|
5637
5626
|
|
|
5638
5627
|
// Prevent `contain: layout` on the dropdown host. Layout containment
|
|
5639
5628
|
// creates a containing block for position:fixed descendants (the bib),
|
|
@@ -5723,7 +5712,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5723
5712
|
* @private
|
|
5724
5713
|
*/
|
|
5725
5714
|
updateFocusTrap() {
|
|
5726
|
-
if (this.isPopoverVisible
|
|
5715
|
+
if (this.isPopoverVisible) {
|
|
5727
5716
|
if (!this.isBibFullscreen) {
|
|
5728
5717
|
// Desktop: show() doesn't trap focus, so use FocusTrap
|
|
5729
5718
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -5941,6 +5930,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5941
5930
|
aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
|
|
5942
5931
|
aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
|
|
5943
5932
|
aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
|
|
5933
|
+
aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
|
|
5944
5934
|
@focusin="${this.handleFocusin}"
|
|
5945
5935
|
@blur="${this.handleFocusOut}">
|
|
5946
5936
|
<div class="triggerContentWrapper" id="triggerLabel">
|
|
@@ -12683,7 +12673,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
12683
12673
|
}
|
|
12684
12674
|
};
|
|
12685
12675
|
|
|
12686
|
-
var formkitVersion$1 = '
|
|
12676
|
+
var formkitVersion$1 = '202604022013';
|
|
12687
12677
|
|
|
12688
12678
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12689
12679
|
// See LICENSE in the project root for license information.
|
|
@@ -13722,7 +13712,7 @@ class AuroBibtemplate extends LitElement {
|
|
|
13722
13712
|
}
|
|
13723
13713
|
}
|
|
13724
13714
|
|
|
13725
|
-
var formkitVersion = '
|
|
13715
|
+
var formkitVersion = '202604022013';
|
|
13726
13716
|
|
|
13727
13717
|
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}`;
|
|
13728
13718
|
|
|
@@ -15216,7 +15206,7 @@ class AuroCombobox extends AuroElement {
|
|
|
15216
15206
|
* @returns {void}
|
|
15217
15207
|
*/
|
|
15218
15208
|
configureCombobox() {
|
|
15219
|
-
applyKeyboardStrategy(this, comboboxKeyboardStrategy, {
|
|
15209
|
+
applyKeyboardStrategy$1(this, comboboxKeyboardStrategy, {
|
|
15220
15210
|
// In modal mode the input moves into the bib; route keyboard events to that element instead.
|
|
15221
15211
|
inputResolver: (comp, ctx) => (ctx.isModal && comp.inputInBib ? comp.inputInBib : comp.input),
|
|
15222
15212
|
});
|
|
@@ -69,7 +69,7 @@ The `auro-counter` element provides a flexible counter interface with increment
|
|
|
69
69
|
| [min](#min) | `min` | `number` | | The minimum value for the counter. |
|
|
70
70
|
| [onDark](#onDark) | `onDark` | `boolean` | | DEPRECATED - use `appearance="inverse"` instead. |
|
|
71
71
|
| [validity](#validity) | `validity` | `string` | | The validity state of the counter. |
|
|
72
|
-
| [value](#value) | `value` | `number`
|
|
72
|
+
| [value](#value) | `value` | `number \| undefined` | | Gets the current value of the counter. |
|
|
73
73
|
|
|
74
74
|
## Methods
|
|
75
75
|
|