@aurodesignsystem-dev/auro-formkit 0.0.0-pr1346.3 → 0.0.0-pr1346.4
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 +224 -45
- package/components/combobox/demo/index.min.js +224 -45
- package/components/combobox/dist/auro-combobox.d.ts +2 -1
- package/components/combobox/dist/index.js +217 -42
- package/components/combobox/dist/registered.js +217 -42
- package/components/counter/demo/api.min.js +123 -11
- package/components/counter/demo/index.min.js +123 -11
- package/components/counter/dist/index.js +123 -11
- package/components/counter/dist/registered.js +123 -11
- package/components/datepicker/demo/api.min.js +133 -20
- package/components/datepicker/demo/index.min.js +133 -20
- package/components/datepicker/dist/index.js +133 -20
- package/components/datepicker/dist/registered.js +133 -20
- package/components/dropdown/demo/api.min.js +122 -10
- package/components/dropdown/demo/index.min.js +122 -10
- package/components/dropdown/dist/auro-dropdownBib.d.ts +18 -2
- package/components/dropdown/dist/index.js +122 -10
- package/components/dropdown/dist/registered.js +122 -10
- package/components/input/demo/api.min.js +10 -9
- package/components/input/demo/index.min.js +10 -9
- package/components/input/dist/index.js +10 -9
- package/components/input/dist/registered.js +10 -9
- package/components/menu/demo/api.min.js +7 -3
- package/components/menu/demo/index.min.js +7 -3
- package/components/menu/dist/index.js +7 -3
- package/components/menu/dist/registered.js +7 -3
- 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 +159 -17
- package/components/select/demo/index.min.js +159 -17
- package/components/select/dist/index.js +152 -14
- package/components/select/dist/registered.js +152 -14
- package/custom-elements.json +35 -10
- package/package.json +1 -1
|
@@ -1392,7 +1392,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
|
|
|
1392
1392
|
}
|
|
1393
1393
|
};
|
|
1394
1394
|
|
|
1395
|
-
var formkitVersion$1 = '
|
|
1395
|
+
var formkitVersion$1 = '202602260152';
|
|
1396
1396
|
|
|
1397
1397
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
1398
1398
|
// See LICENSE in the project root for license information.
|
|
@@ -4628,7 +4628,7 @@ let p$2 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
|
|
|
4628
4628
|
|
|
4629
4629
|
var iconVersion$1 = '9.1.2';
|
|
4630
4630
|
|
|
4631
|
-
var styleCss$2 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{max-width:none;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:absolute;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([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}`;
|
|
4631
|
+
var styleCss$2 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{max-width:none;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:absolute;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([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}`;
|
|
4632
4632
|
|
|
4633
4633
|
var colorCss$2 = 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)}`;
|
|
4634
4634
|
|
|
@@ -4636,6 +4636,8 @@ var tokensCss$1 = css`:host(:not([ondark])),:host(:not([appearance=inverse])){--
|
|
|
4636
4636
|
|
|
4637
4637
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
4638
4638
|
// See LICENSE in the project root for license information.
|
|
4639
|
+
/* eslint-disable max-lines */
|
|
4640
|
+
// ---------------------------------------------------------------------
|
|
4639
4641
|
|
|
4640
4642
|
|
|
4641
4643
|
const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
|
|
@@ -4811,22 +4813,63 @@ class AuroDropdownBib extends LitElement {
|
|
|
4811
4813
|
// Handle ESC key via dialog's cancel event
|
|
4812
4814
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4813
4815
|
dialog.addEventListener('cancel', (event) => {
|
|
4814
|
-
|
|
4816
|
+
// Let parent handle closing
|
|
4817
|
+
event.preventDefault();
|
|
4815
4818
|
this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
|
|
4816
4819
|
bubbles: true,
|
|
4817
4820
|
composed: true
|
|
4818
4821
|
}));
|
|
4819
4822
|
});
|
|
4820
4823
|
|
|
4821
|
-
//
|
|
4822
|
-
//
|
|
4823
|
-
//
|
|
4824
|
-
//
|
|
4825
|
-
|
|
4824
|
+
// showModal() creates a closed focus scope — keyboard events inside
|
|
4825
|
+
// the dialog's shadow DOM do NOT bubble out to the combobox/select
|
|
4826
|
+
// keydown handlers in the parent shadow DOM. This handler bridges
|
|
4827
|
+
// that gap by re-dispatching navigation keys so they cross the
|
|
4828
|
+
// shadow boundary and reach the menu navigation logic in the parent
|
|
4829
|
+
// component.
|
|
4830
|
+
//
|
|
4831
|
+
// The trade-off: intercepting these keys means native keyboard
|
|
4832
|
+
// behaviors that would normally "just work" must be manually
|
|
4833
|
+
// re-implemented here:
|
|
4834
|
+
//
|
|
4835
|
+
// - Enter on buttons: Custom elements (auro-button) don't get the
|
|
4836
|
+
// native Enter→click that <button> provides, so we call .click()
|
|
4837
|
+
// directly when Enter is pressed on a button-like element.
|
|
4838
|
+
//
|
|
4839
|
+
// - Tab: NOT intercepted — left to the browser's native focus trap
|
|
4840
|
+
// provided by showModal(), which cycles Tab between focusable
|
|
4841
|
+
// elements inside the dialog (e.g. the input and close button).
|
|
4842
|
+
// Intercepting Tab would kill the native focus trap and break
|
|
4843
|
+
// focus management inside the dialog.
|
|
4844
|
+
//
|
|
4845
|
+
// - Escape: The native <dialog> fires a `cancel` event on ESC
|
|
4846
|
+
// (handled above), so the re-dispatched Escape is a secondary
|
|
4847
|
+
// path for parent components that also listen for Escape keydown.
|
|
4848
|
+
const navKeys = new Set([
|
|
4849
|
+
'ArrowUp',
|
|
4850
|
+
'ArrowDown',
|
|
4851
|
+
'Enter',
|
|
4852
|
+
'Escape'
|
|
4853
|
+
]);
|
|
4826
4854
|
dialog.addEventListener('keydown', (event) => {
|
|
4827
4855
|
if (!navKeys.has(event.key)) {
|
|
4828
4856
|
return;
|
|
4829
4857
|
}
|
|
4858
|
+
|
|
4859
|
+
// Custom elements (auro-button) don't get the native Enter→click
|
|
4860
|
+
// behavior that <button> has. Find the button in the composed path
|
|
4861
|
+
// and click it directly.
|
|
4862
|
+
if (event.key === 'Enter') {
|
|
4863
|
+
const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
|
|
4864
|
+
const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
|
|
4865
|
+
if (btn) {
|
|
4866
|
+
event.preventDefault();
|
|
4867
|
+
event.stopPropagation();
|
|
4868
|
+
btn.click();
|
|
4869
|
+
return;
|
|
4870
|
+
}
|
|
4871
|
+
}
|
|
4872
|
+
|
|
4830
4873
|
event.preventDefault();
|
|
4831
4874
|
event.stopPropagation();
|
|
4832
4875
|
const newEvent = new KeyboardEvent('keydown', {
|
|
@@ -4850,9 +4893,55 @@ class AuroDropdownBib extends LitElement {
|
|
|
4850
4893
|
}
|
|
4851
4894
|
|
|
4852
4895
|
/**
|
|
4853
|
-
*
|
|
4854
|
-
*
|
|
4896
|
+
* Blocks touch-driven page scroll while a fullscreen modal dialog is open.
|
|
4897
|
+
*
|
|
4898
|
+
* The showModal() function places the dialog in the browser's **top layer**,
|
|
4899
|
+
* which is a separate rendering layer above the normal DOM. On mobile, the
|
|
4900
|
+
* compositor processes visual-viewport panning before top-layer touch
|
|
4901
|
+
* handling. This means the entire viewport — including the top-layer dialog
|
|
4902
|
+
* — can be panned by a touch gesture, causing the page behind the dialog to
|
|
4903
|
+
* scroll into view. To prevent this, we add a touchmove listener that cancels
|
|
4904
|
+
* the event if the touch started outside the dialog or any scrollable child within it.
|
|
4905
|
+
*
|
|
4906
|
+
* @private
|
|
4855
4907
|
*/
|
|
4908
|
+
_lockTouchScroll() {
|
|
4909
|
+
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4910
|
+
|
|
4911
|
+
this._touchMoveHandler = (event) => {
|
|
4912
|
+
// Walk the composed path (which crosses shadow DOM boundaries) to
|
|
4913
|
+
// check whether the touch started inside a scrollable element that
|
|
4914
|
+
// lives within the dialog. If so, allow the scroll.
|
|
4915
|
+
for (const el of event.composedPath()) {
|
|
4916
|
+
if (el === dialog) {
|
|
4917
|
+
// Reached the dialog boundary without finding a scrollable child.
|
|
4918
|
+
break;
|
|
4919
|
+
}
|
|
4920
|
+
if (el instanceof HTMLElement && el.scrollHeight > el.clientHeight) {
|
|
4921
|
+
const { overflowY } = getComputedStyle(el);
|
|
4922
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
4923
|
+
return;
|
|
4924
|
+
}
|
|
4925
|
+
}
|
|
4926
|
+
}
|
|
4927
|
+
|
|
4928
|
+
event.preventDefault();
|
|
4929
|
+
};
|
|
4930
|
+
|
|
4931
|
+
document.addEventListener('touchmove', this._touchMoveHandler, { passive: false });
|
|
4932
|
+
}
|
|
4933
|
+
|
|
4934
|
+
/**
|
|
4935
|
+
* Removes the touchmove listener added by _lockTouchScroll().
|
|
4936
|
+
* @private
|
|
4937
|
+
*/
|
|
4938
|
+
_unlockTouchScroll() {
|
|
4939
|
+
if (this._touchMoveHandler) {
|
|
4940
|
+
document.removeEventListener('touchmove', this._touchMoveHandler);
|
|
4941
|
+
this._touchMoveHandler = undefined;
|
|
4942
|
+
}
|
|
4943
|
+
}
|
|
4944
|
+
|
|
4856
4945
|
open(modal = true) {
|
|
4857
4946
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4858
4947
|
if (dialog && !dialog.open) {
|
|
@@ -4869,6 +4958,8 @@ class AuroDropdownBib extends LitElement {
|
|
|
4869
4958
|
|
|
4870
4959
|
documentElement.style.overflow = prevOverflow;
|
|
4871
4960
|
|
|
4961
|
+
this._lockTouchScroll();
|
|
4962
|
+
|
|
4872
4963
|
} else {
|
|
4873
4964
|
// Use setAttribute instead of dialog.show() to avoid the dialog
|
|
4874
4965
|
// focusing steps which steal focus from the trigger and cause
|
|
@@ -4884,6 +4975,7 @@ class AuroDropdownBib extends LitElement {
|
|
|
4884
4975
|
close() {
|
|
4885
4976
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
4886
4977
|
if (dialog && dialog.open) {
|
|
4978
|
+
this._unlockTouchScroll();
|
|
4887
4979
|
dialog.close();
|
|
4888
4980
|
}
|
|
4889
4981
|
}
|
|
@@ -5149,7 +5241,7 @@ class AuroHelpText extends LitElement {
|
|
|
5149
5241
|
}
|
|
5150
5242
|
}
|
|
5151
5243
|
|
|
5152
|
-
var formkitVersion = '
|
|
5244
|
+
var formkitVersion = '202602260152';
|
|
5153
5245
|
|
|
5154
5246
|
let AuroElement$1 = class AuroElement extends LitElement {
|
|
5155
5247
|
static get properties() {
|
|
@@ -5422,6 +5514,18 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5422
5514
|
*/
|
|
5423
5515
|
show() {
|
|
5424
5516
|
this.floater.showBib();
|
|
5517
|
+
|
|
5518
|
+
// Open dialog synchronously so callers remain in the user gesture
|
|
5519
|
+
// chain. This is critical for mobile browsers (iOS Safari) to keep
|
|
5520
|
+
// the virtual keyboard open when transitioning from the trigger
|
|
5521
|
+
// input to an input inside the fullscreen dialog. Without this,
|
|
5522
|
+
// showModal() fires asynchronously via Lit's update cycle, which
|
|
5523
|
+
// falls outside the user activation window and causes iOS to
|
|
5524
|
+
// dismiss the keyboard.
|
|
5525
|
+
if (this.isBibFullscreen && this.bibElement && this.bibElement.value) {
|
|
5526
|
+
const useModal = !this.disableFocusTrap;
|
|
5527
|
+
this.bibElement.value.open(useModal);
|
|
5528
|
+
}
|
|
5425
5529
|
}
|
|
5426
5530
|
|
|
5427
5531
|
/**
|
|
@@ -5808,6 +5912,14 @@ class AuroDropdown extends AuroElement$1 {
|
|
|
5808
5912
|
this.bibElement.value.close();
|
|
5809
5913
|
}
|
|
5810
5914
|
}
|
|
5915
|
+
|
|
5916
|
+
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5917
|
+
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5918
|
+
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5919
|
+
const useModal = this.isBibFullscreen && !this.disableFocusTrap;
|
|
5920
|
+
this.bibElement.value.close();
|
|
5921
|
+
this.bibElement.value.open(useModal);
|
|
5922
|
+
}
|
|
5811
5923
|
}
|
|
5812
5924
|
|
|
5813
5925
|
/**
|
|
@@ -9537,7 +9537,7 @@ class AuroBibtemplate extends i$1 {
|
|
|
9537
9537
|
}
|
|
9538
9538
|
}
|
|
9539
9539
|
|
|
9540
|
-
var formkitVersion$2 = '
|
|
9540
|
+
var formkitVersion$2 = '202602260152';
|
|
9541
9541
|
|
|
9542
9542
|
let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
|
|
9543
9543
|
`,u$6=i$3`.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, .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, .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, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .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, .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, .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, .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, .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, .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, .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(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
|
|
@@ -12829,7 +12829,7 @@ let p$3 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
|
|
|
12829
12829
|
|
|
12830
12830
|
var iconVersion$2 = '9.1.2';
|
|
12831
12831
|
|
|
12832
|
-
var styleCss$2$1 = i$3`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{max-width:none;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:absolute;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([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}`;
|
|
12832
|
+
var styleCss$2$1 = i$3`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{max-width:none;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:absolute;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([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}`;
|
|
12833
12833
|
|
|
12834
12834
|
var colorCss$2 = i$3`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
12835
12835
|
|
|
@@ -12837,6 +12837,8 @@ var tokensCss$1$1 = i$3`:host(:not([ondark])),:host(:not([appearance=inverse])){
|
|
|
12837
12837
|
|
|
12838
12838
|
// Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
12839
12839
|
// See LICENSE in the project root for license information.
|
|
12840
|
+
/* eslint-disable max-lines */
|
|
12841
|
+
// ---------------------------------------------------------------------
|
|
12840
12842
|
|
|
12841
12843
|
|
|
12842
12844
|
const DESIGN_TOKEN_BREAKPOINT_PREFIX = '--ds-grid-breakpoint-';
|
|
@@ -13012,22 +13014,63 @@ class AuroDropdownBib extends i$1 {
|
|
|
13012
13014
|
// Handle ESC key via dialog's cancel event
|
|
13013
13015
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
13014
13016
|
dialog.addEventListener('cancel', (event) => {
|
|
13015
|
-
|
|
13017
|
+
// Let parent handle closing
|
|
13018
|
+
event.preventDefault();
|
|
13016
13019
|
this.dispatchEvent(new CustomEvent('auro-bib-cancel', {
|
|
13017
13020
|
bubbles: true,
|
|
13018
13021
|
composed: true
|
|
13019
13022
|
}));
|
|
13020
13023
|
});
|
|
13021
13024
|
|
|
13022
|
-
//
|
|
13023
|
-
//
|
|
13024
|
-
//
|
|
13025
|
-
//
|
|
13026
|
-
|
|
13025
|
+
// showModal() creates a closed focus scope — keyboard events inside
|
|
13026
|
+
// the dialog's shadow DOM do NOT bubble out to the combobox/select
|
|
13027
|
+
// keydown handlers in the parent shadow DOM. This handler bridges
|
|
13028
|
+
// that gap by re-dispatching navigation keys so they cross the
|
|
13029
|
+
// shadow boundary and reach the menu navigation logic in the parent
|
|
13030
|
+
// component.
|
|
13031
|
+
//
|
|
13032
|
+
// The trade-off: intercepting these keys means native keyboard
|
|
13033
|
+
// behaviors that would normally "just work" must be manually
|
|
13034
|
+
// re-implemented here:
|
|
13035
|
+
//
|
|
13036
|
+
// - Enter on buttons: Custom elements (auro-button) don't get the
|
|
13037
|
+
// native Enter→click that <button> provides, so we call .click()
|
|
13038
|
+
// directly when Enter is pressed on a button-like element.
|
|
13039
|
+
//
|
|
13040
|
+
// - Tab: NOT intercepted — left to the browser's native focus trap
|
|
13041
|
+
// provided by showModal(), which cycles Tab between focusable
|
|
13042
|
+
// elements inside the dialog (e.g. the input and close button).
|
|
13043
|
+
// Intercepting Tab would kill the native focus trap and break
|
|
13044
|
+
// focus management inside the dialog.
|
|
13045
|
+
//
|
|
13046
|
+
// - Escape: The native <dialog> fires a `cancel` event on ESC
|
|
13047
|
+
// (handled above), so the re-dispatched Escape is a secondary
|
|
13048
|
+
// path for parent components that also listen for Escape keydown.
|
|
13049
|
+
const navKeys = new Set([
|
|
13050
|
+
'ArrowUp',
|
|
13051
|
+
'ArrowDown',
|
|
13052
|
+
'Enter',
|
|
13053
|
+
'Escape'
|
|
13054
|
+
]);
|
|
13027
13055
|
dialog.addEventListener('keydown', (event) => {
|
|
13028
13056
|
if (!navKeys.has(event.key)) {
|
|
13029
13057
|
return;
|
|
13030
13058
|
}
|
|
13059
|
+
|
|
13060
|
+
// Custom elements (auro-button) don't get the native Enter→click
|
|
13061
|
+
// behavior that <button> has. Find the button in the composed path
|
|
13062
|
+
// and click it directly.
|
|
13063
|
+
if (event.key === 'Enter') {
|
|
13064
|
+
const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
|
|
13065
|
+
const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
|
|
13066
|
+
if (btn) {
|
|
13067
|
+
event.preventDefault();
|
|
13068
|
+
event.stopPropagation();
|
|
13069
|
+
btn.click();
|
|
13070
|
+
return;
|
|
13071
|
+
}
|
|
13072
|
+
}
|
|
13073
|
+
|
|
13031
13074
|
event.preventDefault();
|
|
13032
13075
|
event.stopPropagation();
|
|
13033
13076
|
const newEvent = new KeyboardEvent('keydown', {
|
|
@@ -13051,9 +13094,55 @@ class AuroDropdownBib extends i$1 {
|
|
|
13051
13094
|
}
|
|
13052
13095
|
|
|
13053
13096
|
/**
|
|
13054
|
-
*
|
|
13055
|
-
*
|
|
13097
|
+
* Blocks touch-driven page scroll while a fullscreen modal dialog is open.
|
|
13098
|
+
*
|
|
13099
|
+
* The showModal() function places the dialog in the browser's **top layer**,
|
|
13100
|
+
* which is a separate rendering layer above the normal DOM. On mobile, the
|
|
13101
|
+
* compositor processes visual-viewport panning before top-layer touch
|
|
13102
|
+
* handling. This means the entire viewport — including the top-layer dialog
|
|
13103
|
+
* — can be panned by a touch gesture, causing the page behind the dialog to
|
|
13104
|
+
* scroll into view. To prevent this, we add a touchmove listener that cancels
|
|
13105
|
+
* the event if the touch started outside the dialog or any scrollable child within it.
|
|
13106
|
+
*
|
|
13107
|
+
* @private
|
|
13056
13108
|
*/
|
|
13109
|
+
_lockTouchScroll() {
|
|
13110
|
+
const dialog = this.shadowRoot.querySelector('dialog');
|
|
13111
|
+
|
|
13112
|
+
this._touchMoveHandler = (event) => {
|
|
13113
|
+
// Walk the composed path (which crosses shadow DOM boundaries) to
|
|
13114
|
+
// check whether the touch started inside a scrollable element that
|
|
13115
|
+
// lives within the dialog. If so, allow the scroll.
|
|
13116
|
+
for (const el of event.composedPath()) {
|
|
13117
|
+
if (el === dialog) {
|
|
13118
|
+
// Reached the dialog boundary without finding a scrollable child.
|
|
13119
|
+
break;
|
|
13120
|
+
}
|
|
13121
|
+
if (el instanceof HTMLElement && el.scrollHeight > el.clientHeight) {
|
|
13122
|
+
const { overflowY } = getComputedStyle(el);
|
|
13123
|
+
if (overflowY === 'auto' || overflowY === 'scroll') {
|
|
13124
|
+
return;
|
|
13125
|
+
}
|
|
13126
|
+
}
|
|
13127
|
+
}
|
|
13128
|
+
|
|
13129
|
+
event.preventDefault();
|
|
13130
|
+
};
|
|
13131
|
+
|
|
13132
|
+
document.addEventListener('touchmove', this._touchMoveHandler, { passive: false });
|
|
13133
|
+
}
|
|
13134
|
+
|
|
13135
|
+
/**
|
|
13136
|
+
* Removes the touchmove listener added by _lockTouchScroll().
|
|
13137
|
+
* @private
|
|
13138
|
+
*/
|
|
13139
|
+
_unlockTouchScroll() {
|
|
13140
|
+
if (this._touchMoveHandler) {
|
|
13141
|
+
document.removeEventListener('touchmove', this._touchMoveHandler);
|
|
13142
|
+
this._touchMoveHandler = undefined;
|
|
13143
|
+
}
|
|
13144
|
+
}
|
|
13145
|
+
|
|
13057
13146
|
open(modal = true) {
|
|
13058
13147
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
13059
13148
|
if (dialog && !dialog.open) {
|
|
@@ -13070,6 +13159,8 @@ class AuroDropdownBib extends i$1 {
|
|
|
13070
13159
|
|
|
13071
13160
|
documentElement.style.overflow = prevOverflow;
|
|
13072
13161
|
|
|
13162
|
+
this._lockTouchScroll();
|
|
13163
|
+
|
|
13073
13164
|
} else {
|
|
13074
13165
|
// Use setAttribute instead of dialog.show() to avoid the dialog
|
|
13075
13166
|
// focusing steps which steal focus from the trigger and cause
|
|
@@ -13085,6 +13176,7 @@ class AuroDropdownBib extends i$1 {
|
|
|
13085
13176
|
close() {
|
|
13086
13177
|
const dialog = this.shadowRoot.querySelector('dialog');
|
|
13087
13178
|
if (dialog && dialog.open) {
|
|
13179
|
+
this._unlockTouchScroll();
|
|
13088
13180
|
dialog.close();
|
|
13089
13181
|
}
|
|
13090
13182
|
}
|
|
@@ -13350,7 +13442,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
|
|
|
13350
13442
|
}
|
|
13351
13443
|
};
|
|
13352
13444
|
|
|
13353
|
-
var formkitVersion$1 = '
|
|
13445
|
+
var formkitVersion$1 = '202602260152';
|
|
13354
13446
|
|
|
13355
13447
|
let AuroElement$2 = class AuroElement extends i$1 {
|
|
13356
13448
|
static get properties() {
|
|
@@ -13623,6 +13715,18 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
13623
13715
|
*/
|
|
13624
13716
|
show() {
|
|
13625
13717
|
this.floater.showBib();
|
|
13718
|
+
|
|
13719
|
+
// Open dialog synchronously so callers remain in the user gesture
|
|
13720
|
+
// chain. This is critical for mobile browsers (iOS Safari) to keep
|
|
13721
|
+
// the virtual keyboard open when transitioning from the trigger
|
|
13722
|
+
// input to an input inside the fullscreen dialog. Without this,
|
|
13723
|
+
// showModal() fires asynchronously via Lit's update cycle, which
|
|
13724
|
+
// falls outside the user activation window and causes iOS to
|
|
13725
|
+
// dismiss the keyboard.
|
|
13726
|
+
if (this.isBibFullscreen && this.bibElement && this.bibElement.value) {
|
|
13727
|
+
const useModal = !this.disableFocusTrap;
|
|
13728
|
+
this.bibElement.value.open(useModal);
|
|
13729
|
+
}
|
|
13626
13730
|
}
|
|
13627
13731
|
|
|
13628
13732
|
/**
|
|
@@ -14009,6 +14113,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
14009
14113
|
this.bibElement.value.close();
|
|
14010
14114
|
}
|
|
14011
14115
|
}
|
|
14116
|
+
|
|
14117
|
+
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
14118
|
+
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
14119
|
+
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
14120
|
+
const useModal = this.isBibFullscreen && !this.disableFocusTrap;
|
|
14121
|
+
this.bibElement.value.close();
|
|
14122
|
+
this.bibElement.value.open(useModal);
|
|
14123
|
+
}
|
|
14012
14124
|
}
|
|
14013
14125
|
|
|
14014
14126
|
/**
|
|
@@ -19510,6 +19622,15 @@ class BaseInput extends AuroElement$1 {
|
|
|
19510
19622
|
constructor() {
|
|
19511
19623
|
super();
|
|
19512
19624
|
|
|
19625
|
+
// Delegate focus to the native <input> inside the shadow root so that
|
|
19626
|
+
// showModal()'s dialog focusing steps reach the input element.
|
|
19627
|
+
// This keeps the mobile virtual keyboard open when the fullscreen dialog
|
|
19628
|
+
// opens, because the browser sees an input-to-input focus transfer.
|
|
19629
|
+
this.constructor.shadowRootOptions = {
|
|
19630
|
+
...AuroElement$1.shadowRootOptions,
|
|
19631
|
+
delegatesFocus: true,
|
|
19632
|
+
};
|
|
19633
|
+
|
|
19513
19634
|
this._initializeDefaults();
|
|
19514
19635
|
}
|
|
19515
19636
|
|
|
@@ -19631,14 +19752,6 @@ class BaseInput extends AuroElement$1 {
|
|
|
19631
19752
|
reflect: true
|
|
19632
19753
|
},
|
|
19633
19754
|
|
|
19634
|
-
/**
|
|
19635
|
-
* The value for the aria-controls attribute.
|
|
19636
|
-
*/
|
|
19637
|
-
a11yControls: {
|
|
19638
|
-
type: String,
|
|
19639
|
-
reflect: true
|
|
19640
|
-
},
|
|
19641
|
-
|
|
19642
19755
|
/**
|
|
19643
19756
|
* The value for the aria-activedescendant attribute.
|
|
19644
19757
|
* Points to the ID of the currently active/highlighted option in a listbox.
|
|
@@ -21058,7 +21171,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
|
|
|
21058
21171
|
}
|
|
21059
21172
|
};
|
|
21060
21173
|
|
|
21061
|
-
var formkitVersion = '
|
|
21174
|
+
var formkitVersion = '202602260152';
|
|
21062
21175
|
|
|
21063
21176
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
21064
21177
|
// See LICENSE in the project root for license information.
|