@aurodesignsystem-dev/auro-formkit 0.0.0-pr1554.8 → 0.0.0-pr1555.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 (45) hide show
  1. package/components/checkbox/demo/customize.min.js +1 -1
  2. package/components/checkbox/demo/getting-started.min.js +1 -1
  3. package/components/checkbox/demo/index.min.js +1 -1
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/customize.min.js +45 -150
  7. package/components/combobox/demo/getting-started.min.js +45 -150
  8. package/components/combobox/demo/index.min.js +45 -150
  9. package/components/combobox/dist/index.js +45 -150
  10. package/components/combobox/dist/registered.js +45 -150
  11. package/components/counter/demo/customize.min.js +6 -47
  12. package/components/counter/demo/index.min.js +6 -47
  13. package/components/counter/dist/index.js +6 -47
  14. package/components/counter/dist/registered.js +6 -47
  15. package/components/datepicker/demo/customize.min.js +20 -89
  16. package/components/datepicker/demo/index.min.js +20 -89
  17. package/components/datepicker/dist/index.js +20 -89
  18. package/components/datepicker/dist/registered.js +20 -89
  19. package/components/dropdown/demo/customize.min.js +5 -46
  20. package/components/dropdown/demo/getting-started.min.js +5 -46
  21. package/components/dropdown/demo/index.min.js +5 -46
  22. package/components/dropdown/dist/auro-dropdown.d.ts +1 -8
  23. package/components/dropdown/dist/index.js +5 -46
  24. package/components/dropdown/dist/registered.js +5 -46
  25. package/components/form/demo/customize.min.js +90 -374
  26. package/components/form/demo/getting-started.min.js +90 -374
  27. package/components/form/demo/index.min.js +90 -374
  28. package/components/form/demo/registerDemoDeps.min.js +90 -374
  29. package/components/input/demo/customize.min.js +11 -39
  30. package/components/input/demo/getting-started.min.js +11 -39
  31. package/components/input/demo/index.min.js +11 -39
  32. package/components/input/dist/index.js +11 -39
  33. package/components/input/dist/registered.js +11 -39
  34. package/components/radio/demo/customize.min.js +1 -1
  35. package/components/radio/demo/getting-started.min.js +1 -1
  36. package/components/radio/demo/index.min.js +1 -1
  37. package/components/radio/dist/index.js +1 -1
  38. package/components/radio/dist/registered.js +1 -1
  39. package/components/select/demo/customize.min.js +6 -47
  40. package/components/select/demo/getting-started.min.js +6 -47
  41. package/components/select/demo/index.min.js +6 -47
  42. package/components/select/dist/index.js +6 -47
  43. package/components/select/dist/registered.js +6 -47
  44. package/custom-elements.json +1504 -1510
  45. package/package.json +1 -1
@@ -10588,10 +10588,9 @@ class DomHandler {
10588
10588
  class BaseInput extends AuroElement {
10589
10589
 
10590
10590
  // Delegate focus to the native <input> inside the shadow root so that
10591
- // clicking anywhere on the input wrapper focuses the native input, and
10592
- // programmatic .focus() calls on elements in the shadow DOM work correctly.
10593
- // The initial-load focus theft was caused by the static `autofocus`
10594
- // attribute on the bib input (now conditional), not by delegatesFocus.
10591
+ // showModal()'s dialog focusing steps reach the input element.
10592
+ // This keeps the mobile virtual keyboard open when the fullscreen dialog
10593
+ // opens, because the browser sees an input-to-input focus transfer.
10595
10594
  static get shadowRootOptions() {
10596
10595
  return {
10597
10596
  ...AuroElement.shadowRootOptions,
@@ -12268,7 +12267,7 @@ class AuroHelpText extends i$3 {
12268
12267
  }
12269
12268
  }
12270
12269
 
12271
- var formkitVersion = '202607160645';
12270
+ var formkitVersion = '202607152222';
12272
12271
 
12273
12272
  /**
12274
12273
  * @license
@@ -12566,42 +12565,15 @@ class AuroInput extends BaseInput {
12566
12565
  * @returns {void}
12567
12566
  */
12568
12567
  checkDisplayValueSlotChange() {
12569
- const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12570
- if (!slot) {
12571
- // Shadow slot not yet rendered — fall back to checking light-DOM
12572
- // children so hasDisplayValueContent isn't stuck false when called
12573
- // before firstUpdated (e.g. from auro-combobox during mount).
12574
- // Check for any element (including custom elements like <auro-icon>
12575
- // that render via shadow DOM with no text content).
12576
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
12577
- this.hasDisplayValueContent = Boolean(lightDomContent && (
12578
- lightDomContent.textContent.trim().length > 0 ||
12579
- lightDomContent.children.length > 0 ||
12580
- lightDomContent.shadowRoot !== null
12581
- ));
12582
- return;
12583
- }
12568
+ // flatten:true resolves through auro-combobox's forwarding slot
12569
+ // (<slot name="displayValue" slot="displayValue">) so a clone appended
12570
+ // directly to auro-input's light DOM alongside the forwarder still
12571
+ // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12572
+ // discarded any siblings past the forwarder.
12573
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12584
12574
  const nodes = slot.assignedNodes({ flatten: true });
12585
12575
 
12586
- // Check for actual visible content, not just node existence.
12587
- // An empty <span slot="displayValue"></span> forwarded from the
12588
- // consumer should not be treated as "has content" — it causes the
12589
- // displayValue wrapper to render (with hasContent class) but show
12590
- // nothing, blocking the combobox's synthetic displayValue from
12591
- // being visible on preset/deeplink load.
12592
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12593
- // treated as content even when they have no text or light-DOM children.
12594
- this.hasDisplayValueContent = nodes.some((node) => {
12595
- if (node.nodeType === Node.TEXT_NODE) {
12596
- return node.textContent.trim().length > 0;
12597
- }
12598
- if (node.nodeType === Node.ELEMENT_NODE) {
12599
- return node.textContent.trim().length > 0 ||
12600
- node.children.length > 0 ||
12601
- node.shadowRoot !== null;
12602
- }
12603
- return false;
12604
- });
12576
+ this.hasDisplayValueContent = nodes.length > 0;
12605
12577
  }
12606
12578
 
12607
12579
  firstUpdated() {
@@ -10588,10 +10588,9 @@ class DomHandler {
10588
10588
  class BaseInput extends AuroElement {
10589
10589
 
10590
10590
  // Delegate focus to the native <input> inside the shadow root so that
10591
- // clicking anywhere on the input wrapper focuses the native input, and
10592
- // programmatic .focus() calls on elements in the shadow DOM work correctly.
10593
- // The initial-load focus theft was caused by the static `autofocus`
10594
- // attribute on the bib input (now conditional), not by delegatesFocus.
10591
+ // showModal()'s dialog focusing steps reach the input element.
10592
+ // This keeps the mobile virtual keyboard open when the fullscreen dialog
10593
+ // opens, because the browser sees an input-to-input focus transfer.
10595
10594
  static get shadowRootOptions() {
10596
10595
  return {
10597
10596
  ...AuroElement.shadowRootOptions,
@@ -12268,7 +12267,7 @@ class AuroHelpText extends i$3 {
12268
12267
  }
12269
12268
  }
12270
12269
 
12271
- var formkitVersion = '202607160645';
12270
+ var formkitVersion = '202607152222';
12272
12271
 
12273
12272
  /**
12274
12273
  * @license
@@ -12566,42 +12565,15 @@ class AuroInput extends BaseInput {
12566
12565
  * @returns {void}
12567
12566
  */
12568
12567
  checkDisplayValueSlotChange() {
12569
- const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12570
- if (!slot) {
12571
- // Shadow slot not yet rendered — fall back to checking light-DOM
12572
- // children so hasDisplayValueContent isn't stuck false when called
12573
- // before firstUpdated (e.g. from auro-combobox during mount).
12574
- // Check for any element (including custom elements like <auro-icon>
12575
- // that render via shadow DOM with no text content).
12576
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
12577
- this.hasDisplayValueContent = Boolean(lightDomContent && (
12578
- lightDomContent.textContent.trim().length > 0 ||
12579
- lightDomContent.children.length > 0 ||
12580
- lightDomContent.shadowRoot !== null
12581
- ));
12582
- return;
12583
- }
12568
+ // flatten:true resolves through auro-combobox's forwarding slot
12569
+ // (<slot name="displayValue" slot="displayValue">) so a clone appended
12570
+ // directly to auro-input's light DOM alongside the forwarder still
12571
+ // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12572
+ // discarded any siblings past the forwarder.
12573
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12584
12574
  const nodes = slot.assignedNodes({ flatten: true });
12585
12575
 
12586
- // Check for actual visible content, not just node existence.
12587
- // An empty <span slot="displayValue"></span> forwarded from the
12588
- // consumer should not be treated as "has content" — it causes the
12589
- // displayValue wrapper to render (with hasContent class) but show
12590
- // nothing, blocking the combobox's synthetic displayValue from
12591
- // being visible on preset/deeplink load.
12592
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12593
- // treated as content even when they have no text or light-DOM children.
12594
- this.hasDisplayValueContent = nodes.some((node) => {
12595
- if (node.nodeType === Node.TEXT_NODE) {
12596
- return node.textContent.trim().length > 0;
12597
- }
12598
- if (node.nodeType === Node.ELEMENT_NODE) {
12599
- return node.textContent.trim().length > 0 ||
12600
- node.children.length > 0 ||
12601
- node.shadowRoot !== null;
12602
- }
12603
- return false;
12604
- });
12576
+ this.hasDisplayValueContent = nodes.length > 0;
12605
12577
  }
12606
12578
 
12607
12579
  firstUpdated() {
@@ -10588,10 +10588,9 @@ class DomHandler {
10588
10588
  class BaseInput extends AuroElement {
10589
10589
 
10590
10590
  // Delegate focus to the native <input> inside the shadow root so that
10591
- // clicking anywhere on the input wrapper focuses the native input, and
10592
- // programmatic .focus() calls on elements in the shadow DOM work correctly.
10593
- // The initial-load focus theft was caused by the static `autofocus`
10594
- // attribute on the bib input (now conditional), not by delegatesFocus.
10591
+ // showModal()'s dialog focusing steps reach the input element.
10592
+ // This keeps the mobile virtual keyboard open when the fullscreen dialog
10593
+ // opens, because the browser sees an input-to-input focus transfer.
10595
10594
  static get shadowRootOptions() {
10596
10595
  return {
10597
10596
  ...AuroElement.shadowRootOptions,
@@ -12268,7 +12267,7 @@ class AuroHelpText extends i$3 {
12268
12267
  }
12269
12268
  }
12270
12269
 
12271
- var formkitVersion = '202607160645';
12270
+ var formkitVersion = '202607152222';
12272
12271
 
12273
12272
  /**
12274
12273
  * @license
@@ -12566,42 +12565,15 @@ class AuroInput extends BaseInput {
12566
12565
  * @returns {void}
12567
12566
  */
12568
12567
  checkDisplayValueSlotChange() {
12569
- const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12570
- if (!slot) {
12571
- // Shadow slot not yet rendered — fall back to checking light-DOM
12572
- // children so hasDisplayValueContent isn't stuck false when called
12573
- // before firstUpdated (e.g. from auro-combobox during mount).
12574
- // Check for any element (including custom elements like <auro-icon>
12575
- // that render via shadow DOM with no text content).
12576
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
12577
- this.hasDisplayValueContent = Boolean(lightDomContent && (
12578
- lightDomContent.textContent.trim().length > 0 ||
12579
- lightDomContent.children.length > 0 ||
12580
- lightDomContent.shadowRoot !== null
12581
- ));
12582
- return;
12583
- }
12568
+ // flatten:true resolves through auro-combobox's forwarding slot
12569
+ // (<slot name="displayValue" slot="displayValue">) so a clone appended
12570
+ // directly to auro-input's light DOM alongside the forwarder still
12571
+ // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12572
+ // discarded any siblings past the forwarder.
12573
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12584
12574
  const nodes = slot.assignedNodes({ flatten: true });
12585
12575
 
12586
- // Check for actual visible content, not just node existence.
12587
- // An empty <span slot="displayValue"></span> forwarded from the
12588
- // consumer should not be treated as "has content" — it causes the
12589
- // displayValue wrapper to render (with hasContent class) but show
12590
- // nothing, blocking the combobox's synthetic displayValue from
12591
- // being visible on preset/deeplink load.
12592
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12593
- // treated as content even when they have no text or light-DOM children.
12594
- this.hasDisplayValueContent = nodes.some((node) => {
12595
- if (node.nodeType === Node.TEXT_NODE) {
12596
- return node.textContent.trim().length > 0;
12597
- }
12598
- if (node.nodeType === Node.ELEMENT_NODE) {
12599
- return node.textContent.trim().length > 0 ||
12600
- node.children.length > 0 ||
12601
- node.shadowRoot !== null;
12602
- }
12603
- return false;
12604
- });
12576
+ this.hasDisplayValueContent = nodes.length > 0;
12605
12577
  }
12606
12578
 
12607
12579
  firstUpdated() {
@@ -10530,10 +10530,9 @@ class DomHandler {
10530
10530
  class BaseInput extends AuroElement {
10531
10531
 
10532
10532
  // Delegate focus to the native <input> inside the shadow root so that
10533
- // clicking anywhere on the input wrapper focuses the native input, and
10534
- // programmatic .focus() calls on elements in the shadow DOM work correctly.
10535
- // The initial-load focus theft was caused by the static `autofocus`
10536
- // attribute on the bib input (now conditional), not by delegatesFocus.
10533
+ // showModal()'s dialog focusing steps reach the input element.
10534
+ // This keeps the mobile virtual keyboard open when the fullscreen dialog
10535
+ // opens, because the browser sees an input-to-input focus transfer.
10537
10536
  static get shadowRootOptions() {
10538
10537
  return {
10539
10538
  ...AuroElement.shadowRootOptions,
@@ -12210,7 +12209,7 @@ class AuroHelpText extends LitElement {
12210
12209
  }
12211
12210
  }
12212
12211
 
12213
- var formkitVersion = '202607160645';
12212
+ var formkitVersion = '202607152222';
12214
12213
 
12215
12214
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12216
12215
  // See LICENSE in the project root for license information.
@@ -12496,42 +12495,15 @@ class AuroInput extends BaseInput {
12496
12495
  * @returns {void}
12497
12496
  */
12498
12497
  checkDisplayValueSlotChange() {
12499
- const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12500
- if (!slot) {
12501
- // Shadow slot not yet rendered — fall back to checking light-DOM
12502
- // children so hasDisplayValueContent isn't stuck false when called
12503
- // before firstUpdated (e.g. from auro-combobox during mount).
12504
- // Check for any element (including custom elements like <auro-icon>
12505
- // that render via shadow DOM with no text content).
12506
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
12507
- this.hasDisplayValueContent = Boolean(lightDomContent && (
12508
- lightDomContent.textContent.trim().length > 0 ||
12509
- lightDomContent.children.length > 0 ||
12510
- lightDomContent.shadowRoot !== null
12511
- ));
12512
- return;
12513
- }
12498
+ // flatten:true resolves through auro-combobox's forwarding slot
12499
+ // (<slot name="displayValue" slot="displayValue">) so a clone appended
12500
+ // directly to auro-input's light DOM alongside the forwarder still
12501
+ // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12502
+ // discarded any siblings past the forwarder.
12503
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12514
12504
  const nodes = slot.assignedNodes({ flatten: true });
12515
12505
 
12516
- // Check for actual visible content, not just node existence.
12517
- // An empty <span slot="displayValue"></span> forwarded from the
12518
- // consumer should not be treated as "has content" — it causes the
12519
- // displayValue wrapper to render (with hasContent class) but show
12520
- // nothing, blocking the combobox's synthetic displayValue from
12521
- // being visible on preset/deeplink load.
12522
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12523
- // treated as content even when they have no text or light-DOM children.
12524
- this.hasDisplayValueContent = nodes.some((node) => {
12525
- if (node.nodeType === Node.TEXT_NODE) {
12526
- return node.textContent.trim().length > 0;
12527
- }
12528
- if (node.nodeType === Node.ELEMENT_NODE) {
12529
- return node.textContent.trim().length > 0 ||
12530
- node.children.length > 0 ||
12531
- node.shadowRoot !== null;
12532
- }
12533
- return false;
12534
- });
12506
+ this.hasDisplayValueContent = nodes.length > 0;
12535
12507
  }
12536
12508
 
12537
12509
  firstUpdated() {
@@ -10530,10 +10530,9 @@ class DomHandler {
10530
10530
  class BaseInput extends AuroElement {
10531
10531
 
10532
10532
  // Delegate focus to the native <input> inside the shadow root so that
10533
- // clicking anywhere on the input wrapper focuses the native input, and
10534
- // programmatic .focus() calls on elements in the shadow DOM work correctly.
10535
- // The initial-load focus theft was caused by the static `autofocus`
10536
- // attribute on the bib input (now conditional), not by delegatesFocus.
10533
+ // showModal()'s dialog focusing steps reach the input element.
10534
+ // This keeps the mobile virtual keyboard open when the fullscreen dialog
10535
+ // opens, because the browser sees an input-to-input focus transfer.
10537
10536
  static get shadowRootOptions() {
10538
10537
  return {
10539
10538
  ...AuroElement.shadowRootOptions,
@@ -12210,7 +12209,7 @@ class AuroHelpText extends LitElement {
12210
12209
  }
12211
12210
  }
12212
12211
 
12213
- var formkitVersion = '202607160645';
12212
+ var formkitVersion = '202607152222';
12214
12213
 
12215
12214
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12216
12215
  // See LICENSE in the project root for license information.
@@ -12496,42 +12495,15 @@ class AuroInput extends BaseInput {
12496
12495
  * @returns {void}
12497
12496
  */
12498
12497
  checkDisplayValueSlotChange() {
12499
- const slot = this.shadowRoot?.querySelector('slot[name="displayValue"]');
12500
- if (!slot) {
12501
- // Shadow slot not yet rendered — fall back to checking light-DOM
12502
- // children so hasDisplayValueContent isn't stuck false when called
12503
- // before firstUpdated (e.g. from auro-combobox during mount).
12504
- // Check for any element (including custom elements like <auro-icon>
12505
- // that render via shadow DOM with no text content).
12506
- const lightDomContent = this.querySelector('[slot="displayValue"]:not(slot)');
12507
- this.hasDisplayValueContent = Boolean(lightDomContent && (
12508
- lightDomContent.textContent.trim().length > 0 ||
12509
- lightDomContent.children.length > 0 ||
12510
- lightDomContent.shadowRoot !== null
12511
- ));
12512
- return;
12513
- }
12498
+ // flatten:true resolves through auro-combobox's forwarding slot
12499
+ // (<slot name="displayValue" slot="displayValue">) so a clone appended
12500
+ // directly to auro-input's light DOM alongside the forwarder still
12501
+ // counts as content. The prior nodes[0].tagName === 'SLOT' recursion
12502
+ // discarded any siblings past the forwarder.
12503
+ const slot = this.shadowRoot.querySelector('slot[name="displayValue"]');
12514
12504
  const nodes = slot.assignedNodes({ flatten: true });
12515
12505
 
12516
- // Check for actual visible content, not just node existence.
12517
- // An empty <span slot="displayValue"></span> forwarded from the
12518
- // consumer should not be treated as "has content" — it causes the
12519
- // displayValue wrapper to render (with hasContent class) but show
12520
- // nothing, blocking the combobox's synthetic displayValue from
12521
- // being visible on preset/deeplink load.
12522
- // Custom elements (e.g. <auro-icon>) that render via shadow DOM are
12523
- // treated as content even when they have no text or light-DOM children.
12524
- this.hasDisplayValueContent = nodes.some((node) => {
12525
- if (node.nodeType === Node.TEXT_NODE) {
12526
- return node.textContent.trim().length > 0;
12527
- }
12528
- if (node.nodeType === Node.ELEMENT_NODE) {
12529
- return node.textContent.trim().length > 0 ||
12530
- node.children.length > 0 ||
12531
- node.shadowRoot !== null;
12532
- }
12533
- return false;
12534
- });
12506
+ this.hasDisplayValueContent = nodes.length > 0;
12535
12507
  }
12536
12508
 
12537
12509
  firstUpdated() {
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
1227
1227
  }
1228
1228
  }
1229
1229
 
1230
- var formkitVersion = '202607160645';
1230
+ var formkitVersion = '202607152222';
1231
1231
 
1232
1232
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1233
1233
  // See LICENSE in the project root for license information.
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
1227
1227
  }
1228
1228
  }
1229
1229
 
1230
- var formkitVersion = '202607160645';
1230
+ var formkitVersion = '202607152222';
1231
1231
 
1232
1232
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1233
1233
  // See LICENSE in the project root for license information.
@@ -1227,7 +1227,7 @@ class AuroHelpText extends i$2 {
1227
1227
  }
1228
1228
  }
1229
1229
 
1230
- var formkitVersion = '202607160645';
1230
+ var formkitVersion = '202607152222';
1231
1231
 
1232
1232
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1233
1233
  // See LICENSE in the project root for license information.
@@ -1166,7 +1166,7 @@ class AuroHelpText extends LitElement {
1166
1166
  }
1167
1167
  }
1168
1168
 
1169
- var formkitVersion = '202607160645';
1169
+ var formkitVersion = '202607152222';
1170
1170
 
1171
1171
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1172
1172
  // See LICENSE in the project root for license information.
@@ -1166,7 +1166,7 @@ class AuroHelpText extends LitElement {
1166
1166
  }
1167
1167
  }
1168
1168
 
1169
- var formkitVersion = '202607160645';
1169
+ var formkitVersion = '202607152222';
1170
1170
 
1171
1171
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
1172
1172
  // See LICENSE in the project root for license information.
@@ -4830,7 +4830,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
4830
4830
  }
4831
4831
  };
4832
4832
 
4833
- var formkitVersion$1 = '202607160645';
4833
+ var formkitVersion$1 = '202607152222';
4834
4834
 
4835
4835
  class AuroElement extends i$2 {
4836
4836
  static get properties() {
@@ -4959,6 +4959,7 @@ class AuroDropdown extends AuroElement {
4959
4959
  static get shadowRootOptions() {
4960
4960
  return {
4961
4961
  ...AuroElement.shadowRootOptions,
4962
+ delegatesFocus: true,
4962
4963
  };
4963
4964
  }
4964
4965
 
@@ -5125,47 +5126,7 @@ class AuroDropdown extends AuroElement {
5125
5126
  focusables[0].focus();
5126
5127
  }
5127
5128
  } else {
5128
- this.focusTrigger();
5129
- }
5130
- }
5131
-
5132
- /**
5133
- * Focus the trigger content. When the trigger wrapper itself is focusable
5134
- * (has tabindex), focus it directly. Otherwise, focus the first focusable
5135
- * element slotted into the trigger slot (e.g. the auro-input).
5136
- * @private
5137
- */
5138
- focusTrigger() {
5139
- if (this.trigger.hasAttribute('tabindex')) {
5140
5129
  this.trigger.focus();
5141
- } else {
5142
- // Slotted content isn't a DOM child of the trigger div, so
5143
- // getFocusableElements can't find it. Query assigned nodes directly.
5144
- const slot = this.trigger.querySelector('slot[name="trigger"]');
5145
- if (slot) {
5146
- const assigned = slot.assignedElements();
5147
- for (const el of assigned) {
5148
- if (el.hasAttribute('disabled')) {
5149
- continue;
5150
- }
5151
- // Try finding a focusable descendant first (handles non-focusable
5152
- // wrappers like <div> containing a <button>). If none found, try
5153
- // focusing the element directly (works for custom elements like
5154
- // auro-input that have delegatesFocus or a custom focus() method).
5155
- const descendants = getFocusableElements(el);
5156
- if (descendants.length > 0) {
5157
- descendants[0].focus();
5158
- return;
5159
- }
5160
- el.focus();
5161
- return;
5162
- }
5163
- }
5164
- // Fallback: try DOM children (non-slotted content)
5165
- const focusables = getFocusableElements(this.trigger);
5166
- if (focusables.length > 0) {
5167
- focusables[0].focus();
5168
- }
5169
5130
  }
5170
5131
  }
5171
5132
 
@@ -5619,16 +5580,14 @@ class AuroDropdown extends AuroElement {
5619
5580
 
5620
5581
  const eventType = event.detail.eventType || "unknown";
5621
5582
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
5622
- this.focusTrigger();
5583
+ this.trigger.focus();
5623
5584
  }
5624
5585
 
5625
5586
 
5626
5587
  // On Tab-driven close (eventType "focusloss"), let focus advance naturally
5627
5588
  // — restoring to the trigger would trap the user on this dropdown, forcing
5628
5589
  // an extra Tab to move on. Escape and outside-click still restore.
5629
- // When noHideOnThisFocusLoss is true, the consumer (e.g. combobox) manages
5630
- // its own focus restoration — skip the generic trigger focus to avoid races.
5631
- if (!this.isPopoverVisible && eventType !== "focusloss" && !this.noHideOnThisFocusLoss) {
5590
+ if (!this.isPopoverVisible && eventType !== "focusloss") {
5632
5591
  // wait til the bib gets fully closed and rendered
5633
5592
  setTimeout(() => {
5634
5593
  // Skip if the bib re-opened, or if focus moved intentionally outside the dropdown (not to body).
@@ -5640,7 +5599,7 @@ class AuroDropdown extends AuroElement {
5640
5599
  return;
5641
5600
  }
5642
5601
  // Restore focus to the trigger.
5643
- this.focusTrigger();
5602
+ this.trigger.focus();
5644
5603
  });
5645
5604
  }
5646
5605
  }
@@ -6914,7 +6873,7 @@ class AuroHelpText extends i$2 {
6914
6873
  }
6915
6874
  }
6916
6875
 
6917
- var formkitVersion = '202607160645';
6876
+ var formkitVersion = '202607152222';
6918
6877
 
6919
6878
  var styleCss$2 = i$5`.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}`;
6920
6879