@aurodesignsystem-dev/auro-formkit 0.0.0-pr1507.0 → 0.0.0-pr1508.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/components/bibtemplate/dist/index.js +1 -1
  2. package/components/bibtemplate/dist/registered.js +1 -1
  3. package/components/checkbox/demo/customize.html +1 -2
  4. package/components/checkbox/demo/customize.min.js +8 -6
  5. package/components/checkbox/demo/getting-started.min.js +8 -6
  6. package/components/checkbox/demo/index.min.js +8 -6
  7. package/components/checkbox/dist/index.js +8 -6
  8. package/components/checkbox/dist/registered.js +8 -6
  9. package/components/combobox/demo/customize.html +1 -2
  10. package/components/combobox/demo/customize.md +105 -137
  11. package/components/combobox/demo/customize.min.js +506 -568
  12. package/components/combobox/demo/getting-started.min.js +506 -564
  13. package/components/combobox/demo/index.min.js +506 -564
  14. package/components/combobox/demo/keyboard-behavior.md +2 -142
  15. package/components/combobox/demo/why-combobox.md +1 -1
  16. package/components/combobox/dist/auro-combobox.d.ts +30 -14
  17. package/components/combobox/dist/index.js +505 -563
  18. package/components/combobox/dist/registered.js +505 -563
  19. package/components/counter/demo/customize.min.js +26 -8
  20. package/components/counter/demo/index.min.js +26 -8
  21. package/components/counter/dist/index.js +26 -8
  22. package/components/counter/dist/registered.js +26 -8
  23. package/components/datepicker/demo/accessibility.md +2 -1
  24. package/components/datepicker/demo/api.md +65 -62
  25. package/components/datepicker/demo/customize.md +150 -39
  26. package/components/datepicker/demo/customize.min.js +988 -500
  27. package/components/datepicker/demo/index.min.js +988 -482
  28. package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +20 -3
  29. package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +121 -7
  30. package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +80 -5
  31. package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
  32. package/components/datepicker/dist/index.js +988 -482
  33. package/components/datepicker/dist/registered.js +988 -482
  34. package/components/dropdown/demo/customize.min.js +10 -1
  35. package/components/dropdown/demo/getting-started.min.js +10 -1
  36. package/components/dropdown/demo/index.min.js +10 -1
  37. package/components/dropdown/dist/auro-dropdown.d.ts +1 -0
  38. package/components/dropdown/dist/index.js +10 -1
  39. package/components/dropdown/dist/registered.js +10 -1
  40. package/components/form/demo/customize.html +6 -6
  41. package/components/form/demo/customize.md +203 -51
  42. package/components/form/demo/customize.min.js +2357 -1419
  43. package/components/form/demo/getting-started.min.js +2285 -1419
  44. package/components/form/demo/index.min.js +2285 -1419
  45. package/components/form/demo/registerDemoDeps.min.js +1922 -1382
  46. package/components/form/dist/auro-form.d.ts +122 -4
  47. package/components/form/dist/index.js +363 -37
  48. package/components/form/dist/registered.js +363 -37
  49. package/components/input/demo/api.md +5 -5
  50. package/components/input/demo/customize.html +1 -2
  51. package/components/input/demo/customize.md +62 -61
  52. package/components/input/demo/customize.min.js +177 -241
  53. package/components/input/demo/getting-started.min.js +177 -241
  54. package/components/input/demo/index.min.js +177 -241
  55. package/components/input/dist/base-input.d.ts +34 -93
  56. package/components/input/dist/index.js +190 -242
  57. package/components/input/dist/registered.js +177 -241
  58. package/components/radio/demo/customize.min.js +8 -6
  59. package/components/radio/demo/getting-started.min.js +8 -6
  60. package/components/radio/demo/index.min.js +8 -6
  61. package/components/radio/dist/index.js +8 -6
  62. package/components/radio/dist/registered.js +8 -6
  63. package/components/select/demo/customize.html +1 -2
  64. package/components/select/demo/customize.md +86 -0
  65. package/components/select/demo/customize.min.js +202 -68
  66. package/components/select/demo/getting-started.min.js +204 -115
  67. package/components/select/demo/index.min.js +202 -68
  68. package/components/select/demo/keyboard-behavior.md +18 -4
  69. package/components/select/dist/auro-select.d.ts +20 -8
  70. package/components/select/dist/index.js +202 -68
  71. package/components/select/dist/registered.js +202 -68
  72. package/custom-elements.json +1035 -604
  73. package/package.json +6 -2
  74. package/components/checkbox/demo/customize.js +0 -22
  75. package/components/checkbox/demo/demo-support.js +0 -1
  76. package/components/checkbox/demo/getting-started.js +0 -22
  77. package/components/checkbox/demo/index.js +0 -8
  78. package/components/checkbox/demo/styles.scss +0 -1
  79. package/components/combobox/demo/customize.js +0 -24
  80. package/components/combobox/demo/demo-support.js +0 -1
  81. package/components/combobox/demo/getting-started.js +0 -21
  82. package/components/combobox/demo/index.js +0 -23
  83. package/components/combobox/demo/styles.scss +0 -1
  84. package/components/counter/demo/customize.js +0 -21
  85. package/components/counter/demo/demo-support.js +0 -1
  86. package/components/counter/demo/index.js +0 -21
  87. package/components/counter/demo/styles.scss +0 -1
  88. package/components/datepicker/demo/customize.js +0 -19
  89. package/components/datepicker/demo/demo-support.js +0 -1
  90. package/components/datepicker/demo/index.js +0 -23
  91. package/components/datepicker/demo/styles.scss +0 -1
  92. package/components/dropdown/demo/customize.js +0 -9
  93. package/components/dropdown/demo/demo-support.js +0 -1
  94. package/components/dropdown/demo/getting-started.js +0 -9
  95. package/components/dropdown/demo/index.js +0 -16
  96. package/components/dropdown/demo/styles.scss +0 -1
  97. package/components/form/demo/customize.js +0 -9
  98. package/components/form/demo/demo-support.js +0 -1
  99. package/components/form/demo/getting-started.js +0 -9
  100. package/components/form/demo/index.js +0 -5
  101. package/components/form/demo/registerDemoDeps.js +0 -23
  102. package/components/form/demo/styles.scss +0 -1
  103. package/components/input/demo/customize.js +0 -25
  104. package/components/input/demo/demo-support.js +0 -1
  105. package/components/input/demo/getting-started.js +0 -8
  106. package/components/input/demo/index.js +0 -8
  107. package/components/input/demo/styles.css +0 -974
  108. package/components/input/demo/styles.scss +0 -1
  109. package/components/menu/demo/demo-support.js +0 -1
  110. package/components/menu/demo/index.js +0 -25
  111. package/components/menu/demo/styles.scss +0 -1
  112. package/components/radio/demo/customize.js +0 -22
  113. package/components/radio/demo/demo-support.js +0 -1
  114. package/components/radio/demo/getting-started.js +0 -24
  115. package/components/radio/demo/index.js +0 -8
  116. package/components/radio/demo/styles.scss +0 -1
  117. package/components/select/demo/customize.js +0 -11
  118. package/components/select/demo/demo-support.js +0 -1
  119. package/components/select/demo/getting-started.js +0 -26
  120. package/components/select/demo/index.js +0 -11
  121. package/components/select/demo/styles.scss +0 -1
  122. /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
  123. /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
  124. /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
  125. /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
  126. /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
  127. /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
  128. /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
  129. /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
  130. /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
  131. /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
  132. /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
  133. /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
  134. /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
  135. /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
  136. /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
  137. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
  138. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
  139. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
  140. /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
  141. /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
  142. /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
  143. /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
  144. /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
  145. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
  146. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
  147. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
  148. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
@@ -620,15 +620,17 @@ class AuroFormValidation {
620
620
  );
621
621
  }
622
622
 
623
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
624
- if (this.auroInputElements?.length === 2) {
625
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
623
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
624
+
625
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
626
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
627
+ // field (datepicker is the intended consumer — start/end are independently required).
628
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
629
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
626
630
  hasValue = false;
627
631
  }
628
632
  }
629
633
 
630
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
631
-
632
634
  if (isCombobox) {
633
635
 
634
636
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -1099,7 +1101,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1099
1101
  }
1100
1102
  };
1101
1103
 
1102
- var formkitVersion$1 = '202606192121';
1104
+ var formkitVersion$1 = '202607010100';
1103
1105
 
1104
1106
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1105
1107
  // See LICENSE in the project root for license information.
@@ -5445,7 +5447,7 @@ class AuroHelpText extends i$2 {
5445
5447
  }
5446
5448
  }
5447
5449
 
5448
- var formkitVersion = '202606192121';
5450
+ var formkitVersion = '202607010100';
5449
5451
 
5450
5452
  let AuroElement$1 = class AuroElement extends i$2 {
5451
5453
  static get properties() {
@@ -6396,6 +6398,14 @@ class AuroDropdown extends AuroElement$1 {
6396
6398
  };
6397
6399
  this.addEventListener('keydown', this._bibTabHandler);
6398
6400
 
6401
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6402
+ // desktopModal trap owns focus management. Without this, the very
6403
+ // first focus move into the bib (from the RAF below) triggers
6404
+ // handleFocusLoss → hideBib, tearing down the trap before the
6405
+ // user can press Tab.
6406
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6407
+ this.noHideOnThisFocusLoss = true;
6408
+
6399
6409
  // Move initial focus into the bib content, matching FocusTrap behavior
6400
6410
  requestAnimationFrame(() => {
6401
6411
  const focusables = getFocusableElements(this.bibContent);
@@ -6709,6 +6719,7 @@ class AuroDropdown extends AuroElement$1 {
6709
6719
  role="${o$2(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6710
6720
  aria-expanded="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6711
6721
  aria-controls="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6722
+ aria-haspopup="${o$2(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
6712
6723
  aria-labelledby="${o$2(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6713
6724
  aria-disabled="${o$2(this.disabled ? 'true' : undefined)}"
6714
6725
  @focusin="${this.handleFocusin}"
@@ -6835,7 +6846,7 @@ class AuroDropdown extends AuroElement$1 {
6835
6846
 
6836
6847
  var colorCss$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
6837
6848
 
6838
- var styleCss$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
6849
+ var styleCss$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
6839
6850
 
6840
6851
  var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
6841
6852
 
@@ -7841,6 +7852,13 @@ class AuroCounterGroup extends AuroElement {
7841
7852
  */
7842
7853
  configureDropdownCounters() {
7843
7854
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
7855
+
7856
+ // Counter rows are slotted into the bib through multiple shadow roots
7857
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
7858
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
7859
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
7860
+ this.dropdown.noHideOnThisFocusLoss = true;
7861
+
7844
7862
  this.dropdown.requestUpdate();
7845
7863
 
7846
7864
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -620,15 +620,17 @@ class AuroFormValidation {
620
620
  );
621
621
  }
622
622
 
623
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
624
- if (this.auroInputElements?.length === 2) {
625
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
623
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
624
+
625
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
626
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
627
+ // field (datepicker is the intended consumer — start/end are independently required).
628
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
629
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
626
630
  hasValue = false;
627
631
  }
628
632
  }
629
633
 
630
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
631
-
632
634
  if (isCombobox) {
633
635
 
634
636
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -1099,7 +1101,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$2 {
1099
1101
  }
1100
1102
  };
1101
1103
 
1102
- var formkitVersion$1 = '202606192121';
1104
+ var formkitVersion$1 = '202607010100';
1103
1105
 
1104
1106
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1105
1107
  // See LICENSE in the project root for license information.
@@ -5445,7 +5447,7 @@ class AuroHelpText extends i$2 {
5445
5447
  }
5446
5448
  }
5447
5449
 
5448
- var formkitVersion = '202606192121';
5450
+ var formkitVersion = '202607010100';
5449
5451
 
5450
5452
  let AuroElement$1 = class AuroElement extends i$2 {
5451
5453
  static get properties() {
@@ -6396,6 +6398,14 @@ class AuroDropdown extends AuroElement$1 {
6396
6398
  };
6397
6399
  this.addEventListener('keydown', this._bibTabHandler);
6398
6400
 
6401
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6402
+ // desktopModal trap owns focus management. Without this, the very
6403
+ // first focus move into the bib (from the RAF below) triggers
6404
+ // handleFocusLoss → hideBib, tearing down the trap before the
6405
+ // user can press Tab.
6406
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6407
+ this.noHideOnThisFocusLoss = true;
6408
+
6399
6409
  // Move initial focus into the bib content, matching FocusTrap behavior
6400
6410
  requestAnimationFrame(() => {
6401
6411
  const focusables = getFocusableElements(this.bibContent);
@@ -6709,6 +6719,7 @@ class AuroDropdown extends AuroElement$1 {
6709
6719
  role="${o$2(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6710
6720
  aria-expanded="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6711
6721
  aria-controls="${o$2(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6722
+ aria-haspopup="${o$2(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
6712
6723
  aria-labelledby="${o$2(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6713
6724
  aria-disabled="${o$2(this.disabled ? 'true' : undefined)}"
6714
6725
  @focusin="${this.handleFocusin}"
@@ -6835,7 +6846,7 @@ class AuroDropdown extends AuroElement$1 {
6835
6846
 
6836
6847
  var colorCss$1 = i$5`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
6837
6848
 
6838
- var styleCss$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
6849
+ var styleCss$1 = i$5`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
6839
6850
 
6840
6851
  var tokenCss = i$5`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
6841
6852
 
@@ -7841,6 +7852,13 @@ class AuroCounterGroup extends AuroElement {
7841
7852
  */
7842
7853
  configureDropdownCounters() {
7843
7854
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
7855
+
7856
+ // Counter rows are slotted into the bib through multiple shadow roots
7857
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
7858
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
7859
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
7860
+ this.dropdown.noHideOnThisFocusLoss = true;
7861
+
7844
7862
  this.dropdown.requestUpdate();
7845
7863
 
7846
7864
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -576,15 +576,17 @@ class AuroFormValidation {
576
576
  );
577
577
  }
578
578
 
579
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
580
- if (this.auroInputElements?.length === 2) {
581
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
579
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
580
+
581
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
582
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
583
+ // field (datepicker is the intended consumer — start/end are independently required).
584
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
585
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
582
586
  hasValue = false;
583
587
  }
584
588
  }
585
589
 
586
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
587
-
588
590
  if (isCombobox) {
589
591
 
590
592
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -1049,7 +1051,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1049
1051
  }
1050
1052
  };
1051
1053
 
1052
- var formkitVersion$1 = '202606192121';
1054
+ var formkitVersion$1 = '202607010100';
1053
1055
 
1054
1056
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1055
1057
  // See LICENSE in the project root for license information.
@@ -5377,7 +5379,7 @@ class AuroHelpText extends LitElement {
5377
5379
  }
5378
5380
  }
5379
5381
 
5380
- var formkitVersion = '202606192121';
5382
+ var formkitVersion = '202607010100';
5381
5383
 
5382
5384
  let AuroElement$1 = class AuroElement extends LitElement {
5383
5385
  static get properties() {
@@ -6328,6 +6330,14 @@ class AuroDropdown extends AuroElement$1 {
6328
6330
  };
6329
6331
  this.addEventListener('keydown', this._bibTabHandler);
6330
6332
 
6333
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6334
+ // desktopModal trap owns focus management. Without this, the very
6335
+ // first focus move into the bib (from the RAF below) triggers
6336
+ // handleFocusLoss → hideBib, tearing down the trap before the
6337
+ // user can press Tab.
6338
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6339
+ this.noHideOnThisFocusLoss = true;
6340
+
6331
6341
  // Move initial focus into the bib content, matching FocusTrap behavior
6332
6342
  requestAnimationFrame(() => {
6333
6343
  const focusables = getFocusableElements(this.bibContent);
@@ -6641,6 +6651,7 @@ class AuroDropdown extends AuroElement$1 {
6641
6651
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6642
6652
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6643
6653
  aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6654
+ aria-haspopup="${ifDefined(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
6644
6655
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6645
6656
  aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
6646
6657
  @focusin="${this.handleFocusin}"
@@ -6767,7 +6778,7 @@ class AuroDropdown extends AuroElement$1 {
6767
6778
 
6768
6779
  var colorCss$1 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
6769
6780
 
6770
- var styleCss$1 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
6781
+ var styleCss$1 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
6771
6782
 
6772
6783
  var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
6773
6784
 
@@ -7773,6 +7784,13 @@ class AuroCounterGroup extends AuroElement {
7773
7784
  */
7774
7785
  configureDropdownCounters() {
7775
7786
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
7787
+
7788
+ // Counter rows are slotted into the bib through multiple shadow roots
7789
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
7790
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
7791
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
7792
+ this.dropdown.noHideOnThisFocusLoss = true;
7793
+
7776
7794
  this.dropdown.requestUpdate();
7777
7795
 
7778
7796
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -576,15 +576,17 @@ class AuroFormValidation {
576
576
  );
577
577
  }
578
578
 
579
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
580
- if (this.auroInputElements?.length === 2) {
581
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
579
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
580
+
581
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
582
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
583
+ // field (datepicker is the intended consumer — start/end are independently required).
584
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
585
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
582
586
  hasValue = false;
583
587
  }
584
588
  }
585
589
 
586
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
587
-
588
590
  if (isCombobox) {
589
591
 
590
592
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -1049,7 +1051,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
1049
1051
  }
1050
1052
  };
1051
1053
 
1052
- var formkitVersion$1 = '202606192121';
1054
+ var formkitVersion$1 = '202607010100';
1053
1055
 
1054
1056
  // Copyright (c) 2026 Alaska Airlines. All rights reserved. Licensed under the Apache-2.0 license
1055
1057
  // See LICENSE in the project root for license information.
@@ -5377,7 +5379,7 @@ class AuroHelpText extends LitElement {
5377
5379
  }
5378
5380
  }
5379
5381
 
5380
- var formkitVersion = '202606192121';
5382
+ var formkitVersion = '202607010100';
5381
5383
 
5382
5384
  let AuroElement$1 = class AuroElement extends LitElement {
5383
5385
  static get properties() {
@@ -6328,6 +6330,14 @@ class AuroDropdown extends AuroElement$1 {
6328
6330
  };
6329
6331
  this.addEventListener('keydown', this._bibTabHandler);
6330
6332
 
6333
+ // Suppress AuroFloatingUI's auto-hide-on-focus-loss while the
6334
+ // desktopModal trap owns focus management. Without this, the very
6335
+ // first focus move into the bib (from the RAF below) triggers
6336
+ // handleFocusLoss → hideBib, tearing down the trap before the
6337
+ // user can press Tab.
6338
+ this._priorNoHideOnFocusLoss = this.noHideOnThisFocusLoss;
6339
+ this.noHideOnThisFocusLoss = true;
6340
+
6331
6341
  // Move initial focus into the bib content, matching FocusTrap behavior
6332
6342
  requestAnimationFrame(() => {
6333
6343
  const focusables = getFocusableElements(this.bibContent);
@@ -6641,6 +6651,7 @@ class AuroDropdown extends AuroElement$1 {
6641
6651
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
6642
6652
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
6643
6653
  aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
6654
+ aria-haspopup="${ifDefined(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
6644
6655
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
6645
6656
  aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
6646
6657
  @focusin="${this.handleFocusin}"
@@ -6767,7 +6778,7 @@ class AuroDropdown extends AuroElement$1 {
6767
6778
 
6768
6779
  var colorCss$1 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
6769
6780
 
6770
- var styleCss$1 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1 1 100%}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{position:absolute;right:0;bottom:0;left:0;padding:var(--ds-size-200, 1rem)}`;
6781
+ var styleCss$1 = css`#bibTemplate{display:flex;overflow:hidden;height:100%;max-height:100%;flex-direction:column}#headerContainer{display:flex;flex-direction:column;padding:var(--ds-size-200, 1rem);padding-top:var(--ds-size-400, 2rem);padding-bottom:0}#headerContainer .titleRow{display:flex;flex-direction:row;justify-content:space-between;gap:var(--ds-size-100, 0.5rem)}#headerContainer .header{max-width:calc(100vw - var(--ds-size-900, 4.5rem));padding-top:var(--ds-size-200, 1rem)}#headerContainer .subheader{width:100%}#closeButton [auro-icon]{--ds-auro-icon-size: var(--ds-size-500, 2.5rem)}#bodyContainer{position:relative;overflow:auto;flex:1}:host([isfullscreen]) #bibTemplate{max-height:100dvh}:host([isfullscreen]) #bodyContainer{margin-top:var(--ds-size-100, 0.5rem)}#footerContainer{padding:var(--ds-size-200, 1rem)}`;
6771
6782
 
6772
6783
  var tokenCss = css`:host{--ds-auro-dropdownbib-header-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, 0.15));--ds-auro-dropdownbib-footer-container-color: var(--ds-basic-color-surface-default, #ffffff)}`;
6773
6784
 
@@ -7773,6 +7784,13 @@ class AuroCounterGroup extends AuroElement {
7773
7784
  */
7774
7785
  configureDropdownCounters() {
7775
7786
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
7787
+
7788
+ // Counter rows are slotted into the bib through multiple shadow roots
7789
+ // (dropdown → bib → bibtemplate → counter-group → counter), so the floater's
7790
+ // `:focus-within` focus-loss check fails to match the dropdown host in Chromium
7791
+ // and the bib auto-closes immediately after opening. Mirrors auro-select.
7792
+ this.dropdown.noHideOnThisFocusLoss = true;
7793
+
7776
7794
  this.dropdown.requestUpdate();
7777
7795
 
7778
7796
  const counterWrapper = this.shadowRoot.querySelector('auro-counter-wrapper');
@@ -83,7 +83,8 @@ When `range` is set, each date cell's label includes its position relative to th
83
83
  | `rangeLabelEnd` | "range end" | Announced for the range end date. |
84
84
  | `rangeLabelBeforeRange` | "before range" | Announced for dates before the range start. |
85
85
  | `rangeLabelInRange` | "in range" | Announced for dates within the selected range. |
86
- | `rangeLabelAfterRange` | "after range" | Announced for dates after the range (or after start when no end is selected). |
86
+ | `rangeLabelAfterRange` | "after range" | Announced for dates after a fully selected range. |
87
+ | `rangeLabelEndPreview` | "previewing range end" | Announced for the focused cell while picking the range end (`dateFrom` set, `dateTo` not yet selected) so AT users know that pressing Enter would commit this cell as the range end. |
87
88
 
88
89
  <auro-header level="2" id="fullscreenBehavior">Fullscreen (Modal) Behavior</auro-header>
89
90
  On smaller viewports, the calendar bib opens as a fullscreen modal dialog:
@@ -7,68 +7,69 @@ The `auro-datepicker` component provides users with a way to select a date or da
7
7
 
8
8
  ## Properties
9
9
 
10
- | Property | Attribute | Modifiers | Type | Default | Description |
11
- |-----------------------------------|-----------------------------------|-----------|--------------------------------------------------|------------------------------|--------------------------------------------------|
12
- | `appearance` | `appearance` | | `'default' \| 'inverse'` | "'default'" | Defines whether the component will be on lighter or darker backgrounds. |
13
- | `autoPlacement` | `autoPlacement` | | `boolean` | "false" | If declared, bib's position will be automatically calculated where to appear. |
14
- | `blackoutDates` | `blackoutDates` | | `array` | [] | Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD). |
15
- | `blackoutLabel` | `blackoutLabel` | | `string` | "unavailable" | Label announced for blackout (disabled but in-range) date cells. |
16
- | `calendarEndDate` | `calendarEndDate` | | `string` | "undefined" | The last date that may be displayed in the calendar. |
17
- | `calendarEndDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarEndDate`. Returns `undefined` when `calendarEndDate` is empty or not a valid date. |
18
- | `calendarFocusDate` | `calendarFocusDate` | | `string` | "value" | The date that will first be visually rendered to the user in the calendar. |
19
- | `calendarFocusDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarFocusDate`. Returns `undefined` when `calendarFocusDate` is empty or not a valid date. |
20
- | `calendarGridLabel` | `calendarGridLabel` | | `string` | "Calendar days of the month" | Accessible label for the calendar grid containing the days of the month. |
21
- | `calendarStartDate` | `calendarStartDate` | | `string` | "undefined" | The first date that may be displayed in the calendar. |
22
- | `calendarStartDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarStartDate`. Returns `undefined` when `calendarStartDate` is empty or not a valid date. |
23
- | `centralDate` | `centralDate` | | `string` | | The date that determines the currently visible month. |
24
- | `centralDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `centralDate`. Returns `undefined` when `centralDate` is empty or not a valid date. |
25
- | `disabled` | `disabled` | | `boolean` | false | If set, disables the datepicker. |
26
- | `dvInputOnly` | `dvInputOnly` | | `boolean` | false | If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked. |
27
- | `error` | `error` | | `string` | | When defined, sets persistent validity to `customError` and sets the validation message to the attribute value. |
28
- | `format` | `format` | | `string` | | Specifies the date format. The default is `mm/dd/yyyy`. |
29
- | `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. |
30
- | `hasError` | | readonly | `boolean` | | Returns `true` when the datepicker has an active validation error. |
31
- | `inputmode` | `inputmode` | | `string` | | Exposes inputmode attribute for input. |
32
- | `largeFullscreenHeadline` | `largeFullscreenHeadline` | | `boolean` | false | If declared, make bib.fullscreen.headline in HeadingDisplay.<br />Otherwise, Heading 600. |
33
- | `layout` | `layout` | | `'classic' \| 'snowflake'` | "'classic'" | Sets the layout of the datepicker. |
34
- | `locale` | `locale` | | `string` | | Defines the locale of the element. Used to derive the date format when `format` is not explicitly set. |
35
- | `maxDate` | `maxDate` | | `string` | | Maximum date. All dates after will be disabled. |
36
- | `maxDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `maxDate`. Returns `undefined` when `maxDate` is empty or not a valid date. |
37
- | `minDate` | `minDate` | | `string` | | Minimum date. All dates before will be disabled. |
38
- | `minDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `minDate`. Returns `undefined` when `minDate` is empty or not a valid date. |
39
- | `monthNames` | `monthNames` | | `array` | | Names of all 12 months to render in the calendar.<br />When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`). |
40
- | `navLabelNextMonth` | `navLabelNextMonth` | | `string` | "Next month" | Accessible label for the next month navigation button. |
41
- | `navLabelPrevMonth` | `navLabelPrevMonth` | | `string` | "Previous month" | Accessible label for the previous month navigation button. |
42
- | `noFlip` | `noFlip` | | `boolean` | false | If declared, the bib will NOT flip to an alternate position<br />when there isn't enough space in the specified `placement`. |
43
- | `noValidate` | `noValidate` | | `boolean` | false | If set, disables auto-validation on blur. |
44
- | `offset` | `offset` | | `number` | "0" | Gap between the trigger element and bib. |
45
- | `onDark` | `onDark` | | `boolean` | false | DEPRECATED - use `appearance="inverse"` instead. |
46
- | `placeholder` | `placeholder` | | `string` | | Placeholder text to display in the input(s) when no value is set. |
47
- | `placeholderEndDate` | `placeholderEndDate` | | `string` | | Optional placeholder text to display in the second input when using date range.<br />By default, datepicker will use `placeholder` for both inputs if placeholder is<br />specified, but placeholderEndDate is not. |
48
- | `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. |
49
- | `range` | `range` | | `boolean` | false | If set, turns on date range functionality in auro-calendar. |
50
- | `rangeLabelAfterRange` | `rangeLabelAfterRange` | | `string` | "after range" | Label announced for cells after the range (or after start when no end is selected). |
51
- | `rangeLabelBeforeRange` | `rangeLabelBeforeRange` | | `string` | "before range" | Label announced for cells before the range start. |
52
- | `rangeLabelEnd` | `rangeLabelEnd` | | `string` | "range end" | Label announced for the range end date cell. |
53
- | `rangeLabelInRange` | `rangeLabelInRange` | | `string` | "in range" | Label announced for cells within the selected range. |
54
- | `rangeLabelStart` | `rangeLabelStart` | | `string` | "range start" | Label announced for the range start date cell. |
55
- | `referenceDates` | `referenceDates` | | `array` | | Dates that the user should have for reference as part of their decision making when selecting a date.<br />This should be a JSON string array of ISO date strings (`YYYY-MM-DD`). |
56
- | `required` | `required` | | `boolean` | false | Populates the `required` attribute on the input. Used for client-side validation. |
57
- | `setCustomValidity` | `setCustomValidity` | | `string` | | Sets a custom help text message to display for all validityStates. |
58
- | `setCustomValidityCustomError` | `setCustomValidityCustomError` | | `string` | | Custom help text message to display when validity = `customError`.<br />Also used as the validation message when a blackout date is typed into the input. |
59
- | `setCustomValidityRangeOverflow` | `setCustomValidityRangeOverflow` | | `string` | | Custom help text message to display when validity = `rangeOverflow`. |
60
- | `setCustomValidityRangeUnderflow` | `setCustomValidityRangeUnderflow` | | `string` | | Custom help text message to display when validity = `rangeUnderflow`. |
61
- | `setCustomValidityValueMissing` | `setCustomValidityValueMissing` | | `string` | | Custom help text message to display when validity = `valueMissing`. |
62
- | `shape` | | | `string` | "classic" | |
63
- | `shift` | `shift` | | `boolean` | false | If declared, the dropdown will shift its position to avoid being cut off by the viewport. |
64
- | `size` | | | `string` | "lg" | |
65
- | `stacked` | `stacked` | | `boolean` | false | Set true to make datepicker stacked style. |
66
- | `validity` | `validity` | | `string` | "undefined" | Specifies the `validityState` this element is in. |
67
- | `value` | `value` | | `string` | "undefined" | Value selected for the datepicker. |
68
- | `valueEnd` | `valueEnd` | | `string` | "undefined" | Value selected for the second datepicker when using date range. |
69
- | `valueEndObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `valueEnd`. Returns `undefined` when `valueEnd` is empty or not a valid date. |
70
- | `valueObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `value`. Returns `undefined` when `value` is empty or not a valid date. |
71
- | `values` | | readonly | `string[]` | | A convenience wrapper for `value` and `valueEnd`, uses the new Auro "array value pattern". |
10
+ | Property | Attribute | Modifiers | Type | Default | Description |
11
+ |-----------------------------------|-----------------------------------|-----------|--------------------------------------------------|--------------------------------|--------------------------------------------------|
12
+ | `appearance` | `appearance` | | `'default' \| 'inverse'` | "'default'" | Defines whether the component will be on lighter or darker backgrounds. |
13
+ | `autoPlacement` | `autoPlacement` | | `boolean` | "false" | If declared, bib's position will be automatically calculated where to appear. |
14
+ | `blackoutDates` | `blackoutDates` | | `array` | [] | Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD). |
15
+ | `blackoutLabel` | `blackoutLabel` | | `string` | "'unavailable'" | Label announced for blackout (disabled but in-range) date cells. |
16
+ | `calendarEndDate` | `calendarEndDate` | | `string` | "undefined" | The last date that may be displayed in the calendar. |
17
+ | `calendarEndDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarEndDate`. Returns `undefined` when `calendarEndDate` is empty or not a valid date. |
18
+ | `calendarFocusDate` | `calendarFocusDate` | | `string` | "value" | The date that will first be visually rendered to the user in the calendar. |
19
+ | `calendarFocusDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarFocusDate`. Returns `undefined` when `calendarFocusDate` is empty or not a valid date. |
20
+ | `calendarGridLabel` | `calendarGridLabel` | | `string` | "'Calendar days of the month'" | Accessible label for the calendar grid containing the days of the month. |
21
+ | `calendarStartDate` | `calendarStartDate` | | `string` | "undefined" | The first date that may be displayed in the calendar. |
22
+ | `calendarStartDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `calendarStartDate`. Returns `undefined` when `calendarStartDate` is empty or not a valid date. |
23
+ | `centralDate` | `centralDate` | | `string` | | The date that determines the currently visible month. |
24
+ | `centralDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `centralDate`. Returns `undefined` when `centralDate` is empty or not a valid date. |
25
+ | `disabled` | `disabled` | | `boolean` | false | If set, disables the datepicker. |
26
+ | `dvInputOnly` | `dvInputOnly` | | `boolean` | false | If defined, the display value slot content will only mask the HTML5 input element. The input's label will not be masked. |
27
+ | `error` | `error` | | `string` | | When defined, sets persistent validity to `customError` and sets the validation message to the attribute value. |
28
+ | `format` | `format` | | `string` | | Specifies the date format. The default is `mm/dd/yyyy`. |
29
+ | `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. |
30
+ | `hasError` | | readonly | `boolean` | | Returns `true` when the datepicker has an active validation error. |
31
+ | `inputmode` | `inputmode` | | `string` | | Exposes inputmode attribute for input. |
32
+ | `largeFullscreenHeadline` | `largeFullscreenHeadline` | | `boolean` | false | If declared, make bib.fullscreen.headline in HeadingDisplay.<br />Otherwise, Heading 600. |
33
+ | `layout` | `layout` | | `'classic' \| 'snowflake'` | "'classic'" | Sets the layout of the datepicker. |
34
+ | `locale` | `locale` | | `string` | | Defines the locale of the element. Used to derive the date format when `format` is not explicitly set. |
35
+ | `maxDate` | `maxDate` | | `string` | | Maximum date. All dates after will be disabled. |
36
+ | `maxDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `maxDate`. Returns `undefined` when `maxDate` is empty or not a valid date. |
37
+ | `minDate` | `minDate` | | `string` | | Minimum date. All dates before will be disabled. |
38
+ | `minDateObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `minDate`. Returns `undefined` when `minDate` is empty or not a valid date. |
39
+ | `monthNames` | `monthNames` | | `array` | | Names of all 12 months to render in the calendar.<br />When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`). |
40
+ | `navLabelNextMonth` | `navLabelNextMonth` | | `string` | "'Next month'" | Accessible label for the next month navigation button. |
41
+ | `navLabelPrevMonth` | `navLabelPrevMonth` | | `string` | "'Previous month'" | Accessible label for the previous month navigation button. |
42
+ | `noFlip` | `noFlip` | | `boolean` | false | If declared, the bib will NOT flip to an alternate position<br />when there isn't enough space in the specified `placement`. |
43
+ | `noValidate` | `noValidate` | | `boolean` | false | If set, disables auto-validation on blur. |
44
+ | `offset` | `offset` | | `number` | "0" | Gap between the trigger element and bib. |
45
+ | `onDark` | `onDark` | | `boolean` | false | DEPRECATED - use `appearance="inverse"` instead. |
46
+ | `placeholder` | `placeholder` | | `string` | | Placeholder text to display in the input(s) when no value is set. |
47
+ | `placeholderEndDate` | `placeholderEndDate` | | `string` | | Optional placeholder text to display in the second input when using date range.<br />By default, datepicker will use `placeholder` for both inputs if placeholder is<br />specified, but placeholderEndDate is not. |
48
+ | `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. |
49
+ | `range` | `range` | | `boolean` | false | If set, turns on date range functionality in auro-calendar. |
50
+ | `rangeLabelAfterRange` | `rangeLabelAfterRange` | | `string` | "'after range'" | Label announced for cells after a fully selected range (both<br />`dateFrom` and `dateTo` are set). While a range is still being<br />picked (`dateFrom` set, `dateTo` unset), focused cells past the<br />start use `rangeLabelEndPreview` instead. |
51
+ | `rangeLabelBeforeRange` | `rangeLabelBeforeRange` | | `string` | "'before range'" | Label announced for cells before the range start. |
52
+ | `rangeLabelEnd` | `rangeLabelEnd` | | `string` | "'range end'" | Label announced for the range end date cell. |
53
+ | `rangeLabelEndPreview` | `rangeLabelEndPreview` | | `string` | "'previewing range end'" | Label announced for the focused cell while previewing a range end<br />(dateFrom set, dateTo not yet selected). Tells AT users that<br />pressing Enter would commit this cell as the range end. |
54
+ | `rangeLabelInRange` | `rangeLabelInRange` | | `string` | "'in range'" | Label announced for cells within the selected range. |
55
+ | `rangeLabelStart` | `rangeLabelStart` | | `string` | "'range start'" | Label announced for the range start date cell. |
56
+ | `referenceDates` | `referenceDates` | | `array` | | Dates that the user should have for reference as part of their decision-making when selecting a date.<br />This should be a JSON string array of ISO date strings (`YYYY-MM-DD`). |
57
+ | `required` | `required` | | `boolean` | false | Populates the `required` attribute on the input. Used for client-side validation. |
58
+ | `setCustomValidity` | `setCustomValidity` | | `string` | | Sets a custom help text message to display for all validityStates. |
59
+ | `setCustomValidityCustomError` | `setCustomValidityCustomError` | | `string` | | Custom help text message to display when validity = `customError`.<br />Also used as the validation message when a blackout date is typed into the input. |
60
+ | `setCustomValidityRangeOverflow` | `setCustomValidityRangeOverflow` | | `string` | | Custom help text message to display when validity = `rangeOverflow`. |
61
+ | `setCustomValidityRangeUnderflow` | `setCustomValidityRangeUnderflow` | | `string` | | Custom help text message to display when validity = `rangeUnderflow`. |
62
+ | `setCustomValidityValueMissing` | `setCustomValidityValueMissing` | | `string` | | Custom help text message to display when validity = `valueMissing`. |
63
+ | `shape` | | | `string` | "classic" | |
64
+ | `shift` | `shift` | | `boolean` | false | If declared, the dropdown will shift its position to avoid being cut off by the viewport. |
65
+ | `size` | | | `string` | "lg" | |
66
+ | `stacked` | `stacked` | | `boolean` | false | Set true to make datepicker stacked style. |
67
+ | `validity` | `validity` | | `string` | "undefined" | Specifies the `validityState` this element is in. |
68
+ | `value` | `value` | | `string` | "undefined" | Value selected for the datepicker. |
69
+ | `valueEnd` | `valueEnd` | | `string` | "undefined" | Value selected for the second datepicker when using date range. |
70
+ | `valueEndObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `valueEnd`. Returns `undefined` when `valueEnd` is empty or not a valid date. |
71
+ | `valueObject` | | readonly | `Date \| undefined` | | Read-only `Date` object derived from `value`. Returns `undefined` when `value` is empty or not a valid date. |
72
+ | `values` | | readonly | `string[]` | | A convenience wrapper for `value` and `valueEnd`, uses the new Auro "array value pattern". |
72
73
 
73
74
  ## Methods
74
75
 
@@ -109,6 +110,8 @@ The `auro-datepicker` component provides users with a way to select a date or da
109
110
  | `fromLabel` | Defines the label content for the first input. |
110
111
  | `helpText` | Defines the content of the helpText. |
111
112
  | `label` | Defines the label content for the entire datepicker when `layout="snowflake"`. |
113
+ | `optionalFromLabel` | Overrides the "(optional)" text rendered next to the first input's label when the datepicker is not `required`. |
114
+ | `optionalToLabel` | Overrides the "(optional)" text rendered next to the second input's label when `range` is set and the datepicker is not `required`. |
112
115
  | `popover_YYYY_MM_DD` | Defines the content to display in the auro-calendar-cell popover for the specified date. |
113
116
  | `toLabel` | Defines the label content for the second input when the `range` attribute is used. |
114
117