@ionic/core 7.5.8-dev.11703088210.14a72b83 → 7.5.8-dev.11705350665.1a40ee3a

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 (505) hide show
  1. package/components/backdrop.js +0 -12
  2. package/components/button.js +2 -2
  3. package/components/data.js +1 -1
  4. package/components/gesture-controller.js +1 -1
  5. package/components/index2.js +91 -0
  6. package/components/ion-content.js +3 -4
  7. package/components/ion-datetime.js +40 -64
  8. package/components/ion-input.js +2 -0
  9. package/components/ion-picker-column-option.d.ts +11 -0
  10. package/components/ion-picker-column-option.js +9 -0
  11. package/components/ion-picker-column.js +2 -2
  12. package/components/ion-picker-legacy-column.d.ts +11 -0
  13. package/components/ion-picker-legacy-column.js +9 -0
  14. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  15. package/components/ion-picker-legacy.js +309 -0
  16. package/components/ion-picker.js +1 -309
  17. package/components/ion-refresher-content.js +3 -10
  18. package/components/ion-refresher.js +183 -4
  19. package/components/ion-searchbar.js +2 -0
  20. package/components/ion-textarea.js +2 -0
  21. package/components/overlays.js +11 -4
  22. package/components/picker-column-option.js +122 -0
  23. package/components/picker-column.js +351 -322
  24. package/components/picker-column2.js +379 -0
  25. package/components/{picker-internal.js → picker.js} +29 -22
  26. package/css/core.css +10 -0
  27. package/css/core.css.map +1 -1
  28. package/css/ionic.bundle.css +1 -1
  29. package/css/ionic.bundle.css.map +1 -1
  30. package/dist/cjs/{app-globals-28656db1.js → app-globals-0af482c7.js} +1 -1
  31. package/dist/cjs/{button-active-75b38d77.js → button-active-9d7e0640.js} +2 -2
  32. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  33. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  34. package/dist/cjs/{index-097270a3.js → index-5cbb20f9.js} +1 -1
  35. package/dist/cjs/{index-b0102f48.js → index-bbb4336c.js} +39 -1
  36. package/dist/cjs/{index-cb3e0ab7.js → index-ec51e99c.js} +94 -3
  37. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  38. package/dist/cjs/index.cjs.js +9 -9
  39. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  41. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  42. package/dist/cjs/ion-app_8.cjs.entry.js +8 -9
  43. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -14
  46. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  48. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-datetime_3.cjs.entry.js +38 -58
  54. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-input.cjs.entry.js +4 -2
  58. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-loading.cjs.entry.js +4 -3
  61. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  62. package/dist/cjs/ion-modal.cjs.entry.js +6 -6
  63. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -4
  64. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  65. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +106 -89
  66. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +27 -20
  67. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  68. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-refresher_2.cjs.entry.js +17 -32
  72. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -2
  76. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  77. package/dist/cjs/ion-select_3.cjs.entry.js +4 -3
  78. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  82. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-textarea.cjs.entry.js +4 -2
  84. package/dist/cjs/ion-toast.cjs.entry.js +4 -3
  85. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  86. package/dist/cjs/{ionic-global-62510d64.js → ionic-global-f4a2093b.js} +1 -1
  87. package/dist/cjs/ionic.cjs.js +5 -5
  88. package/dist/cjs/{ios.transition-d9c0e4fb.js → ios.transition-039d6aeb.js} +4 -2
  89. package/dist/cjs/loader.cjs.js +4 -4
  90. package/dist/cjs/{md.transition-4fac8a87.js → md.transition-ce763350.js} +4 -2
  91. package/dist/cjs/{overlays-b1471172.js → overlays-e8e05b0e.js} +12 -5
  92. package/dist/cjs/{status-tap-0aa8e1f2.js → status-tap-415acac6.js} +1 -1
  93. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  94. package/dist/collection/collection-manifest.json +8 -7
  95. package/dist/collection/components/backdrop/backdrop.js +0 -12
  96. package/dist/collection/components/button/button.ios.css +1 -1
  97. package/dist/collection/components/button/button.md.css +1 -1
  98. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  99. package/dist/collection/components/content/content.css +0 -4
  100. package/dist/collection/components/content/content.js +2 -3
  101. package/dist/collection/components/datetime/datetime.ios.css +91 -37
  102. package/dist/collection/components/datetime/datetime.js +24 -36
  103. package/dist/collection/components/datetime/datetime.md.css +96 -37
  104. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  105. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  106. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  107. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  108. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  109. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  110. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  111. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  112. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  113. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  114. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  115. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  116. package/dist/collection/components/datetime/utils/data.js +1 -1
  117. package/dist/collection/components/input/input.js +4 -2
  118. package/dist/collection/components/picker/picker.ios.css +112 -211
  119. package/dist/collection/components/picker/picker.js +472 -744
  120. package/dist/collection/components/picker/picker.md.css +108 -198
  121. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  122. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  123. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  124. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  125. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  126. package/dist/collection/components/picker-column/picker-column.js +497 -335
  127. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  128. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  129. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  130. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  131. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  132. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  133. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  134. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  135. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  136. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  137. package/dist/collection/components/picker-legacy/picker.js +817 -0
  138. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  139. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  140. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  141. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  142. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  143. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  144. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  145. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  146. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  147. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  148. package/dist/collection/components/refresher/refresher.utils.js +11 -19
  149. package/dist/collection/components/refresher-content/refresher-content.js +3 -9
  150. package/dist/collection/components/searchbar/searchbar.js +3 -1
  151. package/dist/collection/components/textarea/textarea.js +4 -2
  152. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  153. package/dist/collection/utils/overlays.js +11 -4
  154. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  155. package/dist/collection/utils/transition/index.js +91 -0
  156. package/dist/docs.json +484 -47
  157. package/dist/esm/{app-globals-c23144fc.js → app-globals-722340c4.js} +1 -1
  158. package/dist/esm/{button-active-7013b5a1.js → button-active-ed9d848c.js} +2 -2
  159. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  160. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  161. package/dist/esm/{index-39329c6f.js → index-08d686eb.js} +39 -1
  162. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  163. package/dist/esm/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  164. package/dist/esm/{index-bebaae5d.js → index-933484ae.js} +94 -3
  165. package/dist/esm/index.js +9 -9
  166. package/dist/esm/ion-accordion_2.entry.js +2 -2
  167. package/dist/esm/ion-action-sheet.entry.js +6 -6
  168. package/dist/esm/ion-alert.entry.js +6 -6
  169. package/dist/esm/ion-app_8.entry.js +8 -9
  170. package/dist/esm/ion-avatar_3.entry.js +2 -2
  171. package/dist/esm/ion-back-button.entry.js +2 -2
  172. package/dist/esm/ion-backdrop.entry.js +2 -14
  173. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  174. package/dist/esm/ion-button_2.entry.js +4 -4
  175. package/dist/esm/ion-card_5.entry.js +2 -2
  176. package/dist/esm/ion-checkbox.entry.js +2 -2
  177. package/dist/esm/ion-chip.entry.js +2 -2
  178. package/dist/esm/ion-col_3.entry.js +2 -2
  179. package/dist/esm/ion-datetime-button.entry.js +3 -3
  180. package/dist/esm/ion-datetime_3.entry.js +37 -57
  181. package/dist/esm/ion-fab_3.entry.js +2 -2
  182. package/dist/esm/ion-img.entry.js +2 -2
  183. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  184. package/dist/esm/ion-input.entry.js +4 -2
  185. package/dist/esm/ion-item-option_3.entry.js +3 -3
  186. package/dist/esm/ion-item_8.entry.js +2 -2
  187. package/dist/esm/ion-loading.entry.js +4 -3
  188. package/dist/esm/ion-menu_3.entry.js +6 -6
  189. package/dist/esm/ion-modal.entry.js +6 -6
  190. package/dist/esm/ion-nav_2.entry.js +5 -4
  191. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  192. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +106 -89
  193. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +27 -20
  194. package/dist/esm/ion-popover.entry.js +5 -4
  195. package/dist/esm/ion-progress-bar.entry.js +2 -2
  196. package/dist/esm/ion-radio_2.entry.js +2 -2
  197. package/dist/esm/ion-range.entry.js +3 -3
  198. package/dist/esm/ion-refresher_2.entry.js +17 -32
  199. package/dist/esm/ion-reorder_2.entry.js +3 -3
  200. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  201. package/dist/esm/ion-route_4.entry.js +2 -2
  202. package/dist/esm/ion-searchbar.entry.js +4 -2
  203. package/dist/esm/ion-segment_2.entry.js +3 -3
  204. package/dist/esm/ion-select_3.entry.js +4 -3
  205. package/dist/esm/ion-spinner.entry.js +2 -2
  206. package/dist/esm/ion-split-pane.entry.js +2 -2
  207. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  208. package/dist/esm/ion-tab_2.entry.js +1 -1
  209. package/dist/esm/ion-text.entry.js +2 -2
  210. package/dist/esm/ion-textarea.entry.js +4 -2
  211. package/dist/esm/ion-toast.entry.js +4 -3
  212. package/dist/esm/ion-toggle.entry.js +3 -3
  213. package/dist/esm/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  214. package/dist/esm/ionic.js +6 -6
  215. package/dist/esm/{ios.transition-daa373e9.js → ios.transition-9e42996d.js} +4 -2
  216. package/dist/esm/loader.js +5 -5
  217. package/dist/esm/{md.transition-91c3d3cc.js → md.transition-8cbb4e1d.js} +4 -2
  218. package/dist/esm/{overlays-64e67e2c.js → overlays-fbc5cab5.js} +12 -5
  219. package/dist/esm/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  220. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  221. package/dist/esm-es5/app-globals-722340c4.js +4 -0
  222. package/dist/esm-es5/{button-active-7013b5a1.js → button-active-ed9d848c.js} +1 -1
  223. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  224. package/dist/esm-es5/{index-39329c6f.js → index-08d686eb.js} +1 -1
  225. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  226. package/dist/esm-es5/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  227. package/dist/esm-es5/index-933484ae.js +4 -0
  228. package/dist/esm-es5/index.js +1 -1
  229. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  231. package/dist/esm-es5/ion-alert.entry.js +1 -1
  232. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  233. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  234. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  235. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  236. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  237. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  238. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  239. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  240. package/dist/esm-es5/ion-chip.entry.js +1 -1
  241. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  242. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  243. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  244. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  245. package/dist/esm-es5/ion-img.entry.js +1 -1
  246. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  247. package/dist/esm-es5/ion-input.entry.js +1 -1
  248. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  249. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  250. package/dist/esm-es5/ion-loading.entry.js +1 -1
  251. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  252. package/dist/esm-es5/ion-modal.entry.js +1 -1
  253. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  254. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  255. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  256. package/dist/esm-es5/ion-picker.entry.js +4 -0
  257. package/dist/esm-es5/ion-popover.entry.js +1 -1
  258. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  259. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  260. package/dist/esm-es5/ion-range.entry.js +1 -1
  261. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  262. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  263. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  264. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  265. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  266. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  267. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  268. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  269. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  270. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  271. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-text.entry.js +1 -1
  273. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  274. package/dist/esm-es5/ion-toast.entry.js +1 -1
  275. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  276. package/dist/esm-es5/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  277. package/dist/esm-es5/ionic.js +1 -1
  278. package/dist/esm-es5/ios.transition-9e42996d.js +4 -0
  279. package/dist/esm-es5/loader.js +1 -1
  280. package/dist/esm-es5/md.transition-8cbb4e1d.js +4 -0
  281. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  282. package/dist/esm-es5/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  283. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  284. package/dist/html.html-data.json +154 -3
  285. package/dist/ionic/index.esm.js +1 -1
  286. package/dist/ionic/ionic.esm.js +1 -1
  287. package/dist/ionic/ionic.js +1 -1
  288. package/dist/ionic/{p-a0945c3a.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
  289. package/dist/ionic/{p-161d0916.entry.js → p-1161a793.entry.js} +1 -1
  290. package/dist/ionic/{p-89026d53.entry.js → p-1208f939.entry.js} +1 -1
  291. package/dist/ionic/{p-ad78c421.system.js → p-16bd5224.system.js} +1 -1
  292. package/dist/ionic/p-1786bc72.js +4 -0
  293. package/dist/ionic/{p-312221db.entry.js → p-17da5ed1.entry.js} +1 -1
  294. package/dist/ionic/{p-5fb707e0.entry.js → p-18ba8221.entry.js} +1 -1
  295. package/dist/ionic/{p-1631b52f.system.js → p-1d624e03.system.js} +1 -1
  296. package/dist/ionic/{p-3f5ae764.entry.js → p-1fc72959.entry.js} +1 -1
  297. package/dist/ionic/{p-1ff22253.entry.js → p-2092f39f.entry.js} +1 -1
  298. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  299. package/dist/ionic/{p-46dbd723.entry.js → p-21c3515a.entry.js} +1 -1
  300. package/dist/ionic/{p-2657f213.entry.js → p-22e5af95.entry.js} +1 -1
  301. package/dist/ionic/{p-6744eca5.entry.js → p-232d1f22.entry.js} +1 -1
  302. package/dist/ionic/p-26798a7b.system.entry.js +4 -0
  303. package/dist/ionic/p-27bcbbc7.system.entry.js +4 -0
  304. package/dist/ionic/{p-b81a8111.system.entry.js → p-2938823a.system.entry.js} +1 -1
  305. package/dist/ionic/p-294725bb.js +4 -0
  306. package/dist/ionic/{p-df361680.system.entry.js → p-2ab4e925.system.entry.js} +1 -1
  307. package/dist/ionic/{p-8c202d6e.system.entry.js → p-32303650.system.entry.js} +1 -1
  308. package/dist/ionic/{p-18032a93.entry.js → p-34c39c48.entry.js} +1 -1
  309. package/dist/ionic/p-350f7292.system.entry.js +4 -0
  310. package/dist/ionic/{p-86c2bbc8.entry.js → p-353b349d.entry.js} +1 -1
  311. package/dist/ionic/p-36d194c5.entry.js +4 -0
  312. package/dist/ionic/p-3993ae66.entry.js +4 -0
  313. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  314. package/dist/ionic/{p-a3a145d3.entry.js → p-3f6270b3.entry.js} +1 -1
  315. package/dist/ionic/{p-23a27e78.system.entry.js → p-3fd26bd6.system.entry.js} +1 -1
  316. package/dist/ionic/{p-426bdba9.system.js → p-3fe96156.system.js} +1 -1
  317. package/dist/ionic/p-400b61c7.system.entry.js +4 -0
  318. package/dist/ionic/{p-e26030f8.system.js → p-4155f352.system.js} +1 -1
  319. package/dist/ionic/{p-405f1a72.entry.js → p-42ba3902.entry.js} +1 -1
  320. package/dist/ionic/{p-2a7e6572.system.entry.js → p-464975c5.system.entry.js} +1 -1
  321. package/dist/ionic/{p-ee4a54e3.entry.js → p-4911a5d6.entry.js} +1 -1
  322. package/dist/ionic/p-49c5f1a3.js +4 -0
  323. package/dist/ionic/{p-5f46d93e.entry.js → p-4a31c99f.entry.js} +1 -1
  324. package/dist/ionic/{p-f34d6a49.entry.js → p-4bee86bd.entry.js} +1 -1
  325. package/dist/ionic/{p-2cd9cb80.system.entry.js → p-4fb51e61.system.entry.js} +1 -1
  326. package/dist/ionic/p-510d9b43.js +4 -0
  327. package/dist/ionic/{p-d3e123c0.entry.js → p-51a087d6.entry.js} +1 -1
  328. package/dist/ionic/p-51abefb7.system.js +4 -0
  329. package/dist/ionic/{p-aac289d2.system.entry.js → p-564af202.system.entry.js} +1 -1
  330. package/dist/ionic/p-588fdf40.entry.js +4 -0
  331. package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
  332. package/dist/ionic/{p-a5c81b99.entry.js → p-5a68960f.entry.js} +1 -1
  333. package/dist/ionic/{p-34d6f520.system.js → p-5b365ca7.system.js} +1 -1
  334. package/dist/ionic/{p-eef8d7e8.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  335. package/dist/ionic/{p-a1b4dba7.entry.js → p-5d42b6b4.entry.js} +1 -1
  336. package/dist/ionic/{p-21f015cf.js → p-5ecae037.js} +1 -1
  337. package/dist/ionic/{p-57c0d5bf.system.entry.js → p-6555a5e7.system.entry.js} +1 -1
  338. package/dist/ionic/p-65e27aae.system.entry.js +4 -0
  339. package/dist/ionic/{p-71d986ae.entry.js → p-6b7c55cd.entry.js} +1 -1
  340. package/dist/ionic/{p-70ecb18b.entry.js → p-6d72fb44.entry.js} +1 -1
  341. package/dist/ionic/{p-1cbc21e2.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
  342. package/dist/ionic/{p-64af4468.entry.js → p-6fbecbda.entry.js} +1 -1
  343. package/dist/ionic/{p-27a5f2c7.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  344. package/dist/ionic/p-73190c5f.entry.js +4 -0
  345. package/dist/ionic/p-73aa7604.entry.js +4 -0
  346. package/dist/ionic/p-76d3765d.js +4 -0
  347. package/dist/ionic/{p-2ac9d078.system.entry.js → p-77965464.system.entry.js} +1 -1
  348. package/dist/ionic/{p-6cf08720.entry.js → p-7b725280.entry.js} +1 -1
  349. package/dist/ionic/p-8017aad2.system.entry.js +4 -0
  350. package/dist/ionic/{p-27e6473f.entry.js → p-8adc9a45.entry.js} +1 -1
  351. package/dist/ionic/p-8c0e5060.system.js +4 -0
  352. package/dist/ionic/p-8c97cdc0.entry.js +4 -0
  353. package/dist/ionic/p-8e42850f.entry.js +4 -0
  354. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  355. package/dist/ionic/{p-67598744.entry.js → p-8f5d30f5.entry.js} +1 -1
  356. package/dist/ionic/p-8fa6583d.system.js +4 -0
  357. package/dist/ionic/p-91af3c52.system.entry.js +4 -0
  358. package/dist/ionic/{p-3acad8ff.system.entry.js → p-93000a81.system.entry.js} +1 -1
  359. package/dist/ionic/{p-41f7af3f.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  360. package/dist/ionic/{p-a0db3de9.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
  361. package/dist/ionic/{p-12cdcb59.js → p-9738fd82.js} +1 -1
  362. package/dist/ionic/{p-a70b5d24.entry.js → p-98f3d827.entry.js} +1 -1
  363. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  364. package/dist/ionic/p-9e48593b.system.js +4 -0
  365. package/dist/ionic/{p-315ad733.system.entry.js → p-a225bf0f.system.entry.js} +1 -1
  366. package/dist/ionic/{p-53a3283e.entry.js → p-a4afcc88.entry.js} +1 -1
  367. package/dist/ionic/p-a60a1ce5.js +4 -0
  368. package/dist/ionic/p-a8baa23e.entry.js +4 -0
  369. package/dist/ionic/{p-99fe0543.entry.js → p-a98dc0c1.entry.js} +1 -1
  370. package/dist/ionic/p-a9a80f5b.entry.js +4 -0
  371. package/dist/ionic/{p-90db28f8.system.entry.js → p-a9e3b5be.system.entry.js} +1 -1
  372. package/dist/ionic/{p-a843a90e.system.entry.js → p-ab9456e9.system.entry.js} +1 -1
  373. package/dist/ionic/p-ae712b95.entry.js +4 -0
  374. package/dist/ionic/p-afcf4620.entry.js +4 -0
  375. package/dist/ionic/{p-3535a36c.entry.js → p-b133e9b4.entry.js} +1 -1
  376. package/dist/ionic/{p-98ac0e27.system.entry.js → p-b3b3efba.system.entry.js} +2 -2
  377. package/dist/ionic/{p-58ff9e5b.system.js → p-b4a51c42.system.js} +1 -1
  378. package/dist/ionic/p-b4d31b30.system.entry.js +4 -0
  379. package/dist/ionic/{p-3cb5466e.entry.js → p-b5f9f14c.entry.js} +1 -1
  380. package/dist/ionic/{p-b0fcf130.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
  381. package/dist/ionic/{p-7ae5ca1f.system.entry.js → p-b7010c69.system.entry.js} +1 -1
  382. package/dist/ionic/{p-a99f14a7.system.entry.js → p-b752714f.system.entry.js} +1 -1
  383. package/dist/ionic/p-c006d974.entry.js +4 -0
  384. package/dist/ionic/{p-ca32685b.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  385. package/dist/ionic/{p-acdd8148.js → p-c3c3333a.js} +1 -1
  386. package/dist/ionic/p-c41bff4e.system.entry.js +4 -0
  387. package/dist/ionic/{p-8261be6c.system.entry.js → p-c847fb35.system.entry.js} +1 -1
  388. package/dist/ionic/{p-e3c44332.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
  389. package/dist/ionic/{p-9f376964.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  390. package/dist/ionic/p-ca8938f4.js +4 -0
  391. package/dist/ionic/{p-ad953217.system.entry.js → p-caf21b46.system.entry.js} +1 -1
  392. package/dist/ionic/{p-5a7d5905.system.entry.js → p-cde52378.system.entry.js} +1 -1
  393. package/dist/ionic/{p-1c6c6098.entry.js → p-cfe57b1b.entry.js} +1 -1
  394. package/dist/ionic/{p-c04accad.entry.js → p-d37b441e.entry.js} +1 -1
  395. package/dist/ionic/{p-f8c5a0dd.system.js → p-d3b030b8.system.js} +1 -1
  396. package/dist/ionic/p-d3c773d0.entry.js +4 -0
  397. package/dist/ionic/{p-91f9e81b.js → p-d662d908.js} +1 -1
  398. package/dist/ionic/p-d9ec6cf0.system.js +4 -0
  399. package/dist/ionic/p-da15f571.system.entry.js +4 -0
  400. package/dist/ionic/{p-c5ae50be.system.js → p-e3584231.system.js} +1 -1
  401. package/dist/ionic/{p-8a75f7bf.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  402. package/dist/ionic/{p-5f127075.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  403. package/dist/ionic/p-ea69616e.entry.js +4 -0
  404. package/dist/ionic/{p-4f71a9cf.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  405. package/dist/ionic/p-f6160677.system.entry.js +4 -0
  406. package/dist/ionic/{p-e4045e04.entry.js → p-f8a5bb89.entry.js} +1 -1
  407. package/dist/ionic/{p-93dac17a.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  408. package/dist/ionic/{p-bc97b5cd.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  409. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  410. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  411. package/dist/types/components/datetime/datetime.d.ts +0 -1
  412. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  413. package/dist/types/components/input/input.d.ts +5 -1
  414. package/dist/types/components/menu/menu.d.ts +1 -1
  415. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  416. package/dist/types/components/picker/picker.d.ts +75 -129
  417. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  418. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  419. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  420. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  421. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  422. package/dist/types/components/refresher/refresher.utils.d.ts +0 -16
  423. package/dist/types/components/searchbar/searchbar.d.ts +2 -0
  424. package/dist/types/components/textarea/textarea.d.ts +5 -1
  425. package/dist/types/components.d.ts +161 -129
  426. package/dist/types/interface.d.ts +1 -1
  427. package/dist/types/utils/config.d.ts +8 -2
  428. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  429. package/dist/types/utils/overlays.d.ts +5 -2
  430. package/hydrate/index.d.ts +1 -1
  431. package/hydrate/index.js +1409 -1229
  432. package/package.json +2 -2
  433. package/components/ion-picker-column-internal.d.ts +0 -11
  434. package/components/ion-picker-column-internal.js +0 -9
  435. package/components/ion-picker-internal.js +0 -9
  436. package/components/picker-column-internal.js +0 -390
  437. package/components/refresher.utils.js +0 -196
  438. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  439. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  440. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  441. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  442. package/dist/esm-es5/app-globals-c23144fc.js +0 -4
  443. package/dist/esm-es5/index-bebaae5d.js +0 -4
  444. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  445. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  446. package/dist/esm-es5/ios.transition-daa373e9.js +0 -4
  447. package/dist/esm-es5/md.transition-91c3d3cc.js +0 -4
  448. package/dist/esm-es5/overlays-64e67e2c.js +0 -4
  449. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  450. package/dist/ionic/p-0263eb49.system.js +0 -4
  451. package/dist/ionic/p-06600f70.js +0 -4
  452. package/dist/ionic/p-0827d00e.system.entry.js +0 -4
  453. package/dist/ionic/p-19545a49.system.entry.js +0 -4
  454. package/dist/ionic/p-1e7daa1f.entry.js +0 -4
  455. package/dist/ionic/p-2507b0c0.entry.js +0 -4
  456. package/dist/ionic/p-33f3cd49.entry.js +0 -4
  457. package/dist/ionic/p-35ce400e.system.js +0 -4
  458. package/dist/ionic/p-45db7949.system.entry.js +0 -4
  459. package/dist/ionic/p-58dd7c15.entry.js +0 -4
  460. package/dist/ionic/p-5c7f13cd.system.entry.js +0 -4
  461. package/dist/ionic/p-6a6477b2.js +0 -4
  462. package/dist/ionic/p-742e11cf.system.entry.js +0 -4
  463. package/dist/ionic/p-7484b1d6.system.js +0 -4
  464. package/dist/ionic/p-78ebf1b6.system.entry.js +0 -4
  465. package/dist/ionic/p-83fada9e.system.entry.js +0 -4
  466. package/dist/ionic/p-89cfbc88.system.entry.js +0 -4
  467. package/dist/ionic/p-8a10752d.entry.js +0 -4
  468. package/dist/ionic/p-abab375b.system.js +0 -4
  469. package/dist/ionic/p-ac4a7fc0.js +0 -4
  470. package/dist/ionic/p-af959b5d.entry.js +0 -4
  471. package/dist/ionic/p-b11ceee2.entry.js +0 -4
  472. package/dist/ionic/p-b5e33ebc.system.entry.js +0 -4
  473. package/dist/ionic/p-b8f2134e.js +0 -4
  474. package/dist/ionic/p-bbe3feee.entry.js +0 -4
  475. package/dist/ionic/p-cde72008.js +0 -4
  476. package/dist/ionic/p-d0251fc4.entry.js +0 -4
  477. package/dist/ionic/p-d1530ea9.entry.js +0 -4
  478. package/dist/ionic/p-ddccf1f4.js +0 -4
  479. package/dist/ionic/p-e145b9f9.entry.js +0 -4
  480. package/dist/ionic/p-e8e530fc.entry.js +0 -4
  481. package/dist/ionic/p-eab6401e.js +0 -4
  482. package/dist/ionic/p-edc5c693.system.entry.js +0 -4
  483. package/dist/ionic/p-f0384573.system.entry.js +0 -4
  484. package/dist/ionic/p-f10de9d5.system.js +0 -4
  485. package/dist/ionic/p-f444fea5.entry.js +0 -4
  486. package/dist/ionic/p-fcf49977.system.entry.js +0 -4
  487. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  488. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  489. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  490. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  491. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  492. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  493. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  494. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  495. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  496. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  497. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +0 -0
  498. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  499. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  500. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  501. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  502. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  503. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  504. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  505. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -977,7 +977,7 @@ export class Datetime {
977
977
  const renderArray = forcePresentation === 'time-date'
978
978
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
979
979
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
980
- return h("ion-picker-internal", null, renderArray);
980
+ return h("ion-picker", null, renderArray);
981
981
  }
982
982
  renderDatePickerColumns(forcePresentation) {
983
983
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -1036,7 +1036,7 @@ export class Datetime {
1036
1036
  const todayString = workingParts.day !== null
1037
1037
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
1038
1038
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
1039
- return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1039
+ return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
1040
1040
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1041
1041
  // Due to a Safari 14 issue we need to destroy
1042
1042
  // the scroll listener before we update state
@@ -1052,7 +1052,7 @@ export class Datetime {
1052
1052
  // the working parts have been updated.
1053
1053
  this.initializeCalendarListener();
1054
1054
  ev.stopPropagation();
1055
- } }));
1055
+ } }, items.map((item) => (h("ion-picker-column-option", { part: item.value === todayString ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: item.value, disabled: item.disabled, value: item.value }, item.text)))));
1056
1056
  }
1057
1057
  renderIndividualDatePickerColumns(forcePresentation) {
1058
1058
  const { workingParts, isDateEnabled } = this;
@@ -1120,7 +1120,8 @@ export class Datetime {
1120
1120
  }
1121
1121
  const { disabled, workingParts } = this;
1122
1122
  const activePart = this.getActivePartsWithFallback();
1123
- return (h("ion-picker-column-internal", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1123
+ const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
1124
+ return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
1124
1125
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1125
1126
  // Due to a Safari 14 issue we need to destroy
1126
1127
  // the scroll listener before we update state
@@ -1134,7 +1135,7 @@ export class Datetime {
1134
1135
  // the working parts have been updated.
1135
1136
  this.initializeCalendarListener();
1136
1137
  ev.stopPropagation();
1137
- } }));
1138
+ } }, days.map((day) => (h("ion-picker-column-option", { part: day.value === pickerColumnValue ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: day.value, disabled: day.disabled, value: day.value }, day.text)))));
1138
1139
  }
1139
1140
  renderMonthPickerColumn(months) {
1140
1141
  if (months.length === 0) {
@@ -1142,7 +1143,7 @@ export class Datetime {
1142
1143
  }
1143
1144
  const { disabled, workingParts } = this;
1144
1145
  const activePart = this.getActivePartsWithFallback();
1145
- return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1146
+ return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
1146
1147
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1147
1148
  // Due to a Safari 14 issue we need to destroy
1148
1149
  // the scroll listener before we update state
@@ -1156,7 +1157,7 @@ export class Datetime {
1156
1157
  // the working parts have been updated.
1157
1158
  this.initializeCalendarListener();
1158
1159
  ev.stopPropagation();
1159
- } }));
1160
+ } }, months.map((month) => (h("ion-picker-column-option", { part: month.value === workingParts.month ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: month.value, disabled: month.disabled, value: month.value }, month.text)))));
1160
1161
  }
1161
1162
  renderYearPickerColumn(years) {
1162
1163
  if (years.length === 0) {
@@ -1164,7 +1165,7 @@ export class Datetime {
1164
1165
  }
1165
1166
  const { disabled, workingParts } = this;
1166
1167
  const activePart = this.getActivePartsWithFallback();
1167
- return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1168
+ return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
1168
1169
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1169
1170
  // Due to a Safari 14 issue we need to destroy
1170
1171
  // the scroll listener before we update state
@@ -1178,7 +1179,7 @@ export class Datetime {
1178
1179
  // the working parts have been updated.
1179
1180
  this.initializeCalendarListener();
1180
1181
  ev.stopPropagation();
1181
- } }));
1182
+ } }, years.map((year) => (h("ion-picker-column-option", { part: year.value === workingParts.year ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: year.value, disabled: year.disabled, value: year.value }, year.text)))));
1182
1183
  }
1183
1184
  renderTimePickerColumns(forcePresentation) {
1184
1185
  if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
@@ -1207,22 +1208,22 @@ export class Datetime {
1207
1208
  if (hoursData.length === 0)
1208
1209
  return [];
1209
1210
  const activePart = this.getActivePartsWithFallback();
1210
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1211
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
1211
1212
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1212
1213
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1213
1214
  ev.stopPropagation();
1214
- } }));
1215
+ } }, hoursData.map((hour) => (h("ion-picker-column-option", { part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
1215
1216
  }
1216
1217
  renderMinutePickerColumn(minutesData) {
1217
1218
  const { disabled, workingParts } = this;
1218
1219
  if (minutesData.length === 0)
1219
1220
  return [];
1220
1221
  const activePart = this.getActivePartsWithFallback();
1221
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1222
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
1222
1223
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1223
1224
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1224
1225
  ev.stopPropagation();
1225
- } }));
1226
+ } }, minutesData.map((minute) => (h("ion-picker-column-option", { part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
1226
1227
  }
1227
1228
  renderDayPeriodPickerColumn(dayPeriodData) {
1228
1229
  const { disabled, workingParts } = this;
@@ -1231,12 +1232,12 @@ export class Datetime {
1231
1232
  }
1232
1233
  const activePart = this.getActivePartsWithFallback();
1233
1234
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1234
- return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1235
+ return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
1235
1236
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1236
1237
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1237
1238
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
1238
1239
  ev.stopPropagation();
1239
- } }));
1240
+ } }, dayPeriodData.map((dayPeriod) => (h("ion-picker-column-option", { part: dayPeriod.value === activePart.ampm ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: dayPeriod.value, disabled: dayPeriod.disabled, value: dayPeriod.value }, dayPeriod.text)))));
1240
1241
  }
1241
1242
  renderWheelView(forcePresentation) {
1242
1243
  const { locale } = this;
@@ -1257,26 +1258,11 @@ export class Datetime {
1257
1258
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1258
1259
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1259
1260
  const hostDir = this.el.getAttribute('dir') || undefined;
1260
- return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
1261
- var _a;
1262
- this.toggleMonthAndYearView();
1263
- /**
1264
- * TODO: FW-3547
1265
- *
1266
- * Currently there is not a way to set the aria-label on the inner button
1267
- * on the `ion-item` and have it be reactive to changes. This is a workaround
1268
- * until we either refactor `ion-item` to a button or Stencil adds a way to
1269
- * have reactive props for built-in properties, such as `aria-label`.
1270
- */
1271
- const { monthYearToggleItemRef } = this;
1272
- if (monthYearToggleItemRef) {
1273
- const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
1274
- if (btn) {
1275
- const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
1276
- btn.setAttribute('aria-label', monthYearAriaLabel);
1277
- }
1278
- }
1279
- } }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1261
+ return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
1262
+ 'calendar-month-year-toggle': true,
1263
+ 'ion-activatable': true,
1264
+ 'ion-focusable': true,
1265
+ }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1280
1266
  return h("div", { class: "day-of-week" }, d);
1281
1267
  }))));
1282
1268
  }
@@ -1437,7 +1423,7 @@ export class Datetime {
1437
1423
  * This will correctly scroll the element position to the correct time value,
1438
1424
  * before the popover is fully presented.
1439
1425
  */
1440
- const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1426
+ const cols = ev.target.querySelectorAll('ion-picker-column');
1441
1427
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1442
1428
  cols.forEach((col) => col.scrollActiveItemIntoView());
1443
1429
  }, style: {
@@ -2365,3 +2351,5 @@ export class Datetime {
2365
2351
  }
2366
2352
  }
2367
2353
  let datetimeIds = 0;
2354
+ const WHEEL_ITEM_PART = 'wheel-item';
2355
+ const WHEEL_ITEM_ACTIVE_PART = `active`;
@@ -61,6 +61,8 @@
61
61
  *
62
62
  * @prop --wheel-highlight-background: The background of the highlight under the selected
63
63
  * item when using a wheel style layout, or in the month/year picker for grid style layouts.
64
+ * @prop --wheel-highlight-border-radius: The border radius of the highlight under the selected
65
+ * item when using a wheel style layout, or in the month/year picker for grid style layouts.
64
66
  * @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
65
67
  * when using a wheel style layout, or in the month/year picker for grid style layouts. Must
66
68
  * be in RGB format, e.g. `255, 255, 255`.
@@ -71,19 +73,6 @@
71
73
  overflow: hidden;
72
74
  }
73
75
 
74
- /**
75
- * When using the wheel picker to switch
76
- * between months, sometimes the allowed
77
- * dates may be filtered. As a result, it
78
- * is possible to get a layout shift as
79
- * the picker column will shrink to fit the
80
- * widest item in the column. Setting a minimum
81
- * width avoids this layout shifting.
82
- */
83
- ion-picker-column-internal {
84
- min-width: 26px;
85
- }
86
-
87
76
  :host(.datetime-size-fixed) {
88
77
  width: auto;
89
78
  height: auto;
@@ -94,7 +83,7 @@ ion-picker-column-internal {
94
83
  }
95
84
 
96
85
  /**
97
- * This ensures that the picker is apppropriately
86
+ * This ensures that the picker is appropriately
98
87
  * sized and never truncates the text.
99
88
  */
100
89
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,23 +306,8 @@ ion-picker-column-internal {
317
306
  justify-content: space-between;
318
307
  }
319
308
 
320
- :host .calendar-action-buttons ion-item,
321
309
  :host .calendar-action-buttons ion-button {
322
- --background: translucent;
323
- }
324
-
325
- :host .calendar-action-buttons ion-item ion-label {
326
- display: flex;
327
- align-items: center;
328
- }
329
-
330
- :host .calendar-action-buttons ion-item ion-icon {
331
- -webkit-padding-start: 4px;
332
- padding-inline-start: 4px;
333
- -webkit-padding-end: 0;
334
- padding-inline-end: 0;
335
- padding-top: 0;
336
- padding-bottom: 0;
310
+ --background: transparent;
337
311
  }
338
312
 
339
313
  :host .calendar-days-of-week {
@@ -515,8 +489,72 @@ ion-picker-column-internal {
515
489
  position: static;
516
490
  }
517
491
 
518
- :host(.show-month-and-year) .calendar-action-buttons ion-item {
519
- --color: var(--ion-color-base);
492
+ :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
493
+ color: var(--ion-color-base);
494
+ }
495
+
496
+ .calendar-month-year {
497
+ min-width: 0;
498
+ }
499
+
500
+ .calendar-month-year-toggle {
501
+ font-family: inherit;
502
+ font-size: inherit;
503
+ font-style: inherit;
504
+ font-weight: inherit;
505
+ letter-spacing: inherit;
506
+ text-decoration: inherit;
507
+ text-indent: inherit;
508
+ text-overflow: inherit;
509
+ text-transform: inherit;
510
+ text-align: inherit;
511
+ white-space: inherit;
512
+ color: inherit;
513
+ position: relative;
514
+ border: 0;
515
+ outline: none;
516
+ background: transparent;
517
+ cursor: pointer;
518
+ z-index: 1;
519
+ }
520
+ .calendar-month-year-toggle::after {
521
+ left: 0;
522
+ right: 0;
523
+ top: 0;
524
+ bottom: 0;
525
+ position: absolute;
526
+ content: "";
527
+ opacity: 0;
528
+ transition: opacity 15ms linear, background-color 15ms linear;
529
+ z-index: -1;
530
+ }
531
+ .calendar-month-year-toggle.ion-focused::after {
532
+ background: currentColor;
533
+ }
534
+ .calendar-month-year-toggle:disabled {
535
+ opacity: 0.3;
536
+ pointer-events: none;
537
+ }
538
+
539
+ .calendar-month-year-toggle ion-icon {
540
+ -webkit-padding-start: 4px;
541
+ padding-inline-start: 4px;
542
+ -webkit-padding-end: 0;
543
+ padding-inline-end: 0;
544
+ padding-top: 0;
545
+ padding-bottom: 0;
546
+ flex-shrink: 0;
547
+ }
548
+
549
+ .calendar-month-year-toggle #toggle-wrapper {
550
+ display: inline-flex;
551
+ align-items: center;
552
+ }
553
+
554
+ ion-picker {
555
+ --highlight-background: var(--wheel-highlight-background);
556
+ --highlight-border-radius: var(--wheel-highlight-border-radius);
557
+ --fade-background-rgb: var(--wheel-fade-background-rgb);
520
558
  }
521
559
 
522
560
  /**
@@ -600,15 +638,36 @@ ion-picker-column-internal {
600
638
  font-size: 2.125rem;
601
639
  }
602
640
 
603
- :host .datetime-calendar .calendar-action-buttons ion-item {
604
- --padding-start: 20px;
605
- }
606
-
607
- :host .calendar-action-buttons ion-item,
608
641
  :host .calendar-action-buttons ion-button {
609
642
  --color: var(--ion-color-step-650, #595959);
610
643
  }
611
644
 
645
+ .calendar-month-year-toggle {
646
+ -webkit-padding-start: 20px;
647
+ padding-inline-start: 20px;
648
+ -webkit-padding-end: 16px;
649
+ padding-inline-end: 16px;
650
+ padding-top: 12px;
651
+ padding-bottom: 12px;
652
+ min-height: 48px;
653
+ background: transparent;
654
+ color: var(--ion-color-step-650, #595959);
655
+ z-index: 1;
656
+ }
657
+ .calendar-month-year-toggle.ion-focused::after {
658
+ opacity: 0.04;
659
+ }
660
+
661
+ .calendar-month-year-toggle ion-ripple-effect {
662
+ color: currentColor;
663
+ }
664
+
665
+ @media (any-hover: hover) {
666
+ .calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
667
+ background: currentColor;
668
+ opacity: 0.04;
669
+ }
670
+ }
612
671
  :host .calendar-days-of-week {
613
672
  -webkit-padding-start: 10px;
614
673
  padding-inline-start: 10px;
@@ -38,7 +38,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
38
38
  `, config);
39
39
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
40
40
  const datetime = page.locator('ion-datetime');
41
- const monthYearButton = page.locator('.calendar-month-year ion-item');
41
+ const monthYearButton = page.locator('.calendar-month-year-toggle');
42
42
  const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
43
43
  const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
44
44
  await page.keyboard.press(tabKey);
@@ -2,7 +2,6 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { newSpecPage } from "@stencil/core/testing";
5
- import { Item } from "../../../item/item";
6
5
  import { Datetime } from "../../datetime";
7
6
  describe('datetime', () => {
8
7
  beforeEach(() => {
@@ -18,25 +17,23 @@ describe('datetime', () => {
18
17
  let page;
19
18
  beforeEach(async () => {
20
19
  page = await newSpecPage({
21
- components: [Datetime, Item],
20
+ components: [Datetime],
22
21
  html: `<ion-datetime></ion-datetime>`,
23
22
  });
24
23
  });
25
24
  it('should have aria-label "Show year picker" when collapsed', async () => {
26
25
  const datetime = page.body.querySelector('ion-datetime');
27
- const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
28
- const monthYearToggleBtn = item.shadowRoot.querySelector('button');
26
+ const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
29
27
  const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
30
28
  expect(ariaLabel).toContain('Show year picker');
31
29
  });
32
30
  it('should have aria-label "Hide year picker" when expanded', async () => {
33
31
  const datetime = page.body.querySelector('ion-datetime');
34
- const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
35
- item.click();
32
+ const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
33
+ monthYearToggleBtn.click();
36
34
  await page.waitForChanges();
37
- const itemAfter = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
38
- const monthYearToggleBtn = itemAfter.shadowRoot.querySelector('button');
39
- const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
35
+ const monthYearToggleBtnAfter = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
36
+ const ariaLabel = monthYearToggleBtnAfter.getAttribute('aria-label');
40
37
  expect(ariaLabel).toContain('Hide year picker');
41
38
  });
42
39
  });
@@ -372,4 +372,14 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
372
372
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
373
373
  });
374
374
  });
375
+ test.describe(title('datetime: calendar month toggle'), () => {
376
+ test('should have focus styles', async ({ page }) => {
377
+ await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
378
+ const datetime = page.locator('ion-datetime');
379
+ await page.waitForSelector('.datetime-ready');
380
+ const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
381
+ monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
382
+ await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
383
+ });
384
+ });
375
385
  });
@@ -13,7 +13,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
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');
16
- const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
16
+ const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
17
17
  await expect(monthYearToggle).toContainText('January 2022');
18
18
  await monthYearToggle.click();
19
19
  await page.waitForChanges();
@@ -24,7 +24,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
24
24
  });
25
25
  test('should adjust the selected day when moving to a month with a different number of days', async ({ page }) => {
26
26
  const monthYearToggle = page.locator('ion-datetime .calendar-month-year');
27
- const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
27
+ const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
28
28
  const datetime = page.locator('ion-datetime');
29
29
  const ionChange = await page.spyOnEvent('ionChange');
30
30
  await monthYearToggle.click();
@@ -4,8 +4,8 @@
4
4
  import { h } from "@stencil/core";
5
5
  import { newSpecPage } from "@stencil/core/testing";
6
6
  import { Datetime } from "../../../datetime/datetime";
7
- import { PickerColumnInternal } from "../../../picker-column-internal/picker-column-internal";
8
- import { PickerInternal } from "../../../picker-internal/picker-internal";
7
+ import { PickerColumn } from "../../../picker-column/picker-column";
8
+ import { Picker } from "../../../picker/picker";
9
9
  describe('ion-datetime disabled', () => {
10
10
  beforeEach(() => {
11
11
  // IntersectionObserver isn't available in test environment
@@ -19,12 +19,12 @@ describe('ion-datetime disabled', () => {
19
19
  });
20
20
  it('picker should be disabled in prefer wheel mode', async () => {
21
21
  const page = await newSpecPage({
22
- components: [Datetime, PickerColumnInternal, PickerInternal],
22
+ components: [Datetime, PickerColumn, Picker],
23
23
  template: () => (h("ion-datetime", { id: "inline-datetime-wheel", disabled: true, "prefer-wheel": true, value: "2022-04-21T00:00:00" })),
24
24
  });
25
25
  await page.waitForChanges();
26
26
  const datetime = page.body.querySelector('ion-datetime');
27
- const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column-internal');
27
+ const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column');
28
28
  await expect(columns.length).toEqual(4);
29
29
  columns.forEach((column) => {
30
30
  expect(column.disabled).toBe(true);
@@ -85,10 +85,10 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
85
85
  });
86
86
  test('should correctly localize year column data', async ({ page }) => {
87
87
  await page.setContent(`
88
- <ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01"></ion-datetime>
88
+ <ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01" max="2022" min="2022"></ion-datetime>
89
89
  `, config);
90
90
  await page.waitForSelector('.datetime-ready');
91
- const datetimeYear = page.locator('ion-datetime .year-column .picker-item[data-value="2022"]');
91
+ const datetimeYear = page.locator('ion-datetime .year-column ion-picker-column-option').nth(0);
92
92
  await expect(datetimeYear).toHaveText('٢٠٢٢');
93
93
  });
94
94
  });
@@ -81,8 +81,8 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
81
81
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
82
82
  await page.click('.time-body');
83
83
  await ionPopoverDidPresent.next();
84
- const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
85
- const minutes = page.locator('ion-popover ion-picker-column-internal:nth-child(2) .picker-item:not(.picker-item-empty)');
84
+ const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
85
+ const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) ion-picker-column-option');
86
86
  expect(await hours.count()).toBe(12);
87
87
  expect(await minutes.count()).toBe(60);
88
88
  });
@@ -159,7 +159,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
159
159
  value="2022-04-25T08:30:00"
160
160
  ></ion-datetime>
161
161
  `, config);
162
- const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
162
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type ion-picker-column-option');
163
163
  await expect(hourPickerItems).toHaveText(['8', '9', '10', '11']);
164
164
  });
165
165
  test('should include 12PM when minimum is greater than 12', async ({ page }) => {
@@ -175,7 +175,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
175
175
  value="2022-07-29T12:00:00"
176
176
  ></ion-datetime>
177
177
  `, config);
178
- const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
178
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type ion-picker-column-option');
179
179
  await expect(hourPickerItems).toHaveText(['12', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']);
180
180
  });
181
181
  test.describe('minmax value adjustment when out of bounds', () => {
@@ -218,7 +218,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
218
218
  ></ion-datetime>
219
219
  `, config);
220
220
  const datetime = page.locator('ion-datetime');
221
- const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
221
+ const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
222
222
  const ionChange = await page.spyOnEvent('ionChange');
223
223
  await page.waitForSelector('.datetime-ready');
224
224
  await monthColumnItems.nth(0).click(); // switch to January
@@ -258,7 +258,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
258
258
  const timeButton = page.locator('ion-datetime .time-body');
259
259
  await timeButton.click();
260
260
  await ionPopoverDidPresent.next();
261
- const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
261
+ const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
262
262
  await expect(await hours.count()).toBe(4);
263
263
  });
264
264
  });
@@ -16,7 +16,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
16
16
  test('should hide the footer when picker is open', async ({ page }) => {
17
17
  const datetimeFooter = page.locator('#date-time .datetime-footer');
18
18
  await expect(datetimeFooter).toBeVisible();
19
- const pickerButton = page.locator('#date-time .calendar-month-year > ion-item');
19
+ const pickerButton = page.locator('#date-time .calendar-month-year > .calendar-month-year-toggle');
20
20
  await pickerButton.click();
21
21
  await page.waitForChanges();
22
22
  await expect(datetimeFooter).not.toBeVisible();