@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
@@ -1,6 +1,6 @@
1
1
  import { unsafeStatic, literal, html as html$1 } from 'lit/static-html.js';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
- import { html, css, LitElement } from 'lit';
3
+ import { html, css, LitElement, nothing } from 'lit';
4
4
  import { property } from 'lit/decorators.js';
5
5
  import { ifDefined } from 'lit/directives/if-defined.js';
6
6
  import { createRef, ref } from 'lit/directives/ref.js';
@@ -10595,6 +10595,7 @@ class UtilitiesCalendarRender {
10595
10595
  updateCentralDate(elem, date) {
10596
10596
  // if date is already iso formatted string, we can skip the conversion and validation step
10597
10597
  if (typeof date === 'string' && dateFormatter$1.isValidDate(date)) {
10598
+ // eslint-disable-next-line
10598
10599
  elem.centralDate = date.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-01'); // Set to first of the month
10599
10600
  return;
10600
10601
  }
@@ -10679,13 +10680,10 @@ class UtilitiesCalendarRender {
10679
10680
  // 2. Start by assuming we can render the max number of months.
10680
10681
  let calendarCount = maxRenderableMonths;
10681
10682
 
10682
- // 3. If we didn't get a count early, restrict based on min/max date.
10683
+ // 3. If maximumRenderableMonths() returns 0 (e.g. an invalid/empty defined range),
10684
+ // fall back to the min/max date range so something is rendered.
10683
10685
  if (!calendarCount && elem.minDate && elem.maxDate) {
10684
- const monthsInRange = this.util.monthDiff(dateFormatter$1.stringToDateInstance(elem.minDate), dateFormatter$1.stringToDateInstance(elem.maxDate));
10685
-
10686
- if (monthsInRange < maxRenderableMonths) {
10687
- calendarCount = monthsInRange;
10688
- }
10686
+ calendarCount = this.util.monthDiff(elem.minDateObject, elem.maxDateObject);
10689
10687
  }
10690
10688
 
10691
10689
  if (elem.numCalendars !== calendarCount) {
@@ -10733,7 +10731,6 @@ class UtilitiesCalendarRender {
10733
10731
  .max="${elem.max}"
10734
10732
  ?noRange="${elem.noRange}"
10735
10733
  .monthFirst="${elem.monthFirst}"
10736
- .hoveredDate="${elem.hoveredDate}"
10737
10734
  .dateTo="${elem.dateTo}"
10738
10735
  .dateFrom="${elem.dateFrom}"
10739
10736
  .locale="${elem.locale}"
@@ -10766,11 +10763,11 @@ var snowflakeStyle = css`:host([layout*=snowflake]) [auro-input]{flex:1;text-ali
10766
10763
 
10767
10764
  var snowflakeColors = css`:host([layout=snowflake]) [auro-dropdown]:not(:is([error],.hasFocus)){--ds-auro-dropdown-trigger-border-color: transparent}`;
10768
10765
 
10769
- var styleCss$7 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;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:""}`;
10766
+ var styleCss$7 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{--calendar-width: 336px;--mobile-footer-height: 150px;--mobile-header-height: 68px;--desktop-footer-height: 80px;height:100vh;height:100dvh}.calendars{display:flex;flex-direction:row}.calendars:focus{outline:none}.calendarNavButtons{position:absolute;z-index:1;top:var(--ds-size-200, 1rem);right:var(--ds-size-50, 0.25rem);left:var(--ds-size-50, 0.25rem)}.calendarNavBtn{display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.prevMonth,.nextMonth{position:absolute;top:0}.prevMonth{left:0}.nextMonth{right:0}.headerActions{padding:0 var(--ds-size-200, 1rem)}.mobileHeader{width:100%;height:var(--mobile-header-height);z-index:1;align-items:center;flex-direction:row}.headerDateFrom,.headerDateTo{display:flex;height:var(--mobile-header-height);flex:1;flex-direction:column;justify-content:center;padding:0 var(--ds-size-150, 0.75rem) 0 var(--ds-size-200, 1rem)}.mobileDateLabel{padding:var(--ds-size-25, 0.125rem) 0}.mobileFooter{display:none;width:100%;align-items:flex-end;flex-direction:column;justify-content:flex-end}.mobileFooterActions{position:relative;bottom:0;left:50%;display:none;width:calc(100% - var(--ds-size-200, 1rem)*2);align-items:flex-end;flex-direction:column;justify-content:flex-end;padding:var(--ds-size-150) calc(var(--ds-size-200, 1rem));transform:translateX(-50%)}.mobileFooterActions auro-button{width:100%}.calendarWrapper.hasFooter{padding-bottom:var(--desktop-footer-height)}:host([isfullscreen]){width:100%;max-height:100dvh;overflow:hidden}:host([isfullscreen]) .prevMonth,:host([isfullscreen]) .nextMonth{display:none}:host([isfullscreen]) .mobileHeader,:host([isfullscreen]) .mobileFooter,:host([isfullscreen]) .mobileFooterActions{display:flex}:host([isfullscreen]) .calendarWrapper{display:flex;flex-direction:column}:host([isfullscreen]) .calendars{display:flex;flex-direction:column;flex:1;align-items:center;width:100%;overscroll-behavior:contain}:host([isfullscreen]) .calendars:after{display:block;width:100%;height:var(--mobile-footer-height);content:""}.sr-only{position:absolute;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap}`;
10770
10767
 
10771
10768
  var colorCss$7 = css`.calendarNavBtn{border-color:var(--ds-auro-calendar-nav-btn-border-color);background-color:var(--ds-auro-calendar-nav-btn-container-color);color:var(--ds-auro-calendar-nav-btn-chevron-color)}.calendarNavBtn:hover{--ds-auro-calendar-nav-btn-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:focus{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}.calendarNavBtn:active{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a);box-shadow:inset 0 0 0 1px var(--ds-auro-calendar-nav-btn-border-color)}.mobileHeader{background-color:var(--ds-auro-calendar-mobile-header-container-color)}.mobileDateLabel{color:var(--ds-auro-calendar-mobile-header-text-color)}:host(:not([noRange])) .headerDateTo:after{background-color:var(--ds-auro-calendar-mobile-header-divider-color)}::slotted([slot="bib.fullscreen.fromStr"]),::slotted([slot=mobileDateToStr]){color:var(--ds-auro-datepicker-placeholder-color)}@media screen and (max-width: 576px){.calendarNavBtn{--ds-auro-calendar-nav-btn-border-color: var(--ds-basic-color-brand-primary, #01426a)}}`;
10772
10769
 
10773
- var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem)}}@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%}`;
10770
+ var styleCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}:host{position:relative;display:block;width:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));margin:0 var(--ds-size-200, 1rem)}@media screen and (min-width: 576px){:host{width:336px;padding:var(--ds-size-200, 1rem) var(--ds-size-200, 1rem) 0}}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{position:absolute;top:var(--ds-size-200, 1rem);right:calc(-1*var(--ds-size-200, 1rem));height:calc(100% - var(--ds-size-200, 1rem) - var(--ds-size-200, 1rem));display:block;width:1px;content:""}}.header{display:flex;height:var(--ds-size-500, 2.5rem);margin-bottom:var(--ds-size-150, 0.75rem);align-items:center;flex-direction:row;text-align:center}.headerTitle{display:flex;align-items:center;flex:1;flex-direction:row;justify-content:center}.headerTitle div:first-child{margin-right:var(--ds-size-100, 0.5rem)}.calendarNavBtn{position:relative;display:flex;width:var(--ds-size-500, 2.5rem);height:var(--ds-size-500, 2.5rem);align-items:center;justify-content:center;border-width:1px;border-style:solid;border-radius:50%;cursor:pointer}.table{width:100%;border-collapse:collapse}.thead{margin-bottom:var(--ds-size-100, 0.5rem)}.th{display:flex;flex:1;align-items:center;justify-content:center}.th abbr{text-decoration:none}.tbody{width:100%;transition:all 0ms;transform:translateX(0)}@media screen and (min-width: 576px){.tbody{height: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)}`;
10774
10771
 
10775
10772
  var colorCss$6 = css`:focus:not(:focus-visible){outline:3px solid transparent}:host{background-color:var(--ds-auro-calendar-month-container-color)}@media screen and (min-width: 576px){:host(:not(:last-of-type)):after{background-color:var(--ds-auro-calendar-month-divider-color)}}.header{color:var(--ds-auro-calendar-month-header-color)}`;
10776
10773
 
@@ -11525,41 +11522,45 @@ __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "dayN
11525
11522
  __decorate([property({ type: Array })], RangeDatepickerCalendar.prototype, "daysOfMonth", void 0);
11526
11523
  AuroLibraryRuntimeUtils$5.prototype.registerComponent('wc-range-datepicker-calendar', RangeDatepickerCalendar);
11527
11524
 
11528
- var styleCss$5 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width: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}}`;
11525
+ var styleCss$5 = css`.body-default{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-default-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-default-emphasized-font-size, 1rem);line-height:var(--wcss-body-default-emphasized-line-height, 1.5rem)}.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-lg-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-lg-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-lg-emphasized-font-size, 1.125rem);line-height:var(--wcss-body-lg-emphasized-line-height, 1.625rem)}.body-sm{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-sm-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-sm-emphasized-font-size, 0.875rem);line-height:var(--wcss-body-sm-emphasized-line-height, 1.25rem)}.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-xs-emphasized-font-size, 0.75rem);line-height:var(--wcss-body-xs-emphasized-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-font-size, 0.625rem);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.body-2xs-emphasized{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-2xs-emphasized-weight, );letter-spacing:var(--wcss-body-letter-spacing, 0);font-size:var(--wcss-body-2xs-emphasized-font-size, 0.625rem);line-height:var(--wcss-body-2xs-emphasized-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-2xl-weight, 300);line-height:var(--wcss-display-2xl-line-height, 1.3);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));letter-spacing:var(--wcss-display-2xl-letter-spacing, 0)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xl-weight, 300);line-height:var(--wcss-display-xl-line-height, 1.3);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));letter-spacing:var(--wcss-display-xl-letter-spacing, 0)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-lg-weight, 300);line-height:var(--wcss-display-lg-line-height, 1.3);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));letter-spacing:var(--wcss-display-lg-letter-spacing, 0)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-md-weight, 300);line-height:var(--wcss-display-md-line-height, 1.3);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));letter-spacing:var(--wcss-display-md-letter-spacing, 0)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-sm-weight, 300);line-height:var(--wcss-display-sm-line-height, 1.3);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));letter-spacing:var(--wcss-display-sm-letter-spacing, 0)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-display-xs-weight, 300);line-height:var(--wcss-display-xs-line-height, 1.3);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));letter-spacing:var(--wcss-display-xs-letter-spacing, 0)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xl-weight, 300);line-height:var(--wcss-heading-xl-line-height, 1.3);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));letter-spacing:var(--wcss-heading-xl-letter-spacing, 0)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-lg-weight, 300);line-height:var(--wcss-heading-lg-line-height, 1.3);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));letter-spacing:var(--wcss-heading-lg-letter-spacing, 0)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-md-weight, 300);line-height:var(--wcss-heading-md-line-height, 1.3);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));letter-spacing:var(--wcss-heading-md-letter-spacing, 0)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-sm-weight, 300);line-height:var(--wcss-heading-sm-line-height, 1.3);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));letter-spacing:var(--wcss-heading-sm-letter-spacing, 0)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-xs-weight, 300);line-height:var(--wcss-heading-xs-line-height, 1.3);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));letter-spacing:var(--wcss-heading-xs-letter-spacing, 0)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-heading-2xs-weight, 300);line-height:var(--wcss-heading-2xs-line-height, 1.3);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xl-weight, 450);line-height:var(--wcss-accent-2xl-line-height, 1);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xl-weight, 450);line-height:var(--wcss-accent-xl-line-height, 1.3);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);text-transform:uppercase}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-lg-weight, 450);line-height:var(--wcss-accent-lg-line-height, 1.3);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-md-weight, 500);line-height:var(--wcss-accent-md-line-height, 1.3);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);text-transform:uppercase}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-sm-weight, 500);line-height:var(--wcss-accent-sm-line-height, 1.3);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-xs-weight, 500);line-height:var(--wcss-accent-xs-line-height, 1.3);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);text-transform:uppercase}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-weight:var(--wcss-accent-2xs-weight, 450);line-height:var(--wcss-accent-2xs-line-height, 1.3);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);text-transform:uppercase}@media screen and (max-width: 576px){:host{display:flex;justify-content:center}}.day{position:relative;width:48px;height:56px;padding:0;border-width:2px;border-style:solid;border-radius:10px;cursor:pointer;user-select:none}.day:focus-visible{outline:none;background-color:unset}.day.activeCell{outline-width:2px;outline-style:solid;outline-offset:-4px}.day.disabled{cursor:default !important;pointer-events:none}.day.blackout{cursor:pointer}.day.reference:after{position:absolute;top:-2px;left:-2px;display:block;width:calc(100% + 2px);height:calc(100% + 2px);box-sizing:content-box;border-radius:10px;border-style:solid;border-width:1px;content:""}.day.inRange::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:""}.day.rangeDepartDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:10px 0 0 10px;overflow:hidden}.day.rangeReturnDate::before,.day.lastHoveredDate::before{position:absolute;z-index:-1;top:-2px;left:-2px;display:block;width:calc(100% + 4px);height:calc(100% + 4px);box-sizing:content-box;content:"";border-radius:0 10px 10px 0;overflow:hidden}.day.firstDayOfMonth::before{border-radius:10px 0 0 10px;overflow:hidden}.day.lastDayOfMonth::before{border-radius:0 10px 10px 0;overflow:hidden}.buttonWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dateSlot{display:block}::slotted([slot^=date_]){width:100%;white-space:nowrap}::slotted(auro-icon){max-height:24px;max-width:24px}:host([renderForDateSlot]) .buttonWrapper{position:relative;width:100%;height:100%}:host([renderForDateSlot]) .currentDayMarker{position:relative}`;
11529
11526
 
11530
- var colorCss$5 = css`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.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}`;
11527
+ var colorCss$5 = css`:host ::slotted([slot^=date_]){color:var(--ds-auro-calendar-cell-price-text-color)}:host ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success, #447a1f)}:host .day{border-color:var(--ds-auro-calendar-cell-border-color);background-color:var(--ds-auro-calendar-cell-container-color);color:var(--ds-auro-calendar-cell-text-color)}:host .day.activeCell:not(.selected){--ds-auro-calendar-cell-container-color: var(--ds-auro-calendar-cell-in-range-color);border-color:var(--ds-advanced-color-state-selected);outline-color:var(--ds-auro-calendar-cell-container-color)}:host .day.selected{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected, #01426a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.selected ::slotted([slot^=date_][highlight]){--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host .day.selected:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-selected-hover, #00274a);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host .day.reference:after{border-color:var(--ds-basic-color-border-default, #959595);box-shadow:inset 0 0 0 2px var(--ds-basic-color-surface-default, #ffffff)}:host .day.reference:hover::after{box-shadow:inset 0 0 0 2px var(--ds-advanced-color-shared-background-muted, #f7f7f7)}:host .day:hover{--ds-auro-calendar-cell-container-color: var(--ds-advanced-color-state-background-hover, #f2f2f2);--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-default, #2a2a2a)}:host .day.disabled{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.blackout{--ds-auro-calendar-cell-container-color: transparent;--ds-auro-calendar-cell-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0);--ds-auro-calendar-cell-price-text-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host .day.inRange:before,:host .day.rangeDepartDate:before,:host .day.rangeReturnDate:before,:host .day.lastHoveredDate:before{background-color:var(--ds-auro-calendar-cell-in-range-color)}:host .day.sameDateTrip:before{--ds-auro-calendar-cell-in-range-color: transparent}`;
11531
11528
 
11532
- 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$1="top",o="bottom",n$1="right",a="left",l$3="auto",c$3=[r$1,o,n$1,a],p$6="start",d$3="end",f$6="viewport",h$3="popper",m$6=c$3.reduce(function(e,t){return e.concat([t+"-"+p$6,t+"-"+d$3])},[]),u$6=[].concat(c$3,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$6,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3(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$3(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$3(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$6(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$6(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$3(e))>=0}function C$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function R$3(e){return "html"===v$3(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$3(i)||"body"===v$3(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$3(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$1].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$3))}(l.padding,i),g=T$3(p),v="y"===h?r$1:a,y="y"===h?o:n$1,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$1,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$1||(l===a||l===n$1)&&c===d$3)z=o,x-=(g&&M===E&&E.visualViewport?E.visualViewport.height:M[T])-s.height,x*=h?1:-1;if(l===a||(l===r$1||l===o)&&c===d$3)k=n$1,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$6(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$3(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$6?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$6(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$3(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$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1: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$6: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$6:u,v=i.elementContext,y=void 0===v?h$3:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,O=I("number"!=typeof _?_:F(_,c$3)),k=y===h$3?"reference":h$3,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$6(e.elements.reference),B=oe({reference:T,element:A,placement:a}),L=ie(Object.assign({},A,B)),H=y===h$3?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$3&&j){var N=j[a];Object.keys(R).forEach(function(e){var t=[n$1,o].indexOf(e)>=0?1:-1,i=[r$1,o].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$6:l,d=q$3(s),f=d?a?m$6:m$6.filter(function(e){return q$3(e)===d}):c$3,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$6,j=[r$1,o].indexOf(C)>=0,N=j?"width":"height",P=ne(t,{placement:H,boundary:g,rootBoundary:v,altBoundary:y,padding:u}),D=j?R?n$1:a:R?o:r$1;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$1,n$1,o,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$6.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$1].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$1].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$1:a,W="y"===E?o:n$1,X="y"===E?"height":"width",V=B[E],G=V+x[U],$=V-x[W],K=y?-H[X]/2:0,Y=A===p$6?L[X]:H[X],J=A===p$6?-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$1:a,me="x"===E?o:n$1,ue=B[M],ge="y"===M?"height":"width",ve=ue+x[he],ye=ue-x[me],we=-1!==[r$1,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$6(e,n,i),c={scrollLeft:0,scrollTop:0},p={x:0,y:0};return (o||!o&&!i)&&(("body"!==v$3(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$6(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=css`::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)}
11529
+ 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$1="top",o="bottom",n$1="right",a="left",l$3="auto",c$3=[r$1,o,n$1,a],p$6="start",d$3="end",f$6="viewport",h$3="popper",u$6=c$3.reduce(function(e,t){return e.concat([t+"-"+p$6,t+"-"+d$3])},[]),m$6=[].concat(c$3,[l$3]).reduce(function(e,t){return e.concat([t,t+"-"+p$6,t+"-"+d$3])},[]),g$6=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function v$3(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$3(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$3(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$6(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$3(e))>=0}function H$3(e){return ((w$6(e)?e.ownerDocument:e.document)||window.document).documentElement}function C$3(e){return "html"===v$3(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$3(i)||"body"===v$3(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$3(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$1].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$3))}(l.padding,i),g=M$6(p),v="y"===h?r$1:a,y="y"===h?o:n$1,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$1,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$1||(l===a||l===n$1)&&c===d$3)T=o,x-=(g&&E===z&&z.visualViewport?z.visualViewport.height:E[M])-s.height,x*=h?1:-1;if(l===a||(l===r$1||l===o)&&c===d$3)O=n$1,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$3(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$6?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$3(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$1:t={x:h,y:i.y-s.height};break;case o:t={x:h,y:i.y+i.height};break;case n$1: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$6: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$6:m,v=i.elementContext,y=void 0===v?h$3:v,b=i.altBoundary,x=void 0!==b&&b,S=i.padding,_=void 0===S?0:S,A=I("number"!=typeof _?_:q$3(_,c$3)),O=y===h$3?"reference":h$3,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$3?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$3&&D){var N=D[a];Object.keys(C).forEach(function(e){var t=[n$1,o].indexOf(e)>=0?1:-1,i=[r$1,o].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$6:l,d=U$3(s),f=d?a?u$6:u$6.filter(function(e){return U$3(e)===d}):c$3,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$6,D=[r$1,o].indexOf(H)>=0,N=D?"width":"height",P=ne(t,{placement:R,boundary:g,rootBoundary:v,altBoundary:y,padding:m}),j=D?C?n$1:a:C?o:r$1;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$1,n$1,o,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$6.reduce(function(e,i){return e[i]=function(e,t,i){var s=_$4(e),o=[a,r$1].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$1].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$1:a,V="y"===z?o:n$1,W="y"===z?"height":"width",X=B[z],$=X+x[F],G=X-x[V],K=y?-R[W]/2:0,Y=k===p$6?L[W]:R[W],J=k===p$6?-R[W]:-L[W],Q=t.elements.arrow,Z=y&&Q?M$6(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$1:a,ue="x"===z?o:n$1,me=B[E],ge="y"===E?"height":"width",ve=me+x[he],ye=me-x[ue],we=-1!==[r$1,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$3(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$6(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=css`::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)}
11533
11530
  `,xe=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}.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:""}
11534
11531
  `,Se=css`: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)}
11535
- `;class _e extends LitElement{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;}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 [css`${xe}`,css`${be}`,css`${Se}`]}static register(e="auro-popover"){s.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 html`
11536
- <div id="popover" class="popover util_insetLg body-default" part="popover">
11532
+ `;class _e extends LitElement{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;}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 [css`${xe}`,css`${be}`,css`${Se}`]}static register(e="auro-popover"){s.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 html`
11533
+ <div
11534
+ id="popover"
11535
+ class="popover util_insetLg body-default"
11536
+ part="popover"
11537
+ role="tooltip"
11538
+ aria-hidden="${this.isPopoverVisible?"false":"true"}">
11537
11539
  <div id="arrow" class="arrow" data-popper-arrow></div>
11538
- <span role="tooltip"><slot></slot></span>
11540
+ <slot></slot>
11539
11541
  </div>
11540
11542
 
11541
- <span>
11543
+ <span role="presentation">
11542
11544
  <slot name="trigger" data-trigger-placement="${this.placement}"></slot>
11543
11545
  </span>
11544
11546
  `}}
11545
11547
 
11546
11548
  var popoverVersion = '6.0.1';
11547
11549
 
11550
+ /* 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 */
11551
+
11548
11552
  const startOfDay$1 = (ms) => {
11549
11553
  const date = new Date(ms);
11550
11554
  date.setHours(0, 0, 0, 0);
11551
11555
  return date.getTime();
11552
11556
  };
11553
11557
 
11554
- /* 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 */
11555
-
11556
11558
  class AuroCalendarCell extends LitElement {
11557
11559
  constructor() {
11558
11560
  super();
11559
11561
 
11560
11562
  this.day = null;
11561
11563
  this.selected = false;
11562
- this.hovered = false;
11563
11564
  this.dateTo = null;
11564
11565
  this.dateFrom = null;
11565
11566
  this.month = null;
@@ -11567,11 +11568,12 @@ class AuroCalendarCell extends LitElement {
11567
11568
  this.max = null;
11568
11569
  this.disabled = false;
11569
11570
  this.disabledDays = [];
11570
- this.hoveredDate = null;
11571
11571
  this.isCurrentDate = false;
11572
11572
  this._locale = null;
11573
11573
  this.dateStr = null;
11574
11574
  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.
11575
+ this.active = false;
11576
+ this.hasPopoverContent = false;
11575
11577
 
11576
11578
  this.runtimeUtils = new AuroLibraryRuntimeUtils$5();
11577
11579
 
@@ -11590,7 +11592,6 @@ class AuroCalendarCell extends LitElement {
11590
11592
  // ...super.properties,
11591
11593
  day: { type: Object },
11592
11594
  selected: { type: Boolean },
11593
- hovered: { type: Boolean },
11594
11595
  dateTo: { type: String },
11595
11596
  dateFrom: { type: String },
11596
11597
  month: { type: String },
@@ -11601,11 +11602,11 @@ class AuroCalendarCell extends LitElement {
11601
11602
  reflect: true
11602
11603
  },
11603
11604
  disabledDays: { type: Array },
11604
- hoveredDate: { type: String },
11605
11605
  isCurrentDate: { type: Boolean },
11606
11606
  locale: { type: String },
11607
11607
  dateStr: { type: String },
11608
- renderForDateSlot: { type: Boolean }
11608
+ renderForDateSlot: { type: Boolean },
11609
+ hasPopoverContent: { type: Boolean }
11609
11610
  };
11610
11611
  }
11611
11612
 
@@ -11629,17 +11630,17 @@ class AuroCalendarCell extends LitElement {
11629
11630
  }
11630
11631
 
11631
11632
  /**
11632
- * Handles selected and hovered states of the calendar cell when the date changes.
11633
+ * Handles selected state of the calendar cell when the selection changes.
11634
+ * Also clears any imperative range preview classes so classMap is the
11635
+ * sole source of truth after a selection update.
11633
11636
  * @private
11634
11637
  * @param {Number} dateFrom - Depart date.
11635
11638
  * @param {Number} dateTo - Return date.
11636
- * @param {Number} hoveredDate - Hovered date.
11637
11639
  * @param {Object} day - An object containing the dateFrom and day of month values.
11638
11640
  * @returns {void}
11639
11641
  */
11640
- dateChanged(dateFrom, dateTo, hoveredDate, day) {
11642
+ dateChanged(dateFrom, dateTo, day) {
11641
11643
  this.selected = false;
11642
- this.hovered = false;
11643
11644
 
11644
11645
  const parsedDateFrom = parseInt(dateFrom, 10);
11645
11646
  const parsedDateTo = parseInt(dateTo, 10);
@@ -11651,10 +11652,6 @@ class AuroCalendarCell extends LitElement {
11651
11652
  if (day.date === departTimestamp || day.date === returnTimestamp) {
11652
11653
  this.selected = true;
11653
11654
  }
11654
-
11655
- if (((hoveredDate === day.date || day.date < hoveredDate) && day.date > parsedDateFrom && !parsedDateTo && !Number.isNaN(parsedDateFrom) && parsedDateFrom !== undefined && !this.selected) || (day.date > parsedDateFrom && day.date < parsedDateTo)) {
11656
- this.hovered = true;
11657
- }
11658
11655
  }
11659
11656
  }
11660
11657
 
@@ -11664,27 +11661,104 @@ class AuroCalendarCell extends LitElement {
11664
11661
  * @returns {void}
11665
11662
  */
11666
11663
  handleTap() {
11667
- if (!this.disabled) {
11664
+ if (!this.disabled && !this.isBlackout()) {
11668
11665
  this.datepicker.handleCellClick(this.day.date);
11669
11666
  }
11667
+
11668
+ // Set this cell as the active cell regardless of blackout status
11669
+ if (this.day) {
11670
+ this.dispatchEvent(new CustomEvent('calendar-cell-activate', {
11671
+ bubbles: true,
11672
+ composed: true,
11673
+ detail: { date: this.day.date }
11674
+ }));
11675
+ }
11670
11676
  }
11671
11677
 
11672
11678
  /**
11673
11679
  * Handles user hover events and dispatches a custom event.
11680
+ * Does NOT set any reactive properties — the range preview is handled
11681
+ * imperatively by the calendar component to avoid O(N) re-renders.
11674
11682
  * @private
11675
11683
  * @returns {void}
11676
11684
  */
11677
11685
  handleHover() {
11678
- this.hovered = true;
11679
-
11680
- let _a;
11681
11686
  this.dispatchEvent(new CustomEvent('date-is-hovered', {
11682
- detail: { date: (_a = this.day) === null || _a === void 0 ? void 0 : _a.date },
11687
+ detail: { date: this.day?.date },
11683
11688
  }));
11684
11689
  }
11685
11690
 
11686
11691
  /**
11687
- * Checks if the current date is a valid date depending on the min and max values.
11692
+ * Handles focus events on the cell button.
11693
+ * Dispatches a lightweight event for the calendar to handle SR
11694
+ * announcements and range preview updates without triggering
11695
+ * any Lit lifecycle updates.
11696
+ * @private
11697
+ * @returns {void}
11698
+ */
11699
+ handleFocus() {
11700
+ this.dispatchEvent(new CustomEvent('calendar-cell-focused', {
11701
+ bubbles: true,
11702
+ composed: true,
11703
+ detail: { date: this.day?.date },
11704
+ }));
11705
+ }
11706
+
11707
+ /**
11708
+ * Checks if the current date is outside the valid min/max range.
11709
+ * Out-of-range cells are not focusable and are hidden from screen readers.
11710
+ * @private
11711
+ * @param {Object} day - An object containing the dateFrom and day of month values.
11712
+ * @param {Number} min - The minimum date value.
11713
+ * @param {Number} max - The maximum date value.
11714
+ * @returns {Boolean} - True if the date is out of range.
11715
+ */
11716
+ isOutOfRange(day, min, max) {
11717
+ if (day && day.date !== null && day.date !== undefined) {
11718
+ return day.date < min || day.date > max;
11719
+ }
11720
+ return false;
11721
+ }
11722
+
11723
+ /**
11724
+ * Checks if the current date is a blackout date (in disabledDays but within range).
11725
+ * Blackout cells are focusable but not selectable.
11726
+ * @private
11727
+ * @returns {Boolean} - True if the date is a blackout date.
11728
+ */
11729
+ isBlackout() {
11730
+ if (!this.day || this.day.date === null || this.day.date === undefined || this.isOutOfRange(this.day, this.min, this.max)) {
11731
+ return false;
11732
+ }
11733
+
11734
+ // Check against disabledDays timestamps (legacy path)
11735
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0 &&
11736
+ (this.disabledDays.findIndex(dd => parseInt(dd, 10) === this.day.date) !== -1)) {
11737
+ return true;
11738
+ }
11739
+
11740
+ // Check against blackoutDates (ISO format YYYY-MM-DD) on the datepicker
11741
+ const blackoutDates = this.datepicker?.blackoutDates;
11742
+
11743
+ if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
11744
+ const date = new Date(this.day.date * 1000);
11745
+ const yyyy = date.getFullYear();
11746
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
11747
+ const dd = String(date.getDate()).padStart(2, '0');
11748
+ const cellDate = `${yyyy}-${mm}-${dd}`;
11749
+ if (blackoutDates.includes(cellDate)) {
11750
+ return true;
11751
+ }
11752
+ }
11753
+
11754
+ return false;
11755
+ }
11756
+
11757
+ /**
11758
+ * Checks if the current date is disabled based on min/max range or the
11759
+ * legacy disabledDays timestamp list. Sets the `disabled` attribute on the
11760
+ * host when the date falls outside the allowed range or appears in
11761
+ * disabledDays. Note: blackout dates are handled separately by `isBlackout()`.
11688
11762
  * @private
11689
11763
  * @param {Object} day - An object containing the dateFrom and day of month values.
11690
11764
  * @param {Number} min - The minimum date value.
@@ -11695,15 +11769,114 @@ class AuroCalendarCell extends LitElement {
11695
11769
  isEnabled(day, min, max, disabledDays) {
11696
11770
  this.removeAttribute('disabled');
11697
11771
 
11698
- if (disabledDays && day && day.date) {
11699
- if (day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1) {
11700
- this.setAttribute('disabled', true);
11701
- return true;
11702
- }
11772
+ if (disabledDays && day && day.date &&
11773
+ (day.date < min || day.date > max || disabledDays.findIndex(disabledDay => parseInt(disabledDay, 10) === day.date) !== -1)) {
11774
+ this.setAttribute('disabled', true);
11775
+ return true;
11703
11776
  }
11777
+
11704
11778
  return false;
11705
11779
  }
11706
11780
 
11781
+ /**
11782
+ * Generates a unique cell ID in the format cell-YYYY-MM-DD.
11783
+ * @private
11784
+ * @returns {String} The unique cell ID.
11785
+ */
11786
+ getCellId() {
11787
+ if (!this.day || !this.day.date) return '';
11788
+ const date = new Date(this.day.date * 1000);
11789
+ const year = date.getFullYear();
11790
+ const month = String(date.getMonth() + 1).padStart(2, '0');
11791
+ const day = String(date.getDate()).padStart(2, '0');
11792
+ return `cell-${year}-${month}-${day}`;
11793
+ }
11794
+
11795
+ /**
11796
+ * Generates a localized aria-label for the cell button using Intl.DateTimeFormat.
11797
+ * Includes range position and blackout status.
11798
+ * @private
11799
+ * @returns {String} The aria-label string.
11800
+ */
11801
+ getAriaLabel() {
11802
+ if (!this.day || this.day.date === undefined) return '';
11803
+
11804
+ const date = new Date(this.day.date * 1000);
11805
+
11806
+ // Generate localized full date string using the configured locale
11807
+ const localeCode = this.locale?.code || undefined;
11808
+ const dateFormatter = new Intl.DateTimeFormat(localeCode, {
11809
+ weekday: 'long',
11810
+ year: 'numeric',
11811
+ month: 'long',
11812
+ day: 'numeric'
11813
+ });
11814
+
11815
+ let label = dateFormatter.format(date);
11816
+
11817
+ // Append date slot content (e.g. prices) so it is announced with the date.
11818
+ if (this.renderForDateSlot) {
11819
+ const dateSlotEl = this.querySelector(`[slot="date_${this.dateStr}"]`);
11820
+ if (dateSlotEl) {
11821
+ const text = dateSlotEl.innerText?.trim();
11822
+ if (text) {
11823
+ label += `, ${text}`;
11824
+ }
11825
+ }
11826
+ }
11827
+
11828
+ // appending popover content here so that it gets read in a logical order with the other date content.
11829
+ if (this.hasPopoverContent) {
11830
+ const popoverEl = this.querySelector(`[slot="popover_${this.dateStr}"]`);
11831
+ if (popoverEl) {
11832
+ label += `, ${popoverEl.innerText.trim()}`;
11833
+ }
11834
+ }
11835
+
11836
+ // Append range position label for range datepickers
11837
+ const rangePosition = this.getRangePosition();
11838
+ if (rangePosition) {
11839
+ label += `, ${rangePosition}`;
11840
+ }
11841
+
11842
+ // Append blackout label for blackout cells
11843
+ if (this.isBlackout()) {
11844
+ label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
11845
+ }
11846
+
11847
+ return label;
11848
+ }
11849
+
11850
+ /**
11851
+ * Determines the range position of this cell relative to the current selection.
11852
+ * @private
11853
+ * @returns {String|null} Range position label or null if not in range mode.
11854
+ */
11855
+ getRangePosition() {
11856
+ if (!this.datepicker || !this.datepicker.hasAttribute('range')) return null;
11857
+
11858
+ const parsedDateFrom = Number.parseInt(this.dateFrom, 10);
11859
+ if (!Number.isFinite(parsedDateFrom)) return null;
11860
+
11861
+ const departTimestamp = startOfDay$1(parsedDateFrom * 1000) / 1000;
11862
+ const dayDate = this.day.date;
11863
+
11864
+ const parsedDateTo = Number.parseInt(this.dateTo, 10);
11865
+ const hasDateTo = Number.isFinite(parsedDateTo);
11866
+ const returnTimestamp = hasDateTo ? startOfDay$1(parsedDateTo * 1000) / 1000 : null;
11867
+
11868
+ if (dayDate === departTimestamp) return this.datepicker.rangeLabelStart || 'range start';
11869
+
11870
+ if (hasDateTo && dayDate === returnTimestamp) return this.datepicker.rangeLabelEnd || 'range end';
11871
+
11872
+ if (dayDate < departTimestamp) return this.datepicker.rangeLabelBeforeRange || 'before range';
11873
+
11874
+ if (hasDateTo && dayDate > departTimestamp && dayDate < returnTimestamp) return this.datepicker.rangeLabelInRange || 'in range';
11875
+
11876
+ // After start date, no end date yet, or after end date
11877
+ return this.datepicker.rangeLabelAfterRange || 'after range';
11878
+ }
11879
+
11707
11880
  /**
11708
11881
  * Checks if the current date is the depart date.
11709
11882
  * @private
@@ -11771,12 +11944,12 @@ class AuroCalendarCell extends LitElement {
11771
11944
  }
11772
11945
 
11773
11946
  /**
11774
- * Checks if the current date is a highlighted date.
11947
+ * Checks if the current date is a referenced date.
11775
11948
  * @param {Object} dateStr - The date string in MM_DD_YYYY format.
11776
- * @returns Boolean - True if the date is a highlighted date.
11949
+ * @returns Boolean - True if the date is a referenced date.
11777
11950
  */
11778
11951
  isReferenceDate(dateStr) {
11779
- // If the datepicker has highlighted dates specified
11952
+ // If the datepicker has referenced dates specified
11780
11953
  if (this.datepicker && this.datepicker.hasAttribute('referenceDates')) {
11781
11954
 
11782
11955
  // Get the referenceDates attribute from the datepicker
@@ -11786,7 +11959,11 @@ class AuroCalendarCell extends LitElement {
11786
11959
  if (!Array.isArray(referenceDates) || referenceDates.length === 0) return false;
11787
11960
 
11788
11961
  // Convert cell dateStr (MM_DD_YYYY) to ISO (YYYY-MM-DD) for comparison
11789
- const [month, day, year] = dateStr.split('_');
11962
+ const [
11963
+ month,
11964
+ day,
11965
+ year
11966
+ ] = dateStr.split('_');
11790
11967
  const cellISO = `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
11791
11968
 
11792
11969
  return referenceDates.includes(cellISO);
@@ -11876,9 +12053,9 @@ class AuroCalendarCell extends LitElement {
11876
12053
 
11877
12054
  if (popoverSlotContent) {
11878
12055
  this.appendChild(popoverSlotContent.cloneNode(true));
11879
- this.auroPopover.removeAttribute('disabled');
12056
+ this.hasPopoverContent = true;
11880
12057
  } else {
11881
- this.auroPopover.setAttribute('disabled', true);
12058
+ this.hasPopoverContent = false;
11882
12059
  }
11883
12060
  } catch (err) { // eslint-disable-line no-unused-vars
11884
12061
  // Error handling goes here
@@ -11894,60 +12071,249 @@ class AuroCalendarCell extends LitElement {
11894
12071
  return;
11895
12072
  }
11896
12073
  this.datepicker = calendar.datepicker;
11897
- this.datepicker.addEventListener('auroDatePicker-newSlotContent', () => {
12074
+ this._slotContentHandler = () => {
11898
12075
  this.handleSlotContent();
12076
+ // Force re-render so isBlackout()/aria-disabled reflect updated blackoutDates.
12077
+ this.requestUpdate();
12078
+ };
12079
+ this.datepicker.addEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12080
+
12081
+ // Cache button reference for imperative class manipulation.
12082
+ this.updateComplete.then(() => {
12083
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
11899
12084
  });
11900
12085
 
12086
+ // Trigger an initial update now that `this.datepicker` is assigned so
12087
+ // cells reflect blackout/slot state that was configured before first render.
12088
+ this.requestUpdate();
12089
+
12090
+ this.calendarMonth = calendarMonth;
12091
+ this.configurePopover();
12092
+ }
12093
+
12094
+ disconnectedCallback() {
12095
+ super.disconnectedCallback();
12096
+ if (this.datepicker && this._slotContentHandler) {
12097
+ this.datepicker.removeEventListener('auroDatePicker-newSlotContent', this._slotContentHandler);
12098
+ }
12099
+ }
12100
+
12101
+ /**
12102
+ * Configures the popover instance with the calendar month boundary.
12103
+ * Called from firstUpdated and updated because the popover element is only
12104
+ * rendered after hasPopoverContent becomes true (set by handleSlotContent).
12105
+ * @private
12106
+ * @returns {void}
12107
+ */
12108
+ configurePopover() {
11901
12109
  this.auroPopover = this.shadowRoot.querySelector(this.popoverTag._$litStatic$);
11902
12110
 
11903
- this.auroPopover.boundary = calendarMonth;
12111
+ if (this.auroPopover && this.calendarMonth) {
12112
+ this.auroPopover.boundary = this.calendarMonth;
12113
+ }
11904
12114
  }
11905
12115
 
11906
12116
  updated(properties) {
11907
- if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('hoveredDate') || properties.has('day')) {
11908
- this.dateChanged(this.dateFrom, this.dateTo, this.hoveredDate, this.day);
12117
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('day')) {
12118
+ this.dateChanged(this.dateFrom, this.dateTo, this.day);
12119
+ }
12120
+
12121
+ if (properties.has('day') && this.day) {
12122
+ this.setDateSlotName();
12123
+ this.handleSlotContent();
12124
+
12125
+ // Re-cache button reference when the day changes (cell may have re-rendered).
12126
+ this.updateComplete.then(() => {
12127
+ this._cachedButton = this.shadowRoot.querySelector('button.day');
12128
+ });
12129
+
12130
+ // Update host-level aria attributes for ariaActiveDescendantElement.
12131
+ this.updateHostAria();
11909
12132
  }
11910
12133
 
11911
- this.setDateSlotName();
11912
- this.handleSlotContent();
12134
+ // Update host aria when selection changes (aria-selected, range labels)
12135
+ if (properties.has('dateFrom') || properties.has('dateTo') || properties.has('selected')) {
12136
+ this.updateHostAria();
12137
+ }
12138
+
12139
+ // Configure popover when it first becomes rendered
12140
+ if (properties.has('hasPopoverContent') && this.hasPopoverContent) {
12141
+ this.updateComplete.then(() => this.configurePopover());
12142
+ }
11913
12143
  }
11914
12144
 
11915
- render() {
12145
+ /**
12146
+ * Updates ARIA attributes on the host element so that
12147
+ * ariaActiveDescendantElement can expose cell info to the SR.
12148
+ * @private
12149
+ * @returns {void}
12150
+ */
12151
+ updateHostAria() {
12152
+ if (!this.day || this.day.date === undefined) return;
12153
+
12154
+ const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
12155
+ if (outOfRange) {
12156
+ this.removeAttribute('role');
12157
+ this.removeAttribute('aria-label');
12158
+ return;
12159
+ }
12160
+
12161
+ // The host acts as the gridcell for ariaActiveDescendantElement.
12162
+ this.setAttribute('role', 'gridcell');
12163
+ this.setAttribute('aria-label', this.getAriaLabel());
12164
+ this.setAttribute('aria-selected', this.selected ? 'true' : 'false');
12165
+
12166
+ if (this.isBlackout()) {
12167
+ this.setAttribute('aria-disabled', 'true');
12168
+ } else {
12169
+ this.removeAttribute('aria-disabled');
12170
+ }
12171
+ }
12172
+
12173
+ /**
12174
+ * Programmatically focuses the cell's interactive button element.
12175
+ * Uses focusVisible: true so the :focus-visible ring appears even when
12176
+ * the bib was opened via mouse click (which sets mouse input modality).
12177
+ * @returns {void}
12178
+ */
12179
+ focusButton() {
12180
+ const button = this._cachedButton || this.shadowRoot.querySelector('button:not([aria-hidden])');
12181
+ if (button) {
12182
+ button.focus({ focusVisible: true });
12183
+ }
12184
+ }
12185
+
12186
+ /**
12187
+ * Imperatively marks this cell as active without triggering a Lit re-render.
12188
+ * Note: buttons stay tabindex="-1" because the grid uses aria-activedescendant.
12189
+ * @returns {void}
12190
+ */
12191
+ setActive() {
12192
+ this.active = true;
12193
+
12194
+ // Show the popover when this cell becomes active via keyboard navigation.
12195
+ if (this.auroPopover) {
12196
+ this.auroPopover.toggleShow();
12197
+ }
12198
+ }
12199
+
12200
+ /**
12201
+ * Imperatively marks this cell as inactive without triggering a Lit re-render.
12202
+ * @returns {void}
12203
+ */
12204
+ clearActive() {
12205
+ this.active = false;
12206
+ const btn = this._cachedButton || this.shadowRoot.querySelector('button.day');
12207
+ if (btn) {
12208
+ btn.classList.remove('activeCell');
12209
+ }
12210
+
12211
+ // Hide the popover when this cell loses active state.
12212
+ if (this.auroPopover) {
12213
+ this.auroPopover.toggleHide();
12214
+ }
12215
+ }
12216
+
12217
+ /**
12218
+ * Updates range preview classes imperatively (no Lit re-render).
12219
+ * Called by the calendar component when the hovered date changes
12220
+ * during range selection (dateFrom set, dateTo not yet set).
12221
+ * @param {Number} hoveredDate - Unix timestamp of the currently hovered/focused date.
12222
+ * @param {Number} dateFrom - Unix timestamp of the selected departure date.
12223
+ * @returns {void}
12224
+ */
12225
+ updateRangePreviewClasses(hoveredDate, dateFrom) {
12226
+ const btn = this._cachedButton;
12227
+ if (!btn || !this.day) return;
12228
+
12229
+ const dayDate = this.day.date;
12230
+ const departTimestamp = startOfDay$1(dateFrom * 1000) / 1000;
12231
+ const isInRange = dayDate > departTimestamp && dayDate < hoveredDate;
12232
+ const isLastHovered = dayDate === hoveredDate && hoveredDate > departTimestamp;
12233
+ const isDepartWithPreview = dayDate === departTimestamp && hoveredDate > departTimestamp;
12234
+
12235
+ btn.classList.toggle('inRange', isInRange);
12236
+ btn.classList.toggle('lastHoveredDate', isLastHovered);
12237
+ btn.classList.toggle('rangeDepartDate', isDepartWithPreview);
12238
+ }
12239
+
12240
+ /**
12241
+ * Clears all imperative range preview classes from the cell button.
12242
+ * Called when a selection occurs so classMap becomes the sole source of truth.
12243
+ * @returns {void}
12244
+ */
12245
+ clearRangePreviewClasses() {
12246
+ const btn = this._cachedButton;
12247
+ if (!btn) return;
12248
+
12249
+ btn.classList.remove('inRange', 'lastHoveredDate', 'rangeDepartDate');
12250
+ }
12251
+
12252
+ renderCellButton() {
12253
+ const outOfRange = this.isOutOfRange(this.day, this.min, this.max);
12254
+ const blackout = this.isBlackout();
12255
+
12256
+ // Static and selection-driven classes only. Hover-driven classes
12257
+ // (inRange, lastHoveredDate, rangeDepartDate during preview) are
12258
+ // managed imperatively via updateRangePreviewClasses() to avoid
12259
+ // O(N) Lit re-renders on every focus/hover event.
12260
+ const isFirstDay = this.day?.title === 1;
12261
+ const isLastDay = this.day?.date && (() => {
12262
+ const dt = new Date(this.day.date * 1000);
12263
+ return dt.getDate() === new Date(dt.getFullYear(), dt.getMonth() + 1, 0).getDate();
12264
+ })();
12265
+
11916
12266
  const buttonClasses = {
11917
12267
  'day': true,
11918
- 'body-lg': true,
11919
- 'currentDate': this.currentDate,
12268
+ 'body-default': true,
12269
+ 'currentDate': this.isCurrentDate,
11920
12270
  'selected': this.selected,
11921
- 'inRange': this.hovered && this.isInRange(this.day, this.dateFrom, this.dateTo),
11922
- 'lastHoveredDate': this.isLastHoveredDate(this.day, this.dateFrom, this.dateTo, this.hoveredDate) && this.datepicker && this.datepicker.hasAttribute('range'),
11923
- 'disabled': this.isEnabled(this.day, this.min, this.max, this.disabledDays),
11924
- 'rangeDepartDate': this.isDepartDate(this.day, this.dateFrom) && (this.hoveredDate > this.dateFrom || this.dateTo),
11925
- 'rangeReturnDate': this.isReturnDate(this.day, this.dateFrom, this.dateTo),
12271
+ 'inRange': this.datepicker?.hasAttribute('range') && this.dateTo && this.isInRange(this.day, this.dateFrom, this.dateTo),
12272
+ 'disabled': outOfRange,
12273
+ blackout,
12274
+ 'rangeDepartDate': this.datepicker?.hasAttribute('range') && this.isDepartDate(this.day, this.dateFrom) && this.dateTo,
12275
+ 'rangeReturnDate': this.datepicker?.hasAttribute('range') && this.isReturnDate(this.day, this.dateFrom, this.dateTo),
11926
12276
  'reference': this.isReferenceDate(this.dateStr),
11927
- 'sameDateTrip': this.dateFrom === this.dateTo
12277
+ 'sameDateTrip': this.datepicker?.hasAttribute('range') && this.dateFrom === this.dateTo,
12278
+ 'firstDayOfMonth': isFirstDay,
12279
+ 'lastDayOfMonth': isLastDay,
11928
12280
  };
11929
12281
 
11930
- let _a, _b;
11931
12282
  return html$1`
11932
- <${this.popoverTag}>
11933
- <slot name="popover_${this.dateStr}"></slot>
11934
- <button
11935
- slot="trigger"
11936
- @click="${this.handleTap}"
11937
- @mouseover="${this.handleHover}"
11938
- @focus="${this.handleHover}"
11939
- class="${classMap(buttonClasses)}"
11940
- ?disabled="${this.disabled}"
11941
- title="${this.getTitle((_a = this.day) === null || _a === void 0 ? void 0 : _a.date)}"
11942
- tabindex="-1">
11943
- <div class="buttonWrapper">
11944
- <div class="currentDayMarker">${(_b = this.day) === null || _b === void 0 ? void 0 : _b.title}</div>
11945
- <div class="dateSlot body-2xs" part="dateSlot">
11946
- <slot name="date_${this.dateStr}"></slot>
11947
- </div>
12283
+ <button
12284
+ slot="trigger"
12285
+ id="${this.getCellId()}"
12286
+ @click="${outOfRange ? undefined : this.handleTap}"
12287
+ @mouseover="${outOfRange ? undefined : this.handleHover}"
12288
+ @focus="${outOfRange ? undefined : this.handleFocus}"
12289
+ class="${classMap(buttonClasses)}"
12290
+ ?disabled="${outOfRange}"
12291
+ aria-hidden="${outOfRange ? 'true' : nothing}"
12292
+ tabindex="-1">
12293
+ <div class="buttonWrapper" aria-hidden="true">
12294
+ <div class="currentDayMarker">${this.day?.title || nothing}</div>
12295
+ <div class="dateSlot body-2xs" part="dateSlot" aria-hidden="true" ?hidden="${!this.renderForDateSlot}">
12296
+ <slot name="date_${this.dateStr}"></slot>
11948
12297
  </div>
11949
- </button>
11950
- </${this.popoverTag}>
12298
+ </div>
12299
+ </button>
12300
+ `;
12301
+ }
12302
+
12303
+ render() {
12304
+ const { hasPopoverContent } = this;
12305
+
12306
+ if (hasPopoverContent) {
12307
+ return html$1`
12308
+ <${this.popoverTag}>
12309
+ <span aria-hidden="true"><slot name="popover_${this.dateStr}"></slot></span>
12310
+ ${this.renderCellButton()}
12311
+ </${this.popoverTag}>
12312
+ `;
12313
+ }
12314
+
12315
+ return html$1`
12316
+ ${this.renderCellButton()}
11951
12317
  `;
11952
12318
  }
11953
12319
  }
@@ -11960,7 +12326,7 @@ if (!customElements.get('auro-formkit-calendar-cell')) {
11960
12326
 
11961
12327
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
11962
12328
 
11963
- /* eslint-disable no-magic-numbers, dot-location */
12329
+ /* eslint-disable no-magic-numbers */
11964
12330
 
11965
12331
 
11966
12332
  const getMonthNamesFromLocale = (locale) => {
@@ -11977,11 +12343,12 @@ const getMonthNamesFromLocale = (locale) => {
11977
12343
  * Uses UTC dates to avoid DST-related day drift across timezones.
11978
12344
  * @private
11979
12345
  * @param {String} locale - The BCP 47 language tag for localization (e.g. "en-US").
11980
- * @returns {Array} An array of seven localized narrow weekday names, starting from Sunday.
12346
+ * @param {String} weekday - The format of the weekday name ('narrow', 'short', 'long').
12347
+ * @returns {Array} An array of seven localized weekday names, starting from Sunday.
11981
12348
  */
11982
- const getWeekdayNames = (locale) => {
12349
+ const getWeekdayNames = (locale, weekday) => {
11983
12350
  const fmt = new Intl.DateTimeFormat(locale, {
11984
- weekday: 'narrow',
12351
+ weekday,
11985
12352
  timeZone: 'UTC'
11986
12353
  });
11987
12354
  // Jan 5 2025 is a known Sunday; use Date.UTC to avoid DST-related day drift
@@ -12016,7 +12383,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12016
12383
 
12017
12384
  /**
12018
12385
  * BCP 47 locale tag (such as `en-US`) for calendar localization.
12019
- * as wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
12386
+ * As wc-range-datepicker expects a `locale` prop, we use `localeCode` to avoid conflicts.
12020
12387
  */
12021
12388
  localeCode: {
12022
12389
  type: String
@@ -12070,8 +12437,19 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12070
12437
  return this._cachedMonthNames[month - 1] || '';
12071
12438
  }
12072
12439
 
12440
+ /**
12441
+ * Returns the unique heading ID for this month, used by aria-labelledby.
12442
+ * @private
12443
+ * @returns {String} The heading ID.
12444
+ */
12445
+ getHeadingId() {
12446
+ return `month-heading-${this.month}-${this.year}`;
12447
+ }
12448
+
12449
+
12073
12450
  /**
12074
12451
  * Determines the current month name based on locale.
12452
+ * Also builds parallel arrays of full day names for abbr attributes.
12075
12453
  * This is a rewrite of the function used in the class RangeDatepickerCalendar and should not be removed from here.
12076
12454
  * @private
12077
12455
  * @param {Object} changedProperties - The properties that have changed since the last update.
@@ -12085,8 +12463,67 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12085
12463
  }
12086
12464
 
12087
12465
  localeChanged() {
12088
- // Week always starts on Sunday; use Intl-derived names directly without rotation
12089
- this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode);
12466
+ this.dayNamesOfTheWeek = getWeekdayNames(this.localeCode, 'narrow');
12467
+ this.dayFullNames = getWeekdayNames(this.localeCode, 'long');
12468
+ }
12469
+
12470
+ /**
12471
+ * Renders a day-of-week header with abbr attribute for the full day name.
12472
+ * @private
12473
+ * @param {String} dayOfWeek - The short day name.
12474
+ * @param {Number} index - The index in the dayNamesOfTheWeek array.
12475
+ * @returns {Object} The header HTML.
12476
+ */
12477
+ renderDayOfWeek(dayOfWeek, index) {
12478
+ const fullName = this.dayFullNames ? this.dayFullNames[index] : dayOfWeek;
12479
+ return html`<div class="th body-default" aria-label="${fullName}" role="columnheader">${dayOfWeek}</div>`;
12480
+ }
12481
+
12482
+ /**
12483
+ * Returns all focusable cell elements (enabled + blackout, not out-of-range) in this month.
12484
+ * @returns {Array} Array of auro-formkit-calendar-cell elements.
12485
+ */
12486
+ getFocusableCells() {
12487
+ const cells = Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-cell'));
12488
+ return cells.filter((cell) => {
12489
+ if (!cell.day) {
12490
+ return false;
12491
+ }
12492
+ return !cell.isOutOfRange(cell.day, cell.min, cell.max);
12493
+ });
12494
+ }
12495
+
12496
+ /**
12497
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
12498
+ * as a reactive property. Instead, just dispatches the event upward so
12499
+ * the calendar can handle range preview imperatively.
12500
+ * @private
12501
+ * @param {CustomEvent} event - The date-is-hovered event from a cell.
12502
+ * @returns {void}
12503
+ */
12504
+ handleDateHovered(event) {
12505
+ this.dispatchEvent(new CustomEvent('hovered-date-changed', {
12506
+ detail: { value: event.detail.date },
12507
+ }));
12508
+ }
12509
+
12510
+ /**
12511
+ * Dispatches a bubbling event when the mouse leaves the date grid body
12512
+ * so the parent calendar can clear the range hover preview.
12513
+ * @private
12514
+ * @returns {void}
12515
+ */
12516
+ handleTbodyMouseLeave() {
12517
+ this.dispatchEvent(new CustomEvent('calendar-month-mouseleave', {
12518
+ bubbles: true,
12519
+ composed: true,
12520
+ }));
12521
+ }
12522
+
12523
+ renderWeek(week) {
12524
+ return html`
12525
+ <div class="tr" role="row">${week.map((day) => this.renderDay(day))}</div>
12526
+ `;
12090
12527
  }
12091
12528
 
12092
12529
  renderDay(day) {
@@ -12099,7 +12536,6 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12099
12536
  .min="${this.min}"
12100
12537
  .max="${this.max}"
12101
12538
  .month="${this.month}"
12102
- .hoveredDate="${this.hoveredDate}"
12103
12539
  .dateTo="${this.dateTo}"
12104
12540
  .dateFrom="${this.dateFrom}"
12105
12541
  .locale="${this.localeCode}"
@@ -12110,7 +12546,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12110
12546
  >
12111
12547
  </auro-formkit-calendar-cell>
12112
12548
  `
12113
- : null}
12549
+ : html`<div aria-hidden="true" inert></div>`}
12114
12550
  </div>
12115
12551
  `;
12116
12552
  }
@@ -12124,7 +12560,7 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12124
12560
  <div>
12125
12561
  <div class="header">
12126
12562
  ${this.renderPrevButton()}
12127
- <div class="headerTitle heading-xs">
12563
+ <div class="headerTitle heading-xs" id="${this.getHeadingId()}">
12128
12564
  ${this.monthFirst ? html`
12129
12565
  <div>${this.computeCurrentMonthName(this.month)}</div>
12130
12566
  <div>${this.renderYear()}</div>
@@ -12135,14 +12571,13 @@ class AuroCalendarMonth extends RangeDatepickerCalendar {
12135
12571
  </div>
12136
12572
  ${this.renderNextButton()}
12137
12573
  </div>
12138
-
12139
- <div class="table">
12574
+ <div class="table" role="grid">
12140
12575
  <div class="thead">
12141
12576
  <div class="tr">
12142
- ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map(dayNameOfWeek => this.renderDayOfWeek(dayNameOfWeek))}
12577
+ ${(_a = this.dayNamesOfTheWeek) === null || _a === void 0 ? void 0 : _a.map((dayNameOfWeek, index) => this.renderDayOfWeek(dayNameOfWeek, index))}
12143
12578
  </div>
12144
12579
  </div>
12145
- <div class="tbody">
12580
+ <div class="tbody" role="rowgroup" @mouseleave="${this.handleTbodyMouseLeave}">
12146
12581
  ${(_b = this.daysOfMonth) === null || _b === void 0 ? void 0 : _b.map(week => this.renderWeek(week))}
12147
12582
  </div>
12148
12583
  </div>
@@ -12840,6 +13275,14 @@ class AuroBibtemplate extends LitElement {
12840
13275
  large: {
12841
13276
  type: Boolean,
12842
13277
  reflect: true
13278
+ },
13279
+
13280
+ /**
13281
+ * If declared, the footer slot will be rendered even when not in fullscreen mode.
13282
+ */
13283
+ showFooter: {
13284
+ type: Boolean,
13285
+ reflect: true
12843
13286
  }
12844
13287
  };
12845
13288
  }
@@ -12942,7 +13385,7 @@ class AuroBibtemplate extends LitElement {
12942
13385
  <slot></slot>
12943
13386
  </div>
12944
13387
 
12945
- ${this.isFullscreen ? html$1`
13388
+ ${this.isFullscreen || this.showFooter ? html$1`
12946
13389
  <div id="footerContainer">
12947
13390
  <slot name="footer"></slot>
12948
13391
  </div>` : null}
@@ -12951,7 +13394,7 @@ class AuroBibtemplate extends LitElement {
12951
13394
  }
12952
13395
  }
12953
13396
 
12954
- var formkitVersion$2 = '202606081518';
13397
+ var formkitVersion$2 = '202606081904';
12955
13398
 
12956
13399
  let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[.]/g,"_"),o}generateTag(o,s,a){const r=this.generateElementName(o,s),i=literal`${unsafeStatic(r)}`;return customElements.get(r)||customElements.define(r,class extends a{}),i}};let d$1 = class d{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}getSlotText(t,e){const o=t.shadowRoot?.querySelector(`slot[name="${e}"]`),s=(o?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim();return s||null}};let h$1 = class h{registerComponent(t,e){customElements.get(t)||customElements.define(t,class extends e{});}closestElement(t,e=this,o=(e,s=e&&e.closest(t))=>e&&e!==document&&e!==window?s||o(e.getRootNode().host):null){return o(e)}handleComponentTagRename(t,e){const o=e.toLowerCase();t.tagName.toLowerCase()!==o&&t.setAttribute(o,true);}elementMatch(t,e){const o=e.toLowerCase();return t.tagName.toLowerCase()===o||t.hasAttribute(o)}};var c$1=css`:host{color:var(--ds-auro-loader-color)}:host>span{background-color:var(--ds-auro-loader-background-color);border-color:var(--ds-auro-loader-border-color)}:host([onlight]),:host([appearance=brand]){--ds-auro-loader-color: var(--ds-basic-color-brand-primary, #01426a)}:host([ondark]),:host([appearance=inverse]){--ds-auro-loader-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([orbit])>span{--ds-auro-loader-background-color: transparent}:host([orbit])>span:nth-child(1){--ds-auro-loader-border-color: currentcolor;opacity:.25}:host([orbit])>span:nth-child(2){--ds-auro-loader-border-color: currentcolor;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}
12957
13400
  `,u$4=css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, .875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, .75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, .625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, .875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, .05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, .05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, .05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, .05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, .05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, .1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(.875rem, 1.1666666667vw, .875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, .1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:focus:not(:focus-visible){outline:3px solid transparent}:host,:host>span{position:relative}:host{width:2rem;height:2rem;display:inline-block;font-size:0}:host>span{position:absolute;display:inline-block;float:none;top:0;left:0;width:2rem;height:2rem;border-radius:100%;border-style:solid;border-width:0;box-sizing:border-box}:host([xs]),:host([xs])>span{width:1.2rem;height:1.2rem}:host([sm]),:host([sm])>span{width:3rem;height:3rem}:host([md]),:host([md])>span{width:5rem;height:5rem}:host([lg]),:host([lg])>span{width:8rem;height:8rem}:host{--margin: .375rem;--margin-xs: .2rem;--margin-sm: .5rem;--margin-md: .75rem;--margin-lg: 1rem}:host([pulse]),:host([pulse])>span{position:relative}:host([pulse]){width:calc(3rem + var(--margin) * 6);height:calc(1rem + var(--margin) * 2)}:host([pulse])>span{width:1rem;height:1rem;margin:var(--margin);animation:pulse 1.5s ease infinite}:host([pulse][xs]){width:calc(1.95rem + var(--margin-xs) * 6);height:calc(.65rem + var(--margin-xs) * 2)}:host([pulse][xs])>span{margin:var(--margin-xs);width:.65rem;height:.65rem}:host([pulse][sm]){width:calc(6rem + var(--margin-sm) * 6);height:calc(2rem + var(--margin-sm) * 2)}:host([pulse][sm])>span{margin:var(--margin-sm);width:2rem;height:2rem}:host([pulse][md]){width:calc(9rem + var(--margin-md) * 6);height:calc(3rem + var(--margin-md) * 2)}:host([pulse][md])>span{margin:var(--margin-md);width:3rem;height:3rem}:host([pulse][lg]){width:calc(15rem + var(--margin-lg) * 6);height:calc(5rem + var(--margin-lg) * 2)}:host([pulse][lg])>span{margin:var(--margin-lg);width:5rem;height:5rem}:host([pulse])>span:nth-child(1){animation-delay:-.4s}:host([pulse])>span:nth-child(2){animation-delay:-.2s}:host([pulse])>span:nth-child(3){animation-delay:0ms}@keyframes pulse{0%,to{opacity:.1;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}:host([orbit]),:host([orbit])>span{opacity:1}:host([orbit])>span{border-width:5px}:host([orbit])>span:nth-child(2){animation:orbit 2s linear infinite}:host([orbit][sm])>span{border-width:8px}:host([orbit][md])>span{border-width:13px}:host([orbit][lg])>span{border-width:21px}@keyframes orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host([ringworm])>svg{animation:rotate 2s linear infinite;height:100%;width:100%;stroke:currentcolor;stroke-width:8}:host([ringworm]) .path{stroke-dashoffset:0;animation:ringworm 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes ringworm{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}:host([laser]){position:static;width:100%;display:block;height:0;overflow:hidden;font-size:unset}:host([laser])>span{position:fixed;width:100%;height:.25rem;border-radius:0;z-index:100}:host([laser])>span:nth-child(1){border-color:currentcolor;opacity:.25}:host([laser])>span:nth-child(2){border-color:currentcolor;animation:laser 2s linear infinite;opacity:1;width:50%}:host([laser][sm])>span:nth-child(2){width:20%}:host([laser][md])>span:nth-child(2){width:30%}:host([laser][lg])>span:nth-child(2){width:50%;animation-duration:1.5s}:host([laser][xl])>span:nth-child(2){width:80%;animation-duration:1.5s}@keyframes laser{0%{left:-100%}to{left:110%}}:host>.no-animation{display:none}@media (prefers-reduced-motion: reduce){:host{display:flex;align-items:center;justify-content:center}:host>span{opacity:1}:host>.loader{display:none}:host>svg{display:none}:host>.no-animation{display:block}}
@@ -13012,7 +13455,7 @@ let l$1 = class l{generateElementName(t,e){let o=t;return o+="-",o+=e.replace(/[
13012
13455
 
13013
13456
  var buttonVersion$1 = '12.3.2';
13014
13457
 
13015
- /* eslint-disable no-magic-numbers, no-undef-init, max-lines, lit/binding-positions, lit/no-invalid-html */
13458
+ /* 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 */
13016
13459
 
13017
13460
 
13018
13461
  // See https://git.io/JJ6SJ for "How to document your components using JSDoc"
@@ -13049,6 +13492,20 @@ class AuroCalendar extends RangeDatepicker {
13049
13492
  this.largeFullscreenHeadline = false;
13050
13493
  this.isFullscreen = false;
13051
13494
 
13495
+ /**
13496
+ * The date of the currently active cell (Unix timestamp).
13497
+ * Only one cell across the entire calendar has tabindex="0" at a time.
13498
+ * @private
13499
+ */
13500
+ this.activeCellDate = null;
13501
+
13502
+ /**
13503
+ * Whether the #calendarGrid wrapper currently has focus.
13504
+ * Used to determine whether the visualFocus ring should be shown.
13505
+ * @private
13506
+ */
13507
+ this._gridHasFocus = false;
13508
+
13052
13509
  /**
13053
13510
  * @private
13054
13511
  */
@@ -13059,6 +13516,12 @@ class AuroCalendar extends RangeDatepicker {
13059
13516
  */
13060
13517
  this.calendarRangeMonths = null;
13061
13518
 
13519
+ /**
13520
+ * Legacy array of disabled-date timestamps.
13521
+ * @private
13522
+ */
13523
+ this.disabledDays = [];
13524
+
13062
13525
  /**
13063
13526
  * @private
13064
13527
  */
@@ -13082,6 +13545,12 @@ class AuroCalendar extends RangeDatepicker {
13082
13545
  this.buttonTag = versioning.generateTag('auro-formkit-datepicker-button', buttonVersion$1, T$1);
13083
13546
 
13084
13547
  this.dropdown = undefined;
13548
+
13549
+ /**
13550
+ * Unique instance ID for the live region element.
13551
+ * @private
13552
+ */
13553
+ this._calendarInstanceId = Date.now().toString(36);
13085
13554
  }
13086
13555
 
13087
13556
  static get styles() {
@@ -13245,19 +13714,79 @@ class AuroCalendar extends RangeDatepicker {
13245
13714
  /**
13246
13715
  * Updates the month and year when the user navigates to the previous calendar month.
13247
13716
  * @private
13717
+ * @param {Object} [options] - Optional settings.
13718
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
13719
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
13248
13720
  * @returns {void}
13249
13721
  */
13250
- handlePrevMonth() {
13722
+ handlePrevMonth(options) {
13723
+ const opts = options instanceof Event ? {} : options || {};
13724
+ this.clearRangePreview({ force: true });
13251
13725
  this.utilCal.handleMonthChange(this, 'prev');
13726
+ if (!opts.skipActiveUpdate) {
13727
+ this.updateActiveCellForVisibleMonth();
13728
+ }
13729
+ this.announceMonthChange();
13252
13730
  }
13253
13731
 
13254
13732
  /**
13255
13733
  * Updates the month and year when the user navigates to the next calendar month.
13256
13734
  * @private
13735
+ * @param {Object} [options] - Optional settings.
13736
+ * @param {boolean} [options.skipActiveUpdate=false] - When true, skip the active cell
13737
+ * recomputation. Used by arrow key handlers that manage the active cell themselves.
13257
13738
  * @returns {void}
13258
13739
  */
13259
- handleNextMonth() {
13740
+ handleNextMonth(options) {
13741
+ const opts = options instanceof Event ? {} : options || {};
13742
+ this.clearRangePreview({ force: true });
13260
13743
  this.utilCal.handleMonthChange(this, 'next');
13744
+ if (!opts.skipActiveUpdate) {
13745
+ this.updateActiveCellForVisibleMonth();
13746
+ }
13747
+ this.announceMonthChange();
13748
+ }
13749
+
13750
+ /**
13751
+ * Announces the current month and year via the live region after navigation.
13752
+ * @private
13753
+ * @returns {void}
13754
+ */
13755
+ announceMonthChange() {
13756
+ // Cancel any pending debounced cell announcement so it does not
13757
+ // overwrite this month navigation announcement.
13758
+ if (this._focusAnnounceTimer) {
13759
+ clearTimeout(this._focusAnnounceTimer);
13760
+ this._focusAnnounceTimer = null;
13761
+ }
13762
+
13763
+ const date = this.centralDateObject;
13764
+ const localeCode = this.locale?.code || undefined;
13765
+ const formatter = new Intl.DateTimeFormat(localeCode, { month: 'long',
13766
+ year: 'numeric' });
13767
+ this.announceSelection(formatter.format(date));
13768
+ }
13769
+
13770
+ /**
13771
+ * Updates the active cell after month navigation (prev/next buttons).
13772
+ * Always moves the active cell to the first enabled date in the newly
13773
+ * visible months so that tabbing back to the grid lands on an enabled cell.
13774
+ * @private
13775
+ * @returns {void}
13776
+ */
13777
+ updateActiveCellForVisibleMonth() {
13778
+ // Use double-rAF to ensure child month/cell components have fully
13779
+ // rendered and cached their button references before we set tabindex.
13780
+ requestAnimationFrame(() => {
13781
+ requestAnimationFrame(() => {
13782
+ const newDate = this.computeActiveDate({ skipDateFrom: true });
13783
+
13784
+ if (newDate !== null && newDate !== undefined) {
13785
+ this.activeCellDate = newDate;
13786
+ this.setActiveCell(this.activeCellDate);
13787
+ }
13788
+ });
13789
+ });
13261
13790
  }
13262
13791
 
13263
13792
  /**
@@ -13365,7 +13894,1007 @@ class AuroCalendar extends RangeDatepicker {
13365
13894
  this.utilCal.scrollMonthIntoView(this, date, this.format);
13366
13895
  }
13367
13896
 
13897
+ /**
13898
+ * Gets all rendered month components.
13899
+ * @private
13900
+ * @returns {Array} Array of auro-formkit-calendar-month elements.
13901
+ */
13902
+ getMonthComponents() {
13903
+ return Array.from(this.shadowRoot.querySelectorAll('auro-formkit-calendar-month'));
13904
+ }
13905
+
13906
+ /**
13907
+ * Gets all focusable cells across all rendered months.
13908
+ * @private
13909
+ * @returns {Array} Array of auro-formkit-calendar-cell elements.
13910
+ */
13911
+ getAllFocusableCells() {
13912
+ const months = this.getMonthComponents();
13913
+ let cells = [];
13914
+ months.forEach((month) => {
13915
+ cells = cells.concat(month.getFocusableCells());
13916
+ });
13917
+ return cells;
13918
+ }
13919
+
13920
+ /**
13921
+ * Sets the active cell across all months. Only one cell has tabindex="0" at a time.
13922
+ * Uses imperative DOM manipulation — no Lit re-render triggered.
13923
+ * Also updates ariaActiveDescendantElement on the grid wrapper so
13924
+ * screen readers announce the active cell without moving DOM focus.
13925
+ * @param {Number} date - Unix timestamp of the cell to activate.
13926
+ * @returns {void}
13927
+ */
13928
+ setActiveCell(date) {
13929
+ const allCells = this.getAllFocusableCells();
13930
+
13931
+ let newActiveCell = null;
13932
+ allCells.forEach((cell) => {
13933
+ if (cell.day && cell.day.date === date) {
13934
+ cell.setActive();
13935
+ newActiveCell = cell;
13936
+ } else if (cell.active) {
13937
+ cell.clearActive();
13938
+ }
13939
+ });
13940
+
13941
+ this.activeCellDate = date;
13942
+
13943
+ // Apply activeCell ring only when the grid currently has focus.
13944
+ if (newActiveCell && this._gridHasFocus) {
13945
+ const btn = newActiveCell._cachedButton || newActiveCell.shadowRoot.querySelector('button.day');
13946
+ if (btn) {
13947
+ btn.classList.add('activeCell');
13948
+ }
13949
+ }
13950
+ }
13951
+
13952
+ /**
13953
+ * Focuses the calendar grid wrapper and sets the active cell.
13954
+ * DOM focus stays on the grid wrapper; the aria-live region
13955
+ * tells the screen reader which cell is "active".
13956
+ * @returns {void}
13957
+ */
13958
+ focusActiveCell() {
13959
+ if (this.activeCellDate !== null && this.activeCellDate !== undefined) {
13960
+ this.setActiveCell(this.activeCellDate);
13961
+ }
13962
+
13963
+ const gridWrapper = this.shadowRoot.querySelector('#calendarGrid');
13964
+ if (gridWrapper) {
13965
+ gridWrapper.focus({ preventScroll: true,
13966
+ focusVisible: true });
13967
+ }
13968
+ }
13969
+
13970
+ /**
13971
+ * Shows the activeCell ring when the grid gains focus.
13972
+ * @private
13973
+ * @returns {void}
13974
+ */
13975
+ handleGridFocusIn() {
13976
+ this._gridHasFocus = true;
13977
+ const activeCell = this.getAllFocusableCells().find((cell) => cell.active);
13978
+ if (activeCell) {
13979
+ const btn = activeCell._cachedButton || activeCell.shadowRoot.querySelector('button.day');
13980
+ if (btn) {
13981
+ btn.classList.add('activeCell');
13982
+ }
13983
+ }
13984
+ }
13985
+
13986
+ /**
13987
+ * Hides the activeCell ring when the grid loses focus.
13988
+ * @private
13989
+ * @returns {void}
13990
+ */
13991
+ handleGridFocusOut() {
13992
+ this._gridHasFocus = false;
13993
+ // Remove activeCell from ALL cells to prevent stale rings.
13994
+ const allCells = this.getAllFocusableCells();
13995
+ for (const cell of allCells) {
13996
+ const btn = cell._cachedButton || cell.shadowRoot.querySelector('button.day');
13997
+ if (btn) {
13998
+ btn.classList.remove('activeCell');
13999
+ }
14000
+ }
14001
+ // Clear range hover preview so no highlight lingers after focus leaves the grid.
14002
+ this.clearRangePreview();
14003
+ }
14004
+
14005
+ /**
14006
+ * Computes the initial active date from data properties alone — no DOM required.
14007
+ * Priority:
14008
+ * 1. Selected date (dateFrom) if within range
14009
+ * 2. Today's date if not disabled (in-range and not blackout)
14010
+ * 3. First future non-disabled date (scans day-by-day from today up to 1 year)
14011
+ * 4. First previous non-disabled date (scans day-by-day from today up to 1 year)
14012
+ * 5. First enabled date in finite [min, max] range
14013
+ * 5b. First enabled date scanning forward from finite min (unbounded max)
14014
+ * 5c. First enabled date scanning backward from finite max (unbounded min)
14015
+ * 6. First in-range date (even if blackout) so focus can land somewhere
14016
+ * 7. Undefined — no valid target.
14017
+ *
14018
+ * @private
14019
+ * @param {Object} [options] - Optional settings.
14020
+ * @param {boolean} [options.skipDateFrom=false] - When true, skip the selected-date
14021
+ * shortcut (step 1). Used after month navigation so the active cell lands in the
14022
+ * newly visible month instead of jumping back to the selected date's month.
14023
+ * @returns {Number|undefined} Unix timestamp (seconds) of the date to activate, or undefined.
14024
+ */
14025
+ computeActiveDate(options = {}) {
14026
+ const MAX_SCAN_DAYS = 366; // scan at most ~1 year in each direction
14027
+
14028
+ /**
14029
+ * Adds days to a timestamp using Date arithmetic to handle DST correctly.
14030
+ * Returns a local-midnight-aligned timestamp in seconds.
14031
+ * @param {Number} ts - Unix timestamp in seconds.
14032
+ * @param {Number} days - Number of days to add.
14033
+ * @returns {Number} The adjusted timestamp in seconds.
14034
+ */
14035
+ const addDays = (ts, days) => {
14036
+ const date = new Date(ts * 1000);
14037
+ date.setDate(date.getDate() + days);
14038
+ date.setHours(0, 0, 0, 0);
14039
+ return Math.floor(date.getTime() / 1000);
14040
+ };
14041
+
14042
+ const rawMin = this.minDateObject?.getTime() / 1000;
14043
+ const rawMax = this.maxDateObject?.getTime() / 1000;
14044
+
14045
+ // When min/max are NaN (no minDate/maxDate configured), treat as unbounded.
14046
+ const minTs = Number.isFinite(rawMin) ? rawMin : -Infinity;
14047
+ const maxTs = Number.isFinite(rawMax) ? rawMax : Infinity;
14048
+
14049
+ // Build a Set of blackout timestamps for O(1) lookup.
14050
+ const blackoutSet = new Set(this.disabledDays.map((day) => parseInt(day, 10)));
14051
+
14052
+ // Also include ISO-format blackoutDates from the datepicker if available.
14053
+ // Parse YYYY-MM-DD as local date to avoid UTC shift issues.
14054
+ const isoBlackouts = this.datepicker?.blackoutDates;
14055
+ if (Array.isArray(isoBlackouts)) {
14056
+ for (const isoStr of isoBlackouts) {
14057
+ const parts = isoStr.split('-');
14058
+ const ts = Math.floor(new Date(parseInt(parts[0], 10), parseInt(parts[1], 10) - 1, parseInt(parts[2], 10)).getTime() / 1000);
14059
+ if (Number.isFinite(ts)) {
14060
+ blackoutSet.add(ts);
14061
+ }
14062
+ }
14063
+ }
14064
+
14065
+ /**
14066
+ * A date (unix timestamp in seconds, midnight-aligned) is "enabled" when
14067
+ * it is within [min, max] AND not a blackout day.
14068
+ * @param {Number} ts - Unix timestamp in seconds.
14069
+ * @returns {boolean} True if the date is enabled.
14070
+ */
14071
+ const isEnabled = (ts) => ts >= minTs && ts <= maxTs && !blackoutSet.has(ts);
14072
+
14073
+ /**
14074
+ * A date is "in range" (focusable in the grid) when it is within [min, max].
14075
+ * Blackout dates are focusable but not selectable.
14076
+ * @param {Number} ts - Unix timestamp in seconds.
14077
+ * @returns {boolean} True if the date is in range.
14078
+ */
14079
+ const isInRange = (ts) => ts >= minTs && ts <= maxTs;
14080
+
14081
+ // 1. Selected date — always valid target if within range (user chose it).
14082
+ // Skipped when called from month navigation so the active cell lands in
14083
+ // the newly visible month rather than the (possibly off-screen) selection.
14084
+ if (!options.skipDateFrom && this.dateFrom) {
14085
+ const parsedFrom = parseInt(this.dateFrom, 10);
14086
+ if (Number.isFinite(parsedFrom) && isInRange(parsedFrom)) {
14087
+ return parsedFrom;
14088
+ }
14089
+ }
14090
+
14091
+ // 2. Today's date (midnight-aligned) if enabled.
14092
+ const now = Math.floor(new Date().setHours(0, 0, 0, 0) / 1000);
14093
+
14094
+ // When centralDate is configured, prefer a date within the month(s) that
14095
+ // will actually be rendered. If today falls outside the visible range, an
14096
+ // active cell set to today would have no matching DOM element and keyboard
14097
+ // focus could not enter the calendar.
14098
+
14099
+ if (this.centralDateObject) {
14100
+ const centralMonth = this.centralDateObject.getMonth();
14101
+ const centralYear = this.centralDateObject.getFullYear();
14102
+ const todayDate = new Date(now * 1000);
14103
+ const todayMonth = todayDate.getMonth();
14104
+ const todayYear = todayDate.getFullYear();
14105
+
14106
+ // Today is outside the centralDate's month — scan for an enabled date
14107
+ // within the visible month instead.
14108
+ if (todayMonth !== centralMonth || todayYear !== centralYear) {
14109
+ const visibleStart = new Date(centralYear, centralMonth, 1);
14110
+ visibleStart.setHours(0, 0, 0, 0);
14111
+ const visibleEnd = new Date(centralYear, centralMonth + 1, 0); // last day of month
14112
+ visibleEnd.setHours(0, 0, 0, 0);
14113
+ const startTs = Math.floor(visibleStart.getTime() / 1000);
14114
+ const daysInMonth = visibleEnd.getDate();
14115
+
14116
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
14117
+ const ts = addDays(startTs, idx);
14118
+ if (isEnabled(ts)) {
14119
+ return ts;
14120
+ }
14121
+ }
14122
+
14123
+ // No enabled date in the visible month — fall back to first in-range
14124
+ // date in the month so focus still lands on a focusable cell.
14125
+ for (let idx = 0; idx < daysInMonth; idx += 1) {
14126
+ const ts = addDays(startTs, idx);
14127
+ if (isInRange(ts)) {
14128
+ return ts;
14129
+ }
14130
+ }
14131
+ }
14132
+ }
14133
+
14134
+ if (isEnabled(now)) {
14135
+ return now;
14136
+ }
14137
+
14138
+ // When a centralDate is configured (or inferred), constrain the scan to the
14139
+ // rendered month(s) first so a single-month calendar does not pick a date
14140
+ // that has no DOM cell. Determine the visible range based on centralDate and
14141
+ // the number of rendered months.
14142
+ const renderedMonths = Math.max(this.numCalendars, 1);
14143
+ const visibleAnchor = this.centralDateObject ?? new Date(now * 1000);
14144
+ const visMonthStart = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth(), 1);
14145
+ visMonthStart.setHours(0, 0, 0, 0);
14146
+ const visMonthEnd = new Date(visibleAnchor.getFullYear(), visibleAnchor.getMonth() + renderedMonths, 0);
14147
+ visMonthEnd.setHours(0, 0, 0, 0);
14148
+ const visStartTs = Math.floor(visMonthStart.getTime() / 1000);
14149
+ const visEndTs = Math.floor(visMonthEnd.getTime() / 1000);
14150
+ const visDays = Math.round((visEndTs - visStartTs) / 86400) + 1;
14151
+
14152
+ // Scan visible months for an enabled date.
14153
+ for (let idx = 0; idx < visDays; idx += 1) {
14154
+ const ts = addDays(visStartTs, idx);
14155
+ if (isEnabled(ts)) {
14156
+ return ts;
14157
+ }
14158
+ }
14159
+
14160
+ // No enabled date in visible months — try an in-range (focusable) date so
14161
+ // keyboard focus still has a tabindex="0" target.
14162
+ for (let idx = 0; idx < visDays; idx += 1) {
14163
+ const ts = addDays(visStartTs, idx);
14164
+ if (isInRange(ts)) {
14165
+ return ts;
14166
+ }
14167
+ }
14168
+
14169
+ // 3. First future enabled date (scan forward from tomorrow, capped by max and MAX_SCAN_DAYS).
14170
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
14171
+ const ts = addDays(now, idx);
14172
+ if (Number.isFinite(maxTs) && ts > maxTs) {
14173
+ break;
14174
+ }
14175
+ if (isEnabled(ts)) {
14176
+ return ts;
14177
+ }
14178
+ }
14179
+
14180
+ // 4. First previous enabled date (scan backward from yesterday, capped by min and MAX_SCAN_DAYS).
14181
+ for (let idx = 1; idx <= MAX_SCAN_DAYS; idx += 1) {
14182
+ const ts = addDays(now, -idx);
14183
+ if (Number.isFinite(minTs) && ts < minTs) {
14184
+ break;
14185
+ }
14186
+ if (isEnabled(ts)) {
14187
+ return ts;
14188
+ }
14189
+ }
14190
+
14191
+ // 5. If scans missed (e.g. min/max range is far from today), fall back to
14192
+ // the first enabled date in the [min, max] range.
14193
+ if (Number.isFinite(minTs) && Number.isFinite(maxTs)) {
14194
+ let ts = minTs;
14195
+ for (let idx = 0; ts <= maxTs; idx += 1) {
14196
+ if (isEnabled(ts)) {
14197
+ return ts;
14198
+ }
14199
+ ts = addDays(minTs, idx + 1);
14200
+ }
14201
+ }
14202
+
14203
+ // 5b. Finite min with unbounded max (e.g. minDate far in the future):
14204
+ // scan forward from min for up to MAX_SCAN_DAYS.
14205
+ if (Number.isFinite(minTs) && !Number.isFinite(maxTs)) {
14206
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
14207
+ const ts = addDays(minTs, idx);
14208
+ if (isEnabled(ts)) {
14209
+ return ts;
14210
+ }
14211
+ }
14212
+ }
14213
+
14214
+ // 5c. Unbounded min with a finite max far in the past (e.g. birth-date picker):
14215
+ // scan backward from max for up to MAX_SCAN_DAYS.
14216
+ if (!Number.isFinite(minTs) && Number.isFinite(maxTs)) {
14217
+ for (let idx = 0; idx <= MAX_SCAN_DAYS; idx += 1) {
14218
+ const ts = addDays(maxTs, -idx);
14219
+ if (isEnabled(ts)) {
14220
+ return ts;
14221
+ }
14222
+ }
14223
+ }
14224
+
14225
+ // 6. All dates are blackout — fall back to the first in-range date so focus
14226
+ // still lands on a focusable (but not selectable) cell.
14227
+ if (Number.isFinite(minTs) && isInRange(minTs)) {
14228
+ return minTs;
14229
+ }
14230
+ if (isInRange(now)) {
14231
+ return now;
14232
+ }
14233
+
14234
+ return undefined;
14235
+ }
14236
+
14237
+ /**
14238
+ * Checks if a target date (unix seconds) is within the configured [min, max] range.
14239
+ * Returns false if the date falls outside the range, preventing navigation
14240
+ * to months where all dates are disabled.
14241
+ * @private
14242
+ * @param {Number} targetTs - Unix timestamp in seconds.
14243
+ * @returns {Boolean} True if the date is within range.
14244
+ */
14245
+ isDateInRange(targetTs) {
14246
+ const rawMin = this.minDateObject?.getTime() / 1000;
14247
+ const rawMax = this.maxDateObject?.getTime() / 1000;
14248
+ if (Number.isFinite(rawMin) && targetTs < rawMin) {
14249
+ return false;
14250
+ }
14251
+ if (Number.isFinite(rawMax) && targetTs > rawMax) {
14252
+ return false;
14253
+ }
14254
+ return true;
14255
+ }
14256
+
14257
+ /**
14258
+ * Handles arrow key navigation on the calendar grid wrapper.
14259
+ * Focus stays on the grid wrapper; only ariaActiveDescendantElement
14260
+ * and the visual active-cell indicator change.
14261
+ * @private
14262
+ * @param {KeyboardEvent} event - The keyboard event.
14263
+ * @returns {void}
14264
+ */
14265
+ handleGridKeyDown(event) {
14266
+ const { key } = event;
14267
+ const actionKeys = [
14268
+ 'ArrowRight',
14269
+ 'ArrowLeft',
14270
+ 'ArrowDown',
14271
+ 'ArrowUp',
14272
+ 'Enter',
14273
+ ' '
14274
+ ];
14275
+
14276
+ if (!actionKeys.includes(key)) {
14277
+ return;
14278
+ }
14279
+
14280
+ event.preventDefault();
14281
+
14282
+ const allCells = this.getAllFocusableCells();
14283
+ if (allCells.length === 0) {
14284
+ return;
14285
+ }
14286
+
14287
+ const activeCell = allCells.find((cell) => cell.active);
14288
+ if (!activeCell) {
14289
+ return;
14290
+ }
14291
+
14292
+ // Handle Enter/Space to select the active cell
14293
+ if (key === 'Enter' || key === ' ') {
14294
+ activeCell.handleTap();
14295
+ return;
14296
+ }
14297
+
14298
+ const activeIndex = allCells.indexOf(activeCell);
14299
+
14300
+ if (key === 'ArrowRight' || key === 'ArrowLeft') {
14301
+ const direction = key === 'ArrowRight' ? 1 : -1;
14302
+ const targetIndex = activeIndex + direction;
14303
+
14304
+ if (targetIndex >= 0 && targetIndex < allCells.length) {
14305
+ // Target cell exists in rendered months
14306
+ this.setActiveCell(allCells[targetIndex].day.date);
14307
+ this.scrollToActiveCell();
14308
+ // Dispatch focus event for the cell so live region + range preview update
14309
+ this.handleCellFocused({ detail: { date: allCells[targetIndex].day.date } });
14310
+ } else {
14311
+ // At boundary — need to navigate to next/prev month
14312
+ const navDir = direction === 1 ? 'next' : 'prev';
14313
+ const targetDate = new Date(activeCell.day.date * 1000);
14314
+ targetDate.setDate(targetDate.getDate() + direction);
14315
+ targetDate.setHours(0, 0, 0, 0);
14316
+ const targetTs = Math.floor(targetDate.getTime() / 1000);
14317
+
14318
+ if (this.isDateInRange(targetTs) && ((navDir === 'next' && this.showNextMonthBtn) || (navDir === 'prev' && this.showPrevMonthBtn))) { // eslint-disable-line no-extra-parens
14319
+
14320
+ if (navDir === 'next') {
14321
+ this.handleNextMonth({ skipActiveUpdate: true });
14322
+ } else {
14323
+ this.handlePrevMonth({ skipActiveUpdate: true });
14324
+ }
14325
+ requestAnimationFrame(() => {
14326
+ requestAnimationFrame(() => {
14327
+ const cells = this.getAllFocusableCells();
14328
+ const target = cells.find((cell) => cell.day && cell.day.date === targetTs);
14329
+ if (target) {
14330
+ this.setActiveCell(target.day.date);
14331
+ this.handleCellFocused({ detail: { date: target.day.date } });
14332
+ } else if (cells.length > 0) {
14333
+ const fallback = navDir === 'next' ? cells[cells.length - 1] : cells[0];
14334
+ this.setActiveCell(fallback.day.date);
14335
+ this.handleCellFocused({ detail: { date: fallback.day.date } });
14336
+ }
14337
+ // Re-focus grid wrapper after month change re-render
14338
+ this.focusActiveCell();
14339
+ });
14340
+ });
14341
+ }
14342
+ }
14343
+ } else if (key === 'ArrowDown' || key === 'ArrowUp') {
14344
+ const increment = key === 'ArrowDown' ? 7 : -7;
14345
+ const currentDate = new Date(activeCell.day.date * 1000);
14346
+ currentDate.setDate(currentDate.getDate() + increment);
14347
+ currentDate.setHours(0, 0, 0, 0);
14348
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
14349
+
14350
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
14351
+
14352
+ if (targetCell) {
14353
+ this.setActiveCell(targetCell.day.date);
14354
+ this.scrollToActiveCell();
14355
+ this.handleCellFocused({ detail: { date: targetCell.day.date } });
14356
+ } else if (this.isDateInRange(targetDate)) {
14357
+ // Target might be in an unrendered month
14358
+ const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
14359
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
14360
+ if (navDirection === 'next') {
14361
+ this.handleNextMonth({ skipActiveUpdate: true });
14362
+ } else {
14363
+ this.handlePrevMonth({ skipActiveUpdate: true });
14364
+ }
14365
+ requestAnimationFrame(() => {
14366
+ requestAnimationFrame(() => {
14367
+ const cells = this.getAllFocusableCells();
14368
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14369
+ if (target) {
14370
+ this.setActiveCell(target.day.date);
14371
+ this.handleCellFocused({ detail: { date: target.day.date } });
14372
+ } else if (cells.length > 0) {
14373
+ let nearest = null;
14374
+
14375
+ if (navDirection === 'next') {
14376
+ [nearest] = cells;
14377
+ } else {
14378
+ nearest = cells[cells.length - 1];
14379
+ }
14380
+ this.setActiveCell(nearest.day.date);
14381
+ this.handleCellFocused({ detail: { date: nearest.day.date } });
14382
+ }
14383
+ this.focusActiveCell();
14384
+ });
14385
+ });
14386
+ }
14387
+ }
14388
+ }
14389
+ }
14390
+
14391
+ /**
14392
+ * Handles cross-month boundary navigation events from month components.
14393
+ * @private
14394
+ * @param {CustomEvent} event - The boundary event with direction and source date info.
14395
+ * @returns {void}
14396
+ */
14397
+ handleMonthBoundary(event) {
14398
+ const { direction, fromDate, key } = event.detail;
14399
+
14400
+ if (key === 'ArrowRight' || key === 'ArrowLeft') {
14401
+ // Linear navigation: find adjacent focusable cell across months
14402
+ const allCells = this.getAllFocusableCells();
14403
+ const currentIndex = allCells.findIndex((cell) => cell.day && cell.day.date === fromDate);
14404
+
14405
+ if (currentIndex === -1) {
14406
+ return;
14407
+ }
14408
+
14409
+ let targetIndex = -1;
14410
+ if (direction === 'next') {
14411
+ targetIndex = currentIndex + 1;
14412
+ }
14413
+
14414
+ if (targetIndex >= 0 && targetIndex < allCells.length) {
14415
+ const targetCell = allCells[targetIndex];
14416
+ this.setActiveCell(targetCell.day.date);
14417
+ this.scrollToActiveCell();
14418
+ this.focusActiveCell();
14419
+ } else if (direction === 'next' && this.showNextMonthBtn) {
14420
+ // Navigate to next month and focus the computed next date.
14421
+ // Using the target date (fromDate + 1 day) instead of cells[0]
14422
+ // avoids jumping backward in range datepickers where cells[0]
14423
+ // belongs to the previous (still-rendered) month.
14424
+ const nextDate = new Date(fromDate * 1000);
14425
+ nextDate.setDate(nextDate.getDate() + 1);
14426
+ nextDate.setHours(0, 0, 0, 0);
14427
+ const nextTs = Math.floor(nextDate.getTime() / 1000);
14428
+
14429
+ if (!this.isDateInRange(nextTs)) {
14430
+ return;
14431
+ }
14432
+
14433
+ this.handleNextMonth({ skipActiveUpdate: true });
14434
+ requestAnimationFrame(() => {
14435
+ requestAnimationFrame(() => {
14436
+ const cells = this.getAllFocusableCells();
14437
+ const target = cells.find((cell) => cell.day && cell.day.date === nextTs);
14438
+ if (target) {
14439
+ this.setActiveCell(target.day.date);
14440
+ this.focusActiveCell();
14441
+ } else if (cells.length > 0) {
14442
+ // Fallback: first cell of the last rendered month
14443
+ this.setActiveCell(cells[cells.length - 1].day.date);
14444
+ this.focusActiveCell();
14445
+ }
14446
+ });
14447
+ });
14448
+ } else if (direction === 'prev' && this.showPrevMonthBtn) {
14449
+ // Navigate to previous month and focus the computed previous date.
14450
+ const prevDate = new Date(fromDate * 1000);
14451
+ prevDate.setDate(prevDate.getDate() - 1);
14452
+ prevDate.setHours(0, 0, 0, 0);
14453
+ const prevTs = Math.floor(prevDate.getTime() / 1000);
14454
+
14455
+ if (!this.isDateInRange(prevTs)) {
14456
+ return;
14457
+ }
14458
+
14459
+ this.handlePrevMonth({ skipActiveUpdate: true });
14460
+ requestAnimationFrame(() => {
14461
+ requestAnimationFrame(() => {
14462
+ const cells = this.getAllFocusableCells();
14463
+ const target = cells.find((cell) => cell.day && cell.day.date === prevTs);
14464
+ if (target) {
14465
+ this.setActiveCell(target.day.date);
14466
+ this.focusActiveCell();
14467
+ } else if (cells.length > 0) {
14468
+ // Fallback: last cell of the first rendered month
14469
+ this.setActiveCell(cells[0].day.date);
14470
+ this.focusActiveCell();
14471
+ }
14472
+ });
14473
+ });
14474
+ }
14475
+ } else if (key === 'ArrowDown' || key === 'ArrowUp') {
14476
+ // Vertical navigation: find same day-of-week +/- 7 days
14477
+ // Use Date arithmetic instead of fixed seconds to handle DST correctly
14478
+ const increment = key === 'ArrowDown' ? 7 : -7;
14479
+ const currentDate = new Date(fromDate * 1000);
14480
+ currentDate.setDate(currentDate.getDate() + increment);
14481
+ currentDate.setHours(0, 0, 0, 0);
14482
+ const targetDate = Math.floor(currentDate.getTime() / 1000);
14483
+
14484
+ const allCells = this.getAllFocusableCells();
14485
+ const targetCell = allCells.find((cell) => cell.day && cell.day.date === targetDate);
14486
+
14487
+ if (targetCell) {
14488
+ this.setActiveCell(targetCell.day.date);
14489
+ this.scrollToActiveCell();
14490
+ this.focusActiveCell();
14491
+ } else if (this.isDateInRange(targetDate)) {
14492
+ // Target might be in an unrendered month, navigate there
14493
+ const navDirection = key === 'ArrowDown' ? 'next' : 'prev';
14494
+ if ((navDirection === 'next' && this.showNextMonthBtn) || (navDirection === 'prev' && this.showPrevMonthBtn)) { // eslint-disable-line no-extra-parens
14495
+ if (navDirection === 'next') {
14496
+ this.handleNextMonth({ skipActiveUpdate: true });
14497
+ } else {
14498
+ this.handlePrevMonth({ skipActiveUpdate: true });
14499
+ }
14500
+ requestAnimationFrame(() => {
14501
+ requestAnimationFrame(() => {
14502
+ const cells = this.getAllFocusableCells();
14503
+ const target = cells.find((cell) => cell.day && cell.day.date === targetDate);
14504
+ if (target) {
14505
+ this.setActiveCell(target.day.date);
14506
+ this.focusActiveCell();
14507
+ } else if (cells.length > 0) {
14508
+ // Clamp to nearest focusable cell
14509
+ const nearest = navDirection === 'next' ? cells[0] : cells[cells.length - 1];
14510
+ this.setActiveCell(nearest.day.date);
14511
+ this.focusActiveCell();
14512
+ }
14513
+ });
14514
+ });
14515
+ }
14516
+ }
14517
+ }
14518
+ }
14519
+
14520
+ /**
14521
+ * Handles cell activation events from month components.
14522
+ * @private
14523
+ * @param {CustomEvent} event - The activation event with target date.
14524
+ * @returns {void}
14525
+ */
14526
+ handleCellActivate(event) {
14527
+ const { date } = event.detail;
14528
+ this.setActiveCell(date);
14529
+
14530
+ // Don't call focusActiveCell() here. The tap/click already placed
14531
+ // focus on the cell button, and moving it to #calendarGrid would
14532
+ // trigger focusout on the button, closing any open popover on the
14533
+ // cell. Keyboard events are composed and still bubble through
14534
+ // shadow DOM boundaries to the grid's @keydown handler, so
14535
+ // subsequent keyboard navigation continues to work.
14536
+ }
14537
+
14538
+ /**
14539
+ * Handles focus events from calendar cells.
14540
+ * Updates the live region with an SR announcement and triggers
14541
+ * the imperative range preview if applicable.
14542
+ * @private
14543
+ * @param {CustomEvent} event - The calendar-cell-focused event.
14544
+ * @returns {void}
14545
+ */
14546
+ handleCellFocused(event) {
14547
+ const { date } = event.detail;
14548
+ if (date === null) {
14549
+ return;
14550
+ }
14551
+
14552
+ // With aria-activedescendant, the button no longer receives native focus,
14553
+ // so we use the debounced live region for the full context announcement.
14554
+ const announcement = this.buildFocusAnnouncement(date);
14555
+ this.announceFocusDebounced(announcement);
14556
+
14557
+ // Update the range preview imperatively if in range-preview mode.
14558
+ this.updateRangePreview(date);
14559
+ }
14560
+
14561
+ /**
14562
+ * Builds a full SR announcement string for a focused cell date.
14563
+ * Includes the localized date, range position, popover content,
14564
+ * and blackout status.
14565
+ * @private
14566
+ * @param {Number} date - Unix timestamp (seconds) of the focused cell.
14567
+ * @returns {String} The announcement string.
14568
+ */
14569
+ buildFocusAnnouncement(date) {
14570
+ let label = this.formatAnnouncementDate(date);
14571
+
14572
+ // Append date slot content (e.g. prices) if present.
14573
+ const dateObj = new Date(date * 1000);
14574
+ const mm = String(dateObj.getMonth() + 1).padStart(2, '0');
14575
+ const dd = String(dateObj.getDate()).padStart(2, '0');
14576
+ const yyyy = dateObj.getFullYear();
14577
+ const dateStr = `${mm}_${dd}_${yyyy}`;
14578
+ const dateSlotEl = this.datepicker?.querySelector(`[slot="date_${dateStr}"]`);
14579
+ if (dateSlotEl) {
14580
+ const text = dateSlotEl.innerText?.trim();
14581
+ if (text) {
14582
+ label += `, ${text}`;
14583
+ }
14584
+ }
14585
+
14586
+ // Append popover content if present.
14587
+ const popoverEl = this.datepicker?.querySelector(`[slot="popover_${dateStr}"]`);
14588
+ if (popoverEl) {
14589
+ const text = popoverEl.innerText?.trim();
14590
+ if (text) {
14591
+ label += `, ${text}`;
14592
+ }
14593
+ }
14594
+
14595
+ // Append range position context.
14596
+ if (this.datepicker?.hasAttribute('range')) {
14597
+ const rangeLabel = this.getRangePositionLabel(date);
14598
+ if (rangeLabel) {
14599
+ label += `, ${rangeLabel}`;
14600
+ }
14601
+ }
14602
+
14603
+ // Append blackout label.
14604
+ if (this.isDateBlackout(date)) {
14605
+ label += `, ${this.datepicker?.blackoutLabel || 'unavailable'}`;
14606
+ }
14607
+
14608
+ return label;
14609
+ }
14610
+
14611
+ /**
14612
+ * Determines the range position label for a given date.
14613
+ * @private
14614
+ * @param {Number} date - Unix timestamp (seconds).
14615
+ * @returns {String|null} The range position label, or null.
14616
+ */
14617
+ getRangePositionLabel(date) {
14618
+ const parsedFrom = Number.parseInt(this.dateFrom, 10);
14619
+ if (!Number.isFinite(parsedFrom)) {
14620
+ return null;
14621
+ }
14622
+
14623
+ const departTs = startOfDay$2(parsedFrom * 1000) / 1000;
14624
+ const parsedTo = Number.parseInt(this.dateTo, 10);
14625
+ const hasTo = Number.isFinite(parsedTo);
14626
+ const returnTs = hasTo ? startOfDay$2(parsedTo * 1000) / 1000 : null;
14627
+
14628
+ if (date === departTs) {
14629
+ return this.datepicker.rangeLabelStart || 'range start';
14630
+ }
14631
+ if (hasTo && date === returnTs) {
14632
+ return this.datepicker.rangeLabelEnd || 'range end';
14633
+ }
14634
+ if (date < departTs) {
14635
+ return this.datepicker.rangeLabelBeforeRange || 'before range';
14636
+ }
14637
+ if (hasTo && date > departTs && date < returnTs) {
14638
+ return this.datepicker.rangeLabelInRange || 'in range';
14639
+ }
14640
+ return this.datepicker.rangeLabelAfterRange || 'after range';
14641
+ }
14642
+
14643
+ /**
14644
+ * Checks whether a given date is a blackout date.
14645
+ * @private
14646
+ * @param {Number} dateTs - Unix timestamp (seconds).
14647
+ * @returns {Boolean} True if the date is blacked out.
14648
+ */
14649
+ isDateBlackout(dateTs) {
14650
+ // Check legacy disabledDays.
14651
+ if (Array.isArray(this.disabledDays) && this.disabledDays.length > 0) {
14652
+ if (this.disabledDays.findIndex((day) => parseInt(day, 10) === dateTs) !== -1) {
14653
+ return true;
14654
+ }
14655
+ }
14656
+
14657
+ // Check ISO blackoutDates.
14658
+ const blackoutDates = this.datepicker?.blackoutDates;
14659
+ if (Array.isArray(blackoutDates) && blackoutDates.length > 0) {
14660
+ const date = new Date(dateTs * 1000);
14661
+ const yyyy = date.getFullYear();
14662
+ const mm = String(date.getMonth() + 1).padStart(2, '0');
14663
+ const dd = String(date.getDate()).padStart(2, '0');
14664
+ if (blackoutDates.includes(`${yyyy}-${mm}-${dd}`)) {
14665
+ return true;
14666
+ }
14667
+ }
14668
+
14669
+ return false;
14670
+ }
14671
+
14672
+ /**
14673
+ * Updates the range preview classes imperatively across all cells.
14674
+ * Only active when in range mode with dateFrom set and dateTo not yet set.
14675
+ * @private
14676
+ * @param {Number} hoveredDate - Unix timestamp of the hovered/focused date.
14677
+ * @returns {void}
14678
+ */
14679
+ updateRangePreview(hoveredDate) {
14680
+ if (this.noRange || !this.dateFrom || this.dateTo) {
14681
+ return;
14682
+ }
14683
+
14684
+ const parsedDateFrom = parseInt(this.dateFrom, 10);
14685
+ const allCells = this.getAllFocusableCells();
14686
+
14687
+ allCells.forEach((cell) => {
14688
+ cell.updateRangePreviewClasses(hoveredDate, parsedDateFrom);
14689
+ });
14690
+ }
14691
+
14692
+ /**
14693
+ * Clears range preview classes from all cells.
14694
+ * @private
14695
+ * @param {Object} [options] - Optional settings.
14696
+ * @param {boolean} [options.force=false] - When true, clears classes even
14697
+ * when both dateFrom and dateTo are set. Used by month nav handlers
14698
+ * since the subsequent re-render re-applies classMap-managed classes,
14699
+ * while `lastHoveredDate` (not in classMap) would otherwise persist.
14700
+ * @returns {void}
14701
+ */
14702
+ clearRangePreview(options) {
14703
+ const opts = options instanceof Event ? {} : options || {};
14704
+ if (!opts.force && this.dateFrom && this.dateTo) {
14705
+ return;
14706
+ }
14707
+
14708
+ const allCells = this.getAllFocusableCells();
14709
+ allCells.forEach((cell) => {
14710
+ cell.clearRangePreviewClasses();
14711
+ });
14712
+ }
14713
+
14714
+ /**
14715
+ * Overrides the base class handler to prevent setting `this.hoveredDate`
14716
+ * as a reactive property. Instead, handles the range preview imperatively.
14717
+ * @private
14718
+ * @param {CustomEvent} event - The hovered-date-changed event from a month.
14719
+ * @returns {void}
14720
+ */
14721
+ hoveredDateChanged(event) {
14722
+ const hoveredDate = event.detail.value;
14723
+ this.updateRangePreview(hoveredDate);
14724
+ }
14725
+
14726
+ /**
14727
+ * Scrolls the calendar to ensure the month containing the active cell is visible.
14728
+ * @private
14729
+ * @returns {void}
14730
+ */
14731
+ scrollToActiveCell() {
14732
+ if (this.activeCellDate === null || this.activeCellDate === undefined) {
14733
+ return;
14734
+ }
14735
+
14736
+ const date = new Date(this.activeCellDate * 1000);
14737
+ const month = date.getMonth() + 1;
14738
+ const year = date.getFullYear();
14739
+ const selector = `#month-${month}-${year}`;
14740
+ const monthElem = this.shadowRoot.querySelector(selector);
14741
+
14742
+ if (monthElem) {
14743
+ const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
14744
+ monthElem.scrollIntoView({ block: 'nearest',
14745
+ behavior: prefersReducedMotion ? 'instant' : 'smooth' });
14746
+ }
14747
+ }
14748
+
14749
+ /**
14750
+ * Returns (and lazily creates) an aria-live region inside the dropdown's
14751
+ * <dialog> element. This placement is critical for two reasons:
14752
+ *
14753
+ * 1. Inside the dialog's accessible scope — dialog.showModal() makes
14754
+ * everything outside the top-layer dialog inert, and desktop modal
14755
+ * mode uses _setPageInert() on document.body siblings. A live region
14756
+ * on document.body would be invisible to screen readers in both cases.
14757
+ *
14758
+ * 2. Not nested in shadow DOM — Chrome inconsistently observes aria-live
14759
+ * mutations inside shadow DOM across machines and versions. The dialog
14760
+ * element is only one shadow root deep (the dropdown bib's shadow DOM),
14761
+ * which Chrome handles reliably. The calendar's own shadow DOM (nested
14762
+ * inside the bib via slotting) is two+ levels deep and unreliable.
14763
+ *
14764
+ * @private
14765
+ * @returns {HTMLElement} The live region element.
14766
+ */
14767
+ getOrCreateLiveRegion() {
14768
+ if (this._liveRegion && this._liveRegion.isConnected) {
14769
+ return this._liveRegion;
14770
+ }
14771
+
14772
+ // Access the dialog element inside the dropdown bib's shadow DOM.
14773
+ const dialog = this.dropdown?.bibContent?.shadowRoot?.querySelector('dialog');
14774
+ if (!dialog) {
14775
+ return null;
14776
+ }
14777
+
14778
+ // Check if we already created one for this calendar instance.
14779
+ const regionId = `auro-calendar-live-${this._calendarInstanceId}`;
14780
+ const existing = dialog.querySelector(`#${regionId}`);
14781
+ if (existing) {
14782
+ this._liveRegion = existing;
14783
+ return existing;
14784
+ }
14785
+
14786
+ const el = document.createElement('div');
14787
+ el.id = regionId;
14788
+ el.setAttribute('aria-live', 'assertive');
14789
+ el.setAttribute('aria-atomic', 'true');
14790
+ 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;';
14791
+ dialog.appendChild(el);
14792
+
14793
+ this._liveRegion = el;
14794
+ return el;
14795
+ }
14796
+
14797
+ /**
14798
+ * Removes the live region when this calendar is disconnected.
14799
+ * @private
14800
+ * @returns {void}
14801
+ */
14802
+ disconnectedCallback() {
14803
+ super.disconnectedCallback();
14804
+
14805
+ // Cancel any pending announcements so they don't fire after teardown.
14806
+ if (this._announceRafId) {
14807
+ cancelAnimationFrame(this._announceRafId);
14808
+ this._announceRafId = null;
14809
+ }
14810
+ if (this._focusAnnounceTimer) {
14811
+ clearTimeout(this._focusAnnounceTimer);
14812
+ this._focusAnnounceTimer = null;
14813
+ }
14814
+
14815
+ if (this._liveRegion && this._liveRegion.isConnected) {
14816
+ this._liveRegion.remove();
14817
+ }
14818
+ this._liveRegion = null;
14819
+ }
14820
+
14821
+ /**
14822
+ * Announces a date selection or focus change via the live region.
14823
+ * Uses requestAnimationFrame to ensure the clear and set happen in
14824
+ * separate rendering frames — Chrome may coalesce synchronous or
14825
+ * microtask-deferred mutations into a single accessibility tree update.
14826
+ * @private
14827
+ * @param {String} dateStr - The localized date string to announce.
14828
+ * @returns {void}
14829
+ */
14830
+ announceSelection(dateStr) {
14831
+ // Cancel any previously queued rAF announcement so a rapid
14832
+ // sequence of calls (e.g. bib open → month nav) only announces
14833
+ // the last one.
14834
+ if (this._announceRafId) {
14835
+ cancelAnimationFrame(this._announceRafId);
14836
+ }
14837
+ const liveRegion = this.getOrCreateLiveRegion();
14838
+ if (!liveRegion) {
14839
+ return;
14840
+ }
14841
+
14842
+ // Double-rAF: clear in frame N, set in frame N+1. Chrome batches
14843
+ // accessibility tree mutations within a single animation frame, so
14844
+ // a same-frame clear+set can be coalesced into a no-op if the new
14845
+ // value matches a recently announced string. Splitting across two
14846
+ // frames guarantees Chrome sees two distinct tree states and fires
14847
+ // a new accessibility event for the content change.
14848
+ liveRegion.textContent = '';
14849
+ this._announceRafId = requestAnimationFrame(() => {
14850
+ this._announceRafId = requestAnimationFrame(() => {
14851
+ liveRegion.textContent = dateStr;
14852
+ this._announceRafId = null;
14853
+ });
14854
+ });
14855
+ }
14856
+
14857
+ /**
14858
+ * Debounced version of announceSelection for focus navigation.
14859
+ * Uses the assertive live region with a 150ms debounce so only the
14860
+ * final cell after rapid arrow-key traversal is announced. We
14861
+ * originally tried aria-live="polite" here, but VoiceOver treats
14862
+ * polite as "wait until idle" — which never happens during active
14863
+ * keyboard navigation — so the announcements were silently dropped.
14864
+ * @private
14865
+ * @param {String} dateStr - The localized date string to announce.
14866
+ * @returns {void}
14867
+ */
14868
+ announceFocusDebounced(dateStr) {
14869
+ if (this._focusAnnounceTimer) {
14870
+ clearTimeout(this._focusAnnounceTimer);
14871
+ }
14872
+ this._focusAnnounceTimer = setTimeout(() => {
14873
+ this.announceSelection(dateStr);
14874
+ this._focusAnnounceTimer = null;
14875
+ }, 150);
14876
+ }
14877
+
14878
+ /**
14879
+ * Formats a Unix timestamp (seconds) as a localized date string for SR announcements.
14880
+ * @private
14881
+ * @param {String|Number} timestamp - Unix timestamp in seconds.
14882
+ * @returns {String} Localized date string.
14883
+ */
14884
+ formatAnnouncementDate(timestamp) {
14885
+ const date = new Date(parseInt(timestamp, 10) * 1000);
14886
+ const localeCode = this.locale?.code || undefined;
14887
+ const formatter = new Intl.DateTimeFormat(localeCode, {
14888
+ weekday: 'long',
14889
+ year: 'numeric',
14890
+ month: 'long',
14891
+ day: 'numeric'
14892
+ });
14893
+ return formatter.format(date);
14894
+ }
14895
+
13368
14896
  firstUpdated() {
14897
+
13369
14898
  this.addEventListener('date-from-changed', () => {
13370
14899
  this.dispatchEvent(new CustomEvent('auroCalendar-dateSelected', {
13371
14900
  bubbles: true,
@@ -13384,6 +14913,21 @@ class AuroCalendar extends RangeDatepicker {
13384
14913
  composed: true,
13385
14914
  }));
13386
14915
  });
14916
+
14917
+ // Listen for cross-month boundary navigation events
14918
+ this.addEventListener('calendar-month-boundary', (event) => {
14919
+ this.handleMonthBoundary(event);
14920
+ });
14921
+
14922
+ // Listen for cell activation events
14923
+ this.addEventListener('calendar-cell-activate', (event) => {
14924
+ this.handleCellActivate(event);
14925
+ });
14926
+
14927
+ // Listen for cell focus events (SR announcements + range preview)
14928
+ this.addEventListener('calendar-cell-focused', (event) => {
14929
+ this.handleCellFocused(event);
14930
+ });
13387
14931
  }
13388
14932
 
13389
14933
  injectSlot(slotName, nodes) {
@@ -13408,7 +14952,37 @@ class AuroCalendar extends RangeDatepicker {
13408
14952
  }
13409
14953
 
13410
14954
  if (changedProperties.has('visible')) {
13411
- setTimeout(() => this.requestUpdate());
14955
+ if (this.visible) {
14956
+ // Compute the active date eagerly from data — no DOM needed.
14957
+ if (this.activeCellDate == null) { // eslint-disable-line no-eq-null, eqeqeq
14958
+ this.activeCellDate = this.computeActiveDate();
14959
+ }
14960
+
14961
+ this.requestUpdate();
14962
+ } else {
14963
+ this.requestUpdate();
14964
+ }
14965
+ }
14966
+
14967
+ // Announce date selection to screen readers when user clicks/selects a cell
14968
+ const isCellClick = this.datepicker?.wasCellClick || this.datepicker?.cellClickActive;
14969
+
14970
+ if (changedProperties.has('dateFrom') && this.dateFrom && isCellClick) {
14971
+ const dateStr = this.formatAnnouncementDate(this.dateFrom);
14972
+ const isRange = !this.noRange;
14973
+
14974
+ if (isRange) {
14975
+ const rangeLabel = this.datepicker.rangeLabelStart || 'range start';
14976
+ this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
14977
+ } else {
14978
+ this.announceSelection(`${dateStr}, selected`);
14979
+ }
14980
+ }
14981
+
14982
+ if (changedProperties.has('dateTo') && this.dateTo && isCellClick) {
14983
+ const dateStr = this.formatAnnouncementDate(this.dateTo);
14984
+ const rangeLabel = this.datepicker.rangeLabelEnd || 'range end';
14985
+ this.announceSelection(`${dateStr}, selected as ${rangeLabel}`);
13412
14986
  }
13413
14987
  }
13414
14988
 
@@ -13417,6 +14991,7 @@ class AuroCalendar extends RangeDatepicker {
13417
14991
  <${this.bibtemplateTag}
13418
14992
  ?large="${this.largeFullscreenHeadline}"
13419
14993
  ?isFullscreen="${this.isFullscreen}"
14994
+ ?showFooter="${!this.isFullscreen && this.dropdown?.desktopModal}"
13420
14995
  @close-click="${this.utilCal.requestDismiss}">
13421
14996
  <span slot="ariaLabel.close">${this.slots["ariaLabel.bib.close"]}</span>
13422
14997
 
@@ -13434,24 +15009,26 @@ class AuroCalendar extends RangeDatepicker {
13434
15009
  </div>
13435
15010
  </div>
13436
15011
 
13437
- <div class="calendarWrapper">
13438
- <div class="calendars">
13439
- ${this.renderAllCalendars()}
13440
- </div>
15012
+ <div class="calendarWrapper ${!this.isFullscreen && this.dropdown?.desktopModal ? 'hasFooter' : ''}">
13441
15013
  <div class="calendarNavButtons">
13442
15014
  ${this.showPrevMonthBtn ? html$1`
13443
- <button tabIndex="-1" class="calendarNavBtn prevMonth" @click="${this.handlePrevMonth}">
15015
+ <button tabIndex="0" class="calendarNavBtn prevMonth" aria-label="${this.datepicker?.navLabelPrevMonth || 'Previous month'}" @click="${this.handlePrevMonth}">
13444
15016
  ${this.util.generateIconHtml(chevronLeft)}
13445
15017
  </button>
13446
15018
  ` : undefined}
13447
15019
  ${this.showNextMonthBtn ? html$1`
13448
- <button tabIndex="-1" class="calendarNavBtn nextMonth" @click="${this.handleNextMonth}">
15020
+ <button tabIndex="0" class="calendarNavBtn nextMonth" aria-label="${this.datepicker?.navLabelNextMonth || 'Next month'}" @click="${this.handleNextMonth}">
13449
15021
  ${this.util.generateIconHtml(chevronRight)}
13450
15022
  </button>
13451
15023
  ` : undefined}
13452
15024
  </div>
15025
+ <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}">
15026
+ ${this.renderAllCalendars()}
15027
+ </div>
13453
15028
  </div>
13454
15029
 
15030
+ <div id="calendar-live-region" aria-live="assertive" aria-atomic="true" class="sr-only"></div>
15031
+
13455
15032
  <${this.buttonTag} slot="footer" fluid @click="${this.utilCal.requestDismiss}">Done</${this.buttonTag}>
13456
15033
  </${this.bibtemplateTag}>
13457
15034
  `;
@@ -16699,7 +18276,7 @@ function applyKeyboardStrategy$1(component, strategy, options = {}) {
16699
18276
  });
16700
18277
  }
16701
18278
 
16702
- var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([isfullscreen]) .container::backdrop{background:var(--ds-color-background-primary, #fff)}:host(:popover-open){position:fixed;overflow:visible;padding:0;border:none;margin:0;background:transparent;inset:unset;outline:none}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}.util_displayHiddenVisually{position:absolute;overflow:hidden;width:1px;height:1px;padding:0;border:0;margin:-1px;clip-path:inset(50%);white-space:nowrap}`;
18279
+ var styleCss$2$1 = css`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host dialog{width:auto;max-width:none;height:auto;max-height:none;padding:0;border:none;margin:0;outline:none;transform:translateZ(0)}:host dialog::backdrop{background:transparent}:host(:not([isfullscreen])) dialog{position:relative;inset:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}:host([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}`;
16703
18280
 
16704
18281
  var colorCss$2 = css`.container{background-color:var(--ds-auro-dropdownbib-container-color);box-shadow:var(--ds-auro-dropdownbib-boxshadow-color);color:var(--ds-auro-dropdownbib-text-color)}`;
16705
18282
 
@@ -17330,7 +18907,7 @@ let AuroHelpText$2 = class AuroHelpText extends LitElement {
17330
18907
  }
17331
18908
  };
17332
18909
 
17333
- var formkitVersion$1 = '202606081518';
18910
+ var formkitVersion$1 = '202606081904';
17334
18911
 
17335
18912
  let AuroElement$2 = class AuroElement extends LitElement {
17336
18913
  static get properties() {
@@ -17510,6 +19087,7 @@ class AuroDropdown extends AuroElement$2 {
17510
19087
  _intializeDefaults() {
17511
19088
  this.appearance = 'default';
17512
19089
  this.chevron = false;
19090
+ this.desktopModal = false;
17513
19091
  this.disabled = false;
17514
19092
  this.disableKeyboardHandling = false;
17515
19093
  this.error = false;
@@ -17690,6 +19268,14 @@ class AuroDropdown extends AuroElement$2 {
17690
19268
  reflect: true
17691
19269
  },
17692
19270
 
19271
+ /**
19272
+ * If declared, the dropdown will behave as a modal dialog when in a desktop viewport size.
19273
+ */
19274
+ desktopModal: {
19275
+ type: Boolean,
19276
+ reflect: true
19277
+ },
19278
+
17693
19279
  /**
17694
19280
  * If declared, the dropdown will only show by calling the API .show() public method.
17695
19281
  */
@@ -17977,6 +19563,15 @@ class AuroDropdown extends AuroElement$2 {
17977
19563
 
17978
19564
  disconnectedCallback() {
17979
19565
  super.disconnectedCallback();
19566
+ this._clearPageInert();
19567
+ if (this._bibTabHandler) {
19568
+ this.removeEventListener('keydown', this._bibTabHandler);
19569
+ this._bibTabHandler = undefined;
19570
+ }
19571
+ if (this.focusTrap) {
19572
+ this.focusTrap.disconnect();
19573
+ this.focusTrap = undefined;
19574
+ }
17980
19575
  if (this.floater) {
17981
19576
  this.floater.hideBib('disconnect');
17982
19577
  this.floater.disconnect();
@@ -18004,19 +19599,45 @@ class AuroDropdown extends AuroElement$2 {
18004
19599
  if (this.isPopoverVisible) {
18005
19600
  // Fullscreen: use showModal() for native accessibility (inert outside, focus trap)
18006
19601
  // Desktop: use show() for Floating UI positioning + FocusTrap for focus management
18007
- const useModal = this.isBibFullscreen;
18008
- this.bibElement.value.open(useModal);
19602
+ this.bibElement.value.open(this.isBibFullscreen);
19603
+ this.updateFocusTrap();
19604
+
19605
+ // Desktop modal: make siblings inert so content outside is not interactive
19606
+ if (this.desktopModal && !this.isBibFullscreen) {
19607
+ this._setPageInert();
19608
+ }
18009
19609
  } else {
18010
19610
  this.bibElement.value.close();
19611
+ this._clearPageInert();
18011
19612
  }
18012
19613
  }
18013
19614
 
18014
19615
  // When fullscreen strategy changes while open, re-open dialog with correct mode
18015
19616
  // (e.g. resizing from desktop → mobile while dropdown is open)
18016
19617
  if (changedProperties.has('isBibFullscreen') && this.isPopoverVisible && this.bibElement.value) {
18017
- const useModal = this.isBibFullscreen;
18018
19618
  this.bibElement.value.close();
18019
- this.bibElement.value.open(useModal);
19619
+ this.bibElement.value.open(this.isBibFullscreen);
19620
+
19621
+ // Re-initialize focus management for the new strategy
19622
+ this.updateFocusTrap();
19623
+
19624
+ // Toggle inert: desktop modal needs it, fullscreen showModal() handles it natively
19625
+ if (this.desktopModal && !this.isBibFullscreen) {
19626
+ this._setPageInert();
19627
+ } else {
19628
+ this._clearPageInert();
19629
+ }
19630
+ }
19631
+
19632
+ // Handle desktopModal toggled while the dropdown is already open.
19633
+ // Re-initialize focus trapping and page inert state to match the new mode.
19634
+ if (changedProperties.has('desktopModal') && this.isPopoverVisible && !this.isBibFullscreen) {
19635
+ this.updateFocusTrap();
19636
+ if (this.desktopModal) {
19637
+ this._setPageInert();
19638
+ } else {
19639
+ this._clearPageInert();
19640
+ }
18020
19641
  }
18021
19642
  }
18022
19643
 
@@ -18026,8 +19647,14 @@ class AuroDropdown extends AuroElement$2 {
18026
19647
  * @param {CustomEvent} event - The custom event that contains the dropdown toggle information.
18027
19648
  */
18028
19649
  handleDropdownToggle(event) {
18029
- this.updateFocusTrap();
18030
19650
  this.isPopoverVisible = event.detail.expanded;
19651
+
19652
+ // Tear down FocusTrap when closing. Creation happens in updated()
19653
+ // after the dialog is open so getFocusableElements can find content.
19654
+ if (!this.isPopoverVisible) {
19655
+ this.updateFocusTrap();
19656
+ }
19657
+
18031
19658
  const eventType = event.detail.eventType || "unknown";
18032
19659
  if (!this.isPopoverVisible && this.hasFocus && eventType === "keydown") {
18033
19660
  this.trigger.focus();
@@ -18126,19 +19753,194 @@ class AuroDropdown extends AuroElement$2 {
18126
19753
  * @private
18127
19754
  */
18128
19755
  updateFocusTrap() {
19756
+ // Always clean up existing handlers/traps before setting up new ones
19757
+ // to prevent duplicate listeners on repeated calls.
19758
+ if (this._bibTabHandler) {
19759
+ this.removeEventListener('keydown', this._bibTabHandler);
19760
+ this._bibTabHandler = undefined;
19761
+ }
19762
+
19763
+ if (this.focusTrap) {
19764
+ this.focusTrap.disconnect();
19765
+ this.focusTrap = undefined;
19766
+ }
19767
+
18129
19768
  if (this.isPopoverVisible) {
18130
19769
  if (!this.isBibFullscreen) {
18131
- // Desktop: show() doesn't trap focus, so use FocusTrap
18132
- this.focusTrap = new FocusTrap(this.bibContent);
18133
- this.focusTrap.focusFirstElement();
19770
+ if (this.desktopModal) {
19771
+ // Desktop modal: trap focus only within the bib content.
19772
+ // Can't use FocusTrap on the bib element because keydown events
19773
+ // from slotted content bubble through the dropdown host (light DOM),
19774
+ // not through the bib (shadow projection target). Using FocusTrap
19775
+ // on the dropdown would include the trigger in the tab cycle.
19776
+ // Instead, listen for Tab on the dropdown and manually wrap focus
19777
+ // within the bib's focusable elements.
19778
+ this._bibTabHandler = (event) => {
19779
+ if (event.key !== 'Tab') {
19780
+ return;
19781
+ }
19782
+
19783
+ // Collect focusable elements from the bib content.
19784
+ const focusables = getFocusableElements(this.bibContent);
19785
+
19786
+ // Fallback: try from slotted content directly
19787
+ if (!focusables.length) {
19788
+ const slot = this.shadowRoot.querySelector('.slotContent slot');
19789
+ const assignedNodes = slot.assignedNodes({ flatten: true });
19790
+
19791
+ for (const node of assignedNodes) {
19792
+ if (node.nodeType === Node.ELEMENT_NODE) {
19793
+ focusables.push(...getFocusableElements(node));
19794
+ }
19795
+ }
19796
+ }
19797
+
19798
+ if (!focusables.length) {
19799
+ return;
19800
+ }
19801
+
19802
+ event.preventDefault();
19803
+
19804
+ const direction = event.shiftKey ? -1 : 1; // eslint-disable-line no-magic-numbers
19805
+
19806
+ // Walk the active element chain through shadow roots
19807
+ const actives = this._getActiveElements();
19808
+
19809
+ let idx = focusables.findIndex((el) => actives.includes(el));
19810
+
19811
+ if (idx === -1) { // eslint-disable-line no-magic-numbers
19812
+ // Focus is not on a known element — move to first/last
19813
+ idx = direction === 1 ? -1 : focusables.length; // eslint-disable-line no-magic-numbers
19814
+ }
19815
+
19816
+ // Try each element in order, skipping any that can't receive focus
19817
+ // (e.g. hidden elements, elements in collapsed sections)
19818
+ for (let index = 0; index < focusables.length; index++) { // eslint-disable-line no-plusplus
19819
+ let nextIdx = idx + direction;
19820
+
19821
+ // Wrap around
19822
+ if (nextIdx < 0) {
19823
+ nextIdx = focusables.length - 1;
19824
+ } else if (nextIdx >= focusables.length) {
19825
+ nextIdx = 0;
19826
+ }
19827
+
19828
+ focusables[nextIdx].focus();
19829
+
19830
+ // Verify focus actually moved to the target
19831
+ const newActives = this._getActiveElements();
19832
+
19833
+ if (newActives.includes(focusables[nextIdx])) {
19834
+ return;
19835
+ }
19836
+
19837
+ // Focus didn't stick — skip this element and try the next
19838
+ idx = nextIdx;
19839
+ }
19840
+ };
19841
+ this.addEventListener('keydown', this._bibTabHandler);
19842
+
19843
+ // Move initial focus into the bib content, matching FocusTrap behavior
19844
+ requestAnimationFrame(() => {
19845
+ const focusables = getFocusableElements(this.bibContent);
19846
+ if (focusables.length) {
19847
+ focusables[0].focus();
19848
+ }
19849
+ });
19850
+ } else {
19851
+ // Normal desktop: use FocusTrap on the bib element
19852
+ this.focusTrap = new FocusTrap(this.bibContent);
19853
+ this.focusTrap.focusFirstElement();
19854
+ }
18134
19855
  }
18135
19856
  // Fullscreen: showModal() provides native focus trapping
19857
+ }
19858
+ }
19859
+
19860
+ /**
19861
+ * Returns the chain of active (focused) elements through shadow roots.
19862
+ * @private
19863
+ * @returns {Array<HTMLElement>}
19864
+ */
19865
+ _getActiveElements() {
19866
+ let { activeElement } = document;
19867
+ const actives = [activeElement];
19868
+
19869
+ while (activeElement?.shadowRoot?.activeElement) {
19870
+ activeElement = activeElement.shadowRoot.activeElement;
19871
+ actives.push(activeElement);
19872
+ }
19873
+
19874
+ return actives;
19875
+ }
19876
+
19877
+ /**
19878
+ * Sets `inert` on sibling elements of the dropdown's top-level host
19879
+ * so that content outside the dropdown is not interactive while the modal is open.
19880
+ * Walks up through shadow DOM boundaries to find the outermost host element
19881
+ * in the light DOM, then sets `inert` on siblings at each ancestor level
19882
+ * to ensure all page content outside the host subtree is inert.
19883
+ * @private
19884
+ */
19885
+ _setPageInert() {
19886
+ if (this._inertSiblings) {
18136
19887
  return;
18137
19888
  }
18138
19889
 
18139
- if (this.focusTrap) {
18140
- this.focusTrap.disconnect();
18141
- this.focusTrap = undefined;
19890
+ this._inertSiblings = [];
19891
+
19892
+ // Walk up through shadow DOM boundaries to find the topmost host
19893
+ // element in the light DOM. For example, if this dropdown is inside
19894
+ // auro-datepicker's shadow DOM, we walk up to the datepicker element
19895
+ // so we set inert on its siblings — not on the datepicker itself.
19896
+ let host = this;
19897
+ while (host.getRootNode() instanceof ShadowRoot) {
19898
+ host = host.getRootNode().host;
19899
+ }
19900
+
19901
+ // Walk up the ancestor chain, inerting siblings at each level
19902
+ // to ensure the entire page outside the host subtree is inert.
19903
+ // Uses a reference counter (data-auro-inert-count) so multiple
19904
+ // simultaneous modal dropdowns share inert state safely.
19905
+ let current = host;
19906
+ while (current.parentElement) {
19907
+ const parent = current.parentElement;
19908
+ for (const sibling of parent.children) {
19909
+ if (sibling !== current) {
19910
+ const count = parseInt(sibling.dataset.auroInertCount || '0', 10);
19911
+ if (count === 0) {
19912
+ sibling.dataset.auroInertWas = sibling.inert ? 'true' : 'false';
19913
+ }
19914
+ sibling.dataset.auroInertCount = String(count + 1);
19915
+ sibling.inert = true;
19916
+ this._inertSiblings.push(sibling);
19917
+ }
19918
+ }
19919
+ current = parent;
19920
+ }
19921
+ }
19922
+
19923
+ /**
19924
+ * Restores `inert` state on siblings that were tracked by `_setPageInert`.
19925
+ * Uses reference counting so inert is only cleared when the last modal
19926
+ * dropdown releases a given element. Preserves the original inert state
19927
+ * so externally-inerted elements are not inadvertently re-enabled.
19928
+ * @private
19929
+ */
19930
+ _clearPageInert() {
19931
+ if (this._inertSiblings) {
19932
+ for (const sibling of this._inertSiblings) {
19933
+ const count = parseInt(sibling.dataset.auroInertCount || '1', 10) - 1;
19934
+ if (count <= 0) {
19935
+ const wasInert = sibling.dataset.auroInertWas === 'true';
19936
+ delete sibling.dataset.auroInertCount;
19937
+ delete sibling.dataset.auroInertWas;
19938
+ sibling.inert = wasInert;
19939
+ } else {
19940
+ sibling.dataset.auroInertCount = String(count);
19941
+ }
19942
+ }
19943
+ this._inertSiblings = undefined;
18142
19944
  }
18143
19945
  }
18144
19946
 
@@ -18377,6 +20179,7 @@ class AuroDropdown extends AuroElement$2 {
18377
20179
  shape="${this.shape}"
18378
20180
  ?data-show="${this.isPopoverVisible}"
18379
20181
  ?isfullscreen="${this.isBibFullscreen}"
20182
+ ?desktopmodal="${this.desktopModal}"
18380
20183
  .dialogLabel="${this.bibDialogLabel}"
18381
20184
  ${ref(this.bibElement)}
18382
20185
  >
@@ -30581,7 +32384,7 @@ let AuroHelpText$1 = class AuroHelpText extends LitElement {
30581
32384
  }
30582
32385
  };
30583
32386
 
30584
- var formkitVersion = '202606081518';
32387
+ var formkitVersion = '202606081904';
30585
32388
 
30586
32389
  // Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
30587
32390
  // See LICENSE in the project root for license information.
@@ -31926,26 +33729,62 @@ function applyKeyboardStrategy(component, strategy, options = {}) {
31926
33729
  // components/datepicker/docs/partials/keyboardBehavior.md
31927
33730
  //
31928
33731
  // Current behavior (transitional — full bib keyboard navigation is planned for a future iteration):
31929
- // - The bib opens and closes via pointer/touch interaction only.
31930
33732
  // - Escape closes the bib and prevents the event from reaching parent containers.
33733
+ // - Enter opens the bib when it is closed (trigger input only, not clear button).
33734
+ // - Space opens the bib when it is closed (trigger input only, not clear button).
31931
33735
  // - Tab uses the browser's default tabindex sequence across trigger controls.
31932
- // - Enter and Space do not open or close the bib.
31933
33736
  //
31934
33737
  // This file is an intentional placeholder for most keys. When datepicker bib keyboard navigation is
31935
33738
  // added, handlers should go here following the same strategy pattern used by
31936
33739
  // auro-select (selectKeyboardStrategy.js) and auro-combobox (comboboxKeyboardStrategy.js).
31937
33740
  const datepickerKeyboardStrategy = {
31938
- Escape(component, evt) {
31939
- if (!component.dropdown || !component.dropdown.isPopoverVisible) {
33741
+ Escape(component, evt, ctx) {
33742
+ if (!ctx.isExpanded) {
31940
33743
  return;
31941
33744
  }
31942
33745
 
31943
- // Prevent the Escape key from bubbling up and closing any parent dialogs / drawers / popups.
31944
- // Because stopPropagation prevents the document-level floatingUI keydown handler from
31945
- // seeing this event, we must also close the dropdown explicitly.
33746
+ // Stop propagation so parent containers (auro-dialog, auro-drawer)
33747
+ // don't also react to Escape.
31946
33748
  evt.stopPropagation();
33749
+ evt.preventDefault();
31947
33750
 
31948
- component.dropdown.hide();
33751
+ component.hideBib();
33752
+ },
33753
+
33754
+ Enter(component, evt, ctx) {
33755
+ if (ctx.isExpanded) {
33756
+ return;
33757
+ }
33758
+
33759
+ // Only open from the trigger input, not the clear button or other internal elements.
33760
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath()
33761
+ // to find the real origin. The clear button is rendered with class "clearBtn".
33762
+ const path = evt.composedPath();
33763
+ if (path.some(el => el.classList?.contains('clearBtn'))) {
33764
+ return;
33765
+ }
33766
+
33767
+ evt.preventDefault();
33768
+
33769
+ component.dropdown.show();
33770
+ },
33771
+
33772
+ ' '(component, evt, ctx) {
33773
+ if (ctx.isExpanded) {
33774
+ return;
33775
+ }
33776
+
33777
+ // Only open from the trigger input, not the clear button or other internal elements.
33778
+ // evt.target is retargeted to the host in shadow DOM, so use composedPath()
33779
+ // to find the real origin. The clear button is rendered with class "clearBtn".
33780
+ const path = evt.composedPath();
33781
+ if (path.some(el => el.classList?.contains('clearBtn'))) {
33782
+ return;
33783
+ }
33784
+
33785
+ evt.preventDefault();
33786
+
33787
+ component.dropdown.show();
31949
33788
  },
31950
33789
  };
31951
33790
 
@@ -32019,6 +33858,16 @@ class AuroDatePicker extends AuroElement {
32019
33858
  this.required = false;
32020
33859
  this.onDark = false;
32021
33860
  this.range = false;
33861
+ this.rangeLabelStart = 'range start';
33862
+ this.rangeLabelEnd = 'range end';
33863
+ this.rangeLabelBeforeRange = 'before range';
33864
+ this.rangeLabelInRange = 'in range';
33865
+ this.rangeLabelAfterRange = 'after range';
33866
+ this.blackoutDates = [];
33867
+ this.blackoutLabel = 'unavailable';
33868
+ this.navLabelPrevMonth = 'Previous month';
33869
+ this.navLabelNextMonth = 'Next month';
33870
+ this.calendarGridLabel = 'Calendar days of the month';
32022
33871
  this.stacked = false;
32023
33872
  this.noValidate = false;
32024
33873
  this.validity = undefined;
@@ -32134,7 +33983,7 @@ class AuroDatePicker extends AuroElement {
32134
33983
 
32135
33984
  /**
32136
33985
  * Defines whether the component will be on lighter or darker backgrounds.
32137
- * @property {'default', 'inverse'}
33986
+ * @type {'default' | 'inverse'}
32138
33987
  * @default 'default'
32139
33988
  */
32140
33989
  appearance: {
@@ -32151,6 +34000,22 @@ class AuroDatePicker extends AuroElement {
32151
34000
  reflect: true
32152
34001
  },
32153
34002
 
34003
+ /**
34004
+ * Array of dates that cannot be selected. Dates should be in ISO format (YYYY-MM-DD).
34005
+ */
34006
+ blackoutDates: {
34007
+ type: Array,
34008
+ reflect: true
34009
+ },
34010
+
34011
+ /**
34012
+ * Label announced for blackout (disabled but in-range) date cells.
34013
+ */
34014
+ blackoutLabel: {
34015
+ type: String,
34016
+ reflect: true
34017
+ },
34018
+
32154
34019
  /**
32155
34020
  * The last date that may be displayed in the calendar.
32156
34021
  */
@@ -32159,6 +34024,14 @@ class AuroDatePicker extends AuroElement {
32159
34024
  reflect: true
32160
34025
  },
32161
34026
 
34027
+ /**
34028
+ * Accessible label for the calendar grid containing the days of the month.
34029
+ */
34030
+ calendarGridLabel: {
34031
+ type: String,
34032
+ reflect: true
34033
+ },
34034
+
32162
34035
  /**
32163
34036
  * The date that will first be visually rendered to the user in the calendar.
32164
34037
  */
@@ -32206,27 +34079,6 @@ class AuroDatePicker extends AuroElement {
32206
34079
  reflect: true
32207
34080
  },
32208
34081
 
32209
- hasFocus: {
32210
- type: Boolean,
32211
- reflect: false,
32212
- },
32213
-
32214
- /**
32215
- * @private
32216
- */
32217
- hasValue: {
32218
- type: Boolean,
32219
- reflect: false,
32220
- },
32221
-
32222
- /**
32223
- * @private
32224
- */
32225
- hasAllValues: {
32226
- type: Boolean,
32227
- reflect: false
32228
- },
32229
-
32230
34082
  /**
32231
34083
  * Specifies the date format. The default is `mm/dd/yyyy`.
32232
34084
  */
@@ -32256,6 +34108,27 @@ class AuroDatePicker extends AuroElement {
32256
34108
  reflect: true
32257
34109
  },
32258
34110
 
34111
+ /**
34112
+ * @private
34113
+ */
34114
+ hasAllValues: {
34115
+ type: Boolean,
34116
+ reflect: false
34117
+ },
34118
+
34119
+ hasFocus: {
34120
+ type: Boolean,
34121
+ reflect: false,
34122
+ },
34123
+
34124
+ /**
34125
+ * @private
34126
+ */
34127
+ hasValue: {
34128
+ type: Boolean,
34129
+ reflect: false,
34130
+ },
34131
+
32259
34132
  /** Exposes inputmode attribute for input. */
32260
34133
  inputmode: {
32261
34134
  type: String,
@@ -32298,6 +34171,13 @@ class AuroDatePicker extends AuroElement {
32298
34171
  reflect: true
32299
34172
  },
32300
34173
 
34174
+ /**
34175
+ * @private
34176
+ */
34177
+ monthFirst: {
34178
+ type: Boolean
34179
+ },
34180
+
32301
34181
  /**
32302
34182
  * Names of all 12 months to render in the calendar.
32303
34183
  * When omitted, month names will be automatically populated from the active `locale` (falling back to `en-US`).
@@ -32307,18 +34187,26 @@ class AuroDatePicker extends AuroElement {
32307
34187
  },
32308
34188
 
32309
34189
  /**
32310
- * If declared, the bib will NOT flip to an alternate position
32311
- * when there isn't enough space in the specified `placement`.
34190
+ * Accessible label for the next month navigation button.
32312
34191
  */
32313
- noFlip: {
32314
- type: Boolean,
34192
+ navLabelNextMonth: {
34193
+ type: String,
32315
34194
  reflect: true
32316
34195
  },
32317
34196
 
32318
34197
  /**
32319
- * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
34198
+ * Accessible label for the previous month navigation button.
32320
34199
  */
32321
- shift: {
34200
+ navLabelPrevMonth: {
34201
+ type: String,
34202
+ reflect: true
34203
+ },
34204
+
34205
+ /**
34206
+ * If declared, the bib will NOT flip to an alternate position
34207
+ * when there isn't enough space in the specified `placement`.
34208
+ */
34209
+ noFlip: {
32322
34210
  type: Boolean,
32323
34211
  reflect: true
32324
34212
  },
@@ -32384,6 +34272,46 @@ class AuroDatePicker extends AuroElement {
32384
34272
  reflect: true
32385
34273
  },
32386
34274
 
34275
+ /**
34276
+ * Label announced for cells after the range (or after start when no end is selected).
34277
+ */
34278
+ rangeLabelAfterRange: {
34279
+ type: String,
34280
+ reflect: true
34281
+ },
34282
+
34283
+ /**
34284
+ * Label announced for cells before the range start.
34285
+ */
34286
+ rangeLabelBeforeRange: {
34287
+ type: String,
34288
+ reflect: true
34289
+ },
34290
+
34291
+ /**
34292
+ * Label announced for the range end date cell.
34293
+ */
34294
+ rangeLabelEnd: {
34295
+ type: String,
34296
+ reflect: true
34297
+ },
34298
+
34299
+ /**
34300
+ * Label announced for cells within the selected range.
34301
+ */
34302
+ rangeLabelInRange: {
34303
+ type: String,
34304
+ reflect: true
34305
+ },
34306
+
34307
+ /**
34308
+ * Label announced for the range start date cell.
34309
+ */
34310
+ rangeLabelStart: {
34311
+ type: String,
34312
+ reflect: true
34313
+ },
34314
+
32387
34315
  /**
32388
34316
  * Dates that the user should have for reference as part of their decision making when selecting a date.
32389
34317
  * This should be a JSON string array of ISO date strings (`YYYY-MM-DD`).
@@ -32410,6 +34338,7 @@ class AuroDatePicker extends AuroElement {
32410
34338
 
32411
34339
  /**
32412
34340
  * Custom help text message to display when validity = `customError`.
34341
+ * Also used as the validation message when a blackout date is typed into the input.
32413
34342
  */
32414
34343
  setCustomValidityCustomError: {
32415
34344
  type: String
@@ -32436,6 +34365,14 @@ class AuroDatePicker extends AuroElement {
32436
34365
  type: String
32437
34366
  },
32438
34367
 
34368
+ /**
34369
+ * If declared, the dropdown will shift its position to avoid being cut off by the viewport.
34370
+ */
34371
+ shift: {
34372
+ type: Boolean,
34373
+ reflect: true
34374
+ },
34375
+
32439
34376
  /**
32440
34377
  * Set true to make datepicker stacked style.
32441
34378
  */
@@ -32444,6 +34381,16 @@ class AuroDatePicker extends AuroElement {
32444
34381
  reflect: true
32445
34382
  },
32446
34383
 
34384
+ /**
34385
+ * Indicates whether the datepicker is in a dirty state (has been interacted with).
34386
+ * @private
34387
+ */
34388
+ touched: {
34389
+ type: Boolean,
34390
+ reflect: true,
34391
+ attribute: false
34392
+ },
34393
+
32447
34394
  /**
32448
34395
  * Specifies the `validityState` this element is in.
32449
34396
  */
@@ -32464,16 +34411,6 @@ class AuroDatePicker extends AuroElement {
32464
34411
  */
32465
34412
  valueEnd: {
32466
34413
  type: String
32467
- },
32468
-
32469
- /**
32470
- * Indicates whether the datepicker is in a dirty state (has been interacted with).
32471
- * @private
32472
- */
32473
- touched: {
32474
- type: Boolean,
32475
- reflect: true,
32476
- attribute: false
32477
34414
  }
32478
34415
  };
32479
34416
  }
@@ -32584,7 +34521,7 @@ class AuroDatePicker extends AuroElement {
32584
34521
  /**
32585
34522
  * Common display value wrapper classes.
32586
34523
  * @private
32587
- * @return {Object} - An object containing the common classes for the display value wrapper.
34524
+ * @returns {Object} Class map for Lit's classMap directive.
32588
34525
  */
32589
34526
  get commonDisplayValueWrapperClasses() {
32590
34527
  return {
@@ -32799,6 +34736,74 @@ class AuroDatePicker extends AuroElement {
32799
34736
  }));
32800
34737
  }
32801
34738
 
34739
+ /**
34740
+ * Attempts to focus the active calendar cell using a rAF retry loop.
34741
+ * Shared by both fullscreen and desktop open paths.
34742
+ * @private
34743
+ * @returns {void}
34744
+ */
34745
+ focusActiveCellWhenReady() {
34746
+ const MAX_ATTEMPTS = 20;
34747
+ let attempts = 0;
34748
+
34749
+ const tryFocus = () => {
34750
+ attempts += 1;
34751
+ const allCells = this.calendar.getAllFocusableCells();
34752
+
34753
+ if (!allCells.length && attempts < MAX_ATTEMPTS) {
34754
+ requestAnimationFrame(tryFocus);
34755
+ return;
34756
+ }
34757
+
34758
+ // Compute and mark the active cell
34759
+ if (this.calendar.activeCellDate === null || this.calendar.activeCellDate === undefined) {
34760
+ this.calendar.activeCellDate = this.calendar.computeActiveDate();
34761
+ }
34762
+ if (this.calendar.activeCellDate !== undefined) {
34763
+ this.calendar.setActiveCell(this.calendar.activeCellDate);
34764
+ }
34765
+
34766
+ // If no cell matched (e.g. centralDate month differs from the rendered
34767
+ // range on mobile), fall back to the first rendered enabled cell.
34768
+ let activeCell = allCells.find((cell) => cell.active);
34769
+ if (!activeCell && allCells.length) {
34770
+ const [fallback] = allCells;
34771
+ if (fallback.day) {
34772
+ this.calendar.activeCellDate = fallback.day.date;
34773
+ this.calendar.setActiveCell(this.calendar.activeCellDate);
34774
+ activeCell = allCells.find((cell) => cell.active);
34775
+ }
34776
+ }
34777
+
34778
+ // Focus the calendar grid wrapper (aria-activedescendant handles
34779
+ // the SR announcement for the active cell).
34780
+ if (activeCell) {
34781
+ this.calendar.focusActiveCell();
34782
+
34783
+ // Announce the initial active cell via the live region.
34784
+ // Delay the announcement so it arrives after VoiceOver finishes
34785
+ // speaking the focus-change announcement for the grid wrapper.
34786
+ // Without this delay, VoiceOver drops the live region update
34787
+ // because it's already mid-announcement from the focus move.
34788
+ const announcement = this.calendar.buildFocusAnnouncement(activeCell.day.date);
34789
+ setTimeout(() => {
34790
+ this.calendar.announceSelection(announcement);
34791
+ }, 500);
34792
+
34793
+ // On mobile fullscreen, scroll the month list so the active cell's
34794
+ // month is visible. Without this, the list stays scrolled to the
34795
+ // calendarStartDate month which may be far from the active cell.
34796
+ if (this.dropdown.isBibFullscreen) {
34797
+ this.calendar.scrollToActiveCell();
34798
+ }
34799
+ } else if (attempts < MAX_ATTEMPTS) {
34800
+ requestAnimationFrame(tryFocus);
34801
+ }
34802
+ };
34803
+
34804
+ requestAnimationFrame(tryFocus);
34805
+ }
34806
+
32802
34807
  /**
32803
34808
  * Binds all behavior needed to the dropdown after rendering.
32804
34809
  * @private
@@ -32807,6 +34812,12 @@ class AuroDatePicker extends AuroElement {
32807
34812
  configureDropdown() {
32808
34813
  this.dropdown = this.shadowRoot.querySelector(this.dropdownTag._$litStatic$);
32809
34814
 
34815
+ // The datepicker manages its own open/close lifecycle (Space/Escape/date-select/done).
34816
+ // Prevent the floater's document-level focusin handler from closing the bib
34817
+ // when focus moves from the trigger into the calendar cells (which live inside
34818
+ // a top-layer popover where :focus-within on the dropdown host returns false).
34819
+ this.dropdown.noHideOnThisFocusLoss = true;
34820
+
32810
34821
  // Pass label text to the dropdown bib for accessible dialog naming.
32811
34822
  // Without this, the fullscreen <dialog> has no accessible name and
32812
34823
  // screen readers announce it as just "dialog" with no context.
@@ -32824,6 +34835,23 @@ class AuroDatePicker extends AuroElement {
32824
34835
  this.dropdown.addEventListener('auroDropdown-toggled', () => {
32825
34836
  this.notifyDatepickerToggled();
32826
34837
 
34838
+ if (this.dropdown.isPopoverVisible) {
34839
+ // Reset calendar focus state so it recomputes from the current selection.
34840
+ // Without this, reopening after navigating to a month without a selected
34841
+ // date leaves activeCellDate pointing at a cell in a different month than
34842
+ // what centralDate renders, causing all cells to have tabindex="-1".
34843
+ this.calendar.activeCellDate = null;
34844
+
34845
+ // Show the month containing the selected date (or today) instead of
34846
+ // whichever month the user last navigated to.
34847
+ // Respect consumer-provided centralDate/calendarStartDate if no value is set.
34848
+ if (this.valueObject) {
34849
+ this.centralDate = this.value;
34850
+ } else if (!this.centralDate && !this.calendarStartDate && !this.minDate) {
34851
+ this.centralDate = new Date();
34852
+ }
34853
+ }
34854
+
32827
34855
  // This forces the calendar to render when the dropdown is opened.
32828
34856
  // It is not rendered by default
32829
34857
  this.calendar.visible = this.dropdown.isPopoverVisible;
@@ -32856,12 +34884,23 @@ class AuroDatePicker extends AuroElement {
32856
34884
  bibEl.open(true);
32857
34885
 
32858
34886
  doubleRaf(() => {
32859
- this.calendar.focusCloseButton();
34887
+ this.focusActiveCellWhenReady();
32860
34888
  });
32861
34889
  }
32862
34890
  });
32863
34891
 
32864
34892
  guardTouchPassthrough(this.shadowRoot.querySelector('.calendarWrapper'));
34893
+ } else {
34894
+ // Desktop (non-fullscreen) modal: make the trigger inert so users
34895
+ // cannot interact with the input while the modal bib is open.
34896
+ if (this.dropdown.desktopModal) {
34897
+ this.dropdown.trigger.inert = true;
34898
+ }
34899
+
34900
+ // Desktop (non-fullscreen): focus the active calendar cell.
34901
+ this.dropdown.updateComplete.then(() => {
34902
+ this.focusActiveCellWhenReady();
34903
+ });
32865
34904
  }
32866
34905
  } else {
32867
34906
  // Always clear the inert flag. Only restore focus to the input when the datepicker
@@ -32906,14 +34945,35 @@ class AuroDatePicker extends AuroElement {
32906
34945
  if (bibEl && this.dropdown.isPopoverVisible) {
32907
34946
  bibEl.close();
32908
34947
  bibEl.open(true);
34948
+ }
34949
+
34950
+ // Re-render the calendar with the new fullscreen layout,
34951
+ // then restore focus after the re-render completes.
34952
+ this.calendar.isFullscreen = true;
34953
+ this.calendar.updateComplete.then(() => {
32909
34954
  doubleRaf(() => {
32910
- this.calendar.focusCloseButton();
34955
+ this.focusActiveCellWhenReady();
32911
34956
  });
32912
- }
34957
+ });
32913
34958
  });
32914
34959
  } else if (!this.dropdown.isBibFullscreen) {
32915
- // Switching from fullscreen to floating — restore trigger accessibility
32916
- this.dropdown.trigger.inert = false;
34960
+ // Switching from fullscreen to floating — only restore trigger accessibility
34961
+ // when the bib is closed or the desktop layout is not a modal. A desktopModal
34962
+ // dropdown keeps the trigger inert while open, matching the desktop-open path.
34963
+ if (!this.dropdown.isPopoverVisible || !this.dropdown.desktopModal) {
34964
+ this.dropdown.trigger.inert = false;
34965
+ }
34966
+
34967
+ // Re-render the calendar with the desktop layout,
34968
+ // then restore focus after the re-render completes.
34969
+ this.dropdown.updateComplete.then(() => {
34970
+ this.calendar.isFullscreen = false;
34971
+ this.calendar.updateComplete.then(() => {
34972
+ doubleRaf(() => {
34973
+ this.focusActiveCellWhenReady();
34974
+ });
34975
+ });
34976
+ });
32917
34977
  }
32918
34978
  });
32919
34979
  }
@@ -33101,14 +35161,8 @@ class AuroDatePicker extends AuroElement {
33101
35161
 
33102
35162
  if (onEndValue) {
33103
35163
  this.valueEnd = newDate;
33104
- if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
33105
- this.focus('startDate');
33106
- }
33107
35164
  } else {
33108
35165
  this.value = newDate;
33109
- if (this.dropdown.isPopoverVisible && !this.dropdown.isBibFullscreen) {
33110
- this.focus('endDate');
33111
- }
33112
35166
  }
33113
35167
  }
33114
35168
  }
@@ -33148,6 +35202,23 @@ class AuroDatePicker extends AuroElement {
33148
35202
  this.resetInputs();
33149
35203
  }
33150
35204
 
35205
+ /**
35206
+ * Checks whether a formatted date string matches a blackout date.
35207
+ * @private
35208
+ * @param {string} dateStr - A date string in the component's configured format.
35209
+ * @returns {boolean} True if the date is in the blackoutDates list.
35210
+ */
35211
+ isBlackoutDate(dateStr) {
35212
+ if (!Array.isArray(this.blackoutDates) ||
35213
+ this.blackoutDates.length === 0 ||
35214
+ !dateStr ||
35215
+ !dateFormatter$1.isValidDate(dateStr)) {
35216
+ return false;
35217
+ }
35218
+
35219
+ return this.blackoutDates.includes(dateStr);
35220
+ }
35221
+
33151
35222
  /**
33152
35223
  * Validates value.
33153
35224
  * @param {boolean} [force=false] - Whether to force validation.
@@ -33159,6 +35230,23 @@ class AuroDatePicker extends AuroElement {
33159
35230
  }
33160
35231
 
33161
35232
  this.validation.validate(this, force);
35233
+
35234
+ // After standard validation, check blackout dates for typed input
35235
+ if (this.validity !== 'customError' &&
35236
+ (this.isBlackoutDate(this.value) || (this.range && this.isBlackoutDate(this.valueEnd)))) { // eslint-disable-line no-extra-parens
35237
+ const msg = this.setCustomValidityCustomError || 'Selected date is unavailable';
35238
+ this.validity = 'customError';
35239
+ this.errorMessage = msg;
35240
+
35241
+ this.dispatchEvent(new CustomEvent('auroFormElement-validated', {
35242
+ bubbles: true,
35243
+ composed: true,
35244
+ detail: {
35245
+ validity: this.validity,
35246
+ message: this.errorMessage
35247
+ }
35248
+ }));
35249
+ }
33162
35250
  }
33163
35251
 
33164
35252
  /**
@@ -33186,7 +35274,7 @@ class AuroDatePicker extends AuroElement {
33186
35274
  }
33187
35275
 
33188
35276
  /**
33189
- * lifecycle method to check if the locale is valid.
35277
+ * Lifecycle method to check if the locale is valid.
33190
35278
  * @ignore
33191
35279
  * @param {Map} changedProperties - The map of properties that have changed since the last update.
33192
35280
  * @returns {void}
@@ -33197,17 +35285,20 @@ class AuroDatePicker extends AuroElement {
33197
35285
  const supported = Intl.DateTimeFormat.supportedLocalesOf([this.locale], { localeMatcher: 'lookup' });
33198
35286
  this._validLocale = supported.length > 0 ? this.locale : 'en-US';
33199
35287
  } catch {
33200
- console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`);
35288
+ console.debug(`[AuroDatePicker] The locale "${this.locale}" is not valid. Falling back to "en-US".`); // eslint-disable-line no-console
33201
35289
  this._validLocale = 'en-US';
33202
35290
  }
33203
35291
 
33204
- // if there was not an explicit format set, or the format set matches the previous locale's default format,
33205
- // update to the new locale's default format
33206
35292
  const previousLocaleFormat = getDateFormatFromLocale$1(changedProperties.get('locale'));
33207
35293
  if (!changedProperties.has('format') && (!this.format || this.format.toLowerCase() === previousLocaleFormat)) {
33208
35294
  this.format = getDateFormatFromLocale$1(this._validLocale);
33209
35295
  }
33210
35296
  }
35297
+
35298
+ if (changedProperties.has('referenceDates') && this.calendar) {
35299
+ this.calendar.requestUpdate();
35300
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
35301
+ }
33211
35302
  }
33212
35303
 
33213
35304
  updated(changedProperties) {
@@ -33237,17 +35328,18 @@ class AuroDatePicker extends AuroElement {
33237
35328
  if (changedProperties.has('value')) {
33238
35329
 
33239
35330
  // Change the calendar focus to the first valid date value only the first time the value is set
33240
- if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value)) {
33241
- if (!this.dropdown.isPopoverVisible) {
33242
- this.calendarFocusDate = this.value;
35331
+ if (!this.calendarFocusDate && dateFormatter$1.isValidDate(this.value) && !this.dropdown.isPopoverVisible) {
35332
+ this.calendarFocusDate = this.value;
33243
35333
 
33244
- // Let the calendar know to scroll to the focus date when it is next rendered on mobile
33245
- this.forceScrollOnNextMobileCalendarRender = true;
33246
- }
35334
+ // Let the calendar know to scroll to the focus date when it is next rendered on mobile
35335
+ this.forceScrollOnNextMobileCalendarRender = true;
33247
35336
  }
33248
35337
 
33249
35338
  if (this.cellClickActive) {
33250
35339
  this.cellClickActive = false;
35340
+ this.wasCellClick = true;
35341
+ } else {
35342
+ this.wasCellClick = false;
33251
35343
  }
33252
35344
 
33253
35345
  if (this.value && dateFormatter$1.isValidDate(this.value)) {
@@ -33265,13 +35357,48 @@ class AuroDatePicker extends AuroElement {
33265
35357
 
33266
35358
  // update the inputs — auro-input accepts ISO directly
33267
35359
  if (this.inputList[0].value !== this.value) {
33268
- this.inputList[0].value = this.value || '';
35360
+ if (this.value) {
35361
+ this.inputList[0].value = this.value;
35362
+ } else {
35363
+ this.inputList[0].value = '';
35364
+ }
35365
+ }
35366
+
35367
+ if (this.value && this.value.length === this.inputList[0].lengthForType && !(this.wasCellClick && this.range)) {
35368
+ // Skip centralDate update when user clicked a cell in range mode
35369
+ // to prevent the displayed months from shifting
35370
+ this.centralDate = this.value;
35371
+ //TODO: TEST THIS CHANGE
35372
+ // this.calendarRenderUtil.updateCentralDate(this, this.value);
33269
35373
  }
33270
35374
 
33271
35375
  this.setHasValue();
33272
35376
  }
33273
35377
 
35378
+ if (changedProperties.has('blackoutDates')) {
35379
+ // Force calendar cells to re-render with updated blackout state.
35380
+ // requestUpdate on the calendar alone is insufficient because cells
35381
+ // don't receive blackoutDates as a bound property. Dispatching the
35382
+ // slot content event triggers handleSlotContent → requestUpdate on each cell.
35383
+ if (this.calendar) {
35384
+ this.calendar.requestUpdate();
35385
+ this.dispatchEvent(new CustomEvent('auroDatePicker-newSlotContent'));
35386
+ }
35387
+
35388
+ // Re-run validation so that a previously valid value that now falls on
35389
+ // a blackout date is flagged, and vice versa.
35390
+ if (this.value || this.valueEnd) {
35391
+ this.validate();
35392
+ }
35393
+ }
35394
+
33274
35395
  if (changedProperties.has('valueEnd') && this.inputList[1]) {
35396
+ if (this.cellClickActive) {
35397
+ this.cellClickActive = false;
35398
+ this.wasCellClick = true;
35399
+ } else {
35400
+ this.wasCellClick = false;
35401
+ }
33275
35402
 
33276
35403
  // update the calendar
33277
35404
  if (this.valueEndObject) {
@@ -33289,7 +35416,19 @@ class AuroDatePicker extends AuroElement {
33289
35416
 
33290
35417
  // update the inputs — auro-input accepts ISO directly
33291
35418
  if (this.inputList[1].value !== this.valueEnd) {
33292
- this.inputList[1].value = this.valueEnd || '';
35419
+ if (this.valueEnd) {
35420
+ this.inputList[1].value = this.valueEnd;
35421
+ } else {
35422
+ this.inputList[1].value = '';
35423
+ }
35424
+ }
35425
+
35426
+ if (this.valueEnd && this.valueEnd.length === this.inputList[1].lengthForType && !this.wasCellClick) {
35427
+ // Skip centralDate update when user clicked a cell in range mode
35428
+ // to prevent the displayed months from shifting
35429
+ this.centralDate = this.valueEnd;
35430
+ // TODO: TEST THIS CHANGE
35431
+ // this.calendarRenderUtil.updateCentralDate(this, this.formattedValueEnd);
33293
35432
  }
33294
35433
 
33295
35434
  this.validate();
@@ -33332,16 +35471,14 @@ class AuroDatePicker extends AuroElement {
33332
35471
  this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
33333
35472
  }
33334
35473
 
33335
- if (!changedProperties.has('value') && this.valueObject) {
33336
- if (this.minDateObject > this.valueObject) {
33337
- this.value = undefined;
33338
-
33339
- if (this.range && this.valueEnd) {
33340
- this.valueEnd = undefined;
33341
- }
35474
+ if (!changedProperties.has('value') && this.valueObject && this.minDateObject > this.valueObject) {
35475
+ this.value = undefined;
33342
35476
 
33343
- this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
35477
+ if (this.range && this.valueEnd) {
35478
+ this.valueEnd = undefined;
33344
35479
  }
35480
+
35481
+ this.calendarRenderUtil.updateCentralDate(this, this.minDateObject);
33345
35482
  }
33346
35483
 
33347
35484
  // When there is no focusDate and no value, set the focusDate to the minDate
@@ -33372,16 +35509,14 @@ class AuroDatePicker extends AuroElement {
33372
35509
  }
33373
35510
  }
33374
35511
 
33375
- if (this.maxDate && !changedProperties.has('value') && this.valueObject) {
33376
- if (this.maxDateObject < this.valueObject) {
33377
- this.value = undefined;
33378
-
33379
- if (this.range && this.valueEnd) {
33380
- this.valueEnd = undefined;
33381
- }
35512
+ if (this.maxDate && !changedProperties.has('value') && this.valueObject && this.maxDateObject < this.valueObject) {
35513
+ this.value = undefined;
33382
35514
 
33383
- this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
35515
+ if (this.range && this.valueEnd) {
35516
+ this.valueEnd = undefined;
33384
35517
  }
35518
+
35519
+ this.calendarRenderUtil.updateCentralDate(this, this.maxDateObject);
33385
35520
  }
33386
35521
 
33387
35522
  this.calendar.requestUpdate();
@@ -33439,6 +35574,7 @@ class AuroDatePicker extends AuroElement {
33439
35574
  }
33440
35575
 
33441
35576
  firstUpdated() {
35577
+
33442
35578
  // Add the tag name as an attribute if it is different than the component name
33443
35579
  this.runtimeUtils.handleComponentTagRename(this, 'auro-datepicker');
33444
35580
 
@@ -33721,7 +35857,7 @@ class AuroDatePicker extends AuroElement {
33721
35857
  /**
33722
35858
  * Handles click on the clear button.
33723
35859
  * @private
33724
- * @param {MouseEvent} event - The click event object.
35860
+ * @param {MouseEvent} event - The mouse event from the clear button click.
33725
35861
  * @returns {void}
33726
35862
  */
33727
35863
  handleClearClick(event) {
@@ -33869,7 +36005,7 @@ class AuroDatePicker extends AuroElement {
33869
36005
  // Base HTML render() handles dropdown and calendar bib
33870
36006
  return html$1`
33871
36007
  <!-- Hidden slot for clear button aria-label -->
33872
- <slot name="ariaLabel.input.clear" hidden @slotchange=${this.requestUpdate}></slot>
36008
+ <slot name="ariaLabel.input.clear" hidden @slotchange=${() => this.requestUpdate()}></slot>
33873
36009
 
33874
36010
  <${this.dropdownTag}
33875
36011
  appearance="${this.onDark ? 'inverse' : this.appearance}"
@@ -33886,6 +36022,7 @@ class AuroDatePicker extends AuroElement {
33886
36022
  .shape="${this.shape}"
33887
36023
  .size="${this.size}"
33888
36024
  class="${classMap(dropdownElementClassMap)}"
36025
+ desktopModal
33889
36026
  disableEventShow
33890
36027
  for="dropdownMenu"
33891
36028
  part="dropdown"