@aurodesignsystem-dev/auro-formkit 0.0.0-pr1497.0 → 0.0.0-pr1497.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 (132) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +7 -0
  2. package/components/bibtemplate/dist/index.js +9 -1
  3. package/components/bibtemplate/dist/registered.js +9 -1
  4. package/components/checkbox/demo/css-only.html +57 -0
  5. package/components/checkbox/demo/css-only.md +146 -0
  6. package/components/checkbox/demo/customize.min.js +1 -1
  7. package/components/checkbox/demo/getting-started.min.js +1 -1
  8. package/components/checkbox/demo/index.min.js +1 -1
  9. package/components/checkbox/demo/pages.json +1 -1
  10. package/components/checkbox/demo/styles.min.css +1 -1
  11. package/components/checkbox/demo/why-checkbox.html +57 -0
  12. package/components/checkbox/demo/why-checkbox.md +86 -0
  13. package/components/checkbox/dist/index.js +1 -1
  14. package/components/checkbox/dist/registered.js +1 -1
  15. package/components/combobox/demo/css-only.html +57 -0
  16. package/components/combobox/demo/css-only.md +209 -0
  17. package/components/combobox/demo/customize.min.js +250 -16
  18. package/components/combobox/demo/getting-started.min.js +250 -16
  19. package/components/combobox/demo/index.min.js +250 -16
  20. package/components/combobox/demo/pages.json +1 -1
  21. package/components/combobox/demo/styles.min.css +1 -1
  22. package/components/combobox/demo/why-combobox.html +57 -0
  23. package/components/combobox/demo/why-combobox.md +113 -0
  24. package/components/combobox/dist/index.js +250 -16
  25. package/components/combobox/dist/registered.js +250 -16
  26. package/components/counter/demo/css-only.html +57 -0
  27. package/components/counter/demo/css-only.md +184 -0
  28. package/components/counter/demo/customize.min.js +249 -15
  29. package/components/counter/demo/index.min.js +249 -15
  30. package/components/counter/demo/keyboard-behavior.md +1 -0
  31. package/components/counter/demo/pages.json +1 -1
  32. package/components/counter/demo/styles.min.css +1 -1
  33. package/components/counter/demo/why-counter.html +57 -0
  34. package/components/counter/demo/why-counter.md +108 -0
  35. package/components/counter/dist/index.js +10 -2
  36. package/components/counter/dist/registered.js +10 -2
  37. package/components/datepicker/demo/accessibility.md +54 -3
  38. package/components/datepicker/demo/api.md +63 -53
  39. package/components/datepicker/demo/css-only.html +57 -0
  40. package/components/datepicker/demo/css-only.md +151 -0
  41. package/components/datepicker/demo/customize.html +2 -0
  42. package/components/datepicker/demo/customize.js +19 -0
  43. package/components/datepicker/demo/customize.md +56 -0
  44. package/components/datepicker/demo/customize.min.js +36147 -0
  45. package/components/datepicker/demo/design.md +3 -1
  46. package/components/datepicker/demo/index.js +5 -1
  47. package/components/datepicker/demo/index.md +104 -15
  48. package/components/datepicker/demo/index.min.js +2485 -261
  49. package/components/datepicker/demo/keyboard-behavior.md +201 -2
  50. package/components/datepicker/demo/pages.json +1 -1
  51. package/components/datepicker/demo/styles.min.css +1 -1
  52. package/components/datepicker/demo/voiceover.md +21 -12
  53. package/components/datepicker/demo/why-datepicker.html +57 -0
  54. package/components/datepicker/demo/why-datepicker.md +133 -0
  55. package/components/datepicker/dist/index.js +2348 -211
  56. package/components/datepicker/dist/registered.js +2348 -211
  57. package/components/datepicker/dist/src/auro-calendar-cell.d.ts +113 -13
  58. package/components/datepicker/dist/src/auro-calendar-month.d.ts +38 -1
  59. package/components/datepicker/dist/src/auro-calendar.d.ts +258 -0
  60. package/components/datepicker/dist/src/auro-datepicker.d.ts +141 -41
  61. package/components/datepicker/dist/src/datepickerKeyboardStrategy.d.ts +5 -3
  62. package/components/dropdown/demo/accessibility.md +11 -0
  63. package/components/dropdown/demo/api.md +1 -0
  64. package/components/dropdown/demo/css-only.html +57 -0
  65. package/components/dropdown/demo/css-only.md +219 -0
  66. package/components/dropdown/demo/customize.md +3 -0
  67. package/components/dropdown/demo/customize.min.js +239 -13
  68. package/components/dropdown/demo/getting-started.min.js +239 -13
  69. package/components/dropdown/demo/index.min.js +239 -13
  70. package/components/dropdown/demo/keyboard-behavior.md +1 -0
  71. package/components/dropdown/demo/pages.json +1 -1
  72. package/components/dropdown/demo/styles.min.css +1 -1
  73. package/components/dropdown/demo/why-dropdown.html +57 -0
  74. package/components/dropdown/demo/why-dropdown.md +97 -0
  75. package/components/dropdown/dist/auro-dropdown.d.ts +34 -1
  76. package/components/dropdown/dist/index.js +239 -13
  77. package/components/dropdown/dist/registered.js +239 -13
  78. package/components/form/demo/css-only.html +57 -0
  79. package/components/form/demo/css-only.md +156 -0
  80. package/components/form/demo/customize.min.js +3098 -259
  81. package/components/form/demo/getting-started.min.js +3098 -259
  82. package/components/form/demo/index.min.js +3098 -259
  83. package/components/form/demo/pages.json +1 -1
  84. package/components/form/demo/registerDemoDeps.min.js +3098 -259
  85. package/components/form/demo/styles.min.css +1 -1
  86. package/components/form/demo/why-form.html +57 -0
  87. package/components/form/demo/why-form.md +101 -0
  88. package/components/input/demo/css-only.html +57 -0
  89. package/components/input/demo/css-only.md +199 -0
  90. package/components/input/demo/customize.min.js +1 -1
  91. package/components/input/demo/getting-started.min.js +1 -1
  92. package/components/input/demo/index.min.js +1 -1
  93. package/components/input/demo/pages.json +1 -1
  94. package/components/input/demo/styles.min.css +1 -1
  95. package/components/input/demo/why-input.html +57 -0
  96. package/components/input/demo/why-input.md +121 -0
  97. package/components/input/dist/index.js +1 -1
  98. package/components/input/dist/registered.js +1 -1
  99. package/components/menu/demo/css-only.html +57 -0
  100. package/components/menu/demo/css-only.md +166 -0
  101. package/components/menu/demo/pages.json +1 -1
  102. package/components/menu/demo/styles.min.css +1 -1
  103. package/components/menu/demo/why-menu.html +57 -0
  104. package/components/menu/demo/why-menu.md +104 -0
  105. package/components/radio/demo/css-only.html +57 -0
  106. package/components/radio/demo/css-only.md +151 -0
  107. package/components/radio/demo/customize.min.js +1764 -0
  108. package/components/radio/demo/demo-support.min.js +55807 -0
  109. package/components/radio/demo/getting-started.js +1 -1
  110. package/components/radio/demo/getting-started.md +1 -1
  111. package/components/radio/demo/getting-started.min.js +1783 -0
  112. package/components/radio/demo/index.min.js +1 -1
  113. package/components/radio/demo/pages.json +1 -1
  114. package/components/radio/demo/styles.min.css +1 -1
  115. package/components/radio/demo/why-radio.html +57 -0
  116. package/components/radio/demo/why-radio.md +92 -0
  117. package/components/radio/dist/index.js +1 -1
  118. package/components/radio/dist/registered.js +1 -1
  119. package/components/select/demo/css-only.html +57 -0
  120. package/components/select/demo/css-only.md +203 -0
  121. package/components/select/demo/customize.min.js +249 -15
  122. package/components/select/demo/getting-started.min.js +249 -15
  123. package/components/select/demo/index.min.js +249 -15
  124. package/components/select/demo/keyboard-behavior.md +1 -0
  125. package/components/select/demo/pages.json +1 -1
  126. package/components/select/demo/styles.min.css +1 -1
  127. package/components/select/demo/why-select.html +57 -0
  128. package/components/select/demo/why-select.md +128 -0
  129. package/components/select/dist/index.js +249 -15
  130. package/components/select/dist/registered.js +249 -15
  131. package/custom-elements.json +1171 -92
  132. package/package.json +8 -8
@@ -10631,6 +10631,7 @@ class UtilitiesCalendarRender {
10631
10631
  updateCentralDate(elem, date) {
10632
10632
  // if date is already iso formatted string, we can skip the conversion and validation step
10633
10633
  if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
10634
+ // eslint-disable-next-line
10634
10635
  elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
10635
10636
  return;
10636
10637
  }
@@ -10715,13 +10716,10 @@ class UtilitiesCalendarRender {
10715
10716
  // 2. Start by assuming we can render the max number of months.
10716
10717
  let calendarCount = maxRenderableMonths;
10717
10718
 
10718
- // 3. If we didn't get a count early, restrict based on min/max date.
10719
+ // 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
10720
+ // fall back to the min/max date range so something is rendered.
10719
10721
  if (!calendarCount && elem.minDate && elem.maxDate) {
10720
- const monthsInRange = this.util.monthDiff(dateFormatter$1.stringToDateInstance(elem.minDate), dateFormatter$1.stringToDateInstance(elem.maxDate));
10721
-
10722
- if (monthsInRange < maxRenderableMonths) {
10723
- calendarCount = monthsInRange;
10724
- }
10722
+ calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
10725
10723
  }
10726
10724
 
10727
10725
  if (elem.numCalendars !== calendarCount) {
@@ -10769,7 +10767,6 @@ class UtilitiesCalendarRender {
10769
10767
  .max="${elem.max}"
10770
10768
  ?noRange="${elem.noRange}"
10771
10769
  .monthFirst="${elem.monthFirst}"
10772
- .hoveredDate="${elem.hoveredDate}"
10773
10770
  .dateTo="${elem.dateTo}"
10774
10771
  .dateFrom="${elem.dateFrom}"
10775
10772
  .locale="${elem.locale}"
@@ -10802,11 +10799,11 @@ var snowflakeStyle = i$3`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
10802
10799
 
10803
10800
  var snowflakeColors = i$3`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
10804
10801
 
10805
- var styleCss$7 = i$3`.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;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendarNavButtons{position:absolute;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:""}`;
10802
+ var styleCss$7 = i$3`.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}`;
10806
10803
 
10807
10804
  var colorCss$7 = i$3`.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)}}`;
10808
10805
 
10809
- var styleCss$6 = i$3`: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)}}@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}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height:384px}}.td{flex:1;margin:0;padding:0}.tr{display:flex;flex-direction:row;width:100%}`;
10806
+ var styleCss$6 = i$3`: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:336px}}.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)}`;
10810
10807
 
10811
10808
  var colorCss$6 = i$3`: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)}`;
10812
10809
 
@@ -11567,41 +11564,45 @@ __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "dayNamesO
11567
11564
  __decorate([n$4({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
11568
11565
  AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
11569
11566
 
11570
- var styleCss$5 = i$3`.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:var(--ds-size-500, 2.5rem);height:calc(var(--ds-size-700, 3.5rem) - 2px);padding:0;border-width:1px;border-style:solid;border-radius:var(--ds-size-300, 1.5rem);cursor:pointer;user-select:none}.day.disabled{cursor:default !important;pointer-events:none}.day.reference{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background, #ffffff)}.day.inRange::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%)}@media screen and (min-width: 576px){.day.inRange::before{width:var(--ds-size-600, 3rem)}}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(0%, -50%)}@media screen and (min-width: 576px){.day.rangeDepartDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:50%;left:50%;display:block;width:14.2857142857vw;height:var(--ds-size-600, 3rem);content:"";transform:translate(-50%, -50%);width:7.1428571429vw;transform:translate(-100%, -50%)}@media screen and (min-width: 576px){.day.rangeReturnDate::before,.day.lastHoveredDate::before{width:calc(var(--ds-size-600, 3rem)/2)}}.dateSlot{display:flex;flex-direction:column}::slotted([slot^=date_]){position:absolute;top:80%;left:50%;width:100%;white-space:nowrap;transform:translate(-50%, -50%)}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;top:5px}:host([renderForDateSlot]) .currentDayMarker{position:relative;padding-bottom:5px;top:-8px}@media screen and (min-width: 576px){.day{width:var(--ds-size-600, 3rem);height:var(--ds-size-800, 4rem)}.day:hover{cursor:pointer}}`;
11567
+ var styleCss$5 = i$3`.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}`;
11571
11568
 
11572
- var colorCss$5 = i$3`: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.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{--ds-auro-calendar-cell-border-color: var(--ds-basic-color-border-default, #959595)}:host .day.reference:not(.selected):not(.disabled){--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-muted, #676767)}:host .day.reference.selected{--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}: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.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}`;
11569
+ var colorCss$5 = i$3`: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}`;
11573
11570
 
11574
- let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",m$7=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),u$8=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$4(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$4(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var O=Math.max,k$6=Math.min,A$3=Math.round;function z$6(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function E(){return !/^((?!chrome|android).)*safari/i.test(z$6())}function M$7(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&A$3(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&A$3(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!E()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function T$3(e){var t=M$7(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function H$3(e){return ["table","td","th"].indexOf(v$4(e))>=0}function C$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function R$3(e){return "html"===v$4(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||C$3(e)}function j(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=j(e);i&&H$3(i)&&"static"===L(i).position;)i=j(i);return i&&("html"===v$4(i)||"body"===v$4(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(z$6());if(/Trident/i.test(z$6())&&b$3(e)&&"fixed"===L(e).position)return null;var i=R$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$4(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function D(e,t,i){return O(e,k$6(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function F(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var U$3={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),m=[a,n$3].indexOf(f)>=0?"height":"width";if(p&&d){var u=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:F(e,c$5))}(l.padding,i),g=T$3(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,w=i.rects.reference[m]+i.rects.reference[h]-d[h]-i.rects.popper[m],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,O=w/2-b/2,k=u[v],A=S-g[m]-u[y],z=S/2-g[m]/2+O,E=D(k,z,A),M=h;i.modifiersData[s]=((t={})[M]=E,t.centerOffset=E-z,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function q$3(e){return e.split("-")[1]}var W={top:"auto",right:"auto",bottom:"auto",left:"auto"};function X(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,m=e.adaptive,u=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof u?u({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),O=p.hasOwnProperty("y"),k=a,z=r$3,E=window;if(m){var M=N$3(i),T="clientHeight",B="clientWidth";if(M===y$6(i)&&"static"!==L(M=C$3(i)).position&&"absolute"===f&&(T="scrollHeight",B="scrollWidth"),l===r$3||(l===a||l===n$3)&&c===d$3)z=o$3,x-=(g&&M===E&&E.visualViewport?E.visualViewport.height:M[T])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)k=n$3,w-=(g&&M===E&&E.visualViewport?E.visualViewport.width:M[B])-s.width,w*=h?1:-1;}var H,R=Object.assign({position:f},m&&W),j=true===u?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:A$3(i*r)/r||0,y:A$3(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=j.x,x=j.y,h?Object.assign({},R,((H={})[z]=O?"0":"",H[k]=_?"0":"",H.transform=(E.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",H)):Object.assign({},R,((t={})[z]=O?x+"px":"",t[k]=_?w+"px":"",t.transform="",t))}var V={passive:true};var G={left:"right",right:"left",bottom:"top",top:"bottom"};function $(e){return e.replace(/left|right|bottom|top/g,function(e){return G[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return M$7(C$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$4(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(R$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(R$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$7?ie(function(e,t){var i=y$6(e),s=C$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=E();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=M$7(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=C$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=O(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=O(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=O(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(C$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(R$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$4(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=O(r.top,t.top),t.right=k$6(r.right,t.right),t.bottom=k$6(r.bottom,t.bottom),t.left=O(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?q$3(l):null,h=i.x+i.width/2-s.width/2,m=i.y+i.height/2-s.height/2;switch(c){case r$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3:t={x:i.x+i.width,y:m};break;case a:t={x:i.x-s.width,y:m};break;default:t={x:i.x,y:i.y};}var u=c?P(c):null;if(null!=u){var g="y"===u?"height":"width";switch(f){case p$7:t[u]=t[u]-(i[g]/2-s[g]/2);break;case d$3:t[u]=t[u]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,m=void 0===d?"clippingParents":d,u=i.rootBoundary,g=void 0===u?f$7:u,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,O=I("number"!=typeof _?_:F(_,c$5)),k=y===h$6?"reference":h$6,A=e.rects.popper,z=e.elements[x?k:y],E=re(w$6(z)?z:z.contextElement||C$3(e.elements.popper),m,g,p),T=M$7(e.elements.reference),B=oe({reference:T,element:A,placement:a}),L=ie(Object.assign({},A,B)),H=y===h$6?L:T,R={top:E.top-H.top+O.top,bottom:H.bottom-E.bottom+O.bottom,left:E.left-H.left+O.left,right:H.right-E.right+O.right},j=e.modifiersData.offset;if(y===h$6&&j){var N=j[a];Object.keys(R).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].indexOf(e)>=0?"y":"x";R[e]+=N[i]*t;});}return R}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?u$8:l,d=q$3(s),f=d?a?m$7:m$7.filter(function(e){return q$3(e)===d}):c$5,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,m=i.fallbackPlacements,u=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,O=_$4(S),k=m||(O===S||!b?[$(S)]:function(e){if(_$4(e)===l$3)return [];var t=$(e);return [Y(e),t,Y(t)]}(S)),A=[S].concat(k).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:u,flipVariations:b,allowedAutoPlacements:x}):i)},[]),z=t.rects.reference,E=t.rects.popper,M=new Map,T=true,B=A[0],L=0;L<A.length;L++){var H=A[L],C=_$4(H),R=q$3(H)===p$7,j=[r$3,o$3].indexOf(C)>=0,N=j?"width":"height",P=ne(t,{placement:H,boundary:g,rootBoundary:v,altBoundary:y,padding:u}),D=j?R?n$3:a:R?o$3:r$3;z[N]>E[N]&&(D=$(D));var I=$(D),F=[];if(d&&F.push(P[C]<=0),h&&F.push(P[D]<=0,P[I]<=0),F.every(function(e){return e})){B=H,T=false;break}M.set(H,F);}if(T)for(var U=function(e){var t=A.find(function(t){var i=M.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},W=b?3:1;W>0;W--){if("break"===U(W))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$3,n$3,o$3,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=u$8.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$3].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,m=i.rootBoundary,u=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:m,padding:g,altBoundary:u}),S=_$4(t.placement),A=q$3(t.placement),z=!A,E=P(S),M="x"===E?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,H=t.rects.popper,C="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,R="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),j=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var F,U="y"===E?r$3:a,W="y"===E?o$3:n$3,X="y"===E?"height":"width",V=B[E],G=V+x[U],$=V-x[W],K=y?-H[X]/2:0,Y=A===p$7?L[X]:H[X],J=A===p$7?-H[X]:-L[X],Q=t.elements.arrow,Z=y&&Q?T$3(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[U],ie=ee[W],se=D(0,L[X],Z[X]),re=z?L[X]/2-K-se-te-R.mainAxis:Y-se-te-R.mainAxis,oe=z?-L[X]/2+K+se+ie+R.mainAxis:J+se+ie+R.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===E?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(F=null==j?void 0:j[E])?F:0,pe=V+oe-ce,de=D(y?k$6(G,V+re-ce-le):G,V,y?O($,pe):$);B[E]=de,I[E]=de-V;}if(f){var fe,he="x"===E?r$3:a,me="x"===E?o$3:n$3,ue=B[M],ge="y"===M?"height":"width",ve=ue+x[he],ye=ue-x[me],we=-1!==[r$3,a].indexOf(S),be=null!=(fe=null==j?void 0:j[M])?fe:0,xe=we?ve:ue-L[ge]-H[ge]-be+R.altAxis,Se=we?ue+L[ge]+H[ge]-be-R.altAxis:ye,_e=y&&we?function(e,t,i){var s=D(e,t,i);return s>i?i:s}(xe,ue,Se):D(y?xe:ve,ue,y?Se:ye);B[M]=_e,I[M]=_e-ue;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=A$3(t.width)/e.offsetWidth||1,s=A$3(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=C$3(t),l=M$7(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$4(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=M$7(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function me(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var ue={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?ue:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},ue,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=me(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:T$3(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,V);}),a&&l.addEventListener("resize",i.update,V),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,V);}),a&&l.removeEventListener("resize",i.update,V);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:q$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,X(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,X(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,U$3,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$3`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
11571
+ let s$2 = class s{registerComponent(e,t){customElements.get(e)||customElements.define(e,class extends t{});}closestElement(e,t=this,i=(t,s=t&&t.closest(e))=>t&&t!==document&&t!==window?s||i(t.getRootNode().host):null){return i(t)}handleComponentTagRename(e,t){const i=t.toLowerCase();e.tagName.toLowerCase()!==i&&e.setAttribute(i,true);}elementMatch(e,t){const i=t.toLowerCase();return e.tagName.toLowerCase()===i||e.hasAttribute(i)}getSlotText(e,t){const i=e.shadowRoot?.querySelector(`slot[name="${t}"]`);return (i?.assignedNodes({flatten:true})||[]).map(e=>e.textContent?.trim()).join(" ").trim()||null}};var r$3="top",o$3="bottom",n$3="right",a="left",l$3="auto",c$5=[r$3,o$3,n$3,a],p$7="start",d$3="end",f$7="viewport",h$6="popper",u$8=c$5.reduce(function(e,t){return e.concat([t+"-"+p$7,t+"-"+d$3])},[]),m$7=[].concat(c$5,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$7,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$4(e){return e?(e.nodeName||"").toLowerCase():null}function y$6(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function w$6(e){return e instanceof y$6(e).Element||e instanceof Element}function b$3(e){return e instanceof y$6(e).HTMLElement||e instanceof HTMLElement}function x$3(e){return "undefined"!=typeof ShadowRoot&&(e instanceof y$6(e).ShadowRoot||e instanceof ShadowRoot)}var S$3={name:"applyStyles",enabled:true,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var i=t.styles[e]||{},s=t.attributes[e]||{},r=t.elements[e];b$3(r)&&v$4(r)&&(Object.assign(r.style,i),Object.keys(s).forEach(function(e){var t=s[e];false===t?r.removeAttribute(e):r.setAttribute(e,true===t?"":t);}));});},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach(function(e){var s=t.elements[e],r=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce(function(e,t){return e[t]="",e},{});b$3(s)&&v$4(s)&&(Object.assign(s.style,o),Object.keys(r).forEach(function(e){s.removeAttribute(e);}));});}},requires:["computeStyles"]};function _$4(e){return e.split("-")[0]}var A$3=Math.max,O=Math.min,k$6=Math.round;function T$3(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function z$6(){return !/^((?!chrome|android).)*safari/i.test(T$3())}function E(e,t,i){ void 0===t&&(t=false),void 0===i&&(i=false);var s=e.getBoundingClientRect(),r=1,o=1;t&&b$3(e)&&(r=e.offsetWidth>0&&k$6(s.width)/e.offsetWidth||1,o=e.offsetHeight>0&&k$6(s.height)/e.offsetHeight||1);var n=(w$6(e)?y$6(e):window).visualViewport,a=!z$6()&&i,l=(s.left+(a&&n?n.offsetLeft:0))/r,c=(s.top+(a&&n?n.offsetTop:0))/o,p=s.width/r,d=s.height/o;return {width:p,height:d,top:c,right:l+p,bottom:c+d,left:l,x:l,y:c}}function M$7(e){var t=E(e),i=e.offsetWidth,s=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-s)<=1&&(s=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:s}}function B$3(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return true;if(i&&x$3(i)){var s=t;do{if(s&&e.isSameNode(s))return true;s=s.parentNode||s.host;}while(s)}return false}function L(e){return y$6(e).getComputedStyle(e)}function R$3(e){return ["table","td","th"].indexOf(v$4(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$4(e)?e:e.assignedSlot||e.parentNode||(x$3(e)?e.host:null)||H$3(e)}function D(e){return b$3(e)&&"fixed"!==L(e).position?e.offsetParent:null}function N$3(e){for(var t=y$6(e),i=D(e);i&&R$3(i)&&"static"===L(i).position;)i=D(i);return i&&("html"===v$4(i)||"body"===v$4(i)&&"static"===L(i).position)?t:i||function(e){var t=/firefox/i.test(T$3());if(/Trident/i.test(T$3())&&b$3(e)&&"fixed"===L(e).position)return null;var i=C$3(e);for(x$3(i)&&(i=i.host);b$3(i)&&["html","body"].indexOf(v$4(i))<0;){var s=L(i);if("none"!==s.transform||"none"!==s.perspective||"paint"===s.contain||-1!==["transform","perspective"].indexOf(s.willChange)||t&&"filter"===s.willChange||t&&s.filter&&"none"!==s.filter)return i;i=i.parentNode;}return null}(e)||t}function P(e){return ["top","bottom"].indexOf(e)>=0?"x":"y"}function j(e,t,i){return A$3(e,O(t,i))}function I(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function q$3(e,t){return t.reduce(function(t,i){return t[i]=e,t},{})}var F={name:"arrow",enabled:true,phase:"main",fn:function(e){var t,i=e.state,s=e.name,l=e.options,p=i.elements.arrow,d=i.modifiersData.popperOffsets,f=_$4(i.placement),h=P(f),u=[a,n$3].indexOf(f)>=0?"height":"width";if(p&&d){var m=function(e,t){return I("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:q$3(e,c$5))}(l.padding,i),g=M$7(p),v="y"===h?r$3:a,y="y"===h?o$3:n$3,w=i.rects.reference[u]+i.rects.reference[h]-d[h]-i.rects.popper[u],b=d[h]-i.rects.reference[h],x=N$3(p),S=x?"y"===h?x.clientHeight||0:x.clientWidth||0:0,A=w/2-b/2,O=m[v],k=S-g[u]-m[y],T=S/2-g[u]/2+A,z=j(O,T,k),E=h;i.modifiersData[s]=((t={})[E]=z,t.centerOffset=z-T,t);}},effect:function(e){var t=e.state,i=e.options.element,s=void 0===i?"[data-popper-arrow]":i;null!=s&&("string"!=typeof s||(s=t.elements.popper.querySelector(s)))&&B$3(t.elements.popper,s)&&(t.elements.arrow=s);},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function U$3(e){return e.split("-")[1]}var V={top:"auto",right:"auto",bottom:"auto",left:"auto"};function W(e){var t,i=e.popper,s=e.popperRect,l=e.placement,c=e.variation,p=e.offsets,f=e.position,h=e.gpuAcceleration,u=e.adaptive,m=e.roundOffsets,g=e.isFixed,v=p.x,w=void 0===v?0:v,b=p.y,x=void 0===b?0:b,S="function"==typeof m?m({x:w,y:x}):{x:w,y:x};w=S.x,x=S.y;var _=p.hasOwnProperty("x"),A=p.hasOwnProperty("y"),O=a,T=r$3,z=window;if(u){var E=N$3(i),M="clientHeight",B="clientWidth";if(E===y$6(i)&&"static"!==L(E=H$3(i)).position&&"absolute"===f&&(M="scrollHeight",B="scrollWidth"),l===r$3||(l===a||l===n$3)&&c===d$3)T=o$3,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$3||l===o$3)&&c===d$3)O=n$3,w-=(g&&E===z&&z.visualViewport?z.visualViewport.width:E[B])-s.width,w*=h?1:-1;}var R,C=Object.assign({position:f},u&&V),D=true===m?function(e,t){var i=e.x,s=e.y,r=t.devicePixelRatio||1;return {x:k$6(i*r)/r||0,y:k$6(s*r)/r||0}}({x:w,y:x},y$6(i)):{x:w,y:x};return w=D.x,x=D.y,h?Object.assign({},C,((R={})[T]=A?"0":"",R[O]=_?"0":"",R.transform=(z.devicePixelRatio||1)<=1?"translate("+w+"px, "+x+"px)":"translate3d("+w+"px, "+x+"px, 0)",R)):Object.assign({},C,((t={})[T]=A?x+"px":"",t[O]=_?w+"px":"",t.transform="",t))}var X={passive:true};var $={left:"right",right:"left",bottom:"top",top:"bottom"};function G(e){return e.replace(/left|right|bottom|top/g,function(e){return $[e]})}var K={start:"end",end:"start"};function Y(e){return e.replace(/start|end/g,function(e){return K[e]})}function J(e){var t=y$6(e);return {scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Q(e){return E(H$3(e)).left+J(e).scrollLeft}function Z(e){var t=L(e),i=t.overflow,s=t.overflowX,r=t.overflowY;return /auto|scroll|overlay|hidden/.test(i+r+s)}function ee(e){return ["html","body","#document"].indexOf(v$4(e))>=0?e.ownerDocument.body:b$3(e)&&Z(e)?e:ee(C$3(e))}function te(e,t){var i;void 0===t&&(t=[]);var s=ee(e),r=s===(null==(i=e.ownerDocument)?void 0:i.body),o=y$6(s),n=r?[o].concat(o.visualViewport||[],Z(s)?s:[]):s,a=t.concat(n);return r?a:a.concat(te(C$3(n)))}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,i){return t===f$7?ie(function(e,t){var i=y$6(e),s=H$3(e),r=i.visualViewport,o=s.clientWidth,n=s.clientHeight,a=0,l=0;if(r){o=r.width,n=r.height;var c=z$6();(c||!c&&"fixed"===t)&&(a=r.offsetLeft,l=r.offsetTop);}return {width:o,height:n,x:a+Q(e),y:l}}(e,i)):w$6(t)?function(e,t){var i=E(e,false,"fixed"===t);return i.top=i.top+e.clientTop,i.left=i.left+e.clientLeft,i.bottom=i.top+e.clientHeight,i.right=i.left+e.clientWidth,i.width=e.clientWidth,i.height=e.clientHeight,i.x=i.left,i.y=i.top,i}(t,i):ie(function(e){var t,i=H$3(e),s=J(e),r=null==(t=e.ownerDocument)?void 0:t.body,o=A$3(i.scrollWidth,i.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),n=A$3(i.scrollHeight,i.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),a=-s.scrollLeft+Q(e),l=-s.scrollTop;return "rtl"===L(r||i).direction&&(a+=A$3(i.clientWidth,r?r.clientWidth:0)-o),{width:o,height:n,x:a,y:l}}(H$3(e)))}function re(e,t,i,s){var r="clippingParents"===t?function(e){var t=te(C$3(e)),i=["absolute","fixed"].indexOf(L(e).position)>=0&&b$3(e)?N$3(e):e;return w$6(i)?t.filter(function(e){return w$6(e)&&B$3(e,i)&&"body"!==v$4(e)}):[]}(e):[].concat(t),o=[].concat(r,[i]),n=o[0],a=o.reduce(function(t,i){var r=se(e,i,s);return t.top=A$3(r.top,t.top),t.right=O(r.right,t.right),t.bottom=O(r.bottom,t.bottom),t.left=A$3(r.left,t.left),t},se(e,n,s));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function oe(e){var t,i=e.reference,s=e.element,l=e.placement,c=l?_$4(l):null,f=l?U$3(l):null,h=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2;switch(c){case r$3:t={x:h,y:i.y-s.height};break;case o$3:t={x:h,y:i.y+i.height};break;case n$3:t={x:i.x+i.width,y:u};break;case a:t={x:i.x-s.width,y:u};break;default:t={x:i.x,y:i.y};}var m=c?P(c):null;if(null!=m){var g="y"===m?"height":"width";switch(f){case p$7:t[m]=t[m]-(i[g]/2-s[g]/2);break;case d$3:t[m]=t[m]+(i[g]/2-s[g]/2);}}return t}function ne(e,t){ void 0===t&&(t={});var i=t,s=i.placement,a=void 0===s?e.placement:s,l=i.strategy,p=void 0===l?e.strategy:l,d=i.boundary,u=void 0===d?"clippingParents":d,m=i.rootBoundary,g=void 0===m?f$7:m,v=i.elementContext,y=void 0===v?h$6:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$5)),O=y===h$6?"reference":h$6,k=e.rects.popper,T=e.elements[x?O:y],z=re(w$6(T)?T:T.contextElement||H$3(e.elements.popper),u,g,p),M=E(e.elements.reference),B=oe({reference:M,element:k,placement:a}),L=ie(Object.assign({},k,B)),R=y===h$6?L:M,C={top:z.top-R.top+A.top,bottom:R.bottom-z.bottom+A.bottom,left:z.left-R.left+A.left,right:R.right-z.right+A.right},D=e.modifiersData.offset;if(y===h$6&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$3,o$3].indexOf(e)>=0?1:-1,i=[r$3,o$3].indexOf(e)>=0?"y":"x";C[e]+=N[i]*t;});}return C}function ae(e,t){ void 0===t&&(t={});var i=t,s=i.placement,r=i.boundary,o=i.rootBoundary,n=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,p=void 0===l?m$7:l,d=U$3(s),f=d?a?u$8:u$8.filter(function(e){return U$3(e)===d}):c$5,h=f.filter(function(e){return p.indexOf(e)>=0});0===h.length&&(h=f);var g=h.reduce(function(t,i){return t[i]=ne(e,{placement:i,boundary:r,rootBoundary:o,padding:n})[_$4(i)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}var le={name:"flip",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name;if(!t.modifiersData[s]._skip){for(var c=i.mainAxis,d=void 0===c||c,f=i.altAxis,h=void 0===f||f,u=i.fallbackPlacements,m=i.padding,g=i.boundary,v=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,b=void 0===w||w,x=i.allowedAutoPlacements,S=t.options.placement,A=_$4(S),O=u||(A===S||!b?[G(S)]:function(e){if(_$4(e)===l$3)return [];var t=G(e);return [Y(e),t,Y(t)]}(S)),k=[S].concat(O).reduce(function(e,i){return e.concat(_$4(i)===l$3?ae(t,{placement:i,boundary:g,rootBoundary:v,padding:m,flipVariations:b,allowedAutoPlacements:x}):i)},[]),T=t.rects.reference,z=t.rects.popper,E=new Map,M=true,B=k[0],L=0;L<k.length;L++){var R=k[L],H=_$4(R),C=U$3(R)===p$7,D=[r$3,o$3].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$3:a:C?o$3:r$3;T[N]>z[N]&&(j=G(j));var I=G(j),q=[];if(d&&q.push(P[H]<=0),h&&q.push(P[j]<=0,P[I]<=0),q.every(function(e){return e})){B=R,M=false;break}E.set(R,q);}if(M)for(var F=function(e){var t=k.find(function(t){var i=E.get(t);if(i)return i.slice(0,e).every(function(e){return e})});if(t)return B=t,"break"},V=b?3:1;V>0;V--){if("break"===F(V))break}t.placement!==B&&(t.modifiersData[s]._skip=true,t.placement=B,t.reset=true);}},requiresIfExists:["offset"],data:{_skip:false}};function ce(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function pe(e){return [r$3,n$3,o$3,a].some(function(t){return e[t]>=0})}var de={name:"offset",enabled:true,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,s=e.name,o=i.offset,l=void 0===o?[0,0]:o,c=m$7.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$3].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],p=l[1];return c=c||0,p=(p||0)*o,[a,n$3].indexOf(s)>=0?{x:p,y:c}:{x:c,y:p}}(i,t.rects,l),e},{}),p=c[t.placement],d=p.x,f=p.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=d,t.modifiersData.popperOffsets.y+=f),t.modifiersData[s]=c;}};var fe={name:"preventOverflow",enabled:true,phase:"main",fn:function(e){var t=e.state,i=e.options,s=e.name,l=i.mainAxis,c=void 0===l||l,d=i.altAxis,f=void 0!==d&&d,h=i.boundary,u=i.rootBoundary,m=i.altBoundary,g=i.padding,v=i.tether,y=void 0===v||v,w=i.tetherOffset,b=void 0===w?0:w,x=ne(t,{boundary:h,rootBoundary:u,padding:g,altBoundary:m}),S=_$4(t.placement),k=U$3(t.placement),T=!k,z=P(S),E="x"===z?"y":"x",B=t.modifiersData.popperOffsets,L=t.rects.reference,R=t.rects.popper,H="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,C="number"==typeof H?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),D=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,I={x:0,y:0};if(B){if(c){var q,F="y"===z?r$3:a,V="y"===z?o$3:n$3,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$7?L[W]:R[W],J=k===p$7?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$7(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[F],ie=ee[V],se=j(0,L[W],Z[W]),re=T?L[W]/2-K-se-te-C.mainAxis:Y-se-te-C.mainAxis,oe=T?-L[W]/2+K+se+ie+C.mainAxis:J+se+ie+C.mainAxis,ae=t.elements.arrow&&N$3(t.elements.arrow),le=ae?"y"===z?ae.clientTop||0:ae.clientLeft||0:0,ce=null!=(q=null==D?void 0:D[z])?q:0,pe=X+oe-ce,de=j(y?O($,X+re-ce-le):$,X,y?A$3(G,pe):G);B[z]=de,I[z]=de-X;}if(f){var fe,he="x"===z?r$3:a,ue="x"===z?o$3:n$3,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$3,a].indexOf(S),be=null!=(fe=null==D?void 0:D[E])?fe:0,xe=we?ve:me-L[ge]-R[ge]-be+C.altAxis,Se=we?me+L[ge]+R[ge]-be-C.altAxis:ye,_e=y&&we?function(e,t,i){var s=j(e,t,i);return s>i?i:s}(xe,me,Se):j(y?xe:ve,me,y?Se:ye);B[E]=_e,I[E]=_e-me;}t.modifiersData[s]=I;}},requiresIfExists:["offset"]};function he(e,t,i){ void 0===i&&(i=false);var s,r,o=b$3(t),n=b$3(t)&&function(e){var t=e.getBoundingClientRect(),i=k$6(t.width)/e.offsetWidth||1,s=k$6(t.height)/e.offsetHeight||1;return 1!==i||1!==s}(t),a=H$3(t),l=E(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$4(t)||Z(a))&&(c=(s=t)!==y$6(s)&&b$3(s)?{scrollLeft:(r=s).scrollLeft,scrollTop:r.scrollTop}:J(s)),b$3(t)?((p=E(t,true)).x+=t.clientLeft,p.y+=t.clientTop):a&&(p.x=Q(a))),{x:l.left+c.scrollLeft-p.x,y:l.top+c.scrollTop-p.y,width:l.width,height:l.height}}function ue(e){var t=new Map,i=new Set,s=[];function r(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!i.has(e)){var s=t.get(e);s&&r(s);}}),s.push(e);}return e.forEach(function(e){t.set(e.name,e);}),e.forEach(function(e){i.has(e.name)||r(e);}),s}var me={placement:"bottom",modifiers:[],strategy:"absolute"};function ge(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return !t.some(function(e){return !(e&&"function"==typeof e.getBoundingClientRect)})}function ve(e){ void 0===e&&(e={});var t=e,i=t.defaultModifiers,s=void 0===i?[]:i,r=t.defaultOptions,o=void 0===r?me:r;return function(e,t,i){ void 0===i&&(i=o);var r,n,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},me,o),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},l=[],c=false,p={state:a,setOptions:function(i){var r="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,r),a.scrollParents={reference:w$6(e)?te(e):e.contextElement?te(e.contextElement):[],popper:te(t)};var n,c,f=function(e){var t=ue(e);return g$6.reduce(function(e,i){return e.concat(t.filter(function(e){return e.phase===i}))},[])}((n=[].concat(s,a.options.modifiers),c=n.reduce(function(e,t){var i=e[t.name];return e[t.name]=i?Object.assign({},i,t,{options:Object.assign({},i.options,t.options),data:Object.assign({},i.data,t.data)}):t,e},{}),Object.keys(c).map(function(e){return c[e]})));return a.orderedModifiers=f.filter(function(e){return e.enabled}),a.orderedModifiers.forEach(function(e){var t=e.name,i=e.options,s=void 0===i?{}:i,r=e.effect;if("function"==typeof r){var o=r({state:a,name:t,instance:p,options:s}),n=function(){};l.push(o||n);}}),p.update()},forceUpdate:function(){if(!c){var e=a.elements,t=e.reference,i=e.popper;if(ge(t,i)){a.rects={reference:he(t,N$3(i),"fixed"===a.options.strategy),popper:M$7(i)},a.reset=false,a.placement=a.options.placement,a.orderedModifiers.forEach(function(e){return a.modifiersData[e.name]=Object.assign({},e.data)});for(var s=0;s<a.orderedModifiers.length;s++)if(true!==a.reset){var r=a.orderedModifiers[s],o=r.fn,n=r.options,l=void 0===n?{}:n,d=r.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:p})||a);}else a.reset=false,s=-1;}}},update:(r=function(){return new Promise(function(e){p.forceUpdate(),e(a);})},function(){return n||(n=new Promise(function(e){Promise.resolve().then(function(){n=void 0,e(r());});})),n}),destroy:function(){d(),c=true;}};if(!ge(e,t))return p;function d(){l.forEach(function(e){return e()}),l=[];}return p.setOptions(i).then(function(e){!c&&i.onFirstUpdate&&i.onFirstUpdate(e);}),p}}var ye=ve({defaultModifiers:[{name:"eventListeners",enabled:true,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,s=e.options,r=s.scroll,o=void 0===r||r,n=s.resize,a=void 0===n||n,l=y$6(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&c.forEach(function(e){e.addEventListener("scroll",i.update,X);}),a&&l.addEventListener("resize",i.update,X),function(){o&&c.forEach(function(e){e.removeEventListener("scroll",i.update,X);}),a&&l.removeEventListener("resize",i.update,X);}},data:{}},{name:"popperOffsets",enabled:true,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=oe({reference:t.rects.reference,element:t.rects.popper,placement:t.placement});},data:{}},{name:"computeStyles",enabled:true,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,s=i.gpuAcceleration,r=void 0===s||s,o=i.adaptive,n=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:_$4(t.placement),variation:U$3(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,W(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:n,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,W(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:false,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement});},data:{}},S$3,de,le,fe,F,{name:"hide",enabled:true,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,s=t.rects.reference,r=t.rects.popper,o=t.modifiersData.preventOverflow,n=ne(t,{elementContext:"reference"}),a=ne(t,{altBoundary:true}),l=ce(n,s),c=ce(a,r,o),p=pe(l),d=pe(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":d});}}]});class we{constructor(e,t,i,s){this.anchor=e,this.popover=t,this.boundaryElement=this.setBoundary(s),this.options={placement:i,visibleClass:"data-show"},this.popover.classList.remove(this.options.visibleClass);}setBoundary(e){return "string"==typeof e?document.querySelector(e)||document.body:e||document.body}show(){this.popper&&this.popper.destroy(),this.popper=ye(this.anchor,this.popover,{tooltip:this.anchor,placement:this.options.placement,modifiers:[{name:"offset",options:{offset:[0,18]}},{name:"preventOverflow",options:{mainAxis:true,boundary:this.boundaryElement,rootBoundary:"document",padding:16}}]});}triggerUpdate(){this.popper.update();}hide(){this.popover.classList.remove(this.options.visibleClass);}}var be=i$3`::slotted(*):not([onDark]),::slotted(*):not([appearance=inverse]){color:var(--ds-auro-popover-text-color)}.popover{background-color:var(--ds-auro-popover-container-color);box-shadow:var(--ds-auro-popover-boxshadow-color)}.arrow:before{background-color:var(--ds-auro-popover-container-color);box-shadow:2px 2px 1px 0 var(--ds-auro-popover-boxshadow-color)}
11575
11572
  `,xe=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host(:not([data-show])) .popover,:host([disabled]) .popover,:host([addSpace]) :host(:not([data-show])) .popover{display:none}.util_displayHiddenVisually{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.util_insetNone{padding:0}.util_insetXxxs{padding:.125rem}.util_insetXxxs--stretch{padding:.25rem .125rem}.util_insetXxxs--squish{padding:0 .125rem}.util_insetXxs{padding:.25rem}.util_insetXxs--stretch{padding:.375rem .25rem}.util_insetXxs--squish{padding:.125rem .25rem}.util_insetXs{padding:.5rem}.util_insetXs--stretch{padding:.75rem .5rem}.util_insetXs--squish{padding:.25rem .5rem}.util_insetSm{padding:.75rem}.util_insetSm--stretch{padding:1.125rem .75rem}.util_insetSm--squish{padding:.375rem .75rem}.util_insetMd{padding:1rem}.util_insetMd--stretch{padding:1.5rem 1rem}.util_insetMd--squish{padding:.5rem 1rem}.util_insetLg{padding:1.5rem}.util_insetLg--stretch{padding:2.25rem 1.5rem}.util_insetLg--squish{padding:.75rem 1.5rem}.util_insetXl{padding:2rem}.util_insetXl--stretch{padding:3rem 2rem}.util_insetXl--squish{padding:1rem 2rem}.util_insetXxl{padding:3rem}.util_insetXxl--stretch{padding:4.5rem 3rem}.util_insetXxl--squish{padding:1.5rem 3rem}.util_insetXxxl{padding:4rem}.util_insetXxxl--stretch{padding:6rem 4rem}.util_insetXxxl--squish{padding:2rem 4rem}::slotted(*){white-space:normal}::slotted(*:hover){cursor:pointer}[data-trigger-placement]::slotted(*:hover){position:relative}[data-trigger-placement]::slotted(*:hover):before{position:absolute;left:0;display:block;width:100%;height:calc(var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem));content:""}[data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}[data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * (var(--ds-size-200, 1rem) + var(--ds-size-50, .25rem)))}:host([data-show]) .popover{z-index:var(--ds-depth-tooltip, 400)}:host([removeSpace]) .popover{margin:calc(-1 * (var(--ds-size-50, .25rem) + 1px)) 0!important}:host([addSpace]) .popover{margin:var(--ds-size-200, 1rem) 0!important}:host([addSpace]) [data-trigger-placement]::slotted(*:hover):before{height:var(--ds-size-500, 2.5rem)}:host([addSpace]) [data-trigger-placement^=top]::slotted(*:hover):before{top:calc(-1 * var(--ds-size-500, 2.5rem))}:host([addSpace]) [data-trigger-placement^=bottom]::slotted(*:hover):before{bottom:calc(-1 * var(--ds-size-500, 2.5rem))}.popover{display:inline-block;max-width:calc(100% - var(--ds-size-400, 2rem));border-radius:var(--ds-border-radius, .375rem)}@media screen and (min-width:576px){.popover{max-width:50%}}@media screen and (min-width:768px){.popover{max-width:40%}}@media screen and (min-width:1024px){.popover{max-width:27rem}}[data-popper-placement^=top]>.arrow{bottom:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=top]>.arrow:before{top:calc(-1 * var(--ds-size-200, 1rem));left:calc(-1 * var(--ds-size-75, .375rem));transform:rotate(45deg)}[data-popper-placement^=bottom]>.arrow{top:calc(-1 * (var(--ds-size-100, .5rem) + var(--ds-size-25, .125rem)))}[data-popper-placement^=bottom]>.arrow:before{top:var(--ds-size-50, .25rem);right:calc(-1 * var(--ds-size-200, 1rem));transform:rotate(-135deg)}.arrow{position:relative;margin-top:-var(--ds-size-100,.5rem)}.arrow:before{position:absolute;width:var(--ds-size-150, .75rem);height:var(--ds-size-150, .75rem);content:""}
11576
11573
  `,Se=i$3`:host{--ds-auro-popover-boxshadow-color: var(--ds-elevation-200, 0px 0px 10px rgba(0, 0, 0, .15));--ds-auro-popover-container-color: var(--ds-basic-color-surface-default, #ffffff);--ds-auro-popover-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}
11577
- `;class _e extends i$1{constructor(){super(),this.placement="top",this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.isPopoverVisible=false,this.runtimeUtils=new s$2;}static get properties(){return {addSpace:{type:Boolean,reflect:true},boundary:{type:String},disabled:{type:Boolean,reflect:true},for:{type:String,reflect:true},placement:{type:String},removeSpace:{type:Boolean,reflect:true}}}static get styles(){return [i$3`${xe}`,i$3`${be}`,i$3`${Se}`]}static register(e="auro-popover"){s$2.prototype.registerComponent(e,_e);}connectedCallback(){super.connectedCallback(),this._initializeDefaults(),this._onTouchStart||(this._onTouchStart=()=>{this.toggle();}),this.addEventListener("touchstart",this._onTouchStart);}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("touchstart",this._onTouchStart),this.trigger&&(this._onTriggerMouseEnter&&this._eventTarget.removeEventListener("mouseenter",this._onTriggerMouseEnter),this._onTriggerMouseLeave&&this._eventTarget.removeEventListener("mouseleave",this._onTriggerMouseLeave),this._onTriggerFocus&&this.trigger.removeEventListener("focus",this._onTriggerFocus),this._onTriggerBlur&&this.trigger.removeEventListener("blur",this._onTriggerBlur),this._onTriggerKeydown&&this.trigger.removeEventListener("keydown",this._onTriggerKeydown),this._onSlotChange&&this.shadowRoot?.querySelector("slot:not([name])")?.removeEventListener("slotchange",this._onSlotChange),this.trigger.removeAttribute("aria-description"),this._addedTabIndex&&"0"===this.trigger.getAttribute("tabindex")&&this.trigger.removeAttribute("tabindex")),this._onHidePopover&&this.removeEventListener("hidePopover",this._onHidePopover),this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper?.popper&&"function"==typeof this.popper.popper.destroy&&(this.popper.popper.destroy(),this.popper.popper=null);}firstUpdated(){if(this.runtimeUtils.handleComponentTagRename(this,"auro-popover"),this.for&&(this.trigger=document.querySelector(`#${this.for}`)||this.getRootNode().querySelector(`#${this.for}`)),this.trigger||([this.trigger]=this.shadowRoot.querySelector('slot[name="trigger"]').assignedElements()),!this.trigger)return;const e=this.trigger.tabIndex>=0,t=!!this.trigger.shadowRoot&&Boolean(this.trigger.shadowRoot.querySelector('button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])'));e||t||this.trigger.hasAttribute("tabindex")||(this.trigger.setAttribute("tabindex","0"),this._addedTabIndex=true);const i=this.shadowRoot.querySelector("slot:not([name])"),s=()=>i.assignedNodes({flatten:true}).map(e=>e.textContent??"").join(" ").replace(/\s+/g," ").trim();this.trigger.setAttribute("aria-description",s()),this._onSlotChange=()=>{this.trigger?.setAttribute("aria-description",s());},i.addEventListener("slotchange",this._onSlotChange),this.auroPopover=this.shadowRoot.querySelector("#popover"),this.popper=new we(this.trigger,this.auroPopover,this.placement,this.boundary),this._onBodyMouseover=e=>this.handleMouseoverEvent(e),this._onTriggerMouseEnter=()=>{this.toggleShow();},this._onTriggerMouseLeave=()=>{this.toggleHide();},this._onTriggerFocus=()=>{this.toggleShow();},this._onTriggerBlur=()=>{this.toggleHide();},this._onTriggerKeydown=e=>{const t=e.key.toLowerCase();this.isPopoverVisible&&("tab"!==t&&"escape"!==t||this.toggleHide())," "!==t&&"enter"!==t||(" "===t&&this._addedTabIndex&&e.preventDefault(),this.toggle());},this._onHidePopover=()=>{this.toggleHide();},this._eventTarget=this.trigger.parentElement.localName===this.localName?this:this.trigger,this._eventTarget.addEventListener("mouseenter",this._onTriggerMouseEnter),this._eventTarget.addEventListener("mouseleave",this._onTriggerMouseLeave),this.trigger.addEventListener("keydown",this._onTriggerKeydown),this.trigger.addEventListener("focus",this._onTriggerFocus),this.trigger.addEventListener("blur",this._onTriggerBlur),this.addEventListener("hidePopover",this._onHidePopover);}toggle(){this.popper&&(this.isPopoverVisible?this.toggleHide():this.toggleShow());}toggleHide(){this.isPopoverVisible=false,this.removeAttribute("data-show"),this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper&&this.popper.hide();}toggleShow(){this.popper&&(this.popper.show(),this.isPopoverVisible=true,this.setAttribute("data-show","true"),document.body.addEventListener("mouseover",this._onBodyMouseover));}handleMouseoverEvent(e){this.isPopoverVisible&&!e.composedPath().includes(this)&&this.toggleHide();}updated(e){e.has("boundary")&&this.popper&&(this.popper.boundaryElement=this.popper.setBoundary(this.boundary));}render(){return b$5`
11578
- <div id="popover" class="popover util_insetLg body-default" part="popover">
11574
+ `;class _e extends i$1{constructor(){super(),this.placement="top",this.isPopoverVisible=false,this._onTouchStart=null,this._onTriggerMouseEnter=null,this._onTriggerMouseLeave=null,this._onTriggerFocus=null,this._onTriggerBlur=null,this._onTriggerKeydown=null,this._onHidePopover=null,this._onBodyMouseover=null,this._onSlotChange=null,this._addedTabIndex=false;}_initializeDefaults(){this.runtimeUtils=new s$2;}static get properties(){return {addSpace:{type:Boolean,reflect:true},boundary:{type:String},disabled:{type:Boolean,reflect:true},for:{type:String,reflect:true},placement:{type:String},removeSpace:{type:Boolean,reflect:true},isPopoverVisible:{type:Boolean,reflect:true,attribute:"data-show",converter:{fromAttribute:e=>null!==e,toAttribute:e=>e?"true":null}}}}static get styles(){return [i$3`${xe}`,i$3`${be}`,i$3`${Se}`]}static register(e="auro-popover"){s$2.prototype.registerComponent(e,_e);}connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role","none"),this._initializeDefaults(),this._onTouchStart||(this._onTouchStart=()=>{this.toggle();}),this.addEventListener("touchstart",this._onTouchStart);}disconnectedCallback(){if(super.disconnectedCallback(),this.removeEventListener("touchstart",this._onTouchStart),this.trigger){this._onTriggerMouseEnter&&this._eventTarget.removeEventListener("mouseenter",this._onTriggerMouseEnter),this._onTriggerMouseLeave&&this._eventTarget.removeEventListener("mouseleave",this._onTriggerMouseLeave),this._onTriggerFocus&&this.trigger.removeEventListener("focusin",this._onTriggerFocus),this._onTriggerBlur&&this.trigger.removeEventListener("focusout",this._onTriggerBlur),this._onTriggerKeydown&&this.trigger.removeEventListener("keydown",this._onTriggerKeydown),this._onSlotChange&&this.shadowRoot?.querySelector("slot:not([name])")?.removeEventListener("slotchange",this._onSlotChange);for(const e of this._ariaDescriptionTargets||[this.trigger])e.removeAttribute("aria-description");this._addedTabIndex&&"0"===this.trigger.getAttribute("tabindex")&&this.trigger.removeAttribute("tabindex");}this._onHidePopover&&this.removeEventListener("hidePopover",this._onHidePopover),this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper?.popper&&"function"==typeof this.popper.popper.destroy&&(this.popper.popper.destroy(),this.popper.popper=null);}firstUpdated(){this.runtimeUtils.handleComponentTagRename(this,"auro-popover"),this.for&&(this.trigger=document.querySelector(`#${this.for}`)||this.getRootNode().querySelector(`#${this.for}`)),this.trigger||([this.trigger]=this.shadowRoot.querySelector('slot[name="trigger"]').assignedElements()),this.trigger&&(this._setupAccessibility(),this._setupEventListeners(),this.isPopoverVisible&&this.popper&&(this.disabled?this.isPopoverVisible=false:(this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover))));}_setupEventListeners(){this.auroPopover=this.shadowRoot.querySelector("#popover"),this.popper=new we(this.trigger,this.auroPopover,this.placement,this.boundary),this._onBodyMouseover=e=>this.handleMouseoverEvent(e),this._onTriggerMouseEnter=()=>{this.toggleShow();},this._onTriggerMouseLeave=()=>{this.toggleHide();},this._onTriggerFocus=()=>{this.toggleShow();},this._onTriggerBlur=e=>{let t=e.relatedTarget,i=false;for(;t;){if(this.trigger.contains(t)||this.contains(t)){i=true;break}const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}i||this.toggleHide();},this._onTriggerKeydown=e=>{const t=e.key.toLowerCase();if(this.isPopoverVisible&&("tab"!==t&&"escape"!==t||this.toggleHide())," "===t||"enter"===t){if(e.target!==this.trigger&&!this._addedTabIndex)return;" "===t&&this._addedTabIndex&&e.preventDefault(),this.toggle();}},this._onHidePopover=()=>{this.toggleHide();},this._eventTarget=this.trigger.parentElement.localName===this.localName?this:this.trigger,this._eventTarget.addEventListener("mouseenter",this._onTriggerMouseEnter),this._eventTarget.addEventListener("mouseleave",this._onTriggerMouseLeave),this.trigger.addEventListener("keydown",this._onTriggerKeydown),this.trigger.addEventListener("focusin",this._onTriggerFocus),this.trigger.addEventListener("focusout",this._onTriggerBlur),this.addEventListener("hidePopover",this._onHidePopover);}_setupAccessibility(){const e=this.trigger.tabIndex>=0,t='button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"]), [contenteditable]:not([contenteditable="false"]), summary, iframe, audio[controls], video[controls]',i=e=>{if(e.tabIndex<0)return false;let t=e;for(;t;){if(t.closest("[hidden], [inert]"))return false;const e=t.getRootNode();t=e instanceof ShadowRoot?e.host:null;}return true};let s=[...this.trigger.querySelectorAll(t)].some(i);if(!s){const e=this.trigger.querySelectorAll("*");for(const r of e)if(r.localName.includes("-")&&(r.tabIndex>=0||r.shadowRoot&&[...r.shadowRoot.querySelectorAll(t)].some(i))){s=true;break}}!s&&this.trigger.localName.includes("-")&&this.trigger.shadowRoot&&(s=[...this.trigger.shadowRoot.querySelectorAll(t)].some(i)),e||s||this.trigger.hasAttribute("tabindex")||(this.trigger.setAttribute("tabindex","0"),this._addedTabIndex=true);const r=this.shadowRoot.querySelector("slot:not([name])"),o=()=>r.assignedNodes({flatten:true}).map(e=>e.textContent??"").join(" ").replace(/\s+/g," ").trim();if(this._ariaDescriptionTargets=[],!e&&s){const e=[...this.trigger.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);const s=this.trigger.querySelectorAll("*");for(const r of s)if(r.localName.includes("-")&&!e.includes(r))if(r.tabIndex>=0)this._ariaDescriptionTargets.push(r);else if(r.shadowRoot){const e=[...r.shadowRoot.querySelectorAll(t)].filter(i);for(const t of e)this._ariaDescriptionTargets.push(t);}if(0===this._ariaDescriptionTargets.length){if(this.trigger.localName.includes("-")&&this.trigger.shadowRoot){const e=[...this.trigger.shadowRoot.querySelectorAll(t)].filter(i);this._ariaDescriptionTargets.push(...e);}0===this._ariaDescriptionTargets.length&&this._ariaDescriptionTargets.push(this.trigger);}}else this._ariaDescriptionTargets.push(this.trigger);const n=o();for(const e of this._ariaDescriptionTargets)e.setAttribute("aria-description",n);this._onSlotChange=()=>{const e=o();for(const t of this._ariaDescriptionTargets)t?.setAttribute("aria-description",e);},r.addEventListener("slotchange",this._onSlotChange);}toggle(){this.popper&&(this.isPopoverVisible?this.toggleHide():this.toggleShow());}toggleHide(){this.isPopoverVisible=false;}toggleShow(){this.popper&&!this.disabled&&(this.isPopoverVisible=true);}handleMouseoverEvent(e){this.isPopoverVisible&&!e.composedPath().includes(this)&&this.toggleHide();}updated(e){if(e.has("boundary")&&this.popper&&(this.popper.boundaryElement=this.popper.setBoundary(this.boundary)),e.has("isPopoverVisible")&&this.popper)if(this.isPopoverVisible){if(this.disabled)return void(this.isPopoverVisible=false);this.popper.show(),document.body.addEventListener("mouseover",this._onBodyMouseover);}else this._onBodyMouseover&&document.body.removeEventListener("mouseover",this._onBodyMouseover),this.popper.hide();e.has("disabled")&&this.disabled&&this.isPopoverVisible&&(this.isPopoverVisible=false);}render(){return b$5`
11575
+ <div
11576
+ id="popover"
11577
+ class="popover util_insetLg body-default"
11578
+ part="popover"
11579
+ role="tooltip"
11580
+ aria-hidden="${this.isPopoverVisible?"false":"true"}">
11579
11581
  <div id="arrow" class="arrow" data-popper-arrow></div>
11580
- <span role="tooltip"><slot></slot></span>
11582
+ <slot></slot>
11581
11583
  </div>
11582
11584
 
11583
- <span>
11585
+ <span role="presentation">
11584
11586
  <slot name="trigger" data-trigger-placement="${this.placement}"></slot>
11585
11587
  </span>
11586
11588
  `}}
11587
11589
 
11588
11590
  var popoverVersion = '6.0.1';
11589
11591
 
11592
+ /* 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 */
11593
+
11590
11594
  const startOfDay$1 = (ms) => {
11591
11595
  const date = new Date(ms);
11592
11596
  date.setHours(0, 0, 0, 0);
11593
11597
  return date.getTime();
11594
11598
  };
11595
11599
 
11596
- /* eslint-disable curly, max-lines, no-underscore-dangle, no-magic-numbers, no-underscore-dangle, max-params, no-void, init-declarations, no-extra-parens, arrow-parens, max-lines, line-comment-position, no-inline-comments, lit/binding-positions, lit/no-invalid-html */
11597
-
11598
11600
  class AuroCalendarCell extends i$1 {
11599
11601
  constructor() {
11600
11602
  super();
11601
11603
 
11602
11604
  this.day = null;
11603
11605
  this.selected = false;
11604
- this.hovered = false;
11605
11606
  this.dateTo = null;
11606
11607
  this.dateFrom = null;
11607
11608
  this.month = null;
@@ -11609,11 +11610,12 @@ class AuroCalendarCell extends i$1 {
11609
11610
  this.max = null;
11610
11611
  this.disabled = false;
11611
11612
  this.disabledDays = [];
11612
- this.hoveredDate = null;
11613
11613
  this.isCurrentDate = false;
11614
11614
  this._locale = null;
11615
11615
  this.dateStr = null;
11616
11616
  this.renderForDateSlot = false; // When false, the numerical date will render vertically centered. When true, the date will render off-center to the top and leave room below for the slot content.
11617
+ this.active = false;
11618
+ this.hasPopoverContent = false;
11617
11619
 
11618
11620
  this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
11619
11621
 
@@ -11632,7 +11634,6 @@ class AuroCalendarCell extends i$1 {
11632
11634
  // ...super.properties,
11633
11635
  day: { type: Object },
11634
11636
  selected: { type: Boolean },
11635
- hovered: { type: Boolean },
11636
11637
  dateTo: { type: String },
11637
11638
  dateFrom: { type: String },
11638
11639
  month: { type: String },
@@ -11643,11 +11644,11 @@ class AuroCalendarCell extends i$1 {
11643
11644
  reflect: true
11644
11645
  },
11645
11646
  disabledDays: { type: Array },
11646
- hoveredDate: { type: String },
11647
11647
  isCurrentDate: { type: Boolean },
11648
11648
  locale: { type: String },
11649
11649
  dateStr: { type: String },
11650
- renderForDateSlot: { type: Boolean }
11650
+ renderForDateSlot: { type: Boolean },
11651
+ hasPopoverContent: { type: Boolean }
11651
11652
  };
11652
11653
  }
11653
11654
 
@@ -11671,17 +11672,17 @@ class AuroCalendarCell extends i$1 {
11671
11672
  }
11672
11673
 
11673
11674
  /**
11674
- * Handles selected and hovered states of the calendar cell when the date changes.
11675
+ * Handles selected state of the calendar cell when the selection changes.
11676
+ * Also clears any imperative range preview classes so classMap is the
11677
+ * sole source of truth after a selection update.
11675
11678
  * @private
11676
11679
  * @param {Number} dateFrom - Depart date.
11677
11680
  * @param {Number} dateTo - Return date.
11678
- * @param {Number} hoveredDate - Hovered date.
11679
11681
  * @param {Object} day - An object containing the dateFrom and day of month values.
11680
11682
  * @returns {void}
11681
11683
  */
11682
- dateChanged(dateFrom, dateTo, hoveredDate, day) {
11684
+ dateChanged(dateFrom, dateTo, day) {
11683
11685
  this.selected = false;
11684
- this.hovered = false;
11685
11686
 
11686
11687
  const parsedDateFrom = parseInt(dateFrom, 10);
11687
11688
  const parsedDateTo = parseInt(dateTo, 10);
@@ -11693,10 +11694,6 @@ class AuroCalendarCell extends i$1 {
11693
11694
  if (day.date === departTimestamp || day.date === returnTimestamp) {
11694
11695
  this.selected = true;
11695
11696
  }
11696
-
11697
- if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
11698
- this.hovered = true;
11699
- }
11700
11697
  }
11701
11698
  }
11702
11699
 
@@ -11706,27 +11703,104 @@ class AuroCalendarCell extends i$1 {
11706
11703
  * @returns {void}
11707
11704
  */
11708
11705
  handleTap() {
11709
- if (!this.disabled) {
11706
+ if (!this.disabled && !this.isBlackout()) {
11710
11707
  this.datepicker.handleCellClick(this.day.date);
11711
11708
  }
11709
+
11710
+ // Set this cell as the active cell regardless of blackout status
11711
+ if (this.day) {
11712
+ this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
11713
+ bubbles: true,
11714
+ composed: true,
11715
+ detail: { date: this.day.date }
11716
+ }));
11717
+ }
11712
11718
  }
11713
11719
 
11714
11720
  /**
11715
11721
  * Handles user hover events and dispatches a custom event.
11722
+ * Does NOT set any reactive properties — the range preview is handled
11723
+ * imperatively by the calendar component to avoid O(N) re-renders.
11716
11724
  * @private
11717
11725
  * @returns {void}
11718
11726
  */
11719
11727
  handleHover() {
11720
- this.hovered = true;
11721
-
11722
- let _a;
11723
11728
  this.dispatchEvent(new CustomEvent('date-is-hovered', {
11724
- detail: { date: (_a = this.day) === null || _a === void 0 ? void 0 : _a.date },
11729
+ detail: { date: this.day?.date },
11730
+ }));
11731
+ }
11732
+
11733
+ /**
11734
+ * Handles focus events on the cell button.
11735
+ * Dispatches a lightweight event for the calendar to handle SR
11736
+ * announcements and range preview updates without triggering
11737
+ * any Lit lifecycle updates.
11738
+ * @private
11739
+ * @returns {void}
11740
+ */
11741
+ handleFocus() {
11742
+ this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
11743
+ bubbles: true,
11744
+ composed: true,
11745
+ detail: { date: this.day?.date },
11725
11746
  }));
11726
11747
  }
11727
11748
 
11728
11749
  /**
11729
- * Checks if the current date is a valid date depending on the min and max values.
11750
+ * Checks if the current date is outside the valid min/max range.
11751
+ * Out-of-range cells are not focusable and are hidden from screen readers.
11752
+ * @private
11753
+ * @param {Object} day - An object containing the dateFrom and day of month values.
11754
+ * @param {Number} min - The minimum date value.
11755
+ * @param {Number} max - The maximum date value.
11756
+ * @returns {Boolean} - True if the date is out of range.
11757
+ */
11758
+ isOutOfRange(day, min, max) {
11759
+ if (day && day.date !== null && day.date !== undefined) {
11760
+ return day.date < min || day.date > max;
11761
+ }
11762
+ return false;
11763
+ }
11764
+
11765
+ /**
11766
+ * Checks if the current date is a blackout date (in disabledDays but within range).
11767
+ * Blackout cells are focusable but not selectable.
11768
+ * @private
11769
+ * @returns {Boolean} - True if the date is a blackout date.
11770
+ */
11771
+ isBlackout() {
11772
+ if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
11773
+ return false;
11774
+ }
11775
+
11776
+ // Check against disabledDays timestamps (legacy path)
11777
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
11778
+ (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
11779
+ return true;
11780
+ }
11781
+
11782
+ // Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
11783
+ const blackoutDates = this.datepicker?.blackoutDates;
11784
+
11785
+ if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
11786
+ const date = new Date(this.day.date * 1000);
11787
+ const yyyy = date.getFullYear();
11788
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
11789
+ const dd = String(date.getDate()).padStart(2, '0');
11790
+ const cellDate = `${yyyy}-${mm}-${dd}`;
11791
+ if (blackoutDates.includes(cellDate)) {
11792
+ return true;
11793
+ }
11794
+ }
11795
+
11796
+ return false;
11797
+ }
11798
+
11799
+ /**
11800
+ * Checks if the current date is disabled based on min/max range or the
11801
+ * legacy disabledDays timestamp list. Sets the `disabled` attribute on the
11802
+ * host when the date falls outside the allowed range or appears in
11803
+ * disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
11730
11804
  * @private
11731
11805
  * @param {Object} day - An object containing the dateFrom and day of month values.
11732
11806
  * @param {Number} min - The minimum date value.
@@ -11737,15 +11811,114 @@ class AuroCalendarCell extends i$1 {
11737
11811
  isEnabled(day, min, max, disabledDays) {
11738
11812
  this.removeAttribute('disabled');
11739
11813
 
11740
- if (disabledDays && day && day.date) {
11741
- if (day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1) {
11742
- this.setAttribute('disabled', true);
11743
- return true;
11744
- }
11814
+ if (disabledDays && day && day.date &&
11815
+ (day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
11816
+ this.setAttribute('disabled', true);
11817
+ return true;
11745
11818
  }
11819
+
11746
11820
  return false;
11747
11821
  }
11748
11822
 
11823
+ /**
11824
+ * Generates a unique cell ID in the format cell-YYYY-MM-DD.
11825
+ * @private
11826
+ * @returns {String} The unique cell ID.
11827
+ */
11828
+ getCellId() {
11829
+ if (!this.day || !this.day.date) return '';
11830
+ const date = new Date(this.day.date * 1000);
11831
+ const year = date.getFullYear();
11832
+ const month = String(date.getMonth() + 1).padStart(2, '0');
11833
+ const day = String(date.getDate()).padStart(2, '0');
11834
+ return `cell-${year}-${month}-${day}`;
11835
+ }
11836
+
11837
+ /**
11838
+ * Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
11839
+ * Includes range position and blackout status.
11840
+ * @private
11841
+ * @returns {String} The aria-label string.
11842
+ */
11843
+ getAriaLabel() {
11844
+ if (!this.day || this.day.date === undefined) return '';
11845
+
11846
+ const date = new Date(this.day.date * 1000);
11847
+
11848
+ // Generate localized full date string using the configured locale
11849
+ const localeCode = this.locale?.code || undefined;
11850
+ const dateFormatter = new Intl.DateTimeFormat(localeCode, {
11851
+ weekday: 'long',
11852
+ year: 'numeric',
11853
+ month: 'long',
11854
+ day: 'numeric'
11855
+ });
11856
+
11857
+ let label = dateFormatter.format(date);
11858
+
11859
+ // Append date slot content (e.g. prices) so it is announced with the date.
11860
+ if (this.renderForDateSlot) {
11861
+ const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
11862
+ if (dateSlotEl) {
11863
+ const text = dateSlotEl.innerText?.trim();
11864
+ if (text) {
11865
+ label += `, ${text}`;
11866
+ }
11867
+ }
11868
+ }
11869
+
11870
+ // appending popover content here so that it gets read in a logical order with the other date content.
11871
+ if (this.hasPopoverContent) {
11872
+ const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
11873
+ if (popoverEl) {
11874
+ label += `, ${popoverEl.innerText.trim()}`;
11875
+ }
11876
+ }
11877
+
11878
+ // Append range position label for range datepickers
11879
+ const rangePosition = this.getRangePosition();
11880
+ if (rangePosition) {
11881
+ label += `, ${rangePosition}`;
11882
+ }
11883
+
11884
+ // Append blackout label for blackout cells
11885
+ if (this.isBlackout()) {
11886
+ label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
11887
+ }
11888
+
11889
+ return label;
11890
+ }
11891
+
11892
+ /**
11893
+ * Determines the range position of this cell relative to the current selection.
11894
+ * @private
11895
+ * @returns {String|null} Range position label or null if not in range mode.
11896
+ */
11897
+ getRangePosition() {
11898
+ if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
11899
+
11900
+ const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
11901
+ if (!Number.isFinite(parsedDateFrom)) return null;
11902
+
11903
+ const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
11904
+ const dayDate = this.day.date;
11905
+
11906
+ const parsedDateTo = Number.parseInt(this.dateTo, 10);
11907
+ const hasDateTo = Number.isFinite(parsedDateTo);
11908
+ const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
11909
+
11910
+ if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
11911
+
11912
+ if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
11913
+
11914
+ if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
11915
+
11916
+ if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
11917
+
11918
+ // After start date, no end date yet, or after end date
11919
+ return this.datepicker.rangeLabelAfterRange || 'after range';
11920
+ }
11921
+
11749
11922
  /**
11750
11923
  * Checks if the current date is the depart date.
11751
11924
  * @private
@@ -11813,12 +11986,12 @@ class AuroCalendarCell extends i$1 {
11813
11986
  }
11814
11987
 
11815
11988
  /**
11816
- * Checks if the current date is a highlighted date.
11989
+ * Checks if the current date is a referenced date.
11817
11990
  * @param {Object} dateStr - The date string in MM_DD_YYYY format.
11818
- * @returns Boolean - True if the date is a highlighted date.
11991
+ * @returns Boolean - True if the date is a referenced date.
11819
11992
  */
11820
11993
  isReferenceDate(dateStr) {
11821
- // If the datepicker has highlighted dates specified
11994
+ // If the datepicker has referenced dates specified
11822
11995
  if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
11823
11996
 
11824
11997
  // Get the referenceDates attribute from the datepicker
@@ -11828,7 +12001,11 @@ class AuroCalendarCell extends i$1 {
11828
12001
  if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
11829
12002
 
11830
12003
  // Convert cell dateStr (MM_DD_YYYY) to ISO (YYYY-MM-DD) for comparison
11831
- const [month, day, year] = dateStr.split('_');
12004
+ const [
12005
+ month,
12006
+ day,
12007
+ year
12008
+ ] = dateStr.split('_');
11832
12009
  const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
11833
12010
 
11834
12011
  return referenceDates.includes(cellISO);
@@ -11918,9 +12095,9 @@ class AuroCalendarCell extends i$1 {
11918
12095
 
11919
12096
  if (popoverSlotContent) {
11920
12097
  this.appendChild(popoverSlotContent.cloneNode(true));
11921
- this.auroPopover.removeAttribute('disabled');
12098
+ this.hasPopoverContent = true;
11922
12099
  } else {
11923
- this.auroPopover.setAttribute('disabled', true);
12100
+ this.hasPopoverContent = false;
11924
12101
  }
11925
12102
  } catch (err) { // eslint-disable-line no-unused-vars
11926
12103
  // Error handling goes here
@@ -11936,60 +12113,249 @@ class AuroCalendarCell extends i$1 {
11936
12113
  return;
11937
12114
  }
11938
12115
  this.datepicker = calendar.datepicker;
11939
- this.datepicker.addEventListener('auroDatePicker-newSlotContent', () => {
12116
+ this._slotContentHandler = () => {
11940
12117
  this.handleSlotContent();
12118
+ // Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
12119
+ this.requestUpdate();
12120
+ };
12121
+ this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12122
+
12123
+ // Cache button reference for imperative class manipulation.
12124
+ this.updateComplete.then(() => {
12125
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
11941
12126
  });
11942
12127
 
12128
+ // Trigger an initial update now that `this.datepicker` is assigned so
12129
+ // cells reflect blackout/slot state that was configured before first render.
12130
+ this.requestUpdate();
12131
+
12132
+ this.calendarMonth = calendarMonth;
12133
+ this.configurePopover();
12134
+ }
12135
+
12136
+ disconnectedCallback() {
12137
+ super.disconnectedCallback();
12138
+ if (this.datepicker && this._slotContentHandler) {
12139
+ this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12140
+ }
12141
+ }
12142
+
12143
+ /**
12144
+ * Configures the popover instance with the calendar month boundary.
12145
+ * Called from firstUpdated and updated because the popover element is only
12146
+ * rendered after hasPopoverContent becomes true (set by handleSlotContent).
12147
+ * @private
12148
+ * @returns {void}
12149
+ */
12150
+ configurePopover() {
11943
12151
  this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
11944
12152
 
11945
- this.auroPopover.boundary = calendarMonth;
12153
+ if (this.auroPopover && this.calendarMonth) {
12154
+ this.auroPopover.boundary = this.calendarMonth;
12155
+ }
11946
12156
  }
11947
12157
 
11948
12158
  updated(properties) {
11949
- if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('hoveredDate') || properties.has('day')) {
11950
- this.dateChanged(this.dateFrom, this.dateTo, this.hoveredDate, this.day);
12159
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
12160
+ this.dateChanged(this.dateFrom, this.dateTo, this.day);
12161
+ }
12162
+
12163
+ if (properties.has('day') && this.day) {
12164
+ this.setDateSlotName();
12165
+ this.handleSlotContent();
12166
+
12167
+ // Re-cache button reference when the day changes (cell may have re-rendered).
12168
+ this.updateComplete.then(() => {
12169
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
12170
+ });
12171
+
12172
+ // Update host-level aria attributes for ariaActiveDescendantElement.
12173
+ this.updateHostAria();
11951
12174
  }
11952
12175
 
11953
- this.setDateSlotName();
11954
- this.handleSlotContent();
12176
+ // Update host aria when selection changes (aria-selected, range labels)
12177
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
12178
+ this.updateHostAria();
12179
+ }
12180
+
12181
+ // Configure popover when it first becomes rendered
12182
+ if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
12183
+ this.updateComplete.then(() => this.configurePopover());
12184
+ }
11955
12185
  }
11956
12186
 
11957
- render() {
12187
+ /**
12188
+ * Updates ARIA attributes on the host element so that
12189
+ * ariaActiveDescendantElement can expose cell info to the SR.
12190
+ * @private
12191
+ * @returns {void}
12192
+ */
12193
+ updateHostAria() {
12194
+ if (!this.day || this.day.date === undefined) return;
12195
+
12196
+ const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
12197
+ if (outOfRange) {
12198
+ this.removeAttribute('role');
12199
+ this.removeAttribute('aria-label');
12200
+ return;
12201
+ }
12202
+
12203
+ // The host acts as the gridcell for ariaActiveDescendantElement.
12204
+ this.setAttribute('role', 'gridcell');
12205
+ this.setAttribute('aria-label', this.getAriaLabel());
12206
+ this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
12207
+
12208
+ if (this.isBlackout()) {
12209
+ this.setAttribute('aria-disabled', 'true');
12210
+ } else {
12211
+ this.removeAttribute('aria-disabled');
12212
+ }
12213
+ }
12214
+
12215
+ /**
12216
+ * Programmatically focuses the cell's interactive button element.
12217
+ * Uses focusVisible: true so the :focus-visible ring appears even when
12218
+ * the bib was opened via mouse click (which sets mouse input modality).
12219
+ * @returns {void}
12220
+ */
12221
+ focusButton() {
12222
+ const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
12223
+ if (button) {
12224
+ button.focus({ focusVisible: true });
12225
+ }
12226
+ }
12227
+
12228
+ /**
12229
+ * Imperatively marks this cell as active without triggering a Lit re-render.
12230
+ * Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
12231
+ * @returns {void}
12232
+ */
12233
+ setActive() {
12234
+ this.active = true;
12235
+
12236
+ // Show the popover when this cell becomes active via keyboard navigation.
12237
+ if (this.auroPopover) {
12238
+ this.auroPopover.toggleShow();
12239
+ }
12240
+ }
12241
+
12242
+ /**
12243
+ * Imperatively marks this cell as inactive without triggering a Lit re-render.
12244
+ * @returns {void}
12245
+ */
12246
+ clearActive() {
12247
+ this.active = false;
12248
+ const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
12249
+ if (btn) {
12250
+ btn.classList.remove('activeCell');
12251
+ }
12252
+
12253
+ // Hide the popover when this cell loses active state.
12254
+ if (this.auroPopover) {
12255
+ this.auroPopover.toggleHide();
12256
+ }
12257
+ }
12258
+
12259
+ /**
12260
+ * Updates range preview classes imperatively (no Lit re-render).
12261
+ * Called by the calendar component when the hovered date changes
12262
+ * during range selection (dateFrom set, dateTo not yet set).
12263
+ * @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
12264
+ * @param {Number} dateFrom - Unix timestamp of the selected departure date.
12265
+ * @returns {void}
12266
+ */
12267
+ updateRangePreviewClasses(hoveredDate, dateFrom) {
12268
+ const btn = this._cachedButton;
12269
+ if (!btn || !this.day) return;
12270
+
12271
+ const dayDate = this.day.date;
12272
+ const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
12273
+ const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
12274
+ const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
12275
+ const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
12276
+
12277
+ btn.classList.toggle('inRange', isInRange);
12278
+ btn.classList.toggle('lastHoveredDate', isLastHovered);
12279
+ btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
12280
+ }
12281
+
12282
+ /**
12283
+ * Clears all imperative range preview classes from the cell button.
12284
+ * Called when a selection occurs so classMap becomes the sole source of truth.
12285
+ * @returns {void}
12286
+ */
12287
+ clearRangePreviewClasses() {
12288
+ const btn = this._cachedButton;
12289
+ if (!btn) return;
12290
+
12291
+ btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
12292
+ }
12293
+
12294
+ renderCellButton() {
12295
+ const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
12296
+ const blackout = this.isBlackout();
12297
+
12298
+ // Static and selection-driven classes only. Hover-driven classes
12299
+ // (inRange, lastHoveredDate, rangeDepartDate during preview) are
12300
+ // managed imperatively via updateRangePreviewClasses() to avoid
12301
+ // O(N) Lit re-renders on every focus/hover event.
12302
+ const isFirstDay = this.day?.title === 1;
12303
+ const isLastDay = this.day?.date && (() => {
12304
+ const dt = new Date(this.day.date * 1000);
12305
+ return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
12306
+ })();
12307
+
11958
12308
  const buttonClasses = {
11959
12309
  'day': true,
11960
- 'body-lg': true,
11961
- 'currentDate': this.currentDate,
12310
+ 'body-default': true,
12311
+ 'currentDate': this.isCurrentDate,
11962
12312
  'selected': this.selected,
11963
- 'inRange': this.hovered && this.isInRange(this.day, this.dateFrom, this.dateTo),
11964
- 'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
11965
- 'disabled': this.isEnabled(this.day, this.min, this.max, this.disabledDays),
11966
- 'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) && (this.hoveredDate > this.dateFrom || this.dateTo),
11967
- 'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
12313
+ 'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
12314
+ 'disabled': outOfRange,
12315
+ blackout,
12316
+ 'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
12317
+ 'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
11968
12318
  'reference': this.isReferenceDate(this.dateStr),
11969
- 'sameDateTrip': this.dateFrom === this.dateTo
12319
+ 'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
12320
+ 'firstDayOfMonth': isFirstDay,
12321
+ 'lastDayOfMonth': isLastDay,
11970
12322
  };
11971
12323
 
11972
- let _a, _b;
11973
12324
  return u$a`
11974
- <${this.popoverTag}>
11975
- <slot name="popover_${this.dateStr}"></slot>
11976
- <button
11977
- slot="trigger"
11978
- @click="${this.handleTap}"
11979
- @mouseover="${this.handleHover}"
11980
- @focus="${this.handleHover}"
11981
- class="${e$4(buttonClasses)}"
11982
- ?disabled="${this.disabled}"
11983
- title="${this.getTitle((_a = this.day) === null || _a === void 0 ? void 0 : _a.date)}"
11984
- tabindex="-1">
11985
- <div class="buttonWrapper">
11986
- <div class="currentDayMarker">${(_b = this.day) === null || _b === void 0 ? void 0 : _b.title}</div>
11987
- <div class="dateSlot body-2xs" part="dateSlot">
11988
- <slot name="date_${this.dateStr}"></slot>
11989
- </div>
12325
+ <button
12326
+ slot="trigger"
12327
+ id="${this.getCellId()}"
12328
+ @click="${outOfRange ? undefined : this.handleTap}"
12329
+ @mouseover="${outOfRange ? undefined : this.handleHover}"
12330
+ @focus="${outOfRange ? undefined : this.handleFocus}"
12331
+ class="${e$4(buttonClasses)}"
12332
+ ?disabled="${outOfRange}"
12333
+ aria-hidden="${outOfRange ? 'true' : A$4}"
12334
+ tabindex="-1">
12335
+ <div class="buttonWrapper" aria-hidden="true">
12336
+ <div class="currentDayMarker">${this.day?.title || A$4}</div>
12337
+ <div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
12338
+ <slot name="date_${this.dateStr}"></slot>
11990
12339
  </div>
11991
- </button>
11992
- </${this.popoverTag}>
12340
+ </div>
12341
+ </button>
12342
+ `;
12343
+ }
12344
+
12345
+ render() {
12346
+ const { hasPopoverContent } = this;
12347
+
12348
+ if (hasPopoverContent) {
12349
+ return u$a`
12350
+ <${this.popoverTag}>
12351
+ <span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
12352
+ ${this.renderCellButton()}
12353
+ </${this.popoverTag}>
12354
+ `;
12355
+ }
12356
+
12357
+ return u$a`
12358
+ ${this.renderCellButton()}
11993
12359
  `;
11994
12360
  }
11995
12361
  }
@@ -12002,7 +12368,7 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
12002
12368
 
12003
12369
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
12004
12370
 
12005
- /* eslint-disable no-magic-numbers, dot-location */
12371
+ /* eslint-disable no-magic-numbers */
12006
12372
 
12007
12373
 
12008
12374
  const getMonthNamesFromLocale = (locale) => {
@@ -12019,11 +12385,12 @@ const getMonthNamesFromLocale = (locale) => {
12019
12385
  * Uses UTC dates to avoid DST-related day drift across timezones.
12020
12386
  * @private
12021
12387
  * @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
12022
- * @returns {Array} An array of seven localized narrow weekday names, starting from Sunday.
12388
+ * @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
12389
+ * @returns {Array} An array of seven localized weekday names, starting from Sunday.
12023
12390
  */
12024
- const getWeekdayNames = (locale) => {
12391
+ const getWeekdayNames = (locale, weekday) => {
12025
12392
  const fmt = new Intl.DateTimeFormat(locale, {
12026
- weekday: 'narrow',
12393
+ weekday,
12027
12394
  timeZone: 'UTC'
12028
12395
  });
12029
12396
  // Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
@@ -12058,7 +12425,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12058
12425
 
12059
12426
  /**
12060
12427
  * BCP 47 locale tag (such as `en-US`) for calendar localization.
12061
- * as wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
12428
+ * As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
12062
12429
  */
12063
12430
  localeCode: {
12064
12431
  type: String
@@ -12112,8 +12479,19 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12112
12479
  return this._cachedMonthNames[month - 1] || '';
12113
12480
  }
12114
12481
 
12482
+ /**
12483
+ * Returns the unique heading ID for this month, used by aria-labelledby.
12484
+ * @private
12485
+ * @returns {String} The heading ID.
12486
+ */
12487
+ getHeadingId() {
12488
+ return `month-heading-${this.month}-${this.year}`;
12489
+ }
12490
+
12491
+
12115
12492
  /**
12116
12493
  * Determines the current month name based on locale.
12494
+ * Also builds parallel arrays of full day names for abbr attributes.
12117
12495
  * This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
12118
12496
  * @private
12119
12497
  * @param {Object} changedProperties - The properties that have changed since the last update.
@@ -12127,8 +12505,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12127
12505
  }
12128
12506
 
12129
12507
  localeChanged() {
12130
- // Week always starts on Sunday; use Intl-derived names directly without rotation
12131
- this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode);
12508
+ this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
12509
+ this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
12510
+ }
12511
+
12512
+ /**
12513
+ * Renders a day-of-week header with abbr attribute for the full day name.
12514
+ * @private
12515
+ * @param {String} dayOfWeek - The short day name.
12516
+ * @param {Number} index - The index in the dayNamesOfTheWeek array.
12517
+ * @returns {Object} The header HTML.
12518
+ */
12519
+ renderDayOfWeek(dayOfWeek, index) {
12520
+ const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
12521
+ return b$5`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
12522
+ }
12523
+
12524
+ /**
12525
+ * Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
12526
+ * @returns {Array} Array of auro-formkit-calendar-cell elements.
12527
+ */
12528
+ getFocusableCells() {
12529
+ const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
12530
+ return cells.filter((cell) => {
12531
+ if (!cell.day) {
12532
+ return false;
12533
+ }
12534
+ return !cell.isOutOfRange(cell.day, cell.min, cell.max);
12535
+ });
12536
+ }
12537
+
12538
+ /**
12539
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
12540
+ * as a reactive property. Instead, just dispatches the event upward so
12541
+ * the calendar can handle range preview imperatively.
12542
+ * @private
12543
+ * @param {CustomEvent} event - The date-is-hovered event from a cell.
12544
+ * @returns {void}
12545
+ */
12546
+ handleDateHovered(event) {
12547
+ this.dispatchEvent(new CustomEvent('hovered-date-changed', {
12548
+ detail: { value: event.detail.date },
12549
+ }));
12550
+ }
12551
+
12552
+ /**
12553
+ * Dispatches a bubbling event when the mouse leaves the date grid body
12554
+ * so the parent calendar can clear the range hover preview.
12555
+ * @private
12556
+ * @returns {void}
12557
+ */
12558
+ handleTbodyMouseLeave() {
12559
+ this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
12560
+ bubbles: true,
12561
+ composed: true,
12562
+ }));
12563
+ }
12564
+
12565
+ renderWeek(week) {
12566
+ return b$5`
12567
+ <div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
12568
+ `;
12132
12569
  }
12133
12570
 
12134
12571
  renderDay(day) {
@@ -12141,7 +12578,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12141
12578
  .min="${this.min}"
12142
12579
  .max="${this.max}"
12143
12580
  .month="${this.month}"
12144
- .hoveredDate="${this.hoveredDate}"
12145
12581
  .dateTo="${this.dateTo}"
12146
12582
  .dateFrom="${this.dateFrom}"
12147
12583
  .locale="${this.localeCode}"
@@ -12152,7 +12588,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12152
12588
  >
12153
12589
  </auro-formkit-calendar-cell>
12154
12590
  `
12155
- : null}
12591
+ : b$5`<div aria-hidden="true" inert></div>`}
12156
12592
  </div>
12157
12593
  `;
12158
12594
  }
@@ -12166,7 +12602,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12166
12602
  <div>
12167
12603
  <div class="header">
12168
12604
  ${this.renderPrevButton()}
12169
- <div class="headerTitle heading-xs">
12605
+ <div class="headerTitle heading-xs" id="${this.getHeadingId()}">
12170
12606
  ${this.monthFirst ? b$5`
12171
12607
  <div>${this.computeCurrentMonthName(this.month)}</div>
12172
12608
  <div>${this.renderYear()}</div>
@@ -12177,14 +12613,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12177
12613
  </div>
12178
12614
  ${this.renderNextButton()}
12179
12615
  </div>
12180
-
12181
- <div class="table">
12616
+ <div class="table" role="grid">
12182
12617
  <div class="thead">
12183
12618
  <div class="tr">
12184
- ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
12619
+ ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
12185
12620
  </div>
12186
12621
  </div>
12187
- <div class="tbody">
12622
+ <div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
12188
12623
  ${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
12189
12624
  </div>
12190
12625
  </div>
@@ -12888,6 +13323,14 @@ class AuroBibtemplate extends i$1 {
12888
13323
  large: {
12889
13324
  type: Boolean,
12890
13325
  reflect: true
13326
+ },
13327
+
13328
+ /**
13329
+ * If declared, the footer slot will be rendered even when not in fullscreen mode.
13330
+ */
13331
+ showFooter: {
13332
+ type: Boolean,
13333
+ reflect: true
12891
13334
  }
12892
13335
  };
12893
13336
  }
@@ -12990,7 +13433,7 @@ class AuroBibtemplate extends i$1 {
12990
13433
  <slot></slot>
12991
13434
  </div>
12992
13435
 
12993
- ${this.isFullscreen ? u$a`
13436
+ ${this.isFullscreen || this.showFooter ? u$a`
12994
13437
  <div id="footerContainer">
12995
13438
  <slot name="footer"></slot>
12996
13439
  </div>` : null}
@@ -12999,7 +13442,7 @@ class AuroBibtemplate extends i$1 {
12999
13442
  }
13000
13443
  }
13001
13444
 
13002
- var formkitVersion$2 = '202606081518';
13445
+ var formkitVersion$2 = '202606081904';
13003
13446
 
13004
13447
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=i$5`${s$5(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$4 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$3=i$3`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
13005
13448
  `,u$6=i$3`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -13060,7 +13503,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
13060
13503
 
13061
13504
  var buttonVersion$1 = '12.3.2';
13062
13505
 
13063
- /* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
13506
+ /* eslint-disable no-magic-numbers, complexity, line-comment-position, no-undef-init, max-lines, line-comment-position, no-underscore-dangle, lit/binding-positions, lit/no-invalid-html, no-inline-comments */
13064
13507
 
13065
13508
 
13066
13509
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
@@ -13098,26 +13541,46 @@ class AuroCalendar extends RangeDatepicker {
13098
13541
  this.isFullscreen = false;
13099
13542
 
13100
13543
  /**
13544
+ * The date of the currently active cell (Unix timestamp).
13545
+ * Only one cell across the entire calendar has tabindex="0" at a time.
13101
13546
  * @private
13102
13547
  */
13103
- this.firstMonthRenderable = undefined;
13548
+ this.activeCellDate = null;
13104
13549
 
13105
13550
  /**
13551
+ * Whether the #calendarGrid wrapper currently has focus.
13552
+ * Used to determine whether the visualFocus ring should be shown.
13106
13553
  * @private
13107
13554
  */
13108
- this.calendarRangeMonths = null;
13555
+ this._gridHasFocus = false;
13109
13556
 
13110
13557
  /**
13111
13558
  * @private
13112
13559
  */
13113
- this.numCalendars = undefined;
13560
+ this.firstMonthRenderable = undefined;
13114
13561
 
13115
13562
  /**
13116
13563
  * @private
13117
13564
  */
13118
- this.slots = {};
13119
-
13120
- const versioning = new AuroDependencyVersioning$3();
13565
+ this.calendarRangeMonths = null;
13566
+
13567
+ /**
13568
+ * Legacy array of disabled-date timestamps.
13569
+ * @private
13570
+ */
13571
+ this.disabledDays = [];
13572
+
13573
+ /**
13574
+ * @private
13575
+ */
13576
+ this.numCalendars = undefined;
13577
+
13578
+ /**
13579
+ * @private
13580
+ */
13581
+ this.slots = {};
13582
+
13583
+ const versioning = new AuroDependencyVersioning$3();
13121
13584
 
13122
13585
  /**
13123
13586
  * @private
@@ -13130,6 +13593,12 @@ class AuroCalendar extends RangeDatepicker {
13130
13593
  this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
13131
13594
 
13132
13595
  this.dropdown = undefined;
13596
+
13597
+ /**
13598
+ * Unique instance ID for the live region element.
13599
+ * @private
13600
+ */
13601
+ this._calendarInstanceId = Date.now().toString(36);
13133
13602
  }
13134
13603
 
13135
13604
  static get styles() {
@@ -13293,19 +13762,79 @@ class AuroCalendar extends RangeDatepicker {
13293
13762
  /**
13294
13763
  * Updates the month and year when the user navigates to the previous calendar month.
13295
13764
  * @private
13765
+ * @param {Object} [options] - Optional settings.
13766
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
13767
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
13296
13768
  * @returns {void}
13297
13769
  */
13298
- handlePrevMonth() {
13770
+ handlePrevMonth(options) {
13771
+ const opts = options instanceof Event ? {} : options || {};
13772
+ this.clearRangePreview({ force: true });
13299
13773
  this.utilCal.handleMonthChange(this, 'prev');
13774
+ if (!opts.skipActiveUpdate) {
13775
+ this.updateActiveCellForVisibleMonth();
13776
+ }
13777
+ this.announceMonthChange();
13300
13778
  }
13301
13779
 
13302
13780
  /**
13303
13781
  * Updates the month and year when the user navigates to the next calendar month.
13304
13782
  * @private
13783
+ * @param {Object} [options] - Optional settings.
13784
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
13785
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
13305
13786
  * @returns {void}
13306
13787
  */
13307
- handleNextMonth() {
13788
+ handleNextMonth(options) {
13789
+ const opts = options instanceof Event ? {} : options || {};
13790
+ this.clearRangePreview({ force: true });
13308
13791
  this.utilCal.handleMonthChange(this, 'next');
13792
+ if (!opts.skipActiveUpdate) {
13793
+ this.updateActiveCellForVisibleMonth();
13794
+ }
13795
+ this.announceMonthChange();
13796
+ }
13797
+
13798
+ /**
13799
+ * Announces the current month and year via the live region after navigation.
13800
+ * @private
13801
+ * @returns {void}
13802
+ */
13803
+ announceMonthChange() {
13804
+ // Cancel any pending debounced cell announcement so it does not
13805
+ // overwrite this month navigation announcement.
13806
+ if (this._focusAnnounceTimer) {
13807
+ clearTimeout(this._focusAnnounceTimer);
13808
+ this._focusAnnounceTimer = null;
13809
+ }
13810
+
13811
+ const date = this.centralDateObject;
13812
+ const localeCode = this.locale?.code || undefined;
13813
+ const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
13814
+ year: 'numeric' });
13815
+ this.announceSelection(formatter.format(date));
13816
+ }
13817
+
13818
+ /**
13819
+ * Updates the active cell after month navigation (prev/next buttons).
13820
+ * Always moves the active cell to the first enabled date in the newly
13821
+ * visible months so that tabbing back to the grid lands on an enabled cell.
13822
+ * @private
13823
+ * @returns {void}
13824
+ */
13825
+ updateActiveCellForVisibleMonth() {
13826
+ // Use double-rAF to ensure child month/cell components have fully
13827
+ // rendered and cached their button references before we set tabindex.
13828
+ requestAnimationFrame(() => {
13829
+ requestAnimationFrame(() => {
13830
+ const newDate = this.computeActiveDate({ skipDateFrom: true });
13831
+
13832
+ if (newDate !== null && newDate !== undefined) {
13833
+ this.activeCellDate = newDate;
13834
+ this.setActiveCell(this.activeCellDate);
13835
+ }
13836
+ });
13837
+ });
13309
13838
  }
13310
13839
 
13311
13840
  /**
@@ -13344,76 +13873,1076 @@ class AuroCalendar extends RangeDatepicker {
13344
13873
  } else {
13345
13874
  const now = new Date();
13346
13875
 
13347
- dateMatches = this.util.datesMatch(this.firstRenderedMonth, this.util.convertDateToFirstOfMonth(now));
13876
+ dateMatches = this.util.datesMatch(this.firstRenderedMonth, this.util.convertDateToFirstOfMonth(now));
13877
+
13878
+ if (!dateMatches) {
13879
+ this.firstRenderedMonth = this.util.convertDateToFirstOfMonth(now);
13880
+ }
13881
+ }
13882
+ } else {
13883
+ // On mobile start the calendar at the previously determined first renderable month.
13884
+ this.firstRenderedMonth = this.firstMonthRenderable;
13885
+ }
13886
+
13887
+ // Add the first calendar to the HTML
13888
+ const firstMonth = this.firstRenderedMonth.getMonth() + 1;
13889
+ const firstYear = this.firstRenderedMonth.getFullYear();
13890
+
13891
+ renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, firstMonth, firstYear)}`;
13892
+
13893
+ // Loop through the number of remaining calendars to render and add the HTML
13894
+ let newMonthDate = undefined;
13895
+
13896
+ for (let cal = 0; cal < this.numCalendars - 1; cal += 1) {
13897
+
13898
+ const date = newMonthDate || this.firstRenderedMonth;
13899
+
13900
+ const oldMonth = date.getMonth() + 1;
13901
+ const oldYear = date.getFullYear();
13902
+
13903
+ let newMonth = undefined;
13904
+ let newYear = undefined;
13905
+
13906
+ if (oldMonth === 12) {
13907
+ newMonth = 1;
13908
+ newYear = oldYear + 1;
13909
+ } else {
13910
+ newMonth = oldMonth + 1;
13911
+ newYear = oldYear;
13912
+ }
13913
+
13914
+ const newMonthDateStr = `${String(newMonth).padStart(2, '0')}/01/${newYear}`;
13915
+ newMonthDate = dateFormatter$1.stringToDateInstance(newMonthDateStr, 'mm/dd/yyyy');
13916
+
13917
+ renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, newMonth, newYear)}`;
13918
+ }
13919
+ }
13920
+
13921
+ return renderedHtml;
13922
+ }
13923
+
13924
+ /**
13925
+ * Focuses the close button inside the calendar's bibtemplate.
13926
+ * Used by datepicker to set initial focus when the fullscreen dialog opens.
13927
+ * @returns {void}
13928
+ */
13929
+ focusCloseButton() {
13930
+ const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
13931
+ if (bibtemplate) {
13932
+ bibtemplate.focusCloseButton();
13933
+ }
13934
+ }
13935
+
13936
+ /**
13937
+ * Request the calendar be scrolled to a given date.
13938
+ * @param {String} date - The date to scroll into view.
13939
+ * @returns {void}
13940
+ */
13941
+ scrollMonthIntoView(date) {
13942
+ this.utilCal.scrollMonthIntoView(this, date, this.format);
13943
+ }
13944
+
13945
+ /**
13946
+ * Gets all rendered month components.
13947
+ * @private
13948
+ * @returns {Array} Array of auro-formkit-calendar-month elements.
13949
+ */
13950
+ getMonthComponents() {
13951
+ return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
13952
+ }
13953
+
13954
+ /**
13955
+ * Gets all focusable cells across all rendered months.
13956
+ * @private
13957
+ * @returns {Array} Array of auro-formkit-calendar-cell elements.
13958
+ */
13959
+ getAllFocusableCells() {
13960
+ const months = this.getMonthComponents();
13961
+ let cells = [];
13962
+ months.forEach((month) => {
13963
+ cells = cells.concat(month.getFocusableCells());
13964
+ });
13965
+ return cells;
13966
+ }
13967
+
13968
+ /**
13969
+ * Sets the active cell across all months. Only one cell has tabindex="0" at a time.
13970
+ * Uses imperative DOM manipulation — no Lit re-render triggered.
13971
+ * Also updates ariaActiveDescendantElement on the grid wrapper so
13972
+ * screen readers announce the active cell without moving DOM focus.
13973
+ * @param {Number} date - Unix timestamp of the cell to activate.
13974
+ * @returns {void}
13975
+ */
13976
+ setActiveCell(date) {
13977
+ const allCells = this.getAllFocusableCells();
13978
+
13979
+ let newActiveCell = null;
13980
+ allCells.forEach((cell) => {
13981
+ if (cell.day && cell.day.date === date) {
13982
+ cell.setActive();
13983
+ newActiveCell = cell;
13984
+ } else if (cell.active) {
13985
+ cell.clearActive();
13986
+ }
13987
+ });
13988
+
13989
+ this.activeCellDate = date;
13990
+
13991
+ // Apply activeCell ring only when the grid currently has focus.
13992
+ if (newActiveCell && this._gridHasFocus) {
13993
+ const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
13994
+ if (btn) {
13995
+ btn.classList.add('activeCell');
13996
+ }
13997
+ }
13998
+ }
13999
+
14000
+ /**
14001
+ * Focuses the calendar grid wrapper and sets the active cell.
14002
+ * DOM focus stays on the grid wrapper; the aria-live region
14003
+ * tells the screen reader which cell is "active".
14004
+ * @returns {void}
14005
+ */
14006
+ focusActiveCell() {
14007
+ if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
14008
+ this.setActiveCell(this.activeCellDate);
14009
+ }
14010
+
14011
+ const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
14012
+ if (gridWrapper) {
14013
+ gridWrapper.focus({ preventScroll: true,
14014
+ focusVisible: true });
14015
+ }
14016
+ }
14017
+
14018
+ /**
14019
+ * Shows the activeCell ring when the grid gains focus.
14020
+ * @private
14021
+ * @returns {void}
14022
+ */
14023
+ handleGridFocusIn() {
14024
+ this._gridHasFocus = true;
14025
+ const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
14026
+ if (activeCell) {
14027
+ const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
14028
+ if (btn) {
14029
+ btn.classList.add('activeCell');
14030
+ }
14031
+ }
14032
+ }
14033
+
14034
+ /**
14035
+ * Hides the activeCell ring when the grid loses focus.
14036
+ * @private
14037
+ * @returns {void}
14038
+ */
14039
+ handleGridFocusOut() {
14040
+ this._gridHasFocus = false;
14041
+ // Remove activeCell from ALL cells to prevent stale rings.
14042
+ const allCells = this.getAllFocusableCells();
14043
+ for (const cell of allCells) {
14044
+ const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
14045
+ if (btn) {
14046
+ btn.classList.remove('activeCell');
14047
+ }
14048
+ }
14049
+ // Clear range hover preview so no highlight lingers after focus leaves the grid.
14050
+ this.clearRangePreview();
14051
+ }
14052
+
14053
+ /**
14054
+ * Computes the initial active date from data properties alone — no DOM required.
14055
+ * Priority:
14056
+ * 1. Selected date (dateFrom) if within range
14057
+ * 2. Today's date if not disabled (in-range and not blackout)
14058
+ * 3. First future non-disabled date (scans day-by-day from today up to 1 year)
14059
+ * 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
14060
+ * 5. First enabled date in finite [min, max] range
14061
+ * 5b. First enabled date scanning forward from finite min (unbounded max)
14062
+ * 5c. First enabled date scanning backward from finite max (unbounded min)
14063
+ * 6. First in-range date (even if blackout) so focus can land somewhere
14064
+ * 7. Undefined — no valid target.
14065
+ *
14066
+ * @private
14067
+ * @param {Object} [options] - Optional settings.
14068
+ * @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
14069
+ * shortcut (step 1). Used after month navigation so the active cell lands in the
14070
+ * newly visible month instead of jumping back to the selected date's month.
14071
+ * @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
14072
+ */
14073
+ computeActiveDate(options = {}) {
14074
+ const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
14075
+
14076
+ /**
14077
+ * Adds days to a timestamp using Date arithmetic to handle DST correctly.
14078
+ * Returns a local-midnight-aligned timestamp in seconds.
14079
+ * @param {Number} ts - Unix timestamp in seconds.
14080
+ * @param {Number} days - Number of days to add.
14081
+ * @returns {Number} The adjusted timestamp in seconds.
14082
+ */
14083
+ const addDays = (ts, days) => {
14084
+ const date = new Date(ts * 1000);
14085
+ date.setDate(date.getDate() + days);
14086
+ date.setHours(0, 0, 0, 0);
14087
+ return Math.floor(date.getTime() / 1000);
14088
+ };
14089
+
14090
+ const rawMin = this.minDateObject?.getTime() / 1000;
14091
+ const rawMax = this.maxDateObject?.getTime() / 1000;
14092
+
14093
+ // When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
14094
+ const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
14095
+ const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
14096
+
14097
+ // Build a Set of blackout timestamps for O(1) lookup.
14098
+ const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
14099
+
14100
+ // Also include ISO-format blackoutDates from the datepicker if available.
14101
+ // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
14102
+ const isoBlackouts = this.datepicker?.blackoutDates;
14103
+ if (Array.isArray(isoBlackouts)) {
14104
+ for (const isoStr of isoBlackouts) {
14105
+ const parts = isoStr.split('-');
14106
+ const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
14107
+ if (Number.isFinite(ts)) {
14108
+ blackoutSet.add(ts);
14109
+ }
14110
+ }
14111
+ }
14112
+
14113
+ /**
14114
+ * A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
14115
+ * it is within [min, max] AND not a blackout day.
14116
+ * @param {Number} ts - Unix timestamp in seconds.
14117
+ * @returns {boolean} True if the date is enabled.
14118
+ */
14119
+ const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
14120
+
14121
+ /**
14122
+ * A date is "in range" (focusable in the grid) when it is within [min, max].
14123
+ * Blackout dates are focusable but not selectable.
14124
+ * @param {Number} ts - Unix timestamp in seconds.
14125
+ * @returns {boolean} True if the date is in range.
14126
+ */
14127
+ const isInRange = (ts) => ts >= minTs && ts <= maxTs;
14128
+
14129
+ // 1. Selected date — always valid target if within range (user chose it).
14130
+ // Skipped when called from month navigation so the active cell lands in
14131
+ // the newly visible month rather than the (possibly off-screen) selection.
14132
+ if (!options.skipDateFrom && this.dateFrom) {
14133
+ const parsedFrom = parseInt(this.dateFrom, 10);
14134
+ if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
14135
+ return parsedFrom;
14136
+ }
14137
+ }
14138
+
14139
+ // 2. Today's date (midnight-aligned) if enabled.
14140
+ const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
14141
+
14142
+ // When centralDate is configured, prefer a date within the month(s) that
14143
+ // will actually be rendered. If today falls outside the visible range, an
14144
+ // active cell set to today would have no matching DOM element and keyboard
14145
+ // focus could not enter the calendar.
14146
+
14147
+ if (this.centralDateObject) {
14148
+ const centralMonth = this.centralDateObject.getMonth();
14149
+ const centralYear = this.centralDateObject.getFullYear();
14150
+ const todayDate = new Date(now * 1000);
14151
+ const todayMonth = todayDate.getMonth();
14152
+ const todayYear = todayDate.getFullYear();
14153
+
14154
+ // Today is outside the centralDate's month — scan for an enabled date
14155
+ // within the visible month instead.
14156
+ if (todayMonth !== centralMonth || todayYear !== centralYear) {
14157
+ const visibleStart = new Date(centralYear, centralMonth, 1);
14158
+ visibleStart.setHours(0, 0, 0, 0);
14159
+ const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
14160
+ visibleEnd.setHours(0, 0, 0, 0);
14161
+ const startTs = Math.floor(visibleStart.getTime() / 1000);
14162
+ const daysInMonth = visibleEnd.getDate();
14163
+
14164
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
14165
+ const ts = addDays(startTs, idx);
14166
+ if (isEnabled(ts)) {
14167
+ return ts;
14168
+ }
14169
+ }
14170
+
14171
+ // No enabled date in the visible month — fall back to first in-range
14172
+ // date in the month so focus still lands on a focusable cell.
14173
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
14174
+ const ts = addDays(startTs, idx);
14175
+ if (isInRange(ts)) {
14176
+ return ts;
14177
+ }
14178
+ }
14179
+ }
14180
+ }
14181
+
14182
+ if (isEnabled(now)) {
14183
+ return now;
14184
+ }
14185
+
14186
+ // When a centralDate is configured (or inferred), constrain the scan to the
14187
+ // rendered month(s) first so a single-month calendar does not pick a date
14188
+ // that has no DOM cell. Determine the visible range based on centralDate and
14189
+ // the number of rendered months.
14190
+ const renderedMonths = Math.max(this.numCalendars, 1);
14191
+ const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
14192
+ const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
14193
+ visMonthStart.setHours(0, 0, 0, 0);
14194
+ const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
14195
+ visMonthEnd.setHours(0, 0, 0, 0);
14196
+ const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
14197
+ const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
14198
+ const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
14199
+
14200
+ // Scan visible months for an enabled date.
14201
+ for (let idx = 0; idx < visDays; idx += 1) {
14202
+ const ts = addDays(visStartTs, idx);
14203
+ if (isEnabled(ts)) {
14204
+ return ts;
14205
+ }
14206
+ }
14207
+
14208
+ // No enabled date in visible months — try an in-range (focusable) date so
14209
+ // keyboard focus still has a tabindex="0" target.
14210
+ for (let idx = 0; idx < visDays; idx += 1) {
14211
+ const ts = addDays(visStartTs, idx);
14212
+ if (isInRange(ts)) {
14213
+ return ts;
14214
+ }
14215
+ }
14216
+
14217
+ // 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
14218
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
14219
+ const ts = addDays(now, idx);
14220
+ if (Number.isFinite(maxTs) && ts > maxTs) {
14221
+ break;
14222
+ }
14223
+ if (isEnabled(ts)) {
14224
+ return ts;
14225
+ }
14226
+ }
14227
+
14228
+ // 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
14229
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
14230
+ const ts = addDays(now, -idx);
14231
+ if (Number.isFinite(minTs) && ts < minTs) {
14232
+ break;
14233
+ }
14234
+ if (isEnabled(ts)) {
14235
+ return ts;
14236
+ }
14237
+ }
14238
+
14239
+ // 5. If scans missed (e.g. min/max range is far from today), fall back to
14240
+ // the first enabled date in the [min, max] range.
14241
+ if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
14242
+ let ts = minTs;
14243
+ for (let idx = 0; ts <= maxTs; idx += 1) {
14244
+ if (isEnabled(ts)) {
14245
+ return ts;
14246
+ }
14247
+ ts = addDays(minTs, idx + 1);
14248
+ }
14249
+ }
14250
+
14251
+ // 5b. Finite min with unbounded max (e.g. minDate far in the future):
14252
+ // scan forward from min for up to MAX_SCAN_DAYS.
14253
+ if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
14254
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
14255
+ const ts = addDays(minTs, idx);
14256
+ if (isEnabled(ts)) {
14257
+ return ts;
14258
+ }
14259
+ }
14260
+ }
14261
+
14262
+ // 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
14263
+ // scan backward from max for up to MAX_SCAN_DAYS.
14264
+ if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
14265
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
14266
+ const ts = addDays(maxTs, -idx);
14267
+ if (isEnabled(ts)) {
14268
+ return ts;
14269
+ }
14270
+ }
14271
+ }
14272
+
14273
+ // 6. All dates are blackout — fall back to the first in-range date so focus
14274
+ // still lands on a focusable (but not selectable) cell.
14275
+ if (Number.isFinite(minTs) && isInRange(minTs)) {
14276
+ return minTs;
14277
+ }
14278
+ if (isInRange(now)) {
14279
+ return now;
14280
+ }
14281
+
14282
+ return undefined;
14283
+ }
14284
+
14285
+ /**
14286
+ * Checks if a target date (unix seconds) is within the configured [min, max] range.
14287
+ * Returns false if the date falls outside the range, preventing navigation
14288
+ * to months where all dates are disabled.
14289
+ * @private
14290
+ * @param {Number} targetTs - Unix timestamp in seconds.
14291
+ * @returns {Boolean} True if the date is within range.
14292
+ */
14293
+ isDateInRange(targetTs) {
14294
+ const rawMin = this.minDateObject?.getTime() / 1000;
14295
+ const rawMax = this.maxDateObject?.getTime() / 1000;
14296
+ if (Number.isFinite(rawMin) && targetTs < rawMin) {
14297
+ return false;
14298
+ }
14299
+ if (Number.isFinite(rawMax) && targetTs > rawMax) {
14300
+ return false;
14301
+ }
14302
+ return true;
14303
+ }
14304
+
14305
+ /**
14306
+ * Handles arrow key navigation on the calendar grid wrapper.
14307
+ * Focus stays on the grid wrapper; only ariaActiveDescendantElement
14308
+ * and the visual active-cell indicator change.
14309
+ * @private
14310
+ * @param {KeyboardEvent} event - The keyboard event.
14311
+ * @returns {void}
14312
+ */
14313
+ handleGridKeyDown(event) {
14314
+ const { key } = event;
14315
+ const actionKeys = [
14316
+ 'ArrowRight',
14317
+ 'ArrowLeft',
14318
+ 'ArrowDown',
14319
+ 'ArrowUp',
14320
+ 'Enter',
14321
+ ' '
14322
+ ];
14323
+
14324
+ if (!actionKeys.includes(key)) {
14325
+ return;
14326
+ }
14327
+
14328
+ event.preventDefault();
14329
+
14330
+ const allCells = this.getAllFocusableCells();
14331
+ if (allCells.length === 0) {
14332
+ return;
14333
+ }
14334
+
14335
+ const activeCell = allCells.find((cell) => cell.active);
14336
+ if (!activeCell) {
14337
+ return;
14338
+ }
14339
+
14340
+ // Handle Enter/Space to select the active cell
14341
+ if (key === 'Enter' || key === ' ') {
14342
+ activeCell.handleTap();
14343
+ return;
14344
+ }
14345
+
14346
+ const activeIndex = allCells.indexOf(activeCell);
14347
+
14348
+ if (key === 'ArrowRight' || key === 'ArrowLeft') {
14349
+ const direction = key === 'ArrowRight' ? 1 : -1;
14350
+ const targetIndex = activeIndex + direction;
14351
+
14352
+ if (targetIndex >= 0 && targetIndex < allCells.length) {
14353
+ // Target cell exists in rendered months
14354
+ this.setActiveCell(allCells[targetIndex].day.date);
14355
+ this.scrollToActiveCell();
14356
+ // Dispatch focus event for the cell so live region + range preview update
14357
+ this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
14358
+ } else {
14359
+ // At boundary — need to navigate to next/prev month
14360
+ const navDir = direction === 1 ? 'next' : 'prev';
14361
+ const targetDate = new Date(activeCell.day.date * 1000);
14362
+ targetDate.setDate(targetDate.getDate() + direction);
14363
+ targetDate.setHours(0, 0, 0, 0);
14364
+ const targetTs = Math.floor(targetDate.getTime() / 1000);
14365
+
14366
+ if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
14367
+
14368
+ if (navDir === 'next') {
14369
+ this.handleNextMonth({ skipActiveUpdate: true });
14370
+ } else {
14371
+ this.handlePrevMonth({ skipActiveUpdate: true });
14372
+ }
14373
+ requestAnimationFrame(() => {
14374
+ requestAnimationFrame(() => {
14375
+ const cells = this.getAllFocusableCells();
14376
+ const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
14377
+ if (target) {
14378
+ this.setActiveCell(target.day.date);
14379
+ this.handleCellFocused({ detail: { date: target.day.date } });
14380
+ } else if (cells.length > 0) {
14381
+ const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
14382
+ this.setActiveCell(fallback.day.date);
14383
+ this.handleCellFocused({ detail: { date: fallback.day.date } });
14384
+ }
14385
+ // Re-focus grid wrapper after month change re-render
14386
+ this.focusActiveCell();
14387
+ });
14388
+ });
14389
+ }
14390
+ }
14391
+ } else if (key === 'ArrowDown' || key === 'ArrowUp') {
14392
+ const increment = key === 'ArrowDown' ? 7 : -7;
14393
+ const currentDate = new Date(activeCell.day.date * 1000);
14394
+ currentDate.setDate(currentDate.getDate() + increment);
14395
+ currentDate.setHours(0, 0, 0, 0);
14396
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
14397
+
14398
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
14399
+
14400
+ if (targetCell) {
14401
+ this.setActiveCell(targetCell.day.date);
14402
+ this.scrollToActiveCell();
14403
+ this.handleCellFocused({ detail: { date: targetCell.day.date } });
14404
+ } else if (this.isDateInRange(targetDate)) {
14405
+ // Target might be in an unrendered month
14406
+ const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
14407
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
14408
+ if (navDirection === 'next') {
14409
+ this.handleNextMonth({ skipActiveUpdate: true });
14410
+ } else {
14411
+ this.handlePrevMonth({ skipActiveUpdate: true });
14412
+ }
14413
+ requestAnimationFrame(() => {
14414
+ requestAnimationFrame(() => {
14415
+ const cells = this.getAllFocusableCells();
14416
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14417
+ if (target) {
14418
+ this.setActiveCell(target.day.date);
14419
+ this.handleCellFocused({ detail: { date: target.day.date } });
14420
+ } else if (cells.length > 0) {
14421
+ let nearest = null;
14422
+
14423
+ if (navDirection === 'next') {
14424
+ [nearest] = cells;
14425
+ } else {
14426
+ nearest = cells[cells.length - 1];
14427
+ }
14428
+ this.setActiveCell(nearest.day.date);
14429
+ this.handleCellFocused({ detail: { date: nearest.day.date } });
14430
+ }
14431
+ this.focusActiveCell();
14432
+ });
14433
+ });
14434
+ }
14435
+ }
14436
+ }
14437
+ }
14438
+
14439
+ /**
14440
+ * Handles cross-month boundary navigation events from month components.
14441
+ * @private
14442
+ * @param {CustomEvent} event - The boundary event with direction and source date info.
14443
+ * @returns {void}
14444
+ */
14445
+ handleMonthBoundary(event) {
14446
+ const { direction, fromDate, key } = event.detail;
14447
+
14448
+ if (key === 'ArrowRight' || key === 'ArrowLeft') {
14449
+ // Linear navigation: find adjacent focusable cell across months
14450
+ const allCells = this.getAllFocusableCells();
14451
+ const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
14452
+
14453
+ if (currentIndex === -1) {
14454
+ return;
14455
+ }
14456
+
14457
+ let targetIndex = -1;
14458
+ if (direction === 'next') {
14459
+ targetIndex = currentIndex + 1;
14460
+ }
14461
+
14462
+ if (targetIndex >= 0 && targetIndex < allCells.length) {
14463
+ const targetCell = allCells[targetIndex];
14464
+ this.setActiveCell(targetCell.day.date);
14465
+ this.scrollToActiveCell();
14466
+ this.focusActiveCell();
14467
+ } else if (direction === 'next' && this.showNextMonthBtn) {
14468
+ // Navigate to next month and focus the computed next date.
14469
+ // Using the target date (fromDate + 1 day) instead of cells[0]
14470
+ // avoids jumping backward in range datepickers where cells[0]
14471
+ // belongs to the previous (still-rendered) month.
14472
+ const nextDate = new Date(fromDate * 1000);
14473
+ nextDate.setDate(nextDate.getDate() + 1);
14474
+ nextDate.setHours(0, 0, 0, 0);
14475
+ const nextTs = Math.floor(nextDate.getTime() / 1000);
14476
+
14477
+ if (!this.isDateInRange(nextTs)) {
14478
+ return;
14479
+ }
14480
+
14481
+ this.handleNextMonth({ skipActiveUpdate: true });
14482
+ requestAnimationFrame(() => {
14483
+ requestAnimationFrame(() => {
14484
+ const cells = this.getAllFocusableCells();
14485
+ const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
14486
+ if (target) {
14487
+ this.setActiveCell(target.day.date);
14488
+ this.focusActiveCell();
14489
+ } else if (cells.length > 0) {
14490
+ // Fallback: first cell of the last rendered month
14491
+ this.setActiveCell(cells[cells.length - 1].day.date);
14492
+ this.focusActiveCell();
14493
+ }
14494
+ });
14495
+ });
14496
+ } else if (direction === 'prev' && this.showPrevMonthBtn) {
14497
+ // Navigate to previous month and focus the computed previous date.
14498
+ const prevDate = new Date(fromDate * 1000);
14499
+ prevDate.setDate(prevDate.getDate() - 1);
14500
+ prevDate.setHours(0, 0, 0, 0);
14501
+ const prevTs = Math.floor(prevDate.getTime() / 1000);
14502
+
14503
+ if (!this.isDateInRange(prevTs)) {
14504
+ return;
14505
+ }
14506
+
14507
+ this.handlePrevMonth({ skipActiveUpdate: true });
14508
+ requestAnimationFrame(() => {
14509
+ requestAnimationFrame(() => {
14510
+ const cells = this.getAllFocusableCells();
14511
+ const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
14512
+ if (target) {
14513
+ this.setActiveCell(target.day.date);
14514
+ this.focusActiveCell();
14515
+ } else if (cells.length > 0) {
14516
+ // Fallback: last cell of the first rendered month
14517
+ this.setActiveCell(cells[0].day.date);
14518
+ this.focusActiveCell();
14519
+ }
14520
+ });
14521
+ });
14522
+ }
14523
+ } else if (key === 'ArrowDown' || key === 'ArrowUp') {
14524
+ // Vertical navigation: find same day-of-week +/- 7 days
14525
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
14526
+ const increment = key === 'ArrowDown' ? 7 : -7;
14527
+ const currentDate = new Date(fromDate * 1000);
14528
+ currentDate.setDate(currentDate.getDate() + increment);
14529
+ currentDate.setHours(0, 0, 0, 0);
14530
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
14531
+
14532
+ const allCells = this.getAllFocusableCells();
14533
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
14534
+
14535
+ if (targetCell) {
14536
+ this.setActiveCell(targetCell.day.date);
14537
+ this.scrollToActiveCell();
14538
+ this.focusActiveCell();
14539
+ } else if (this.isDateInRange(targetDate)) {
14540
+ // Target might be in an unrendered month, navigate there
14541
+ const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
14542
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
14543
+ if (navDirection === 'next') {
14544
+ this.handleNextMonth({ skipActiveUpdate: true });
14545
+ } else {
14546
+ this.handlePrevMonth({ skipActiveUpdate: true });
14547
+ }
14548
+ requestAnimationFrame(() => {
14549
+ requestAnimationFrame(() => {
14550
+ const cells = this.getAllFocusableCells();
14551
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14552
+ if (target) {
14553
+ this.setActiveCell(target.day.date);
14554
+ this.focusActiveCell();
14555
+ } else if (cells.length > 0) {
14556
+ // Clamp to nearest focusable cell
14557
+ const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
14558
+ this.setActiveCell(nearest.day.date);
14559
+ this.focusActiveCell();
14560
+ }
14561
+ });
14562
+ });
14563
+ }
14564
+ }
14565
+ }
14566
+ }
14567
+
14568
+ /**
14569
+ * Handles cell activation events from month components.
14570
+ * @private
14571
+ * @param {CustomEvent} event - The activation event with target date.
14572
+ * @returns {void}
14573
+ */
14574
+ handleCellActivate(event) {
14575
+ const { date } = event.detail;
14576
+ this.setActiveCell(date);
14577
+
14578
+ // Don't call focusActiveCell() here. The tap/click already placed
14579
+ // focus on the cell button, and moving it to #calendarGrid would
14580
+ // trigger focusout on the button, closing any open popover on the
14581
+ // cell. Keyboard events are composed and still bubble through
14582
+ // shadow DOM boundaries to the grid's @keydown handler, so
14583
+ // subsequent keyboard navigation continues to work.
14584
+ }
14585
+
14586
+ /**
14587
+ * Handles focus events from calendar cells.
14588
+ * Updates the live region with an SR announcement and triggers
14589
+ * the imperative range preview if applicable.
14590
+ * @private
14591
+ * @param {CustomEvent} event - The calendar-cell-focused event.
14592
+ * @returns {void}
14593
+ */
14594
+ handleCellFocused(event) {
14595
+ const { date } = event.detail;
14596
+ if (date === null) {
14597
+ return;
14598
+ }
14599
+
14600
+ // With aria-activedescendant, the button no longer receives native focus,
14601
+ // so we use the debounced live region for the full context announcement.
14602
+ const announcement = this.buildFocusAnnouncement(date);
14603
+ this.announceFocusDebounced(announcement);
14604
+
14605
+ // Update the range preview imperatively if in range-preview mode.
14606
+ this.updateRangePreview(date);
14607
+ }
14608
+
14609
+ /**
14610
+ * Builds a full SR announcement string for a focused cell date.
14611
+ * Includes the localized date, range position, popover content,
14612
+ * and blackout status.
14613
+ * @private
14614
+ * @param {Number} date - Unix timestamp (seconds) of the focused cell.
14615
+ * @returns {String} The announcement string.
14616
+ */
14617
+ buildFocusAnnouncement(date) {
14618
+ let label = this.formatAnnouncementDate(date);
14619
+
14620
+ // Append date slot content (e.g. prices) if present.
14621
+ const dateObj = new Date(date * 1000);
14622
+ const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
14623
+ const dd = String(dateObj.getDate()).padStart(2, '0');
14624
+ const yyyy = dateObj.getFullYear();
14625
+ const dateStr = `${mm}_${dd}_${yyyy}`;
14626
+ const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
14627
+ if (dateSlotEl) {
14628
+ const text = dateSlotEl.innerText?.trim();
14629
+ if (text) {
14630
+ label += `, ${text}`;
14631
+ }
14632
+ }
14633
+
14634
+ // Append popover content if present.
14635
+ const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
14636
+ if (popoverEl) {
14637
+ const text = popoverEl.innerText?.trim();
14638
+ if (text) {
14639
+ label += `, ${text}`;
14640
+ }
14641
+ }
14642
+
14643
+ // Append range position context.
14644
+ if (this.datepicker?.hasAttribute('range')) {
14645
+ const rangeLabel = this.getRangePositionLabel(date);
14646
+ if (rangeLabel) {
14647
+ label += `, ${rangeLabel}`;
14648
+ }
14649
+ }
14650
+
14651
+ // Append blackout label.
14652
+ if (this.isDateBlackout(date)) {
14653
+ label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
14654
+ }
14655
+
14656
+ return label;
14657
+ }
14658
+
14659
+ /**
14660
+ * Determines the range position label for a given date.
14661
+ * @private
14662
+ * @param {Number} date - Unix timestamp (seconds).
14663
+ * @returns {String|null} The range position label, or null.
14664
+ */
14665
+ getRangePositionLabel(date) {
14666
+ const parsedFrom = Number.parseInt(this.dateFrom, 10);
14667
+ if (!Number.isFinite(parsedFrom)) {
14668
+ return null;
14669
+ }
14670
+
14671
+ const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
14672
+ const parsedTo = Number.parseInt(this.dateTo, 10);
14673
+ const hasTo = Number.isFinite(parsedTo);
14674
+ const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
14675
+
14676
+ if (date === departTs) {
14677
+ return this.datepicker.rangeLabelStart || 'range start';
14678
+ }
14679
+ if (hasTo && date === returnTs) {
14680
+ return this.datepicker.rangeLabelEnd || 'range end';
14681
+ }
14682
+ if (date < departTs) {
14683
+ return this.datepicker.rangeLabelBeforeRange || 'before range';
14684
+ }
14685
+ if (hasTo && date > departTs && date < returnTs) {
14686
+ return this.datepicker.rangeLabelInRange || 'in range';
14687
+ }
14688
+ return this.datepicker.rangeLabelAfterRange || 'after range';
14689
+ }
14690
+
14691
+ /**
14692
+ * Checks whether a given date is a blackout date.
14693
+ * @private
14694
+ * @param {Number} dateTs - Unix timestamp (seconds).
14695
+ * @returns {Boolean} True if the date is blacked out.
14696
+ */
14697
+ isDateBlackout(dateTs) {
14698
+ // Check legacy disabledDays.
14699
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
14700
+ if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
14701
+ return true;
14702
+ }
14703
+ }
14704
+
14705
+ // Check ISO blackoutDates.
14706
+ const blackoutDates = this.datepicker?.blackoutDates;
14707
+ if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
14708
+ const date = new Date(dateTs * 1000);
14709
+ const yyyy = date.getFullYear();
14710
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
14711
+ const dd = String(date.getDate()).padStart(2, '0');
14712
+ if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
14713
+ return true;
14714
+ }
14715
+ }
14716
+
14717
+ return false;
14718
+ }
14719
+
14720
+ /**
14721
+ * Updates the range preview classes imperatively across all cells.
14722
+ * Only active when in range mode with dateFrom set and dateTo not yet set.
14723
+ * @private
14724
+ * @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
14725
+ * @returns {void}
14726
+ */
14727
+ updateRangePreview(hoveredDate) {
14728
+ if (this.noRange || !this.dateFrom || this.dateTo) {
14729
+ return;
14730
+ }
14731
+
14732
+ const parsedDateFrom = parseInt(this.dateFrom, 10);
14733
+ const allCells = this.getAllFocusableCells();
14734
+
14735
+ allCells.forEach((cell) => {
14736
+ cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
14737
+ });
14738
+ }
14739
+
14740
+ /**
14741
+ * Clears range preview classes from all cells.
14742
+ * @private
14743
+ * @param {Object} [options] - Optional settings.
14744
+ * @param {boolean} [options.force=false] - When true, clears classes even
14745
+ * when both dateFrom and dateTo are set. Used by month nav handlers
14746
+ * since the subsequent re-render re-applies classMap-managed classes,
14747
+ * while `lastHoveredDate` (not in classMap) would otherwise persist.
14748
+ * @returns {void}
14749
+ */
14750
+ clearRangePreview(options) {
14751
+ const opts = options instanceof Event ? {} : options || {};
14752
+ if (!opts.force && this.dateFrom && this.dateTo) {
14753
+ return;
14754
+ }
14755
+
14756
+ const allCells = this.getAllFocusableCells();
14757
+ allCells.forEach((cell) => {
14758
+ cell.clearRangePreviewClasses();
14759
+ });
14760
+ }
13348
14761
 
13349
- if (!dateMatches) {
13350
- this.firstRenderedMonth = this.util.convertDateToFirstOfMonth(now);
13351
- }
13352
- }
13353
- } else {
13354
- // On mobile start the calendar at the previously determined first renderable month.
13355
- this.firstRenderedMonth = this.firstMonthRenderable;
13356
- }
14762
+ /**
14763
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
14764
+ * as a reactive property. Instead, handles the range preview imperatively.
14765
+ * @private
14766
+ * @param {CustomEvent} event - The hovered-date-changed event from a month.
14767
+ * @returns {void}
14768
+ */
14769
+ hoveredDateChanged(event) {
14770
+ const hoveredDate = event.detail.value;
14771
+ this.updateRangePreview(hoveredDate);
14772
+ }
13357
14773
 
13358
- // Add the first calendar to the HTML
13359
- const firstMonth = this.firstRenderedMonth.getMonth() + 1;
13360
- const firstYear = this.firstRenderedMonth.getFullYear();
14774
+ /**
14775
+ * Scrolls the calendar to ensure the month containing the active cell is visible.
14776
+ * @private
14777
+ * @returns {void}
14778
+ */
14779
+ scrollToActiveCell() {
14780
+ if (this.activeCellDate === null || this.activeCellDate === undefined) {
14781
+ return;
14782
+ }
13361
14783
 
13362
- renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, firstMonth, firstYear)}`;
14784
+ const date = new Date(this.activeCellDate * 1000);
14785
+ const month = date.getMonth() + 1;
14786
+ const year = date.getFullYear();
14787
+ const selector = `#month-${month}-${year}`;
14788
+ const monthElem = this.shadowRoot.querySelector(selector);
13363
14789
 
13364
- // Loop through the number of remaining calendars to render and add the HTML
13365
- let newMonthDate = undefined;
14790
+ if (monthElem) {
14791
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
14792
+ monthElem.scrollIntoView({ block: 'nearest',
14793
+ behavior: prefersReducedMotion ? 'instant' : 'smooth' });
14794
+ }
14795
+ }
13366
14796
 
13367
- for (let cal = 0; cal < this.numCalendars - 1; cal += 1) {
14797
+ /**
14798
+ * Returns (and lazily creates) an aria-live region inside the dropdown's
14799
+ * <dialog> element. This placement is critical for two reasons:
14800
+ *
14801
+ * 1. Inside the dialog's accessible scope — dialog.showModal() makes
14802
+ * everything outside the top-layer dialog inert, and desktop modal
14803
+ * mode uses _setPageInert() on document.body siblings. A live region
14804
+ * on document.body would be invisible to screen readers in both cases.
14805
+ *
14806
+ * 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
14807
+ * mutations inside shadow DOM across machines and versions. The dialog
14808
+ * element is only one shadow root deep (the dropdown bib's shadow DOM),
14809
+ * which Chrome handles reliably. The calendar's own shadow DOM (nested
14810
+ * inside the bib via slotting) is two+ levels deep and unreliable.
14811
+ *
14812
+ * @private
14813
+ * @returns {HTMLElement} The live region element.
14814
+ */
14815
+ getOrCreateLiveRegion() {
14816
+ if (this._liveRegion && this._liveRegion.isConnected) {
14817
+ return this._liveRegion;
14818
+ }
13368
14819
 
13369
- const date = newMonthDate || this.firstRenderedMonth;
14820
+ // Access the dialog element inside the dropdown bib's shadow DOM.
14821
+ const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
14822
+ if (!dialog) {
14823
+ return null;
14824
+ }
13370
14825
 
13371
- const oldMonth = date.getMonth() + 1;
13372
- const oldYear = date.getFullYear();
14826
+ // Check if we already created one for this calendar instance.
14827
+ const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
14828
+ const existing = dialog.querySelector(`#${regionId}`);
14829
+ if (existing) {
14830
+ this._liveRegion = existing;
14831
+ return existing;
14832
+ }
13373
14833
 
13374
- let newMonth = undefined;
13375
- let newYear = undefined;
14834
+ const el = document.createElement('div');
14835
+ el.id = regionId;
14836
+ el.setAttribute('aria-live', 'assertive');
14837
+ el.setAttribute('aria-atomic', 'true');
14838
+ el.style.cssText = 'position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;';
14839
+ dialog.appendChild(el);
13376
14840
 
13377
- if (oldMonth === 12) {
13378
- newMonth = 1;
13379
- newYear = oldYear + 1;
13380
- } else {
13381
- newMonth = oldMonth + 1;
13382
- newYear = oldYear;
13383
- }
14841
+ this._liveRegion = el;
14842
+ return el;
14843
+ }
13384
14844
 
13385
- const newMonthDateStr = `${String(newMonth).padStart(2, '0')}/01/${newYear}`;
13386
- newMonthDate = dateFormatter$1.stringToDateInstance(newMonthDateStr, 'mm/dd/yyyy');
14845
+ /**
14846
+ * Removes the live region when this calendar is disconnected.
14847
+ * @private
14848
+ * @returns {void}
14849
+ */
14850
+ disconnectedCallback() {
14851
+ super.disconnectedCallback();
13387
14852
 
13388
- renderedHtml = u$a`${renderedHtml}${this.utilCalRender.renderCalendar(this, newMonth, newYear)}`;
13389
- }
14853
+ // Cancel any pending announcements so they don't fire after teardown.
14854
+ if (this._announceRafId) {
14855
+ cancelAnimationFrame(this._announceRafId);
14856
+ this._announceRafId = null;
14857
+ }
14858
+ if (this._focusAnnounceTimer) {
14859
+ clearTimeout(this._focusAnnounceTimer);
14860
+ this._focusAnnounceTimer = null;
13390
14861
  }
13391
14862
 
13392
- return renderedHtml;
14863
+ if (this._liveRegion && this._liveRegion.isConnected) {
14864
+ this._liveRegion.remove();
14865
+ }
14866
+ this._liveRegion = null;
13393
14867
  }
13394
14868
 
13395
14869
  /**
13396
- * Focuses the close button inside the calendar's bibtemplate.
13397
- * Used by datepicker to set initial focus when the fullscreen dialog opens.
14870
+ * Announces a date selection or focus change via the live region.
14871
+ * Uses requestAnimationFrame to ensure the clear and set happen in
14872
+ * separate rendering frames — Chrome may coalesce synchronous or
14873
+ * microtask-deferred mutations into a single accessibility tree update.
14874
+ * @private
14875
+ * @param {String} dateStr - The localized date string to announce.
13398
14876
  * @returns {void}
13399
14877
  */
13400
- focusCloseButton() {
13401
- const bibtemplate = this.shadowRoot.querySelector(this.bibtemplateTag._$litStatic$);
13402
- if (bibtemplate) {
13403
- bibtemplate.focusCloseButton();
14878
+ announceSelection(dateStr) {
14879
+ // Cancel any previously queued rAF announcement so a rapid
14880
+ // sequence of calls (e.g. bib open → month nav) only announces
14881
+ // the last one.
14882
+ if (this._announceRafId) {
14883
+ cancelAnimationFrame(this._announceRafId);
14884
+ }
14885
+ const liveRegion = this.getOrCreateLiveRegion();
14886
+ if (!liveRegion) {
14887
+ return;
13404
14888
  }
14889
+
14890
+ // Double-rAF: clear in frame N, set in frame N+1. Chrome batches
14891
+ // accessibility tree mutations within a single animation frame, so
14892
+ // a same-frame clear+set can be coalesced into a no-op if the new
14893
+ // value matches a recently announced string. Splitting across two
14894
+ // frames guarantees Chrome sees two distinct tree states and fires
14895
+ // a new accessibility event for the content change.
14896
+ liveRegion.textContent = '';
14897
+ this._announceRafId = requestAnimationFrame(() => {
14898
+ this._announceRafId = requestAnimationFrame(() => {
14899
+ liveRegion.textContent = dateStr;
14900
+ this._announceRafId = null;
14901
+ });
14902
+ });
13405
14903
  }
13406
14904
 
13407
14905
  /**
13408
- * Request the calendar be scrolled to a given date.
13409
- * @param {String} date - The date to scroll into view.
14906
+ * Debounced version of announceSelection for focus navigation.
14907
+ * Uses the assertive live region with a 150ms debounce so only the
14908
+ * final cell after rapid arrow-key traversal is announced. We
14909
+ * originally tried aria-live="polite" here, but VoiceOver treats
14910
+ * polite as "wait until idle" — which never happens during active
14911
+ * keyboard navigation — so the announcements were silently dropped.
14912
+ * @private
14913
+ * @param {String} dateStr - The localized date string to announce.
13410
14914
  * @returns {void}
13411
14915
  */
13412
- scrollMonthIntoView(date) {
13413
- this.utilCal.scrollMonthIntoView(this, date, this.format);
14916
+ announceFocusDebounced(dateStr) {
14917
+ if (this._focusAnnounceTimer) {
14918
+ clearTimeout(this._focusAnnounceTimer);
14919
+ }
14920
+ this._focusAnnounceTimer = setTimeout(() => {
14921
+ this.announceSelection(dateStr);
14922
+ this._focusAnnounceTimer = null;
14923
+ }, 150);
14924
+ }
14925
+
14926
+ /**
14927
+ * Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
14928
+ * @private
14929
+ * @param {String|Number} timestamp - Unix timestamp in seconds.
14930
+ * @returns {String} Localized date string.
14931
+ */
14932
+ formatAnnouncementDate(timestamp) {
14933
+ const date = new Date(parseInt(timestamp, 10) * 1000);
14934
+ const localeCode = this.locale?.code || undefined;
14935
+ const formatter = new Intl.DateTimeFormat(localeCode, {
14936
+ weekday: 'long',
14937
+ year: 'numeric',
14938
+ month: 'long',
14939
+ day: 'numeric'
14940
+ });
14941
+ return formatter.format(date);
13414
14942
  }
13415
14943
 
13416
14944
  firstUpdated() {
14945
+
13417
14946
  this.addEventListener('date-from-changed', () => {
13418
14947
  this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
13419
14948
  bubbles: true,
@@ -13432,6 +14961,21 @@ class AuroCalendar extends RangeDatepicker {
13432
14961
  composed: true,
13433
14962
  }));
13434
14963
  });
14964
+
14965
+ // Listen for cross-month boundary navigation events
14966
+ this.addEventListener('calendar-month-boundary', (event) => {
14967
+ this.handleMonthBoundary(event);
14968
+ });
14969
+
14970
+ // Listen for cell activation events
14971
+ this.addEventListener('calendar-cell-activate', (event) => {
14972
+ this.handleCellActivate(event);
14973
+ });
14974
+
14975
+ // Listen for cell focus events (SR announcements + range preview)
14976
+ this.addEventListener('calendar-cell-focused', (event) => {
14977
+ this.handleCellFocused(event);
14978
+ });
13435
14979
  }
13436
14980
 
13437
14981
  injectSlot(slotName, nodes) {
@@ -13456,7 +15000,37 @@ class AuroCalendar extends RangeDatepicker {
13456
15000
  }
13457
15001
 
13458
15002
  if (changedProperties.has('visible')) {
13459
- setTimeout(() => this.requestUpdate());
15003
+ if (this.visible) {
15004
+ // Compute the active date eagerly from data — no DOM needed.
15005
+ if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
15006
+ this.activeCellDate = this.computeActiveDate();
15007
+ }
15008
+
15009
+ this.requestUpdate();
15010
+ } else {
15011
+ this.requestUpdate();
15012
+ }
15013
+ }
15014
+
15015
+ // Announce date selection to screen readers when user clicks/selects a cell
15016
+ const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
15017
+
15018
+ if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
15019
+ const dateStr = this.formatAnnouncementDate(this.dateFrom);
15020
+ const isRange = !this.noRange;
15021
+
15022
+ if (isRange) {
15023
+ const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
15024
+ this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
15025
+ } else {
15026
+ this.announceSelection(`${dateStr}, selected`);
15027
+ }
15028
+ }
15029
+
15030
+ if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
15031
+ const dateStr = this.formatAnnouncementDate(this.dateTo);
15032
+ const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
15033
+ this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
13460
15034
  }
13461
15035
  }
13462
15036
 
@@ -13465,6 +15039,7 @@ class AuroCalendar extends RangeDatepicker {
13465
15039
  <${this.bibtemplateTag}
13466
15040
  ?large="${this.largeFullscreenHeadline}"
13467
15041
  ?isFullscreen="${this.isFullscreen}"
15042
+ ?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
13468
15043
  @close-click="${this.utilCal.requestDismiss}">
13469
15044
  <span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
13470
15045
 
@@ -13482,24 +15057,26 @@ class AuroCalendar extends RangeDatepicker {
13482
15057
  </div>
13483
15058
  </div>
13484
15059
 
13485
- <div class="calendarWrapper">
13486
- <div class="calendars">
13487
- ${this.renderAllCalendars()}
13488
- </div>
15060
+ <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
13489
15061
  <div class="calendarNavButtons">
13490
15062
  ${this.showPrevMonthBtn ? u$a`
13491
- <button tabIndex="-1" class="calendarNavBtn prevMonth" @click="${this.handlePrevMonth}">
15063
+ <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
13492
15064
  ${this.util.generateIconHtml(chevronLeft)}
13493
15065
  </button>
13494
15066
  ` : undefined}
13495
15067
  ${this.showNextMonthBtn ? u$a`
13496
- <button tabIndex="-1" class="calendarNavBtn nextMonth" @click="${this.handleNextMonth}">
15068
+ <button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
13497
15069
  ${this.util.generateIconHtml(chevronRight)}
13498
15070
  </button>
13499
15071
  ` : undefined}
13500
15072
  </div>
15073
+ <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}">
15074
+ ${this.renderAllCalendars()}
15075
+ </div>
13501
15076
  </div>
13502
15077
 
15078
+ <div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
15079
+
13503
15080
  <${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
13504
15081
  </${this.bibtemplateTag}>
13505
15082
  `;
@@ -16771,7 +18348,7 @@ function applyKeyboardStrategy$1(component, strategy, options = {}) {
16771
18348
  });
16772
18349
  }
16773
18350
 
16774
- var styleCss$2$1 = i$3`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
18351
+ var styleCss$2$1 = i$3`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([desktopmodal]:popover-open)::backdrop{background:transparent}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
16775
18352
 
16776
18353
  var colorCss$2 = i$3`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
16777
18354
 
@@ -17402,7 +18979,7 @@ let AuroHelpText$2 = class AuroHelpText extends i$1 {
17402
18979
  }
17403
18980
  };
17404
18981
 
17405
- var formkitVersion$1 = '202606081518';
18982
+ var formkitVersion$1 = '202606081904';
17406
18983
 
17407
18984
  let AuroElement$2 = class AuroElement extends i$1 {
17408
18985
  static get properties() {
@@ -17582,6 +19159,7 @@ class AuroDropdown extends AuroElement$2 {
17582
19159
  _intializeDefaults() {
17583
19160
  this.appearance = 'default';
17584
19161
  this.chevron = false;
19162
+ this.desktopModal = false;
17585
19163
  this.disabled = false;
17586
19164
  this.disableKeyboardHandling = false;
17587
19165
  this.error = false;
@@ -17762,6 +19340,14 @@ class AuroDropdown extends AuroElement$2 {
17762
19340
  reflect: true
17763
19341
  },
17764
19342
 
19343
+ /**
19344
+ * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
19345
+ */
19346
+ desktopModal: {
19347
+ type: Boolean,
19348
+ reflect: true
19349
+ },
19350
+
17765
19351
  /**
17766
19352
  * If declared, the dropdown will only show by calling the API .show() public method.
17767
19353
  */
@@ -18049,6 +19635,15 @@ class AuroDropdown extends AuroElement$2 {
18049
19635
 
18050
19636
  disconnectedCallback() {
18051
19637
  super.disconnectedCallback();
19638
+ this._clearPageInert();
19639
+ if (this._bibTabHandler) {
19640
+ this.removeEventListener('keydown', this._bibTabHandler);
19641
+ this._bibTabHandler = undefined;
19642
+ }
19643
+ if (this.focusTrap) {
19644
+ this.focusTrap.disconnect();
19645
+ this.focusTrap = undefined;
19646
+ }
18052
19647
  if (this.floater) {
18053
19648
  this.floater.hideBib('disconnect');
18054
19649
  this.floater.disconnect();
@@ -18076,19 +19671,45 @@ class AuroDropdown extends AuroElement$2 {
18076
19671
  if (this.isPopoverVisible) {
18077
19672
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
18078
19673
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
18079
- const useModal = this.isBibFullscreen;
18080
- this.bibElement.value.open(useModal);
19674
+ this.bibElement.value.open(this.isBibFullscreen);
19675
+ this.updateFocusTrap();
19676
+
19677
+ // Desktop modal: make siblings inert so content outside is not interactive
19678
+ if (this.desktopModal && !this.isBibFullscreen) {
19679
+ this._setPageInert();
19680
+ }
18081
19681
  } else {
18082
19682
  this.bibElement.value.close();
19683
+ this._clearPageInert();
18083
19684
  }
18084
19685
  }
18085
19686
 
18086
19687
  // When fullscreen strategy changes while open, re-open dialog with correct mode
18087
19688
  // (e.g. resizing from desktop → mobile while dropdown is open)
18088
19689
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
18089
- const useModal = this.isBibFullscreen;
18090
19690
  this.bibElement.value.close();
18091
- this.bibElement.value.open(useModal);
19691
+ this.bibElement.value.open(this.isBibFullscreen);
19692
+
19693
+ // Re-initialize focus management for the new strategy
19694
+ this.updateFocusTrap();
19695
+
19696
+ // Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
19697
+ if (this.desktopModal && !this.isBibFullscreen) {
19698
+ this._setPageInert();
19699
+ } else {
19700
+ this._clearPageInert();
19701
+ }
19702
+ }
19703
+
19704
+ // Handle desktopModal toggled while the dropdown is already open.
19705
+ // Re-initialize focus trapping and page inert state to match the new mode.
19706
+ if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
19707
+ this.updateFocusTrap();
19708
+ if (this.desktopModal) {
19709
+ this._setPageInert();
19710
+ } else {
19711
+ this._clearPageInert();
19712
+ }
18092
19713
  }
18093
19714
  }
18094
19715
 
@@ -18098,8 +19719,14 @@ class AuroDropdown extends AuroElement$2 {
18098
19719
  * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
18099
19720
  */
18100
19721
  handleDropdownToggle(event) {
18101
- this.updateFocusTrap();
18102
19722
  this.isPopoverVisible = event.detail.expanded;
19723
+
19724
+ // Tear down FocusTrap when closing. Creation happens in updated()
19725
+ // after the dialog is open so getFocusableElements can find content.
19726
+ if (!this.isPopoverVisible) {
19727
+ this.updateFocusTrap();
19728
+ }
19729
+
18103
19730
  const eventType = event.detail.eventType || "unknown";
18104
19731
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
18105
19732
  this.trigger.focus();
@@ -18198,19 +19825,194 @@ class AuroDropdown extends AuroElement$2 {
18198
19825
  * @private
18199
19826
  */
18200
19827
  updateFocusTrap() {
19828
+ // Always clean up existing handlers/traps before setting up new ones
19829
+ // to prevent duplicate listeners on repeated calls.
19830
+ if (this._bibTabHandler) {
19831
+ this.removeEventListener('keydown', this._bibTabHandler);
19832
+ this._bibTabHandler = undefined;
19833
+ }
19834
+
19835
+ if (this.focusTrap) {
19836
+ this.focusTrap.disconnect();
19837
+ this.focusTrap = undefined;
19838
+ }
19839
+
18201
19840
  if (this.isPopoverVisible) {
18202
19841
  if (!this.isBibFullscreen) {
18203
- // Desktop: show() doesn't trap focus, so use FocusTrap
18204
- this.focusTrap = new FocusTrap(this.bibContent);
18205
- this.focusTrap.focusFirstElement();
19842
+ if (this.desktopModal) {
19843
+ // Desktop modal: trap focus only within the bib content.
19844
+ // Can't use FocusTrap on the bib element because keydown events
19845
+ // from slotted content bubble through the dropdown host (light DOM),
19846
+ // not through the bib (shadow projection target). Using FocusTrap
19847
+ // on the dropdown would include the trigger in the tab cycle.
19848
+ // Instead, listen for Tab on the dropdown and manually wrap focus
19849
+ // within the bib's focusable elements.
19850
+ this._bibTabHandler = (event) => {
19851
+ if (event.key !== 'Tab') {
19852
+ return;
19853
+ }
19854
+
19855
+ // Collect focusable elements from the bib content.
19856
+ const focusables = getFocusableElements(this.bibContent);
19857
+
19858
+ // Fallback: try from slotted content directly
19859
+ if (!focusables.length) {
19860
+ const slot = this.shadowRoot.querySelector('.slotContent slot');
19861
+ const assignedNodes = slot.assignedNodes({ flatten: true });
19862
+
19863
+ for (const node of assignedNodes) {
19864
+ if (node.nodeType === Node.ELEMENT_NODE) {
19865
+ focusables.push(...getFocusableElements(node));
19866
+ }
19867
+ }
19868
+ }
19869
+
19870
+ if (!focusables.length) {
19871
+ return;
19872
+ }
19873
+
19874
+ event.preventDefault();
19875
+
19876
+ const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
19877
+
19878
+ // Walk the active element chain through shadow roots
19879
+ const actives = this._getActiveElements();
19880
+
19881
+ let idx = focusables.findIndex((el) => actives.includes(el));
19882
+
19883
+ if (idx === -1) { // eslint-disable-line no-magic-numbers
19884
+ // Focus is not on a known element — move to first/last
19885
+ idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
19886
+ }
19887
+
19888
+ // Try each element in order, skipping any that can't receive focus
19889
+ // (e.g. hidden elements, elements in collapsed sections)
19890
+ for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
19891
+ let nextIdx = idx + direction;
19892
+
19893
+ // Wrap around
19894
+ if (nextIdx < 0) {
19895
+ nextIdx = focusables.length - 1;
19896
+ } else if (nextIdx >= focusables.length) {
19897
+ nextIdx = 0;
19898
+ }
19899
+
19900
+ focusables[nextIdx].focus();
19901
+
19902
+ // Verify focus actually moved to the target
19903
+ const newActives = this._getActiveElements();
19904
+
19905
+ if (newActives.includes(focusables[nextIdx])) {
19906
+ return;
19907
+ }
19908
+
19909
+ // Focus didn't stick — skip this element and try the next
19910
+ idx = nextIdx;
19911
+ }
19912
+ };
19913
+ this.addEventListener('keydown', this._bibTabHandler);
19914
+
19915
+ // Move initial focus into the bib content, matching FocusTrap behavior
19916
+ requestAnimationFrame(() => {
19917
+ const focusables = getFocusableElements(this.bibContent);
19918
+ if (focusables.length) {
19919
+ focusables[0].focus();
19920
+ }
19921
+ });
19922
+ } else {
19923
+ // Normal desktop: use FocusTrap on the bib element
19924
+ this.focusTrap = new FocusTrap(this.bibContent);
19925
+ this.focusTrap.focusFirstElement();
19926
+ }
18206
19927
  }
18207
19928
  // Fullscreen: showModal() provides native focus trapping
19929
+ }
19930
+ }
19931
+
19932
+ /**
19933
+ * Returns the chain of active (focused) elements through shadow roots.
19934
+ * @private
19935
+ * @returns {Array<HTMLElement>}
19936
+ */
19937
+ _getActiveElements() {
19938
+ let { activeElement } = document;
19939
+ const actives = [activeElement];
19940
+
19941
+ while (activeElement?.shadowRoot?.activeElement) {
19942
+ activeElement = activeElement.shadowRoot.activeElement;
19943
+ actives.push(activeElement);
19944
+ }
19945
+
19946
+ return actives;
19947
+ }
19948
+
19949
+ /**
19950
+ * Sets `inert` on sibling elements of the dropdown's top-level host
19951
+ * so that content outside the dropdown is not interactive while the modal is open.
19952
+ * Walks up through shadow DOM boundaries to find the outermost host element
19953
+ * in the light DOM, then sets `inert` on siblings at each ancestor level
19954
+ * to ensure all page content outside the host subtree is inert.
19955
+ * @private
19956
+ */
19957
+ _setPageInert() {
19958
+ if (this._inertSiblings) {
18208
19959
  return;
18209
19960
  }
18210
19961
 
18211
- if (this.focusTrap) {
18212
- this.focusTrap.disconnect();
18213
- this.focusTrap = undefined;
19962
+ this._inertSiblings = [];
19963
+
19964
+ // Walk up through shadow DOM boundaries to find the topmost host
19965
+ // element in the light DOM. For example, if this dropdown is inside
19966
+ // auro-datepicker's shadow DOM, we walk up to the datepicker element
19967
+ // so we set inert on its siblings — not on the datepicker itself.
19968
+ let host = this;
19969
+ while (host.getRootNode() instanceof ShadowRoot) {
19970
+ host = host.getRootNode().host;
19971
+ }
19972
+
19973
+ // Walk up the ancestor chain, inerting siblings at each level
19974
+ // to ensure the entire page outside the host subtree is inert.
19975
+ // Uses a reference counter (data-auro-inert-count) so multiple
19976
+ // simultaneous modal dropdowns share inert state safely.
19977
+ let current = host;
19978
+ while (current.parentElement) {
19979
+ const parent = current.parentElement;
19980
+ for (const sibling of parent.children) {
19981
+ if (sibling !== current) {
19982
+ const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
19983
+ if (count === 0) {
19984
+ sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
19985
+ }
19986
+ sibling.dataset.auroInertCount = String(count + 1);
19987
+ sibling.inert = true;
19988
+ this._inertSiblings.push(sibling);
19989
+ }
19990
+ }
19991
+ current = parent;
19992
+ }
19993
+ }
19994
+
19995
+ /**
19996
+ * Restores `inert` state on siblings that were tracked by `_setPageInert`.
19997
+ * Uses reference counting so inert is only cleared when the last modal
19998
+ * dropdown releases a given element. Preserves the original inert state
19999
+ * so externally-inerted elements are not inadvertently re-enabled.
20000
+ * @private
20001
+ */
20002
+ _clearPageInert() {
20003
+ if (this._inertSiblings) {
20004
+ for (const sibling of this._inertSiblings) {
20005
+ const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
20006
+ if (count <= 0) {
20007
+ const wasInert = sibling.dataset.auroInertWas === 'true';
20008
+ delete sibling.dataset.auroInertCount;
20009
+ delete sibling.dataset.auroInertWas;
20010
+ sibling.inert = wasInert;
20011
+ } else {
20012
+ sibling.dataset.auroInertCount = String(count);
20013
+ }
20014
+ }
20015
+ this._inertSiblings = undefined;
18214
20016
  }
18215
20017
  }
18216
20018
 
@@ -18449,6 +20251,7 @@ class AuroDropdown extends AuroElement$2 {
18449
20251
  shape="${this.shape}"
18450
20252
  ?data-show="${this.isPopoverVisible}"
18451
20253
  ?isfullscreen="${this.isBibFullscreen}"
20254
+ ?desktopmodal="${this.desktopModal}"
18452
20255
  .dialogLabel="${this.bibDialogLabel}"
18453
20256
  ${n(this.bibElement)}
18454
20257
  >
@@ -30660,7 +32463,7 @@ let AuroHelpText$1 = class AuroHelpText extends i$1 {
30660
32463
  }
30661
32464
  };
30662
32465
 
30663
- var formkitVersion = '202606081518';
32466
+ var formkitVersion = '202606081904';
30664
32467
 
30665
32468
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
30666
32469
  // See LICENSE in the project root for license information.
@@ -32005,26 +33808,62 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
32005
33808
  // components/datepicker/docs/partials/keyboardBehavior.md
32006
33809
  //
32007
33810
  // Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
32008
- // - The bib opens and closes via pointer/touch interaction only.
32009
33811
  // - Escape closes the bib and prevents the event from reaching parent containers.
33812
+ // - Enter opens the bib when it is closed (trigger input only, not clear button).
33813
+ // - Space opens the bib when it is closed (trigger input only, not clear button).
32010
33814
  // - Tab uses the browser's default tabindex sequence across trigger controls.
32011
- // - Enter and Space do not open or close the bib.
32012
33815
  //
32013
33816
  // This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
32014
33817
  // added, handlers should go here following the same strategy pattern used by
32015
33818
  // auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
32016
33819
  const datepickerKeyboardStrategy = {
32017
- Escape(component, evt) {
32018
- if (!component.dropdown || !component.dropdown.isPopoverVisible) {
33820
+ Escape(component, evt, ctx) {
33821
+ if (!ctx.isExpanded) {
32019
33822
  return;
32020
33823
  }
32021
33824
 
32022
- // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
32023
- // Because stopPropagation prevents the document-level floatingUI keydown handler from
32024
- // seeing this event, we must also close the dropdown explicitly.
33825
+ // Stop propagation so parent containers (auro-dialog, auro-drawer)
33826
+ // don't also react to Escape.
32025
33827
  evt.stopPropagation();
33828
+ evt.preventDefault();
33829
+
33830
+ component.hideBib();
33831
+ },
33832
+
33833
+ Enter(component, evt, ctx) {
33834
+ if (ctx.isExpanded) {
33835
+ return;
33836
+ }
33837
+
33838
+ // Only open from the trigger input, not the clear button or other internal elements.
33839
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath()
33840
+ // to find the real origin. The clear button is rendered with class "clearBtn".
33841
+ const path = evt.composedPath();
33842
+ if (path.some(el => el.classList?.contains('clearBtn'))) {
33843
+ return;
33844
+ }
33845
+
33846
+ evt.preventDefault();
33847
+
33848
+ component.dropdown.show();
33849
+ },
33850
+
33851
+ ' '(component, evt, ctx) {
33852
+ if (ctx.isExpanded) {
33853
+ return;
33854
+ }
33855
+
33856
+ // Only open from the trigger input, not the clear button or other internal elements.
33857
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath()
33858
+ // to find the real origin. The clear button is rendered with class "clearBtn".
33859
+ const path = evt.composedPath();
33860
+ if (path.some(el => el.classList?.contains('clearBtn'))) {
33861
+ return;
33862
+ }
32026
33863
 
32027
- component.dropdown.hide();
33864
+ evt.preventDefault();
33865
+
33866
+ component.dropdown.show();
32028
33867
  },
32029
33868
  };
32030
33869
 
@@ -32098,6 +33937,16 @@ class AuroDatePicker extends AuroElement {
32098
33937
  this.required = false;
32099
33938
  this.onDark = false;
32100
33939
  this.range = false;
33940
+ this.rangeLabelStart = 'range start';
33941
+ this.rangeLabelEnd = 'range end';
33942
+ this.rangeLabelBeforeRange = 'before range';
33943
+ this.rangeLabelInRange = 'in range';
33944
+ this.rangeLabelAfterRange = 'after range';
33945
+ this.blackoutDates = [];
33946
+ this.blackoutLabel = 'unavailable';
33947
+ this.navLabelPrevMonth = 'Previous month';
33948
+ this.navLabelNextMonth = 'Next month';
33949
+ this.calendarGridLabel = 'Calendar days of the month';
32101
33950
  this.stacked = false;
32102
33951
  this.noValidate = false;
32103
33952
  this.validity = undefined;
@@ -32213,7 +34062,7 @@ class AuroDatePicker extends AuroElement {
32213
34062
 
32214
34063
  /**
32215
34064
  * Defines whether the component will be on lighter or darker backgrounds.
32216
- * @property {'default', 'inverse'}
34065
+ * @type {'default' | 'inverse'}
32217
34066
  * @default 'default'
32218
34067
  */
32219
34068
  appearance: {
@@ -32231,9 +34080,33 @@ class AuroDatePicker extends AuroElement {
32231
34080
  },
32232
34081
 
32233
34082
  /**
32234
- * The last date that may be displayed in the calendar.
34083
+ * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
34084
+ */
34085
+ blackoutDates: {
34086
+ type: Array,
34087
+ reflect: true
34088
+ },
34089
+
34090
+ /**
34091
+ * Label announced for blackout (disabled but in-range) date cells.
34092
+ */
34093
+ blackoutLabel: {
34094
+ type: String,
34095
+ reflect: true
34096
+ },
34097
+
34098
+ /**
34099
+ * The last date that may be displayed in the calendar.
34100
+ */
34101
+ calendarEndDate: {
34102
+ type: String,
34103
+ reflect: true
34104
+ },
34105
+
34106
+ /**
34107
+ * Accessible label for the calendar grid containing the days of the month.
32235
34108
  */
32236
- calendarEndDate: {
34109
+ calendarGridLabel: {
32237
34110
  type: String,
32238
34111
  reflect: true
32239
34112
  },
@@ -32285,27 +34158,6 @@ class AuroDatePicker extends AuroElement {
32285
34158
  reflect: true
32286
34159
  },
32287
34160
 
32288
- hasFocus: {
32289
- type: Boolean,
32290
- reflect: false,
32291
- },
32292
-
32293
- /**
32294
- * @private
32295
- */
32296
- hasValue: {
32297
- type: Boolean,
32298
- reflect: false,
32299
- },
32300
-
32301
- /**
32302
- * @private
32303
- */
32304
- hasAllValues: {
32305
- type: Boolean,
32306
- reflect: false
32307
- },
32308
-
32309
34161
  /**
32310
34162
  * Specifies the date format. The default is `mm/dd/yyyy`.
32311
34163
  */
@@ -32335,6 +34187,27 @@ class AuroDatePicker extends AuroElement {
32335
34187
  reflect: true
32336
34188
  },
32337
34189
 
34190
+ /**
34191
+ * @private
34192
+ */
34193
+ hasAllValues: {
34194
+ type: Boolean,
34195
+ reflect: false
34196
+ },
34197
+
34198
+ hasFocus: {
34199
+ type: Boolean,
34200
+ reflect: false,
34201
+ },
34202
+
34203
+ /**
34204
+ * @private
34205
+ */
34206
+ hasValue: {
34207
+ type: Boolean,
34208
+ reflect: false,
34209
+ },
34210
+
32338
34211
  /** Exposes inputmode attribute for input. */
32339
34212
  inputmode: {
32340
34213
  type: String,
@@ -32377,6 +34250,13 @@ class AuroDatePicker extends AuroElement {
32377
34250
  reflect: true
32378
34251
  },
32379
34252
 
34253
+ /**
34254
+ * @private
34255
+ */
34256
+ monthFirst: {
34257
+ type: Boolean
34258
+ },
34259
+
32380
34260
  /**
32381
34261
  * Names of all 12 months to render in the calendar.
32382
34262
  * When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
@@ -32386,18 +34266,26 @@ class AuroDatePicker extends AuroElement {
32386
34266
  },
32387
34267
 
32388
34268
  /**
32389
- * If declared, the bib will NOT flip to an alternate position
32390
- * when there isn't enough space in the specified `placement`.
34269
+ * Accessible label for the next month navigation button.
32391
34270
  */
32392
- noFlip: {
32393
- type: Boolean,
34271
+ navLabelNextMonth: {
34272
+ type: String,
32394
34273
  reflect: true
32395
34274
  },
32396
34275
 
32397
34276
  /**
32398
- * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
34277
+ * Accessible label for the previous month navigation button.
32399
34278
  */
32400
- shift: {
34279
+ navLabelPrevMonth: {
34280
+ type: String,
34281
+ reflect: true
34282
+ },
34283
+
34284
+ /**
34285
+ * If declared, the bib will NOT flip to an alternate position
34286
+ * when there isn't enough space in the specified `placement`.
34287
+ */
34288
+ noFlip: {
32401
34289
  type: Boolean,
32402
34290
  reflect: true
32403
34291
  },
@@ -32463,6 +34351,46 @@ class AuroDatePicker extends AuroElement {
32463
34351
  reflect: true
32464
34352
  },
32465
34353
 
34354
+ /**
34355
+ * Label announced for cells after the range (or after start when no end is selected).
34356
+ */
34357
+ rangeLabelAfterRange: {
34358
+ type: String,
34359
+ reflect: true
34360
+ },
34361
+
34362
+ /**
34363
+ * Label announced for cells before the range start.
34364
+ */
34365
+ rangeLabelBeforeRange: {
34366
+ type: String,
34367
+ reflect: true
34368
+ },
34369
+
34370
+ /**
34371
+ * Label announced for the range end date cell.
34372
+ */
34373
+ rangeLabelEnd: {
34374
+ type: String,
34375
+ reflect: true
34376
+ },
34377
+
34378
+ /**
34379
+ * Label announced for cells within the selected range.
34380
+ */
34381
+ rangeLabelInRange: {
34382
+ type: String,
34383
+ reflect: true
34384
+ },
34385
+
34386
+ /**
34387
+ * Label announced for the range start date cell.
34388
+ */
34389
+ rangeLabelStart: {
34390
+ type: String,
34391
+ reflect: true
34392
+ },
34393
+
32466
34394
  /**
32467
34395
  * Dates that the user should have for reference as part of their decision making when selecting a date.
32468
34396
  * This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
@@ -32489,6 +34417,7 @@ class AuroDatePicker extends AuroElement {
32489
34417
 
32490
34418
  /**
32491
34419
  * Custom help text message to display when validity = `customError`.
34420
+ * Also used as the validation message when a blackout date is typed into the input.
32492
34421
  */
32493
34422
  setCustomValidityCustomError: {
32494
34423
  type: String
@@ -32515,6 +34444,14 @@ class AuroDatePicker extends AuroElement {
32515
34444
  type: String
32516
34445
  },
32517
34446
 
34447
+ /**
34448
+ * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
34449
+ */
34450
+ shift: {
34451
+ type: Boolean,
34452
+ reflect: true
34453
+ },
34454
+
32518
34455
  /**
32519
34456
  * Set true to make datepicker stacked style.
32520
34457
  */
@@ -32523,6 +34460,16 @@ class AuroDatePicker extends AuroElement {
32523
34460
  reflect: true
32524
34461
  },
32525
34462
 
34463
+ /**
34464
+ * Indicates whether the datepicker is in a dirty state (has been interacted with).
34465
+ * @private
34466
+ */
34467
+ touched: {
34468
+ type: Boolean,
34469
+ reflect: true,
34470
+ attribute: false
34471
+ },
34472
+
32526
34473
  /**
32527
34474
  * Specifies the `validityState` this element is in.
32528
34475
  */
@@ -32543,16 +34490,6 @@ class AuroDatePicker extends AuroElement {
32543
34490
  */
32544
34491
  valueEnd: {
32545
34492
  type: String
32546
- },
32547
-
32548
- /**
32549
- * Indicates whether the datepicker is in a dirty state (has been interacted with).
32550
- * @private
32551
- */
32552
- touched: {
32553
- type: Boolean,
32554
- reflect: true,
32555
- attribute: false
32556
34493
  }
32557
34494
  };
32558
34495
  }
@@ -32663,7 +34600,7 @@ class AuroDatePicker extends AuroElement {
32663
34600
  /**
32664
34601
  * Common display value wrapper classes.
32665
34602
  * @private
32666
- * @return {Object} - An object containing the common classes for the display value wrapper.
34603
+ * @returns {Object} Class map for Lit's classMap directive.
32667
34604
  */
32668
34605
  get commonDisplayValueWrapperClasses() {
32669
34606
  return {
@@ -32878,6 +34815,74 @@ class AuroDatePicker extends AuroElement {
32878
34815
  }));
32879
34816
  }
32880
34817
 
34818
+ /**
34819
+ * Attempts to focus the active calendar cell using a rAF retry loop.
34820
+ * Shared by both fullscreen and desktop open paths.
34821
+ * @private
34822
+ * @returns {void}
34823
+ */
34824
+ focusActiveCellWhenReady() {
34825
+ const MAX_ATTEMPTS = 20;
34826
+ let attempts = 0;
34827
+
34828
+ const tryFocus = () => {
34829
+ attempts += 1;
34830
+ const allCells = this.calendar.getAllFocusableCells();
34831
+
34832
+ if (!allCells.length && attempts < MAX_ATTEMPTS) {
34833
+ requestAnimationFrame(tryFocus);
34834
+ return;
34835
+ }
34836
+
34837
+ // Compute and mark the active cell
34838
+ if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
34839
+ this.calendar.activeCellDate = this.calendar.computeActiveDate();
34840
+ }
34841
+ if (this.calendar.activeCellDate !== undefined) {
34842
+ this.calendar.setActiveCell(this.calendar.activeCellDate);
34843
+ }
34844
+
34845
+ // If no cell matched (e.g. centralDate month differs from the rendered
34846
+ // range on mobile), fall back to the first rendered enabled cell.
34847
+ let activeCell = allCells.find((cell) => cell.active);
34848
+ if (!activeCell && allCells.length) {
34849
+ const [fallback] = allCells;
34850
+ if (fallback.day) {
34851
+ this.calendar.activeCellDate = fallback.day.date;
34852
+ this.calendar.setActiveCell(this.calendar.activeCellDate);
34853
+ activeCell = allCells.find((cell) => cell.active);
34854
+ }
34855
+ }
34856
+
34857
+ // Focus the calendar grid wrapper (aria-activedescendant handles
34858
+ // the SR announcement for the active cell).
34859
+ if (activeCell) {
34860
+ this.calendar.focusActiveCell();
34861
+
34862
+ // Announce the initial active cell via the live region.
34863
+ // Delay the announcement so it arrives after VoiceOver finishes
34864
+ // speaking the focus-change announcement for the grid wrapper.
34865
+ // Without this delay, VoiceOver drops the live region update
34866
+ // because it's already mid-announcement from the focus move.
34867
+ const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
34868
+ setTimeout(() => {
34869
+ this.calendar.announceSelection(announcement);
34870
+ }, 500);
34871
+
34872
+ // On mobile fullscreen, scroll the month list so the active cell's
34873
+ // month is visible. Without this, the list stays scrolled to the
34874
+ // calendarStartDate month which may be far from the active cell.
34875
+ if (this.dropdown.isBibFullscreen) {
34876
+ this.calendar.scrollToActiveCell();
34877
+ }
34878
+ } else if (attempts < MAX_ATTEMPTS) {
34879
+ requestAnimationFrame(tryFocus);
34880
+ }
34881
+ };
34882
+
34883
+ requestAnimationFrame(tryFocus);
34884
+ }
34885
+
32881
34886
  /**
32882
34887
  * Binds all behavior needed to the dropdown after rendering.
32883
34888
  * @private
@@ -32886,6 +34891,12 @@ class AuroDatePicker extends AuroElement {
32886
34891
  configureDropdown() {
32887
34892
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
32888
34893
 
34894
+ // The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
34895
+ // Prevent the floater's document-level focusin handler from closing the bib
34896
+ // when focus moves from the trigger into the calendar cells (which live inside
34897
+ // a top-layer popover where :focus-within on the dropdown host returns false).
34898
+ this.dropdown.noHideOnThisFocusLoss = true;
34899
+
32889
34900
  // Pass label text to the dropdown bib for accessible dialog naming.
32890
34901
  // Without this, the fullscreen <dialog> has no accessible name and
32891
34902
  // screen readers announce it as just "dialog" with no context.
@@ -32903,6 +34914,23 @@ class AuroDatePicker extends AuroElement {
32903
34914
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
32904
34915
  this.notifyDatepickerToggled();
32905
34916
 
34917
+ if (this.dropdown.isPopoverVisible) {
34918
+ // Reset calendar focus state so it recomputes from the current selection.
34919
+ // Without this, reopening after navigating to a month without a selected
34920
+ // date leaves activeCellDate pointing at a cell in a different month than
34921
+ // what centralDate renders, causing all cells to have tabindex="-1".
34922
+ this.calendar.activeCellDate = null;
34923
+
34924
+ // Show the month containing the selected date (or today) instead of
34925
+ // whichever month the user last navigated to.
34926
+ // Respect consumer-provided centralDate/calendarStartDate if no value is set.
34927
+ if (this.valueObject) {
34928
+ this.centralDate = this.value;
34929
+ } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
34930
+ this.centralDate = new Date();
34931
+ }
34932
+ }
34933
+
32906
34934
  // This forces the calendar to render when the dropdown is opened.
32907
34935
  // It is not rendered by default
32908
34936
  this.calendar.visible = this.dropdown.isPopoverVisible;
@@ -32935,12 +34963,23 @@ class AuroDatePicker extends AuroElement {
32935
34963
  bibEl.open(true);
32936
34964
 
32937
34965
  doubleRaf(() => {
32938
- this.calendar.focusCloseButton();
34966
+ this.focusActiveCellWhenReady();
32939
34967
  });
32940
34968
  }
32941
34969
  });
32942
34970
 
32943
34971
  guardTouchPassthrough(this.shadowRoot.querySelector('.calendarWrapper'));
34972
+ } else {
34973
+ // Desktop (non-fullscreen) modal: make the trigger inert so users
34974
+ // cannot interact with the input while the modal bib is open.
34975
+ if (this.dropdown.desktopModal) {
34976
+ this.dropdown.trigger.inert = true;
34977
+ }
34978
+
34979
+ // Desktop (non-fullscreen): focus the active calendar cell.
34980
+ this.dropdown.updateComplete.then(() => {
34981
+ this.focusActiveCellWhenReady();
34982
+ });
32944
34983
  }
32945
34984
  } else {
32946
34985
  // Always clear the inert flag. Only restore focus to the input when the datepicker
@@ -32985,14 +35024,35 @@ class AuroDatePicker extends AuroElement {
32985
35024
  if (bibEl && this.dropdown.isPopoverVisible) {
32986
35025
  bibEl.close();
32987
35026
  bibEl.open(true);
35027
+ }
35028
+
35029
+ // Re-render the calendar with the new fullscreen layout,
35030
+ // then restore focus after the re-render completes.
35031
+ this.calendar.isFullscreen = true;
35032
+ this.calendar.updateComplete.then(() => {
32988
35033
  doubleRaf(() => {
32989
- this.calendar.focusCloseButton();
35034
+ this.focusActiveCellWhenReady();
32990
35035
  });
32991
- }
35036
+ });
32992
35037
  });
32993
35038
  } else if (!this.dropdown.isBibFullscreen) {
32994
- // Switching from fullscreen to floating — restore trigger accessibility
32995
- this.dropdown.trigger.inert = false;
35039
+ // Switching from fullscreen to floating — only restore trigger accessibility
35040
+ // when the bib is closed or the desktop layout is not a modal. A desktopModal
35041
+ // dropdown keeps the trigger inert while open, matching the desktop-open path.
35042
+ if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
35043
+ this.dropdown.trigger.inert = false;
35044
+ }
35045
+
35046
+ // Re-render the calendar with the desktop layout,
35047
+ // then restore focus after the re-render completes.
35048
+ this.dropdown.updateComplete.then(() => {
35049
+ this.calendar.isFullscreen = false;
35050
+ this.calendar.updateComplete.then(() => {
35051
+ doubleRaf(() => {
35052
+ this.focusActiveCellWhenReady();
35053
+ });
35054
+ });
35055
+ });
32996
35056
  }
32997
35057
  });
32998
35058
  }
@@ -33180,14 +35240,8 @@ class AuroDatePicker extends AuroElement {
33180
35240
 
33181
35241
  if (onEndValue) {
33182
35242
  this.valueEnd = newDate;
33183
- if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
33184
- this.focus('startDate');
33185
- }
33186
35243
  } else {
33187
35244
  this.value = newDate;
33188
- if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
33189
- this.focus('endDate');
33190
- }
33191
35245
  }
33192
35246
  }
33193
35247
  }
@@ -33227,6 +35281,23 @@ class AuroDatePicker extends AuroElement {
33227
35281
  this.resetInputs();
33228
35282
  }
33229
35283
 
35284
+ /**
35285
+ * Checks whether a formatted date string matches a blackout date.
35286
+ * @private
35287
+ * @param {string} dateStr - A date string in the component's configured format.
35288
+ * @returns {boolean} True if the date is in the blackoutDates list.
35289
+ */
35290
+ isBlackoutDate(dateStr) {
35291
+ if (!Array.isArray(this.blackoutDates) ||
35292
+ this.blackoutDates.length === 0 ||
35293
+ !dateStr ||
35294
+ !dateFormatter$1.isValidDate(dateStr)) {
35295
+ return false;
35296
+ }
35297
+
35298
+ return this.blackoutDates.includes(dateStr);
35299
+ }
35300
+
33230
35301
  /**
33231
35302
  * Validates value.
33232
35303
  * @param {boolean} [force=false] - Whether to force validation.
@@ -33238,6 +35309,23 @@ class AuroDatePicker extends AuroElement {
33238
35309
  }
33239
35310
 
33240
35311
  this.validation.validate(this, force);
35312
+
35313
+ // After standard validation, check blackout dates for typed input
35314
+ if (this.validity !== 'customError' &&
35315
+ (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
35316
+ const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
35317
+ this.validity = 'customError';
35318
+ this.errorMessage = msg;
35319
+
35320
+ this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
35321
+ bubbles: true,
35322
+ composed: true,
35323
+ detail: {
35324
+ validity: this.validity,
35325
+ message: this.errorMessage
35326
+ }
35327
+ }));
35328
+ }
33241
35329
  }
33242
35330
 
33243
35331
  /**
@@ -33265,7 +35353,7 @@ class AuroDatePicker extends AuroElement {
33265
35353
  }
33266
35354
 
33267
35355
  /**
33268
- * lifecycle method to check if the locale is valid.
35356
+ * Lifecycle method to check if the locale is valid.
33269
35357
  * @ignore
33270
35358
  * @param {Map} changedProperties - The map of properties that have changed since the last update.
33271
35359
  * @returns {void}
@@ -33276,17 +35364,20 @@ class AuroDatePicker extends AuroElement {
33276
35364
  const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
33277
35365
  this._validLocale = supported.length > 0 ? this.locale : 'en-US';
33278
35366
  } catch {
33279
- console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`);
35367
+ console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
33280
35368
  this._validLocale = 'en-US';
33281
35369
  }
33282
35370
 
33283
- // if there was not an explicit format set, or the format set matches the previous locale's default format,
33284
- // update to the new locale's default format
33285
35371
  const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
33286
35372
  if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
33287
35373
  this.format = getDateFormatFromLocale$1(this._validLocale);
33288
35374
  }
33289
35375
  }
35376
+
35377
+ if (changedProperties.has('referenceDates') && this.calendar) {
35378
+ this.calendar.requestUpdate();
35379
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
35380
+ }
33290
35381
  }
33291
35382
 
33292
35383
  updated(changedProperties) {
@@ -33316,17 +35407,18 @@ class AuroDatePicker extends AuroElement {
33316
35407
  if (changedProperties.has('value')) {
33317
35408
 
33318
35409
  // Change the calendar focus to the first valid date value only the first time the value is set
33319
- if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
33320
- if (!this.dropdown.isPopoverVisible) {
33321
- this.calendarFocusDate = this.value;
35410
+ if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
35411
+ this.calendarFocusDate = this.value;
33322
35412
 
33323
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
33324
- this.forceScrollOnNextMobileCalendarRender = true;
33325
- }
35413
+ // Let the calendar know to scroll to the focus date when it is next rendered on mobile
35414
+ this.forceScrollOnNextMobileCalendarRender = true;
33326
35415
  }
33327
35416
 
33328
35417
  if (this.cellClickActive) {
33329
35418
  this.cellClickActive = false;
35419
+ this.wasCellClick = true;
35420
+ } else {
35421
+ this.wasCellClick = false;
33330
35422
  }
33331
35423
 
33332
35424
  if (this.value && dateFormatter$1.isValidDate(this.value)) {
@@ -33344,13 +35436,48 @@ class AuroDatePicker extends AuroElement {
33344
35436
 
33345
35437
  // update the inputs — auro-input accepts ISO directly
33346
35438
  if (this.inputList[0].value !== this.value) {
33347
- this.inputList[0].value = this.value || '';
35439
+ if (this.value) {
35440
+ this.inputList[0].value = this.value;
35441
+ } else {
35442
+ this.inputList[0].value = '';
35443
+ }
35444
+ }
35445
+
35446
+ if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
35447
+ // Skip centralDate update when user clicked a cell in range mode
35448
+ // to prevent the displayed months from shifting
35449
+ this.centralDate = this.value;
35450
+ //TODO: TEST THIS CHANGE
35451
+ // this.calendarRenderUtil.updateCentralDate(this, this.value);
33348
35452
  }
33349
35453
 
33350
35454
  this.setHasValue();
33351
35455
  }
33352
35456
 
35457
+ if (changedProperties.has('blackoutDates')) {
35458
+ // Force calendar cells to re-render with updated blackout state.
35459
+ // requestUpdate on the calendar alone is insufficient because cells
35460
+ // don't receive blackoutDates as a bound property. Dispatching the
35461
+ // slot content event triggers handleSlotContent → requestUpdate on each cell.
35462
+ if (this.calendar) {
35463
+ this.calendar.requestUpdate();
35464
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
35465
+ }
35466
+
35467
+ // Re-run validation so that a previously valid value that now falls on
35468
+ // a blackout date is flagged, and vice versa.
35469
+ if (this.value || this.valueEnd) {
35470
+ this.validate();
35471
+ }
35472
+ }
35473
+
33353
35474
  if (changedProperties.has('valueEnd') && this.inputList[1]) {
35475
+ if (this.cellClickActive) {
35476
+ this.cellClickActive = false;
35477
+ this.wasCellClick = true;
35478
+ } else {
35479
+ this.wasCellClick = false;
35480
+ }
33354
35481
 
33355
35482
  // update the calendar
33356
35483
  if (this.valueEndObject) {
@@ -33368,7 +35495,19 @@ class AuroDatePicker extends AuroElement {
33368
35495
 
33369
35496
  // update the inputs — auro-input accepts ISO directly
33370
35497
  if (this.inputList[1].value !== this.valueEnd) {
33371
- this.inputList[1].value = this.valueEnd || '';
35498
+ if (this.valueEnd) {
35499
+ this.inputList[1].value = this.valueEnd;
35500
+ } else {
35501
+ this.inputList[1].value = '';
35502
+ }
35503
+ }
35504
+
35505
+ if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
35506
+ // Skip centralDate update when user clicked a cell in range mode
35507
+ // to prevent the displayed months from shifting
35508
+ this.centralDate = this.valueEnd;
35509
+ // TODO: TEST THIS CHANGE
35510
+ // this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
33372
35511
  }
33373
35512
 
33374
35513
  this.validate();
@@ -33411,16 +35550,14 @@ class AuroDatePicker extends AuroElement {
33411
35550
  this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
33412
35551
  }
33413
35552
 
33414
- if (!changedProperties.has('value') && this.valueObject) {
33415
- if (this.minDateObject > this.valueObject) {
33416
- this.value = undefined;
33417
-
33418
- if (this.range && this.valueEnd) {
33419
- this.valueEnd = undefined;
33420
- }
35553
+ if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
35554
+ this.value = undefined;
33421
35555
 
33422
- this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
35556
+ if (this.range && this.valueEnd) {
35557
+ this.valueEnd = undefined;
33423
35558
  }
35559
+
35560
+ this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
33424
35561
  }
33425
35562
 
33426
35563
  // When there is no focusDate and no value, set the focusDate to the minDate
@@ -33451,16 +35588,14 @@ class AuroDatePicker extends AuroElement {
33451
35588
  }
33452
35589
  }
33453
35590
 
33454
- if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
33455
- if (this.maxDateObject < this.valueObject) {
33456
- this.value = undefined;
33457
-
33458
- if (this.range && this.valueEnd) {
33459
- this.valueEnd = undefined;
33460
- }
35591
+ if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
35592
+ this.value = undefined;
33461
35593
 
33462
- this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
35594
+ if (this.range && this.valueEnd) {
35595
+ this.valueEnd = undefined;
33463
35596
  }
35597
+
35598
+ this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
33464
35599
  }
33465
35600
 
33466
35601
  this.calendar.requestUpdate();
@@ -33518,6 +35653,7 @@ class AuroDatePicker extends AuroElement {
33518
35653
  }
33519
35654
 
33520
35655
  firstUpdated() {
35656
+
33521
35657
  // Add the tag name as an attribute if it is different than the component name
33522
35658
  this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
33523
35659
 
@@ -33800,7 +35936,7 @@ class AuroDatePicker extends AuroElement {
33800
35936
  /**
33801
35937
  * Handles click on the clear button.
33802
35938
  * @private
33803
- * @param {MouseEvent} event - The click event object.
35939
+ * @param {MouseEvent} event - The mouse event from the clear button click.
33804
35940
  * @returns {void}
33805
35941
  */
33806
35942
  handleClearClick(event) {
@@ -33948,7 +36084,7 @@ class AuroDatePicker extends AuroElement {
33948
36084
  // Base HTML render() handles dropdown and calendar bib
33949
36085
  return u$a`
33950
36086
  <!-- Hidden slot for clear button aria-label -->
33951
- <slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
36087
+ <slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
33952
36088
 
33953
36089
  <${this.dropdownTag}
33954
36090
  appearance="${this.onDark ? 'inverse' : this.appearance}"
@@ -33965,6 +36101,7 @@ class AuroDatePicker extends AuroElement {
33965
36101
  .shape="${this.shape}"
33966
36102
  .size="${this.size}"
33967
36103
  class="${e$4(dropdownElementClassMap)}"
36104
+ desktopModal
33968
36105
  disableEventShow
33969
36106
  for="dropdownMenu"
33970
36107
  part="dropdown"
@@ -33984,10 +36121,97 @@ class AuroDatePicker extends AuroElement {
33984
36121
  }
33985
36122
  }
33986
36123
 
36124
+ function blackoutLabelExample() {
36125
+ const blackoutDP = document.querySelector('#blackoutLabelExample');
36126
+
36127
+ function formatISO(date) {
36128
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
36129
+ const dd = String(date.getDate()).padStart(2, '0');
36130
+ return `${date.getFullYear()}-${mm}-${dd}`;
36131
+ }
36132
+
36133
+ function setup() {
36134
+ const today = new Date();
36135
+ today.setHours(0, 0, 0, 0);
36136
+
36137
+ // Calendar starts 6 months in the future
36138
+ const startDate = new Date(today);
36139
+ startDate.setMonth(today.getMonth() + 6);
36140
+
36141
+ // Calendar ends 12 months in the future
36142
+ const endDate = new Date(today);
36143
+ endDate.setMonth(today.getMonth() + 12);
36144
+
36145
+ // Min date is 2 months after the start date
36146
+ const minDate = new Date(startDate);
36147
+ minDate.setMonth(startDate.getMonth() + 2);
36148
+
36149
+ // Max date is 75 days after min date
36150
+ const maxDate = new Date(minDate);
36151
+ maxDate.setDate(minDate.getDate() + 75);
36152
+
36153
+ blackoutDP.setAttribute('calendarStartDate', formatISO(startDate));
36154
+ blackoutDP.setAttribute('calendarEndDate', formatISO(endDate));
36155
+ blackoutDP.setAttribute('minDate', formatISO(minDate));
36156
+ blackoutDP.setAttribute('maxDate', formatISO(maxDate));
36157
+
36158
+ // Generate all dates within the min/max range
36159
+ const blackoutDates = [];
36160
+
36161
+ for (let d = new Date(minDate); d <= maxDate; d.setDate(d.getDate() + 1)) {
36162
+ const current = new Date(d);
36163
+ const mm = String(current.getMonth() + 1).padStart(2, '0');
36164
+ const dd = String(current.getDate()).padStart(2, '0');
36165
+ const yyyy = current.getFullYear();
36166
+ const slotDateStr = `${mm}_${dd}_${yyyy}`;
36167
+
36168
+ // Mark every 3rd date as blackout (deterministic pattern)
36169
+ const dayOfMonth = current.getDate();
36170
+ const isSoldOut = dayOfMonth % 3 === 0;
36171
+
36172
+ if (isSoldOut) {
36173
+ blackoutDates.push(`${yyyy}-${mm}-${dd}`);
36174
+
36175
+ const popover = document.createElement('span');
36176
+ popover.setAttribute('slot', `popover_${slotDateStr}`);
36177
+ popover.textContent = 'There are no tickets available for this date.';
36178
+ blackoutDP.appendChild(popover);
36179
+ } else {
36180
+ // Use a fixed price based on day of month for deterministic output
36181
+ const price = 150 + (dayOfMonth * 17) % 400;
36182
+
36183
+ const dateSlot = document.createElement('span');
36184
+ dateSlot.setAttribute('slot', `date_${slotDateStr}`);
36185
+ dateSlot.textContent = `$${price}`;
36186
+ blackoutDP.appendChild(dateSlot);
36187
+ }
36188
+ }
36189
+
36190
+ blackoutDP.blackoutDates = blackoutDates;
36191
+ }
36192
+
36193
+ setup();
36194
+ }
36195
+
33987
36196
  AuroDatePicker.register(); // registering to auro-datepicker
33988
36197
  AuroDatePicker.register('custom-datepicker');
33989
36198
 
33990
36199
  function initExamples(initCount) {
36200
+ initCount = initCount || 0;
36201
+
36202
+ try {
36203
+ // Only run when the demo element exists on the current page
36204
+ if (document.querySelector('#blackoutLabelExample')) {
36205
+ blackoutLabelExample();
36206
+ }
36207
+ } catch {
36208
+ if (initCount <= 20) {
36209
+ // setTimeout handles issue where content is sometimes loaded after the functions get called
36210
+ setTimeout(() => {
36211
+ initExamples(initCount + 1);
36212
+ }, 100);
36213
+ }
36214
+ }
33991
36215
  }
33992
36216
 
33993
36217
  export { initExamples };