@aurodesignsystem-dev/auro-formkit 0.0.0-pr1408.14 → 0.0.0-pr1408.16

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 (54) hide show
  1. package/components/checkbox/demo/api.min.js +1 -1
  2. package/components/checkbox/demo/index.min.js +1 -1
  3. package/components/checkbox/demo/keyboardBehavior.md +0 -0
  4. package/components/checkbox/dist/index.js +1 -1
  5. package/components/checkbox/dist/registered.js +1 -1
  6. package/components/combobox/demo/api.min.js +139 -142
  7. package/components/combobox/demo/index.min.js +139 -142
  8. package/components/combobox/demo/keyboardBehavior.md +1 -2
  9. package/components/combobox/dist/index.js +105 -115
  10. package/components/combobox/dist/registered.js +105 -115
  11. package/components/counter/demo/api.md +1 -1
  12. package/components/counter/demo/api.min.js +202 -146
  13. package/components/counter/demo/index.min.js +202 -146
  14. package/components/counter/dist/auro-counter.d.ts +11 -8
  15. package/components/counter/dist/index.js +202 -146
  16. package/components/counter/dist/keyboardStrategy.d.ts +4 -0
  17. package/components/counter/dist/registered.js +202 -146
  18. package/components/datepicker/demo/api.min.js +107 -118
  19. package/components/datepicker/demo/index.min.js +107 -118
  20. package/components/datepicker/dist/index.js +102 -113
  21. package/components/datepicker/dist/registered.js +102 -113
  22. package/components/dropdown/demo/api.md +29 -29
  23. package/components/dropdown/demo/api.min.js +117 -121
  24. package/components/dropdown/demo/index.min.js +117 -121
  25. package/components/dropdown/dist/auro-dropdown.d.ts +3 -3
  26. package/components/dropdown/dist/auro-dropdownBib.d.ts +1 -40
  27. package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +7 -0
  28. package/components/dropdown/dist/index.js +101 -109
  29. package/components/dropdown/dist/registered.js +101 -109
  30. package/components/form/demo/api.min.js +629 -544
  31. package/components/form/demo/index.min.js +629 -544
  32. package/components/form/demo/keyboardBehavior.md +0 -0
  33. package/components/input/demo/api.min.js +1 -1
  34. package/components/input/demo/index.min.js +1 -1
  35. package/components/input/demo/keyboardBehavior.md +0 -0
  36. package/components/input/dist/index.js +1 -1
  37. package/components/input/dist/registered.js +1 -1
  38. package/components/menu/demo/api.min.js +34 -27
  39. package/components/menu/demo/index.min.js +34 -27
  40. package/components/menu/dist/auro-menu.d.ts +0 -6
  41. package/components/menu/dist/index.js +34 -27
  42. package/components/menu/dist/registered.js +34 -27
  43. package/components/radio/demo/api.min.js +1 -1
  44. package/components/radio/demo/index.min.js +1 -1
  45. package/components/radio/dist/index.js +1 -1
  46. package/components/radio/dist/registered.js +1 -1
  47. package/components/select/demo/api.min.js +214 -164
  48. package/components/select/demo/index.min.js +214 -164
  49. package/components/select/demo/keyboardBehavior.md +3 -3
  50. package/components/select/dist/index.js +180 -137
  51. package/components/select/dist/registered.js +180 -137
  52. package/components/select/dist/selectKeyboardStrategy.d.ts +5 -2
  53. package/custom-elements.json +1518 -1481
  54. package/package.json +8 -6
@@ -4,9 +4,9 @@ import { html, css, LitElement } from 'lit';
4
4
  import { property } from 'lit/decorators.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import { createRef, ref } from 'lit/directives/ref.js';
7
- import { repeat } from 'lit/directives/repeat.js';
8
7
  import 'lit-html';
9
8
  import 'lit-html/directives/unsafe-html.js';
9
+ import { repeat } from 'lit/directives/repeat.js';
10
10
 
11
11
  let DateFormatter$1 = class DateFormatter {
12
12
 
@@ -9242,7 +9242,7 @@ class AuroBibtemplate extends LitElement {
9242
9242
  }
9243
9243
  }
9244
9244
 
9245
- var formkitVersion$2 = '202603310525';
9245
+ var formkitVersion$2 = '202604022013';
9246
9246
 
9247
9247
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
9248
9248
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .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, 450);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, 450);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, .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, .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, .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, .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, .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, .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(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -11507,6 +11507,11 @@ class AuroFloatingUI {
11507
11507
  this.clickHandler = null;
11508
11508
  this.keyDownHandler = null;
11509
11509
 
11510
+ /**
11511
+ * @private
11512
+ */
11513
+ this.enableKeyboardHandling = true;
11514
+
11510
11515
  /**
11511
11516
  * @private
11512
11517
  */
@@ -11767,11 +11772,10 @@ class AuroFloatingUI {
11767
11772
  return;
11768
11773
  }
11769
11774
 
11770
- const { activeElement } = document;
11771
11775
  // if focus is still inside of trigger or bib, do not close
11772
11776
  if (
11773
- this.element.contains(activeElement) ||
11774
- this.element.bib?.contains(activeElement)
11777
+ this.element.matches(":focus") ||
11778
+ this.element.matches(":focus-within")
11775
11779
  ) {
11776
11780
  return;
11777
11781
  }
@@ -11842,7 +11846,9 @@ class AuroFloatingUI {
11842
11846
  document.addEventListener("focusin", this.focusHandler);
11843
11847
  }
11844
11848
 
11845
- document.addEventListener("keydown", this.keyDownHandler);
11849
+ if (this.enableKeyboardHandling) {
11850
+ document.addEventListener("keydown", this.keyDownHandler);
11851
+ }
11846
11852
 
11847
11853
  // send this task to the end of queue to prevent conflicting
11848
11854
  // it conflicts if showBib gets call from a button that's not this.element.trigger
@@ -12098,8 +12104,9 @@ class AuroFloatingUI {
12098
12104
  this.element.bib.setAttribute("id", `${this.id}-floater-bib`);
12099
12105
  }
12100
12106
 
12101
- configure(elem, eventPrefix) {
12107
+ configure(elem, eventPrefix, enableKeyboardHandling = true) {
12102
12108
  AuroFloatingUI.setupMousePressChecker();
12109
+ this.enableKeyboardHandling = enableKeyboardHandling;
12103
12110
 
12104
12111
  this.eventPrefix = eventPrefix;
12105
12112
  if (this.element !== elem) {
@@ -12132,7 +12139,9 @@ class AuroFloatingUI {
12132
12139
 
12133
12140
  this.handleEvent = this.handleEvent.bind(this);
12134
12141
  if (this.element.trigger) {
12135
- this.element.trigger.addEventListener("keydown", this.handleEvent);
12142
+ if (this.enableKeyboardHandling) {
12143
+ this.element.trigger.addEventListener("keydown", this.handleEvent);
12144
+ }
12136
12145
  this.element.trigger.addEventListener("click", this.handleEvent);
12137
12146
  this.element.trigger.addEventListener("mouseenter", this.handleEvent);
12138
12147
  this.element.trigger.addEventListener("mouseleave", this.handleEvent);
@@ -12610,12 +12619,83 @@ let p$3 = class p{registerComponent(t,a){customElements.get(t)||customElements.d
12610
12619
 
12611
12620
  var iconVersion$2 = '9.1.2';
12612
12621
 
12622
+ /**
12623
+ * Computes display state once per keydown event.
12624
+ * Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
12625
+ *
12626
+ * @param {HTMLElement} component - The component with a dropdown reference.
12627
+ * @param {Object} [options] - Optional config.
12628
+ * @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
12629
+ * @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
12630
+ * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
12631
+ * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
12632
+ */
12633
+ function createDisplayContext$1(component, options = {}) {
12634
+ const dd = options.dropdown || component.dropdown;
12635
+ // isPopoverVisible reflects as the `open` attribute.
12636
+ // It reports whether the bib is open in any mode (popover or modal).
12637
+ const isExpanded = Boolean(dd && dd.isPopoverVisible);
12638
+ const isFullscreen = Boolean(dd && dd.isBibFullscreen);
12639
+
12640
+ const ctx = {
12641
+ isExpanded,
12642
+ isModal: isFullscreen,
12643
+ isPopover: !isFullscreen,
12644
+ activeInput: null,
12645
+ };
12646
+
12647
+ if (options.inputResolver) {
12648
+ const resolvedInput = options.inputResolver(component, ctx);
12649
+ // Guard against resolvers returning undefined or non-HTMLElement values.
12650
+ ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
12651
+ }
12652
+
12653
+ return ctx;
12654
+ }
12655
+
12656
+ /**
12657
+ * Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
12658
+ * Handles both sync and async handlers.
12659
+ * @param {HTMLElement} component - The component to attach the listener to.
12660
+ * @param {Object} strategy - Map of key names to handler functions.
12661
+ * @param {Object} [options] - Optional config passed to createDisplayContext.
12662
+ */
12663
+ function applyKeyboardStrategy$1(component, strategy, options = {}) {
12664
+ component.addEventListener('keydown', async (evt) => {
12665
+ const handler = strategy[evt.key] || strategy.default;
12666
+ if (typeof handler === 'function') {
12667
+ const ctx = createDisplayContext$1(component, options);
12668
+ await handler(component, evt, ctx);
12669
+ }
12670
+ });
12671
+ }
12672
+
12613
12673
  var styleCss$2$1 = css`: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}`;
12614
12674
 
12615
12675
  var colorCss$2 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
12616
12676
 
12617
12677
  var tokensCss$1$1 = css`:host(:not([ondark])),:host(:not([appearance=inverse])){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-muted, #676767);--ds-auro-dropdown-trigger-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-hover-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-bold, #585e67);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-dropdown-label-text-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db);--ds-auro-dropdown-trigger-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-hover-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdown-trigger-border-color: var(--ds-basic-color-border-inverse, #ffffff);--ds-auro-dropdown-trigger-outline-color: transparent;--ds-auro-dropdown-trigger-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-dropdownbib-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-background-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-container-color: var(--ds-advanced-color-shared-background-inverse, rgba(255, 255, 255, 0.15));--ds-auro-dropdownbib-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}`;
12618
12678
 
12679
+ /**
12680
+ * Creates a keyboard strategy for dialog-specific key handling.
12681
+ * All other keydown behavior is left to the browser's native bubbling path.
12682
+ * @param {HTMLElement} bib - The dropdown bib element.
12683
+ * @returns {Object} Keyboard handlers keyed by `event.key`.
12684
+ */
12685
+ // eslint-disable-next-line no-unused-vars
12686
+ function createDropdownBibKeyboardStrategy(bib) {
12687
+ return {
12688
+ // eslint-disable-next-line no-unused-vars
12689
+ Enter(_dialog, event) {
12690
+ // Floating UI handles Enter key to open the dropdown
12691
+ },
12692
+ // eslint-disable-next-line no-unused-vars
12693
+ Escape(_dialog, event) {
12694
+ // Floating UI handles Escape key to close the dropdown
12695
+ }
12696
+ };
12697
+ }
12698
+
12619
12699
  // Copyright (c) 2020 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
12620
12700
  // See LICENSE in the project root for license information.
12621
12701
  /* eslint-disable max-lines */
@@ -12740,11 +12820,7 @@ class AuroDropdownBib extends LitElement {
12740
12820
  },
12741
12821
 
12742
12822
  /**
12743
- * Set by auro-dropdown when a menu option is highlighted via
12744
- * aria-activedescendant. The dialog keyboard bridge checks this
12745
- * flag so that Enter selects the highlighted option instead of
12746
- * activating the focused interactive element (e.g. the trigger
12747
- * button, or the bibtemplate close button in fullscreen).
12823
+ * Tracks whether a menu option is currently highlighted.
12748
12824
  * @private
12749
12825
  */
12750
12826
  hasActiveDescendant: {
@@ -12818,7 +12894,7 @@ class AuroDropdownBib extends LitElement {
12818
12894
 
12819
12895
  const dialog = this.shadowRoot.querySelector('dialog');
12820
12896
  this._setupCancelHandler(dialog);
12821
- this._setupKeyboardBridge(dialog);
12897
+ applyKeyboardStrategy$1(dialog, createDropdownBibKeyboardStrategy());
12822
12898
 
12823
12899
  this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
12824
12900
  bubbles: true,
@@ -12845,92 +12921,6 @@ class AuroDropdownBib extends LitElement {
12845
12921
  });
12846
12922
  }
12847
12923
 
12848
- /**
12849
- * showModal() creates a closed focus scope — keyboard events inside
12850
- * the dialog's shadow DOM do NOT bubble out to the combobox/select
12851
- * keydown handlers in the parent shadow DOM. This handler bridges
12852
- * that gap by re-dispatching navigation keys so they cross the
12853
- * shadow boundary and reach the menu navigation logic in the parent
12854
- * component.
12855
- *
12856
- * The trade-off: intercepting these keys means native keyboard
12857
- * behaviors that would normally "just work" must be manually
12858
- * re-implemented here:
12859
- *
12860
- * - Enter on buttons: Custom elements (auro-button) don't get the
12861
- * native Enter→click that <button> provides, so we call .click()
12862
- * directly when Enter is pressed on a button-like element.
12863
- *
12864
- * - Tab: Intercepted and re-dispatched so parent components
12865
- * (select/combobox) can select the active option and close the
12866
- * dialog. The <dialog> provides containment and isolation
12867
- * (inert background, VoiceOver focus trapping, top layer), while
12868
- * the content inside is a role="listbox" navigated via
12869
- * aria-activedescendant (options are not focusable). Tab keyboard
12870
- * behavior follows listbox conventions (select + close) because
12871
- * the dialog's native Tab trap only cycles between the close
12872
- * button and browser chrome.
12873
- *
12874
- * - Escape: The native <dialog> fires a `cancel` event on ESC
12875
- * (handled by _setupCancelHandler), so the re-dispatched Escape
12876
- * is a secondary path for parent components that also listen for
12877
- * Escape keydown.
12878
- *
12879
- * @param {HTMLDialogElement} dialog - The dialog element to attach the keyboard bridge to.
12880
- * @private
12881
- */
12882
- _setupKeyboardBridge(dialog) {
12883
- const navKeys = new Set([
12884
- 'ArrowUp',
12885
- 'ArrowDown',
12886
- 'Enter',
12887
- 'Escape',
12888
- 'Tab'
12889
- ]);
12890
-
12891
- dialog.addEventListener('keydown', (event) => {
12892
- if (!navKeys.has(event.key)) {
12893
- return;
12894
- }
12895
-
12896
- // Custom elements (auro-button) don't get the native Enter→click
12897
- // behavior that <button> has. Find the button in the composed path
12898
- // and click it directly — but only when no menu option is
12899
- // highlighted. In fullscreen mode focus stays on the close button
12900
- // while arrow keys move the active-descendant highlight through
12901
- // the listbox. If the user presses Enter with an option
12902
- // highlighted, the intent is to select that option, not to click
12903
- // the close button. In that case we fall through and bridge the
12904
- // Enter key to the parent component's keyboard strategy.
12905
- if (event.key === 'Enter') {
12906
- if (!this.hasActiveDescendant) {
12907
- const buttonSelector = 'button, [role="button"], auro-button, [auro-button]';
12908
- const btn = event.composedPath().find((el) => el.matches && el.matches(buttonSelector));
12909
- if (btn) {
12910
- event.preventDefault();
12911
- event.stopPropagation();
12912
- btn.click();
12913
- return;
12914
- }
12915
- }
12916
- }
12917
-
12918
- event.preventDefault();
12919
- event.stopPropagation();
12920
- const newEvent = new KeyboardEvent('keydown', {
12921
- key: event.key,
12922
- code: event.code,
12923
- shiftKey: event.shiftKey,
12924
- altKey: event.altKey,
12925
- ctrlKey: event.ctrlKey,
12926
- metaKey: event.metaKey,
12927
- bubbles: true,
12928
- composed: true,
12929
- cancelable: true
12930
- });
12931
- this.dispatchEvent(newEvent);
12932
- });
12933
- }
12934
12924
 
12935
12925
  /**
12936
12926
  * Blocks touch-driven page scroll while a fullscreen modal dialog is open.
@@ -13305,7 +13295,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
13305
13295
  }
13306
13296
  };
13307
13297
 
13308
- var formkitVersion$1 = '202603310525';
13298
+ var formkitVersion$1 = '202604022013';
13309
13299
 
13310
13300
  let AuroElement$2 = class AuroElement extends LitElement {
13311
13301
  static get properties() {
@@ -13486,7 +13476,7 @@ class AuroDropdown extends AuroElement$2 {
13486
13476
  this.appearance = 'default';
13487
13477
  this.chevron = false;
13488
13478
  this.disabled = false;
13489
- this.disableFocusTrap = false;
13479
+ this.disableKeyboardHandling = false;
13490
13480
  this.error = false;
13491
13481
  this.tabIndex = 0;
13492
13482
  this.noToggle = false;
@@ -13584,9 +13574,8 @@ class AuroDropdown extends AuroElement$2 {
13584
13574
  // showModal() fires asynchronously via Lit's update cycle, which
13585
13575
  // falls outside the user activation window and causes iOS to
13586
13576
  // dismiss the keyboard.
13587
- if (this.isBibFullscreen && this.bibElement && this.bibElement.value) {
13588
- const useModal = !this.disableFocusTrap;
13589
- this.bibElement.value.open(useModal);
13577
+ if (this.bibElement && this.bibElement.value) {
13578
+ this.bibElement.value.open(this.isBibFullscreen);
13590
13579
  }
13591
13580
  }
13592
13581
 
@@ -13700,9 +13689,9 @@ class AuroDropdown extends AuroElement$2 {
13700
13689
  },
13701
13690
 
13702
13691
  /**
13703
- * If declared, the focus trap inside of bib will be turned off.
13692
+ * If declared, the dropdown will not handle keyboard events and will require the consumer to manage this behavior.
13704
13693
  */
13705
- disableFocusTrap: {
13694
+ disableKeyboardHandling: {
13706
13695
  type: Boolean,
13707
13696
  reflect: true
13708
13697
  },
@@ -13980,7 +13969,7 @@ class AuroDropdown extends AuroElement$2 {
13980
13969
  if (this.isPopoverVisible) {
13981
13970
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
13982
13971
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
13983
- const useModal = this.isBibFullscreen && !this.disableFocusTrap;
13972
+ const useModal = this.isBibFullscreen;
13984
13973
  this.bibElement.value.open(useModal);
13985
13974
  } else {
13986
13975
  this.bibElement.value.close();
@@ -13990,7 +13979,7 @@ class AuroDropdown extends AuroElement$2 {
13990
13979
  // When fullscreen strategy changes while open, re-open dialog with correct mode
13991
13980
  // (e.g. resizing from desktop → mobile while dropdown is open)
13992
13981
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
13993
- const useModal = this.isBibFullscreen && !this.disableFocusTrap;
13982
+ const useModal = this.isBibFullscreen;
13994
13983
  this.bibElement.value.close();
13995
13984
  this.bibElement.value.open(useModal);
13996
13985
  }
@@ -14012,7 +14001,7 @@ class AuroDropdown extends AuroElement$2 {
14012
14001
 
14013
14002
  firstUpdated() {
14014
14003
  // Configure the floater to, this will generate the ID for the bib
14015
- this.floater.configure(this, 'auroDropdown');
14004
+ this.floater.configure(this, 'auroDropdown', !this.disableKeyboardHandling);
14016
14005
 
14017
14006
  // Prevent `contain: layout` on the dropdown host. Layout containment
14018
14007
  // creates a containing block for position:fixed descendants (the bib),
@@ -14102,7 +14091,7 @@ class AuroDropdown extends AuroElement$2 {
14102
14091
  * @private
14103
14092
  */
14104
14093
  updateFocusTrap() {
14105
- if (this.isPopoverVisible && !this.disableFocusTrap) {
14094
+ if (this.isPopoverVisible) {
14106
14095
  if (!this.isBibFullscreen) {
14107
14096
  // Desktop: show() doesn't trap focus, so use FocusTrap
14108
14097
  this.focusTrap = new FocusTrap(this.bibContent);
@@ -14320,6 +14309,7 @@ class AuroDropdown extends AuroElement$2 {
14320
14309
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
14321
14310
  aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
14322
14311
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
14312
+ aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
14323
14313
  @focusin="${this.handleFocusin}"
14324
14314
  @blur="${this.handleFocusOut}">
14325
14315
  <div class="triggerContentWrapper" id="triggerLabel">
@@ -21062,7 +21052,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
21062
21052
  }
21063
21053
  };
21064
21054
 
21065
- var formkitVersion = '202603310525';
21055
+ var formkitVersion = '202604022013';
21066
21056
 
21067
21057
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
21068
21058
  // See LICENSE in the project root for license information.
@@ -24225,7 +24215,6 @@ class AuroDatePicker extends AuroElement {
24225
24215
  .size="${this.size}"
24226
24216
  class="${classMap(dropdownElementClassMap)}"
24227
24217
  disableEventShow
24228
- disableFocusTrap
24229
24218
  for="dropdownMenu"
24230
24219
  part="dropdown"
24231
24220
  >
@@ -7,35 +7,35 @@ The `auro-dropdown` element provides a way to place content in a bib that can be
7
7
 
8
8
  ## Properties
9
9
 
10
- | Property | Attribute | Type | Default | Description |
11
- |-------------------------|-------------------------|--------------------------------------------------|------------------|--------------------------------------------------|
12
- | `a11yRole` | | `string` | | The value for the role attribute of the trigger element. |
13
- | [appearance](#appearance) | `appearance` | `'default' \| 'inverse'` | "'default'" | Defines whether the component will be on lighter or darker backgrounds. |
14
- | [autoPlacement](#autoPlacement) | `autoPlacement` | `boolean` | | If declared, bib's position will be automatically calculated where to appear. |
15
- | [chevron](#chevron) | `chevron` | `boolean` | | If declared, the dropdown displays a chevron on the right. |
16
- | [disableEventShow](#disableEventShow) | `disableEventShow` | `boolean` | | If declared, the dropdown will only show by calling the API .show() public method. |
17
- | [disableFocusTrap](#disableFocusTrap) | `disableFocusTrap` | `boolean` | | If declared, the focus trap inside of bib will be turned off. |
18
- | [disabled](#disabled) | `disabled` | `boolean` | | If declared, the dropdown is not interactive. |
19
- | [error](#error) | `error` | `boolean` | | If declared, will apply error UI to the dropdown. |
20
- | [errorMessage](#errorMessage) | `errorMessage` | `string` | "undefined" | Contains the help text message for the current validity error. |
21
- | [focusShow](#focusShow) | `focusShow` | `boolean` | | If declared, the bib will display when focus is applied to the trigger. |
22
- | [fullscreenBreakpoint](#fullscreenBreakpoint) | `fullscreenBreakpoint` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'disabled'` | "'sm'" | Defines the screen size breakpoint at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.<br /><br />When expanded, the dropdown will automatically display in fullscreen mode<br />if the screen size is equal to or smaller than the selected breakpoint. |
23
- | [hoverToggle](#hoverToggle) | `hoverToggle` | `boolean` | | If declared, the trigger will toggle the dropdown on mouseover/mouseout. |
24
- | [isBibFullscreen](#isBibFullscreen) | `isBibFullscreen` | `boolean` | false | If true, the dropdown bib is taking the fullscreen when it's open. |
25
- | [isPopoverVisible](#isPopoverVisible) | `open` | `boolean` | false | If true, the dropdown bib is displayed. |
26
- | [layout](#layout) | `layout` | `'classic' \| 'emphasized' \| 'snowflake'` | "'classic'" | Sets the layout of the dropdown. |
27
- | [matchWidth](#matchWidth) | `matchWidth` | `boolean` | false | If declared, the popover and trigger will be set to the same width. |
28
- | [noFlip](#noFlip) | `noFlip` | `boolean` | | If declared, the bib will NOT flip to an alternate position<br />when there isn't enough space in the specified `placement`. |
29
- | [noHideOnThisFocusLoss](#noHideOnThisFocusLoss) | `noHideOnThisFocusLoss` | `boolean` | false | If declared, the dropdown will not hide when moving focus outside the element. |
30
- | [noToggle](#noToggle) | `noToggle` | `boolean` | | If declared, the trigger will only show the dropdown bib. |
31
- | [offset](#offset) | `offset` | `number` | "0" | Gap between the trigger element and bib. |
32
- | [onDark](#onDark) | `onDark` | `boolean` | | DEPRECATED - use `appearance="inverse"` instead. |
33
- | [onSlotChange](#onSlotChange) | `onSlotChange` | | | If declared, and a function is set, that function will execute when the slot content is updated. |
34
- | [placement](#placement) | `placement` | `'top' \| 'right' \| 'bottom' \| 'left' \| 'bottom-start' \| 'top-start' \| 'top-end' \| 'right-start' \| 'right-end' \| 'bottom-end' \| 'left-start' \| 'left-end'` | "'bottom-start'" | Position where the bib should appear relative to the trigger. |
35
- | [shape](#shape) | | | "undefined" | |
36
- | [shift](#shift) | `shift` | `boolean` | | If declared, the dropdown will shift its position to avoid being cut off by the viewport. |
37
- | [simple](#simple) | `simple` | `boolean` | | If declared, applies a border around the trigger slot. |
38
- | [size](#size) | | | "undefined" | |
10
+ | Property | Attribute | Type | Default | Description |
11
+ |---------------------------|---------------------------|--------------------------------------------------|------------------|--------------------------------------------------|
12
+ | `a11yRole` | | `string` | | The value for the role attribute of the trigger element. |
13
+ | [appearance](#appearance) | `appearance` | `'default' \| 'inverse'` | "'default'" | Defines whether the component will be on lighter or darker backgrounds. |
14
+ | [autoPlacement](#autoPlacement) | `autoPlacement` | `boolean` | | If declared, bib's position will be automatically calculated where to appear. |
15
+ | [chevron](#chevron) | `chevron` | `boolean` | | If declared, the dropdown displays a chevron on the right. |
16
+ | [disableEventShow](#disableEventShow) | `disableEventShow` | `boolean` | | If declared, the dropdown will only show by calling the API .show() public method. |
17
+ | [disableKeyboardHandling](#disableKeyboardHandling) | `disableKeyboardHandling` | `boolean` | | If declared, the dropdown will not handle keyboard events and will require the consumer to manage this behavior. |
18
+ | [disabled](#disabled) | `disabled` | `boolean` | | If declared, the dropdown is not interactive. |
19
+ | [error](#error) | `error` | `boolean` | | If declared, will apply error UI to the dropdown. |
20
+ | [errorMessage](#errorMessage) | `errorMessage` | `string` | "undefined" | Contains the help text message for the current validity error. |
21
+ | [focusShow](#focusShow) | `focusShow` | `boolean` | | If declared, the bib will display when focus is applied to the trigger. |
22
+ | [fullscreenBreakpoint](#fullscreenBreakpoint) | `fullscreenBreakpoint` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'disabled'` | "'sm'" | Defines the screen size breakpoint at which the dropdown switches to fullscreen mode on mobile. `disabled` indicates a dropdown should _never_ enter fullscreen.<br /><br />When expanded, the dropdown will automatically display in fullscreen mode<br />if the screen size is equal to or smaller than the selected breakpoint. |
23
+ | [hoverToggle](#hoverToggle) | `hoverToggle` | `boolean` | | If declared, the trigger will toggle the dropdown on mouseover/mouseout. |
24
+ | [isBibFullscreen](#isBibFullscreen) | `isBibFullscreen` | `boolean` | false | If true, the dropdown bib is taking the fullscreen when it's open. |
25
+ | [isPopoverVisible](#isPopoverVisible) | `open` | `boolean` | false | If true, the dropdown bib is displayed. |
26
+ | [layout](#layout) | `layout` | `'classic' \| 'emphasized' \| 'snowflake'` | "'classic'" | Sets the layout of the dropdown. |
27
+ | [matchWidth](#matchWidth) | `matchWidth` | `boolean` | false | If declared, the popover and trigger will be set to the same width. |
28
+ | [noFlip](#noFlip) | `noFlip` | `boolean` | | If declared, the bib will NOT flip to an alternate position<br />when there isn't enough space in the specified `placement`. |
29
+ | [noHideOnThisFocusLoss](#noHideOnThisFocusLoss) | `noHideOnThisFocusLoss` | `boolean` | false | If declared, the dropdown will not hide when moving focus outside the element. |
30
+ | [noToggle](#noToggle) | `noToggle` | `boolean` | | If declared, the trigger will only show the dropdown bib. |
31
+ | [offset](#offset) | `offset` | `number` | "0" | Gap between the trigger element and bib. |
32
+ | [onDark](#onDark) | `onDark` | `boolean` | | DEPRECATED - use `appearance="inverse"` instead. |
33
+ | [onSlotChange](#onSlotChange) | `onSlotChange` | | | If declared, and a function is set, that function will execute when the slot content is updated. |
34
+ | [placement](#placement) | `placement` | `'top' \| 'right' \| 'bottom' \| 'left' \| 'bottom-start' \| 'top-start' \| 'top-end' \| 'right-start' \| 'right-end' \| 'bottom-end' \| 'left-start' \| 'left-end'` | "'bottom-start'" | Position where the bib should appear relative to the trigger. |
35
+ | [shape](#shape) | | | "undefined" | |
36
+ | [shift](#shift) | `shift` | `boolean` | | If declared, the dropdown will shift its position to avoid being cut off by the viewport. |
37
+ | [simple](#simple) | `simple` | `boolean` | | If declared, applies a border around the trigger slot. |
38
+ | [size](#size) | | | "undefined" | |
39
39
 
40
40
  ## Methods
41
41