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

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 (141) 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.min.js +8 -6
  4. package/components/checkbox/demo/getting-started.min.js +8 -6
  5. package/components/checkbox/demo/index.min.js +8 -6
  6. package/components/checkbox/dist/index.js +8 -6
  7. package/components/checkbox/dist/registered.js +8 -6
  8. package/components/combobox/README.md +1 -1
  9. package/components/combobox/demo/customize.md +2 -10
  10. package/components/combobox/demo/customize.min.js +386 -305
  11. package/components/combobox/demo/getting-started.min.js +386 -301
  12. package/components/combobox/demo/index.md +1 -1
  13. package/components/combobox/demo/index.min.js +386 -301
  14. package/components/combobox/demo/keyboard-behavior.md +2 -142
  15. package/components/combobox/demo/readme.md +1 -1
  16. package/components/combobox/demo/why-combobox.md +2 -2
  17. package/components/combobox/dist/auro-combobox.d.ts +23 -16
  18. package/components/combobox/dist/index.js +385 -300
  19. package/components/combobox/dist/registered.js +385 -300
  20. package/components/counter/demo/customize.min.js +18 -8
  21. package/components/counter/demo/index.min.js +18 -8
  22. package/components/counter/dist/index.js +18 -8
  23. package/components/counter/dist/registered.js +18 -8
  24. package/components/datepicker/demo/accessibility.md +2 -1
  25. package/components/datepicker/demo/api.md +63 -62
  26. package/components/datepicker/demo/customize.md +12 -1
  27. package/components/datepicker/demo/customize.min.js +932 -335
  28. package/components/datepicker/demo/index.min.js +932 -335
  29. package/components/datepicker/dist/{src/auro-calendar-cell.d.ts → auro-calendar-cell.d.ts} +20 -3
  30. package/components/datepicker/dist/{src/auro-calendar.d.ts → auro-calendar.d.ts} +121 -7
  31. package/components/datepicker/dist/{src/auro-datepicker.d.ts → auro-datepicker.d.ts} +78 -5
  32. package/components/datepicker/dist/blackoutUtils.d.ts +43 -0
  33. package/components/datepicker/dist/index.js +932 -335
  34. package/components/datepicker/dist/registered.js +932 -335
  35. package/components/dropdown/demo/customize.min.js +2 -1
  36. package/components/dropdown/demo/getting-started.min.js +2 -1
  37. package/components/dropdown/demo/index.min.js +2 -1
  38. package/components/dropdown/dist/index.js +2 -1
  39. package/components/dropdown/dist/registered.js +2 -1
  40. package/components/form/demo/customize.min.js +1690 -826
  41. package/components/form/demo/getting-started.min.js +1690 -826
  42. package/components/form/demo/index.min.js +1690 -826
  43. package/components/form/demo/registerDemoDeps.min.js +1690 -826
  44. package/components/input/demo/api.md +5 -5
  45. package/components/input/demo/customize.md +8 -8
  46. package/components/input/demo/customize.min.js +137 -95
  47. package/components/input/demo/getting-started.min.js +137 -95
  48. package/components/input/demo/index.min.js +137 -95
  49. package/components/input/dist/base-input.d.ts +33 -44
  50. package/components/input/dist/index.js +150 -96
  51. package/components/input/dist/registered.js +137 -95
  52. package/components/radio/demo/customize.min.js +8 -6
  53. package/components/radio/demo/getting-started.min.js +8 -6
  54. package/components/radio/demo/index.min.js +8 -6
  55. package/components/radio/dist/index.js +8 -6
  56. package/components/radio/dist/registered.js +8 -6
  57. package/components/select/demo/customize.md +86 -0
  58. package/components/select/demo/customize.min.js +194 -68
  59. package/components/select/demo/getting-started.min.js +196 -115
  60. package/components/select/demo/index.min.js +194 -68
  61. package/components/select/demo/keyboard-behavior.md +18 -4
  62. package/components/select/dist/auro-select.d.ts +20 -8
  63. package/components/select/dist/index.js +194 -68
  64. package/components/select/dist/registered.js +194 -68
  65. package/custom-elements.json +2365 -1819
  66. package/package.json +6 -2
  67. package/components/checkbox/demo/customize.js +0 -22
  68. package/components/checkbox/demo/demo-support.js +0 -1
  69. package/components/checkbox/demo/getting-started.js +0 -22
  70. package/components/checkbox/demo/index.js +0 -8
  71. package/components/checkbox/demo/styles.scss +0 -1
  72. package/components/combobox/demo/customize.js +0 -24
  73. package/components/combobox/demo/demo-support.js +0 -1
  74. package/components/combobox/demo/getting-started.js +0 -21
  75. package/components/combobox/demo/index.js +0 -23
  76. package/components/combobox/demo/styles.scss +0 -1
  77. package/components/counter/demo/customize.js +0 -21
  78. package/components/counter/demo/demo-support.js +0 -1
  79. package/components/counter/demo/index.js +0 -21
  80. package/components/counter/demo/styles.scss +0 -1
  81. package/components/datepicker/demo/customize.js +0 -17
  82. package/components/datepicker/demo/demo-support.js +0 -1
  83. package/components/datepicker/demo/index.js +0 -23
  84. package/components/datepicker/demo/styles.scss +0 -1
  85. package/components/dropdown/demo/customize.js +0 -9
  86. package/components/dropdown/demo/demo-support.js +0 -1
  87. package/components/dropdown/demo/getting-started.js +0 -9
  88. package/components/dropdown/demo/index.js +0 -16
  89. package/components/dropdown/demo/styles.scss +0 -1
  90. package/components/form/demo/customize.js +0 -28
  91. package/components/form/demo/demo-support.js +0 -1
  92. package/components/form/demo/getting-started.js +0 -9
  93. package/components/form/demo/index.js +0 -5
  94. package/components/form/demo/registerDemoDeps.js +0 -23
  95. package/components/form/demo/styles.scss +0 -1
  96. package/components/input/demo/customize.js +0 -25
  97. package/components/input/demo/demo-support.js +0 -1
  98. package/components/input/demo/getting-started.js +0 -8
  99. package/components/input/demo/index.js +0 -8
  100. package/components/input/demo/styles.css +0 -974
  101. package/components/input/demo/styles.scss +0 -1
  102. package/components/menu/demo/demo-support.js +0 -1
  103. package/components/menu/demo/index.js +0 -25
  104. package/components/menu/demo/styles.scss +0 -1
  105. package/components/radio/demo/customize.js +0 -22
  106. package/components/radio/demo/demo-support.js +0 -1
  107. package/components/radio/demo/getting-started.js +0 -24
  108. package/components/radio/demo/index.js +0 -8
  109. package/components/radio/demo/styles.scss +0 -1
  110. package/components/select/demo/customize.js +0 -11
  111. package/components/select/demo/demo-support.js +0 -1
  112. package/components/select/demo/getting-started.js +0 -26
  113. package/components/select/demo/index.js +0 -11
  114. package/components/select/demo/styles.scss +0 -1
  115. /package/components/datepicker/dist/{src/auro-calendar-month.d.ts → auro-calendar-month.d.ts} +0 -0
  116. /package/components/datepicker/dist/{src/buttonVersion.d.ts → buttonVersion.d.ts} +0 -0
  117. /package/components/datepicker/dist/{src/datepickerKeyboardStrategy.d.ts → datepickerKeyboardStrategy.d.ts} +0 -0
  118. /package/components/datepicker/dist/{src/iconVersion.d.ts → iconVersion.d.ts} +0 -0
  119. /package/components/datepicker/dist/{src/index.d.ts → index.d.ts} +0 -0
  120. /package/components/datepicker/dist/{src/popoverVersion.d.ts → popoverVersion.d.ts} +0 -0
  121. /package/components/datepicker/dist/{src/styles → styles}/classic/color-css.d.ts +0 -0
  122. /package/components/datepicker/dist/{src/styles → styles}/classic/style-css.d.ts +0 -0
  123. /package/components/datepicker/dist/{src/styles → styles}/color-calendar-css.d.ts +0 -0
  124. /package/components/datepicker/dist/{src/styles → styles}/color-cell-css.d.ts +0 -0
  125. /package/components/datepicker/dist/{src/styles → styles}/color-css.d.ts +0 -0
  126. /package/components/datepicker/dist/{src/styles → styles}/color-month-css.d.ts +0 -0
  127. /package/components/datepicker/dist/{src/styles → styles}/shapeSize-css.d.ts +0 -0
  128. /package/components/datepicker/dist/{src/styles → styles}/snowflake/color-css.d.ts +0 -0
  129. /package/components/datepicker/dist/{src/styles → styles}/snowflake/style-css.d.ts +0 -0
  130. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-cell-css.d.ts +0 -0
  131. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-css.d.ts +0 -0
  132. /package/components/datepicker/dist/{src/styles → styles}/style-auro-calendar-month-css.d.ts +0 -0
  133. /package/components/datepicker/dist/{src/styles → styles}/style-css.d.ts +0 -0
  134. /package/components/datepicker/dist/{src/styles → styles}/tokens-css.d.ts +0 -0
  135. /package/components/datepicker/dist/{src/utilities.d.ts → utilities.d.ts} +0 -0
  136. /package/components/datepicker/dist/{src/utilitiesCalendar.d.ts → utilitiesCalendar.d.ts} +0 -0
  137. /package/components/datepicker/dist/{src/utilitiesCalendarRender.d.ts → utilitiesCalendarRender.d.ts} +0 -0
  138. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/day.d.ts +0 -0
  139. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-calendar.d.ts +0 -0
  140. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker-cell.d.ts +0 -0
  141. /package/components/datepicker/dist/{src/vendor → vendor}/wc-range-datepicker/range-datepicker.d.ts +0 -0
@@ -640,15 +640,17 @@ let AuroFormValidation$1 = class AuroFormValidation {
640
640
  );
641
641
  }
642
642
 
643
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
644
- if (this.auroInputElements?.length === 2) {
645
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
643
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
644
+
645
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
646
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
647
+ // field (datepicker is the intended consumer — start/end are independently required).
648
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
649
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
646
650
  hasValue = false;
647
651
  }
648
652
  }
649
653
 
650
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
651
-
652
654
  if (isCombobox) {
653
655
 
654
656
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -1356,7 +1358,7 @@ function normalizeDates$1(context, ...dates) {
1356
1358
  * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))
1357
1359
  * //=> Tue Sep 02 2014 00:00:00
1358
1360
  */
1359
- function startOfDay$2(date, options) {
1361
+ function startOfDay$1(date, options) {
1360
1362
  const _date = toDate$1(date, options?.in);
1361
1363
  _date.setHours(0, 0, 0, 0);
1362
1364
  return _date;
@@ -1404,8 +1406,8 @@ function differenceInCalendarDays$1(laterDate, earlierDate, options) {
1404
1406
  earlierDate,
1405
1407
  );
1406
1408
 
1407
- const laterStartOfDay = startOfDay$2(laterDate_);
1408
- const earlierStartOfDay = startOfDay$2(earlierDate_);
1409
+ const laterStartOfDay = startOfDay$1(laterDate_);
1410
+ const earlierStartOfDay = startOfDay$1(earlierDate_);
1409
1411
 
1410
1412
  const laterTimestamp =
1411
1413
  +laterStartOfDay - getTimezoneOffsetInMilliseconds$1(laterStartOfDay);
@@ -10507,6 +10509,13 @@ let AuroInputUtilities$1 = class AuroInputUtilities {
10507
10509
  * @returns {string | undefined}
10508
10510
  */
10509
10511
  toFormattedValue(valueObject, format) {
10512
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
10513
+ // `format` argument has to fail gracefully rather than throw on
10514
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
10515
+ // as "no format → no display value".
10516
+ if (!format) {
10517
+ return undefined;
10518
+ }
10510
10519
  const normalizedFormat = format.toLowerCase();
10511
10520
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
10512
10521
 
@@ -10767,11 +10776,11 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
10767
10776
 
10768
10777
  var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
10769
10778
 
10770
- var styleCss$7 = css`.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
10779
+ var styleCss$7 = css`.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
10771
10780
 
10772
- var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
10781
+ var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus-visible{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);outline:2px solid var(--ds-basic-color-brand-primary, #01426a);outline-offset:-2px;box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
10773
10782
 
10774
- var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:376px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
10783
+ var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:336px;margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:376px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%;border-radius:10px;overflow:hidden}.tr:not(:last-of-type){margin-bottom:var(--ds-size-100, 0.5rem)}`;
10775
10784
 
10776
10785
  var colorCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
10777
10786
 
@@ -10863,8 +10872,8 @@ class RangeDatepickerCell extends LitElement {
10863
10872
  const parsedDateFrom = parseInt(dateFrom, 10);
10864
10873
  const parsedDateTo = parseInt(dateTo, 10);
10865
10874
  if (day) {
10866
- if (getTime(startOfDay$2(parsedDateTo * 1000)) / 1000 === day.date ||
10867
- getTime(startOfDay$2(parsedDateFrom * 1000)) / 1000 === day.date) {
10875
+ if (getTime(startOfDay$1(parsedDateTo * 1000)) / 1000 === day.date ||
10876
+ getTime(startOfDay$1(parsedDateFrom * 1000)) / 1000 === day.date) {
10868
10877
  this.selected = true;
10869
10878
  }
10870
10879
  if (((hoveredDate === day.date || day.date < hoveredDate) &&
@@ -11052,7 +11061,7 @@ class RangeDatepickerCalendar extends LitElement {
11052
11061
  this.dayNamesOfTheWeek = [];
11053
11062
  this.daysOfMonth = [];
11054
11063
  this._locale = null;
11055
- this.currentDate = parseInt(format$1(startOfDay$2(Date.now()), 't'), 10);
11064
+ this.currentDate = parseInt(format$1(startOfDay$1(Date.now()), 't'), 10);
11056
11065
  this.localeChanged();
11057
11066
  this.yearAndMonthChanged(this.year, this.month);
11058
11067
  }
@@ -11526,7 +11535,7 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
11526
11535
  __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
11527
11536
  AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
11528
11537
 
11529
- var styleCss$5 = css`.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
11538
+ var styleCss$5 = css`.body-default{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-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{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-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.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-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{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-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{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-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{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-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.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-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{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-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-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-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{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-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.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-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.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-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.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-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.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-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.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-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.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-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.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-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.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-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.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-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.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-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.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-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);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-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.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-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);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-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.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-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.rangeDepartDate.lastHoveredDate::before{border-radius:10px}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
11530
11539
 
11531
11540
  var colorCss$5 = css`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
11532
11541
 
@@ -11551,13 +11560,103 @@ class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,cl
11551
11560
 
11552
11561
  var popoverVersion = '6.0.1';
11553
11562
 
11554
- /* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
11563
+ /**
11564
+ * Single source of truth for parsing and matching blackout dates across the
11565
+ * datepicker. Both `auro-calendar` (memoized Set + `isDateBlackout`) and the
11566
+ * pre-`firstUpdated` fallback inside `auro-calendar-cell` route through these
11567
+ * helpers so the YYYY-MM-DD → seconds conversion and the merge-with-legacy
11568
+ * `disabledDays` rules are defined exactly once.
11569
+ */
11555
11570
 
11556
- const startOfDay$1 = (ms) => {
11557
- const date = new Date(ms);
11558
- date.setHours(0, 0, 0, 0);
11559
- return date.getTime();
11560
- };
11571
+ /**
11572
+ * Converts a `YYYY-MM-DD` ISO date string to a Unix timestamp (seconds)
11573
+ * representing local midnight on that calendar day. Returns `null` for
11574
+ * inputs that don't parse to a finite timestamp.
11575
+ *
11576
+ * Uses the `new Date(year, monthIndex, day)` constructor (NOT
11577
+ * `new Date(isoStr)`) so the result is local-midnight rather than UTC
11578
+ * midnight — required to keep the calendar grid aligned with the user's
11579
+ * local calendar day in negative-offset timezones.
11580
+ *
11581
+ * @param {string} isoStr - Date string in `YYYY-MM-DD` format.
11582
+ * @returns {number|null} Local-midnight Unix timestamp (seconds), or null.
11583
+ */
11584
+ function parseIsoToTimestamp(isoStr) {
11585
+ if (typeof isoStr !== 'string') {
11586
+ return null;
11587
+ }
11588
+ const parts = isoStr.split('-');
11589
+ if (parts.length !== 3) {
11590
+ return null;
11591
+ }
11592
+ const year = parseInt(parts[0], 10);
11593
+ const month = parseInt(parts[1], 10);
11594
+ const day = parseInt(parts[2], 10);
11595
+ if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {
11596
+ return null;
11597
+ }
11598
+ // Reject overflow values like "2024-13-40" — JS `new Date(year, month, day)`
11599
+ // silently normalizes those to a different calendar day, which would
11600
+ // disable the wrong date if we let the result through.
11601
+ if (month < 1 || month > 12 || day < 1 || day > 31) {
11602
+ return null;
11603
+ }
11604
+ const date = new Date(year, month - 1, day);
11605
+ // Guard the residual case where JS still rolls a value (e.g. Feb 30 → Mar 2).
11606
+ // After construction, getFullYear/getMonth/getDate should match the inputs.
11607
+ if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {
11608
+ return null;
11609
+ }
11610
+ const ts = Math.floor(date.getTime() / 1000);
11611
+ return Number.isFinite(ts) ? ts : null;
11612
+ }
11613
+
11614
+ /**
11615
+ * Builds a `Set<number>` of seconds-since-epoch timestamps covering both the
11616
+ * legacy `disabledDays` (already-numeric) array and the ISO `blackoutDates`
11617
+ * array. Use this for O(1) membership checks in hot paths.
11618
+ *
11619
+ * @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
11620
+ * @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
11621
+ * @returns {Set<number>}
11622
+ */
11623
+ function buildBlackoutSet(disabledDays, blackoutDates) {
11624
+ const set = new Set();
11625
+ if (Array.isArray(disabledDays)) {
11626
+ for (const day of disabledDays) {
11627
+ const ts = parseInt(day, 10);
11628
+ if (Number.isFinite(ts)) {
11629
+ set.add(ts);
11630
+ }
11631
+ }
11632
+ }
11633
+ if (Array.isArray(blackoutDates)) {
11634
+ for (const isoStr of blackoutDates) {
11635
+ const ts = parseIsoToTimestamp(isoStr);
11636
+ if (ts !== null) {
11637
+ set.add(ts);
11638
+ }
11639
+ }
11640
+ }
11641
+ return set;
11642
+ }
11643
+
11644
+ /**
11645
+ * One-shot membership test for a single timestamp against both blackout
11646
+ * sources. Allocates a Set on each call; only use this in cold paths
11647
+ * (e.g. the pre-`firstUpdated` cell fallback). Hot paths should hold the
11648
+ * Set returned from `buildBlackoutSet` and `.has(ts)` directly.
11649
+ *
11650
+ * @param {number} dateTs - Unix timestamp (seconds) to test.
11651
+ * @param {Array<string|number>|undefined} disabledDays - Legacy timestamp array.
11652
+ * @param {Array<string>|undefined} blackoutDates - ISO `YYYY-MM-DD` array.
11653
+ * @returns {boolean}
11654
+ */
11655
+ function isBlackoutTimestamp(dateTs, disabledDays, blackoutDates) {
11656
+ return buildBlackoutSet(disabledDays, blackoutDates).has(dateTs);
11657
+ }
11658
+
11659
+ /* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
11561
11660
 
11562
11661
  class AuroCalendarCell extends LitElement {
11563
11662
  constructor() {
@@ -11605,6 +11704,14 @@ class AuroCalendarCell extends LitElement {
11605
11704
  type: Boolean,
11606
11705
  reflect: true
11607
11706
  },
11707
+ /**
11708
+ * @deprecated Propagated from the legacy `auro-calendar.disabledDays`
11709
+ * Unix-timestamp array. The cell honors it for backward compatibility
11710
+ * (see the divergence-check fallback inside `isBlackout`), but
11711
+ * consumers should migrate to `auro-datepicker.blackoutDates`
11712
+ * (YYYY-MM-DD ISO strings). The calendar emits a one-time
11713
+ * deprecation warning the first time a non-empty value is observed.
11714
+ */
11608
11715
  disabledDays: { type: Array },
11609
11716
  isCurrentDate: { type: Boolean },
11610
11717
  locale: { type: String },
@@ -11650,8 +11757,8 @@ class AuroCalendarCell extends LitElement {
11650
11757
  const parsedDateTo = parseInt(dateTo, 10);
11651
11758
 
11652
11759
  if (day) {
11653
- const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
11654
- const returnTimestamp = startOfDay$1(parsedDateTo * 1000) / 1000;
11760
+ const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
11761
+ const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
11655
11762
 
11656
11763
  if (day.date === departTimestamp || day.date === returnTimestamp) {
11657
11764
  this.selected = true;
@@ -11735,27 +11842,33 @@ class AuroCalendarCell extends LitElement {
11735
11842
  return false;
11736
11843
  }
11737
11844
 
11738
- // Check against disabledDays timestamps (legacy path)
11739
- if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
11740
- (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
11741
- return true;
11742
- }
11743
-
11744
- // Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
11745
- const blackoutDates = this.datepicker?.blackoutDates;
11746
-
11747
- if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
11748
- const date = new Date(this.day.date * 1000);
11749
- const yyyy = date.getFullYear();
11750
- const mm = String(date.getMonth() + 1).padStart(2, '0');
11751
- const dd = String(date.getDate()).padStart(2, '0');
11752
- const cellDate = `${yyyy}-${mm}-${dd}`;
11753
- if (blackoutDates.includes(cellDate)) {
11845
+ // Delegate to the calendar's memoized blackout Set for O(1) lookup
11846
+ // (instead of rescanning disabledDays + blackoutDates per render). The
11847
+ // Set is rebuilt only when either source array reference changes — see
11848
+ // auro-calendar.js#_getBlackoutSet.
11849
+ if (this.calendar && typeof this.calendar._getBlackoutSet === 'function') {
11850
+ if (this.calendar._getBlackoutSet().has(this.day.date)) {
11754
11851
  return true;
11755
11852
  }
11853
+ // If the cell's local disabledDays diverged from the calendar's (a
11854
+ // consumer or test mutated cell.disabledDays directly), the Set does
11855
+ // not reflect that addition — fall through to the per-cell scan only
11856
+ // when the reference no longer matches. Production data flow keeps
11857
+ // these identical, so this branch stays cold. Guarded with
11858
+ // Array.isArray to match `_getBlackoutSet`'s contract: non-array
11859
+ // values are treated as empty rather than crashing on `.findIndex`.
11860
+ if (Array.isArray(this.disabledDays) && this.disabledDays !== this.calendar.disabledDays && this.disabledDays.length > 0) {
11861
+ if (this.disabledDays.findIndex((dd) => parseInt(dd, 10) === this.day.date) !== -1) {
11862
+ return true;
11863
+ }
11864
+ }
11865
+ return false;
11756
11866
  }
11757
11867
 
11758
- return false;
11868
+ // Pre-firstUpdated fallback — the cell may render once before the
11869
+ // ancestor calendar is wired up. Routes through the shared
11870
+ // blackoutUtils helper so the parsing rules stay in one place.
11871
+ return isBlackoutTimestamp(this.day.date, this.disabledDays, this.datepicker?.blackoutDates);
11759
11872
  }
11760
11873
 
11761
11874
  /**
@@ -11861,12 +11974,12 @@ class AuroCalendarCell extends LitElement {
11861
11974
  const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
11862
11975
  if (!Number.isFinite(parsedDateFrom)) return null;
11863
11976
 
11864
- const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
11977
+ const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
11865
11978
  const dayDate = this.day.date;
11866
11979
 
11867
11980
  const parsedDateTo = Number.parseInt(this.dateTo, 10);
11868
11981
  const hasDateTo = Number.isFinite(parsedDateTo);
11869
- const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
11982
+ const returnTimestamp = hasDateTo ? new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
11870
11983
 
11871
11984
  if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
11872
11985
 
@@ -11876,7 +11989,9 @@ class AuroCalendarCell extends LitElement {
11876
11989
 
11877
11990
  if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
11878
11991
 
11879
- // After start date, no end date yet, or after end date
11992
+ if (!hasDateTo && dayDate > departTimestamp) return this.datepicker.rangeLabelEndPreview || 'previewing range end';
11993
+
11994
+ // After end date when both dateFrom and dateTo are set.
11880
11995
  return this.datepicker.rangeLabelAfterRange || 'after range';
11881
11996
  }
11882
11997
 
@@ -11889,7 +12004,7 @@ class AuroCalendarCell extends LitElement {
11889
12004
  */
11890
12005
  isDepartDate(day, dateFrom) {
11891
12006
  const parsedDateFrom = parseInt(dateFrom, 10);
11892
- const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
12007
+ const departTimestamp = new Date(parsedDateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
11893
12008
 
11894
12009
  return this.selected && day.date === departTimestamp;
11895
12010
  }
@@ -11904,7 +12019,7 @@ class AuroCalendarCell extends LitElement {
11904
12019
  */
11905
12020
  isReturnDate(day, dateFrom, dateTo) {
11906
12021
  const parsedDateTo = parseInt(dateTo, 10);
11907
- const returnTimestamp = startOfDay$1(parsedDateTo * 1000) / 1000;
12022
+ const returnTimestamp = new Date(parsedDateTo * 1000).setHours(0, 0, 0, 0) / 1000;
11908
12023
 
11909
12024
  return this.selected && day.date === returnTimestamp && dateFrom;
11910
12025
  }
@@ -12068,6 +12183,7 @@ class AuroCalendarCell extends LitElement {
12068
12183
  setTimeout(() => this.firstUpdated(), 0);
12069
12184
  return;
12070
12185
  }
12186
+ this.calendar = calendar;
12071
12187
  this.datepicker = calendar.datepicker;
12072
12188
  this._slotContentHandler = () => {
12073
12189
  this.handleSlotContent();
@@ -12125,15 +12241,28 @@ class AuroCalendarCell extends LitElement {
12125
12241
  this._cachedButton = this.shadowRoot.querySelector('button.day');
12126
12242
  });
12127
12243
 
12128
- // Update host-level aria attributes for ariaActiveDescendantElement.
12244
+ // Keep the host's gridcell aria attributes in sync with the day data.
12129
12245
  this.updateHostAria();
12130
12246
  }
12131
12247
 
12132
12248
  // Update host aria when selection changes (aria-selected, range labels)
12133
- if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
12249
+ // or when isCurrentDate flips (aria-current).
12250
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected') || properties.has('isCurrentDate')) {
12134
12251
  this.updateHostAria();
12135
12252
  }
12136
12253
 
12254
+ // When the rendered range shifts (month nav, min/max change), a cell
12255
+ // host may be re-rendered for a new date that is now out-of-range —
12256
+ // but its imperatively-set `active` flag and `activeCell` ring class
12257
+ // from the previous date persist because setActiveCell only iterates
12258
+ // focusable (in-range) cells when clearing the prior active state.
12259
+ // Drop the active state here so the disabled cell isn't left visually
12260
+ // ringed.
12261
+ if ((properties.has('day') || properties.has('min') || properties.has('max')) &&
12262
+ this.active && this.isOutOfRange(this.day, this.min, this.max)) {
12263
+ this.clearActive();
12264
+ }
12265
+
12137
12266
  // Configure popover when it first becomes rendered
12138
12267
  if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
12139
12268
  this.updateComplete.then(() => this.configurePopover());
@@ -12141,8 +12270,8 @@ class AuroCalendarCell extends LitElement {
12141
12270
  }
12142
12271
 
12143
12272
  /**
12144
- * Updates ARIA attributes on the host element so that
12145
- * ariaActiveDescendantElement can expose cell info to the SR.
12273
+ * Sets host-level ARIA so each cell exposes its date, selection state,
12274
+ * and blackout status to assistive tech browsing the month grid.
12146
12275
  * @private
12147
12276
  * @returns {void}
12148
12277
  */
@@ -12151,16 +12280,27 @@ class AuroCalendarCell extends LitElement {
12151
12280
 
12152
12281
  const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
12153
12282
  if (outOfRange) {
12283
+ // Strip every aria attribute the in-range branch may have set on a
12284
+ // previous render — if a cell flips from in-range to out-of-range
12285
+ // (calendar shifts months, minDate/maxDate change, etc.).
12154
12286
  this.removeAttribute('role');
12155
12287
  this.removeAttribute('aria-label');
12288
+ this.removeAttribute('aria-current');
12289
+ this.removeAttribute('aria-selected');
12290
+ this.removeAttribute('aria-disabled');
12156
12291
  return;
12157
12292
  }
12158
12293
 
12159
- // The host acts as the gridcell for ariaActiveDescendantElement.
12160
12294
  this.setAttribute('role', 'gridcell');
12161
12295
  this.setAttribute('aria-label', this.getAriaLabel());
12162
12296
  this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
12163
12297
 
12298
+ if (this.isCurrentDate) {
12299
+ this.setAttribute('aria-current', 'date');
12300
+ } else {
12301
+ this.removeAttribute('aria-current');
12302
+ }
12303
+
12164
12304
  if (this.isBlackout()) {
12165
12305
  this.setAttribute('aria-disabled', 'true');
12166
12306
  } else {
@@ -12175,7 +12315,7 @@ class AuroCalendarCell extends LitElement {
12175
12315
  * @returns {void}
12176
12316
  */
12177
12317
  focusButton() {
12178
- const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
12318
+ const button = this._cachedButton || this.shadowRoot.querySelector('button:not([disabled])');
12179
12319
  if (button) {
12180
12320
  button.focus({ focusVisible: true });
12181
12321
  }
@@ -12183,10 +12323,22 @@ class AuroCalendarCell extends LitElement {
12183
12323
 
12184
12324
  /**
12185
12325
  * Imperatively marks this cell as active without triggering a Lit re-render.
12186
- * Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
12326
+ * Buttons stay tabindex="-1" because DOM focus stays on the grid wrapper
12327
+ * arrow keys move the active cell imperatively and the live region carries
12328
+ * the SR announcement.
12329
+ *
12330
+ * Refuses to activate out-of-range cells: those are aria-hidden, have no
12331
+ * click/focus handlers, and are filtered out of `getFocusableCells`. The
12332
+ * active class showing on a disabled cell would be visually misleading,
12333
+ * so this guard is the single source of truth across every code path
12334
+ * that might call setActive (keyboard nav, focus restore, cell click).
12187
12335
  * @returns {void}
12188
12336
  */
12189
12337
  setActive() {
12338
+ if (this.isOutOfRange(this.day, this.min, this.max)) {
12339
+ return;
12340
+ }
12341
+
12190
12342
  this.active = true;
12191
12343
 
12192
12344
  // Show the popover when this cell becomes active via keyboard navigation.
@@ -12225,10 +12377,13 @@ class AuroCalendarCell extends LitElement {
12225
12377
  if (!btn || !this.day) return;
12226
12378
 
12227
12379
  const dayDate = this.day.date;
12228
- const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
12380
+ const departTimestamp = new Date(dateFrom * 1000).setHours(0, 0, 0, 0) / 1000;
12229
12381
  const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
12230
- const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
12231
- const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
12382
+ // `>=` so hovering the depart cell itself (a same-day round-trip
12383
+ // preview) still surfaces a visual cue: the depart cell receives both
12384
+ // rangeDepartDate and lastHoveredDate.
12385
+ const isLastHovered = dayDate === hoveredDate && hoveredDate >= departTimestamp;
12386
+ const isDepartWithPreview = dayDate === departTimestamp && hoveredDate >= departTimestamp;
12232
12387
 
12233
12388
  btn.classList.toggle('inRange', isInRange);
12234
12389
  btn.classList.toggle('lastHoveredDate', isLastHovered);
@@ -12286,7 +12441,6 @@ class AuroCalendarCell extends LitElement {
12286
12441
  @focus="${outOfRange ? undefined : this.handleFocus}"
12287
12442
  class="${classMap(buttonClasses)}"
12288
12443
  ?disabled="${outOfRange}"
12289
- aria-hidden="${outOfRange ? 'true' : nothing}"
12290
12444
  tabindex="-1">
12291
12445
  <div class="buttonWrapper" aria-hidden="true">
12292
12446
  <div class="currentDayMarker">${this.day?.title || nothing}</div>
@@ -12997,7 +13151,7 @@ class CalendarUtilities {
12997
13151
 
12998
13152
  var colorCss$4 = css`#headerContainer{box-shadow:var(--ds-auro-dropdownbib-header-boxshadow-color)}#footerContainer{background-color:var(--ds-auro-dropdownbib-footer-container-color)}`;
12999
13153
 
13000
- var styleCss$4 = 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)}`;
13154
+ var styleCss$4 = 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)}`;
13001
13155
 
13002
13156
  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)}`;
13003
13157
 
@@ -13392,7 +13546,7 @@ class AuroBibtemplate extends LitElement {
13392
13546
  }
13393
13547
  }
13394
13548
 
13395
- var formkitVersion$2 = '202606231948';
13549
+ var formkitVersion$2 = '202607010104';
13396
13550
 
13397
13551
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
13398
13552
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -13497,6 +13651,15 @@ class AuroCalendar extends RangeDatepicker {
13497
13651
  */
13498
13652
  this.activeCellDate = null;
13499
13653
 
13654
+ /**
13655
+ * Cached reference to the active cell host. Set by setActiveCell and
13656
+ * refreshed by scrollToActiveCell when its cache check misses (stale
13657
+ * or missing). Lets scrollToActiveCell skip a full cell scan on each
13658
+ * arrow key.
13659
+ * @private
13660
+ */
13661
+ this._activeCell = null;
13662
+
13500
13663
  /**
13501
13664
  * Whether the #calendarGrid wrapper currently has focus.
13502
13665
  * Used to determine whether the visualFocus ring should be shown.
@@ -13515,7 +13678,11 @@ class AuroCalendar extends RangeDatepicker {
13515
13678
  this.calendarRangeMonths = null;
13516
13679
 
13517
13680
  /**
13518
- * Legacy array of disabled-date timestamps.
13681
+ * @deprecated Use `auro-datepicker.blackoutDates` (an array of
13682
+ * `YYYY-MM-DD` ISO strings) instead. This legacy array of Unix
13683
+ * timestamps is still honored for backward compatibility but emits a
13684
+ * one-time `console.debug` the first time a non-empty value is observed.
13685
+ * Support will be removed in a future major release.
13519
13686
  * @private
13520
13687
  */
13521
13688
  this.disabledDays = [];
@@ -13772,17 +13939,44 @@ class AuroCalendar extends RangeDatepicker {
13772
13939
  * @returns {void}
13773
13940
  */
13774
13941
  updateActiveCellForVisibleMonth() {
13775
- // Use double-rAF to ensure child month/cell components have fully
13776
- // rendered and cached their button references before we set tabindex.
13777
- requestAnimationFrame(() => {
13778
- requestAnimationFrame(() => {
13779
- const newDate = this.computeActiveDate({ skipDateFrom: true });
13942
+ this._afterMonthRender(() => {
13943
+ const newDate = this.computeActiveDate({ skipDateFrom: true });
13780
13944
 
13781
- if (newDate !== null && newDate !== undefined) {
13782
- this.activeCellDate = newDate;
13783
- this.setActiveCell(this.activeCellDate);
13784
- }
13785
- });
13945
+ if (newDate !== null && newDate !== undefined) {
13946
+ this.activeCellDate = newDate;
13947
+ this.setActiveCell(this.activeCellDate);
13948
+ }
13949
+ });
13950
+ }
13951
+
13952
+ /**
13953
+ * Schedules `callback` two animation frames out, giving the child
13954
+ * `auro-formkit-calendar-month` and `auro-formkit-calendar-cell` elements
13955
+ * a full render-and-paint cycle to settle before the callback reads or
13956
+ * mutates DOM.
13957
+ *
13958
+ * Why two frames, not one:
13959
+ * 1. Lit batches property updates and renders in a microtask, so frame N
13960
+ * schedules the render but the new DOM may not be painted yet.
13961
+ * 2. Cells re-cache `_cachedButton` inside their own `updateComplete.then`,
13962
+ * which also lands a tick later. Reading buttons from frame N+1
13963
+ * (after both renders + cache refresh have flushed) reliably hits the
13964
+ * new month's cells.
13965
+ *
13966
+ * Used by every code path that calls `handleNextMonth`/`handlePrevMonth`
13967
+ * and then needs to inspect the freshly-rendered cells (cross-month
13968
+ * keyboard nav, boundary events, `updateActiveCellForVisibleMonth`).
13969
+ * Do NOT collapse to a single rAF — it intermittently lands before
13970
+ * `_cachedButton` is refreshed, which silently breaks focus restoration
13971
+ * and `setActiveCell` lookups.
13972
+ * @private
13973
+ * @param {() => void} callback - Runs once after the month re-render and
13974
+ * the cells' button caches have refreshed.
13975
+ * @returns {void}
13976
+ */
13977
+ _afterMonthRender(callback) {
13978
+ requestAnimationFrame(() => {
13979
+ requestAnimationFrame(callback);
13786
13980
  });
13787
13981
  }
13788
13982
 
@@ -13900,6 +14094,47 @@ class AuroCalendar extends RangeDatepicker {
13900
14094
  return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
13901
14095
  }
13902
14096
 
14097
+ /**
14098
+ * Picks the focusable cell whose date is closest to targetTs. Used as a
14099
+ * fallback after a month-boundary nav when the exact target date isn't
14100
+ * focusable — typically because the month re-render lagged or the date
14101
+ * was filtered out by isOutOfRange. When two cells are equidistant, the
14102
+ * navigation direction breaks the tie so the user moves the way they
14103
+ * pressed (forward → later cell, backward → earlier cell).
14104
+ * @private
14105
+ * @param {Array} cells - Focusable cells from getAllFocusableCells.
14106
+ * @param {Number} targetTs - Desired Unix timestamp (seconds).
14107
+ * @param {'next'|'prev'} direction - Navigation direction.
14108
+ * @returns {Object|null} The nearest cell, or null when cells is empty.
14109
+ */
14110
+ pickNearestCell(cells, targetTs, direction) {
14111
+ if (!cells.length) {
14112
+ return null;
14113
+ }
14114
+ const forward = direction === 'next';
14115
+ let best = null;
14116
+ let bestDelta = Infinity;
14117
+ cells.forEach((cell) => {
14118
+ if (!cell.day) {
14119
+ return;
14120
+ }
14121
+ const distance = Math.abs(cell.day.date - targetTs);
14122
+ if (distance < bestDelta) {
14123
+ best = cell;
14124
+ bestDelta = distance;
14125
+ return;
14126
+ }
14127
+ if (distance === bestDelta && best) {
14128
+ if (forward && cell.day.date > best.day.date) {
14129
+ best = cell;
14130
+ } else if (!forward && cell.day.date < best.day.date) {
14131
+ best = cell;
14132
+ }
14133
+ }
14134
+ });
14135
+ return best;
14136
+ }
14137
+
13903
14138
  /**
13904
14139
  * Gets all focusable cells across all rendered months.
13905
14140
  * @private
@@ -13916,9 +14151,9 @@ class AuroCalendar extends RangeDatepicker {
13916
14151
 
13917
14152
  /**
13918
14153
  * Sets the active cell across all months. Only one cell has tabindex="0" at a time.
13919
- * Uses imperative DOM manipulation — no Lit re-render triggered.
13920
- * Also updates ariaActiveDescendantElement on the grid wrapper so
13921
- * screen readers announce the active cell without moving DOM focus.
14154
+ * Uses imperative DOM manipulation — no Lit re-render triggered. DOM focus
14155
+ * stays on the grid wrapper; the live region (see getOrCreateLiveRegion)
14156
+ * is what announces the active cell to assistive tech.
13922
14157
  * @param {Number} date - Unix timestamp of the cell to activate.
13923
14158
  * @returns {void}
13924
14159
  */
@@ -13936,6 +14171,9 @@ class AuroCalendar extends RangeDatepicker {
13936
14171
  });
13937
14172
 
13938
14173
  this.activeCellDate = date;
14174
+ // Cache so scrollToActiveCell can scroll without re-querying all cells
14175
+ // on every arrow keypress.
14176
+ this._activeCell = newActiveCell;
13939
14177
 
13940
14178
  // Apply activeCell ring only when the grid currently has focus.
13941
14179
  if (newActiveCell && this._gridHasFocus) {
@@ -13967,10 +14205,23 @@ class AuroCalendar extends RangeDatepicker {
13967
14205
  /**
13968
14206
  * Shows the activeCell ring when the grid gains focus.
13969
14207
  * @private
14208
+ * @param {FocusEvent} [event] - The focusin event.
13970
14209
  * @returns {void}
13971
14210
  */
13972
- handleGridFocusIn() {
14211
+ handleGridFocusIn(event) {
13973
14212
  this._gridHasFocus = true;
14213
+
14214
+ // Only apply the activeCell ring when the grid wrapper itself receives focus
14215
+ // (Tab/programmatic). When focus moves into a cell button via mousedown,
14216
+ // event.target is the cell descendant — skip the ring here. The subsequent
14217
+ // click handler calls setActiveCell on the clicked cell, which applies the
14218
+ // ring there. Without this guard, mousedown briefly flashes the ring on the
14219
+ // previously-active cell (e.g. the 1st-of-month set by month navigation
14220
+ // when the grid was not focused).
14221
+ if (event && event.target !== event.currentTarget) {
14222
+ return;
14223
+ }
14224
+
13974
14225
  const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
13975
14226
  if (activeCell) {
13976
14227
  const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
@@ -13999,6 +14250,65 @@ class AuroCalendar extends RangeDatepicker {
13999
14250
  this.clearRangePreview();
14000
14251
  }
14001
14252
 
14253
+ /**
14254
+ * Returns a memoized Set of blackout timestamps (seconds) drawn from both
14255
+ * the legacy `disabledDays` array and the datepicker's ISO `blackoutDates`.
14256
+ * The cache invalidates when either source array's reference changes, which
14257
+ * matches Lit's own reactive identity semantics for array properties.
14258
+ * @private
14259
+ * @returns {Set<Number>}
14260
+ */
14261
+ _getBlackoutSet() {
14262
+ // Normalize non-array values to a stable `null` sentinel rather than a
14263
+ // fresh `[]` per call — otherwise the reference-identity cache key
14264
+ // (`_cachedBlackoutDisabledDays === disabledDays`) never matches on
14265
+ // subsequent calls and the Set rebuilds every time. `buildBlackoutSet`
14266
+ // already treats null/non-array as "no legacy disabledDays" via its
14267
+ // own Array.isArray gate.
14268
+ const disabledDays = Array.isArray(this.disabledDays) ? this.disabledDays : null;
14269
+ const blackoutDates = this.datepicker?.blackoutDates;
14270
+ if (this._blackoutSet &&
14271
+ this._cachedBlackoutDisabledDays === disabledDays &&
14272
+ this._cachedBlackoutDates === blackoutDates) {
14273
+ return this._blackoutSet;
14274
+ }
14275
+
14276
+ if (disabledDays && disabledDays.length > 0) {
14277
+ this._warnDisabledDaysDeprecated();
14278
+ }
14279
+
14280
+ this._blackoutSet = buildBlackoutSet(disabledDays, blackoutDates);
14281
+ this._cachedBlackoutDisabledDays = disabledDays;
14282
+ this._cachedBlackoutDates = blackoutDates;
14283
+ return this._blackoutSet;
14284
+ }
14285
+
14286
+ /**
14287
+ * Per-class flag that gates the `disabledDays` deprecation warning so it
14288
+ * fires exactly once per page no matter how many calendars or rebuild
14289
+ * cycles encounter the legacy array.
14290
+ * @private
14291
+ */
14292
+ static _warnedDisabledDaysDeprecation = false;
14293
+
14294
+ /**
14295
+ * One-time `console.debug` directing consumers from the legacy
14296
+ * `disabledDays` Unix-timestamp API to the ISO `blackoutDates` API. Fires
14297
+ * the first time `_getBlackoutSet` rebuilds from a non-empty
14298
+ * `disabledDays`; subsequent calls (on this or any other AuroCalendar
14299
+ * instance on the page) are silent.
14300
+ * @private
14301
+ * @returns {void}
14302
+ */
14303
+ _warnDisabledDaysDeprecated() {
14304
+ if (AuroCalendar._warnedDisabledDaysDeprecation) {
14305
+ return;
14306
+ }
14307
+ AuroCalendar._warnedDisabledDaysDeprecation = true;
14308
+ // eslint-disable-next-line no-console
14309
+ console.debug('[auro-datepicker] The `disabledDays` property (Unix timestamps) is deprecated. Migrate to the `blackoutDates` property on auro-datepicker (an array of `YYYY-MM-DD` ISO strings). `disabledDays` will be removed in a future major release.');
14310
+ }
14311
+
14002
14312
  /**
14003
14313
  * Computes the initial active date from data properties alone — no DOM required.
14004
14314
  * Priority:
@@ -14043,21 +14353,10 @@ class AuroCalendar extends RangeDatepicker {
14043
14353
  const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
14044
14354
  const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
14045
14355
 
14046
- // Build a Set of blackout timestamps for O(1) lookup.
14047
- const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
14048
-
14049
- // Also include ISO-format blackoutDates from the datepicker if available.
14050
- // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
14051
- const isoBlackouts = this.datepicker?.blackoutDates;
14052
- if (Array.isArray(isoBlackouts)) {
14053
- for (const isoStr of isoBlackouts) {
14054
- const parts = isoStr.split('-');
14055
- const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
14056
- if (Number.isFinite(ts)) {
14057
- blackoutSet.add(ts);
14058
- }
14059
- }
14060
- }
14356
+ // Build a Set of blackout timestamps for O(1) lookup. Memoized by the
14357
+ // identity of the source arrays so rapid month nav doesn't rebuild the
14358
+ // Set (and re-parse every ISO string) on every keypress.
14359
+ const blackoutSet = this._getBlackoutSet();
14061
14360
 
14062
14361
  /**
14063
14362
  * A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
@@ -14253,8 +14552,8 @@ class AuroCalendar extends RangeDatepicker {
14253
14552
 
14254
14553
  /**
14255
14554
  * Handles arrow key navigation on the calendar grid wrapper.
14256
- * Focus stays on the grid wrapper; only ariaActiveDescendantElement
14257
- * and the visual active-cell indicator change.
14555
+ * Focus stays on the grid wrapper; only the visual active-cell indicator
14556
+ * changes. The live region announces the new active cell.
14258
14557
  * @private
14259
14558
  * @param {KeyboardEvent} event - The keyboard event.
14260
14559
  * @returns {void}
@@ -14319,21 +14618,24 @@ class AuroCalendar extends RangeDatepicker {
14319
14618
  } else {
14320
14619
  this.handlePrevMonth({ skipActiveUpdate: true });
14321
14620
  }
14322
- requestAnimationFrame(() => {
14323
- requestAnimationFrame(() => {
14324
- const cells = this.getAllFocusableCells();
14325
- const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
14326
- if (target) {
14327
- this.setActiveCell(target.day.date);
14328
- this.handleCellFocused({ detail: { date: target.day.date } });
14329
- } else if (cells.length > 0) {
14330
- const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
14621
+ this._afterMonthRender(() => {
14622
+ const cells = this.getAllFocusableCells();
14623
+ const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
14624
+ if (target) {
14625
+ this.setActiveCell(target.day.date);
14626
+ this.handleCellFocused({ detail: { date: target.day.date } });
14627
+ } else {
14628
+ const fallback = this.pickNearestCell(cells, targetTs, navDir);
14629
+ if (fallback) {
14331
14630
  this.setActiveCell(fallback.day.date);
14332
14631
  this.handleCellFocused({ detail: { date: fallback.day.date } });
14333
14632
  }
14334
- // Re-focus grid wrapper after month change re-render
14335
- this.focusActiveCell();
14336
- });
14633
+ }
14634
+ // Scroll AFTER the cross-month setActiveCell so the freshly
14635
+ // activated cell is what gets scrolled into view.
14636
+ this.scrollToActiveCell();
14637
+ // Re-focus grid wrapper after month change re-render
14638
+ this.focusActiveCell();
14337
14639
  });
14338
14640
  }
14339
14641
  }
@@ -14359,26 +14661,23 @@ class AuroCalendar extends RangeDatepicker {
14359
14661
  } else {
14360
14662
  this.handlePrevMonth({ skipActiveUpdate: true });
14361
14663
  }
14362
- requestAnimationFrame(() => {
14363
- requestAnimationFrame(() => {
14364
- const cells = this.getAllFocusableCells();
14365
- const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14366
- if (target) {
14367
- this.setActiveCell(target.day.date);
14368
- this.handleCellFocused({ detail: { date: target.day.date } });
14369
- } else if (cells.length > 0) {
14370
- let nearest = null;
14371
-
14372
- if (navDirection === 'next') {
14373
- [nearest] = cells;
14374
- } else {
14375
- nearest = cells[cells.length - 1];
14376
- }
14664
+ this._afterMonthRender(() => {
14665
+ const cells = this.getAllFocusableCells();
14666
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14667
+ if (target) {
14668
+ this.setActiveCell(target.day.date);
14669
+ this.handleCellFocused({ detail: { date: target.day.date } });
14670
+ } else {
14671
+ const nearest = this.pickNearestCell(cells, targetDate, navDirection);
14672
+ if (nearest) {
14377
14673
  this.setActiveCell(nearest.day.date);
14378
14674
  this.handleCellFocused({ detail: { date: nearest.day.date } });
14379
14675
  }
14380
- this.focusActiveCell();
14381
- });
14676
+ }
14677
+ // Scroll AFTER the cross-month setActiveCell so the freshly
14678
+ // activated cell is what gets scrolled into view.
14679
+ this.scrollToActiveCell();
14680
+ this.focusActiveCell();
14382
14681
  });
14383
14682
  }
14384
14683
  }
@@ -14412,6 +14711,8 @@ class AuroCalendar extends RangeDatepicker {
14412
14711
  const targetCell = allCells[targetIndex];
14413
14712
  this.setActiveCell(targetCell.day.date);
14414
14713
  this.scrollToActiveCell();
14714
+ // Match the cross-month branches: keep DOM focus on the grid wrapper
14715
+ // so subsequent arrow keys continue to land on this handler.
14415
14716
  this.focusActiveCell();
14416
14717
  } else if (direction === 'next' && this.showNextMonthBtn) {
14417
14718
  // Navigate to next month and focus the computed next date.
@@ -14428,19 +14729,22 @@ class AuroCalendar extends RangeDatepicker {
14428
14729
  }
14429
14730
 
14430
14731
  this.handleNextMonth({ skipActiveUpdate: true });
14431
- requestAnimationFrame(() => {
14432
- requestAnimationFrame(() => {
14433
- const cells = this.getAllFocusableCells();
14434
- const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
14435
- if (target) {
14436
- this.setActiveCell(target.day.date);
14437
- this.focusActiveCell();
14438
- } else if (cells.length > 0) {
14439
- // Fallback: first cell of the last rendered month
14440
- this.setActiveCell(cells[cells.length - 1].day.date);
14441
- this.focusActiveCell();
14732
+ this._afterMonthRender(() => {
14733
+ const cells = this.getAllFocusableCells();
14734
+ const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
14735
+ if (target) {
14736
+ this.setActiveCell(target.day.date);
14737
+ } else {
14738
+ // Same nearest-by-date fallback handleGridKeyDown uses — direct
14739
+ // `cells[length - 1]` would land on the end of the new month,
14740
+ // far from the user's intended `nextTs`.
14741
+ const fallback = this.pickNearestCell(cells, nextTs, 'next');
14742
+ if (fallback) {
14743
+ this.setActiveCell(fallback.day.date);
14442
14744
  }
14443
- });
14745
+ }
14746
+ this.scrollToActiveCell();
14747
+ this.focusActiveCell();
14444
14748
  });
14445
14749
  } else if (direction === 'prev' && this.showPrevMonthBtn) {
14446
14750
  // Navigate to previous month and focus the computed previous date.
@@ -14454,19 +14758,22 @@ class AuroCalendar extends RangeDatepicker {
14454
14758
  }
14455
14759
 
14456
14760
  this.handlePrevMonth({ skipActiveUpdate: true });
14457
- requestAnimationFrame(() => {
14458
- requestAnimationFrame(() => {
14459
- const cells = this.getAllFocusableCells();
14460
- const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
14461
- if (target) {
14462
- this.setActiveCell(target.day.date);
14463
- this.focusActiveCell();
14464
- } else if (cells.length > 0) {
14465
- // Fallback: last cell of the first rendered month
14466
- this.setActiveCell(cells[0].day.date);
14467
- this.focusActiveCell();
14761
+ this._afterMonthRender(() => {
14762
+ const cells = this.getAllFocusableCells();
14763
+ const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
14764
+ if (target) {
14765
+ this.setActiveCell(target.day.date);
14766
+ } else {
14767
+ // Same nearest-by-date fallback handleGridKeyDown uses — direct
14768
+ // `cells[0]` would land on the start of the previous month, far
14769
+ // from the user's intended `prevTs`.
14770
+ const fallback = this.pickNearestCell(cells, prevTs, 'prev');
14771
+ if (fallback) {
14772
+ this.setActiveCell(fallback.day.date);
14468
14773
  }
14469
- });
14774
+ }
14775
+ this.scrollToActiveCell();
14776
+ this.focusActiveCell();
14470
14777
  });
14471
14778
  }
14472
14779
  } else if (key === 'ArrowDown' || key === 'ArrowUp') {
@@ -14494,20 +14801,22 @@ class AuroCalendar extends RangeDatepicker {
14494
14801
  } else {
14495
14802
  this.handlePrevMonth({ skipActiveUpdate: true });
14496
14803
  }
14497
- requestAnimationFrame(() => {
14498
- requestAnimationFrame(() => {
14499
- const cells = this.getAllFocusableCells();
14500
- const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14501
- if (target) {
14502
- this.setActiveCell(target.day.date);
14503
- this.focusActiveCell();
14504
- } else if (cells.length > 0) {
14505
- // Clamp to nearest focusable cell
14506
- const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
14804
+ this._afterMonthRender(() => {
14805
+ const cells = this.getAllFocusableCells();
14806
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14807
+ if (target) {
14808
+ this.setActiveCell(target.day.date);
14809
+ } else {
14810
+ // Same nearest-by-date fallback handleGridKeyDown uses — the
14811
+ // old direction-based `cells[0]`/`cells[length-1]` clamp
14812
+ // could land 25+ days from the intended target.
14813
+ const nearest = this.pickNearestCell(cells, targetDate, navDirection);
14814
+ if (nearest) {
14507
14815
  this.setActiveCell(nearest.day.date);
14508
- this.focusActiveCell();
14509
14816
  }
14510
- });
14817
+ }
14818
+ this.scrollToActiveCell();
14819
+ this.focusActiveCell();
14511
14820
  });
14512
14821
  }
14513
14822
  }
@@ -14546,8 +14855,9 @@ class AuroCalendar extends RangeDatepicker {
14546
14855
  return;
14547
14856
  }
14548
14857
 
14549
- // With aria-activedescendant, the button no longer receives native focus,
14550
- // so we use the debounced live region for the full context announcement.
14858
+ // DOM focus stays on the grid wrapper while arrow keys move the active
14859
+ // cell, so cell buttons never receive native focus. The debounced live
14860
+ // region carries the full-context announcement instead.
14551
14861
  const announcement = this.buildFocusAnnouncement(date);
14552
14862
  this.announceFocusDebounced(announcement);
14553
14863
 
@@ -14617,10 +14927,10 @@ class AuroCalendar extends RangeDatepicker {
14617
14927
  return null;
14618
14928
  }
14619
14929
 
14620
- const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
14930
+ const departTs = new Date(parsedFrom * 1000).setHours(0, 0, 0, 0) / 1000;
14621
14931
  const parsedTo = Number.parseInt(this.dateTo, 10);
14622
14932
  const hasTo = Number.isFinite(parsedTo);
14623
- const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
14933
+ const returnTs = hasTo ? new Date(parsedTo * 1000).setHours(0, 0, 0, 0) / 1000 : null;
14624
14934
 
14625
14935
  if (date === departTs) {
14626
14936
  return this.datepicker.rangeLabelStart || 'range start';
@@ -14634,36 +14944,22 @@ class AuroCalendar extends RangeDatepicker {
14634
14944
  if (hasTo && date > departTs && date < returnTs) {
14635
14945
  return this.datepicker.rangeLabelInRange || 'in range';
14636
14946
  }
14947
+ if (!hasTo && date > departTs) {
14948
+ return this.datepicker.rangeLabelEndPreview || 'previewing range end';
14949
+ }
14637
14950
  return this.datepicker.rangeLabelAfterRange || 'after range';
14638
14951
  }
14639
14952
 
14640
14953
  /**
14641
- * Checks whether a given date is a blackout date.
14954
+ * Checks whether a given date is a blackout date. Delegates to the
14955
+ * memoized `_getBlackoutSet` so the YYYY-MM-DD parsing and the
14956
+ * legacy/ISO merge rules live in exactly one place (see `blackoutUtils.js`).
14642
14957
  * @private
14643
14958
  * @param {Number} dateTs - Unix timestamp (seconds).
14644
14959
  * @returns {Boolean} True if the date is blacked out.
14645
14960
  */
14646
14961
  isDateBlackout(dateTs) {
14647
- // Check legacy disabledDays.
14648
- if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
14649
- if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
14650
- return true;
14651
- }
14652
- }
14653
-
14654
- // Check ISO blackoutDates.
14655
- const blackoutDates = this.datepicker?.blackoutDates;
14656
- if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
14657
- const date = new Date(dateTs * 1000);
14658
- const yyyy = date.getFullYear();
14659
- const mm = String(date.getMonth() + 1).padStart(2, '0');
14660
- const dd = String(date.getDate()).padStart(2, '0');
14661
- if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
14662
- return true;
14663
- }
14664
- }
14665
-
14666
- return false;
14962
+ return this._getBlackoutSet().has(dateTs);
14667
14963
  }
14668
14964
 
14669
14965
  /**
@@ -14721,7 +15017,28 @@ class AuroCalendar extends RangeDatepicker {
14721
15017
  }
14722
15018
 
14723
15019
  /**
14724
- * Scrolls the calendar to ensure the month containing the active cell is visible.
15020
+ * Scrolls the calendar so the active cell is visible.
15021
+ *
15022
+ * Walks the flat tree (rendered, slot-aware) outward from the active
15023
+ * cell's button and calls `scrollBy` on every vertically-scrollable
15024
+ * ancestor by whatever delta still separates the cell from that
15025
+ * ancestor's viewport. Native `scrollIntoView` is not used because the
15026
+ * cell sits inside multiple nested scroll containers (the dropdown bib's
15027
+ * `<dialog>`, the bibtemplate's `#bodyContainer`) and the algorithm only
15028
+ * scrolls one of them on its own, leaving the cell short of the
15029
+ * viewport in mobile fullscreen.
15030
+ *
15031
+ * Uses `behavior: 'auto'` (the spec's universally-supported non-animated
15032
+ * value) so each `scrollBy` resolves synchronously and the next
15033
+ * iteration's `getBoundingClientRect` reads post-scroll positions
15034
+ * accurately. This also satisfies `prefers-reduced-motion` users — the
15035
+ * scroll containers do not set CSS `scroll-behavior: smooth`, so `auto`
15036
+ * is effectively instant.
15037
+ *
15038
+ * The active cell is looked up from the cache populated by
15039
+ * `setActiveCell`. On a cache miss (stale or absent) the cache is
15040
+ * refreshed from a single full scan so subsequent calls stay on the
15041
+ * fast path.
14725
15042
  * @private
14726
15043
  * @returns {void}
14727
15044
  */
@@ -14730,16 +15047,69 @@ class AuroCalendar extends RangeDatepicker {
14730
15047
  return;
14731
15048
  }
14732
15049
 
14733
- const date = new Date(this.activeCellDate * 1000);
14734
- const month = date.getMonth() + 1;
14735
- const year = date.getFullYear();
14736
- const selector = `#month-${month}-${year}`;
14737
- const monthElem = this.shadowRoot.querySelector(selector);
15050
+ // Prefer the cell cached by setActiveCell so arrow-key navigation does
15051
+ // not rebuild the full cell list on every keypress. Fall back to a
15052
+ // lookup when the cache is stale (e.g. detached after month re-render)
15053
+ // or absent (scrollToActiveCell called without a prior setActiveCell);
15054
+ // refresh the cache on the fallback path so a subsequent call reuses it.
15055
+ const activeDate = this.activeCellDate;
15056
+ const cached = this._activeCell;
15057
+ const cacheFresh = cached && cached.isConnected && cached.day && cached.day.date === activeDate;
15058
+ let activeCell = null;
15059
+ if (cacheFresh) {
15060
+ activeCell = cached;
15061
+ } else {
15062
+ activeCell = this.getAllFocusableCells().find((cell) => cell.day && cell.day.date === activeDate);
15063
+ this._activeCell = activeCell || null;
15064
+ }
15065
+ if (!activeCell) {
15066
+ return;
15067
+ }
14738
15068
 
14739
- if (monthElem) {
14740
- const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
14741
- monthElem.scrollIntoView({ block: 'nearest',
14742
- behavior: prefersReducedMotion ? 'instant' : 'smooth' });
15069
+ // Scroll the button inside the cell — it has concrete dimensions,
15070
+ // which avoids quirks when the cell host has display: inline / contents
15071
+ // / flex-without-explicit-size.
15072
+ const target = activeCell._cachedButton ||
15073
+ activeCell.shadowRoot?.querySelector('button.day') ||
15074
+ activeCell;
15075
+
15076
+ // parentNode follows the authored DOM tree and steps over shadow roots
15077
+ // via slot projection. A slotted element's visual parent is its
15078
+ // assignedSlot's parent (inside the host's shadow tree), not the host
15079
+ // itself. Without this hop, the walk skips right past #bodyContainer
15080
+ // and <dialog> and finds no scrollable ancestor at all.
15081
+ const flatParent = (current) => {
15082
+ if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
15083
+ return current.host || null;
15084
+ }
15085
+ if (current.assignedSlot) {
15086
+ return current.assignedSlot.parentNode;
15087
+ }
15088
+ return current.parentNode;
15089
+ };
15090
+
15091
+ let node = flatParent(target);
15092
+ while (node && node !== document && node !== window) {
15093
+ if (node.nodeType === Node.ELEMENT_NODE) {
15094
+ const { overflowY } = window.getComputedStyle(node);
15095
+ if (overflowY === 'auto' || overflowY === 'scroll') {
15096
+ const targetRect = target.getBoundingClientRect();
15097
+ const scrollerRect = node.getBoundingClientRect();
15098
+ let delta = 0;
15099
+ if (targetRect.top < scrollerRect.top) {
15100
+ delta = targetRect.top - scrollerRect.top;
15101
+ } else if (targetRect.bottom > scrollerRect.bottom) {
15102
+ delta = targetRect.bottom - scrollerRect.bottom;
15103
+ }
15104
+ if (delta !== 0) {
15105
+ node.scrollBy({
15106
+ top: delta,
15107
+ behavior: 'auto'
15108
+ });
15109
+ }
15110
+ }
15111
+ }
15112
+ node = flatParent(node);
14743
15113
  }
14744
15114
  }
14745
15115
 
@@ -14830,9 +15200,34 @@ class AuroCalendar extends RangeDatepicker {
14830
15200
  // the last one.
14831
15201
  if (this._announceRafId) {
14832
15202
  cancelAnimationFrame(this._announceRafId);
15203
+ this._announceRafId = null;
14833
15204
  }
15205
+ this._deliverAnnouncement(dateStr, 0);
15206
+ }
15207
+
15208
+ /**
15209
+ * Writes `dateStr` to the live region. If the dropdown's dialog hasn't
15210
+ * mounted yet (so getOrCreateLiveRegion can't attach), retries on the
15211
+ * next animation frame up to MAX_LIVE_REGION_RETRIES instead of silently
15212
+ * dropping the announcement. The retry uses the same `_announceRafId`
15213
+ * the double-rAF below uses, so a newer announceSelection call (or
15214
+ * disconnectedCallback) cancels any in-flight retry.
15215
+ * @private
15216
+ * @param {String} dateStr - The localized date string to announce.
15217
+ * @param {Number} attempts - Number of prior retry attempts.
15218
+ * @returns {void}
15219
+ */
15220
+ _deliverAnnouncement(dateStr, attempts) {
14834
15221
  const liveRegion = this.getOrCreateLiveRegion();
14835
15222
  if (!liveRegion) {
15223
+ const MAX_LIVE_REGION_RETRIES = 10;
15224
+ if (attempts < MAX_LIVE_REGION_RETRIES) {
15225
+ this._announceRafId = requestAnimationFrame(() => {
15226
+ this._deliverAnnouncement(dateStr, attempts + 1);
15227
+ });
15228
+ } else {
15229
+ this._announceRafId = null;
15230
+ }
14836
15231
  return;
14837
15232
  }
14838
15233
 
@@ -15005,7 +15400,7 @@ class AuroCalendar extends RangeDatepicker {
15005
15400
  </div>
15006
15401
  </div>
15007
15402
 
15008
- <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
15403
+ <div class="calendarWrapper">
15009
15404
  <div class="calendarNavButtons">
15010
15405
  ${this.showPrevMonthBtn ? html$1`
15011
15406
  <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
@@ -15018,7 +15413,7 @@ class AuroCalendar extends RangeDatepicker {
15018
15413
  </button>
15019
15414
  ` : undefined}
15020
15415
  </div>
15021
- <div id="calendarGrid" class="calendars" role="group" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
15416
+ <div id="calendarGrid" class="calendars" role="group" aria-roledescription="calendar" tabindex="0" aria-label="${this.datepicker?.calendarGridLabel}" @keydown="${this.handleGridKeyDown}" @focusin="${this.handleGridFocusIn}" @focusout="${this.handleGridFocusOut}" @calendar-month-mouseleave="${this.clearRangePreview}">
15022
15417
  ${this.renderAllCalendars()}
15023
15418
  </div>
15024
15419
  </div>
@@ -18903,7 +19298,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
18903
19298
  }
18904
19299
  };
18905
19300
 
18906
- var formkitVersion$1 = '202606231948';
19301
+ var formkitVersion$1 = '202607010104';
18907
19302
 
18908
19303
  let AuroElement$2 = class AuroElement extends LitElement {
18909
19304
  static get properties() {
@@ -20175,6 +20570,7 @@ class AuroDropdown extends AuroElement$2 {
20175
20570
  role="${ifDefined(this.triggerContentFocusable ? undefined : this.a11yRole)}"
20176
20571
  aria-expanded="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.isPopoverVisible)}"
20177
20572
  aria-controls="${ifDefined(this.a11yRole === 'button' || this.triggerContentFocusable ? undefined : this.dropdownId)}"
20573
+ aria-haspopup="${ifDefined(this.a11yRole === 'combobox' && !this.triggerContentFocusable ? 'listbox' : undefined)}"
20178
20574
  aria-labelledby="${ifDefined(this.triggerContentFocusable ? undefined : 'triggerLabel')}"
20179
20575
  aria-disabled="${ifDefined(this.disabled ? 'true' : undefined)}"
20180
20576
  @focusin="${this.handleFocusin}"
@@ -24677,15 +25073,17 @@ class AuroFormValidation {
24677
25073
  );
24678
25074
  }
24679
25075
 
24680
- // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false;
24681
- if (this.auroInputElements?.length === 2) {
24682
- if (!this.auroInputElements[1].value || this.auroInputElements[1].length === 0) {
25076
+ const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
25077
+
25078
+ // If there is a second input in the elem and that value is undefined or an empty string set hasValue to false.
25079
+ // Skip for combobox: its second auro-input is the fullscreen-bib mirror of the same value, not an independent
25080
+ // field (datepicker is the intended consumer — start/end are independently required).
25081
+ if (this.auroInputElements?.length === 2 && !isCombobox) {
25082
+ if (!this.auroInputElements[1].value || this.auroInputElements[1].value.length === 0) {
24683
25083
  hasValue = false;
24684
25084
  }
24685
25085
  }
24686
25086
 
24687
- const isCombobox = this.runtimeUtils.elementMatch(elem, 'auro-combobox');
24688
-
24689
25087
  if (isCombobox) {
24690
25088
 
24691
25089
  if (!elem.persistInput || elem.behavior === "filter") {
@@ -30621,6 +31019,13 @@ class AuroInputUtilities {
30621
31019
  * @returns {string | undefined}
30622
31020
  */
30623
31021
  toFormattedValue(valueObject, format) {
31022
+ // Exposed publicly via `AuroInputUtil.toFormattedValue`, so a missing
31023
+ // `format` argument has to fail gracefully rather than throw on
31024
+ // `format.toLowerCase()`. Treat any falsy value (undefined, null, '')
31025
+ // as "no format → no display value".
31026
+ if (!format) {
31027
+ return undefined;
31028
+ }
30624
31029
  const normalizedFormat = format.toLowerCase();
30625
31030
  const maskOptions = this.getMaskOptions('date', normalizedFormat);
30626
31031
 
@@ -30772,76 +31177,19 @@ class BaseInput extends AuroElement$1 {
30772
31177
  constructor() {
30773
31178
  super();
30774
31179
 
30775
- this.appearance = "default";
30776
- this.disabled = false;
30777
- this.layout = 'classic';
30778
- this.locale = 'en-US';
30779
- this.max = undefined;
30780
- this.maxLength = undefined;
30781
- this.min = undefined;
30782
- this.minLength = undefined;
30783
- this.required = false;
30784
- this.onDark = false;
30785
- this.setCustomValidityForType = undefined;
30786
- this.size = 'lg';
30787
- this.shape = 'classic';
30788
- this.value = undefined;
30789
-
30790
- this._initializePrivateDefaults();
30791
- }
30792
-
30793
- /**
30794
- * Internal Defaults.
30795
- * @private
30796
- * @returns {void}
30797
- */
30798
- _initializePrivateDefaults() {
31180
+ // Single-source initialization. Alphabetized so duplicate or stale
31181
+ // defaults are immediately obvious on a diff. Every field is assigned
31182
+ // exactly once here (previously the constructor + the old
31183
+ // `_initializePrivateDefaults` overlapped — both wrote ~14 of the same
31184
+ // fields and double-allocated `util` and `validation`, discarding the
31185
+ // first instance). `validation` is now allocated exactly once; `util`
31186
+ // is seeded here with an en-US default and then rebuilt in
31187
+ // `connectedCallback` once the consumer-resolved locale is available,
31188
+ // so a parent (datepicker/combobox) calling `validate()` synchronously
31189
+ // during its own update cycle sees a populated util instance.
30799
31190
  this.activeLabel = false;
30800
- this.appearance = "default";
30801
- this.icon = false;
30802
- this.disabled = false;
30803
- this.dvInputOnly = false;
30804
- this.hideLabelVisually = false;
30805
- this.max = undefined;
30806
- this.maxLength = undefined;
30807
- this.min = undefined;
30808
- this.minLength = undefined;
30809
- this.noValidate = false;
30810
- this.onDark = false;
30811
- this.required = false;
30812
- this.setCustomValidityForType = undefined;
30813
-
30814
- // Used for storing raw values returned from input mask.
30815
- this._rawMaskValue = undefined;
30816
-
30817
- /**
30818
- * @private
30819
- */
30820
- this.layout = 'classic';
30821
-
30822
- /**
30823
- * @private
30824
- */
30825
- this.shape = 'classic';
30826
-
30827
- /**
30828
- * @private
30829
- */
30830
- this.size = 'lg';
30831
-
30832
- this.touched = false;
30833
- this.util = new AuroInputUtilities({
30834
- locale: "en-US",
30835
- format: this.format
30836
- });
30837
- this.validation = new AuroFormValidation();
30838
- this.inputIconName = undefined;
30839
- this.showPassword = false;
30840
- this.validationCCLength = undefined;
30841
- this.hasValue = false;
30842
- this.label = 'Input label is undefined';
30843
-
30844
31191
 
31192
+ /** @private */
30845
31193
  this.allowedInputTypes = [
30846
31194
  "text",
30847
31195
  "number",
@@ -30850,7 +31198,9 @@ class BaseInput extends AuroElement$1 {
30850
31198
  "credit-card",
30851
31199
  "tel"
30852
31200
  ];
30853
- this.icon = false;
31201
+ this.appearance = "default";
31202
+
31203
+ /** @private */
30854
31204
  this.dateFormatMap = {
30855
31205
  'mm/dd/yyyy': 'dateMMDDYYYY',
30856
31206
  'dd/mm/yyyy': 'dateDDMMYYYY',
@@ -30867,27 +31217,62 @@ class BaseInput extends AuroElement$1 {
30867
31217
  'dd/mm': 'dateDDMM',
30868
31218
  'mm/dd': 'dateMMDD'
30869
31219
  };
31220
+ this.disabled = false;
31221
+
31222
+ /** @private */
30870
31223
  this.domHandler = new DomHandler();
30871
31224
  this.dvInputOnly = false;
30872
31225
  this.hasValue = false;
31226
+ this.hideLabelVisually = false;
31227
+ this.icon = false;
31228
+
31229
+ /** @private */
30873
31230
  this.inputIconName = undefined;
31231
+
31232
+ /** @private */
30874
31233
  this.label = 'Input label is undefined';
31234
+ this.layout = 'classic';
31235
+ this.locale = 'en-US';
31236
+ this.max = undefined;
31237
+ this.maxLength = undefined;
31238
+ this.min = undefined;
31239
+ this.minLength = undefined;
30875
31240
  this.noValidate = false;
30876
- this._rawMaskValue = undefined; // Used for storing raw values returned from input mask.
31241
+ this.onDark = false;
31242
+ // Raw values returned from the input mask before model normalization.
31243
+ this._rawMaskValue = undefined;
31244
+ this.required = false;
31245
+ this.setCustomValidityForType = undefined;
31246
+ // Credit Card is intentionally excluded — its mask manages the cursor
31247
+ // itself, and listing it here caused cursor placement issues in Safari.
31248
+ /** @private */
30877
31249
  this.setSelectionInputTypes = [
30878
31250
  "text",
30879
31251
  "password",
30880
31252
  "email"
30881
- ]; // Credit Card is not included as this caused cursor placement issues in Safari.
31253
+ ];
31254
+ this.shape = 'classic';
31255
+
31256
+ /** @private */
30882
31257
  this.showPassword = false;
31258
+ this.size = 'lg';
30883
31259
  this.touched = false;
31260
+
31261
+ /** @private */
30884
31262
  this.uniqueId = new UniqueId().create();
31263
+
31264
+ /** @private */
30885
31265
  this.util = new AuroInputUtilities({
30886
31266
  locale: this.locale,
30887
31267
  format: this.format
30888
31268
  });
31269
+
31270
+ /** @private */
30889
31271
  this.validation = new AuroFormValidation();
31272
+
31273
+ /** @private */
30890
31274
  this.validationCCLength = undefined;
31275
+ this.value = undefined;
30891
31276
  }
30892
31277
 
30893
31278
  // function to define props used within the scope of this component
@@ -31391,6 +31776,15 @@ class BaseInput extends AuroElement$1 {
31391
31776
 
31392
31777
  this.inputId = this.id ? `${this.id}-input` : window.crypto.randomUUID();
31393
31778
 
31779
+ // Normalize the format token to lowercase so case-mixed values supplied
31780
+ // via attribute (e.g. `format="MM/DD/YYYY"`) hit the `dateFormatMap`
31781
+ // lookup inside `setCustomHelpTextMessage`. Without this, an uppercase
31782
+ // format silently misses the map and leaves `setCustomValidityForType`
31783
+ // unset.
31784
+ if (this.format) {
31785
+ this.format = this.format.toLowerCase();
31786
+ }
31787
+
31394
31788
  // use validity message override if declared when initializing the component
31395
31789
  if (this.hasAttribute('setCustomValidity')) {
31396
31790
  this.ValidityMessageOverride = this.setCustomValidity;
@@ -31474,6 +31868,13 @@ class BaseInput extends AuroElement$1 {
31474
31868
 
31475
31869
  if (typeToI18n.includes(this.type)) {
31476
31870
  this.setCustomValidityForType = i18n$1(this.lang, this.type);
31871
+ // COVERAGE: this `else if` branch is unreachable in WTR. connectedCallback
31872
+ // (L682) calls configureDataForType, which at L1266-1268 assigns
31873
+ // `this.format = this.util.getDateMaskFromLocale().toLowerCase()` for any
31874
+ // type=date input whose `format` attribute is unset. That runs before
31875
+ // firstUpdated invokes setCustomHelpTextMessage, so `!this.format` is
31876
+ // always false here. Retained as a defensive fallback; the whole function
31877
+ // is @deprecated per AB#1557296 and slated for removal.
31477
31878
  } else if (!this.format && this.type === 'date') {
31478
31879
  this.setCustomValidityForType = i18n$1(this.lang, 'dateMMDDYYYY');
31479
31880
  } else if (this.dateFormatMap[this.format]) {
@@ -31763,6 +32164,38 @@ class BaseInput extends AuroElement$1 {
31763
32164
  this.touched = true;
31764
32165
  this.validation.validate(this);
31765
32166
  }
32167
+
32168
+ // Prevents cursor jumping in Safari. Setting `this.value` triggers a Lit
32169
+ // update that can re-render the input and reset the native cursor; we
32170
+ // capture the caret position before that update commits and restore it
32171
+ // via `setSelectionRange` once the update has flushed. Gated on
32172
+ // `setSelectionInputTypes` so credit-card (and other masked types whose
32173
+ // formatter manages the cursor itself) doesn't get a competing write.
32174
+ // Capture the caret position INSIDE the gate — reading `selectionStart`
32175
+ // on input types that don't support text selection (number, email in
32176
+ // some browsers) throws InvalidStateError, which would crash all input
32177
+ // handling. Wrap the read in try/catch belt-and-suspenders even though
32178
+ // the gated types currently support it, since the list is a public
32179
+ // property a consumer could mutate.
32180
+ if (this.setSelectionInputTypes.includes(this.type)) {
32181
+ let selectionStart = null;
32182
+ try {
32183
+ ({ selectionStart } = this.inputElement);
32184
+ } catch (error) { // eslint-disable-line no-unused-vars
32185
+ return;
32186
+ }
32187
+ if (typeof selectionStart !== 'number') {
32188
+ return;
32189
+ }
32190
+ this.updateComplete.then(() => {
32191
+ try {
32192
+ this.inputElement.setSelectionRange(selectionStart, selectionStart);
32193
+ } catch (error) { // eslint-disable-line no-unused-vars
32194
+ // Some input types (number/email in certain UAs) throw on
32195
+ // setSelectionRange; swallow and let the native cursor stand.
32196
+ }
32197
+ });
32198
+ }
31766
32199
  }
31767
32200
 
31768
32201
  /**
@@ -31896,7 +32329,7 @@ class BaseInput extends AuroElement$1 {
31896
32329
  */
31897
32330
  get placeholderStr() {
31898
32331
  if (!this.placeholder && this.type === 'date') {
31899
- return this.format ? this.format.toUpperCase() : 'MM/DD/YYYY';
32332
+ return this.format.toUpperCase();
31900
32333
  }
31901
32334
  return this.placeholder || "";
31902
32335
  }
@@ -32387,7 +32820,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
32387
32820
  }
32388
32821
  };
32389
32822
 
32390
- var formkitVersion = '202606231948';
32823
+ var formkitVersion = '202607010104';
32391
32824
 
32392
32825
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
32393
32826
  // See LICENSE in the project root for license information.
@@ -32890,6 +33323,7 @@ class AuroInput extends BaseInput {
32890
33323
  <${this.buttonTag}
32891
33324
  @click="${this.handleClickShowPassword}"
32892
33325
  appearance="${this.onDark ? 'inverse' : this.appearance}"
33326
+ aria-pressed="${this.showPassword ? 'true' : 'false'}"
32893
33327
  class="notificationBtn passwordBtn"
32894
33328
  shape="circle"
32895
33329
  size="sm"
@@ -32963,25 +33397,29 @@ class AuroInput extends BaseInput {
32963
33397
  * @returns {html} - Returns HTML for the help text and error message.
32964
33398
  */
32965
33399
  renderHtmlHelpText() {
33400
+ // Single `<p>` with stable identity across validity transitions —
33401
+ // previously two distinct templates (valid vs invalid) caused Lit to
33402
+ // replace the node entirely on a flip, and VoiceOver wouldn't
33403
+ // re-announce because the live-region element it was watching had been
33404
+ // removed and a new one inserted. Keeping one node means the `role`,
33405
+ // `aria-live`, and text content all change in-place, which AT does
33406
+ // observe and announce.
33407
+ const isError = this.validity && this.validity !== 'valid';
32966
33408
  return html$1`
32967
- ${!this.validity || this.validity === undefined || this.validity === 'valid'
32968
- ? html$1`
32969
- <${this.helpTextTag}
32970
- appearance="${this.onDark ? 'inverse' : this.appearance}">
32971
- <p id="${this.uniqueId}" part="helpText">
32972
- <slot name="helpText">${this.getHelpText()}</slot>
32973
- </p>
32974
- </${this.helpTextTag}>
32975
- `
32976
- : html$1`
32977
- <${this.helpTextTag} error
32978
- appearance="${this.onDark ? 'inverse' : this.appearance}">
32979
- <p id="${this.uniqueId}" role="alert" aria-live="assertive" part="helpText">
32980
- ${this.errorMessage}
32981
- </p>
32982
- </${this.helpTextTag}>
32983
- `
32984
- }
33409
+ <${this.helpTextTag}
33410
+ appearance="${this.onDark ? 'inverse' : this.appearance}"
33411
+ ?error=${isError}>
33412
+ <p
33413
+ id="${this.uniqueId}"
33414
+ part="helpText"
33415
+ role="${ifDefined(isError ? 'alert' : undefined)}"
33416
+ aria-live="${ifDefined(isError ? 'assertive' : undefined)}">
33417
+ ${isError
33418
+ ? this.errorMessage
33419
+ : html$1`<slot name="helpText">${this.getHelpText()}</slot>`
33420
+ }
33421
+ </p>
33422
+ </${this.helpTextTag}>
32985
33423
  `;
32986
33424
  }
32987
33425
 
@@ -33128,6 +33566,15 @@ function formatISODate(isoStr, format) {
33128
33566
  try {
33129
33567
  const date = dateFormatter.stringToDateInstance(isoStr);
33130
33568
 
33569
+ // `stringToDateInstance` returns an `Invalid Date` for malformed strings
33570
+ // and `null` for non-string input — it does NOT throw. Without this
33571
+ // guard, `getFullYear()`/`getMonth()`/`getDate()` on an Invalid Date
33572
+ // yield `NaN`, and `String(NaN).padStart(4, '0')` produces literals
33573
+ // like "0NaN/0NaN/0NaN" instead of `undefined`.
33574
+ if (!(date instanceof Date) || Number.isNaN(date.getTime())) {
33575
+ return undefined;
33576
+ }
33577
+
33131
33578
  const year = String(date.getFullYear()).padStart(4, '0');
33132
33579
  const month = String(date.getMonth() + 1).padStart(2, '0');
33133
33580
  const day = String(date.getDate()).padStart(2, '0');
@@ -33138,7 +33585,10 @@ function formatISODate(isoStr, format) {
33138
33585
  replace(/mm/iu, month).
33139
33586
  replace(/dd/iu, day);
33140
33587
  } catch (err) {
33141
- // If the input string is not a valid date, return undefined
33588
+ // Defensive: the Date-returning path is guarded above, but `parseDate`
33589
+ // (inside `stringToDateInstance`) could throw on pathological input
33590
+ // future-library-versions might introduce. Treat any thrown error as
33591
+ // "not a valid date" and return undefined.
33142
33592
  return undefined;
33143
33593
  }
33144
33594
  }
@@ -33864,6 +34314,7 @@ class AuroDatePicker extends AuroElement {
33864
34314
  this.rangeLabelBeforeRange = 'before range';
33865
34315
  this.rangeLabelInRange = 'in range';
33866
34316
  this.rangeLabelAfterRange = 'after range';
34317
+ this.rangeLabelEndPreview = 'previewing range end';
33867
34318
  this.blackoutDates = [];
33868
34319
  this.blackoutLabel = 'unavailable';
33869
34320
  this.navLabelPrevMonth = 'Previous month';
@@ -33963,6 +34414,22 @@ class AuroDatePicker extends AuroElement {
33963
34414
  */
33964
34415
  this.handleClick = this.handleClick.bind(this);
33965
34416
 
34417
+ /**
34418
+ * Single AbortController shared by every listener registered in the
34419
+ * configure* methods. Lets disconnectedCallback tear all of them down
34420
+ * with one abort() call.
34421
+ *
34422
+ * The genuine leak risk is the listeners attached to children that can
34423
+ * outlive the host if they get reparented — `this.dropdown`,
34424
+ * `this.calendar`, and the inputs inside the dropdown's slot.
34425
+ * Listeners attached to `this` (e.g. focusin/focusout on the host)
34426
+ * form a self-contained reference graph that the GC can collect with
34427
+ * the host anyway, but they share the same signal so the cleanup
34428
+ * pattern stays uniform across all configure* sites.
34429
+ * @private
34430
+ */
34431
+ this._listenerAbortController = new AbortController();
34432
+
33966
34433
  /**
33967
34434
  * @private
33968
34435
  */
@@ -34011,6 +34478,7 @@ class AuroDatePicker extends AuroElement {
34011
34478
 
34012
34479
  /**
34013
34480
  * Label announced for blackout (disabled but in-range) date cells.
34481
+ * @default 'unavailable'
34014
34482
  */
34015
34483
  blackoutLabel: {
34016
34484
  type: String,
@@ -34027,6 +34495,7 @@ class AuroDatePicker extends AuroElement {
34027
34495
 
34028
34496
  /**
34029
34497
  * Accessible label for the calendar grid containing the days of the month.
34498
+ * @default 'Calendar days of the month'
34030
34499
  */
34031
34500
  calendarGridLabel: {
34032
34501
  type: String,
@@ -34189,6 +34658,7 @@ class AuroDatePicker extends AuroElement {
34189
34658
 
34190
34659
  /**
34191
34660
  * Accessible label for the next month navigation button.
34661
+ * @default 'Next month'
34192
34662
  */
34193
34663
  navLabelNextMonth: {
34194
34664
  type: String,
@@ -34197,6 +34667,7 @@ class AuroDatePicker extends AuroElement {
34197
34667
 
34198
34668
  /**
34199
34669
  * Accessible label for the previous month navigation button.
34670
+ * @default 'Previous month'
34200
34671
  */
34201
34672
  navLabelPrevMonth: {
34202
34673
  type: String,
@@ -34274,7 +34745,11 @@ class AuroDatePicker extends AuroElement {
34274
34745
  },
34275
34746
 
34276
34747
  /**
34277
- * Label announced for cells after the range (or after start when no end is selected).
34748
+ * Label announced for cells after a fully selected range (both
34749
+ * `dateFrom` and `dateTo` are set). While a range is still being
34750
+ * picked (`dateFrom` set, `dateTo` unset), focused cells past the
34751
+ * start use `rangeLabelEndPreview` instead.
34752
+ * @default 'after range'
34278
34753
  */
34279
34754
  rangeLabelAfterRange: {
34280
34755
  type: String,
@@ -34283,6 +34758,7 @@ class AuroDatePicker extends AuroElement {
34283
34758
 
34284
34759
  /**
34285
34760
  * Label announced for cells before the range start.
34761
+ * @default 'before range'
34286
34762
  */
34287
34763
  rangeLabelBeforeRange: {
34288
34764
  type: String,
@@ -34291,14 +34767,27 @@ class AuroDatePicker extends AuroElement {
34291
34767
 
34292
34768
  /**
34293
34769
  * Label announced for the range end date cell.
34770
+ * @default 'range end'
34294
34771
  */
34295
34772
  rangeLabelEnd: {
34296
34773
  type: String,
34297
34774
  reflect: true
34298
34775
  },
34299
34776
 
34777
+ /**
34778
+ * Label announced for the focused cell while previewing a range end
34779
+ * (dateFrom set, dateTo not yet selected). Tells AT users that
34780
+ * pressing Enter would commit this cell as the range end.
34781
+ * @default 'previewing range end'
34782
+ */
34783
+ rangeLabelEndPreview: {
34784
+ type: String,
34785
+ reflect: true
34786
+ },
34787
+
34300
34788
  /**
34301
34789
  * Label announced for cells within the selected range.
34790
+ * @default 'in range'
34302
34791
  */
34303
34792
  rangeLabelInRange: {
34304
34793
  type: String,
@@ -34307,6 +34796,7 @@ class AuroDatePicker extends AuroElement {
34307
34796
 
34308
34797
  /**
34309
34798
  * Label announced for the range start date cell.
34799
+ * @default 'range start'
34310
34800
  */
34311
34801
  rangeLabelStart: {
34312
34802
  type: String,
@@ -34314,7 +34804,7 @@ class AuroDatePicker extends AuroElement {
34314
34804
  },
34315
34805
 
34316
34806
  /**
34317
- * Dates that the user should have for reference as part of their decision making when selecting a date.
34807
+ * Dates that the user should have for reference as part of their decision-making when selecting a date.
34318
34808
  * This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
34319
34809
  */
34320
34810
  referenceDates: {
@@ -34671,10 +35161,26 @@ class AuroDatePicker extends AuroElement {
34671
35161
  // ─── Vendor calendar time conversions ─────────────────────────────────────
34672
35162
 
34673
35163
  /**
34674
- * Converts a Unix timestamp (seconds) from the vendor calendar to an ISO date string.
35164
+ * Converts a Unix timestamp (seconds) from the vendored range-datepicker
35165
+ * (`src/vendor/wc-range-datepicker/day.js`) to an ISO date string.
35166
+ *
35167
+ * Timezone contract:
35168
+ * - INPUT: `time` is assumed to be the seconds-since-epoch of **local
35169
+ * midnight** for the intended calendar day. The vendor's Day constructor
35170
+ * builds it via `date-fns format(date, 't')` from a locally-constructed
35171
+ * Date, so this assumption currently holds end-to-end.
35172
+ * - OUTPUT: `dateFormatter.toISOFormatString` reads the Date's local
35173
+ * getFullYear/getMonth/getDate components, so the returned YYYY-MM-DD
35174
+ * string matches the local calendar day.
35175
+ *
35176
+ * If the vendor ever switches to emitting UTC-midnight timestamps, this
35177
+ * conversion will silently shift the returned date by one day in zones
35178
+ * west of UTC. Any vendor swap should re-verify this contract; the TZ
35179
+ * regression suite (`npm run test:hst`, UTC-10) will catch the symptom.
35180
+ *
34675
35181
  * @private
34676
- * @param {number} time - Unix timestamp in seconds.
34677
- * @returns {string} ISO date string (yyyy-mm-dd).
35182
+ * @param {number} time - Unix timestamp (seconds), local midnight of the day.
35183
+ * @returns {string} ISO date string (yyyy-mm-dd) reflecting the local calendar day.
34678
35184
  */
34679
35185
  convertWcTimeToDate(time) {
34680
35186
  return dateFormatter$1.toISOFormatString(new Date(time * 1000));
@@ -34776,8 +35282,8 @@ class AuroDatePicker extends AuroElement {
34776
35282
  }
34777
35283
  }
34778
35284
 
34779
- // Focus the calendar grid wrapper (aria-activedescendant handles
34780
- // the SR announcement for the active cell).
35285
+ // Focus the calendar grid wrapper. The live region (announced just
35286
+ // below) handles the SR announcement for the active cell.
34781
35287
  if (activeCell) {
34782
35288
  this.calendar.focusActiveCell();
34783
35289
 
@@ -34791,11 +35297,14 @@ class AuroDatePicker extends AuroElement {
34791
35297
  this.calendar.announceSelection(announcement);
34792
35298
  }, 500);
34793
35299
 
34794
- // On mobile fullscreen, scroll the month list so the active cell's
34795
- // month is visible. Without this, the list stays scrolled to the
34796
- // calendarStartDate month which may be far from the active cell.
34797
- if (this.dropdown.isBibFullscreen) {
35300
+ // On mobile fullscreen or when an explicit focusDate change has
35301
+ // requested a forced scroll on the next render scroll the active
35302
+ // cell into view. Doing this here (after activeCellDate has been
35303
+ // resolved by the rAF loop above) prevents a no-op scroll that
35304
+ // would happen if we tried to scroll before the cell was set.
35305
+ if (this.dropdown.isBibFullscreen || this.forceScrollOnNextMobileCalendarRender) {
34798
35306
  this.calendar.scrollToActiveCell();
35307
+ this.forceScrollOnNextMobileCalendarRender = false;
34799
35308
  }
34800
35309
  } else if (attempts < MAX_ATTEMPTS) {
34801
35310
  requestAnimationFrame(tryFocus);
@@ -34827,11 +35336,13 @@ class AuroDatePicker extends AuroElement {
34827
35336
  this.dropdown.bibDialogLabel = labelElement.textContent.trim() || undefined;
34828
35337
  }
34829
35338
 
35339
+ const { signal } = this._listenerAbortController;
35340
+
34830
35341
  this.dropdown.addEventListener('auroDropdown-triggerClick', () => {
34831
35342
  if (!this.isPopoverVisible) {
34832
35343
  this.dropdown.show();
34833
35344
  }
34834
- });
35345
+ }, { signal });
34835
35346
 
34836
35347
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
34837
35348
  this.notifyDatepickerToggled();
@@ -34849,7 +35360,7 @@ class AuroDatePicker extends AuroElement {
34849
35360
  if (this.valueObject) {
34850
35361
  this.centralDate = this.value;
34851
35362
  } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
34852
- this.centralDate = new Date();
35363
+ this.centralDate = dateFormatter$1.toISOFormatString(new Date());
34853
35364
  }
34854
35365
  }
34855
35366
 
@@ -34917,19 +35428,11 @@ class AuroDatePicker extends AuroElement {
34917
35428
  }
34918
35429
  }
34919
35430
 
34920
- // If on mobile, and the calendar is opened, scroll the focus date into view if the flag is set
34921
- if (this.dropdown.isPopoverVisible && this.forceScrollOnNextMobileCalendarRender) {
34922
-
34923
- // Since the calendar is not rendered until the dropdown is opened,
34924
- // and the auroDropdown-toggled event fires before the popover is actually open,
34925
- // we need to wait until the next frame to ensure the calendar is fully rendered
34926
- // and the area we're trying to scroll to is present in the DOM.
34927
- setTimeout(() => {
34928
- this.calendar.scrollMonthIntoView(this.calendarFocusDate);
34929
- this.forceScrollOnNextMobileCalendarRender = false;
34930
- }, 0);
34931
- }
34932
- });
35431
+ // Note: the forceScrollOnNextMobileCalendarRender scroll-into-view
35432
+ // happens inside focusActiveCellWhenReady() once activeCellDate has
35433
+ // been resolved by its rAF wait — not here in a setTimeout(0), which
35434
+ // fired before the active date was set and silently no-op'd.
35435
+ }, { signal });
34933
35436
 
34934
35437
  // Handle responsive strategy changes while the dropdown is open
34935
35438
  // (e.g. resizing from desktop → mobile or vice versa).
@@ -34976,7 +35479,7 @@ class AuroDatePicker extends AuroElement {
34976
35479
  });
34977
35480
  });
34978
35481
  }
34979
- });
35482
+ }, { signal });
34980
35483
  }
34981
35484
 
34982
35485
  /**
@@ -34989,6 +35492,8 @@ class AuroDatePicker extends AuroElement {
34989
35492
 
34990
35493
  this.inputList = [...this.dropdown.querySelectorAll(this.inputTag._$litStatic$)];
34991
35494
 
35495
+ const { signal } = this._listenerAbortController;
35496
+
34992
35497
  this.inputList.forEach((input, index) => {
34993
35498
  input.addEventListener('input', (event) => {
34994
35499
  event.stopPropagation();
@@ -35000,7 +35505,7 @@ class AuroDatePicker extends AuroElement {
35000
35505
  }
35001
35506
 
35002
35507
  this.notifyValueChanged();
35003
- });
35508
+ }, { signal });
35004
35509
 
35005
35510
  input.addEventListener('auroFormElement-validated', (evt) => {
35006
35511
  // not to bubble up input's validated event.
@@ -35016,7 +35521,7 @@ class AuroDatePicker extends AuroElement {
35016
35521
  this.validity = evt.detail.validity;
35017
35522
  this.errorMessage = evt.detail.message;
35018
35523
  }
35019
- });
35524
+ }, { signal });
35020
35525
  });
35021
35526
  }
35022
35527
 
@@ -35030,19 +35535,32 @@ class AuroDatePicker extends AuroElement {
35030
35535
  this.calendar.datepicker = this;
35031
35536
  this.calendar.dropdown = this.dropdown;
35032
35537
 
35538
+ const { signal } = this._listenerAbortController;
35539
+
35033
35540
  this.calendar.addEventListener('auroCalendar-dateSelected', () => {
35034
- if (this.inputList[0].value !== this.calendar.dateFrom && this.calendar.dateFrom !== undefined) {
35035
- this.inputList[0].value = this.convertWcTimeToDate(this.calendar.dateFrom);
35541
+ // Compare the input's ISO value against the *converted* calendar
35542
+ // timestamp (the vendor's `dateFrom`/`dateTo` are Unix-seconds
35543
+ // strings — comparing the input ISO directly against them would
35544
+ // never match, so the write would fire on every event and emit
35545
+ // redundant input/change activity).
35546
+ if (this.calendar.dateFrom !== undefined) {
35547
+ const fromIso = this.convertWcTimeToDate(this.calendar.dateFrom);
35548
+ if (this.inputList[0].value !== fromIso) {
35549
+ this.inputList[0].value = fromIso;
35550
+ }
35036
35551
  }
35037
35552
 
35038
- if (this.inputList[1] && this.calendar.dateTo && this.inputList[1].value !== this.calendar.dateTo) {
35039
- this.inputList[1].value = this.convertWcTimeToDate(this.calendar.dateTo);
35553
+ if (this.inputList[1] && this.calendar.dateTo) {
35554
+ const toIso = this.convertWcTimeToDate(this.calendar.dateTo);
35555
+ if (this.inputList[1].value !== toIso) {
35556
+ this.inputList[1].value = toIso;
35557
+ }
35040
35558
  }
35041
- });
35559
+ }, { signal });
35042
35560
 
35043
35561
  this.calendar.addEventListener('auroCalendar-dismissRequest', () => {
35044
35562
  this.dropdown.hide();
35045
- });
35563
+ }, { signal });
35046
35564
 
35047
35565
  this.calendar.addEventListener('auroCalendar-centralDateChanged', (event) => {
35048
35566
  const match = this.centralDateObject && this.util.datesMatch(event.detail.date, this.centralDateObject);
@@ -35052,7 +35570,7 @@ class AuroDatePicker extends AuroElement {
35052
35570
  }
35053
35571
 
35054
35572
  this.notifyMonthChanged(event);
35055
- });
35573
+ }, { signal });
35056
35574
  }
35057
35575
 
35058
35576
  /**
@@ -35061,10 +35579,17 @@ class AuroDatePicker extends AuroElement {
35061
35579
  * @returns {void}
35062
35580
  */
35063
35581
  configureDatepicker() {
35582
+ // These listeners are on `this` (the host), so they would GC with the
35583
+ // host even without the abort signal — see the leak rationale on
35584
+ // `_listenerAbortController`. The signal is still passed for uniform
35585
+ // cleanup semantics with the child-element listeners in the other
35586
+ // configure* methods.
35587
+ const { signal } = this._listenerAbortController;
35588
+
35064
35589
  this.addEventListener('focusin', () => {
35065
35590
  this.touched = true;
35066
35591
  this.hasFocus = true;
35067
- });
35592
+ }, { signal });
35068
35593
 
35069
35594
  this.addEventListener('focusout', () => {
35070
35595
  this.hasFocus = false;
@@ -35076,7 +35601,7 @@ class AuroDatePicker extends AuroElement {
35076
35601
  if (!this.matches(':focus-within')) {
35077
35602
  this.validate();
35078
35603
  }
35079
- });
35604
+ }, { signal });
35080
35605
 
35081
35606
  if (this.valueObject) {
35082
35607
  this.calendar.dateFrom = this.convertToWcValidTime(this.valueObject);
@@ -35274,6 +35799,41 @@ class AuroDatePicker extends AuroElement {
35274
35799
  return this.validity !== undefined && this.validity !== 'valid';
35275
35800
  }
35276
35801
 
35802
+ /**
35803
+ * Per-class dedup set used by `_warnInvalidLocale`. Static so the dedup
35804
+ * spans every datepicker instance on the page; lives on the class (not
35805
+ * at module scope) so it stays an encapsulated implementation detail of
35806
+ * this component and does not interfere with WCA's class-JSDoc
35807
+ * attachment.
35808
+ * @private
35809
+ */
35810
+ static _warnedInvalidLocales = new Set();
35811
+
35812
+ /**
35813
+ * Logs a one-time `console.debug` when an unsupported locale falls back to
35814
+ * en-US. Deduped by the offending tag so noisy re-renders that resurface
35815
+ * the same bad value stay quiet, but each new bad value still signals so
35816
+ * consumers can spot the typo or missing tag.
35817
+ * @private
35818
+ * @param {string|undefined} badLocale - The locale value that failed.
35819
+ * @returns {void}
35820
+ */
35821
+ _warnInvalidLocale(badLocale) {
35822
+ // Stringify without coalescing — `String(undefined)` / `String(null)`
35823
+ // surface the actual offending value in the log, instead of the
35824
+ // ambiguous `Locale ""` that `String(badLocale ?? '')` would produce.
35825
+ // Dedup still works correctly because each unique stringification
35826
+ // becomes its own Set entry.
35827
+ const key = String(badLocale);
35828
+ const seen = AuroDatePicker._warnedInvalidLocales;
35829
+ if (seen.has(key)) {
35830
+ return;
35831
+ }
35832
+ seen.add(key);
35833
+ // eslint-disable-next-line no-console
35834
+ console.debug(`[auro-datepicker] Locale "${key}" is not supported by Intl.DateTimeFormat. Falling back to "en-US". Pass a BCP 47 tag such as "en-US", "fr-FR", or "ja-JP".`);
35835
+ }
35836
+
35277
35837
  /**
35278
35838
  * Lifecycle method to check if the locale is valid.
35279
35839
  * @ignore
@@ -35284,10 +35844,15 @@ class AuroDatePicker extends AuroElement {
35284
35844
  if (changedProperties.has('locale')) {
35285
35845
  try {
35286
35846
  const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
35287
- this._validLocale = supported.length > 0 ? this.locale : 'en-US';
35847
+ if (supported.length > 0) {
35848
+ this._validLocale = this.locale;
35849
+ } else {
35850
+ this._validLocale = 'en-US';
35851
+ this._warnInvalidLocale(this.locale);
35852
+ }
35288
35853
  } catch {
35289
- console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
35290
35854
  this._validLocale = 'en-US';
35855
+ this._warnInvalidLocale(this.locale);
35291
35856
  }
35292
35857
 
35293
35858
  const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
@@ -35369,8 +35934,6 @@ class AuroDatePicker extends AuroElement {
35369
35934
  // Skip centralDate update when user clicked a cell in range mode
35370
35935
  // to prevent the displayed months from shifting
35371
35936
  this.centralDate = this.value;
35372
- //TODO: TEST THIS CHANGE
35373
- // this.calendarRenderUtil.updateCentralDate(this, this.value);
35374
35937
  }
35375
35938
 
35376
35939
  this.setHasValue();
@@ -35430,8 +35993,6 @@ class AuroDatePicker extends AuroElement {
35430
35993
  // Skip centralDate update when user clicked a cell in range mode
35431
35994
  // to prevent the displayed months from shifting
35432
35995
  this.centralDate = this.valueEnd;
35433
- // TODO: TEST THIS CHANGE
35434
- // this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
35435
35996
  }
35436
35997
 
35437
35998
  this.validate();
@@ -35573,7 +36134,7 @@ class AuroDatePicker extends AuroElement {
35573
36134
  * @returns {void}
35574
36135
  */
35575
36136
  configureClickHandler() {
35576
- this.addEventListener('click', this.handleClick);
36137
+ this.addEventListener('click', this.handleClick, { signal: this._listenerAbortController.signal });
35577
36138
  }
35578
36139
 
35579
36140
  firstUpdated() {
@@ -35581,6 +36142,15 @@ class AuroDatePicker extends AuroElement {
35581
36142
  // Add the tag name as an attribute if it is different than the component name
35582
36143
  this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
35583
36144
 
36145
+ // If the element was disconnected before this first render finished,
36146
+ // disconnectedCallback's microtask already aborted the controller. The
36147
+ // connectedCallback reinit guard skips that case because `hasUpdated`
36148
+ // is still false. Mint a fresh controller here so configure* registers
36149
+ // listeners against a live signal.
36150
+ if (this._listenerAbortController.signal.aborted) {
36151
+ this._listenerAbortController = new AbortController();
36152
+ }
36153
+
35584
36154
  this.configureDropdown();
35585
36155
  this.configureInput();
35586
36156
  this.configureCalendar();
@@ -35592,9 +36162,36 @@ class AuroDatePicker extends AuroElement {
35592
36162
  connectedCallback() {
35593
36163
  super.connectedCallback();
35594
36164
 
36165
+ // True reconnect after `disconnectedCallback` aborted our controller:
36166
+ // the existing signal is dead, so listeners registered against it
36167
+ // would never fire. Create a fresh controller and re-run the
36168
+ // configure* wiring (each method is idempotent — it just re-caches
36169
+ // child refs and re-registers listeners against the new signal).
36170
+ // `hasUpdated` gates this so the *first* connect (which precedes
36171
+ // firstUpdated) still falls through to firstUpdated's initial wiring.
36172
+ if (this.hasUpdated && this._listenerAbortController.signal.aborted) {
36173
+ this._listenerAbortController = new AbortController();
36174
+ this.configureDropdown();
36175
+ this.configureInput();
36176
+ this.configureCalendar();
36177
+ this.configureDatepicker();
36178
+ this.configureClickHandler();
36179
+ }
36180
+
35595
36181
  this.locale = this.domHandler.getLocale(this);
35596
36182
  }
35597
36183
 
36184
+ disconnectedCallback() {
36185
+ super.disconnectedCallback();
36186
+ // Defer so that re-parenting (auro-drawer slotting it into a dialog,
36187
+ // for example) does not abort listeners we still need after reconnect.
36188
+ queueMicrotask(() => {
36189
+ if (!this.isConnected) {
36190
+ this._listenerAbortController.abort();
36191
+ }
36192
+ });
36193
+ }
36194
+
35598
36195
  // layout render methods
35599
36196
  // ------------------------------------
35600
36197