@aurodesignsystem-dev/auro-formkit 0.0.0-pr1477.2 → 0.0.0-pr1480.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.
Files changed (103) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
  2. package/components/bibtemplate/dist/index.js +9 -1
  3. package/components/bibtemplate/dist/registered.js +9 -1
  4. package/components/checkbox/demo/customize.min.js +1 -1
  5. package/components/checkbox/demo/getting-started.min.js +1 -1
  6. package/components/checkbox/demo/index.min.js +1 -1
  7. package/components/checkbox/demo/pages.json +1 -1
  8. package/components/checkbox/demo/why-checkbox.html +57 -0
  9. package/components/checkbox/demo/why-checkbox.md +86 -0
  10. package/components/checkbox/dist/index.js +1 -1
  11. package/components/checkbox/dist/registered.js +1 -1
  12. package/components/combobox/demo/customize.min.js +236 -18
  13. package/components/combobox/demo/getting-started.min.js +236 -18
  14. package/components/combobox/demo/index.min.js +236 -18
  15. package/components/combobox/demo/keyboard-behavior.md +8 -68
  16. package/components/combobox/demo/pages.json +1 -1
  17. package/components/combobox/demo/why-combobox.html +57 -0
  18. package/components/combobox/demo/why-combobox.md +113 -0
  19. package/components/combobox/dist/index.js +236 -18
  20. package/components/combobox/dist/registered.js +236 -18
  21. package/components/counter/demo/customize.min.js +233 -15
  22. package/components/counter/demo/index.min.js +233 -15
  23. package/components/counter/demo/keyboard-behavior.md +1 -0
  24. package/components/counter/demo/pages.json +1 -1
  25. package/components/counter/demo/why-counter.html +57 -0
  26. package/components/counter/demo/why-counter.md +108 -0
  27. package/components/counter/dist/index.js +10 -2
  28. package/components/counter/dist/registered.js +10 -2
  29. package/components/datepicker/demo/accessibility.md +54 -3
  30. package/components/datepicker/demo/api.md +11 -2
  31. package/components/datepicker/demo/customize.html +2 -0
  32. package/components/datepicker/demo/customize.js +19 -0
  33. package/components/datepicker/demo/customize.md +72 -8
  34. package/components/datepicker/demo/customize.min.js +26492 -0
  35. package/components/datepicker/demo/design.md +3 -1
  36. package/components/datepicker/demo/index.js +5 -1
  37. package/components/datepicker/demo/index.md +85 -2
  38. package/components/datepicker/demo/index.min.js +2115 -184
  39. package/components/datepicker/demo/keyboard-behavior.md +201 -2
  40. package/components/datepicker/demo/pages.json +1 -1
  41. package/components/datepicker/demo/voiceover.md +21 -12
  42. package/components/datepicker/demo/why-datepicker.html +57 -0
  43. package/components/datepicker/demo/why-datepicker.md +133 -0
  44. package/components/datepicker/dist/index.js +2010 -155
  45. package/components/datepicker/dist/registered.js +2010 -155
  46. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +112 -11
  47. package/components/datepicker/dist/src/auro-calendar-month.d.ts +37 -0
  48. package/components/datepicker/dist/src/auro-calendar.d.ts +177 -0
  49. package/components/datepicker/dist/src/auro-datepicker.d.ts +88 -0
  50. package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
  51. package/components/dropdown/demo/accessibility.md +11 -0
  52. package/components/dropdown/demo/api.md +1 -0
  53. package/components/dropdown/demo/customize.md +3 -0
  54. package/components/dropdown/demo/customize.min.js +223 -13
  55. package/components/dropdown/demo/getting-started.min.js +223 -13
  56. package/components/dropdown/demo/index.min.js +223 -13
  57. package/components/dropdown/demo/keyboard-behavior.md +1 -0
  58. package/components/dropdown/demo/pages.json +1 -1
  59. package/components/dropdown/demo/why-dropdown.html +57 -0
  60. package/components/dropdown/demo/why-dropdown.md +97 -0
  61. package/components/dropdown/dist/auro-dropdown.d.ts +33 -1
  62. package/components/dropdown/dist/index.js +223 -13
  63. package/components/dropdown/dist/registered.js +223 -13
  64. package/components/form/demo/customize.min.js +2726 -219
  65. package/components/form/demo/getting-started.min.js +2726 -219
  66. package/components/form/demo/index.min.js +2726 -219
  67. package/components/form/demo/pages.json +1 -1
  68. package/components/form/demo/registerDemoDeps.min.js +2726 -219
  69. package/components/form/demo/why-form.html +57 -0
  70. package/components/form/demo/why-form.md +101 -0
  71. package/components/input/demo/customize.min.js +1 -1
  72. package/components/input/demo/getting-started.min.js +1 -1
  73. package/components/input/demo/index.min.js +1 -1
  74. package/components/input/demo/pages.json +1 -1
  75. package/components/input/demo/why-input.html +57 -0
  76. package/components/input/demo/why-input.md +121 -0
  77. package/components/input/dist/index.js +1 -1
  78. package/components/input/dist/registered.js +1 -1
  79. package/components/menu/demo/pages.json +1 -1
  80. package/components/menu/demo/why-menu.html +57 -0
  81. package/components/menu/demo/why-menu.md +104 -0
  82. package/components/radio/demo/customize.min.js +2186 -0
  83. package/components/radio/demo/demo-support.min.js +55807 -0
  84. package/components/radio/demo/getting-started.js +1 -1
  85. package/components/radio/demo/getting-started.md +1 -1
  86. package/components/radio/demo/getting-started.min.js +2205 -0
  87. package/components/radio/demo/index.min.js +1 -1
  88. package/components/radio/demo/pages.json +1 -1
  89. package/components/radio/demo/why-radio.html +57 -0
  90. package/components/radio/demo/why-radio.md +92 -0
  91. package/components/radio/dist/index.js +1 -1
  92. package/components/radio/dist/registered.js +1 -1
  93. package/components/select/demo/customize.min.js +249 -33
  94. package/components/select/demo/getting-started.min.js +249 -33
  95. package/components/select/demo/index.min.js +249 -33
  96. package/components/select/demo/keyboard-behavior.md +9 -54
  97. package/components/select/demo/pages.json +1 -1
  98. package/components/select/demo/why-select.html +57 -0
  99. package/components/select/demo/why-select.md +128 -0
  100. package/components/select/dist/index.js +249 -33
  101. package/components/select/dist/registered.js +249 -33
  102. package/custom-elements.json +2446 -1502
  103. package/package.json +2 -2
@@ -1336,30 +1336,28 @@ function navigateArrow(component, direction, options = {}) {
1336
1336
  const selectKeyboardStrategy = {
1337
1337
  ArrowDown(component, evt, ctx) {
1338
1338
  evt.preventDefault();
1339
- if (ctx.isExpanded) {
1340
- if (evt.altKey || evt.ctrlKey || evt.metaKey) {
1341
- // navigate to last enabled option
1342
- selectKeyboardStrategy.End(component, evt, ctx);
1343
- } else {
1344
- navigateArrow(component, 'down', { ctx });
1345
- }
1346
- } else {
1347
- component.dropdown.show();
1339
+ if (evt.altKey || evt.metaKey) {
1340
+ // navigate to last enabled option
1341
+ selectKeyboardStrategy.End(component, evt, ctx);
1342
+ return;
1348
1343
  }
1344
+ navigateArrow(component, 'down', {
1345
+ ctx,
1346
+ showFn: () => component.dropdown.show(),
1347
+ });
1349
1348
  },
1350
1349
 
1351
1350
  ArrowUp(component, evt, ctx) {
1352
1351
  evt.preventDefault();
1353
- if (ctx.isExpanded) {
1354
- if (evt.altKey || evt.ctrlKey || evt.metaKey) {
1355
- // navigate to first enabled option
1356
- selectKeyboardStrategy.Home(component, evt, ctx);
1357
- } else {
1358
- navigateArrow(component, 'up', { ctx });
1359
- }
1360
- } else {
1361
- component.dropdown.show();
1352
+ if (evt.altKey || evt.metaKey) {
1353
+ // navigate to first enabled option
1354
+ selectKeyboardStrategy.Home(component, evt, ctx);
1355
+ return;
1362
1356
  }
1357
+ navigateArrow(component, 'up', {
1358
+ ctx,
1359
+ showFn: () => component.dropdown.show(),
1360
+ });
1363
1361
  },
1364
1362
 
1365
1363
  Escape(component, evt, ctx) {
@@ -4735,7 +4733,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
4735
4733
  });
4736
4734
  }
4737
4735
 
4738
- 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}`;
4736
+ 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([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}`;
4739
4737
 
4740
4738
  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)}`;
4741
4739
 
@@ -5366,7 +5364,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
5366
5364
  }
5367
5365
  };
5368
5366
 
5369
- var formkitVersion$1 = '202605201646';
5367
+ var formkitVersion$1 = '202605210326';
5370
5368
 
5371
5369
  class AuroElement extends i$3 {
5372
5370
  static get properties() {
@@ -5546,6 +5544,7 @@ class AuroDropdown extends AuroElement {
5546
5544
  _intializeDefaults() {
5547
5545
  this.appearance = 'default';
5548
5546
  this.chevron = false;
5547
+ this.desktopModal = false;
5549
5548
  this.disabled = false;
5550
5549
  this.disableKeyboardHandling = false;
5551
5550
  this.error = false;
@@ -5726,6 +5725,14 @@ class AuroDropdown extends AuroElement {
5726
5725
  reflect: true
5727
5726
  },
5728
5727
 
5728
+ /**
5729
+ * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
5730
+ */
5731
+ desktopModal: {
5732
+ type: Boolean,
5733
+ reflect: true
5734
+ },
5735
+
5729
5736
  /**
5730
5737
  * If declared, the dropdown will only show by calling the API .show() public method.
5731
5738
  */
@@ -6013,6 +6020,15 @@ class AuroDropdown extends AuroElement {
6013
6020
 
6014
6021
  disconnectedCallback() {
6015
6022
  super.disconnectedCallback();
6023
+ this._clearPageInert();
6024
+ if (this._bibTabHandler) {
6025
+ this.removeEventListener('keydown', this._bibTabHandler);
6026
+ this._bibTabHandler = undefined;
6027
+ }
6028
+ if (this.focusTrap) {
6029
+ this.focusTrap.disconnect();
6030
+ this.focusTrap = undefined;
6031
+ }
6016
6032
  if (this.floater) {
6017
6033
  this.floater.hideBib('disconnect');
6018
6034
  this.floater.disconnect();
@@ -6040,19 +6056,45 @@ class AuroDropdown extends AuroElement {
6040
6056
  if (this.isPopoverVisible) {
6041
6057
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
6042
6058
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
6043
- const useModal = this.isBibFullscreen;
6044
- this.bibElement.value.open(useModal);
6059
+ this.bibElement.value.open(this.isBibFullscreen);
6060
+ this.updateFocusTrap();
6061
+
6062
+ // Desktop modal: make siblings inert so content outside is not interactive
6063
+ if (this.desktopModal && !this.isBibFullscreen) {
6064
+ this._setPageInert();
6065
+ }
6045
6066
  } else {
6046
6067
  this.bibElement.value.close();
6068
+ this._clearPageInert();
6047
6069
  }
6048
6070
  }
6049
6071
 
6050
6072
  // When fullscreen strategy changes while open, re-open dialog with correct mode
6051
6073
  // (e.g. resizing from desktop → mobile while dropdown is open)
6052
6074
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
6053
- const useModal = this.isBibFullscreen;
6054
6075
  this.bibElement.value.close();
6055
- this.bibElement.value.open(useModal);
6076
+ this.bibElement.value.open(this.isBibFullscreen);
6077
+
6078
+ // Re-initialize focus management for the new strategy
6079
+ this.updateFocusTrap();
6080
+
6081
+ // Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
6082
+ if (this.desktopModal && !this.isBibFullscreen) {
6083
+ this._setPageInert();
6084
+ } else {
6085
+ this._clearPageInert();
6086
+ }
6087
+ }
6088
+
6089
+ // Handle desktopModal toggled while the dropdown is already open.
6090
+ // Re-initialize focus trapping and page inert state to match the new mode.
6091
+ if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
6092
+ this.updateFocusTrap();
6093
+ if (this.desktopModal) {
6094
+ this._setPageInert();
6095
+ } else {
6096
+ this._clearPageInert();
6097
+ }
6056
6098
  }
6057
6099
  }
6058
6100
 
@@ -6062,8 +6104,14 @@ class AuroDropdown extends AuroElement {
6062
6104
  * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
6063
6105
  */
6064
6106
  handleDropdownToggle(event) {
6065
- this.updateFocusTrap();
6066
6107
  this.isPopoverVisible = event.detail.expanded;
6108
+
6109
+ // Tear down FocusTrap when closing. Creation happens in updated()
6110
+ // after the dialog is open so getFocusableElements can find content.
6111
+ if (!this.isPopoverVisible) {
6112
+ this.updateFocusTrap();
6113
+ }
6114
+
6067
6115
  const eventType = event.detail.eventType || "unknown";
6068
6116
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6069
6117
  this.trigger.focus();
@@ -6162,19 +6210,178 @@ class AuroDropdown extends AuroElement {
6162
6210
  * @private
6163
6211
  */
6164
6212
  updateFocusTrap() {
6213
+ // Always clean up existing handlers/traps before setting up new ones
6214
+ // to prevent duplicate listeners on repeated calls.
6215
+ if (this._bibTabHandler) {
6216
+ this.removeEventListener('keydown', this._bibTabHandler);
6217
+ this._bibTabHandler = undefined;
6218
+ }
6219
+
6220
+ if (this.focusTrap) {
6221
+ this.focusTrap.disconnect();
6222
+ this.focusTrap = undefined;
6223
+ }
6224
+
6165
6225
  if (this.isPopoverVisible) {
6166
6226
  if (!this.isBibFullscreen) {
6167
- // Desktop: show() doesn't trap focus, so use FocusTrap
6168
- this.focusTrap = new FocusTrap(this.bibContent);
6169
- this.focusTrap.focusFirstElement();
6227
+ if (this.desktopModal) {
6228
+ // Desktop modal: trap focus only within the bib content.
6229
+ // Can't use FocusTrap on the bib element because keydown events
6230
+ // from slotted content bubble through the dropdown host (light DOM),
6231
+ // not through the bib (shadow projection target). Using FocusTrap
6232
+ // on the dropdown would include the trigger in the tab cycle.
6233
+ // Instead, listen for Tab on the dropdown and manually wrap focus
6234
+ // within the bib's focusable elements.
6235
+ this._bibTabHandler = (event) => {
6236
+ if (event.key !== 'Tab') {
6237
+ return;
6238
+ }
6239
+
6240
+ // Collect focusable elements from the bib content.
6241
+ const focusables = getFocusableElements(this.bibContent);
6242
+
6243
+ // Fallback: try from slotted content directly
6244
+ if (!focusables.length) {
6245
+ const slot = this.shadowRoot.querySelector('.slotContent slot');
6246
+ const assignedNodes = slot ? slot.assignedNodes({ flatten: true }) : [];
6247
+
6248
+ for (const node of assignedNodes) {
6249
+ if (node.nodeType === Node.ELEMENT_NODE) {
6250
+ focusables.push(...getFocusableElements(node));
6251
+ }
6252
+ }
6253
+ }
6254
+
6255
+ if (!focusables.length) {
6256
+ return;
6257
+ }
6258
+
6259
+ event.preventDefault();
6260
+
6261
+ const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
6262
+
6263
+ // Walk the active element chain through shadow roots
6264
+ const actives = this._getActiveElements();
6265
+
6266
+ let idx = focusables.findIndex((el) => actives.includes(el));
6267
+
6268
+ if (idx === -1) { // eslint-disable-line no-magic-numbers
6269
+ // Focus is not on a known element — move to first/last
6270
+ idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
6271
+ }
6272
+
6273
+ // Try each element in order, skipping any that can't receive focus
6274
+ // (e.g. hidden elements, elements in collapsed sections)
6275
+ for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
6276
+ let nextIdx = idx + direction;
6277
+
6278
+ // Wrap around
6279
+ if (nextIdx < 0) {
6280
+ nextIdx = focusables.length - 1;
6281
+ } else if (nextIdx >= focusables.length) {
6282
+ nextIdx = 0;
6283
+ }
6284
+
6285
+ focusables[nextIdx].focus();
6286
+
6287
+ // Verify focus actually moved to the target
6288
+ const newActives = this._getActiveElements();
6289
+
6290
+ if (newActives.includes(focusables[nextIdx])) {
6291
+ return;
6292
+ }
6293
+
6294
+ // Focus didn't stick — skip this element and try the next
6295
+ idx = nextIdx;
6296
+ }
6297
+ };
6298
+ this.addEventListener('keydown', this._bibTabHandler);
6299
+
6300
+ // Move initial focus into the bib content, matching FocusTrap behavior
6301
+ requestAnimationFrame(() => {
6302
+ const focusables = getFocusableElements(this.bibContent);
6303
+ if (focusables.length) {
6304
+ focusables[0].focus();
6305
+ }
6306
+ });
6307
+ } else {
6308
+ // Normal desktop: use FocusTrap on the bib element
6309
+ this.focusTrap = new FocusTrap(this.bibContent);
6310
+ this.focusTrap.focusFirstElement();
6311
+ }
6170
6312
  }
6171
6313
  // Fullscreen: showModal() provides native focus trapping
6314
+ }
6315
+ }
6316
+
6317
+ /**
6318
+ * Returns the chain of active (focused) elements through shadow roots.
6319
+ * @private
6320
+ * @returns {Array<HTMLElement>}
6321
+ */
6322
+ _getActiveElements() {
6323
+ let { activeElement } = document;
6324
+ const actives = [activeElement];
6325
+
6326
+ while (activeElement?.shadowRoot?.activeElement) {
6327
+ activeElement = activeElement.shadowRoot.activeElement;
6328
+ actives.push(activeElement);
6329
+ }
6330
+
6331
+ return actives;
6332
+ }
6333
+
6334
+ /**
6335
+ * Sets `inert` on sibling elements of the dropdown's top-level host
6336
+ * so that content outside the dropdown is not interactive while the modal is open.
6337
+ * Walks up through shadow DOM boundaries to find the outermost host element
6338
+ * in the light DOM, then sets `inert` on siblings at each ancestor level
6339
+ * to ensure all page content outside the host subtree is inert.
6340
+ * @private
6341
+ */
6342
+ _setPageInert() {
6343
+ if (this._inertSiblings) {
6172
6344
  return;
6173
6345
  }
6174
6346
 
6175
- if (this.focusTrap) {
6176
- this.focusTrap.disconnect();
6177
- this.focusTrap = undefined;
6347
+ this._inertSiblings = [];
6348
+
6349
+ // Walk up through shadow DOM boundaries to find the topmost host
6350
+ // element in the light DOM. For example, if this dropdown is inside
6351
+ // auro-datepicker's shadow DOM, we walk up to the datepicker element
6352
+ // so we set inert on its siblings — not on the datepicker itself.
6353
+ let host = this;
6354
+ while (host.getRootNode() instanceof ShadowRoot) {
6355
+ host = host.getRootNode().host;
6356
+ }
6357
+
6358
+ // Walk up the ancestor chain, inerting siblings at each level
6359
+ // to ensure the entire page outside the host subtree is inert.
6360
+ let current = host;
6361
+ while (current.parentElement) {
6362
+ const parent = current.parentElement;
6363
+ for (const sibling of parent.children) {
6364
+ if (sibling !== current) {
6365
+ this._inertSiblings.push({ element: sibling, wasInert: sibling.inert });
6366
+ sibling.inert = true;
6367
+ }
6368
+ }
6369
+ current = parent;
6370
+ }
6371
+ }
6372
+
6373
+ /**
6374
+ * Restores `inert` state on siblings that were tracked by `_setPageInert`.
6375
+ * Preserves the previous inert state so externally-inerted elements are
6376
+ * not inadvertently re-enabled.
6377
+ * @private
6378
+ */
6379
+ _clearPageInert() {
6380
+ if (this._inertSiblings) {
6381
+ for (const entry of this._inertSiblings) {
6382
+ entry.element.inert = entry.wasInert;
6383
+ }
6384
+ this._inertSiblings = undefined;
6178
6385
  }
6179
6386
  }
6180
6387
 
@@ -6413,6 +6620,7 @@ class AuroDropdown extends AuroElement {
6413
6620
  shape="${this.shape}"
6414
6621
  ?data-show="${this.isPopoverVisible}"
6415
6622
  ?isfullscreen="${this.isBibFullscreen}"
6623
+ ?desktopmodal="${this.desktopModal}"
6416
6624
  .dialogLabel="${this.bibDialogLabel}"
6417
6625
  ${n$2(this.bibElement)}
6418
6626
  >
@@ -6780,6 +6988,14 @@ class AuroBibtemplate extends i$3 {
6780
6988
  large: {
6781
6989
  type: Boolean,
6782
6990
  reflect: true
6991
+ },
6992
+
6993
+ /**
6994
+ * If declared, the footer slot will be rendered even when not in fullscreen mode.
6995
+ */
6996
+ showFooter: {
6997
+ type: Boolean,
6998
+ reflect: true
6783
6999
  }
6784
7000
  };
6785
7001
  }
@@ -6882,7 +7098,7 @@ class AuroBibtemplate extends i$3 {
6882
7098
  <slot></slot>
6883
7099
  </div>
6884
7100
 
6885
- ${this.isFullscreen ? u$4`
7101
+ ${this.isFullscreen || this.showFooter ? u$4`
6886
7102
  <div id="footerContainer">
6887
7103
  <slot name="footer"></slot>
6888
7104
  </div>` : null}
@@ -7119,7 +7335,7 @@ class AuroHelpText extends i$3 {
7119
7335
  }
7120
7336
  }
7121
7337
 
7122
- var formkitVersion = '202605201646';
7338
+ var formkitVersion = '202605210326';
7123
7339
 
7124
7340
  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);font-weight:var(--wcss-body-default-weight, );line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-default-emphasized{font-size:var(--wcss-body-default-emphasized-font-size, 1rem);font-weight:var(--wcss-body-default-emphasized-weight, );line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);font-weight:var(--wcss-body-lg-weight, );line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg,.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg-emphasized{font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);font-weight:var(--wcss-body-lg-emphasized-weight, );line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);font-weight:var(--wcss-body-sm-weight, );line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-sm-emphasized{font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);font-weight:var(--wcss-body-sm-emphasized-weight, );line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);font-weight:var(--wcss-body-xs-weight, );line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs,.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs-emphasized{font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);font-weight:var(--wcss-body-xs-emphasized-weight, );line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-weight, );line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs,.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-2xs-emphasized{font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);font-weight:var(--wcss-body-2xs-emphasized-weight, );line-height:var(--wcss-body-2xs-emphasized-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, 300);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, 300);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}`;
7125
7341