@pod-os/elements 0.11.1-e89c280.0 → 0.12.0

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 (205) hide show
  1. package/dist/cjs/{data-0c9489d7.js → data-5be6ab7b.js} +19 -2
  2. package/dist/cjs/elements.cjs.js +2 -2
  3. package/dist/cjs/{index-91d3ff9c.js → index-8c116b24.js} +8463 -446
  4. package/dist/cjs/ion-accordion.cjs.entry.js +2 -2
  5. package/dist/cjs/ion-action-sheet_3.cjs.entry.js +1 -1
  6. package/dist/cjs/{ion-app_25.cjs.entry.js → ion-app_26.cjs.entry.js} +42 -4
  7. package/dist/cjs/ion-badge_12.cjs.entry.js +36 -10
  8. package/dist/cjs/ion-buttons_3.cjs.entry.js +1 -1
  9. package/dist/cjs/ion-checkbox_4.cjs.entry.js +9 -0
  10. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  11. package/dist/cjs/ion-datetime.cjs.entry.js +107 -56
  12. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  13. package/dist/cjs/ion-menu.cjs.entry.js +18 -15
  14. package/dist/cjs/ion-modal.cjs.entry.js +35 -26
  15. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -2
  16. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-select.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  20. package/dist/cjs/ion-textarea.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-toast.cjs.entry.js +23 -5
  22. package/dist/cjs/loader.cjs.js +2 -2
  23. package/dist/cjs/{overlays-56226483.js → overlays-5d99746a.js} +9 -0
  24. package/dist/cjs/pos-container-contents.cjs.entry.js +1 -1
  25. package/dist/cjs/pos-subjects.cjs.entry.js +1 -1
  26. package/dist/collection/apps/pos-app-browser/pos-app-browser.js +1 -1
  27. package/dist/collection/collection-manifest.json +2 -1
  28. package/dist/collection/components/pos-add-literal-value/pos-add-literal-value.js +34 -10
  29. package/dist/collection/components/pos-error-toast/pos-error-toast.js +35 -0
  30. package/dist/collection/components/pos-literals/pos-literals.js +17 -1
  31. package/dist/components/button.js +3 -3
  32. package/dist/components/buttons.js +1 -1
  33. package/dist/components/content.js +9 -0
  34. package/dist/components/data.js +20 -3
  35. package/dist/components/index.d.ts +1 -0
  36. package/dist/components/index.js +1 -0
  37. package/dist/components/index4.js +1 -1
  38. package/dist/components/index8.js +8464 -446
  39. package/dist/components/ion-accordion.js +2 -2
  40. package/dist/components/ion-datetime-button.js +1 -1
  41. package/dist/components/ion-datetime.js +60 -8
  42. package/dist/components/ion-menu.js +17 -14
  43. package/dist/components/ion-modal.js +35 -26
  44. package/dist/components/ion-range.js +1 -1
  45. package/dist/components/ion-split-pane.js +1 -1
  46. package/dist/components/ion-textarea.js +1 -1
  47. package/dist/components/ion-toast.js +21 -2
  48. package/dist/components/item.js +1 -1
  49. package/dist/components/overlays.js +9 -1
  50. package/dist/components/picker-column.js +1 -2
  51. package/dist/components/popover.js +1 -1
  52. package/dist/components/pos-add-literal-value2.js +19 -9
  53. package/dist/components/pos-app-browser.js +39 -33
  54. package/dist/components/pos-error-toast.d.ts +11 -0
  55. package/dist/components/pos-error-toast.js +6 -0
  56. package/dist/components/pos-error-toast2.js +45 -0
  57. package/dist/components/pos-literals2.js +17 -1
  58. package/dist/components/radio.js +9 -0
  59. package/dist/elements/elements.css +1 -1
  60. package/dist/elements/elements.esm.js +1 -1
  61. package/dist/elements/{p-3088881f.js → p-0243a87a.js} +1 -1
  62. package/dist/elements/{p-1f4a3457.entry.js → p-036e382c.entry.js} +1 -1
  63. package/dist/elements/{p-8d726c51.entry.js → p-04bb69f5.entry.js} +2 -2
  64. package/dist/elements/{p-e0f4deae.js → p-07b61827.js} +2 -2
  65. package/dist/elements/{p-1244c9d7.entry.js → p-185506fc.entry.js} +2 -2
  66. package/dist/elements/{p-13a6f7bc.entry.js → p-21387f7c.entry.js} +1 -1
  67. package/dist/elements/p-228d64ab.entry.js +1 -0
  68. package/dist/elements/{p-b1ba08d2.js → p-3082941e.js} +1 -1
  69. package/dist/elements/p-33a17bf9.js +7 -0
  70. package/dist/elements/{p-4e60709f.js → p-387a310a.js} +2 -2
  71. package/dist/elements/p-446a00fa.entry.js +1 -0
  72. package/dist/elements/{p-20204cd6.entry.js → p-485c278b.entry.js} +1 -1
  73. package/dist/elements/{p-0169a9df.js → p-4deca788.js} +2 -2
  74. package/dist/elements/p-5d9b5890.entry.js +1 -0
  75. package/dist/elements/{p-2cfcee5f.entry.js → p-61d5e682.entry.js} +1 -1
  76. package/dist/elements/{p-5949c98f.entry.js → p-674fc19d.entry.js} +1 -1
  77. package/dist/elements/p-6b7c2114.entry.js +9 -0
  78. package/dist/elements/{p-a589651d.entry.js → p-6cc24956.entry.js} +2 -2
  79. package/dist/elements/{p-673fe601.entry.js → p-6e2e72c7.entry.js} +1 -1
  80. package/dist/elements/{p-928b90ab.entry.js → p-70d8e941.entry.js} +1 -1
  81. package/dist/elements/{p-3cc9c581.entry.js → p-7120b5f1.entry.js} +1 -1
  82. package/dist/elements/p-746b8d20.js +4 -0
  83. package/dist/elements/{p-216a955e.entry.js → p-7eafab7c.entry.js} +1 -1
  84. package/dist/elements/{p-20cec807.entry.js → p-81937d27.entry.js} +2 -2
  85. package/dist/elements/p-864b27a7.js +4 -0
  86. package/dist/elements/p-88c6dc94.entry.js +4 -0
  87. package/dist/elements/{p-3c8a5a30.entry.js → p-899550d8.entry.js} +1 -1
  88. package/dist/elements/{p-6b15aaeb.js → p-8f253089.js} +1 -1
  89. package/dist/elements/{p-48f46efa.entry.js → p-9074ecd7.entry.js} +1 -1
  90. package/dist/elements/p-957dc323.js +4 -0
  91. package/dist/elements/{p-4d8b9f45.entry.js → p-988e4192.entry.js} +1 -1
  92. package/dist/elements/{p-efabbb0d.js → p-995ec23e.js} +2 -2
  93. package/dist/elements/{p-2f09ba32.entry.js → p-9b2880ae.entry.js} +1 -1
  94. package/dist/elements/{p-827125bb.entry.js → p-a6c55fcb.entry.js} +1 -1
  95. package/dist/elements/p-af558048.entry.js +1 -0
  96. package/dist/elements/{p-7884f255.js → p-b003ddd8.js} +1 -1
  97. package/dist/elements/{p-ada8cc4e.entry.js → p-b3f2cc07.entry.js} +1 -1
  98. package/dist/elements/{p-26b4768e.entry.js → p-b8243f9f.entry.js} +1 -1
  99. package/dist/elements/p-c1bcf425.entry.js +7 -0
  100. package/dist/elements/{p-6937adab.entry.js → p-c1e9bc5e.entry.js} +1 -1
  101. package/dist/elements/{p-4ee1b070.entry.js → p-c218101a.entry.js} +1 -1
  102. package/dist/elements/{p-af4ba42f.entry.js → p-ce4f5b1f.entry.js} +1 -1
  103. package/dist/elements/{p-41a159a6.entry.js → p-d0772d6b.entry.js} +1 -1
  104. package/dist/elements/{p-2bb1928f.js → p-d3860378.js} +2 -2
  105. package/dist/elements/{p-078fbb91.entry.js → p-d43bc78d.entry.js} +2 -2
  106. package/dist/elements/{p-dd84e91a.entry.js → p-d6b522ec.entry.js} +1 -1
  107. package/dist/elements/{p-7710fe29.entry.js → p-da1f80aa.entry.js} +1 -1
  108. package/dist/elements/p-da85c9fc.js +119 -0
  109. package/dist/elements/{p-cae34530.entry.js → p-da86ba7e.entry.js} +1 -1
  110. package/dist/elements/{p-fb9f4444.entry.js → p-dbcb55b8.entry.js} +1 -1
  111. package/dist/elements/{p-e81498f1.entry.js → p-e7872214.entry.js} +1 -1
  112. package/dist/elements/p-e7fc7473.js +4 -0
  113. package/dist/elements/{p-f16106d1.entry.js → p-ec130fe7.entry.js} +1 -1
  114. package/dist/elements/{p-a617e741.entry.js → p-f0b0274f.entry.js} +1 -1
  115. package/dist/elements/p-f3a6519e.js +4 -0
  116. package/dist/elements/{p-15138093.entry.js → p-f796e16d.entry.js} +3 -3
  117. package/dist/elements/p-faafaf1a.entry.js +1 -0
  118. package/dist/elements/p-fd3b5d19.entry.js +1 -0
  119. package/dist/elements/{p-64c4e33d.entry.js → p-fe26ffc1.entry.js} +1 -1
  120. package/dist/esm/{animation-be5f711f.js → animation-b5940eb7.js} +1 -1
  121. package/dist/esm/{data-2c0eab05.js → data-0c8397b1.js} +19 -2
  122. package/dist/esm/elements.js +2 -2
  123. package/dist/esm/{framework-delegate-e3d3514b.js → framework-delegate-df4b1d47.js} +1 -1
  124. package/dist/esm/{helpers-516c51e1.js → helpers-dc474de0.js} +1 -1
  125. package/dist/esm/{index-975a559a.js → index-3ca7ca42.js} +2 -2
  126. package/dist/esm/{index-f53834ea.js → index-3f9a18ba.js} +1 -1
  127. package/dist/esm/{index-487ee567.js → index-8b7a635c.js} +1 -1
  128. package/dist/esm/{index-5b4bb310.js → index-8da653e3.js} +3 -3
  129. package/dist/esm/{index-c4158e4a.js → index-9e91fad4.js} +8464 -446
  130. package/dist/esm/{input-shims-14aa5c3b.js → input-shims-aedf5b0c.js} +2 -2
  131. package/dist/esm/ion-accordion.entry.js +3 -3
  132. package/dist/esm/ion-action-sheet_3.entry.js +3 -3
  133. package/dist/esm/{ion-app_25.entry.js → ion-app_26.entry.js} +47 -10
  134. package/dist/esm/ion-back-button.entry.js +1 -1
  135. package/dist/esm/ion-badge_12.entry.js +37 -11
  136. package/dist/esm/ion-breadcrumb.entry.js +1 -1
  137. package/dist/esm/ion-buttons_3.entry.js +2 -2
  138. package/dist/esm/ion-checkbox_4.entry.js +10 -1
  139. package/dist/esm/ion-datetime-button.entry.js +2 -2
  140. package/dist/esm/ion-datetime.entry.js +61 -10
  141. package/dist/esm/ion-fab-button.entry.js +1 -1
  142. package/dist/esm/ion-img.entry.js +1 -1
  143. package/dist/esm/ion-infinite-scroll.entry.js +2 -2
  144. package/dist/esm/ion-item-options.entry.js +1 -1
  145. package/dist/esm/ion-item-sliding.entry.js +2 -2
  146. package/dist/esm/ion-item_4.entry.js +1 -1
  147. package/dist/esm/ion-loading.entry.js +3 -3
  148. package/dist/esm/ion-menu-button.entry.js +4 -4
  149. package/dist/esm/ion-menu-toggle.entry.js +4 -4
  150. package/dist/esm/ion-menu.entry.js +21 -18
  151. package/dist/esm/ion-modal.entry.js +40 -31
  152. package/dist/esm/ion-nav.entry.js +4 -4
  153. package/dist/esm/ion-picker-column.entry.js +2 -3
  154. package/dist/esm/ion-picker.entry.js +3 -3
  155. package/dist/esm/ion-popover.entry.js +5 -5
  156. package/dist/esm/ion-range.entry.js +2 -2
  157. package/dist/esm/ion-refresher.entry.js +3 -3
  158. package/dist/esm/ion-reorder-group.entry.js +2 -2
  159. package/dist/esm/ion-router-outlet.entry.js +4 -4
  160. package/dist/esm/ion-router.entry.js +1 -1
  161. package/dist/esm/ion-segment-button.entry.js +1 -1
  162. package/dist/esm/ion-segment.entry.js +1 -1
  163. package/dist/esm/ion-select.entry.js +2 -2
  164. package/dist/esm/ion-slides.entry.js +1 -1
  165. package/dist/esm/ion-split-pane.entry.js +1 -1
  166. package/dist/esm/ion-tab-button.entry.js +1 -1
  167. package/dist/esm/ion-tab.entry.js +2 -2
  168. package/dist/esm/ion-textarea.entry.js +2 -2
  169. package/dist/esm/ion-toast.entry.js +23 -5
  170. package/dist/esm/ion-toggle.entry.js +1 -1
  171. package/dist/esm/ion-virtual-scroll.entry.js +1 -1
  172. package/dist/esm/{ios.transition-e4f590ed.js → ios.transition-fc8a45f6.js} +3 -3
  173. package/dist/esm/loader.js +2 -2
  174. package/dist/esm/{md.transition-f82b8ec5.js → md.transition-a33cfe2d.js} +3 -3
  175. package/dist/esm/{menu-toggle-util-c4c92fb3.js → menu-toggle-util-d434cd99.js} +1 -1
  176. package/dist/esm/{overlays-9f558e5d.js → overlays-3bfecc84.js} +10 -2
  177. package/dist/esm/pos-container-contents.entry.js +1 -1
  178. package/dist/esm/pos-subjects.entry.js +1 -1
  179. package/dist/esm/{status-tap-9bc89ae6.js → status-tap-c468a2d0.js} +2 -2
  180. package/dist/esm/{swipe-back-4cf55049.js → swipe-back-3b3f43fc.js} +1 -1
  181. package/dist/types/components/pos-add-literal-value/pos-add-literal-value.d.ts +10 -1
  182. package/dist/types/components/pos-error-toast/pos-error-toast.d.ts +4 -0
  183. package/dist/types/components/pos-literals/pos-literals.d.ts +1 -0
  184. package/dist/types/components.d.ts +20 -0
  185. package/package.json +6 -6
  186. package/dist/cjs/jsonld-HFR6RJUN-008ea20f.js +0 -8425
  187. package/dist/components/jsonld-HFR6RJUN.js +0 -8423
  188. package/dist/elements/p-011e627f.js +0 -4
  189. package/dist/elements/p-1949ecba.entry.js +0 -9
  190. package/dist/elements/p-195c8b60.js +0 -32
  191. package/dist/elements/p-37c43290.js +0 -4
  192. package/dist/elements/p-3f05b00a.js +0 -4
  193. package/dist/elements/p-6c05b99e.js +0 -7
  194. package/dist/elements/p-6dfca133.entry.js +0 -7
  195. package/dist/elements/p-6e75e3e5.entry.js +0 -1
  196. package/dist/elements/p-843c25a6.entry.js +0 -1
  197. package/dist/elements/p-8a5fdd45.entry.js +0 -1
  198. package/dist/elements/p-a8083674.js +0 -4
  199. package/dist/elements/p-b5e115b1.js +0 -90
  200. package/dist/elements/p-c12d7195.entry.js +0 -1
  201. package/dist/elements/p-c29ec519.entry.js +0 -4
  202. package/dist/elements/p-dc89477c.js +0 -4
  203. package/dist/elements/p-e0574155.entry.js +0 -1
  204. package/dist/elements/p-efa41d7d.entry.js +0 -1
  205. package/dist/esm/jsonld-HFR6RJUN-519a9242.js +0 -8423
@@ -2,15 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-db5db51f.js');
5
+ const index$1 = require('./index-db5db51f.js');
6
6
  const index$2 = require('./index-4e78c1d2.js');
7
7
  const ionicGlobal = require('./ionic-global-66c719bf.js');
8
8
  const focusVisible = require('./focus-visible-f8b0cb52.js');
9
9
  const helpers = require('./helpers-cb08f5ae.js');
10
- const index$1 = require('./index-b2a479e4.js');
10
+ const index = require('./index-b2a479e4.js');
11
11
  const dir = require('./dir-011f46ea.js');
12
12
  const theme = require('./theme-fc63803b.js');
13
- const data = require('./data-0c9489d7.js');
13
+ const data = require('./data-5be6ab7b.js');
14
14
 
15
15
  /*!
16
16
  * (C) Ionic http://ionicframework.com - MIT License
@@ -151,20 +151,50 @@ const isNextMonthDisabled = (refParts, maxParts) => {
151
151
  maxParts,
152
152
  });
153
153
  };
154
+ /**
155
+ * Given the value of the highlightedDates property
156
+ * and an ISO string, return the styles to use for
157
+ * that date, or undefined if none are found.
158
+ */
159
+ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
160
+ if (Array.isArray(highlightedDates)) {
161
+ const dateStringWithoutTime = dateIsoString.split('T')[0];
162
+ const matchingHighlight = highlightedDates.find((hd) => hd.date === dateStringWithoutTime);
163
+ if (matchingHighlight) {
164
+ return {
165
+ textColor: matchingHighlight.textColor,
166
+ backgroundColor: matchingHighlight.backgroundColor,
167
+ };
168
+ }
169
+ }
170
+ else {
171
+ /**
172
+ * Wrap in a try-catch to prevent exceptions in the user's function
173
+ * from interrupting the calendar's rendering.
174
+ */
175
+ try {
176
+ return highlightedDates(dateIsoString);
177
+ }
178
+ catch (e) {
179
+ index.printIonError('Exception thrown from provided `highlightedDates` callback. Please check your function and try again.', el, e);
180
+ }
181
+ }
182
+ return undefined;
183
+ };
154
184
 
155
- const datetimeIosCss = ":host{display:flex;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{order:3;text-align:end}:host .wheel-order-year-first .month-column{order:2;text-align:end}:host .wheel-order-year-first .year-column{order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:flex;flex:1 1 auto;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:flex;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:flex;flex-grow:1;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:flex;position:relative;align-items:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;appearance:none;z-index:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}:host .calendar-day:after{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;top:50%;left:50%;width:32px;height:32px;transform:translate(-50%, -50%);content:\" \";z-index:-1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day:after{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:flex;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:flex;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;appearance:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{padding-left:16px;padding-right:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:14px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:16px;font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:12px;font-weight:600;line-height:24px;text-transform:uppercase}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;height:calc(100% - 16px)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-day{font-size:20px}:host .calendar-day:after{opacity:0.2}:host .calendar-day:focus:after{background:var(--ion-color-base)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-active:after{background:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-today.calendar-day-active:after{background:var(--ion-color-base);opacity:1}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:16px;font-size:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:flex;align-items:center;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
185
+ const datetimeIosCss = ":host{display:flex;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{order:3;text-align:end}:host .wheel-order-year-first .month-column{order:2;text-align:end}:host .wheel-order-year-first .year-column{order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:flex;flex:1 1 auto;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:flex;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:flex;flex-grow:1;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:flex;position:relative;align-items:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;appearance:none;z-index:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day-highlight{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:32px;height:32px;z-index:-1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.calendar-day-highlight{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:flex;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:flex;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;appearance:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{padding-left:16px;padding-right:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:14px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:16px;font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:12px;font-weight:600;line-height:24px;text-transform:uppercase}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;height:calc(100% - 16px)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-day{font-size:20px}.calendar-day:focus .calendar-day-highlight,.calendar-day.calendar-day-active .calendar-day-highlight{opacity:0.2}.calendar-day.calendar-day-active .calendar-day-highlight{background:var(--ion-color-base)}.calendar-day:focus .calendar-day-highlight{background:var(--ion-color-base) !important}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-today.calendar-day-active .calendar-day-highlight{background:var(--ion-color-base);opacity:1}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:16px;font-size:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:flex;align-items:center;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
156
186
 
157
- const datetimeMdCss = ":host{display:flex;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{order:3;text-align:end}:host .wheel-order-year-first .month-column{order:2;text-align:end}:host .wheel-order-year-first .year-column{order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:flex;flex:1 1 auto;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:flex;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:flex;flex-grow:1;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:flex;position:relative;align-items:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;appearance:none;z-index:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}:host .calendar-day:after{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;top:50%;left:50%;width:32px;height:32px;transform:translate(-50%, -50%);content:\" \";z-index:-1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day:after{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:flex;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:flex;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;appearance:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-step-100, #ffffff);--title-color:var(--ion-color-contrast)}:host .datetime-header{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host .datetime-header .datetime-title{font-size:12px;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:34px}:host .datetime-calendar .calendar-action-buttons ion-item{--padding-start:20px}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{color:var(--ion-color-step-650, #595959)}:host .calendar-days-of-week{padding-left:10px;padding-right:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, gray);font-size:14px;line-height:36px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-day{padding-left:0px;padding-right:0;padding-top:13px;padding-bottom:13px;font-size:14px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-day:focus:after{background:rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today:after{border:1px solid var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-active:after{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .time-header{color:var(--ion-color-step-650, #595959)}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{padding-left:10px;padding-right:10px;padding-top:10px;padding-bottom:10px;display:flex;align-items:center;justify-content:flex-end}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .datetime-view-buttons ion-button{color:var(--ion-color-step-800, #333333)}";
187
+ const datetimeMdCss = ":host{display:flex;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{order:3;text-align:end}:host .wheel-order-year-first .month-column{order:2;text-align:end}:host .wheel-order-year-first .year-column{order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:flex;flex:1 1 auto;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons{display:flex;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:flex;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:flex;flex-grow:1;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:flex;position:relative;align-items:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;appearance:none;z-index:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day-highlight{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:32px;height:32px;z-index:-1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.calendar-day-highlight{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:flex;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:flex;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;appearance:none}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-step-100, #ffffff);--title-color:var(--ion-color-contrast)}:host .datetime-header{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host .datetime-header .datetime-title{font-size:12px;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:34px}:host .datetime-calendar .calendar-action-buttons ion-item{--padding-start:20px}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{color:var(--ion-color-step-650, #595959)}:host .calendar-days-of-week{padding-left:10px;padding-right:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, gray);font-size:14px;line-height:36px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:10px;padding-right:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-day{padding-left:0px;padding-right:0;padding-top:13px;padding-bottom:13px;font-size:14px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0;padding-inline-end:0}}.calendar-day:focus .calendar-day-highlight{background:rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}.calendar-day.calendar-day-today .calendar-day-highlight{border:1px solid var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active .calendar-day-highlight{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .time-header{color:var(--ion-color-step-650, #595959)}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{padding-left:10px;padding-right:10px;padding-top:10px;padding-bottom:10px;display:flex;align-items:center;justify-content:flex-end}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .datetime-view-buttons ion-button{color:var(--ion-color-step-800, #333333)}";
158
188
 
159
189
  const Datetime = class {
160
190
  constructor(hostRef) {
161
- index.registerInstance(this, hostRef);
162
- this.ionCancel = index.createEvent(this, "ionCancel", 7);
163
- this.ionChange = index.createEvent(this, "ionChange", 7);
164
- this.ionFocus = index.createEvent(this, "ionFocus", 7);
165
- this.ionBlur = index.createEvent(this, "ionBlur", 7);
166
- this.ionStyle = index.createEvent(this, "ionStyle", 7);
167
- this.ionRender = index.createEvent(this, "ionRender", 7);
191
+ index$1.registerInstance(this, hostRef);
192
+ this.ionCancel = index$1.createEvent(this, "ionCancel", 7);
193
+ this.ionChange = index$1.createEvent(this, "ionChange", 7);
194
+ this.ionFocus = index$1.createEvent(this, "ionFocus", 7);
195
+ this.ionBlur = index$1.createEvent(this, "ionBlur", 7);
196
+ this.ionStyle = index$1.createEvent(this, "ionStyle", 7);
197
+ this.ionRender = index$1.createEvent(this, "ionRender", 7);
168
198
  this.inputId = `ion-dt-${datetimeIds++}`;
169
199
  this.prevPresentation = null;
170
200
  /**
@@ -531,7 +561,7 @@ const Datetime = class {
531
561
  * scrollIntoView() will scroll entire page
532
562
  * if element is not in viewport. Use scrollLeft instead.
533
563
  */
534
- index.writeTask(() => {
564
+ index$1.writeTask(() => {
535
565
  calendarBodyRef.scrollLeft = startMonth.clientWidth * (dir.isRTL(this.el) ? -1 : 1);
536
566
  const getChangedMonth = (parts) => {
537
567
  const box = calendarBodyRef.getBoundingClientRect();
@@ -613,7 +643,7 @@ const Datetime = class {
613
643
  * but older/slower device may have a flicker
614
644
  * if we did not do this.
615
645
  */
616
- index.writeTask(() => {
646
+ index$1.writeTask(() => {
617
647
  this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), { month, day: day, year }));
618
648
  calendarBodyRef.scrollLeft = workingMonth.clientWidth * (dir.isRTL(this.el) ? -1 : 1);
619
649
  calendarBodyRef.style.removeProperty('overflow');
@@ -854,7 +884,7 @@ const Datetime = class {
854
884
  }
855
885
  }
856
886
  else {
857
- index$1.printIonWarning(`Unable to parse date string: ${value}. Please provide a valid ISO 8601 datetime string.`);
887
+ index.printIonWarning(`Unable to parse date string: ${value}. Please provide a valid ISO 8601 datetime string.`);
858
888
  }
859
889
  }
860
890
  this.emitStyle();
@@ -961,7 +991,7 @@ const Datetime = class {
961
991
  * is that the content will pop into view a frame after. Maybe there
962
992
  * is a better way to handle this?
963
993
  */
964
- index.writeTask(() => {
994
+ index$1.writeTask(() => {
965
995
  this.el.classList.add('datetime-ready');
966
996
  });
967
997
  };
@@ -994,7 +1024,7 @@ const Datetime = class {
994
1024
  * As a result, the wrong month will be shown.
995
1025
  */
996
1026
  this.showMonthAndYear = false;
997
- index.writeTask(() => {
1027
+ index$1.writeTask(() => {
998
1028
  this.el.classList.remove('datetime-ready');
999
1029
  });
1000
1030
  };
@@ -1060,13 +1090,21 @@ const Datetime = class {
1060
1090
  });
1061
1091
  }
1062
1092
  componentWillLoad() {
1063
- const { el, multiple, presentation, preferWheel } = this;
1093
+ const { el, highlightedDates, multiple, presentation, preferWheel } = this;
1064
1094
  if (multiple) {
1065
1095
  if (presentation !== 'date') {
1066
- index$1.printIonWarning('Multiple date selection is only supported for presentation="date".', el);
1096
+ index.printIonWarning('Multiple date selection is only supported for presentation="date".', el);
1067
1097
  }
1068
1098
  if (preferWheel) {
1069
- index$1.printIonWarning('Multiple date selection is not supported with preferWheel="true".', el);
1099
+ index.printIonWarning('Multiple date selection is not supported with preferWheel="true".', el);
1100
+ }
1101
+ }
1102
+ if (highlightedDates !== undefined) {
1103
+ if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
1104
+ index.printIonWarning('The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
1105
+ }
1106
+ if (preferWheel) {
1107
+ index.printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
1070
1108
  }
1071
1109
  }
1072
1110
  this.processMinParts();
@@ -1110,10 +1148,10 @@ const Datetime = class {
1110
1148
  * OK - Dismisses the datetime and
1111
1149
  * updates the `value` prop.
1112
1150
  */
1113
- return (index.h("div", { class: "datetime-footer" }, index.h("div", { class: "datetime-buttons" }, index.h("div", { class: {
1151
+ return (index$1.h("div", { class: "datetime-footer" }, index$1.h("div", { class: "datetime-buttons" }, index$1.h("div", { class: {
1114
1152
  ['datetime-action-buttons']: true,
1115
1153
  ['has-clear-button']: this.showClearButton,
1116
- } }, index.h("slot", { name: "buttons" }, index.h("ion-buttons", null, showDefaultButtons && (index.h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true) }, this.cancelText)), index.h("div", null, showClearButton && (index.h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick() }, this.clearText)), showDefaultButtons && (index.h("ion-button", { id: "confirm-button", color: this.color, onClick: () => this.confirm(true) }, this.doneText)))))))));
1154
+ } }, index$1.h("slot", { name: "buttons" }, index$1.h("ion-buttons", null, showDefaultButtons && (index$1.h("ion-button", { id: "cancel-button", color: this.color, onClick: () => this.cancel(true) }, this.cancelText)), index$1.h("div", null, showClearButton && (index$1.h("ion-button", { id: "clear-button", color: this.color, onClick: () => clearButtonClick() }, this.clearText)), showDefaultButtons && (index$1.h("ion-button", { id: "confirm-button", color: this.color, onClick: () => this.confirm(true) }, this.doneText)))))))));
1117
1155
  }
1118
1156
  /**
1119
1157
  * Wheel picker render methods
@@ -1131,7 +1169,7 @@ const Datetime = class {
1131
1169
  const renderArray = forcePresentation === 'time-date'
1132
1170
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
1133
1171
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
1134
- return index.h("ion-picker-internal", null, renderArray);
1172
+ return index$1.h("ion-picker-internal", null, renderArray);
1135
1173
  }
1136
1174
  renderDatePickerColumns(forcePresentation) {
1137
1175
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -1166,8 +1204,8 @@ const Datetime = class {
1166
1204
  let items = result.items;
1167
1205
  const parts = result.parts;
1168
1206
  if (isDateEnabled) {
1169
- items = items.map((itemObject, index) => {
1170
- const referenceParts = parts[index];
1207
+ items = items.map((itemObject, index$1) => {
1208
+ const referenceParts = parts[index$1];
1171
1209
  let disabled;
1172
1210
  try {
1173
1211
  /**
@@ -1178,7 +1216,7 @@ const Datetime = class {
1178
1216
  disabled = !isDateEnabled(data.convertDataToISO(referenceParts));
1179
1217
  }
1180
1218
  catch (e) {
1181
- index$1.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
1219
+ index.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
1182
1220
  }
1183
1221
  return Object.assign(Object.assign({}, itemObject), { disabled });
1184
1222
  });
@@ -1190,7 +1228,7 @@ const Datetime = class {
1190
1228
  const todayString = workingParts.day !== null
1191
1229
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
1192
1230
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
1193
- return (index.h("ion-picker-column-internal", { class: "date-column", color: this.color, items: items, value: todayString, onIonChange: (ev) => {
1231
+ return (index$1.h("ion-picker-column-internal", { class: "date-column", color: this.color, items: items, value: todayString, onIonChange: (ev) => {
1194
1232
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1195
1233
  // Due to a Safari 14 issue we need to destroy
1196
1234
  // the scroll listener before we update state
@@ -1237,7 +1275,7 @@ const Datetime = class {
1237
1275
  disabled = !isDateEnabled(data.convertDataToISO(referenceParts));
1238
1276
  }
1239
1277
  catch (e) {
1240
- index$1.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
1278
+ index.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
1241
1279
  }
1242
1280
  return Object.assign(Object.assign({}, dayObject), { disabled });
1243
1281
  });
@@ -1274,7 +1312,7 @@ const Datetime = class {
1274
1312
  }
1275
1313
  const { workingParts } = this;
1276
1314
  const activePart = this.getActivePartsWithFallback();
1277
- return (index.h("ion-picker-column-internal", { class: "day-column", color: this.color, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1315
+ return (index$1.h("ion-picker-column-internal", { class: "day-column", color: this.color, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1278
1316
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1279
1317
  // Due to a Safari 14 issue we need to destroy
1280
1318
  // the scroll listener before we update state
@@ -1296,7 +1334,7 @@ const Datetime = class {
1296
1334
  }
1297
1335
  const { workingParts } = this;
1298
1336
  const activePart = this.getActivePartsWithFallback();
1299
- return (index.h("ion-picker-column-internal", { class: "month-column", color: this.color, items: months, value: workingParts.month, onIonChange: (ev) => {
1337
+ return (index$1.h("ion-picker-column-internal", { class: "month-column", color: this.color, items: months, value: workingParts.month, onIonChange: (ev) => {
1300
1338
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1301
1339
  // Due to a Safari 14 issue we need to destroy
1302
1340
  // the scroll listener before we update state
@@ -1318,7 +1356,7 @@ const Datetime = class {
1318
1356
  }
1319
1357
  const { workingParts } = this;
1320
1358
  const activePart = this.getActivePartsWithFallback();
1321
- return (index.h("ion-picker-column-internal", { class: "year-column", color: this.color, items: years, value: workingParts.year, onIonChange: (ev) => {
1359
+ return (index$1.h("ion-picker-column-internal", { class: "year-column", color: this.color, items: years, value: workingParts.year, onIonChange: (ev) => {
1322
1360
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1323
1361
  // Due to a Safari 14 issue we need to destroy
1324
1362
  // the scroll listener before we update state
@@ -1361,7 +1399,7 @@ const Datetime = class {
1361
1399
  if (hoursData.length === 0)
1362
1400
  return [];
1363
1401
  const activePart = this.getActivePartsWithFallback();
1364
- return (index.h("ion-picker-column-internal", { color: this.color, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1402
+ return (index$1.h("ion-picker-column-internal", { color: this.color, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1365
1403
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1366
1404
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1367
1405
  ev.stopPropagation();
@@ -1372,7 +1410,7 @@ const Datetime = class {
1372
1410
  if (minutesData.length === 0)
1373
1411
  return [];
1374
1412
  const activePart = this.getActivePartsWithFallback();
1375
- return (index.h("ion-picker-column-internal", { color: this.color, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1413
+ return (index$1.h("ion-picker-column-internal", { color: this.color, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1376
1414
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1377
1415
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1378
1416
  ev.stopPropagation();
@@ -1385,7 +1423,7 @@ const Datetime = class {
1385
1423
  }
1386
1424
  const activePart = this.getActivePartsWithFallback();
1387
1425
  const isDayPeriodRTL = data.isLocaleDayPeriodRTL(this.locale);
1388
- return (index.h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1426
+ return (index$1.h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1389
1427
  const hour = data.calculateHourFromAMPM(workingParts, ev.detail.value);
1390
1428
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1391
1429
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
@@ -1396,7 +1434,7 @@ const Datetime = class {
1396
1434
  const { locale } = this;
1397
1435
  const showMonthFirst = data.isMonthFirstLocale(locale);
1398
1436
  const columnOrder = showMonthFirst ? 'month-first' : 'year-first';
1399
- return (index.h("div", { class: {
1437
+ return (index$1.h("div", { class: {
1400
1438
  [`wheel-order-${columnOrder}`]: true,
1401
1439
  } }, this.renderWheelPicker(forcePresentation)));
1402
1440
  }
@@ -1410,8 +1448,8 @@ const Datetime = class {
1410
1448
  const nextMonthDisabled = isNextMonthDisabled(this.workingParts, this.maxParts);
1411
1449
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1412
1450
  const hostDir = this.el.getAttribute('dir') || undefined;
1413
- return (index.h("div", { class: "calendar-header" }, index.h("div", { class: "calendar-action-buttons" }, index.h("div", { class: "calendar-month-year" }, index.h("ion-item", { button: true, detail: false, lines: "none", onClick: () => this.toggleMonthAndYearView() }, index.h("ion-label", null, data.getMonthAndYear(this.locale, this.workingParts), index.h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), index.h("div", { class: "calendar-next-prev" }, index.h("ion-buttons", null, index.h("ion-button", { "aria-label": "previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: index$2.chevronBack, lazy: false, flipRtl: true })), index.h("ion-button", { "aria-label": "next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, index.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: index$2.chevronForward, lazy: false, flipRtl: true }))))), index.h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, data.getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1414
- return index.h("div", { class: "day-of-week" }, d);
1451
+ return (index$1.h("div", { class: "calendar-header" }, index$1.h("div", { class: "calendar-action-buttons" }, index$1.h("div", { class: "calendar-month-year" }, index$1.h("ion-item", { button: true, detail: false, lines: "none", onClick: () => this.toggleMonthAndYearView() }, index$1.h("ion-label", null, data.getMonthAndYear(this.locale, this.workingParts), index$1.h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), index$1.h("div", { class: "calendar-next-prev" }, index$1.h("ion-buttons", null, index$1.h("ion-button", { "aria-label": "previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, index$1.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: index$2.chevronBack, lazy: false, flipRtl: true })), index$1.h("ion-button", { "aria-label": "next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, index$1.h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: index$2.chevronForward, lazy: false, flipRtl: true }))))), index$1.h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, data.getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1452
+ return index$1.h("div", { class: "day-of-week" }, d);
1415
1453
  }))));
1416
1454
  }
1417
1455
  renderMonth(month, year) {
@@ -1434,16 +1472,17 @@ const Datetime = class {
1434
1472
  // can free-scroll the calendar.
1435
1473
  const isWorkingMonth = this.workingParts.month === month && this.workingParts.year === year;
1436
1474
  const activePart = this.getActivePartsWithFallback();
1437
- return (index.h("div", { "aria-hidden": !isWorkingMonth ? 'true' : null, class: {
1475
+ return (index$1.h("div", { "aria-hidden": !isWorkingMonth ? 'true' : null, class: {
1438
1476
  'calendar-month': true,
1439
1477
  // Prevents scroll snap swipe gestures for months outside of the min/max bounds
1440
1478
  'calendar-month-disabled': !isWorkingMonth && swipeDisabled,
1441
- } }, index.h("div", { class: "calendar-month-grid" }, data.getDaysOfMonth(month, year, this.firstDayOfWeek % 7).map((dateObject, index$2) => {
1479
+ } }, index$1.h("div", { class: "calendar-month-grid" }, data.getDaysOfMonth(month, year, this.firstDayOfWeek % 7).map((dateObject, index$2) => {
1442
1480
  const { day, dayOfWeek } = dateObject;
1443
- const { isDateEnabled, multiple } = this;
1481
+ const { el, highlightedDates, isDateEnabled, multiple } = this;
1444
1482
  const referenceParts = { month, day, year };
1445
1483
  const isCalendarPadding = day === null;
1446
1484
  const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.activePartsClone, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);
1485
+ const dateIsoString = data.convertDataToISO(referenceParts);
1447
1486
  let isCalDayDisabled = isCalMonthDisabled || disabled;
1448
1487
  if (!isCalDayDisabled && isDateEnabled !== undefined) {
1449
1488
  try {
@@ -1452,17 +1491,27 @@ const Datetime = class {
1452
1491
  * to prevent exceptions in the user's function from
1453
1492
  * interrupting the calendar rendering.
1454
1493
  */
1455
- isCalDayDisabled = !isDateEnabled(data.convertDataToISO(referenceParts));
1494
+ isCalDayDisabled = !isDateEnabled(dateIsoString);
1456
1495
  }
1457
1496
  catch (e) {
1458
- index$1.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
1497
+ index.printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', el, e);
1459
1498
  }
1460
1499
  }
1461
- return (index.h("button", { tabindex: "-1", "data-day": day, "data-month": month, "data-year": year, "data-index": index$2, "data-day-of-week": dayOfWeek, disabled: isCalDayDisabled, class: {
1500
+ let dateStyle = undefined;
1501
+ /**
1502
+ * Custom highlight styles should not override the style for selected dates,
1503
+ * nor apply to "filler days" at the start of the grid.
1504
+ */
1505
+ if (highlightedDates !== undefined && !isActive && day !== null) {
1506
+ dateStyle = getHighlightStyles(highlightedDates, dateIsoString, el);
1507
+ }
1508
+ return (index$1.h("button", { tabindex: "-1", "data-day": day, "data-month": month, "data-year": year, "data-index": index$2, "data-day-of-week": dayOfWeek, disabled: isCalDayDisabled, class: {
1462
1509
  'calendar-day-padding': isCalendarPadding,
1463
1510
  'calendar-day': true,
1464
1511
  'calendar-day-active': isActive,
1465
1512
  'calendar-day-today': isToday,
1513
+ }, style: dateStyle && {
1514
+ color: dateStyle.textColor,
1466
1515
  }, "aria-hidden": isCalendarPadding ? 'true' : null, "aria-selected": ariaSelected, "aria-label": ariaLabel, onClick: () => {
1467
1516
  if (isCalendarPadding) {
1468
1517
  return;
@@ -1483,30 +1532,32 @@ const Datetime = class {
1483
1532
  day,
1484
1533
  year }));
1485
1534
  }
1486
- } }, text));
1535
+ } }, index$1.h("div", { class: "calendar-day-highlight", style: {
1536
+ backgroundColor: dateStyle === null || dateStyle === void 0 ? void 0 : dateStyle.backgroundColor,
1537
+ } }), text));
1487
1538
  }))));
1488
1539
  }
1489
1540
  renderCalendarBody() {
1490
- return (index.h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, data.generateMonths(this.workingParts).map(({ month, year }) => {
1541
+ return (index$1.h("div", { class: "calendar-body ion-focusable", ref: (el) => (this.calendarBodyRef = el), tabindex: "0" }, data.generateMonths(this.workingParts).map(({ month, year }) => {
1491
1542
  return this.renderMonth(month, year);
1492
1543
  })));
1493
1544
  }
1494
1545
  renderCalendar(mode) {
1495
- return (index.h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(mode), this.renderCalendarBody()));
1546
+ return (index$1.h("div", { class: "datetime-calendar", key: "datetime-calendar" }, this.renderCalendarHeader(mode), this.renderCalendarBody()));
1496
1547
  }
1497
1548
  renderTimeLabel() {
1498
1549
  const hasSlottedTimeLabel = this.el.querySelector('[slot="time-label"]') !== null;
1499
1550
  if (!hasSlottedTimeLabel && !this.showDefaultTimeLabel) {
1500
1551
  return;
1501
1552
  }
1502
- return index.h("slot", { name: "time-label" }, "Time");
1553
+ return index$1.h("slot", { name: "time-label" }, "Time");
1503
1554
  }
1504
1555
  renderTimeOverlay() {
1505
1556
  const use24Hour = data.is24Hour(this.locale, this.hourCycle);
1506
1557
  const activePart = this.getActivePartsWithFallback();
1507
1558
  return [
1508
- index.h("div", { class: "time-header" }, this.renderTimeLabel()),
1509
- index.h("button", { class: {
1559
+ index$1.h("div", { class: "time-header" }, this.renderTimeLabel()),
1560
+ index$1.h("button", { class: {
1510
1561
  'time-body': true,
1511
1562
  'time-body-active': this.isTimePopoverOpen,
1512
1563
  }, "aria-expanded": "false", "aria-haspopup": "true", onClick: async (ev) => {
@@ -1522,7 +1573,7 @@ const Datetime = class {
1522
1573
  this.isTimePopoverOpen = false;
1523
1574
  }
1524
1575
  } }, data.getLocalizedTime(this.locale, activePart, use24Hour)),
1525
- index.h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1576
+ index$1.h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1526
1577
  /**
1527
1578
  * Intersection Observers do not consistently fire between Blink and Webkit
1528
1579
  * when toggling the visibility of the popover and trying to scroll the picker
@@ -1554,7 +1605,7 @@ const Datetime = class {
1554
1605
  headerText = titleSelectedDatesFormatter(data.convertDataToISO(activeParts));
1555
1606
  }
1556
1607
  catch (e) {
1557
- index$1.printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
1608
+ index.printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
1558
1609
  }
1559
1610
  }
1560
1611
  }
@@ -1569,7 +1620,7 @@ const Datetime = class {
1569
1620
  if (!hasSlottedTitle && !this.showDefaultTitle) {
1570
1621
  return;
1571
1622
  }
1572
- return (index.h("div", { class: "datetime-header" }, index.h("div", { class: "datetime-title" }, index.h("slot", { name: "title" }, "Select Date")), showExpandedHeader && index.h("div", { class: "datetime-selected-date" }, this.getHeaderSelectedDateText())));
1623
+ return (index$1.h("div", { class: "datetime-header" }, index$1.h("div", { class: "datetime-title" }, index$1.h("slot", { name: "title" }, "Select Date")), showExpandedHeader && index$1.h("div", { class: "datetime-selected-date" }, this.getHeaderSelectedDateText())));
1573
1624
  }
1574
1625
  /**
1575
1626
  * Render time picker inside of datetime.
@@ -1581,7 +1632,7 @@ const Datetime = class {
1581
1632
  renderTime() {
1582
1633
  const { presentation } = this;
1583
1634
  const timeOnlyPresentation = presentation === 'time';
1584
- return (index.h("div", { class: "datetime-time" }, timeOnlyPresentation ? this.renderWheelPicker() : this.renderTimeOverlay()));
1635
+ return (index$1.h("div", { class: "datetime-time" }, timeOnlyPresentation ? this.renderWheelPicker() : this.renderTimeOverlay()));
1585
1636
  }
1586
1637
  /**
1587
1638
  * Renders the month/year picker that is
@@ -1592,7 +1643,7 @@ const Datetime = class {
1592
1643
  * toggle in the calendar header.
1593
1644
  */
1594
1645
  renderCalendarViewMonthYearPicker() {
1595
- return index.h("div", { class: "datetime-year" }, this.renderWheelView('month-year'));
1646
+ return index$1.h("div", { class: "datetime-year" }, this.renderWheelView('month-year'));
1596
1647
  }
1597
1648
  /**
1598
1649
  * Render entry point
@@ -1650,7 +1701,7 @@ const Datetime = class {
1650
1701
  const hasWheelVariant = hasDatePresentation && preferWheel;
1651
1702
  const hasGrid = hasDatePresentation && !preferWheel;
1652
1703
  helpers.renderHiddenInput(true, el, name, data.formatValue(value), disabled);
1653
- return (index.h(index.Host, { "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1704
+ return (index$1.h(index$1.Host, { "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1654
1705
  [mode]: true,
1655
1706
  ['datetime-presented']: isPresented,
1656
1707
  ['datetime-readonly']: readonly,
@@ -1663,7 +1714,7 @@ const Datetime = class {
1663
1714
  [`datetime-grid`]: hasGrid,
1664
1715
  })) }, this.renderDatetime(mode)));
1665
1716
  }
1666
- get el() { return index.getElement(this); }
1717
+ get el() { return index$1.getElement(this); }
1667
1718
  static get watchers() { return {
1668
1719
  "disabled": ["disabledChanged"],
1669
1720
  "min": ["minChanged"],
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-db5db51f.js');
6
6
  const ionicGlobal = require('./ionic-global-66c719bf.js');
7
- const overlays = require('./overlays-56226483.js');
7
+ const overlays = require('./overlays-5d99746a.js');
8
8
  const index$1 = require('./index-39630668.js');
9
9
  const theme = require('./theme-fc63803b.js');
10
10
  const animation = require('./animation-ca5a256a.js');
@@ -8,7 +8,7 @@ const cubicBezier = require('./cubic-bezier-0b702a31.js');
8
8
  const gestureController = require('./gesture-controller-00a6b02f.js');
9
9
  const helpers = require('./helpers-cb08f5ae.js');
10
10
  const index$1 = require('./index-7cf535d7.js');
11
- const overlays = require('./overlays-56226483.js');
11
+ const overlays = require('./overlays-5d99746a.js');
12
12
  require('./hardware-back-button-25372ec7.js');
13
13
  require('./animation-ca5a256a.js');
14
14
  require('./index-57b9fa9e.js');
@@ -100,7 +100,7 @@ const Menu = class {
100
100
  async connectedCallback() {
101
101
  // TODO: connectedCallback is fired in CE build
102
102
  // before WC is defined. This needs to be fixed in Stencil.
103
- if (typeof customElements !== 'undefined') {
103
+ if (typeof customElements !== 'undefined' && customElements != null) {
104
104
  await customElements.whenDefined('ion-menu');
105
105
  }
106
106
  if (this.type === undefined) {
@@ -433,6 +433,22 @@ const Menu = class {
433
433
  if (this.backdropEl) {
434
434
  this.backdropEl.classList.add(SHOW_BACKDROP);
435
435
  }
436
+ // add css class and hide content behind menu from screen readers
437
+ if (this.contentEl) {
438
+ this.contentEl.classList.add(MENU_CONTENT_OPEN);
439
+ /**
440
+ * When the menu is open and overlaying the main
441
+ * content, the main content should not be announced
442
+ * by the screenreader as the menu is the main
443
+ * focus. This is useful with screenreaders that have
444
+ * "read from top" gestures that read the entire
445
+ * page from top to bottom when activated.
446
+ * This should be done before the animation starts
447
+ * so that users cannot accidentally scroll
448
+ * the content while dragging a menu open.
449
+ */
450
+ this.contentEl.setAttribute('aria-hidden', 'true');
451
+ }
436
452
  this.blocker.block();
437
453
  this.isAnimating = true;
438
454
  if (shouldOpen) {
@@ -455,19 +471,6 @@ const Menu = class {
455
471
  this.blocker.unblock();
456
472
  }
457
473
  if (isOpen) {
458
- // add css class and hide content behind menu from screen readers
459
- if (this.contentEl) {
460
- this.contentEl.classList.add(MENU_CONTENT_OPEN);
461
- /**
462
- * When the menu is open and overlaying the main
463
- * content, the main content should not be announced
464
- * by the screenreader as the menu is the main
465
- * focus. This is useful with screenreaders that have
466
- * "read from top" gestures that read the entire
467
- * page from top to bottom when activated.
468
- */
469
- this.contentEl.setAttribute('aria-hidden', 'true');
470
- }
471
474
  // emit open event
472
475
  this.ionDidOpen.emit();
473
476
  /**