voyager-ionic-core 7.6.5 → 7.7.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 (722) hide show
  1. package/components/action-sheet.js +12 -6
  2. package/components/alert.js +11 -5
  3. package/components/backdrop.js +5 -3
  4. package/components/button.js +6 -4
  5. package/components/buttons.js +5 -3
  6. package/components/checkbox.js +4 -2
  7. package/components/data.js +1 -1
  8. package/components/hardware-back-button.js +47 -3
  9. package/components/helpers.js +1 -1
  10. package/components/icon.js +2 -1
  11. package/components/ion-accordion-group.js +6 -4
  12. package/components/ion-accordion.js +9 -5
  13. package/components/ion-app.js +14 -3
  14. package/components/ion-avatar.js +5 -3
  15. package/components/ion-back-button.js +6 -4
  16. package/components/ion-badge.js +6 -4
  17. package/components/ion-breadcrumb.js +6 -4
  18. package/components/ion-breadcrumbs.js +6 -4
  19. package/components/ion-card-content.js +5 -3
  20. package/components/ion-card-header.js +6 -4
  21. package/components/ion-card-subtitle.js +6 -4
  22. package/components/ion-card-title.js +6 -4
  23. package/components/ion-card.js +5 -3
  24. package/components/ion-chip.js +6 -4
  25. package/components/ion-col.js +4 -3
  26. package/components/ion-content.js +5 -4
  27. package/components/ion-datetime-button.js +6 -4
  28. package/components/ion-datetime.js +40 -19
  29. package/components/ion-fab-button.js +6 -4
  30. package/components/ion-fab-list.js +4 -3
  31. package/components/ion-fab.js +4 -3
  32. package/components/ion-footer.js +6 -4
  33. package/components/ion-grid.js +4 -3
  34. package/components/ion-header.js +6 -4
  35. package/components/ion-img.js +3 -2
  36. package/components/ion-infinite-scroll-content.js +6 -4
  37. package/components/ion-infinite-scroll.js +3 -2
  38. package/components/ion-input.js +4 -2
  39. package/components/ion-item-divider.js +6 -4
  40. package/components/ion-item-group.js +5 -3
  41. package/components/ion-item-option.js +6 -4
  42. package/components/ion-item-options.js +5 -3
  43. package/components/ion-item-sliding.js +3 -2
  44. package/components/ion-loading.js +10 -4
  45. package/components/ion-menu-button.js +6 -4
  46. package/components/ion-menu-toggle.js +4 -3
  47. package/components/ion-menu.js +13 -5
  48. package/components/ion-modal.js +13 -10
  49. package/components/ion-nav-link.js +1 -1
  50. package/components/ion-nav.js +3 -2
  51. package/components/ion-picker.js +10 -4
  52. package/components/ion-progress-bar.js +5 -3
  53. package/components/ion-range.js +4 -2
  54. package/components/ion-refresher-content.js +1 -1
  55. package/components/ion-refresher.js +5 -3
  56. package/components/ion-reorder-group.js +3 -2
  57. package/components/ion-reorder.js +5 -3
  58. package/components/ion-router-link.js +4 -3
  59. package/components/ion-router-outlet.js +3 -2
  60. package/components/ion-row.js +3 -2
  61. package/components/ion-searchbar.js +8 -6
  62. package/components/ion-segment-button.js +7 -5
  63. package/components/ion-segment.js +13 -4
  64. package/components/ion-select-option.js +3 -2
  65. package/components/ion-select.js +24 -3
  66. package/components/ion-skeleton-text.js +4 -3
  67. package/components/ion-split-pane.js +15 -14
  68. package/components/ion-tab-bar.js +6 -4
  69. package/components/ion-tab-button.js +6 -4
  70. package/components/ion-tab.js +4 -3
  71. package/components/ion-tabs.js +3 -2
  72. package/components/ion-text.js +4 -3
  73. package/components/ion-textarea.js +4 -2
  74. package/components/ion-thumbnail.js +3 -2
  75. package/components/ion-title.js +6 -4
  76. package/components/ion-toast.js +10 -4
  77. package/components/ion-toggle.js +4 -2
  78. package/components/ion-toolbar.js +6 -4
  79. package/components/item.js +15 -16
  80. package/components/label.js +5 -3
  81. package/components/list-header.js +6 -4
  82. package/components/list.js +5 -3
  83. package/components/note.js +6 -4
  84. package/components/overlays.js +83 -19
  85. package/components/picker-column-internal.js +7 -5
  86. package/components/picker-column.js +6 -4
  87. package/components/picker-internal.js +21 -3
  88. package/components/popover.js +12 -6
  89. package/components/radio-group.js +1 -1
  90. package/components/radio.js +4 -2
  91. package/components/ripple-effect.js +3 -2
  92. package/components/select-popover.js +7 -5
  93. package/components/spinner.js +3 -2
  94. package/css/core.css +28 -0
  95. package/css/core.css.map +1 -1
  96. package/css/ionic.bundle.css +1 -1
  97. package/css/ionic.bundle.css.map +1 -1
  98. package/dist/cjs/{animation-9b401d39.js → animation-fdab9de5.js} +1 -1
  99. package/dist/cjs/{app-globals-07127773.js → app-globals-92ad1b3d.js} +1 -1
  100. package/dist/cjs/{button-active-85665616.js → button-active-2d6520ec.js} +1 -1
  101. package/dist/cjs/{form-controller-7d42a722.js → form-controller-7b90d7b7.js} +1 -1
  102. package/dist/cjs/{framework-delegate-1c29b14a.js → framework-delegate-a3e6d060.js} +1 -1
  103. package/dist/cjs/{hardware-back-button-76833cac.js → hardware-back-button-2696acaf.js} +48 -2
  104. package/dist/cjs/{helpers-76bb7efb.js → helpers-2e1028fa.js} +1 -1
  105. package/dist/cjs/{index-71f41461.js → index-0ffe376d.js} +56 -23
  106. package/dist/cjs/{index-b4f986cd.js → index-10da82ce.js} +1 -1
  107. package/dist/cjs/{index-da15e99c.js → index-53d162b2.js} +1 -1
  108. package/dist/cjs/{index-96a721a7.js → index-a43f7a0f.js} +4 -4
  109. package/dist/cjs/{index-6bb6b651.js → index-c3580a90.js} +4 -4
  110. package/dist/cjs/index.cjs.js +11 -11
  111. package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-6f804705.js} +2 -2
  112. package/dist/cjs/{input.utils-3d0166a2.js → input.utils-d693d18a.js} +1 -1
  113. package/dist/cjs/ion-accordion_2.cjs.entry.js +18 -12
  114. package/dist/cjs/ion-action-sheet.cjs.entry.js +20 -14
  115. package/dist/cjs/ion-alert.cjs.entry.js +19 -13
  116. package/dist/cjs/ion-app_8.cjs.entry.js +72 -50
  117. package/dist/cjs/ion-avatar_3.cjs.entry.js +16 -11
  118. package/dist/cjs/ion-back-button.cjs.entry.js +9 -7
  119. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -5
  120. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +15 -11
  121. package/dist/cjs/ion-button_2.cjs.entry.js +11 -8
  122. package/dist/cjs/ion-card_5.cjs.entry.js +31 -21
  123. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -6
  124. package/dist/cjs/ion-chip.cjs.entry.js +8 -6
  125. package/dist/cjs/ion-col_3.cjs.entry.js +13 -10
  126. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -6
  127. package/dist/cjs/ion-datetime_3.cjs.entry.js +62 -33
  128. package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
  129. package/dist/cjs/ion-img.cjs.entry.js +6 -5
  130. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +13 -10
  131. package/dist/cjs/ion-input.cjs.entry.js +10 -8
  132. package/dist/cjs/ion-item-option_3.cjs.entry.js +18 -13
  133. package/dist/cjs/ion-item_8.cjs.entry.js +53 -33
  134. package/dist/cjs/ion-loading.cjs.entry.js +17 -11
  135. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -19
  136. package/dist/cjs/ion-modal.cjs.entry.js +21 -18
  137. package/dist/cjs/ion-nav_2.cjs.entry.js +10 -9
  138. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -8
  139. package/dist/cjs/ion-picker-internal.cjs.entry.js +23 -5
  140. package/dist/cjs/ion-popover.cjs.entry.js +20 -14
  141. package/dist/cjs/ion-progress-bar.cjs.entry.js +8 -6
  142. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -7
  143. package/dist/cjs/ion-range.cjs.entry.js +9 -7
  144. package/dist/cjs/ion-refresher_2.cjs.entry.js +11 -9
  145. package/dist/cjs/ion-reorder_2.cjs.entry.js +12 -9
  146. package/dist/cjs/ion-ripple-effect.cjs.entry.js +5 -4
  147. package/dist/cjs/ion-route_4.cjs.entry.js +7 -6
  148. package/dist/cjs/ion-searchbar.cjs.entry.js +11 -9
  149. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -12
  150. package/dist/cjs/ion-select_3.cjs.entry.js +42 -18
  151. package/dist/cjs/ion-spinner.cjs.entry.js +5 -4
  152. package/dist/cjs/ion-split-pane.cjs.entry.js +17 -16
  153. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +15 -11
  154. package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
  155. package/dist/cjs/ion-text.cjs.entry.js +6 -5
  156. package/dist/cjs/ion-textarea.cjs.entry.js +10 -8
  157. package/dist/cjs/ion-toast.cjs.entry.js +17 -11
  158. package/dist/cjs/ion-toggle.cjs.entry.js +8 -6
  159. package/dist/cjs/{ionic-global-c70c3fb5.js → ionic-global-59a10130.js} +1 -1
  160. package/dist/cjs/ionic.cjs.js +7 -7
  161. package/dist/cjs/{ios.transition-9624a175.js → ios.transition-c3b11cc3.js} +4 -4
  162. package/dist/cjs/loader.cjs.js +6 -6
  163. package/dist/cjs/{md.transition-786baf9a.js → md.transition-82a8c649.js} +4 -4
  164. package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-db0127c4.js} +1 -1
  165. package/dist/cjs/{overlays-4c97edb0.js → overlays-fb7ca451.js} +85 -22
  166. package/dist/cjs/{status-tap-66296dcb.js → status-tap-692f6d32.js} +3 -3
  167. package/dist/cjs/{swipe-back-e37a1a5c.js → swipe-back-7a848bb8.js} +1 -1
  168. package/dist/collection/collection-manifest.json +1 -1
  169. package/dist/collection/components/accordion/accordion.js +5 -3
  170. package/dist/collection/components/accordion/test/disabled/accordion.e2e.js +94 -0
  171. package/dist/collection/components/accordion/test/readonly/accordion.e2e.js +94 -0
  172. package/dist/collection/components/accordion-group/accordion-group.js +2 -2
  173. package/dist/collection/components/action-sheet/action-sheet.ios.css +13 -1
  174. package/dist/collection/components/action-sheet/action-sheet.js +9 -5
  175. package/dist/collection/components/alert/alert.ios.css +23 -0
  176. package/dist/collection/components/alert/alert.js +8 -4
  177. package/dist/collection/components/alert/test/basic/alert.e2e.js +29 -4
  178. package/dist/collection/components/app/app.js +12 -2
  179. package/dist/collection/components/avatar/avatar.js +1 -1
  180. package/dist/collection/components/back-button/back-button.js +2 -2
  181. package/dist/collection/components/backdrop/backdrop.js +1 -1
  182. package/dist/collection/components/badge/badge.js +2 -2
  183. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  184. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  185. package/dist/collection/components/button/button.js +2 -2
  186. package/dist/collection/components/button/test/basic/button.e2e.js +1 -1
  187. package/dist/collection/components/buttons/buttons.js +1 -1
  188. package/dist/collection/components/card/card.js +1 -1
  189. package/dist/collection/components/card-content/card-content.js +1 -1
  190. package/dist/collection/components/card-header/card-header.js +2 -2
  191. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  192. package/dist/collection/components/card-title/card-title.js +2 -2
  193. package/dist/collection/components/chip/chip.js +2 -2
  194. package/dist/collection/components/col/col.js +2 -2
  195. package/dist/collection/components/content/content.js +3 -3
  196. package/dist/collection/components/datetime/datetime.js +35 -16
  197. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +3 -3
  198. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +12 -12
  199. package/dist/collection/components/datetime/test/datetime.e2e.js +1 -1
  200. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +1 -1
  201. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +4 -4
  202. package/dist/collection/components/datetime/test/display/datetime.e2e.js +9 -9
  203. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +3 -3
  204. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +11 -11
  205. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  206. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +22 -5
  207. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  208. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +32 -32
  209. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +3 -3
  210. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  211. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +4 -4
  212. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +2 -2
  213. package/dist/collection/components/datetime/test/values/datetime.e2e.js +4 -4
  214. package/dist/collection/components/datetime-button/datetime-button.js +1 -1
  215. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +14 -14
  216. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +2 -2
  217. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +6 -6
  218. package/dist/collection/components/fab/fab.js +2 -2
  219. package/dist/collection/components/fab-button/fab-button.js +2 -2
  220. package/dist/collection/components/fab-list/fab-list.js +2 -2
  221. package/dist/collection/components/footer/footer.js +2 -2
  222. package/dist/collection/components/grid/grid.js +2 -2
  223. package/dist/collection/components/header/header.js +2 -2
  224. package/dist/collection/components/header/test/condense/header.e2e.js +2 -2
  225. package/dist/collection/components/img/img.js +1 -1
  226. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  227. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  228. package/dist/collection/components/item/item.ios.css +2 -39
  229. package/dist/collection/components/item/item.js +10 -12
  230. package/dist/collection/components/item/item.md.css +2 -39
  231. package/dist/collection/components/item/test/item.spec.js +20 -0
  232. package/dist/collection/components/item-divider/item-divider.js +2 -2
  233. package/dist/collection/components/item-group/item-group.js +1 -1
  234. package/dist/collection/components/item-option/item-option.js +2 -2
  235. package/dist/collection/components/item-options/item-options.js +1 -1
  236. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  237. package/dist/collection/components/label/label.js +1 -1
  238. package/dist/collection/components/label/test/basic/label.e2e.js +2 -2
  239. package/dist/collection/components/list/list.js +1 -1
  240. package/dist/collection/components/list-header/list-header.js +2 -2
  241. package/dist/collection/components/loading/loading.js +8 -4
  242. package/dist/collection/components/menu/menu.js +8 -8
  243. package/dist/collection/components/menu-button/menu-button.js +2 -2
  244. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  245. package/dist/collection/components/modal/modal.js +11 -10
  246. package/dist/collection/components/modal/test/animations/modal.e2e.js +36 -0
  247. package/dist/collection/components/modal/test/sheet/modal.e2e.js +1 -1
  248. package/dist/collection/components/modal/test/standalone/modal.e2e.js +1 -1
  249. package/dist/collection/components/nav/nav.js +1 -1
  250. package/dist/collection/components/nav-link/nav-link.js +1 -1
  251. package/dist/collection/components/note/note.js +2 -2
  252. package/dist/collection/components/note/test/a11y/note.e2e.js +6 -6
  253. package/dist/collection/components/picker/picker.js +8 -4
  254. package/dist/collection/components/picker-column/picker-column.js +2 -2
  255. package/dist/collection/components/picker-column-internal/picker-column-internal.js +3 -3
  256. package/dist/collection/components/picker-internal/picker-internal.js +17 -1
  257. package/dist/collection/components/picker-internal/test/keyboard-entry/picker-internal.e2e.js +32 -0
  258. package/dist/collection/components/popover/popover.ios.css +8 -1
  259. package/dist/collection/components/popover/popover.js +8 -4
  260. package/dist/collection/components/popover/popover.md.css +1 -1
  261. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  262. package/dist/collection/components/radio-group/radio-group.js +1 -1
  263. package/dist/collection/components/radio-group/test/radio-group-events.e2e.js +15 -15
  264. package/dist/collection/components/range/test/label/range.e2e.js +2 -2
  265. package/dist/collection/components/range/test/range-events.e2e.js +2 -2
  266. package/dist/collection/components/refresher/refresher.js +1 -1
  267. package/dist/collection/components/refresher/test/test.utils.js +1 -1
  268. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  269. package/dist/collection/components/reorder/reorder.js +1 -1
  270. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  271. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  272. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +2 -2
  273. package/dist/collection/components/router-link/router-link.js +2 -2
  274. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  275. package/dist/collection/components/row/row.js +1 -1
  276. package/dist/collection/components/searchbar/searchbar.js +4 -4
  277. package/dist/collection/components/segment/segment.js +9 -2
  278. package/dist/collection/components/segment-button/segment-button.js +3 -3
  279. package/dist/collection/components/select/select.js +20 -1
  280. package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
  281. package/dist/collection/components/select/test/select.spec.js +15 -0
  282. package/dist/collection/components/select-option/select-option.js +1 -1
  283. package/dist/collection/components/select-popover/select-popover.ios.css +10 -0
  284. package/dist/collection/components/select-popover/select-popover.js +1 -1
  285. package/dist/collection/components/select-popover/select-popover.md.css +10 -0
  286. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  287. package/dist/collection/components/spinner/spinner.js +1 -1
  288. package/dist/collection/components/split-pane/split-pane.js +11 -12
  289. package/dist/collection/components/tab/tab.js +2 -2
  290. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  291. package/dist/collection/components/tab-button/tab-button.js +2 -2
  292. package/dist/collection/components/tabs/tabs.js +1 -1
  293. package/dist/collection/components/text/text.js +2 -2
  294. package/dist/collection/components/textarea/test/textarea-events.e2e.js +4 -4
  295. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  296. package/dist/collection/components/title/title.js +2 -2
  297. package/dist/collection/components/toast/test/toast.spec.js +12 -0
  298. package/dist/collection/components/toast/toast.js +8 -4
  299. package/dist/collection/components/toolbar/toolbar.js +2 -2
  300. package/dist/collection/utils/hardware-back-button.js +45 -2
  301. package/dist/collection/utils/helpers.js +1 -1
  302. package/dist/collection/utils/overlays.js +82 -17
  303. package/dist/collection/utils/test/hardware-back-button.spec.js +38 -0
  304. package/dist/collection/utils/test/overlays/overlays.e2e.js +33 -0
  305. package/dist/collection/utils/test/overlays/overlays.spec.js +51 -0
  306. package/dist/docs.json +26 -31
  307. package/dist/esm/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  308. package/dist/esm/{app-globals-52c78291.js → app-globals-5cf6195b.js} +1 -1
  309. package/dist/esm/{button-active-b62776db.js → button-active-47ac8092.js} +1 -1
  310. package/dist/esm/{data-775093f5.js → data-0f3ab200.js} +1 -1
  311. package/dist/esm/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  312. package/dist/esm/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  313. package/dist/esm/{hardware-back-button-b2bc76db.js → hardware-back-button-b410a047.js} +48 -3
  314. package/dist/esm/{helpers-ae653409.js → helpers-c0b9ca37.js} +1 -1
  315. package/dist/esm/{index-a97c95a7.js → index-0b4beb69.js} +4 -4
  316. package/dist/esm/{index-01cb9192.js → index-47b2066d.js} +4 -4
  317. package/dist/esm/{index-27668d5b.js → index-4c30cddd.js} +56 -23
  318. package/dist/esm/{index-82eeb47f.js → index-d64f34ea.js} +1 -1
  319. package/dist/esm/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  320. package/dist/esm/index.js +11 -11
  321. package/dist/esm/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +2 -2
  322. package/dist/esm/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  323. package/dist/esm/ion-accordion_2.entry.js +18 -12
  324. package/dist/esm/ion-action-sheet.entry.js +20 -14
  325. package/dist/esm/ion-alert.entry.js +19 -13
  326. package/dist/esm/ion-app_8.entry.js +62 -40
  327. package/dist/esm/ion-avatar_3.entry.js +16 -11
  328. package/dist/esm/ion-back-button.entry.js +9 -7
  329. package/dist/esm/ion-backdrop.entry.js +7 -5
  330. package/dist/esm/ion-breadcrumb_2.entry.js +15 -11
  331. package/dist/esm/ion-button_2.entry.js +11 -8
  332. package/dist/esm/ion-card_5.entry.js +31 -21
  333. package/dist/esm/ion-checkbox.entry.js +8 -6
  334. package/dist/esm/ion-chip.entry.js +8 -6
  335. package/dist/esm/ion-col_3.entry.js +13 -10
  336. package/dist/esm/ion-datetime-button.entry.js +9 -7
  337. package/dist/esm/ion-datetime_3.entry.js +63 -34
  338. package/dist/esm/ion-fab_3.entry.js +17 -13
  339. package/dist/esm/ion-img.entry.js +6 -5
  340. package/dist/esm/ion-infinite-scroll_2.entry.js +13 -10
  341. package/dist/esm/ion-input.entry.js +10 -8
  342. package/dist/esm/ion-item-option_3.entry.js +18 -13
  343. package/dist/esm/ion-item_8.entry.js +53 -33
  344. package/dist/esm/ion-loading.entry.js +17 -11
  345. package/dist/esm/ion-menu_3.entry.js +29 -19
  346. package/dist/esm/ion-modal.entry.js +21 -18
  347. package/dist/esm/ion-nav_2.entry.js +10 -9
  348. package/dist/esm/ion-picker-column-internal.entry.js +10 -8
  349. package/dist/esm/ion-picker-internal.entry.js +23 -5
  350. package/dist/esm/ion-popover.entry.js +20 -14
  351. package/dist/esm/ion-progress-bar.entry.js +8 -6
  352. package/dist/esm/ion-radio_2.entry.js +9 -7
  353. package/dist/esm/ion-range.entry.js +9 -7
  354. package/dist/esm/ion-refresher_2.entry.js +11 -9
  355. package/dist/esm/ion-reorder_2.entry.js +12 -9
  356. package/dist/esm/ion-ripple-effect.entry.js +5 -4
  357. package/dist/esm/ion-route_4.entry.js +7 -6
  358. package/dist/esm/ion-searchbar.entry.js +11 -9
  359. package/dist/esm/ion-segment_2.entry.js +23 -12
  360. package/dist/esm/ion-select_3.entry.js +42 -18
  361. package/dist/esm/ion-spinner.entry.js +5 -4
  362. package/dist/esm/ion-split-pane.entry.js +17 -16
  363. package/dist/esm/ion-tab-bar_2.entry.js +15 -11
  364. package/dist/esm/ion-tab_2.entry.js +10 -8
  365. package/dist/esm/ion-text.entry.js +6 -5
  366. package/dist/esm/ion-textarea.entry.js +10 -8
  367. package/dist/esm/ion-toast.entry.js +17 -11
  368. package/dist/esm/ion-toggle.entry.js +8 -6
  369. package/dist/esm/{ionic-global-8fa0f940.js → ionic-global-ad9a1810.js} +1 -1
  370. package/dist/esm/ionic.js +8 -8
  371. package/dist/esm/{ios.transition-62fd50ab.js → ios.transition-b76c7020.js} +4 -4
  372. package/dist/esm/loader.js +7 -7
  373. package/dist/esm/{md.transition-7e56966a.js → md.transition-564937a7.js} +4 -4
  374. package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  375. package/dist/esm/{overlays-8414359b.js → overlays-04a9a43f.js} +86 -22
  376. package/dist/esm/{status-tap-129c01cf.js → status-tap-5a95077d.js} +3 -3
  377. package/dist/esm/{swipe-back-18cb49f7.js → swipe-back-fa0ec5cd.js} +1 -1
  378. package/dist/esm-es5/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  379. package/dist/esm-es5/app-globals-5cf6195b.js +4 -0
  380. package/dist/esm-es5/{button-active-b62776db.js → button-active-47ac8092.js} +1 -1
  381. package/dist/esm-es5/{data-775093f5.js → data-0f3ab200.js} +1 -1
  382. package/dist/esm-es5/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  383. package/dist/esm-es5/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  384. package/dist/esm-es5/hardware-back-button-b410a047.js +4 -0
  385. package/dist/esm-es5/helpers-c0b9ca37.js +4 -0
  386. package/dist/esm-es5/{index-a97c95a7.js → index-0b4beb69.js} +1 -1
  387. package/dist/esm-es5/{index-01cb9192.js → index-47b2066d.js} +1 -1
  388. package/dist/esm-es5/index-4c30cddd.js +5 -0
  389. package/dist/esm-es5/index-d64f34ea.js +4 -0
  390. package/dist/esm-es5/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  391. package/dist/esm-es5/index.js +1 -1
  392. package/dist/esm-es5/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +1 -1
  393. package/dist/esm-es5/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  394. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  395. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  396. package/dist/esm-es5/ion-alert.entry.js +1 -1
  397. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  398. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  399. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  400. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  401. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  402. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  403. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  404. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  405. package/dist/esm-es5/ion-chip.entry.js +1 -1
  406. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  407. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  408. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  409. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  410. package/dist/esm-es5/ion-img.entry.js +1 -1
  411. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  412. package/dist/esm-es5/ion-input.entry.js +1 -1
  413. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  414. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  415. package/dist/esm-es5/ion-loading.entry.js +1 -1
  416. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  417. package/dist/esm-es5/ion-modal.entry.js +1 -1
  418. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  420. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  421. package/dist/esm-es5/ion-popover.entry.js +1 -1
  422. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  423. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  424. package/dist/esm-es5/ion-range.entry.js +1 -1
  425. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  426. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  427. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  428. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  429. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  430. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  431. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  432. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  433. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  434. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  435. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  436. package/dist/esm-es5/ion-text.entry.js +1 -1
  437. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  438. package/dist/esm-es5/ion-toast.entry.js +1 -1
  439. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  440. package/dist/esm-es5/{ionic-global-8fa0f940.js → ionic-global-ad9a1810.js} +1 -1
  441. package/dist/esm-es5/ionic.js +2 -2
  442. package/dist/esm-es5/{ios.transition-62fd50ab.js → ios.transition-b76c7020.js} +1 -1
  443. package/dist/esm-es5/loader.js +2 -2
  444. package/dist/esm-es5/md.transition-564937a7.js +4 -0
  445. package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  446. package/dist/esm-es5/overlays-04a9a43f.js +4 -0
  447. package/dist/esm-es5/{status-tap-129c01cf.js → status-tap-5a95077d.js} +1 -1
  448. package/dist/esm-es5/{swipe-back-18cb49f7.js → swipe-back-fa0ec5cd.js} +1 -1
  449. package/dist/ionic/index.esm.js +1 -1
  450. package/dist/ionic/ionic.esm.js +1 -1
  451. package/dist/ionic/ionic.js +1 -1
  452. package/dist/ionic/p-027f3674.entry.js +4 -0
  453. package/dist/ionic/p-0457213c.entry.js +4 -0
  454. package/dist/ionic/p-05d560ec.entry.js +4 -0
  455. package/dist/ionic/p-0b34d3a7.system.js +4 -0
  456. package/dist/ionic/p-0e23c289.system.entry.js +4 -0
  457. package/dist/ionic/p-1131946f.system.entry.js +4 -0
  458. package/dist/ionic/{p-25221a73.js → p-123b4809.js} +1 -1
  459. package/dist/ionic/{p-d2707f9d.system.js → p-1636923f.system.js} +1 -1
  460. package/dist/ionic/p-16a61810.entry.js +4 -0
  461. package/dist/ionic/p-18beebdf.system.entry.js +4 -0
  462. package/dist/ionic/p-1924f2e0.system.entry.js +4 -0
  463. package/dist/ionic/{p-53ec4f1c.system.js → p-1dfc11b3.system.js} +1 -1
  464. package/dist/ionic/p-1f16d040.entry.js +4 -0
  465. package/dist/ionic/p-1f19958f.system.entry.js +4 -0
  466. package/dist/ionic/p-21ca1f1c.js +4 -0
  467. package/dist/ionic/p-2327064c.entry.js +4 -0
  468. package/dist/ionic/{p-7bae84aa.entry.js → p-23c73017.entry.js} +1 -1
  469. package/dist/ionic/p-275705e5.entry.js +4 -0
  470. package/dist/ionic/{p-32b8e50d.system.js → p-2e14c533.system.js} +1 -1
  471. package/dist/ionic/p-2e1f014a.system.entry.js +4 -0
  472. package/dist/ionic/p-3079950e.entry.js +4 -0
  473. package/dist/ionic/{p-03e00f90.js → p-30cd5e7b.js} +1 -1
  474. package/dist/ionic/p-30d77a91.system.js +4 -0
  475. package/dist/ionic/{p-376a6063.js → p-31c495c2.js} +1 -1
  476. package/dist/ionic/p-337ac0f5.entry.js +4 -0
  477. package/dist/ionic/p-3471a7c0.system.entry.js +4 -0
  478. package/dist/ionic/p-3481d54e.system.entry.js +4 -0
  479. package/dist/ionic/{p-cabad15b.system.js → p-37c33319.system.js} +1 -1
  480. package/dist/ionic/p-396083cc.entry.js +4 -0
  481. package/dist/ionic/{p-e814f9c0.entry.js → p-3a7de59c.entry.js} +1 -1
  482. package/dist/ionic/{p-d51674c5.system.js → p-3c6f02cf.system.js} +1 -1
  483. package/dist/ionic/p-3d961d93.entry.js +4 -0
  484. package/dist/ionic/p-3e9ad72a.system.entry.js +4 -0
  485. package/dist/ionic/p-42a9f663.system.entry.js +4 -0
  486. package/dist/ionic/p-43a5edee.entry.js +4 -0
  487. package/dist/ionic/{p-8aa1d0b7.system.js → p-49543c9c.system.js} +1 -1
  488. package/dist/ionic/p-49aba878.js +4 -0
  489. package/dist/ionic/{p-88d5fbd3.js → p-4f777b5e.js} +1 -1
  490. package/dist/ionic/p-4fda5c35.entry.js +4 -0
  491. package/dist/ionic/{p-249633a4.entry.js → p-502780e4.entry.js} +1 -1
  492. package/dist/ionic/{p-436bd99a.entry.js → p-508a4c87.entry.js} +1 -1
  493. package/dist/ionic/p-5928fac9.system.entry.js +4 -0
  494. package/dist/ionic/{p-d5216086.entry.js → p-5b40d967.entry.js} +1 -1
  495. package/dist/ionic/p-5c2ae448.js +4 -0
  496. package/dist/ionic/p-5c580e89.entry.js +4 -0
  497. package/dist/ionic/p-5c6a04bd.entry.js +4 -0
  498. package/dist/ionic/p-5cb5f63d.system.entry.js +4 -0
  499. package/dist/ionic/{p-fd41bd8a.js → p-5d7e32ce.js} +1 -1
  500. package/dist/ionic/p-5e23bea8.system.entry.js +4 -0
  501. package/dist/ionic/{p-ed60d571.entry.js → p-5f169eba.entry.js} +1 -1
  502. package/dist/ionic/{p-13387c28.entry.js → p-601e17b4.entry.js} +1 -1
  503. package/dist/ionic/p-61ba2137.system.js +4 -0
  504. package/dist/ionic/p-64761c90.entry.js +4 -0
  505. package/dist/ionic/{p-c1c57873.system.entry.js → p-64856c3c.system.entry.js} +1 -1
  506. package/dist/ionic/p-6486e393.system.entry.js +4 -0
  507. package/dist/ionic/p-64db1331.entry.js +4 -0
  508. package/dist/ionic/{p-ef3a6b51.system.js → p-6525a8cd.system.js} +1 -1
  509. package/dist/ionic/p-657ccdd6.entry.js +4 -0
  510. package/dist/ionic/p-667e3e2d.entry.js +4 -0
  511. package/dist/ionic/p-6871553b.system.js +4 -0
  512. package/dist/ionic/p-68ba8e77.system.entry.js +4 -0
  513. package/dist/ionic/p-70e34286.system.entry.js +4 -0
  514. package/dist/ionic/p-7173ba59.system.entry.js +4 -0
  515. package/dist/ionic/p-717e2526.system.entry.js +4 -0
  516. package/dist/ionic/p-72fa96bf.system.js +5 -0
  517. package/dist/ionic/{p-87bb3735.system.js → p-7330c044.system.js} +1 -1
  518. package/dist/ionic/{p-ae638cb5.system.js → p-74deb358.system.js} +1 -1
  519. package/dist/ionic/p-7b1ed642.system.entry.js +4 -0
  520. package/dist/ionic/{p-b6f6f00e.entry.js → p-7ce40e7b.entry.js} +1 -1
  521. package/dist/ionic/p-86813176.system.entry.js +4 -0
  522. package/dist/ionic/p-8794fa00.system.entry.js +4 -0
  523. package/dist/ionic/p-88e9052d.entry.js +4 -0
  524. package/dist/ionic/{p-3c33dc30.system.js → p-89ca4c4b.system.js} +1 -1
  525. package/dist/ionic/p-8e651c29.entry.js +4 -0
  526. package/dist/ionic/p-9056778e.system.entry.js +4 -0
  527. package/dist/ionic/p-91cb3f9a.entry.js +4 -0
  528. package/dist/ionic/{p-29d03b3a.js → p-9393a49f.js} +1 -1
  529. package/dist/ionic/{p-3a75d7fd.js → p-94be3ad7.js} +1 -1
  530. package/dist/ionic/p-95d5a097.entry.js +4 -0
  531. package/dist/ionic/p-9cd7ba27.system.js +4 -0
  532. package/dist/ionic/p-9ec7208d.system.js +4 -0
  533. package/dist/ionic/p-a022b684.system.entry.js +4 -0
  534. package/dist/ionic/p-a0b28c69.system.entry.js +4 -0
  535. package/dist/ionic/p-a3df16b9.system.entry.js +4 -0
  536. package/dist/ionic/{p-4180a747.js → p-a3f572a7.js} +1 -1
  537. package/dist/ionic/{p-4a4bbcc5.system.js → p-a5951821.system.js} +2 -2
  538. package/dist/ionic/p-a6e465f5.entry.js +4 -0
  539. package/dist/ionic/{p-bb41c476.system.entry.js → p-a85d9047.system.entry.js} +1 -1
  540. package/dist/ionic/p-a8a56449.entry.js +4 -0
  541. package/dist/ionic/p-aaaa615c.system.entry.js +4 -0
  542. package/dist/ionic/p-abcedc15.system.entry.js +4 -0
  543. package/dist/ionic/{p-0bd51c34.system.js → p-abe101da.system.js} +1 -1
  544. package/dist/ionic/p-ae35294f.system.entry.js +4 -0
  545. package/dist/ionic/p-afd6d696.system.entry.js +4 -0
  546. package/dist/ionic/p-b06ac4a5.system.js +4 -0
  547. package/dist/ionic/p-b0ff8075.entry.js +4 -0
  548. package/dist/ionic/{p-66d633fb.js → p-b253ad7f.js} +1 -1
  549. package/dist/ionic/p-b2595011.system.entry.js +4 -0
  550. package/dist/ionic/p-b5839dc2.js +4 -0
  551. package/dist/ionic/p-b6279412.entry.js +4 -0
  552. package/dist/ionic/p-b8c685a7.system.js +4 -0
  553. package/dist/ionic/p-ba97a133.system.entry.js +4 -0
  554. package/dist/ionic/p-bd4787eb.entry.js +4 -0
  555. package/dist/ionic/p-bdca4784.js +4 -0
  556. package/dist/ionic/p-bf05cbc7.entry.js +4 -0
  557. package/dist/ionic/p-c11bab7e.entry.js +4 -0
  558. package/dist/ionic/p-c1797ec5.system.entry.js +4 -0
  559. package/dist/ionic/{p-36d187af.js → p-c2289cd1.js} +1 -1
  560. package/dist/ionic/p-c308f773.entry.js +4 -0
  561. package/dist/ionic/p-c39cc96d.system.entry.js +4 -0
  562. package/dist/ionic/p-c747f89b.system.entry.js +4 -0
  563. package/dist/ionic/{p-7798c78a.system.js → p-c80c7e90.system.js} +1 -1
  564. package/dist/ionic/{p-013013a3.js → p-c858f685.js} +1 -1
  565. package/dist/ionic/p-c995da88.system.js +4 -0
  566. package/dist/ionic/p-cb9e71e0.entry.js +4 -0
  567. package/dist/ionic/p-cd9a7017.system.entry.js +4 -0
  568. package/dist/ionic/p-cde3ac34.system.entry.js +4 -0
  569. package/dist/ionic/p-ceceac26.js +4 -0
  570. package/dist/ionic/{p-803ad1e3.entry.js → p-d39ab63d.entry.js} +1 -1
  571. package/dist/ionic/{p-43afd001.system.js → p-d4cadd34.system.js} +1 -1
  572. package/dist/ionic/p-db30f71b.entry.js +4 -0
  573. package/dist/ionic/p-dbcba5a2.js +4 -0
  574. package/dist/ionic/{p-1052ef2b.entry.js → p-dcb5711d.entry.js} +1 -1
  575. package/dist/ionic/{p-23ce95e8.js → p-de55ec45.js} +1 -1
  576. package/dist/ionic/p-df504a37.system.js +4 -0
  577. package/dist/ionic/p-e04b9647.system.entry.js +4 -0
  578. package/dist/ionic/{p-38f2c6bb.system.js → p-e2bb92ed.system.js} +1 -1
  579. package/dist/ionic/p-e81bf09e.system.entry.js +4 -0
  580. package/dist/ionic/p-e9f9388e.system.js +4 -0
  581. package/dist/ionic/p-ea25b4c8.system.entry.js +4 -0
  582. package/dist/ionic/p-eb07b88f.entry.js +4 -0
  583. package/dist/ionic/p-ed7a529f.js +5 -0
  584. package/dist/ionic/p-edcada2b.system.entry.js +4 -0
  585. package/dist/ionic/p-f0194418.system.entry.js +4 -0
  586. package/dist/ionic/p-f460c7ae.entry.js +4 -0
  587. package/dist/ionic/p-f53d074d.system.entry.js +4 -0
  588. package/dist/ionic/{p-18cae04f.js → p-f7dce541.js} +1 -1
  589. package/dist/ionic/p-f840d817.entry.js +4 -0
  590. package/dist/ionic/p-f8c96502.system.entry.js +4 -0
  591. package/dist/ionic/p-fb9f8495.system.entry.js +4 -0
  592. package/dist/ionic/p-fd2aa50c.js +4 -0
  593. package/dist/ionic/p-fd8ced99.system.js +4 -0
  594. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +2 -2
  595. package/dist/types/components/action-sheet/action-sheet.d.ts +4 -0
  596. package/dist/types/components/alert/alert-interface.d.ts +2 -2
  597. package/dist/types/components/alert/alert.d.ts +4 -0
  598. package/dist/types/components/item/item.d.ts +1 -0
  599. package/dist/types/components/loading/loading.d.ts +4 -0
  600. package/dist/types/components/modal/modal.d.ts +4 -0
  601. package/dist/types/components/picker/picker.d.ts +4 -0
  602. package/dist/types/components/popover/popover.d.ts +4 -0
  603. package/dist/types/components/toast/toast-interface.d.ts +2 -2
  604. package/dist/types/components/toast/toast.d.ts +4 -0
  605. package/dist/types/components.d.ts +7 -7
  606. package/dist/types/interface.d.ts +1 -1
  607. package/dist/types/utils/browser/index.d.ts +22 -1
  608. package/dist/types/utils/config.d.ts +7 -0
  609. package/dist/types/utils/hardware-back-button.d.ts +13 -0
  610. package/hydrate/index.d.ts +1 -1
  611. package/hydrate/index.js +794 -373
  612. package/package.json +9 -9
  613. package/dist/collection/components/accordion/test/accordion.e2e.js +0 -39
  614. package/dist/esm-es5/app-globals-52c78291.js +0 -4
  615. package/dist/esm-es5/hardware-back-button-b2bc76db.js +0 -4
  616. package/dist/esm-es5/helpers-ae653409.js +0 -4
  617. package/dist/esm-es5/index-27668d5b.js +0 -5
  618. package/dist/esm-es5/index-82eeb47f.js +0 -4
  619. package/dist/esm-es5/md.transition-7e56966a.js +0 -4
  620. package/dist/esm-es5/overlays-8414359b.js +0 -4
  621. package/dist/ionic/p-005e0ad0.js +0 -4
  622. package/dist/ionic/p-01438d78.entry.js +0 -4
  623. package/dist/ionic/p-02e530f5.system.js +0 -4
  624. package/dist/ionic/p-0abedd22.entry.js +0 -4
  625. package/dist/ionic/p-0d2b6901.entry.js +0 -4
  626. package/dist/ionic/p-127ff448.entry.js +0 -4
  627. package/dist/ionic/p-1a0bf247.system.entry.js +0 -4
  628. package/dist/ionic/p-1a5f0313.system.js +0 -4
  629. package/dist/ionic/p-1cca10d6.system.js +0 -4
  630. package/dist/ionic/p-1f7fc88d.entry.js +0 -4
  631. package/dist/ionic/p-1ffb40d0.system.entry.js +0 -4
  632. package/dist/ionic/p-23a9d086.js +0 -4
  633. package/dist/ionic/p-25553eba.system.entry.js +0 -4
  634. package/dist/ionic/p-2a496995.js +0 -4
  635. package/dist/ionic/p-3197dbf7.entry.js +0 -4
  636. package/dist/ionic/p-32ad210f.system.js +0 -4
  637. package/dist/ionic/p-35e1a80f.system.entry.js +0 -4
  638. package/dist/ionic/p-38c337e7.system.js +0 -4
  639. package/dist/ionic/p-3b83e483.system.entry.js +0 -4
  640. package/dist/ionic/p-3bcbbf43.system.entry.js +0 -4
  641. package/dist/ionic/p-3f0afc6f.entry.js +0 -4
  642. package/dist/ionic/p-40f68333.system.js +0 -4
  643. package/dist/ionic/p-41040a92.system.entry.js +0 -4
  644. package/dist/ionic/p-41aa2662.entry.js +0 -4
  645. package/dist/ionic/p-48f7e8cc.system.entry.js +0 -4
  646. package/dist/ionic/p-4b3623da.js +0 -4
  647. package/dist/ionic/p-4cd6a04c.system.entry.js +0 -4
  648. package/dist/ionic/p-525b6ac4.system.entry.js +0 -4
  649. package/dist/ionic/p-54c92c77.entry.js +0 -4
  650. package/dist/ionic/p-5a85d71d.entry.js +0 -4
  651. package/dist/ionic/p-5aecd304.system.entry.js +0 -4
  652. package/dist/ionic/p-5c2da581.system.entry.js +0 -4
  653. package/dist/ionic/p-619fafe3.system.entry.js +0 -4
  654. package/dist/ionic/p-61bf9f6f.system.entry.js +0 -4
  655. package/dist/ionic/p-677cb2f7.js +0 -4
  656. package/dist/ionic/p-67c3a2a8.system.js +0 -5
  657. package/dist/ionic/p-688a36c7.entry.js +0 -4
  658. package/dist/ionic/p-6a257379.entry.js +0 -4
  659. package/dist/ionic/p-6b9eee40.system.entry.js +0 -4
  660. package/dist/ionic/p-6ba863b1.system.entry.js +0 -4
  661. package/dist/ionic/p-6e165986.system.entry.js +0 -4
  662. package/dist/ionic/p-7510e462.entry.js +0 -4
  663. package/dist/ionic/p-76b6b42e.system.entry.js +0 -4
  664. package/dist/ionic/p-770f5b43.system.js +0 -4
  665. package/dist/ionic/p-7751def0.system.entry.js +0 -4
  666. package/dist/ionic/p-788942c8.system.entry.js +0 -4
  667. package/dist/ionic/p-790220fd.system.js +0 -4
  668. package/dist/ionic/p-7de774dd.entry.js +0 -4
  669. package/dist/ionic/p-8084e9cb.entry.js +0 -4
  670. package/dist/ionic/p-80ddd0c1.entry.js +0 -4
  671. package/dist/ionic/p-85e04029.entry.js +0 -4
  672. package/dist/ionic/p-87e10168.system.entry.js +0 -4
  673. package/dist/ionic/p-888db766.system.js +0 -4
  674. package/dist/ionic/p-88d99112.system.entry.js +0 -4
  675. package/dist/ionic/p-89c28901.system.entry.js +0 -4
  676. package/dist/ionic/p-928e945d.system.entry.js +0 -4
  677. package/dist/ionic/p-978c6799.system.entry.js +0 -4
  678. package/dist/ionic/p-9a0b9b64.entry.js +0 -4
  679. package/dist/ionic/p-a2d75455.entry.js +0 -4
  680. package/dist/ionic/p-a706cf11.system.entry.js +0 -4
  681. package/dist/ionic/p-a78d17e2.entry.js +0 -4
  682. package/dist/ionic/p-aca77953.entry.js +0 -4
  683. package/dist/ionic/p-b09c8228.entry.js +0 -4
  684. package/dist/ionic/p-b2205a7c.system.entry.js +0 -4
  685. package/dist/ionic/p-b43cf55f.entry.js +0 -4
  686. package/dist/ionic/p-bc59962f.system.entry.js +0 -4
  687. package/dist/ionic/p-be04fcd8.system.entry.js +0 -4
  688. package/dist/ionic/p-bf595ef8.system.entry.js +0 -4
  689. package/dist/ionic/p-bf80f9d1.entry.js +0 -4
  690. package/dist/ionic/p-c0f62b42.system.js +0 -4
  691. package/dist/ionic/p-c16d9f2c.system.entry.js +0 -4
  692. package/dist/ionic/p-c48a9ef3.system.entry.js +0 -4
  693. package/dist/ionic/p-c9219299.entry.js +0 -4
  694. package/dist/ionic/p-cae77add.system.entry.js +0 -4
  695. package/dist/ionic/p-cd6bb7f5.system.entry.js +0 -4
  696. package/dist/ionic/p-cdce5ba3.system.entry.js +0 -4
  697. package/dist/ionic/p-d6129c6e.js +0 -5
  698. package/dist/ionic/p-d6beb1c9.system.entry.js +0 -4
  699. package/dist/ionic/p-db798370.system.entry.js +0 -4
  700. package/dist/ionic/p-dc1d883c.system.entry.js +0 -4
  701. package/dist/ionic/p-dd9dff11.entry.js +0 -4
  702. package/dist/ionic/p-ddbb2d5b.system.js +0 -4
  703. package/dist/ionic/p-de6f8b28.system.js +0 -4
  704. package/dist/ionic/p-df62accd.entry.js +0 -4
  705. package/dist/ionic/p-e1e05489.system.entry.js +0 -4
  706. package/dist/ionic/p-e3ff3cde.system.entry.js +0 -4
  707. package/dist/ionic/p-e8294cc1.entry.js +0 -4
  708. package/dist/ionic/p-e87564bc.entry.js +0 -4
  709. package/dist/ionic/p-ea7f77e7.entry.js +0 -4
  710. package/dist/ionic/p-eb210b21.system.entry.js +0 -4
  711. package/dist/ionic/p-eb80ca40.entry.js +0 -4
  712. package/dist/ionic/p-eba17ff5.system.entry.js +0 -4
  713. package/dist/ionic/p-eef72e06.js +0 -4
  714. package/dist/ionic/p-efcc4b66.entry.js +0 -4
  715. package/dist/ionic/p-f08d8865.js +0 -4
  716. package/dist/ionic/p-f3478ed6.system.entry.js +0 -4
  717. package/dist/ionic/p-f4bf2448.entry.js +0 -4
  718. package/dist/ionic/p-f4e37ba7.entry.js +0 -4
  719. package/dist/ionic/p-f56d53bd.entry.js +0 -4
  720. package/dist/ionic/p-f8564a9b.system.entry.js +0 -4
  721. package/dist/ionic/p-f865bc9a.entry.js +0 -4
  722. package/dist/ionic/p-fd1a0431.js +0 -4
@@ -526,22 +526,41 @@ export class Datetime {
526
526
  const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
527
527
  const bodyIsVisible = el.classList.contains('datetime-ready');
528
528
  const { isGridStyle, showMonthAndYear } = this;
529
- if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
530
- this.animateToDate(targetValue);
529
+ let areAllSelectedDatesInSameMonth = true;
530
+ if (Array.isArray(valueToProcess)) {
531
+ const firstMonth = valueToProcess[0].month;
532
+ for (const date of valueToProcess) {
533
+ if (date.month !== firstMonth) {
534
+ areAllSelectedDatesInSameMonth = false;
535
+ break;
536
+ }
537
+ }
531
538
  }
532
- else {
533
- /**
534
- * We only need to do this if we didn't just animate to a new month,
535
- * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
536
- */
537
- this.setWorkingParts({
538
- month,
539
- day,
540
- year,
541
- hour,
542
- minute,
543
- ampm,
544
- });
539
+ /**
540
+ * If there is more than one date selected
541
+ * and the dates aren't all in the same month,
542
+ * then we should neither animate to the date
543
+ * nor update the working parts because we do
544
+ * not know which date the user wants to view.
545
+ */
546
+ if (areAllSelectedDatesInSameMonth) {
547
+ if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
548
+ this.animateToDate(targetValue);
549
+ }
550
+ else {
551
+ /**
552
+ * We only need to do this if we didn't just animate to a new month,
553
+ * since that calls prevMonth/nextMonth which calls setWorkingParts for us.
554
+ */
555
+ this.setWorkingParts({
556
+ month,
557
+ day,
558
+ year,
559
+ hour,
560
+ minute,
561
+ ampm,
562
+ });
563
+ }
545
564
  }
546
565
  };
547
566
  this.animateToDate = async (targetValue) => {
@@ -1574,7 +1593,7 @@ export class Datetime {
1574
1593
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1575
1594
  const hasWheelVariant = hasDatePresentation && preferWheel;
1576
1595
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1577
- return (h(Host, { "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1596
+ return (h(Host, { key: 'b00545b7bbba3ccf35d53c1eec4f1614fb830c11', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
1578
1597
  [mode]: true,
1579
1598
  ['datetime-readonly']: readonly,
1580
1599
  ['datetime-disabled']: disabled,
@@ -21,7 +21,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
21
21
  </div>
22
22
  `, config);
23
23
  const container = page.locator('#container');
24
- await page.waitForSelector('.datetime-ready');
24
+ await page.locator('.datetime-ready').waitFor();
25
25
  await expect(container).toHaveScreenshot(screenshot(`datetime-scale`));
26
26
  });
27
27
  });
@@ -64,7 +64,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
64
64
 
65
65
  <ion-datetime value="2022-02-22T16:30:00" show-default-buttons="true" show-clear-button="true"></ion-datetime>
66
66
  `, config);
67
- await page.waitForSelector('.datetime-ready');
67
+ await page.locator('.datetime-ready').waitFor();
68
68
  const clearButton = page.locator('#clear-button button');
69
69
  const selectedDay = page.locator('.calendar-day-active');
70
70
  await expect(selectedDay).toHaveText('22');
@@ -80,7 +80,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
80
80
 
81
81
  <ion-datetime value="2022-02-28"></ion-datetime>
82
82
  `, config);
83
- await page.waitForSelector('.datetime-ready');
83
+ await page.locator('.datetime-ready').waitFor();
84
84
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
85
85
  const calendarBody = page.locator('.calendar-body');
86
86
  await expect(calendarMonthYear).toHaveText('February 2022');
@@ -82,7 +82,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
82
82
  }
83
83
  </script>
84
84
  `, config);
85
- await page.waitForSelector('.datetime-ready');
85
+ await page.locator('.datetime-ready').waitFor();
86
86
  const datetime = page.locator('ion-datetime');
87
87
  const ionChange = await page.spyOnEvent('ionChange');
88
88
  // Oct 1, 2022
@@ -188,7 +188,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
188
188
  await page.setContent(`
189
189
  <ion-datetime value="2022-05-03"></ion-datetime>
190
190
  `, config);
191
- await page.waitForSelector('.datetime-ready');
191
+ await page.locator('.datetime-ready').waitFor();
192
192
  const calendarBody = page.locator('ion-datetime .calendar-body');
193
193
  const calendarHeader = page.locator('ion-datetime .calendar-month-year');
194
194
  await expect(calendarHeader).toHaveText(/May 2022/);
@@ -200,7 +200,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
200
200
  await page.setContent(`
201
201
  <ion-datetime value="2022-05-03"></ion-datetime>
202
202
  `, config);
203
- await page.waitForSelector('.datetime-ready');
203
+ await page.locator('.datetime-ready').waitFor();
204
204
  const calendarBody = page.locator('ion-datetime .calendar-body');
205
205
  const calendarHeader = page.locator('ion-datetime .calendar-month-year');
206
206
  await expect(calendarHeader).toHaveText(/May 2022/);
@@ -213,7 +213,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
213
213
  await page.setContent(`
214
214
  <ion-datetime value="2022-05-03"></ion-datetime>
215
215
  `, config);
216
- await page.waitForSelector('.datetime-ready');
216
+ await page.locator('.datetime-ready').waitFor();
217
217
  const calendarBody = page.locator('ion-datetime .calendar-body');
218
218
  const calendarHeader = page.locator('ion-datetime .calendar-month-year');
219
219
  await expect(calendarHeader).toHaveText(/May 2022/);
@@ -237,7 +237,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
237
237
  await page.setContent(`
238
238
  <ion-datetime></ion-datetime>
239
239
  `, config);
240
- await page.waitForSelector('.datetime-ready');
240
+ await page.locator('.datetime-ready').waitFor();
241
241
  const monthYearButton = page.locator('ion-datetime .calendar-month-year');
242
242
  const monthYearInterface = page.locator('ion-datetime .datetime-year');
243
243
  const datetime = page.locator('ion-datetime');
@@ -249,7 +249,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
249
249
  await expect(datetime).not.toHaveClass(/datetime-ready/);
250
250
  await datetime.evaluate((el) => el.style.removeProperty('display'));
251
251
  await expect(datetime).toBeVisible();
252
- await page.waitForSelector('.datetime-ready');
252
+ await page.locator('.datetime-ready').waitFor();
253
253
  // month/year interface should be reset
254
254
  await expect(monthYearInterface).toBeHidden();
255
255
  });
@@ -287,7 +287,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
287
287
  await page.setContent(`
288
288
  <ion-datetime value="2022-11-10" show-clear-button="true"></ion-datetime>
289
289
  `, config);
290
- await page.waitForSelector('.datetime-ready');
290
+ await page.locator('.datetime-ready').waitFor();
291
291
  const selectedDay = page.locator('ion-datetime .calendar-day-active');
292
292
  await expect(selectedDay).toHaveText('10');
293
293
  await page.click('ion-datetime #clear-button');
@@ -306,7 +306,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
306
306
  await page.setContent(`
307
307
  <ion-datetime presentation="date" value="2022-01-02"></ion-datetime>
308
308
  `, config);
309
- await page.waitForSelector('.datetime-ready');
309
+ await page.locator('.datetime-ready').waitFor();
310
310
  const ionChange = await page.spyOnEvent('ionChange');
311
311
  const calendarButtons = page.locator('.calendar-day:not([disabled])');
312
312
  await calendarButtons.nth(0).click();
@@ -317,7 +317,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
317
317
  await page.setContent(`
318
318
  <ion-datetime presentation="date" value="2022-01-02"></ion-datetime>
319
319
  `, config);
320
- await page.waitForSelector('.datetime-ready');
320
+ await page.locator('.datetime-ready').waitFor();
321
321
  const ionChange = await page.spyOnEvent('ionChange');
322
322
  const datetime = page.locator('ion-datetime');
323
323
  await datetime.evaluate((el) => (el.value = '2022-01-01'));
@@ -349,7 +349,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
349
349
  </script>
350
350
  `, config);
351
351
  const datetime = page.locator('ion-datetime');
352
- await page.waitForSelector('.datetime-ready');
352
+ await page.locator('.datetime-ready').waitFor();
353
353
  await expect(datetime.locator('.calendar-day-today')).toHaveScreenshot(screenshot(`datetime-today-calendar-button`));
354
354
  });
355
355
  });
@@ -369,7 +369,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
369
369
  <ion-datetime value="2021-01-01"></ion-datetime>
370
370
  `, config);
371
371
  const datetime = page.locator('ion-datetime');
372
- await page.waitForSelector('.datetime-ready');
372
+ await page.locator('.datetime-ready').waitFor();
373
373
  await expect(datetime).toHaveScreenshot(screenshot(`date-highlight-start-of-month`));
374
374
  await datetime.evaluate((el) => (el.value = '2021-01-31'));
375
375
  await page.waitForChanges();
@@ -387,7 +387,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
387
387
  await page.setContent(`
388
388
  <ion-datetime value="2023-08-01"></ion-datetime>
389
389
  `, config);
390
- await page.waitForSelector('.datetime-ready');
390
+ await page.locator('.datetime-ready').waitFor();
391
391
  const datetime = page.locator('ion-datetime');
392
392
  const day = datetime.locator(`.calendar-day[data-day='1'][data-month='8']`);
393
393
  await day.focus();
@@ -9,7 +9,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
9
9
  await page.setContent(`
10
10
  <ion-datetime locale="en-US" presentation="date" value="2022-01-31"></ion-datetime>
11
11
  `, config);
12
- await page.waitForSelector('.datetime-ready');
12
+ await page.locator('.datetime-ready').waitFor();
13
13
  });
14
14
  test('should switch the calendar header when moving to a month with a different number of days', async ({ page, }) => {
15
15
  const monthYearToggle = page.locator('ion-datetime .calendar-month-year');
@@ -99,7 +99,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
99
99
  test.describe('check example usages', () => {
100
100
  test.beforeEach(async ({ page }) => {
101
101
  await page.goto('/src/components/datetime/test/disable-dates', config);
102
- await page.waitForSelector('.datetime-ready');
102
+ await page.locator('.datetime-ready').first().waitFor();
103
103
  });
104
104
  test('should disable a specific date', async ({ page }) => {
105
105
  const disabledDay = queryAllDisabledDays(page, '#specificDate');
@@ -20,7 +20,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
20
20
  await page.setContent(`
21
21
  <ion-datetime value="2022-02-28" disabled></ion-datetime>
22
22
  `, config);
23
- await page.waitForSelector('.datetime-ready');
23
+ await page.locator('.datetime-ready').waitFor();
24
24
  const febFirstButton = page.locator(`.calendar-day[data-day='1'][data-month='2']`);
25
25
  await expect(febFirstButton).toBeDisabled();
26
26
  });
@@ -28,7 +28,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
28
28
  await page.setContent(`
29
29
  <ion-datetime value="2022-02-28" disabled></ion-datetime>
30
30
  `, config);
31
- await page.waitForSelector('.datetime-ready');
31
+ await page.locator('.datetime-ready').waitFor();
32
32
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
33
33
  await expect(calendarMonthYear.locator('button')).toBeDisabled();
34
34
  });
@@ -46,7 +46,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
46
46
 
47
47
  <ion-datetime value="2022-02-22T16:30:00" show-default-buttons="true" show-clear-button="true" disabled></ion-datetime>
48
48
  `, config);
49
- await page.waitForSelector('.datetime-ready');
49
+ await page.locator('.datetime-ready').waitFor();
50
50
  const clearButton = page.locator('#clear-button button');
51
51
  await expect(clearButton).toBeDisabled();
52
52
  });
@@ -54,7 +54,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
54
54
  await page.setContent(`
55
55
  <ion-datetime value="2022-02-28" disabled></ion-datetime>
56
56
  `, config);
57
- await page.waitForSelector('.datetime-ready');
57
+ await page.locator('.datetime-ready').waitFor();
58
58
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
59
59
  const calendarBody = page.locator('.calendar-body');
60
60
  await expect(calendarMonthYear).toHaveText('February 2022');
@@ -14,7 +14,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
14
14
  await page.setContent(`
15
15
  <ion-datetime value="2022-02-22T16:30:00" presentation="date-time"></ion-datetime>
16
16
  `, config);
17
- await page.waitForSelector('.datetime-ready');
17
+ await page.locator('.datetime-ready').waitFor();
18
18
  const datetime = page.locator('ion-datetime');
19
19
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-date-time`));
20
20
  });
@@ -22,7 +22,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
22
22
  await page.setContent(`
23
23
  <ion-datetime value="2022-02-22T16:30:00" presentation="time-date"></ion-datetime>
24
24
  `, config);
25
- await page.waitForSelector('.datetime-ready');
25
+ await page.locator('.datetime-ready').waitFor();
26
26
  const datetime = page.locator('ion-datetime');
27
27
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-time-date`));
28
28
  });
@@ -30,7 +30,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
30
30
  await page.setContent(`
31
31
  <ion-datetime value="2022-02-22T16:30:00" presentation="time"></ion-datetime>
32
32
  `, config);
33
- await page.waitForSelector('.datetime-ready');
33
+ await page.locator('.datetime-ready').waitFor();
34
34
  const datetime = page.locator('ion-datetime');
35
35
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-time`));
36
36
  });
@@ -38,7 +38,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
38
38
  await page.setContent(`
39
39
  <ion-datetime value="2022-02-22T16:30:00" presentation="date"></ion-datetime>
40
40
  `, config);
41
- await page.waitForSelector('.datetime-ready');
41
+ await page.locator('.datetime-ready').waitFor();
42
42
  const datetime = page.locator('ion-datetime');
43
43
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-date`));
44
44
  });
@@ -56,7 +56,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
56
56
  await page.setContent(`
57
57
  <ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="date-time"></ion-datetime>
58
58
  `, config);
59
- await page.waitForSelector('.datetime-ready');
59
+ await page.locator('.datetime-ready').waitFor();
60
60
  const datetime = page.locator('ion-datetime');
61
61
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-cover-date-time`));
62
62
  });
@@ -64,7 +64,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
64
64
  await page.setContent(`
65
65
  <ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="time-date"></ion-datetime>
66
66
  `, config);
67
- await page.waitForSelector('.datetime-ready');
67
+ await page.locator('.datetime-ready').waitFor();
68
68
  const datetime = page.locator('ion-datetime');
69
69
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-cover-time-date`));
70
70
  });
@@ -72,7 +72,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
72
72
  await page.setContent(`
73
73
  <ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="time"></ion-datetime>
74
74
  `, config);
75
- await page.waitForSelector('.datetime-ready');
75
+ await page.locator('.datetime-ready').waitFor();
76
76
  const datetime = page.locator('ion-datetime');
77
77
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-cover-time`));
78
78
  });
@@ -80,7 +80,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
80
80
  await page.setContent(`
81
81
  <ion-datetime size="cover" value="2022-02-22T16:30:00" presentation="date"></ion-datetime>
82
82
  `, config);
83
- await page.waitForSelector('.datetime-ready');
83
+ await page.locator('.datetime-ready').waitFor();
84
84
  const datetime = page.locator('ion-datetime');
85
85
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-display-cover-date`));
86
86
  });
@@ -96,7 +96,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
96
96
  test('month selection should work after changing presentation', async ({ page }) => {
97
97
  await page.goto('/src/components/datetime/test/display', config);
98
98
  const ionWorkingPartsDidChange = await page.spyOnEvent('ionWorkingPartsDidChange');
99
- await page.waitForSelector('.datetime-ready');
99
+ await page.locator('.datetime-ready').waitFor();
100
100
  const select = page.locator('select#presentation');
101
101
  await select.selectOption('date-time');
102
102
  await page.waitForChanges();
@@ -77,7 +77,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
77
77
  await page.setContent(`
78
78
  <ion-datetime locale="ar-EG" presentation="date" value="2022-01-01"></ion-datetime>
79
79
  `, config);
80
- await page.waitForSelector('.datetime-ready');
80
+ await page.locator('.datetime-ready').waitFor();
81
81
  const datetimeButtons = page.locator('ion-datetime .calendar-day:not([disabled])');
82
82
  await expect(datetimeButtons.nth(0)).toHaveText('١');
83
83
  await expect(datetimeButtons.nth(1)).toHaveText('٢');
@@ -87,7 +87,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
87
87
  await page.setContent(`
88
88
  <ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01"></ion-datetime>
89
89
  `, config);
90
- await page.waitForSelector('.datetime-ready');
90
+ await page.locator('.datetime-ready').waitFor();
91
91
  const datetimeYear = page.locator('ion-datetime .year-column .picker-item[data-value="2022"]');
92
92
  await expect(datetimeYear).toHaveText('٢٠٢٢');
93
93
  });
@@ -111,7 +111,7 @@ class DatetimeLocaleFixture {
111
111
  ></ion-datetime>
112
112
  `, config);
113
113
  this.datetime = this.page.locator('ion-datetime');
114
- await this.page.waitForSelector('.datetime-ready');
114
+ await this.page.locator('.datetime-ready').waitFor();
115
115
  }
116
116
  async expectLocalizedDatePicker(screenshot) {
117
117
  await this.expectLocalizedPicker(screenshot);
@@ -32,7 +32,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
32
32
  }
33
33
  </script>
34
34
  `, config);
35
- await page.waitForSelector('.datetime-ready');
35
+ await page.locator('.datetime-ready').waitFor();
36
36
  const prevButton = page.locator('ion-datetime .calendar-next-prev ion-button:nth-child(1)');
37
37
  const nextButton = page.locator('ion-datetime .calendar-next-prev ion-button:nth-child(2)');
38
38
  await expect(nextButton).toHaveJSProperty('disabled', false);
@@ -48,21 +48,21 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
48
48
  test('datetime: minmax months disabled', async ({ page }) => {
49
49
  await page.goto('/src/components/datetime/test/minmax', config);
50
50
  const calendarMonths = page.locator('ion-datetime#inside .calendar-month');
51
- await page.waitForSelector('.datetime-ready');
51
+ await page.locator('.datetime-ready').first().waitFor();
52
52
  await expect(calendarMonths.nth(0)).not.toHaveClass(/calendar-month-disabled/);
53
53
  await expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/);
54
54
  await expect(calendarMonths.nth(2)).toHaveClass(/calendar-month-disabled/);
55
55
  });
56
56
  test('datetime: minmax navigation disabled', async ({ page }) => {
57
57
  await page.goto('/src/components/datetime/test/minmax', config);
58
- await page.waitForSelector('.datetime-ready');
58
+ await page.locator('.datetime-ready').first().waitFor();
59
59
  const navButtons = page.locator('ion-datetime#outside .calendar-next-prev ion-button');
60
60
  await expect(navButtons.nth(0)).toHaveAttribute('disabled', '');
61
61
  await expect(navButtons.nth(1)).toHaveAttribute('disabled', '');
62
62
  });
63
63
  test('datetime: min including day should not disable month', async ({ page }) => {
64
64
  await page.goto('/src/components/datetime/test/minmax', config);
65
- await page.waitForSelector('.datetime-ready');
65
+ await page.locator('.datetime-ready').first().waitFor();
66
66
  const calendarMonths = page.locator('ion-datetime#min-with-day .calendar-month');
67
67
  await expect(calendarMonths.nth(0)).toHaveClass(/calendar-month-disabled/);
68
68
  await expect(calendarMonths.nth(1)).not.toHaveClass(/calendar-month-disabled/);
@@ -77,7 +77,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
77
77
  await page.setContent(`
78
78
  <ion-datetime min="2022-04-22T04:10:00" max="2022-05-21T21:30:00"></ion-datetime>
79
79
  `, config);
80
- await page.waitForSelector('.datetime-ready');
80
+ await page.locator('.datetime-ready').waitFor();
81
81
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
82
82
  await page.click('.time-body');
83
83
  await ionPopoverDidPresent.next();
@@ -90,7 +90,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
90
90
  test.describe('setting value outside bounds should show in-bounds month', () => {
91
91
  const testDisplayedMonth = async (page, content, expectedString = /June 2021/) => {
92
92
  await page.setContent(content, config);
93
- await page.waitForSelector('.datetime-ready');
93
+ await page.locator('.datetime-ready').waitFor();
94
94
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
95
95
  await expect(calendarMonthYear).toHaveText(expectedString);
96
96
  };
@@ -126,7 +126,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
126
126
  });
127
127
  </script>
128
128
  `, config);
129
- await page.waitForSelector('.datetime-ready');
129
+ await page.locator('.datetime-ready').waitFor();
130
130
  const datetimeMonthDidChange = await page.spyOnEvent('datetimeMonthDidChange');
131
131
  const eventButton = page.locator('button#bind');
132
132
  await eventButton.click();
@@ -186,7 +186,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
186
186
  value="2022-10-11T06:00"
187
187
  ></ion-datetime>
188
188
  `, config);
189
- await page.waitForSelector('.datetime-ready');
189
+ await page.locator('.datetime-ready').waitFor();
190
190
  const datetime = page.locator('ion-datetime');
191
191
  const ionChange = await page.spyOnEvent('ionChange');
192
192
  const dayButton = page.locator('ion-datetime .calendar-day[data-day="10"][data-month="10"][data-year="2022"]');
@@ -201,7 +201,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
201
201
  value="2022-10-11T09:00"
202
202
  ></ion-datetime>
203
203
  `, config);
204
- await page.waitForSelector('.datetime-ready');
204
+ await page.locator('.datetime-ready').waitFor();
205
205
  const datetime = page.locator('ion-datetime');
206
206
  const ionChange = await page.spyOnEvent('ionChange');
207
207
  const dayButton = page.locator('ion-datetime .calendar-day[data-day="10"][data-month="10"][data-year="2022"]');
@@ -220,7 +220,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
220
220
  const datetime = page.locator('ion-datetime');
221
221
  const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
222
222
  const ionChange = await page.spyOnEvent('ionChange');
223
- await page.waitForSelector('.datetime-ready');
223
+ await page.locator('.datetime-ready').waitFor();
224
224
  await monthColumnItems.nth(0).click(); // switch to January
225
225
  await ionChange.next();
226
226
  await expect(datetime).toHaveJSProperty('value', '2022-01-15T00:00:00');
@@ -248,7 +248,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
248
248
  }
249
249
  </script>
250
250
  `, config);
251
- await page.waitForSelector('.datetime-ready');
251
+ await page.locator('.datetime-ready').waitFor();
252
252
  // Select Jan 10, 2022
253
253
  const maxDate = page.locator('ion-datetime .calendar-day[data-day="10"][data-month="1"][data-year="2022"]');
254
254
  await maxDate.click();
@@ -11,7 +11,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
11
11
  test.describe(title('datetime: month-year picker'), () => {
12
12
  test.beforeEach(async ({ page }) => {
13
13
  await page.goto('/src/components/datetime/test/month-year-picker', config);
14
- await page.waitForSelector('.datetime-ready');
14
+ await page.locator('.datetime-ready').first().waitFor();
15
15
  });
16
16
  test('should hide the footer when picker is open', async ({ page }) => {
17
17
  const datetimeFooter = page.locator('#date-time .datetime-footer');
@@ -5,7 +5,7 @@ import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  const SINGLE_DATE = '2022-06-01';
7
7
  const MULTIPLE_DATES = ['2022-06-01', '2022-06-02', '2022-06-03'];
8
- const MULTIPLE_DATES_SEPARATE_MONTHS = ['2022-04-01', '2022-05-01', '2022-06-01'];
8
+ const MULTIPLE_DATES_SEPARATE_MONTHS = ['2022-03-01', '2022-04-01', '2022-05-01'];
9
9
  class DatetimeMultipleFixture {
10
10
  constructor(page) {
11
11
  this.page = page;
@@ -41,7 +41,7 @@ class DatetimeMultipleFixture {
41
41
  </script>
42
42
  `, config);
43
43
  this.datetime = this.page.locator('ion-datetime');
44
- await this.page.waitForSelector('.datetime-ready');
44
+ await this.page.locator('.datetime-ready').waitFor();
45
45
  return this.datetime;
46
46
  }
47
47
  async expectMultipleDatePicker(id, screenshot) {
@@ -118,10 +118,27 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
118
118
  value: ['2022-06-01', '2022-06-02'],
119
119
  });
120
120
  });
121
- test('multiple default values across months should display at least one value', async () => {
121
+ test('should scroll to new month when value is updated with multiple dates in the same month', async ({ page }) => {
122
+ test.info().annotations.push({
123
+ type: 'issue',
124
+ description: 'https://github.com/ionic-team/ionic-framework/issues/28602',
125
+ });
122
126
  const datetime = await datetimeFixture.goto(config, MULTIPLE_DATES_SEPARATE_MONTHS);
127
+ await datetime.evaluate((el, dates) => {
128
+ el.value = dates;
129
+ }, MULTIPLE_DATES);
130
+ await page.waitForChanges();
131
+ const monthYear = datetime.locator('.calendar-month-year');
132
+ await expect(monthYear).toHaveText(/June 2022/);
133
+ });
134
+ test('should not scroll to new month when value is updated with dates in different months', async ({ page }) => {
135
+ const datetime = await datetimeFixture.goto(config, MULTIPLE_DATES);
136
+ await datetime.evaluate((el, dates) => {
137
+ el.value = dates;
138
+ }, MULTIPLE_DATES_SEPARATE_MONTHS);
139
+ await page.waitForChanges();
123
140
  const monthYear = datetime.locator('.calendar-month-year');
124
- await expect(monthYear).toHaveText(/April 2022/);
141
+ await expect(monthYear).toHaveText(/June 2022/);
125
142
  });
126
143
  test('with buttons, should only update value when confirm is called', async ({ page }) => {
127
144
  const datetime = await datetimeFixture.goto(config, SINGLE_DATE, { showDefaultButtons: true });
@@ -216,7 +233,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
216
233
  }
217
234
  </script>
218
235
  `, config);
219
- await page.waitForSelector(`.datetime-ready`);
236
+ await page.locator(`.datetime-ready`).waitFor();
220
237
  const datetime = page.locator('ion-datetime');
221
238
  const header = datetime.locator('.datetime-selected-date');
222
239
  await expect(header).toHaveText('Mon, Oct 10');
@@ -11,7 +11,7 @@ configs().forEach(({ title, screenshot, config }) => {
11
11
  const openDateTimeBtn = page.locator('ion-button#open-datetime');
12
12
  await openDateTimeBtn.click();
13
13
  await ionPopoverDidPresent.next();
14
- await page.waitForSelector('.datetime-ready');
14
+ await page.locator('.datetime-ready').waitFor();
15
15
  await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`));
16
16
  const timepickerBtn = page.locator('ion-datetime .time-body');
17
17
  await timepickerBtn.click();