@aurodesignsystem-dev/auro-formkit 0.0.0-pr1474.4 → 0.0.0-pr1475.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 (83) 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.html +2 -1
  5. package/components/checkbox/demo/customize.min.js +1 -1
  6. package/components/checkbox/demo/getting-started.min.js +1 -1
  7. package/components/checkbox/demo/index.min.js +1 -1
  8. package/components/checkbox/dist/index.js +1 -1
  9. package/components/checkbox/dist/registered.js +1 -1
  10. package/components/combobox/demo/customize.html +2 -1
  11. package/components/combobox/demo/customize.md +130 -106
  12. package/components/combobox/demo/customize.min.js +209 -16
  13. package/components/combobox/demo/getting-started.min.js +209 -16
  14. package/components/combobox/demo/index.min.js +209 -16
  15. package/components/combobox/dist/index.js +209 -16
  16. package/components/combobox/dist/registered.js +209 -16
  17. package/components/counter/demo/customize.min.js +208 -15
  18. package/components/counter/demo/index.min.js +208 -15
  19. package/components/counter/demo/keyboard-behavior.md +1 -0
  20. package/components/counter/dist/index.js +10 -2
  21. package/components/counter/dist/registered.js +10 -2
  22. package/components/datepicker/demo/accessibility.md +51 -3
  23. package/components/datepicker/demo/api.md +9 -0
  24. package/components/datepicker/demo/customize.html +2 -0
  25. package/components/datepicker/demo/customize.js +19 -0
  26. package/components/datepicker/demo/customize.md +72 -8
  27. package/components/datepicker/demo/customize.min.js +25690 -0
  28. package/components/datepicker/demo/design.md +3 -1
  29. package/components/datepicker/demo/index.js +2 -1
  30. package/components/datepicker/demo/index.md +81 -1
  31. package/components/datepicker/demo/index.min.js +1223 -101
  32. package/components/datepicker/demo/keyboard-behavior.md +201 -2
  33. package/components/datepicker/demo/voiceover.md +19 -12
  34. package/components/datepicker/dist/index.js +1155 -104
  35. package/components/datepicker/dist/registered.js +1155 -104
  36. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +59 -0
  37. package/components/datepicker/dist/src/auro-calendar-month.d.ts +28 -0
  38. package/components/datepicker/dist/src/auro-calendar.d.ts +84 -0
  39. package/components/datepicker/dist/src/auro-datepicker.d.ts +80 -0
  40. package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
  41. package/components/dropdown/demo/accessibility.md +11 -0
  42. package/components/dropdown/demo/api.md +1 -0
  43. package/components/dropdown/demo/customize.md +3 -0
  44. package/components/dropdown/demo/customize.min.js +198 -13
  45. package/components/dropdown/demo/getting-started.min.js +198 -13
  46. package/components/dropdown/demo/index.min.js +198 -13
  47. package/components/dropdown/demo/keyboard-behavior.md +1 -0
  48. package/components/dropdown/dist/auro-dropdown.d.ts +30 -1
  49. package/components/dropdown/dist/index.js +198 -13
  50. package/components/dropdown/dist/registered.js +198 -13
  51. package/components/form/demo/customize.html +6 -6
  52. package/components/form/demo/customize.js +0 -17
  53. package/components/form/demo/customize.md +51 -125
  54. package/components/form/demo/customize.min.js +1776 -327
  55. package/components/form/demo/getting-started.min.js +1776 -291
  56. package/components/form/demo/index.min.js +1776 -291
  57. package/components/form/demo/registerDemoDeps.min.js +1769 -139
  58. package/components/form/dist/auro-form.d.ts +5 -45
  59. package/components/form/dist/index.js +7 -152
  60. package/components/form/dist/registered.js +7 -152
  61. package/components/input/demo/customize.html +2 -1
  62. package/components/input/demo/customize.min.js +1 -1
  63. package/components/input/demo/getting-started.min.js +1 -1
  64. package/components/input/demo/index.min.js +1 -1
  65. package/components/input/dist/index.js +1 -1
  66. package/components/input/dist/registered.js +1 -1
  67. package/components/radio/demo/customize.min.js +2186 -0
  68. package/components/radio/demo/demo-support.min.js +55807 -0
  69. package/components/radio/demo/getting-started.js +1 -1
  70. package/components/radio/demo/getting-started.md +1 -1
  71. package/components/radio/demo/getting-started.min.js +2205 -0
  72. package/components/radio/demo/index.min.js +1 -1
  73. package/components/radio/dist/index.js +1 -1
  74. package/components/radio/dist/registered.js +1 -1
  75. package/components/select/demo/customize.html +2 -2
  76. package/components/select/demo/customize.min.js +208 -15
  77. package/components/select/demo/getting-started.min.js +208 -15
  78. package/components/select/demo/index.min.js +208 -15
  79. package/components/select/demo/keyboard-behavior.md +1 -0
  80. package/components/select/dist/index.js +208 -15
  81. package/components/select/dist/registered.js +208 -15
  82. package/custom-elements.json +2826 -2214
  83. package/package.json +2 -2
@@ -4702,7 +4702,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
4702
4702
  });
4703
4703
  }
4704
4704
 
4705
- 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}`;
4705
+ 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}`;
4706
4706
 
4707
4707
  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)}`;
4708
4708
 
@@ -5333,7 +5333,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$3 {
5333
5333
  }
5334
5334
  };
5335
5335
 
5336
- var formkitVersion$1 = '202605122157';
5336
+ var formkitVersion$1 = '202605182202';
5337
5337
 
5338
5338
  class AuroElement extends i$3 {
5339
5339
  static get properties() {
@@ -5513,6 +5513,7 @@ class AuroDropdown extends AuroElement {
5513
5513
  _intializeDefaults() {
5514
5514
  this.appearance = 'default';
5515
5515
  this.chevron = false;
5516
+ this.desktopModal = false;
5516
5517
  this.disabled = false;
5517
5518
  this.disableKeyboardHandling = false;
5518
5519
  this.error = false;
@@ -5693,6 +5694,14 @@ class AuroDropdown extends AuroElement {
5693
5694
  reflect: true
5694
5695
  },
5695
5696
 
5697
+ /**
5698
+ * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
5699
+ */
5700
+ desktopModal: {
5701
+ type: Boolean,
5702
+ reflect: true
5703
+ },
5704
+
5696
5705
  /**
5697
5706
  * If declared, the dropdown will only show by calling the API .show() public method.
5698
5707
  */
@@ -5980,6 +5989,15 @@ class AuroDropdown extends AuroElement {
5980
5989
 
5981
5990
  disconnectedCallback() {
5982
5991
  super.disconnectedCallback();
5992
+ this._clearPageInert();
5993
+ if (this._bibTabHandler) {
5994
+ this.removeEventListener('keydown', this._bibTabHandler);
5995
+ this._bibTabHandler = undefined;
5996
+ }
5997
+ if (this.focusTrap) {
5998
+ this.focusTrap.disconnect();
5999
+ this.focusTrap = undefined;
6000
+ }
5983
6001
  if (this.floater) {
5984
6002
  this.floater.hideBib('disconnect');
5985
6003
  this.floater.disconnect();
@@ -6007,19 +6025,34 @@ class AuroDropdown extends AuroElement {
6007
6025
  if (this.isPopoverVisible) {
6008
6026
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
6009
6027
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
6010
- const useModal = this.isBibFullscreen;
6011
- this.bibElement.value.open(useModal);
6028
+ this.bibElement.value.open(this.isBibFullscreen);
6029
+ this.updateFocusTrap();
6030
+
6031
+ // Desktop modal: make siblings inert so content outside is not interactive
6032
+ if (this.desktopModal && !this.isBibFullscreen) {
6033
+ this._setPageInert();
6034
+ }
6012
6035
  } else {
6013
6036
  this.bibElement.value.close();
6037
+ this._clearPageInert();
6014
6038
  }
6015
6039
  }
6016
6040
 
6017
6041
  // When fullscreen strategy changes while open, re-open dialog with correct mode
6018
6042
  // (e.g. resizing from desktop → mobile while dropdown is open)
6019
6043
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
6020
- const useModal = this.isBibFullscreen;
6021
6044
  this.bibElement.value.close();
6022
- this.bibElement.value.open(useModal);
6045
+ this.bibElement.value.open(this.isBibFullscreen);
6046
+
6047
+ // Re-initialize focus management for the new strategy
6048
+ this.updateFocusTrap();
6049
+
6050
+ // Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
6051
+ if (this.desktopModal && !this.isBibFullscreen) {
6052
+ this._setPageInert();
6053
+ } else {
6054
+ this._clearPageInert();
6055
+ }
6023
6056
  }
6024
6057
  }
6025
6058
 
@@ -6029,8 +6062,14 @@ class AuroDropdown extends AuroElement {
6029
6062
  * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
6030
6063
  */
6031
6064
  handleDropdownToggle(event) {
6032
- this.updateFocusTrap();
6033
6065
  this.isPopoverVisible = event.detail.expanded;
6066
+
6067
+ // Tear down FocusTrap when closing. Creation happens in updated()
6068
+ // after the dialog is open so getFocusableElements can find content.
6069
+ if (!this.isPopoverVisible) {
6070
+ this.updateFocusTrap();
6071
+ }
6072
+
6034
6073
  const eventType = event.detail.eventType || "unknown";
6035
6074
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
6036
6075
  this.trigger.focus();
@@ -6129,19 +6168,164 @@ class AuroDropdown extends AuroElement {
6129
6168
  * @private
6130
6169
  */
6131
6170
  updateFocusTrap() {
6171
+ // Always clean up existing handlers/traps before setting up new ones
6172
+ // to prevent duplicate listeners on repeated calls.
6173
+ if (this._bibTabHandler) {
6174
+ this.removeEventListener('keydown', this._bibTabHandler);
6175
+ this._bibTabHandler = undefined;
6176
+ }
6177
+
6178
+ if (this.focusTrap) {
6179
+ this.focusTrap.disconnect();
6180
+ this.focusTrap = undefined;
6181
+ }
6182
+
6132
6183
  if (this.isPopoverVisible) {
6133
6184
  if (!this.isBibFullscreen) {
6134
- // Desktop: show() doesn't trap focus, so use FocusTrap
6135
- this.focusTrap = new FocusTrap(this.bibContent);
6136
- this.focusTrap.focusFirstElement();
6185
+ if (this.desktopModal) {
6186
+ // Desktop modal: trap focus only within the bib content.
6187
+ // Can't use FocusTrap on the bib element because keydown events
6188
+ // from slotted content bubble through the dropdown host (light DOM),
6189
+ // not through the bib (shadow projection target). Using FocusTrap
6190
+ // on the dropdown would include the trigger in the tab cycle.
6191
+ // Instead, listen for Tab on the dropdown and manually wrap focus
6192
+ // within the bib's focusable elements.
6193
+ this._bibTabHandler = (event) => {
6194
+ if (event.key !== 'Tab') {
6195
+ return;
6196
+ }
6197
+
6198
+ // Collect focusable elements from the bib content.
6199
+ const focusables = getFocusableElements(this.bibContent);
6200
+
6201
+ // Fallback: try from slotted content directly
6202
+ if (!focusables.length) {
6203
+ const slot = this.shadowRoot.querySelector('.slotContent slot');
6204
+ const assignedNodes = slot ? slot.assignedNodes({ flatten: true }) : [];
6205
+
6206
+ for (const node of assignedNodes) {
6207
+ if (node.nodeType === Node.ELEMENT_NODE) {
6208
+ focusables.push(...getFocusableElements(node));
6209
+ }
6210
+ }
6211
+ }
6212
+
6213
+ if (!focusables.length) {
6214
+ return;
6215
+ }
6216
+
6217
+ event.preventDefault();
6218
+
6219
+ const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
6220
+
6221
+ // Walk the active element chain through shadow roots
6222
+ const actives = this._getActiveElements();
6223
+
6224
+ let idx = focusables.findIndex((el) => actives.includes(el));
6225
+
6226
+ if (idx === -1) { // eslint-disable-line no-magic-numbers
6227
+ // Focus is not on a known element — move to first/last
6228
+ idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
6229
+ }
6230
+
6231
+ // Try each element in order, skipping any that can't receive focus
6232
+ // (e.g. hidden elements, elements in collapsed sections)
6233
+ for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
6234
+ let nextIdx = idx + direction;
6235
+
6236
+ // Wrap around
6237
+ if (nextIdx < 0) {
6238
+ nextIdx = focusables.length - 1;
6239
+ } else if (nextIdx >= focusables.length) {
6240
+ nextIdx = 0;
6241
+ }
6242
+
6243
+ focusables[nextIdx].focus();
6244
+
6245
+ // Verify focus actually moved to the target
6246
+ const newActives = this._getActiveElements();
6247
+
6248
+ if (newActives.includes(focusables[nextIdx])) {
6249
+ return;
6250
+ }
6251
+
6252
+ // Focus didn't stick — skip this element and try the next
6253
+ idx = nextIdx;
6254
+ }
6255
+ };
6256
+ this.addEventListener('keydown', this._bibTabHandler);
6257
+ } else {
6258
+ // Normal desktop: use FocusTrap on the bib element
6259
+ this.focusTrap = new FocusTrap(this.bibContent);
6260
+ this.focusTrap.focusFirstElement();
6261
+ }
6137
6262
  }
6138
6263
  // Fullscreen: showModal() provides native focus trapping
6264
+ }
6265
+ }
6266
+
6267
+ /**
6268
+ * Returns the chain of active (focused) elements through shadow roots.
6269
+ * @private
6270
+ * @returns {Array<HTMLElement>}
6271
+ */
6272
+ _getActiveElements() {
6273
+ let { activeElement } = document;
6274
+ const actives = [activeElement];
6275
+
6276
+ while (activeElement?.shadowRoot?.activeElement) {
6277
+ activeElement = activeElement.shadowRoot.activeElement;
6278
+ actives.push(activeElement);
6279
+ }
6280
+
6281
+ return actives;
6282
+ }
6283
+
6284
+ /**
6285
+ * Sets `inert` on sibling elements of the dropdown's top-level host
6286
+ * so that content outside the dropdown is not interactive while the modal is open.
6287
+ * Walks up through shadow DOM boundaries to find the outermost host element
6288
+ * in the light DOM, then sets `inert` on that element's siblings.
6289
+ * @private
6290
+ */
6291
+ _setPageInert() {
6292
+ if (this._inertSiblings) {
6139
6293
  return;
6140
6294
  }
6141
6295
 
6142
- if (this.focusTrap) {
6143
- this.focusTrap.disconnect();
6144
- this.focusTrap = undefined;
6296
+ this._inertSiblings = [];
6297
+
6298
+ // Walk up through shadow DOM boundaries to find the topmost host
6299
+ // element in the light DOM. For example, if this dropdown is inside
6300
+ // auro-datepicker's shadow DOM, we walk up to the datepicker element
6301
+ // so we set inert on its siblings — not on the datepicker itself.
6302
+ let host = this;
6303
+ while (host.getRootNode() instanceof ShadowRoot) {
6304
+ host = host.getRootNode().host;
6305
+ }
6306
+
6307
+ const parent = host.parentElement;
6308
+
6309
+ if (parent) {
6310
+ for (const sibling of parent.children) {
6311
+ if (sibling !== host && !sibling.inert) {
6312
+ sibling.inert = true;
6313
+ this._inertSiblings.push(sibling);
6314
+ }
6315
+ }
6316
+ }
6317
+ }
6318
+
6319
+ /**
6320
+ * Restores `inert` state on siblings that were made inert by `_setPageInert`.
6321
+ * @private
6322
+ */
6323
+ _clearPageInert() {
6324
+ if (this._inertSiblings) {
6325
+ for (const sibling of this._inertSiblings) {
6326
+ sibling.inert = false;
6327
+ }
6328
+ this._inertSiblings = undefined;
6145
6329
  }
6146
6330
  }
6147
6331
 
@@ -6380,6 +6564,7 @@ class AuroDropdown extends AuroElement {
6380
6564
  shape="${this.shape}"
6381
6565
  ?data-show="${this.isPopoverVisible}"
6382
6566
  ?isfullscreen="${this.isBibFullscreen}"
6567
+ ?desktopmodal="${this.desktopModal}"
6383
6568
  .dialogLabel="${this.bibDialogLabel}"
6384
6569
  ${n$2(this.bibElement)}
6385
6570
  >
@@ -6747,6 +6932,14 @@ class AuroBibtemplate extends i$3 {
6747
6932
  large: {
6748
6933
  type: Boolean,
6749
6934
  reflect: true
6935
+ },
6936
+
6937
+ /**
6938
+ * If declared, the footer slot will be rendered even when not in fullscreen mode.
6939
+ */
6940
+ showFooter: {
6941
+ type: Boolean,
6942
+ reflect: true
6750
6943
  }
6751
6944
  };
6752
6945
  }
@@ -6849,7 +7042,7 @@ class AuroBibtemplate extends i$3 {
6849
7042
  <slot></slot>
6850
7043
  </div>
6851
7044
 
6852
- ${this.isFullscreen ? u$4`
7045
+ ${this.isFullscreen || this.showFooter ? u$4`
6853
7046
  <div id="footerContainer">
6854
7047
  <slot name="footer"></slot>
6855
7048
  </div>` : null}
@@ -7086,7 +7279,7 @@ class AuroHelpText extends i$3 {
7086
7279
  }
7087
7280
  }
7088
7281
 
7089
- var formkitVersion = '202605122157';
7282
+ var formkitVersion = '202605182202';
7090
7283
 
7091
7284
  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}`;
7092
7285
 
@@ -18,6 +18,7 @@
18
18
  <p>The trigger is a focusable element and participates in the standard tab order, responding to <code>Tab</code> and <code>Shift+Tab</code> key events per <auro-hyperlink href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex">native browser behavior</auro-hyperlink>, i.e., these keys step through the browser tabindex sequence.</p>
19
19
  <p>When the component is <code>disabled</code> it is removed from the <code>tabindex</code> sequence. VoiceOver's virtual cursor <em>(swipe navigation)</em> can still encounter the component, but standard keyboard <code>Tab</code> navigation skips it.</p>
20
20
  <p>When the bib is collapsed, the bib content is excluded from the tab sequence. When <strong>expanded</strong>, focusable elements within the bib content are included in the natural tab order. In fullscreen mode, focus is trapped within the bib, and the tab sequence cycles through the bib content focusable elements until the bib is closed or the viewport no longer meets the fullscreen condition and is rendered as a popover.</p>
21
+ <p>When the <code>desktopModal</code> attribute is set, focus is also trapped within the bib on desktop viewports. All sibling elements on the page are marked <code>inert</code>, preventing interaction with content outside the dropdown until it is closed.</p>
21
22
  <!-- AURO-GENERATED-CONTENT:END -->
22
23
  <p>There are no focusable elements inside the <code>&lt;auro-select></code> bib content.</p>
23
24
  <div class="note">