@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.1
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/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
- package/components/bibtemplate/dist/index.js +9 -1
- package/components/bibtemplate/dist/registered.js +9 -1
- package/components/checkbox/demo/css-only.html +57 -0
- package/components/checkbox/demo/css-only.md +146 -0
- package/components/checkbox/demo/customize.min.js +1 -1
- package/components/checkbox/demo/getting-started.min.js +1 -1
- package/components/checkbox/demo/index.min.js +1 -1
- package/components/checkbox/demo/pages.json +1 -1
- package/components/checkbox/demo/styles.min.css +1 -1
- package/components/checkbox/demo/why-checkbox.html +57 -0
- package/components/checkbox/demo/why-checkbox.md +86 -0
- package/components/checkbox/dist/index.js +1 -1
- package/components/checkbox/dist/registered.js +1 -1
- package/components/combobox/demo/css-only.html +57 -0
- package/components/combobox/demo/css-only.md +209 -0
- package/components/combobox/demo/customize.min.js +250 -16
- package/components/combobox/demo/getting-started.min.js +250 -16
- package/components/combobox/demo/index.min.js +250 -16
- package/components/combobox/demo/pages.json +1 -1
- package/components/combobox/demo/styles.min.css +1 -1
- package/components/combobox/demo/why-combobox.html +57 -0
- package/components/combobox/demo/why-combobox.md +113 -0
- package/components/combobox/dist/index.js +250 -16
- package/components/combobox/dist/registered.js +250 -16
- package/components/counter/demo/css-only.html +57 -0
- package/components/counter/demo/css-only.md +184 -0
- package/components/counter/demo/customize.min.js +249 -15
- package/components/counter/demo/index.min.js +249 -15
- package/components/counter/demo/keyboard-behavior.md +1 -0
- package/components/counter/demo/pages.json +1 -1
- package/components/counter/demo/styles.min.css +1 -1
- package/components/counter/demo/why-counter.html +57 -0
- package/components/counter/demo/why-counter.md +108 -0
- package/components/counter/dist/index.js +10 -2
- package/components/counter/dist/registered.js +10 -2
- package/components/datepicker/demo/accessibility.md +54 -3
- package/components/datepicker/demo/api.md +63 -53
- package/components/datepicker/demo/css-only.html +57 -0
- package/components/datepicker/demo/css-only.md +151 -0
- package/components/datepicker/demo/customize.html +2 -0
- package/components/datepicker/demo/customize.js +19 -0
- package/components/datepicker/demo/customize.md +56 -0
- package/components/datepicker/demo/customize.min.js +36147 -0
- package/components/datepicker/demo/design.md +3 -1
- package/components/datepicker/demo/index.js +5 -1
- package/components/datepicker/demo/index.md +104 -15
- package/components/datepicker/demo/index.min.js +2485 -261
- package/components/datepicker/demo/keyboard-behavior.md +201 -2
- package/components/datepicker/demo/pages.json +1 -1
- package/components/datepicker/demo/styles.min.css +1 -1
- package/components/datepicker/demo/voiceover.md +21 -12
- package/components/datepicker/demo/why-datepicker.html +57 -0
- package/components/datepicker/demo/why-datepicker.md +133 -0
- package/components/datepicker/dist/index.js +2348 -211
- package/components/datepicker/dist/registered.js +2348 -211
- package/components/datepicker/dist/src/auro-calendar-cell.d.ts +113 -13
- package/components/datepicker/dist/src/auro-calendar-month.d.ts +38 -1
- package/components/datepicker/dist/src/auro-calendar.d.ts +258 -0
- package/components/datepicker/dist/src/auro-datepicker.d.ts +141 -41
- package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
- package/components/dropdown/demo/accessibility.md +11 -0
- package/components/dropdown/demo/api.md +1 -0
- package/components/dropdown/demo/css-only.html +57 -0
- package/components/dropdown/demo/css-only.md +219 -0
- package/components/dropdown/demo/customize.md +3 -0
- package/components/dropdown/demo/customize.min.js +239 -13
- package/components/dropdown/demo/getting-started.min.js +239 -13
- package/components/dropdown/demo/index.min.js +239 -13
- package/components/dropdown/demo/keyboard-behavior.md +1 -0
- package/components/dropdown/demo/pages.json +1 -1
- package/components/dropdown/demo/styles.min.css +1 -1
- package/components/dropdown/demo/why-dropdown.html +57 -0
- package/components/dropdown/demo/why-dropdown.md +97 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +34 -1
- package/components/dropdown/dist/index.js +239 -13
- package/components/dropdown/dist/registered.js +239 -13
- package/components/form/demo/css-only.html +57 -0
- package/components/form/demo/css-only.md +156 -0
- package/components/form/demo/customize.min.js +3098 -259
- package/components/form/demo/getting-started.min.js +3098 -259
- package/components/form/demo/index.min.js +3098 -259
- package/components/form/demo/pages.json +1 -1
- package/components/form/demo/registerDemoDeps.min.js +3098 -259
- package/components/form/demo/styles.min.css +1 -1
- package/components/form/demo/why-form.html +57 -0
- package/components/form/demo/why-form.md +101 -0
- package/components/input/demo/css-only.html +57 -0
- package/components/input/demo/css-only.md +199 -0
- package/components/input/demo/customize.min.js +1 -1
- package/components/input/demo/getting-started.min.js +1 -1
- package/components/input/demo/index.min.js +1 -1
- package/components/input/demo/pages.json +1 -1
- package/components/input/demo/styles.min.css +1 -1
- package/components/input/demo/why-input.html +57 -0
- package/components/input/demo/why-input.md +121 -0
- package/components/input/dist/index.js +1 -1
- package/components/input/dist/registered.js +1 -1
- package/components/menu/demo/css-only.html +57 -0
- package/components/menu/demo/css-only.md +166 -0
- package/components/menu/demo/pages.json +1 -1
- package/components/menu/demo/styles.min.css +1 -1
- package/components/menu/demo/why-menu.html +57 -0
- package/components/menu/demo/why-menu.md +104 -0
- package/components/radio/demo/css-only.html +57 -0
- package/components/radio/demo/css-only.md +151 -0
- package/components/radio/demo/customize.min.js +1764 -0
- package/components/radio/demo/demo-support.min.js +55807 -0
- package/components/radio/demo/getting-started.js +1 -1
- package/components/radio/demo/getting-started.md +1 -1
- package/components/radio/demo/getting-started.min.js +1783 -0
- package/components/radio/demo/index.min.js +1 -1
- package/components/radio/demo/pages.json +1 -1
- package/components/radio/demo/styles.min.css +1 -1
- package/components/radio/demo/why-radio.html +57 -0
- package/components/radio/demo/why-radio.md +92 -0
- package/components/radio/dist/index.js +1 -1
- package/components/radio/dist/registered.js +1 -1
- package/components/select/demo/css-only.html +57 -0
- package/components/select/demo/css-only.md +203 -0
- package/components/select/demo/customize.min.js +249 -15
- package/components/select/demo/getting-started.min.js +249 -15
- package/components/select/demo/index.min.js +249 -15
- package/components/select/demo/keyboard-behavior.md +1 -0
- package/components/select/demo/pages.json +1 -1
- package/components/select/demo/styles.min.css +1 -1
- package/components/select/demo/why-select.html +57 -0
- package/components/select/demo/why-select.md +128 -0
- package/components/select/dist/index.js +249 -15
- package/components/select/dist/registered.js +249 -15
- package/custom-elements.json +2700 -1621
- package/package.json +8 -8
|
@@ -4225,7 +4225,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
|
|
|
4225
4225
|
});
|
|
4226
4226
|
}
|
|
4227
4227
|
|
|
4228
|
-
var styleCss$2$1 = i$7`: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}`;
|
|
4228
|
+
var styleCss$2$1 = i$7`: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([desktopmodal]:popover-open)::backdrop{background:transparent}: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}`;
|
|
4229
4229
|
|
|
4230
4230
|
var colorCss$2$1 = i$7`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
|
|
4231
4231
|
|
|
@@ -4856,7 +4856,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$4 {
|
|
|
4856
4856
|
}
|
|
4857
4857
|
};
|
|
4858
4858
|
|
|
4859
|
-
var formkitVersion$2 = '
|
|
4859
|
+
var formkitVersion$2 = '202606081833';
|
|
4860
4860
|
|
|
4861
4861
|
let AuroElement$2 = class AuroElement extends i$4 {
|
|
4862
4862
|
static get properties() {
|
|
@@ -5036,6 +5036,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5036
5036
|
_intializeDefaults() {
|
|
5037
5037
|
this.appearance = 'default';
|
|
5038
5038
|
this.chevron = false;
|
|
5039
|
+
this.desktopModal = false;
|
|
5039
5040
|
this.disabled = false;
|
|
5040
5041
|
this.disableKeyboardHandling = false;
|
|
5041
5042
|
this.error = false;
|
|
@@ -5216,6 +5217,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5216
5217
|
reflect: true
|
|
5217
5218
|
},
|
|
5218
5219
|
|
|
5220
|
+
/**
|
|
5221
|
+
* If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
|
|
5222
|
+
*/
|
|
5223
|
+
desktopModal: {
|
|
5224
|
+
type: Boolean,
|
|
5225
|
+
reflect: true
|
|
5226
|
+
},
|
|
5227
|
+
|
|
5219
5228
|
/**
|
|
5220
5229
|
* If declared, the dropdown will only show by calling the API .show() public method.
|
|
5221
5230
|
*/
|
|
@@ -5503,6 +5512,15 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5503
5512
|
|
|
5504
5513
|
disconnectedCallback() {
|
|
5505
5514
|
super.disconnectedCallback();
|
|
5515
|
+
this._clearPageInert();
|
|
5516
|
+
if (this._bibTabHandler) {
|
|
5517
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5518
|
+
this._bibTabHandler = undefined;
|
|
5519
|
+
}
|
|
5520
|
+
if (this.focusTrap) {
|
|
5521
|
+
this.focusTrap.disconnect();
|
|
5522
|
+
this.focusTrap = undefined;
|
|
5523
|
+
}
|
|
5506
5524
|
if (this.floater) {
|
|
5507
5525
|
this.floater.hideBib('disconnect');
|
|
5508
5526
|
this.floater.disconnect();
|
|
@@ -5530,19 +5548,45 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5530
5548
|
if (this.isPopoverVisible) {
|
|
5531
5549
|
// Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
|
|
5532
5550
|
// Desktop: use show() for Floating UI positioning + FocusTrap for focus management
|
|
5533
|
-
|
|
5534
|
-
this.
|
|
5551
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5552
|
+
this.updateFocusTrap();
|
|
5553
|
+
|
|
5554
|
+
// Desktop modal: make siblings inert so content outside is not interactive
|
|
5555
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5556
|
+
this._setPageInert();
|
|
5557
|
+
}
|
|
5535
5558
|
} else {
|
|
5536
5559
|
this.bibElement.value.close();
|
|
5560
|
+
this._clearPageInert();
|
|
5537
5561
|
}
|
|
5538
5562
|
}
|
|
5539
5563
|
|
|
5540
5564
|
// When fullscreen strategy changes while open, re-open dialog with correct mode
|
|
5541
5565
|
// (e.g. resizing from desktop → mobile while dropdown is open)
|
|
5542
5566
|
if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
|
|
5543
|
-
const useModal = this.isBibFullscreen;
|
|
5544
5567
|
this.bibElement.value.close();
|
|
5545
|
-
this.bibElement.value.open(
|
|
5568
|
+
this.bibElement.value.open(this.isBibFullscreen);
|
|
5569
|
+
|
|
5570
|
+
// Re-initialize focus management for the new strategy
|
|
5571
|
+
this.updateFocusTrap();
|
|
5572
|
+
|
|
5573
|
+
// Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
|
|
5574
|
+
if (this.desktopModal && !this.isBibFullscreen) {
|
|
5575
|
+
this._setPageInert();
|
|
5576
|
+
} else {
|
|
5577
|
+
this._clearPageInert();
|
|
5578
|
+
}
|
|
5579
|
+
}
|
|
5580
|
+
|
|
5581
|
+
// Handle desktopModal toggled while the dropdown is already open.
|
|
5582
|
+
// Re-initialize focus trapping and page inert state to match the new mode.
|
|
5583
|
+
if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
|
|
5584
|
+
this.updateFocusTrap();
|
|
5585
|
+
if (this.desktopModal) {
|
|
5586
|
+
this._setPageInert();
|
|
5587
|
+
} else {
|
|
5588
|
+
this._clearPageInert();
|
|
5589
|
+
}
|
|
5546
5590
|
}
|
|
5547
5591
|
}
|
|
5548
5592
|
|
|
@@ -5552,8 +5596,14 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5552
5596
|
* @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
|
|
5553
5597
|
*/
|
|
5554
5598
|
handleDropdownToggle(event) {
|
|
5555
|
-
this.updateFocusTrap();
|
|
5556
5599
|
this.isPopoverVisible = event.detail.expanded;
|
|
5600
|
+
|
|
5601
|
+
// Tear down FocusTrap when closing. Creation happens in updated()
|
|
5602
|
+
// after the dialog is open so getFocusableElements can find content.
|
|
5603
|
+
if (!this.isPopoverVisible) {
|
|
5604
|
+
this.updateFocusTrap();
|
|
5605
|
+
}
|
|
5606
|
+
|
|
5557
5607
|
const eventType = event.detail.eventType || "unknown";
|
|
5558
5608
|
if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
|
|
5559
5609
|
this.trigger.focus();
|
|
@@ -5652,19 +5702,194 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5652
5702
|
* @private
|
|
5653
5703
|
*/
|
|
5654
5704
|
updateFocusTrap() {
|
|
5705
|
+
// Always clean up existing handlers/traps before setting up new ones
|
|
5706
|
+
// to prevent duplicate listeners on repeated calls.
|
|
5707
|
+
if (this._bibTabHandler) {
|
|
5708
|
+
this.removeEventListener('keydown', this._bibTabHandler);
|
|
5709
|
+
this._bibTabHandler = undefined;
|
|
5710
|
+
}
|
|
5711
|
+
|
|
5712
|
+
if (this.focusTrap) {
|
|
5713
|
+
this.focusTrap.disconnect();
|
|
5714
|
+
this.focusTrap = undefined;
|
|
5715
|
+
}
|
|
5716
|
+
|
|
5655
5717
|
if (this.isPopoverVisible) {
|
|
5656
5718
|
if (!this.isBibFullscreen) {
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5719
|
+
if (this.desktopModal) {
|
|
5720
|
+
// Desktop modal: trap focus only within the bib content.
|
|
5721
|
+
// Can't use FocusTrap on the bib element because keydown events
|
|
5722
|
+
// from slotted content bubble through the dropdown host (light DOM),
|
|
5723
|
+
// not through the bib (shadow projection target). Using FocusTrap
|
|
5724
|
+
// on the dropdown would include the trigger in the tab cycle.
|
|
5725
|
+
// Instead, listen for Tab on the dropdown and manually wrap focus
|
|
5726
|
+
// within the bib's focusable elements.
|
|
5727
|
+
this._bibTabHandler = (event) => {
|
|
5728
|
+
if (event.key !== 'Tab') {
|
|
5729
|
+
return;
|
|
5730
|
+
}
|
|
5731
|
+
|
|
5732
|
+
// Collect focusable elements from the bib content.
|
|
5733
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5734
|
+
|
|
5735
|
+
// Fallback: try from slotted content directly
|
|
5736
|
+
if (!focusables.length) {
|
|
5737
|
+
const slot = this.shadowRoot.querySelector('.slotContent slot');
|
|
5738
|
+
const assignedNodes = slot ? slot.assignedNodes({ flatten: true }) : [];
|
|
5739
|
+
|
|
5740
|
+
for (const node of assignedNodes) {
|
|
5741
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
5742
|
+
focusables.push(...getFocusableElements(node));
|
|
5743
|
+
}
|
|
5744
|
+
}
|
|
5745
|
+
}
|
|
5746
|
+
|
|
5747
|
+
if (!focusables.length) {
|
|
5748
|
+
return;
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5751
|
+
event.preventDefault();
|
|
5752
|
+
|
|
5753
|
+
const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
|
|
5754
|
+
|
|
5755
|
+
// Walk the active element chain through shadow roots
|
|
5756
|
+
const actives = this._getActiveElements();
|
|
5757
|
+
|
|
5758
|
+
let idx = focusables.findIndex((el) => actives.includes(el));
|
|
5759
|
+
|
|
5760
|
+
if (idx === -1) { // eslint-disable-line no-magic-numbers
|
|
5761
|
+
// Focus is not on a known element — move to first/last
|
|
5762
|
+
idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5765
|
+
// Try each element in order, skipping any that can't receive focus
|
|
5766
|
+
// (e.g. hidden elements, elements in collapsed sections)
|
|
5767
|
+
for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
|
|
5768
|
+
let nextIdx = idx + direction;
|
|
5769
|
+
|
|
5770
|
+
// Wrap around
|
|
5771
|
+
if (nextIdx < 0) {
|
|
5772
|
+
nextIdx = focusables.length - 1;
|
|
5773
|
+
} else if (nextIdx >= focusables.length) {
|
|
5774
|
+
nextIdx = 0;
|
|
5775
|
+
}
|
|
5776
|
+
|
|
5777
|
+
focusables[nextIdx].focus();
|
|
5778
|
+
|
|
5779
|
+
// Verify focus actually moved to the target
|
|
5780
|
+
const newActives = this._getActiveElements();
|
|
5781
|
+
|
|
5782
|
+
if (newActives.includes(focusables[nextIdx])) {
|
|
5783
|
+
return;
|
|
5784
|
+
}
|
|
5785
|
+
|
|
5786
|
+
// Focus didn't stick — skip this element and try the next
|
|
5787
|
+
idx = nextIdx;
|
|
5788
|
+
}
|
|
5789
|
+
};
|
|
5790
|
+
this.addEventListener('keydown', this._bibTabHandler);
|
|
5791
|
+
|
|
5792
|
+
// Move initial focus into the bib content, matching FocusTrap behavior
|
|
5793
|
+
requestAnimationFrame(() => {
|
|
5794
|
+
const focusables = getFocusableElements(this.bibContent);
|
|
5795
|
+
if (focusables.length) {
|
|
5796
|
+
focusables[0].focus();
|
|
5797
|
+
}
|
|
5798
|
+
});
|
|
5799
|
+
} else {
|
|
5800
|
+
// Normal desktop: use FocusTrap on the bib element
|
|
5801
|
+
this.focusTrap = new FocusTrap(this.bibContent);
|
|
5802
|
+
this.focusTrap.focusFirstElement();
|
|
5803
|
+
}
|
|
5660
5804
|
}
|
|
5661
5805
|
// Fullscreen: showModal() provides native focus trapping
|
|
5806
|
+
}
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5809
|
+
/**
|
|
5810
|
+
* Returns the chain of active (focused) elements through shadow roots.
|
|
5811
|
+
* @private
|
|
5812
|
+
* @returns {Array<HTMLElement>}
|
|
5813
|
+
*/
|
|
5814
|
+
_getActiveElements() {
|
|
5815
|
+
let { activeElement } = document;
|
|
5816
|
+
const actives = [activeElement];
|
|
5817
|
+
|
|
5818
|
+
while (activeElement?.shadowRoot?.activeElement) {
|
|
5819
|
+
activeElement = activeElement.shadowRoot.activeElement;
|
|
5820
|
+
actives.push(activeElement);
|
|
5821
|
+
}
|
|
5822
|
+
|
|
5823
|
+
return actives;
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5826
|
+
/**
|
|
5827
|
+
* Sets `inert` on sibling elements of the dropdown's top-level host
|
|
5828
|
+
* so that content outside the dropdown is not interactive while the modal is open.
|
|
5829
|
+
* Walks up through shadow DOM boundaries to find the outermost host element
|
|
5830
|
+
* in the light DOM, then sets `inert` on siblings at each ancestor level
|
|
5831
|
+
* to ensure all page content outside the host subtree is inert.
|
|
5832
|
+
* @private
|
|
5833
|
+
*/
|
|
5834
|
+
_setPageInert() {
|
|
5835
|
+
if (this._inertSiblings) {
|
|
5662
5836
|
return;
|
|
5663
5837
|
}
|
|
5664
5838
|
|
|
5665
|
-
|
|
5666
|
-
|
|
5667
|
-
|
|
5839
|
+
this._inertSiblings = [];
|
|
5840
|
+
|
|
5841
|
+
// Walk up through shadow DOM boundaries to find the topmost host
|
|
5842
|
+
// element in the light DOM. For example, if this dropdown is inside
|
|
5843
|
+
// auro-datepicker's shadow DOM, we walk up to the datepicker element
|
|
5844
|
+
// so we set inert on its siblings — not on the datepicker itself.
|
|
5845
|
+
let host = this;
|
|
5846
|
+
while (host.getRootNode() instanceof ShadowRoot) {
|
|
5847
|
+
host = host.getRootNode().host;
|
|
5848
|
+
}
|
|
5849
|
+
|
|
5850
|
+
// Walk up the ancestor chain, inerting siblings at each level
|
|
5851
|
+
// to ensure the entire page outside the host subtree is inert.
|
|
5852
|
+
// Uses a reference counter (data-auro-inert-count) so multiple
|
|
5853
|
+
// simultaneous modal dropdowns share inert state safely.
|
|
5854
|
+
let current = host;
|
|
5855
|
+
while (current.parentElement) {
|
|
5856
|
+
const parent = current.parentElement;
|
|
5857
|
+
for (const sibling of parent.children) {
|
|
5858
|
+
if (sibling !== current) {
|
|
5859
|
+
const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
|
|
5860
|
+
if (count === 0) {
|
|
5861
|
+
sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
|
|
5862
|
+
}
|
|
5863
|
+
sibling.dataset.auroInertCount = String(count + 1);
|
|
5864
|
+
sibling.inert = true;
|
|
5865
|
+
this._inertSiblings.push(sibling);
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
current = parent;
|
|
5869
|
+
}
|
|
5870
|
+
}
|
|
5871
|
+
|
|
5872
|
+
/**
|
|
5873
|
+
* Restores `inert` state on siblings that were tracked by `_setPageInert`.
|
|
5874
|
+
* Uses reference counting so inert is only cleared when the last modal
|
|
5875
|
+
* dropdown releases a given element. Preserves the original inert state
|
|
5876
|
+
* so externally-inerted elements are not inadvertently re-enabled.
|
|
5877
|
+
* @private
|
|
5878
|
+
*/
|
|
5879
|
+
_clearPageInert() {
|
|
5880
|
+
if (this._inertSiblings) {
|
|
5881
|
+
for (const sibling of this._inertSiblings) {
|
|
5882
|
+
const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
|
|
5883
|
+
if (count <= 0) {
|
|
5884
|
+
const wasInert = sibling.dataset.auroInertWas === 'true';
|
|
5885
|
+
delete sibling.dataset.auroInertCount;
|
|
5886
|
+
delete sibling.dataset.auroInertWas;
|
|
5887
|
+
sibling.inert = wasInert;
|
|
5888
|
+
} else {
|
|
5889
|
+
sibling.dataset.auroInertCount = String(count);
|
|
5890
|
+
}
|
|
5891
|
+
}
|
|
5892
|
+
this._inertSiblings = undefined;
|
|
5668
5893
|
}
|
|
5669
5894
|
}
|
|
5670
5895
|
|
|
@@ -5903,6 +6128,7 @@ class AuroDropdown extends AuroElement$2 {
|
|
|
5903
6128
|
shape="${this.shape}"
|
|
5904
6129
|
?data-show="${this.isPopoverVisible}"
|
|
5905
6130
|
?isfullscreen="${this.isBibFullscreen}"
|
|
6131
|
+
?desktopmodal="${this.desktopModal}"
|
|
5906
6132
|
.dialogLabel="${this.bibDialogLabel}"
|
|
5907
6133
|
${n$2(this.bibElement)}
|
|
5908
6134
|
>
|
|
@@ -18114,7 +18340,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$4 {
|
|
|
18114
18340
|
}
|
|
18115
18341
|
};
|
|
18116
18342
|
|
|
18117
|
-
var formkitVersion$1 = '
|
|
18343
|
+
var formkitVersion$1 = '202606081833';
|
|
18118
18344
|
|
|
18119
18345
|
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
18120
18346
|
// See LICENSE in the project root for license information.
|
|
@@ -19120,6 +19346,14 @@ class AuroBibtemplate extends i$4 {
|
|
|
19120
19346
|
large: {
|
|
19121
19347
|
type: Boolean,
|
|
19122
19348
|
reflect: true
|
|
19349
|
+
},
|
|
19350
|
+
|
|
19351
|
+
/**
|
|
19352
|
+
* If declared, the footer slot will be rendered even when not in fullscreen mode.
|
|
19353
|
+
*/
|
|
19354
|
+
showFooter: {
|
|
19355
|
+
type: Boolean,
|
|
19356
|
+
reflect: true
|
|
19123
19357
|
}
|
|
19124
19358
|
};
|
|
19125
19359
|
}
|
|
@@ -19222,7 +19456,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
19222
19456
|
<slot></slot>
|
|
19223
19457
|
</div>
|
|
19224
19458
|
|
|
19225
|
-
${this.isFullscreen ? u$7`
|
|
19459
|
+
${this.isFullscreen || this.showFooter ? u$7`
|
|
19226
19460
|
<div id="footerContainer">
|
|
19227
19461
|
<slot name="footer"></slot>
|
|
19228
19462
|
</div>` : null}
|
|
@@ -19231,7 +19465,7 @@ class AuroBibtemplate extends i$4 {
|
|
|
19231
19465
|
}
|
|
19232
19466
|
}
|
|
19233
19467
|
|
|
19234
|
-
var formkitVersion = '
|
|
19468
|
+
var formkitVersion = '202606081833';
|
|
19235
19469
|
|
|
19236
19470
|
var styleCss$3 = i$7`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;padding:0;border:0}:host{display:block;text-align:left}:host [auro-dropdown]{--ds-auro-dropdown-trigger-background-color: transparent}:host #inputInBib::part(wrapper){box-shadow:none}:host #inputInBib::part(accent-left){display:none}:host([layout*=classic]) [auro-input]{width:100%}:host([layout*=classic]) [auro-input]::part(helpText){display:none}:host([layout*=classic]) #slotHolder{display:none}`;
|
|
19237
19471
|
|