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

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 (48) 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/dist/index.js +1 -1
  4. package/components/checkbox/dist/registered.js +1 -1
  5. package/components/combobox/demo/api.min.js +187 -141
  6. package/components/combobox/demo/index.min.js +187 -141
  7. package/components/combobox/demo/keyboardBehavior.md +9 -36
  8. package/components/combobox/dist/auro-combobox.d.ts +17 -0
  9. package/components/combobox/dist/comboboxKeyboardStrategy.d.ts +6 -3
  10. package/components/combobox/dist/index.js +187 -141
  11. package/components/combobox/dist/registered.js +187 -141
  12. package/components/counter/demo/api.min.js +2 -2
  13. package/components/counter/demo/index.min.js +2 -2
  14. package/components/counter/dist/index.js +2 -2
  15. package/components/counter/dist/registered.js +2 -2
  16. package/components/datepicker/demo/api.md +1 -1
  17. package/components/datepicker/demo/api.min.js +77 -157
  18. package/components/datepicker/demo/index.min.js +77 -157
  19. package/components/datepicker/demo/keyboardBehavior.md +1 -6
  20. package/components/datepicker/dist/auro-datepicker.d.ts +8 -7
  21. package/components/datepicker/dist/datepickerKeyboardStrategy.d.ts +1 -4
  22. package/components/datepicker/dist/index.js +77 -157
  23. package/components/datepicker/dist/registered.js +77 -157
  24. package/components/dropdown/demo/api.min.js +1 -1
  25. package/components/dropdown/demo/index.min.js +1 -1
  26. package/components/dropdown/dist/index.js +1 -1
  27. package/components/dropdown/dist/registered.js +1 -1
  28. package/components/form/demo/api.min.js +382 -390
  29. package/components/form/demo/index.min.js +382 -390
  30. package/components/input/demo/api.min.js +106 -77
  31. package/components/input/demo/index.min.js +106 -77
  32. package/components/input/dist/auro-input.d.ts +11 -0
  33. package/components/input/dist/base-input.d.ts +1 -0
  34. package/components/input/dist/index.js +36 -18
  35. package/components/input/dist/registered.js +36 -18
  36. package/components/menu/demo/keyboardBehavior.md +0 -0
  37. package/components/radio/demo/api.min.js +1 -1
  38. package/components/radio/demo/index.min.js +1 -1
  39. package/components/radio/demo/keyboardBehavior.md +0 -0
  40. package/components/radio/dist/index.js +1 -1
  41. package/components/radio/dist/registered.js +1 -1
  42. package/components/select/demo/api.min.js +13 -4
  43. package/components/select/demo/index.min.js +13 -4
  44. package/components/select/dist/index.js +13 -4
  45. package/components/select/dist/registered.js +13 -4
  46. package/custom-elements.json +1449 -1401
  47. package/package.json +3 -3
  48. /package/components/datepicker/demo/{keyboardBehavior.html → keyboard-behavior.html} +0 -0
@@ -9549,7 +9549,7 @@ class AuroBibtemplate extends i$1 {
9549
9549
  }
9550
9550
  }
9551
9551
 
9552
- var formkitVersion$2 = '202604022013';
9552
+ var formkitVersion$2 = '202604032311';
9553
9553
 
9554
9554
  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=i$5`${s$5(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$4 = 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$3=i$3`: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}
9555
9555
  `,u$6=i$3`.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}}
@@ -10003,12 +10003,12 @@ class AuroCalendar extends RangeDatepicker {
10003
10003
  </div>
10004
10004
  <div class="calendarNavButtons">
10005
10005
  ${this.showPrevMonthBtn ? u$a`
10006
- <button class="calendarNavBtn prevMonth" @click="${this.handlePrevMonth}">
10006
+ <button tabIndex="-1" class="calendarNavBtn prevMonth" @click="${this.handlePrevMonth}">
10007
10007
  ${this.util.generateIconHtml(chevronLeft)}
10008
10008
  </button>
10009
10009
  ` : undefined}
10010
10010
  ${this.showNextMonthBtn ? u$a`
10011
- <button class="calendarNavBtn nextMonth" @click="${this.handleNextMonth}">
10011
+ <button tabIndex="-1" class="calendarNavBtn nextMonth" @click="${this.handleNextMonth}">
10012
10012
  ${this.util.generateIconHtml(chevronRight)}
10013
10013
  </button>
10014
10014
  ` : undefined}
@@ -12961,7 +12961,7 @@ var iconVersion$2 = '9.1.2';
12961
12961
  * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
12962
12962
  * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
12963
12963
  */
12964
- function createDisplayContext$1(component, options = {}) {
12964
+ function createDisplayContext(component, options = {}) {
12965
12965
  const dd = options.dropdown || component.dropdown;
12966
12966
  // isPopoverVisible reflects as the `open` attribute.
12967
12967
  // It reports whether the bib is open in any mode (popover or modal).
@@ -12991,11 +12991,11 @@ function createDisplayContext$1(component, options = {}) {
12991
12991
  * @param {Object} strategy - Map of key names to handler functions.
12992
12992
  * @param {Object} [options] - Optional config passed to createDisplayContext.
12993
12993
  */
12994
- function applyKeyboardStrategy$1(component, strategy, options = {}) {
12994
+ function applyKeyboardStrategy(component, strategy, options = {}) {
12995
12995
  component.addEventListener('keydown', async (evt) => {
12996
12996
  const handler = strategy[evt.key] || strategy.default;
12997
12997
  if (typeof handler === 'function') {
12998
- const ctx = createDisplayContext$1(component, options);
12998
+ const ctx = createDisplayContext(component, options);
12999
12999
  await handler(component, evt, ctx);
13000
13000
  }
13001
13001
  });
@@ -13225,7 +13225,7 @@ class AuroDropdownBib extends i$1 {
13225
13225
 
13226
13226
  const dialog = this.shadowRoot.querySelector('dialog');
13227
13227
  this._setupCancelHandler(dialog);
13228
- applyKeyboardStrategy$1(dialog, createDropdownBibKeyboardStrategy());
13228
+ applyKeyboardStrategy(dialog, createDropdownBibKeyboardStrategy());
13229
13229
 
13230
13230
  this.dispatchEvent(new CustomEvent('auro-dropdownbib-connected', {
13231
13231
  bubbles: true,
@@ -13626,7 +13626,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
13626
13626
  }
13627
13627
  };
13628
13628
 
13629
- var formkitVersion$1 = '202604022013';
13629
+ var formkitVersion$1 = '202604032311';
13630
13630
 
13631
13631
  let AuroElement$2 = class AuroElement extends i$1 {
13632
13632
  static get properties() {
@@ -20367,6 +20367,16 @@ class BaseInput extends AuroElement$1 {
20367
20367
  this.wrapperElement = this.shadowRoot.querySelector('.wrapper');
20368
20368
  this.inputElement = this.renderRoot.querySelector('input');
20369
20369
  this.labelElement = this.shadowRoot.querySelector('label');
20370
+ this.clearBtn = this.clearButtonRef.value;
20371
+
20372
+ // This must get moved into inputKeyboardStrategy when implemented
20373
+ this.clearBtn.addEventListener('keydown', (evt) => {
20374
+ evt.stopPropagation();
20375
+ });
20376
+
20377
+ this.clearBtn.addEventListener('click', (evt) => {
20378
+ evt.stopPropagation();
20379
+ });
20370
20380
 
20371
20381
  this.patchInputEvent(this.inputElement);
20372
20382
 
@@ -21390,7 +21400,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
21390
21400
  }
21391
21401
  };
21392
21402
 
21393
- var formkitVersion = '202604022013';
21403
+ var formkitVersion = '202604032311';
21394
21404
 
21395
21405
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
21396
21406
  // See LICENSE in the project root for license information.
@@ -21447,6 +21457,11 @@ class AuroInput extends BaseInput {
21447
21457
  * @private
21448
21458
  */
21449
21459
  this.iconTag = versioning.generateTag('auro-formkit-input-icon', iconVersion$1, _$1);
21460
+
21461
+ /**
21462
+ * @private
21463
+ */
21464
+ this.clearButtonRef = e$1();
21450
21465
  }
21451
21466
 
21452
21467
  static get styles() {
@@ -21464,6 +21479,19 @@ class AuroInput extends BaseInput {
21464
21479
  ];
21465
21480
  }
21466
21481
 
21482
+ /**
21483
+ * Returns classmap configuration for the clear button visibility.
21484
+ * The button is hidden when the input has no value, is read-only, or is disabled.
21485
+ * @private
21486
+ * @returns {Record<string, boolean>} - Classmap object controlling clear button display state.
21487
+ */
21488
+ get clearBtnClassMap() {
21489
+ return {
21490
+ 'util_displayHidden': !this.hasValue || this.readyOnly || this.disabled
21491
+ };
21492
+ }
21493
+
21494
+
21467
21495
  /**
21468
21496
  * Determines if the HTML input element should be visually hidden.
21469
21497
  * Returns true when display value content exists without focus and has a value,
@@ -21783,10 +21811,11 @@ class AuroInput extends BaseInput {
21783
21811
  <${this.buttonTag}
21784
21812
  @click="${this.handleClickClear}"
21785
21813
  appearance="${this.onDark ? 'inverse' : this.appearance}"
21786
- class="notificationBtn clearBtn"
21814
+ class="notificationBtn clearBtn ${e$4(this.clearBtnClassMap)}"
21787
21815
  shape="circle"
21788
21816
  size="sm"
21789
- variant="ghost">
21817
+ variant="ghost"
21818
+ ${n(this.clearButtonRef)}>
21790
21819
  <span><slot name="ariaLabel.clear">Clear Input</slot></span>
21791
21820
  <${this.iconTag}
21792
21821
  aria-hidden="true"
@@ -21931,11 +21960,7 @@ class AuroInput extends BaseInput {
21931
21960
  <div part="accent-right" class="accents right">
21932
21961
  ${this.renderValidationErrorIconHtml()}
21933
21962
  ${this.hasValue && this.type === 'password' ? this.renderHtmlNotificationPassword() : undefined}
21934
- ${this.hasValue ? u$a`
21935
- ${!this.disabled && !this.readonly ? u$a`
21936
- ${this.renderHtmlActionClear()}
21937
- ` : undefined}
21938
- ` : undefined}
21963
+ ${this.renderHtmlActionClear()}
21939
21964
  </div>
21940
21965
  </div>
21941
21966
  <div class="helpTextWrapper leftIndent rightIndent" part="inputHelpText">
@@ -21967,11 +21992,7 @@ class AuroInput extends BaseInput {
21967
21992
  ${this.layout.includes('right') || this.layout === "emphasized" ? u$a`
21968
21993
  ${this.renderValidationErrorIconHtml()}
21969
21994
  ` : undefined}
21970
- ${this.hasValue ? u$a`
21971
- ${!this.disabled && !this.readonly ? u$a`
21972
- ${this.renderHtmlActionClear()}
21973
- ` : undefined}
21974
- ` : undefined}
21995
+ ${this.renderHtmlActionClear()}
21975
21996
  </div>
21976
21997
  </div>
21977
21998
  <div class="${e$4(this.helpTextClasses)}" part="inputHelpText">
@@ -21999,11 +22020,7 @@ class AuroInput extends BaseInput {
21999
22020
  </div>
22000
22021
  <div class="accents right">
22001
22022
  ${this.renderValidationErrorIconHtml()}
22002
- ${this.hasValue ? u$a`
22003
- ${!this.disabled && !this.readonly ? u$a`
22004
- ${this.renderHtmlActionClear()}
22005
- ` : undefined}
22006
- ` : undefined}
22023
+ ${this.renderHtmlActionClear()}
22007
22024
  </div>
22008
22025
  </div>
22009
22026
  <div class="helpTextWrapper leftIndent rightIndent" part="inputHelpText">
@@ -22561,99 +22578,6 @@ function guardTouchPassthrough(element) {
22561
22578
  }, { once: true });
22562
22579
  }
22563
22580
 
22564
- /**
22565
- * Restores the dropdown trigger after a fullscreen dialog closes.
22566
- *
22567
- * Removes the `inert` attribute from the trigger so it is accessible again,
22568
- * and restores focus to the given target after one animation frame. The rAF
22569
- * delay lets Lit's microtask update cycle call `dialog.close()` first —
22570
- * without it the browser's native dialog focus restoration can conflict.
22571
- *
22572
- * The focus is only applied if the dropdown is still closed at the time the
22573
- * rAF fires, guarding against a rapid close-then-reopen race.
22574
- *
22575
- * @param {HTMLElement} dropdown - The `auro-dropdown` element.
22576
- * @param {HTMLElement} focusTarget - The element to focus (e.g. trigger or input).
22577
- */
22578
- function restoreTriggerAfterClose(dropdown, focusTarget) {
22579
- dropdown.trigger.inert = false;
22580
-
22581
- requestAnimationFrame(() => {
22582
- if (!dropdown.isPopoverVisible) {
22583
- focusTarget.focus();
22584
- }
22585
- });
22586
- }
22587
-
22588
- /**
22589
- * Computes display state once per keydown event.
22590
- * Centralizes null-safety checks and makes the shared/modal/popover branching explicit.
22591
- *
22592
- * @param {HTMLElement} component - The component with a dropdown reference.
22593
- * @param {Object} [options] - Optional config.
22594
- * @param {HTMLElement} [options.dropdown] - Explicit dropdown reference. Falls back to component.dropdown.
22595
- * @param {Function} [options.inputResolver] - Called with (component, ctx) to resolve the active input element.
22596
- * @returns {{isExpanded: boolean, isModal: boolean, isPopover: boolean, activeInput: HTMLElement|null}}
22597
- * isModal and isPopover reflect the display mode (fullscreen vs not) regardless of expanded state.
22598
- */
22599
- function createDisplayContext(component, options = {}) {
22600
- const dd = options.dropdown || component.dropdown;
22601
- // isPopoverVisible reflects as the `open` attribute.
22602
- // It reports whether the bib is open in any mode (popover or modal).
22603
- const isExpanded = Boolean(dd && dd.isPopoverVisible);
22604
- const isFullscreen = Boolean(dd && dd.isBibFullscreen);
22605
-
22606
- const ctx = {
22607
- isExpanded,
22608
- isModal: isFullscreen,
22609
- isPopover: !isFullscreen,
22610
- activeInput: null,
22611
- };
22612
-
22613
- if (options.inputResolver) {
22614
- const resolvedInput = options.inputResolver(component, ctx);
22615
- // Guard against resolvers returning undefined or non-HTMLElement values.
22616
- ctx.activeInput = resolvedInput instanceof HTMLElement ? resolvedInput : null;
22617
- }
22618
-
22619
- return ctx;
22620
- }
22621
-
22622
- /**
22623
- * Wires up a keydown listener that dispatches to strategy[evt.key] or strategy.default.
22624
- * Handles both sync and async handlers.
22625
- * @param {HTMLElement} component - The component to attach the listener to.
22626
- * @param {Object} strategy - Map of key names to handler functions.
22627
- * @param {Object} [options] - Optional config passed to createDisplayContext.
22628
- */
22629
- function applyKeyboardStrategy(component, strategy, options = {}) {
22630
- component.addEventListener('keydown', async (evt) => {
22631
- const handler = strategy[evt.key] || strategy.default;
22632
- if (typeof handler === 'function') {
22633
- const ctx = createDisplayContext(component, options);
22634
- await handler(component, evt, ctx);
22635
- }
22636
- });
22637
- }
22638
-
22639
- // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22640
- // See LICENSE in the project root for license information.
22641
-
22642
- const datepickerKeyboardStrategy = {
22643
- Enter(component, evt, ctx) {
22644
- if (!ctx.isExpanded) {
22645
- evt.preventDefault();
22646
- component.dropdown.show();
22647
- }
22648
- },
22649
-
22650
- Tab(component, _evt, ctx) {
22651
- if (ctx.isExpanded && ctx.isModal) {
22652
- component.dropdown.hide();
22653
- }
22654
- },
22655
- };
22656
-
22657
22581
  // Copyright (c) 2026 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
22658
22582
  // See LICENSE in the project root for license information.
22659
22583
 
@@ -22828,9 +22752,16 @@ class AuroDatePicker extends AuroElement {
22828
22752
  */
22829
22753
  this.helpTextTag = versioning.generateTag('auro-formkit-input-helptext', formkitVersion$2, AuroHelpText);
22830
22754
 
22831
- /** @private */
22755
+ /**
22756
+ * @private
22757
+ */
22832
22758
  this.handleClick = this.handleClick.bind(this);
22833
22759
 
22760
+ /**
22761
+ * @private
22762
+ */
22763
+ this.handleClearClick = this.handleClearClick.bind(this);
22764
+
22834
22765
  // Layout Config
22835
22766
  this.layout = 'classic';
22836
22767
  this.shape = 'classic';
@@ -23070,7 +23001,7 @@ class AuroDatePicker extends AuroElement {
23070
23001
  /**
23071
23002
  * Optional placeholder text to display in the second input when using date range.
23072
23003
  * By default, datepicker will use `placeholder` for both inputs if placeholder is
23073
- * specified, but placeholderendDate is not.
23004
+ * specified, but placeholderEndDate is not.
23074
23005
  */
23075
23006
  placeholderEndDate: {
23076
23007
  type: String,
@@ -23449,13 +23380,6 @@ class AuroDatePicker extends AuroElement {
23449
23380
  configureDropdown() {
23450
23381
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
23451
23382
 
23452
- // Prevent dropdown from closing on focus loss during fullscreen transitions.
23453
- // When trigger.inert is set to true (to hide the trigger from assistive
23454
- // technology behind the fullscreen dialog), focus leaves the trigger, which
23455
- // fires a focusout event. The floater's handleFocusLoss() would interpret
23456
- // this as "close the bib" without this flag.
23457
- this.dropdown.noHideOnThisFocusLoss = true;
23458
-
23459
23383
  // Pass label text to the dropdown bib for accessible dialog naming.
23460
23384
  // Without this, the fullscreen <dialog> has no accessible name and
23461
23385
  // screen readers announce it as just "dialog" with no context.
@@ -23464,12 +23388,6 @@ class AuroDatePicker extends AuroElement {
23464
23388
  this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
23465
23389
  }
23466
23390
 
23467
- // Tab closes the fullscreen dialog (same pattern as select).
23468
- // The dialog event bridge intercepts Tab and re-dispatches it as a
23469
- // composed keydown; this listener catches the re-dispatched event.
23470
- // Enter opens the bib when it is closed.
23471
- applyKeyboardStrategy(this, datepickerKeyboardStrategy);
23472
-
23473
23391
  this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
23474
23392
  if (!this.isPopoverVisible) {
23475
23393
  this.dropdown.show();
@@ -23519,7 +23437,17 @@ class AuroDatePicker extends AuroElement {
23519
23437
  guardTouchPassthrough(this.shadowRoot.querySelector('.calendarWrapper'));
23520
23438
  }
23521
23439
  } else {
23522
- restoreTriggerAfterClose(this.dropdown, this.inputList[0]);
23440
+ // Always clear the inert flag. Only restore focus to the input when the datepicker
23441
+ // still has focus (e.g. Escape, date selected) — not when the user tabbed away,
23442
+ // which would pull them back and require extra Tab presses to escape.
23443
+ this.dropdown.trigger.inert = false;
23444
+ if (this.hasFocus) {
23445
+ requestAnimationFrame(() => {
23446
+ if (!this.dropdown.isPopoverVisible) {
23447
+ this.inputList[0].focus();
23448
+ }
23449
+ });
23450
+ }
23523
23451
  }
23524
23452
 
23525
23453
  // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
@@ -23562,7 +23490,7 @@ class AuroDatePicker extends AuroElement {
23562
23490
  }
23563
23491
  });
23564
23492
  }
23565
-
23493
+
23566
23494
  /**
23567
23495
  * Binds all behavior needed to the input after rendering.
23568
23496
  * @private
@@ -23574,13 +23502,6 @@ class AuroDatePicker extends AuroElement {
23574
23502
  this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
23575
23503
 
23576
23504
  this.inputList.forEach((input, index) => {
23577
- // auto-show bib when manually editing the input value
23578
- input.addEventListener('keyup', (evt) => {
23579
- if (evt.key === " ") {
23580
- this.dropdown.show();
23581
- }
23582
- });
23583
-
23584
23505
  input.addEventListener('input', () => {
23585
23506
  if (index === 0) {
23586
23507
  this.value = input.value;
@@ -23773,18 +23694,6 @@ class AuroDatePicker extends AuroElement {
23773
23694
  this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
23774
23695
  }
23775
23696
 
23776
- /**
23777
- * Handle enter/space keydown on the reset button.
23778
- * @private
23779
- * @param {KeyboardEvent} event - The keydown event.
23780
- */
23781
- handleKeydownReset(event) {
23782
- if (event.key === 'Enter' || event.key === ' ') {
23783
- this.resetInputs();
23784
- this.focus();
23785
- }
23786
- }
23787
-
23788
23697
  /**
23789
23698
  * Resets values without resetting validation.
23790
23699
  */
@@ -24394,6 +24303,18 @@ class AuroDatePicker extends AuroElement {
24394
24303
  // icons/actions
24395
24304
  // ------------------------------------
24396
24305
 
24306
+ /**
24307
+ * Handles click on the clear button.
24308
+ * @private
24309
+ * @param {MouseEvent} event
24310
+ * @returns {void}
24311
+ */
24312
+ handleClearClick(event) {
24313
+ event.stopPropagation();
24314
+ this.resetInputs();
24315
+ this.focus();
24316
+ }
24317
+
24397
24318
  /**
24398
24319
  * Renders the clear action button.
24399
24320
  * @private
@@ -24408,8 +24329,7 @@ class AuroDatePicker extends AuroElement {
24408
24329
  return u$a`
24409
24330
  <div class="${e$4(clearActionClassMap)}">
24410
24331
  <${this.buttonTag}
24411
- @click="${this.resetInputs}"
24412
- @keydown="${this.handleKeydownReset}"
24332
+ @click="${this.handleClearClick}"
24413
24333
  ?onDark="${this.onDark}"
24414
24334
  appearance="${this.onDark ? 'inverse' : this.appearance}"
24415
24335
  aria-label="${this.runtimeUtils.getSlotText(this, 'ariaLabel.input.clear') || i18n(this.lang, 'clearInput')}"