@aurodesignsystem-dev/auro-formkit 0.0.0-pr1475.4 → 0.0.0-pr1477.0

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 (73) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +0 -7
  2. package/components/bibtemplate/dist/index.js +1 -9
  3. package/components/bibtemplate/dist/registered.js +1 -9
  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/dist/index.js +1 -1
  8. package/components/checkbox/dist/registered.js +1 -1
  9. package/components/combobox/demo/customize.min.js +18 -234
  10. package/components/combobox/demo/getting-started.min.js +18 -234
  11. package/components/combobox/demo/index.min.js +18 -234
  12. package/components/combobox/demo/keyboard-behavior.md +68 -8
  13. package/components/combobox/dist/index.js +18 -234
  14. package/components/combobox/dist/registered.js +18 -234
  15. package/components/counter/demo/customize.min.js +15 -231
  16. package/components/counter/demo/index.min.js +15 -231
  17. package/components/counter/demo/keyboard-behavior.md +0 -1
  18. package/components/counter/dist/index.js +433 -45
  19. package/components/counter/dist/registered.js +2 -10
  20. package/components/datepicker/demo/accessibility.md +3 -51
  21. package/components/datepicker/demo/api.md +0 -9
  22. package/components/datepicker/demo/customize.html +0 -2
  23. package/components/datepicker/demo/customize.md +8 -72
  24. package/components/datepicker/demo/design.md +1 -3
  25. package/components/datepicker/demo/index.js +1 -5
  26. package/components/datepicker/demo/index.md +1 -81
  27. package/components/datepicker/demo/index.min.js +101 -1350
  28. package/components/datepicker/demo/keyboard-behavior.md +2 -201
  29. package/components/datepicker/demo/voiceover.md +12 -19
  30. package/components/datepicker/dist/index.js +111 -1284
  31. package/components/datepicker/dist/registered.js +111 -1284
  32. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +1 -64
  33. package/components/datepicker/dist/src/auro-calendar-month.d.ts +0 -28
  34. package/components/datepicker/dist/src/auro-calendar.d.ts +0 -84
  35. package/components/datepicker/dist/src/auro-datepicker.d.ts +0 -80
  36. package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +3 -5
  37. package/components/dropdown/demo/accessibility.md +0 -11
  38. package/components/dropdown/demo/api.md +0 -1
  39. package/components/dropdown/demo/customize.md +0 -3
  40. package/components/dropdown/demo/customize.min.js +13 -221
  41. package/components/dropdown/demo/getting-started.min.js +13 -221
  42. package/components/dropdown/demo/index.min.js +13 -221
  43. package/components/dropdown/demo/keyboard-behavior.md +0 -1
  44. package/components/dropdown/dist/auro-dropdown.d.ts +1 -31
  45. package/components/dropdown/dist/index.js +13 -221
  46. package/components/dropdown/dist/registered.js +13 -221
  47. package/components/form/demo/customize.min.js +987 -2806
  48. package/components/form/demo/getting-started.min.js +987 -2806
  49. package/components/form/demo/index.min.js +987 -2806
  50. package/components/form/demo/registerDemoDeps.min.js +982 -2801
  51. package/components/input/demo/customize.min.js +1 -1
  52. package/components/input/demo/getting-started.min.js +1 -1
  53. package/components/input/demo/index.min.js +1 -1
  54. package/components/input/dist/index.js +1 -1
  55. package/components/input/dist/registered.js +1 -1
  56. package/components/radio/demo/getting-started.js +1 -1
  57. package/components/radio/demo/getting-started.md +1 -1
  58. package/components/radio/demo/index.min.js +1 -1
  59. package/components/radio/dist/index.js +1 -1
  60. package/components/radio/dist/registered.js +1 -1
  61. package/components/select/demo/customize.min.js +33 -247
  62. package/components/select/demo/getting-started.min.js +33 -247
  63. package/components/select/demo/index.min.js +33 -247
  64. package/components/select/demo/keyboard-behavior.md +54 -9
  65. package/components/select/dist/index.js +33 -247
  66. package/components/select/dist/registered.js +33 -247
  67. package/custom-elements.json +1491 -2163
  68. package/package.json +2 -2
  69. package/components/datepicker/demo/customize.js +0 -19
  70. package/components/datepicker/demo/customize.min.js +0 -25810
  71. package/components/radio/demo/customize.min.js +0 -2186
  72. package/components/radio/demo/demo-support.min.js +0 -55807
  73. package/components/radio/demo/getting-started.min.js +0 -2205
@@ -3338,7 +3338,7 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
3338
3338
  });
3339
3339
  }
3340
3340
 
3341
- var styleCss$2 = i$2`: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}`;
3341
+ var styleCss$2 = i$2`: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}`;
3342
3342
 
3343
3343
  var colorCss$2 = i$2`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
3344
3344
 
@@ -3969,7 +3969,7 @@ class AuroHelpText extends i {
3969
3969
  }
3970
3970
  }
3971
3971
 
3972
- var formkitVersion = '202605190056';
3972
+ var formkitVersion = '202605192014';
3973
3973
 
3974
3974
  class AuroElement extends i {
3975
3975
  static get properties() {
@@ -4149,7 +4149,6 @@ class AuroDropdown extends AuroElement {
4149
4149
  _intializeDefaults() {
4150
4150
  this.appearance = 'default';
4151
4151
  this.chevron = false;
4152
- this.desktopModal = false;
4153
4152
  this.disabled = false;
4154
4153
  this.disableKeyboardHandling = false;
4155
4154
  this.error = false;
@@ -4330,14 +4329,6 @@ class AuroDropdown extends AuroElement {
4330
4329
  reflect: true
4331
4330
  },
4332
4331
 
4333
- /**
4334
- * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
4335
- */
4336
- desktopModal: {
4337
- type: Boolean,
4338
- reflect: true
4339
- },
4340
-
4341
4332
  /**
4342
4333
  * If declared, the dropdown will only show by calling the API .show() public method.
4343
4334
  */
@@ -4625,15 +4616,6 @@ class AuroDropdown extends AuroElement {
4625
4616
 
4626
4617
  disconnectedCallback() {
4627
4618
  super.disconnectedCallback();
4628
- this._clearPageInert();
4629
- if (this._bibTabHandler) {
4630
- this.removeEventListener('keydown', this._bibTabHandler);
4631
- this._bibTabHandler = undefined;
4632
- }
4633
- if (this.focusTrap) {
4634
- this.focusTrap.disconnect();
4635
- this.focusTrap = undefined;
4636
- }
4637
4619
  if (this.floater) {
4638
4620
  this.floater.hideBib('disconnect');
4639
4621
  this.floater.disconnect();
@@ -4661,45 +4643,19 @@ class AuroDropdown extends AuroElement {
4661
4643
  if (this.isPopoverVisible) {
4662
4644
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
4663
4645
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
4664
- this.bibElement.value.open(this.isBibFullscreen);
4665
- this.updateFocusTrap();
4666
-
4667
- // Desktop modal: make siblings inert so content outside is not interactive
4668
- if (this.desktopModal && !this.isBibFullscreen) {
4669
- this._setPageInert();
4670
- }
4646
+ const useModal = this.isBibFullscreen;
4647
+ this.bibElement.value.open(useModal);
4671
4648
  } else {
4672
4649
  this.bibElement.value.close();
4673
- this._clearPageInert();
4674
4650
  }
4675
4651
  }
4676
4652
 
4677
4653
  // When fullscreen strategy changes while open, re-open dialog with correct mode
4678
4654
  // (e.g. resizing from desktop → mobile while dropdown is open)
4679
4655
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
4656
+ const useModal = this.isBibFullscreen;
4680
4657
  this.bibElement.value.close();
4681
- this.bibElement.value.open(this.isBibFullscreen);
4682
-
4683
- // Re-initialize focus management for the new strategy
4684
- this.updateFocusTrap();
4685
-
4686
- // Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
4687
- if (this.desktopModal && !this.isBibFullscreen) {
4688
- this._setPageInert();
4689
- } else {
4690
- this._clearPageInert();
4691
- }
4692
- }
4693
-
4694
- // Handle desktopModal toggled while the dropdown is already open.
4695
- // Re-initialize focus trapping and page inert state to match the new mode.
4696
- if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
4697
- this.updateFocusTrap();
4698
- if (this.desktopModal) {
4699
- this._setPageInert();
4700
- } else {
4701
- this._clearPageInert();
4702
- }
4658
+ this.bibElement.value.open(useModal);
4703
4659
  }
4704
4660
  }
4705
4661
 
@@ -4709,14 +4665,8 @@ class AuroDropdown extends AuroElement {
4709
4665
  * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
4710
4666
  */
4711
4667
  handleDropdownToggle(event) {
4668
+ this.updateFocusTrap();
4712
4669
  this.isPopoverVisible = event.detail.expanded;
4713
-
4714
- // Tear down FocusTrap when closing. Creation happens in updated()
4715
- // after the dialog is open so getFocusableElements can find content.
4716
- if (!this.isPopoverVisible) {
4717
- this.updateFocusTrap();
4718
- }
4719
-
4720
4670
  const eventType = event.detail.eventType || "unknown";
4721
4671
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
4722
4672
  this.trigger.focus();
@@ -4815,176 +4765,19 @@ class AuroDropdown extends AuroElement {
4815
4765
  * @private
4816
4766
  */
4817
4767
  updateFocusTrap() {
4818
- // Always clean up existing handlers/traps before setting up new ones
4819
- // to prevent duplicate listeners on repeated calls.
4820
- if (this._bibTabHandler) {
4821
- this.removeEventListener('keydown', this._bibTabHandler);
4822
- this._bibTabHandler = undefined;
4823
- }
4824
-
4825
- if (this.focusTrap) {
4826
- this.focusTrap.disconnect();
4827
- this.focusTrap = undefined;
4828
- }
4829
-
4830
4768
  if (this.isPopoverVisible) {
4831
4769
  if (!this.isBibFullscreen) {
4832
- if (this.desktopModal) {
4833
- // Desktop modal: trap focus only within the bib content.
4834
- // Can't use FocusTrap on the bib element because keydown events
4835
- // from slotted content bubble through the dropdown host (light DOM),
4836
- // not through the bib (shadow projection target). Using FocusTrap
4837
- // on the dropdown would include the trigger in the tab cycle.
4838
- // Instead, listen for Tab on the dropdown and manually wrap focus
4839
- // within the bib's focusable elements.
4840
- this._bibTabHandler = (event) => {
4841
- if (event.key !== 'Tab') {
4842
- return;
4843
- }
4844
-
4845
- // Collect focusable elements from the bib content.
4846
- const focusables = getFocusableElements(this.bibContent);
4847
-
4848
- // Fallback: try from slotted content directly
4849
- if (!focusables.length) {
4850
- const slot = this.shadowRoot.querySelector('.slotContent slot');
4851
- const assignedNodes = slot ? slot.assignedNodes({ flatten: true }) : [];
4852
-
4853
- for (const node of assignedNodes) {
4854
- if (node.nodeType === Node.ELEMENT_NODE) {
4855
- focusables.push(...getFocusableElements(node));
4856
- }
4857
- }
4858
- }
4859
-
4860
- if (!focusables.length) {
4861
- return;
4862
- }
4863
-
4864
- event.preventDefault();
4865
-
4866
- const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
4867
-
4868
- // Walk the active element chain through shadow roots
4869
- const actives = this._getActiveElements();
4870
-
4871
- let idx = focusables.findIndex((el) => actives.includes(el));
4872
-
4873
- if (idx === -1) { // eslint-disable-line no-magic-numbers
4874
- // Focus is not on a known element — move to first/last
4875
- idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
4876
- }
4877
-
4878
- // Try each element in order, skipping any that can't receive focus
4879
- // (e.g. hidden elements, elements in collapsed sections)
4880
- for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
4881
- let nextIdx = idx + direction;
4882
-
4883
- // Wrap around
4884
- if (nextIdx < 0) {
4885
- nextIdx = focusables.length - 1;
4886
- } else if (nextIdx >= focusables.length) {
4887
- nextIdx = 0;
4888
- }
4889
-
4890
- focusables[nextIdx].focus();
4891
-
4892
- // Verify focus actually moved to the target
4893
- const newActives = this._getActiveElements();
4894
-
4895
- if (newActives.includes(focusables[nextIdx])) {
4896
- return;
4897
- }
4898
-
4899
- // Focus didn't stick — skip this element and try the next
4900
- idx = nextIdx;
4901
- }
4902
- };
4903
- this.addEventListener('keydown', this._bibTabHandler);
4904
-
4905
- // Move initial focus into the bib content, matching FocusTrap behavior
4906
- requestAnimationFrame(() => {
4907
- const focusables = getFocusableElements(this.bibContent);
4908
- if (focusables.length) {
4909
- focusables[0].focus();
4910
- }
4911
- });
4912
- } else {
4913
- // Normal desktop: use FocusTrap on the bib element
4914
- this.focusTrap = new FocusTrap(this.bibContent);
4915
- this.focusTrap.focusFirstElement();
4916
- }
4770
+ // Desktop: show() doesn't trap focus, so use FocusTrap
4771
+ this.focusTrap = new FocusTrap(this.bibContent);
4772
+ this.focusTrap.focusFirstElement();
4917
4773
  }
4918
4774
  // Fullscreen: showModal() provides native focus trapping
4919
- }
4920
- }
4921
-
4922
- /**
4923
- * Returns the chain of active (focused) elements through shadow roots.
4924
- * @private
4925
- * @returns {Array<HTMLElement>}
4926
- */
4927
- _getActiveElements() {
4928
- let { activeElement } = document;
4929
- const actives = [activeElement];
4930
-
4931
- while (activeElement?.shadowRoot?.activeElement) {
4932
- activeElement = activeElement.shadowRoot.activeElement;
4933
- actives.push(activeElement);
4934
- }
4935
-
4936
- return actives;
4937
- }
4938
-
4939
- /**
4940
- * Sets `inert` on sibling elements of the dropdown's top-level host
4941
- * so that content outside the dropdown is not interactive while the modal is open.
4942
- * Walks up through shadow DOM boundaries to find the outermost host element
4943
- * in the light DOM, then sets `inert` on siblings at each ancestor level
4944
- * to ensure all page content outside the host subtree is inert.
4945
- * @private
4946
- */
4947
- _setPageInert() {
4948
- if (this._inertSiblings) {
4949
4775
  return;
4950
4776
  }
4951
4777
 
4952
- this._inertSiblings = [];
4953
-
4954
- // Walk up through shadow DOM boundaries to find the topmost host
4955
- // element in the light DOM. For example, if this dropdown is inside
4956
- // auro-datepicker's shadow DOM, we walk up to the datepicker element
4957
- // so we set inert on its siblings — not on the datepicker itself.
4958
- let host = this;
4959
- while (host.getRootNode() instanceof ShadowRoot) {
4960
- host = host.getRootNode().host;
4961
- }
4962
-
4963
- // Walk up the ancestor chain, inerting siblings at each level
4964
- // to ensure the entire page outside the host subtree is inert.
4965
- let current = host;
4966
- while (current.parentElement) {
4967
- const parent = current.parentElement;
4968
- for (const sibling of parent.children) {
4969
- if (sibling !== current && !sibling.inert) {
4970
- sibling.inert = true;
4971
- this._inertSiblings.push(sibling);
4972
- }
4973
- }
4974
- current = parent;
4975
- }
4976
- }
4977
-
4978
- /**
4979
- * Restores `inert` state on siblings that were made inert by `_setPageInert`.
4980
- * @private
4981
- */
4982
- _clearPageInert() {
4983
- if (this._inertSiblings) {
4984
- for (const sibling of this._inertSiblings) {
4985
- sibling.inert = false;
4986
- }
4987
- this._inertSiblings = undefined;
4778
+ if (this.focusTrap) {
4779
+ this.focusTrap.disconnect();
4780
+ this.focusTrap = undefined;
4988
4781
  }
4989
4782
  }
4990
4783
 
@@ -5223,7 +5016,6 @@ class AuroDropdown extends AuroElement {
5223
5016
  shape="${this.shape}"
5224
5017
  ?data-show="${this.isPopoverVisible}"
5225
5018
  ?isfullscreen="${this.isBibFullscreen}"
5226
- ?desktopmodal="${this.desktopModal}"
5227
5019
  .dialogLabel="${this.bibDialogLabel}"
5228
5020
  ${n$2(this.bibElement)}
5229
5021
  >
@@ -5,7 +5,6 @@
5
5
  <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>
6
6
  <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>
7
7
  <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>
8
- <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>
9
8
  <!-- AURO-GENERATED-CONTENT:END -->
10
9
  <auro-header level="3" id="keyEvents">Key Events</auro-header>
11
10
  <!-- AURO-GENERATED-CONTENT:START (FILE:src=./../docs/partials/keyEvents.md) -->
@@ -44,13 +44,6 @@ export class AuroDropdown extends AuroElement {
44
44
  type: BooleanConstructor;
45
45
  reflect: boolean;
46
46
  };
47
- /**
48
- * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
49
- */
50
- desktopModal: {
51
- type: BooleanConstructor;
52
- reflect: boolean;
53
- };
54
47
  /**
55
48
  * If declared, the dropdown will only show by calling the API .show() public method.
56
49
  */
@@ -292,7 +285,6 @@ export class AuroDropdown extends AuroElement {
292
285
  private _intializeDefaults;
293
286
  appearance: string | undefined;
294
287
  chevron: boolean | undefined;
295
- desktopModal: boolean | undefined;
296
288
  disabled: boolean | undefined;
297
289
  disableKeyboardHandling: boolean | undefined;
298
290
  error: boolean | undefined;
@@ -381,8 +373,6 @@ export class AuroDropdown extends AuroElement {
381
373
  * @returns {string}
382
374
  */
383
375
  private get focusableEntityQuery();
384
- _bibTabHandler: ((event: any) => void) | undefined;
385
- focusTrap: any;
386
376
  updated(changedProperties: any): void;
387
377
  firstUpdated(): void;
388
378
  dropdownId: any;
@@ -410,27 +400,7 @@ export class AuroDropdown extends AuroElement {
410
400
  * @private
411
401
  */
412
402
  private updateFocusTrap;
413
- /**
414
- * Returns the chain of active (focused) elements through shadow roots.
415
- * @private
416
- * @returns {Array<HTMLElement>}
417
- */
418
- private _getActiveElements;
419
- /**
420
- * Sets `inert` on sibling elements of the dropdown's top-level host
421
- * so that content outside the dropdown is not interactive while the modal is open.
422
- * Walks up through shadow DOM boundaries to find the outermost host element
423
- * in the light DOM, then sets `inert` on siblings at each ancestor level
424
- * to ensure all page content outside the host subtree is inert.
425
- * @private
426
- */
427
- private _setPageInert;
428
- _inertSiblings: any[] | undefined;
429
- /**
430
- * Restores `inert` state on siblings that were made inert by `_setPageInert`.
431
- * @private
432
- */
433
- private _clearPageInert;
403
+ focusTrap: any;
434
404
  /**
435
405
  * Function to support @focusout event.
436
406
  * @private