@aurodesignsystem-dev/auro-formkit 0.0.0-pr1398.2 → 0.0.0-pr1398.3
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 +129 -166
- package/components/combobox/demo/index.min.js +129 -166
- package/components/combobox/demo/keyboardBehavior.html +81 -0
- package/components/combobox/demo/keyboardBehavior.md +308 -0
- package/components/combobox/dist/index.js +87 -134
- package/components/combobox/dist/registered.js +87 -134
- package/components/counter/demo/api.min.js +157 -160
- package/components/counter/demo/index.min.js +157 -160
- package/components/counter/demo/keyboardBehavior.html +81 -0
- package/components/counter/demo/keyboardBehavior.md +127 -0
- package/components/counter/dist/auro-counter.d.ts +0 -7
- package/components/counter/dist/index.js +157 -160
- package/components/counter/dist/keyboardStrategy.d.ts +4 -0
- package/components/counter/dist/registered.js +157 -160
- package/components/datepicker/demo/api.min.js +89 -137
- package/components/datepicker/demo/index.min.js +89 -137
- package/components/datepicker/demo/keyboardBehavior.html +81 -0
- package/components/datepicker/demo/keyboardBehavior.md +24 -0
- package/components/datepicker/dist/index.js +84 -132
- package/components/datepicker/dist/registered.js +84 -132
- package/components/dropdown/demo/api.md +0 -1
- package/components/dropdown/demo/api.min.js +99 -140
- package/components/dropdown/demo/index.md +2 -2
- package/components/dropdown/demo/index.min.js +99 -140
- package/components/dropdown/demo/keyboardBehavior.html +81 -0
- package/components/dropdown/demo/keyboardBehavior.md +77 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +0 -8
- package/components/dropdown/dist/auro-dropdownBib.d.ts +1 -50
- package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +7 -0
- package/components/dropdown/dist/index.js +83 -128
- package/components/dropdown/dist/registered.js +83 -128
- package/components/form/demo/api.min.js +466 -599
- package/components/form/demo/index.min.js +466 -599
- 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 +42 -32
- package/components/menu/demo/index.min.js +42 -32
- package/components/menu/dist/auro-menu.d.ts +3 -11
- package/components/menu/dist/index.js +42 -32
- package/components/menu/dist/registered.js +42 -32
- 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 +132 -167
- package/components/select/demo/index.min.js +132 -167
- package/components/select/demo/keyboardBehavior.html +81 -0
- package/components/select/demo/keyboardBehavior.md +246 -0
- package/components/select/dist/index.js +90 -135
- package/components/select/dist/registered.js +90 -135
- package/custom-elements.json +61 -89
- package/package.json +2 -2
|
@@ -1233,7 +1233,7 @@ function restoreTriggerAfterClose(dropdown, focusTarget) {
|
|
|
1233
1233
|
* @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
|
|
1234
1234
|
* isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
|
|
1235
1235
|
*/
|
|
1236
|
-
function createDisplayContext(component, options = {}) {
|
|
1236
|
+
function createDisplayContext$1(component, options = {}) {
|
|
1237
1237
|
const dd = options.dropdown || component.dropdown;
|
|
1238
1238
|
// isPopoverVisible reflects as the `open` attribute.
|
|
1239
1239
|
// It reports whether the bib is open in any mode (popover or modal).
|
|
@@ -1263,11 +1263,11 @@ function createDisplayContext(component, options = {}) {
|
|
|
1263
1263
|
* @param {Object} strategy - Map of key names to handler functions.
|
|
1264
1264
|
* @param {Object} [options] - Optional config passed to createDisplayContext.
|
|
1265
1265
|
*/
|
|
1266
|
-
function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
1266
|
+
function applyKeyboardStrategy$1(component, strategy, options = {}) {
|
|
1267
1267
|
component.addEventListener('keydown', async (evt) => {
|
|
1268
1268
|
const handler = strategy[evt.key] || strategy.default;
|
|
1269
1269
|
if (typeof handler === 'function') {
|
|
1270
|
-
const ctx = createDisplayContext(component, options);
|
|
1270
|
+
const ctx = createDisplayContext$1(component, options);
|
|
1271
1271
|
await handler(component, evt, ctx);
|
|
1272
1272
|
}
|
|
1273
1273
|
});
|
|
@@ -3455,11 +3455,10 @@ class AuroFloatingUI {
|
|
|
3455
3455
|
return;
|
|
3456
3456
|
}
|
|
3457
3457
|
|
|
3458
|
-
const { activeElement } = document;
|
|
3459
3458
|
// if focus is still inside of trigger or bib, do not close
|
|
3460
3459
|
if (
|
|
3461
|
-
this.element.
|
|
3462
|
-
this.element.
|
|
3460
|
+
this.element.matches(":focus") ||
|
|
3461
|
+
this.element.matches(":focus-within")
|
|
3463
3462
|
) {
|
|
3464
3463
|
return;
|
|
3465
3464
|
}
|
|
@@ -4298,12 +4297,83 @@ let p$3 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
|
|
|
4298
4297
|
|
|
4299
4298
|
var iconVersion$2 = '9.1.2';
|
|
4300
4299
|
|
|
4300
|
+
/**
|
|
4301
|
+
* Computes display state once per keydown event.
|
|
4302
|
+
* Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
|
|
4303
|
+
*
|
|
4304
|
+
* @param {HTMLElement} component - The component with a dropdown reference.
|
|
4305
|
+
* @param {Object} [options] - Optional config.
|
|
4306
|
+
* @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
|
|
4307
|
+
* @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
|
|
4308
|
+
* @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
|
|
4309
|
+
* isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
|
|
4310
|
+
*/
|
|
4311
|
+
function createDisplayContext(component, options = {}) {
|
|
4312
|
+
const dd = options.dropdown || component.dropdown;
|
|
4313
|
+
// isPopoverVisible reflects as the `open` attribute.
|
|
4314
|
+
// It reports whether the bib is open in any mode (popover or modal).
|
|
4315
|
+
const isExpanded = Boolean(dd && dd.isPopoverVisible);
|
|
4316
|
+
const isFullscreen = Boolean(dd && dd.isBibFullscreen);
|
|
4317
|
+
|
|
4318
|
+
const ctx = {
|
|
4319
|
+
isExpanded,
|
|
4320
|
+
isModal: isFullscreen,
|
|
4321
|
+
isPopover: !isFullscreen,
|
|
4322
|
+
activeInput: null,
|
|
4323
|
+
};
|
|
4324
|
+
|
|
4325
|
+
if (options.inputResolver) {
|
|
4326
|
+
const resolvedInput = options.inputResolver(component, ctx);
|
|
4327
|
+
// Guard against resolvers returning undefined or non-HTMLElement values.
|
|
4328
|
+
ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
|
|
4329
|
+
}
|
|
4330
|
+
|
|
4331
|
+
return ctx;
|
|
4332
|
+
}
|
|
4333
|
+
|
|
4334
|
+
/**
|
|
4335
|
+
* Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
|
|
4336
|
+
* Handles both sync and async handlers.
|
|
4337
|
+
* @param {HTMLElement} component - The component to attach the listener to.
|
|
4338
|
+
* @param {Object} strategy - Map of key names to handler functions.
|
|
4339
|
+
* @param {Object} [options] - Optional config passed to createDisplayContext.
|
|
4340
|
+
*/
|
|
4341
|
+
function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
4342
|
+
component.addEventListener('keydown', async (evt) => {
|
|
4343
|
+
const handler = strategy[evt.key] || strategy.default;
|
|
4344
|
+
if (typeof handler === 'function') {
|
|
4345
|
+
const ctx = createDisplayContext(component, options);
|
|
4346
|
+
await handler(component, evt, ctx);
|
|
4347
|
+
}
|
|
4348
|
+
});
|
|
4349
|
+
}
|
|
4350
|
+
|
|
4301
4351
|
var styleCss$2$1 = i$6`: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}`;
|
|
4302
4352
|
|
|
4303
4353
|
var colorCss$2$1 = i$6`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
4304
4354
|
|
|
4305
4355
|
var tokensCss$1$1 = i$6`: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)}`;
|
|
4306
4356
|
|
|
4357
|
+
/**
|
|
4358
|
+
* Creates a keyboard strategy for dialog-specific key handling.
|
|
4359
|
+
* All other keydown behavior is left to the browser's native bubbling path.
|
|
4360
|
+
* @param {HTMLElement} bib - The dropdown bib element.
|
|
4361
|
+
* @returns {Object} Keyboard handlers keyed by `event.key`.
|
|
4362
|
+
*/
|
|
4363
|
+
// eslint-disable-next-line no-unused-vars
|
|
4364
|
+
function createDropdownBibKeyboardStrategy(bib) {
|
|
4365
|
+
return {
|
|
4366
|
+
// eslint-disable-next-line no-unused-vars
|
|
4367
|
+
Enter(_dialog, event) {
|
|
4368
|
+
// Floating UI handles Enter key to open the dropdown
|
|
4369
|
+
},
|
|
4370
|
+
// eslint-disable-next-line no-unused-vars
|
|
4371
|
+
Escape(_dialog, event) {
|
|
4372
|
+
// Floating UI handles Escape key to close the dropdown
|
|
4373
|
+
}
|
|
4374
|
+
};
|
|
4375
|
+
}
|
|
4376
|
+
|
|
4307
4377
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4308
4378
|
// See LICENSE in the project root for license information.
|
|
4309
4379
|
/* eslint-disable max-lines */
|
|
@@ -4428,26 +4498,11 @@ class AuroDropdownBib extends i$3 {
|
|
|
4428
4498
|
},
|
|
4429
4499
|
|
|
4430
4500
|
/**
|
|
4431
|
-
*
|
|
4432
|
-
* aria-activedescendant. The dialog keyboard bridge checks this
|
|
4433
|
-
* flag so that Enter selects the highlighted option instead of
|
|
4434
|
-
* activating the focused interactive element (e.g. the trigger
|
|
4435
|
-
* button, or the bibtemplate close button in fullscreen).
|
|
4501
|
+
* Tracks whether a menu option is currently highlighted.
|
|
4436
4502
|
* @private
|
|
4437
4503
|
*/
|
|
4438
4504
|
hasActiveDescendant: {
|
|
4439
4505
|
type: Boolean
|
|
4440
|
-
},
|
|
4441
|
-
|
|
4442
|
-
/**
|
|
4443
|
-
* When true, the keyboard bridge allows native Tab behavior
|
|
4444
|
-
* instead of intercepting it. Set this for bib consumers
|
|
4445
|
-
* (e.g. counter) whose content contains real focusable elements
|
|
4446
|
-
* that need native Tab navigation.
|
|
4447
|
-
* @private
|
|
4448
|
-
*/
|
|
4449
|
-
nativeFocusableContent: {
|
|
4450
|
-
type: Boolean
|
|
4451
4506
|
}
|
|
4452
4507
|
};
|
|
4453
4508
|
}
|
|
@@ -4517,7 +4572,7 @@ class AuroDropdownBib extends i$3 {
|
|
|
4517
4572
|
|
|
4518
4573
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4519
4574
|
this._setupCancelHandler(dialog);
|
|
4520
|
-
|
|
4575
|
+
applyKeyboardStrategy(dialog, createDropdownBibKeyboardStrategy());
|
|
4521
4576
|
|
|
4522
4577
|
this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
|
|
4523
4578
|
bubbles: true,
|
|
@@ -4544,98 +4599,6 @@ class AuroDropdownBib extends i$3 {
|
|
|
4544
4599
|
});
|
|
4545
4600
|
}
|
|
4546
4601
|
|
|
4547
|
-
/**
|
|
4548
|
-
* showModal() creates a closed focus scope — keyboard events inside
|
|
4549
|
-
* the dialog's shadow DOM do NOT bubble out to the combobox/select
|
|
4550
|
-
* keydown handlers in the parent shadow DOM. This handler bridges
|
|
4551
|
-
* that gap by re-dispatching navigation keys so they cross the
|
|
4552
|
-
* shadow boundary and reach the menu navigation logic in the parent
|
|
4553
|
-
* component.
|
|
4554
|
-
*
|
|
4555
|
-
* The trade-off: intercepting these keys means native keyboard
|
|
4556
|
-
* behaviors that would normally "just work" must be manually
|
|
4557
|
-
* re-implemented here:
|
|
4558
|
-
*
|
|
4559
|
-
* - Enter on buttons: Custom elements (auro-button) don't get the
|
|
4560
|
-
* native Enter→click that <button> provides, so we call .click()
|
|
4561
|
-
* directly when Enter is pressed on a button-like element.
|
|
4562
|
-
*
|
|
4563
|
-
* - Tab: Intercepted and re-dispatched so parent components
|
|
4564
|
-
* (select/combobox) can select the active option and close the
|
|
4565
|
-
* dialog. The <dialog> provides containment and isolation
|
|
4566
|
-
* (inert background, VoiceOver focus trapping, top layer), while
|
|
4567
|
-
* the content inside is a role="listbox" navigated via
|
|
4568
|
-
* aria-activedescendant (options are not focusable). Tab keyboard
|
|
4569
|
-
* behavior follows listbox conventions (select + close) because
|
|
4570
|
-
* the dialog's native Tab trap only cycles between the close
|
|
4571
|
-
* button and browser chrome.
|
|
4572
|
-
*
|
|
4573
|
-
* - Escape: The native <dialog> fires a `cancel` event on ESC
|
|
4574
|
-
* (handled by _setupCancelHandler), so the re-dispatched Escape
|
|
4575
|
-
* is a secondary path for parent components that also listen for
|
|
4576
|
-
* Escape keydown.
|
|
4577
|
-
*
|
|
4578
|
-
* @param {HTMLDialogElement} dialog - The dialog element to attach the keyboard bridge to.
|
|
4579
|
-
* @private
|
|
4580
|
-
*/
|
|
4581
|
-
_setupKeyboardBridge(dialog) {
|
|
4582
|
-
const navKeys = new Set([
|
|
4583
|
-
'ArrowUp',
|
|
4584
|
-
'ArrowDown',
|
|
4585
|
-
'Enter',
|
|
4586
|
-
'Escape',
|
|
4587
|
-
'Tab'
|
|
4588
|
-
]);
|
|
4589
|
-
|
|
4590
|
-
dialog.addEventListener('keydown', (event) => {
|
|
4591
|
-
if (!navKeys.has(event.key)) {
|
|
4592
|
-
return;
|
|
4593
|
-
}
|
|
4594
|
-
|
|
4595
|
-
// Custom elements (auro-button) don't get the native Enter→click
|
|
4596
|
-
// behavior that <button> has. Find the button in the composed path
|
|
4597
|
-
// and click it directly — but only when no menu option is
|
|
4598
|
-
// highlighted. In fullscreen mode focus stays on the close button
|
|
4599
|
-
// while arrow keys move the active-descendant highlight through
|
|
4600
|
-
// the listbox. If the user presses Enter with an option
|
|
4601
|
-
// highlighted, the intent is to select that option, not to click
|
|
4602
|
-
// the close button. In that case we fall through and bridge the
|
|
4603
|
-
// Enter key to the parent component's keyboard strategy.
|
|
4604
|
-
if (event.key === 'Enter') {
|
|
4605
|
-
if (!this.hasActiveDescendant) {
|
|
4606
|
-
const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
|
|
4607
|
-
const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
|
|
4608
|
-
if (btn) {
|
|
4609
|
-
event.preventDefault();
|
|
4610
|
-
event.stopPropagation();
|
|
4611
|
-
btn.click();
|
|
4612
|
-
return;
|
|
4613
|
-
}
|
|
4614
|
-
}
|
|
4615
|
-
}
|
|
4616
|
-
|
|
4617
|
-
// Allow native Tab when the bib contains focusable content
|
|
4618
|
-
// (e.g. counter buttons) that needs normal Tab navigation.
|
|
4619
|
-
if (event.key === 'Tab' && this.nativeFocusableContent) {
|
|
4620
|
-
return;
|
|
4621
|
-
}
|
|
4622
|
-
|
|
4623
|
-
event.preventDefault();
|
|
4624
|
-
event.stopPropagation();
|
|
4625
|
-
const newEvent = new KeyboardEvent('keydown', {
|
|
4626
|
-
key: event.key,
|
|
4627
|
-
code: event.code,
|
|
4628
|
-
shiftKey: event.shiftKey,
|
|
4629
|
-
altKey: event.altKey,
|
|
4630
|
-
ctrlKey: event.ctrlKey,
|
|
4631
|
-
metaKey: event.metaKey,
|
|
4632
|
-
bubbles: true,
|
|
4633
|
-
composed: true,
|
|
4634
|
-
cancelable: true
|
|
4635
|
-
});
|
|
4636
|
-
this.dispatchEvent(newEvent);
|
|
4637
|
-
});
|
|
4638
|
-
}
|
|
4639
4602
|
|
|
4640
4603
|
/**
|
|
4641
4604
|
* Blocks touch-driven page scroll while a fullscreen modal dialog is open.
|
|
@@ -5010,7 +4973,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
|
|
|
5010
4973
|
}
|
|
5011
4974
|
};
|
|
5012
4975
|
|
|
5013
|
-
var formkitVersion$1 = '
|
|
4976
|
+
var formkitVersion$1 = '202604012043';
|
|
5014
4977
|
|
|
5015
4978
|
class AuroElement extends i$3 {
|
|
5016
4979
|
static get properties() {
|
|
@@ -5191,7 +5154,6 @@ class AuroDropdown extends AuroElement {
|
|
|
5191
5154
|
this.appearance = 'default';
|
|
5192
5155
|
this.chevron = false;
|
|
5193
5156
|
this.disabled = false;
|
|
5194
|
-
this.disableFocusTrap = false;
|
|
5195
5157
|
this.error = false;
|
|
5196
5158
|
this.tabIndex = 0;
|
|
5197
5159
|
this.noToggle = false;
|
|
@@ -5289,9 +5251,8 @@ class AuroDropdown extends AuroElement {
|
|
|
5289
5251
|
// showModal() fires asynchronously via Lit's update cycle, which
|
|
5290
5252
|
// falls outside the user activation window and causes iOS to
|
|
5291
5253
|
// dismiss the keyboard.
|
|
5292
|
-
if (this.
|
|
5293
|
-
|
|
5294
|
-
this.bibElement.value.open(useModal);
|
|
5254
|
+
if (this.bibElement && this.bibElement.value) {
|
|
5255
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5295
5256
|
}
|
|
5296
5257
|
}
|
|
5297
5258
|
|
|
@@ -5404,14 +5365,6 @@ class AuroDropdown extends AuroElement {
|
|
|
5404
5365
|
reflect: true
|
|
5405
5366
|
},
|
|
5406
5367
|
|
|
5407
|
-
/**
|
|
5408
|
-
* If declared, the focus trap inside of bib will be turned off.
|
|
5409
|
-
*/
|
|
5410
|
-
disableFocusTrap: {
|
|
5411
|
-
type: Boolean,
|
|
5412
|
-
reflect: true
|
|
5413
|
-
},
|
|
5414
|
-
|
|
5415
5368
|
/**
|
|
5416
5369
|
* @private
|
|
5417
5370
|
*/
|
|
@@ -5685,7 +5638,7 @@ class AuroDropdown extends AuroElement {
|
|
|
5685
5638
|
if (this.isPopoverVisible) {
|
|
5686
5639
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
5687
5640
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
5688
|
-
const useModal = this.isBibFullscreen
|
|
5641
|
+
const useModal = this.isBibFullscreen;
|
|
5689
5642
|
this.bibElement.value.open(useModal);
|
|
5690
5643
|
} else {
|
|
5691
5644
|
this.bibElement.value.close();
|
|
@@ -5695,7 +5648,7 @@ class AuroDropdown extends AuroElement {
|
|
|
5695
5648
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5696
5649
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5697
5650
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5698
|
-
const useModal = this.isBibFullscreen
|
|
5651
|
+
const useModal = this.isBibFullscreen;
|
|
5699
5652
|
this.bibElement.value.close();
|
|
5700
5653
|
this.bibElement.value.open(useModal);
|
|
5701
5654
|
}
|
|
@@ -5807,7 +5760,7 @@ class AuroDropdown extends AuroElement {
|
|
|
5807
5760
|
* @private
|
|
5808
5761
|
*/
|
|
5809
5762
|
updateFocusTrap() {
|
|
5810
|
-
if (this.isPopoverVisible
|
|
5763
|
+
if (this.isPopoverVisible) {
|
|
5811
5764
|
if (!this.isBibFullscreen) {
|
|
5812
5765
|
// Desktop: show() doesn't trap focus, so use FocusTrap
|
|
5813
5766
|
this.focusTrap = new FocusTrap(this.bibContent);
|
|
@@ -6763,7 +6716,7 @@ class AuroHelpText extends i$3 {
|
|
|
6763
6716
|
}
|
|
6764
6717
|
}
|
|
6765
6718
|
|
|
6766
|
-
var formkitVersion = '
|
|
6719
|
+
var formkitVersion = '202604012043';
|
|
6767
6720
|
|
|
6768
6721
|
var styleCss$2 = i$6`.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}.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}[auro-dropdown]{--ds-auro-dropdown-trigger-border-color: var(--ds-auro-select-border-color);--ds-auro-dropdown-trigger-background-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-container-color: var(--ds-auro-select-background-color);--ds-auro-dropdown-trigger-outline-color: var(--ds-auro-select-outline-color)}:host{display:inline-block;text-align:left;vertical-align:top}:host([layout*=emphasized]) [auro-dropdown],:host([layout*=snowflake]) [auro-dropdown]{--ds-auro-select-border-color: transparent}:host([layout*=emphasized]) .mainContent,:host([layout*=snowflake]) .mainContent{text-align:center}.mainContent{position:relative;display:flex;overflow:hidden;flex:1;flex-direction:column;align-items:center;justify-content:center}.valueContainer [slot=displayValue]{display:none}.accents{display:flex;flex-direction:row;align-items:center;justify-content:center}::slotted([slot=typeIcon]){margin-right:var(--ds-size-100, 0.5rem)}.displayValue{display:block}.displayValue:not(.force){display:none}.displayValue:not(.force).hasContent:is(.withValue):not(.hasFocus){display:block}.triggerContent{display:flex;width:100%;align-items:center;justify-content:center}:host([layout*=emphasized]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-300, 1.5rem)}:host([layout*=snowflake]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem) 0 var(--ds-size-200, 1rem)}:host([layout*=snowflake]) label{padding-block:var(--ds-size-25, 0.125rem)}:host([layout*=classic]) .triggerContent{padding:0 var(--ds-size-100, 0.5rem)}:host([layout*=classic]) .mainContent{align-items:start}:host([layout*=classic]) label{overflow:hidden;cursor:text;text-overflow:ellipsis;white-space:nowrap}:host([layout*=classic]) .value{height:auto}label{color:var(--ds-auro-select-label-text-color)}:host(:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-select-outline-color: var(--ds-basic-color-status-error, #e31f26);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]:is([validity]:not([validity=valid]))) [auro-dropdown],:host([appearance=inverse]:is([validity]:not([validity=valid]))) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-select-outline-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8);--ds-auro-dropdown-helptext-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}#slotHolder{display:none}:host([fluid]){width:100%}:host([disabled]){pointer-events:none;user-select:none}:host([disabled]:not([ondark])) [auro-dropdown],:host([disabled]:not([appearance=inverse])) [auro-dropdown]{--ds-auro-select-border-color: var(--ds-basic-color-border-subtle, #dddddd)}:host(:not([layout*=classic])[disabled][ondark]) [auro-dropdown],:host(:not([layout*=classic])[disabled][appearance=inverse]) [auro-dropdown]{--ds-auro-select-border-color: transparent}`;
|
|
6769
6722
|
|
|
@@ -7285,7 +7238,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7285
7238
|
|
|
7286
7239
|
// Prevent dropdown from closing on focus loss since menu content is slotted
|
|
7287
7240
|
// from select's light DOM and won't be detected by dropdown's contains() check.
|
|
7288
|
-
// Select handles Tab key closing explicitly,
|
|
7241
|
+
// Select handles Tab key closing explicitly, `Escape` key via dialog cancel, and
|
|
7289
7242
|
// click outside works correctly via composedPath().
|
|
7290
7243
|
this.dropdown.noHideOnThisFocusLoss = true;
|
|
7291
7244
|
|
|
@@ -7298,7 +7251,9 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7298
7251
|
this.dropdown.setActiveDescendant(null);
|
|
7299
7252
|
this.optionActive = null;
|
|
7300
7253
|
|
|
7301
|
-
|
|
7254
|
+
if (this.dropdown.isBibFullscreen) {
|
|
7255
|
+
restoreTriggerAfterClose(this.dropdown, this.dropdown.trigger);
|
|
7256
|
+
}
|
|
7302
7257
|
}
|
|
7303
7258
|
|
|
7304
7259
|
if (this.dropdown.isPopoverVisible) {
|
|
@@ -7572,7 +7527,7 @@ class AuroSelect extends AuroElement$1 {
|
|
|
7572
7527
|
configureSelect() {
|
|
7573
7528
|
this.nativeSelect = this.shadowRoot.querySelector('select');
|
|
7574
7529
|
|
|
7575
|
-
applyKeyboardStrategy(this, selectKeyboardStrategy);
|
|
7530
|
+
applyKeyboardStrategy$1(this, selectKeyboardStrategy);
|
|
7576
7531
|
|
|
7577
7532
|
this.addEventListener('focusin', this.handleFocusin);
|
|
7578
7533
|
|
|
@@ -9623,10 +9578,10 @@ class AuroMenu extends AuroElement$1 {
|
|
|
9623
9578
|
|
|
9624
9579
|
// Event Bindings
|
|
9625
9580
|
|
|
9626
|
-
/**
|
|
9627
|
-
|
|
9628
|
-
|
|
9629
|
-
this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
9581
|
+
// /**
|
|
9582
|
+
// * @private
|
|
9583
|
+
// */
|
|
9584
|
+
// this.handleKeyDown = this.handleKeyDown.bind(this);
|
|
9630
9585
|
|
|
9631
9586
|
|
|
9632
9587
|
/**
|
|
@@ -9875,6 +9830,13 @@ class AuroMenu extends AuroElement$1 {
|
|
|
9875
9830
|
* @protected
|
|
9876
9831
|
*/
|
|
9877
9832
|
provideContext() {
|
|
9833
|
+
if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
|
|
9834
|
+
this.rootMenu = false;
|
|
9835
|
+
this.menuService = this.parentElement.menuService;
|
|
9836
|
+
this._contextProvider = this.parentElement._contextProvider;
|
|
9837
|
+
return;
|
|
9838
|
+
}
|
|
9839
|
+
|
|
9878
9840
|
this.menuService = new MenuService({host: this});
|
|
9879
9841
|
this.menuService.setProperties(this.propertyValues);
|
|
9880
9842
|
this.menuService.subscribe(this.handleMenuChange.bind(this));
|
|
@@ -9968,7 +9930,7 @@ class AuroMenu extends AuroElement$1 {
|
|
|
9968
9930
|
|
|
9969
9931
|
this.provideContext();
|
|
9970
9932
|
|
|
9971
|
-
this.addEventListener('keydown', this.handleKeyDown);
|
|
9933
|
+
// this.addEventListener('keydown', this.handleKeyDown);
|
|
9972
9934
|
this.addEventListener('auroMenuOption-click', this.handleMouseSelect);
|
|
9973
9935
|
this.addEventListener('auroMenuOption-mouseover', this.handleOptionHover);
|
|
9974
9936
|
this.addEventListener('slotchange', this.handleSlotChange);
|
|
@@ -9976,7 +9938,7 @@ class AuroMenu extends AuroElement$1 {
|
|
|
9976
9938
|
}
|
|
9977
9939
|
|
|
9978
9940
|
disconnectedCallback() {
|
|
9979
|
-
this.removeEventListener('keydown', this.handleKeyDown);
|
|
9941
|
+
// this.removeEventListener('keydown', this.handleKeyDown);
|
|
9980
9942
|
this.removeEventListener('auroMenuOption-click', this.handleMouseSelect);
|
|
9981
9943
|
this.removeEventListener('auroMenuOption-mouseover', this.handleOptionHover);
|
|
9982
9944
|
this.removeEventListener('slotchange', this.handleSlotChange);
|
|
@@ -10057,9 +10019,9 @@ class AuroMenu extends AuroElement$1 {
|
|
|
10057
10019
|
if (this.multiSelect) {
|
|
10058
10020
|
this.setAttribute('aria-multiselectable', 'true');
|
|
10059
10021
|
}
|
|
10060
|
-
|
|
10061
|
-
this.handleNestedMenus(this);
|
|
10062
10022
|
}
|
|
10023
|
+
|
|
10024
|
+
this.handleNestedMenus(this);
|
|
10063
10025
|
}
|
|
10064
10026
|
|
|
10065
10027
|
/**
|
|
@@ -10117,26 +10079,33 @@ class AuroMenu extends AuroElement$1 {
|
|
|
10117
10079
|
|
|
10118
10080
|
// Event Handlers
|
|
10119
10081
|
|
|
10120
|
-
/**
|
|
10121
|
-
|
|
10122
|
-
|
|
10123
|
-
|
|
10124
|
-
|
|
10125
|
-
handleKeyDown(event) {
|
|
10126
|
-
|
|
10127
|
-
|
|
10128
|
-
|
|
10129
|
-
|
|
10130
|
-
|
|
10131
|
-
|
|
10132
|
-
|
|
10133
|
-
|
|
10134
|
-
|
|
10135
|
-
|
|
10136
|
-
|
|
10137
|
-
|
|
10138
|
-
|
|
10139
|
-
|
|
10082
|
+
// /**
|
|
10083
|
+
// * Handles keyboard navigation.
|
|
10084
|
+
// * @private
|
|
10085
|
+
// * @param {KeyboardEvent} event - Event object from the browser.
|
|
10086
|
+
// */
|
|
10087
|
+
// handleKeyDown(event) {
|
|
10088
|
+
// // Update to Chris keyboard handler
|
|
10089
|
+
// // We have a new "navigateArrow" function in that handler, maybe that replaces those keys here?
|
|
10090
|
+
// event.preventDefault();
|
|
10091
|
+
// switch (event.key) {
|
|
10092
|
+
// case "ArrowDown":
|
|
10093
|
+
// console.warn("ArrowDown key is pressed and heard from menu");
|
|
10094
|
+
// this.menuService.highlightNext();
|
|
10095
|
+
// break;
|
|
10096
|
+
// case "ArrowUp":
|
|
10097
|
+
// console.warn("ArrowUp key is pressed and heard from menu");
|
|
10098
|
+
// this.menuService.highlightPrevious();
|
|
10099
|
+
// break;
|
|
10100
|
+
// case "Tab":
|
|
10101
|
+
// case "Enter":
|
|
10102
|
+
// this.menuService.selectHighlightedOption();
|
|
10103
|
+
// // Does this need to get separated into two cases to handle the different expected behavior of tab vs enter?
|
|
10104
|
+
// break;
|
|
10105
|
+
// default:
|
|
10106
|
+
// break;
|
|
10107
|
+
// }
|
|
10108
|
+
// }
|
|
10140
10109
|
|
|
10141
10110
|
/**
|
|
10142
10111
|
* Navigates the menu options in the specified direction.
|
|
@@ -10156,10 +10125,6 @@ class AuroMenu extends AuroElement$1 {
|
|
|
10156
10125
|
* @private
|
|
10157
10126
|
*/
|
|
10158
10127
|
handleSlotChange() {
|
|
10159
|
-
if (this.parentElement && this.parentElement.closest('auro-menu, [auro-menu]')) {
|
|
10160
|
-
this.rootMenu = false;
|
|
10161
|
-
}
|
|
10162
|
-
|
|
10163
10128
|
if (this.rootMenu) {
|
|
10164
10129
|
this.initializeMenu();
|
|
10165
10130
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
3
|
+
See LICENSE in the project root for license information.
|
|
4
|
+
|
|
5
|
+
HTML in this document is standardized and NOT to be edited.
|
|
6
|
+
All demo code should be added/edited in ./demo/index.md
|
|
7
|
+
|
|
8
|
+
With the exception of adding custom elements if needed for the demo.
|
|
9
|
+
|
|
10
|
+
----------------------- DO NOT EDIT -----------------------------
|
|
11
|
+
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
<!DOCTYPE html>
|
|
15
|
+
<html lang="en">
|
|
16
|
+
<head>
|
|
17
|
+
<meta charset="UTF-8" />
|
|
18
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
19
|
+
<title>Auro Web Component Demo | auro-select</title>
|
|
20
|
+
|
|
21
|
+
<!-- Prism.js Stylesheet -->
|
|
22
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/prismjs@1.24.1/themes/prism.css"/>
|
|
23
|
+
|
|
24
|
+
<!-- Legacy reference is still needed to support auro-select's use of legacy token values at this time -->
|
|
25
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/design-tokens@latest/dist/legacy/auro-classic/CSSCustomProperties.css"/>
|
|
26
|
+
|
|
27
|
+
<!-- Design Token Alaska Theme -->
|
|
28
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/design-tokens@latest/dist/themes/alaska/CSSCustomProperties--alaska.min.css"/>
|
|
29
|
+
|
|
30
|
+
<!-- Webcore Stylesheet Alaska Theme -->
|
|
31
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/webcorestylesheets@latest/dist/bundled/themes/alaska.global.min.css" />
|
|
32
|
+
|
|
33
|
+
<!-- Demo Specific Styles -->
|
|
34
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/webcorestylesheets@latest/dist/demoWrapper.css" />
|
|
35
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@aurodesignsystem/webcorestylesheets@latest/dist/elementDemoStyles.css" />
|
|
36
|
+
<style>
|
|
37
|
+
table {
|
|
38
|
+
--ds-color-container-secondary-default: transparent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
tr:not(:last-of-type) {
|
|
42
|
+
border-bottom: 1px solid var(--ds-color-border-tertiary-default);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
sup {
|
|
46
|
+
font-size: 60%;
|
|
47
|
+
font-style: italic;
|
|
48
|
+
opacity: 0.6;
|
|
49
|
+
top: -.5rem;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.note {
|
|
53
|
+
margin: 10px 0;
|
|
54
|
+
padding: 10px;
|
|
55
|
+
border-radius: 6px;
|
|
56
|
+
font-style: italic;
|
|
57
|
+
color: var(--ds-basic-color-texticon-muted);
|
|
58
|
+
background-color: var(--ds-basic-color-surface-neutral-subtle);
|
|
59
|
+
}
|
|
60
|
+
</style>
|
|
61
|
+
</head>
|
|
62
|
+
<body class="auro-markdown">
|
|
63
|
+
<main></main>
|
|
64
|
+
|
|
65
|
+
<script type="module">
|
|
66
|
+
import 'https://cdn.jsdelivr.net/npm/marked@latest/marked.min.js';
|
|
67
|
+
import 'https://cdn.jsdelivr.net/npm/prismjs@latest/prism.js';
|
|
68
|
+
fetch('./keyboardBehavior.md')
|
|
69
|
+
.then((response) => response.text())
|
|
70
|
+
.then((text) => {
|
|
71
|
+
const rawHtml = marked.parse(text);
|
|
72
|
+
document.querySelector('main').innerHTML = rawHtml;
|
|
73
|
+
Prism.highlightAll();
|
|
74
|
+
})
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<!-- If additional elements are needed for the demo, add them here. -->
|
|
78
|
+
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-header@latest/+esm" type="module"></script>
|
|
79
|
+
<script src="https://cdn.jsdelivr.net/npm/@aurodesignsystem/auro-hyperlink@latest/+esm" type="module"></script>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|