@ionic/core 7.5.7-dev.11701270755.14f050ad → 7.5.7-dev.11701274462.156e6f06

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 (512) hide show
  1. package/components/animation.js +12 -11
  2. package/components/backdrop.js +12 -0
  3. package/components/checkbox.js +2 -0
  4. package/components/data.js +1 -1
  5. package/components/gesture-controller.js +1 -1
  6. package/components/index4.js +10 -12
  7. package/components/index5.js +0 -22
  8. package/components/input-shims.js +12 -7
  9. package/components/input.utils.js +3 -2
  10. package/components/ion-content.js +1 -1
  11. package/components/ion-datetime.js +61 -28
  12. package/components/ion-input.js +31 -8
  13. package/components/ion-modal.js +2 -2
  14. package/components/ion-picker-column-internal.d.ts +11 -0
  15. package/components/ion-picker-column-internal.js +9 -0
  16. package/components/ion-picker-column.js +2 -2
  17. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  18. package/components/ion-picker-internal.js +9 -0
  19. package/components/ion-picker.js +299 -1
  20. package/components/ion-range.js +2 -0
  21. package/components/ion-select.js +44 -29
  22. package/components/ion-skeleton-text.js +14 -1
  23. package/components/ion-textarea.js +30 -7
  24. package/components/ion-toast.js +419 -74
  25. package/components/ion-toggle.js +2 -0
  26. package/components/item.js +2 -2
  27. package/components/label.js +2 -2
  28. package/components/overlays.js +6 -12
  29. package/components/picker-column-internal.js +390 -0
  30. package/components/picker-column.js +320 -331
  31. package/components/{picker.js → picker-internal.js} +16 -16
  32. package/components/radio-group.js +2 -0
  33. package/components/radio.js +42 -2
  34. package/dist/cjs/{animation-1083855c.js → animation-d101aa7a.js} +13 -12
  35. package/dist/cjs/{button-active-cd07b55b.js → button-active-ba107e4e.js} +2 -2
  36. package/dist/cjs/{capacitor-2ffba62a.js → capacitor-f68447d3.js} +1 -1
  37. package/dist/cjs/compare-with-utils-c0444525.js +44 -0
  38. package/dist/cjs/{data-4845b494.js → data-c8d21093.js} +1 -1
  39. package/dist/cjs/{gesture-controller-d6a3f907.js → gesture-controller-b46721be.js} +0 -1
  40. package/dist/cjs/{haptic-678abc9f.js → haptic-a74c2767.js} +1 -1
  41. package/dist/cjs/{index-0f8b33f8.js → index-0ee995e4.js} +1 -1
  42. package/dist/cjs/{index-d7561763.js → index-4f0c67e1.js} +11 -13
  43. package/dist/cjs/{index-573877f3.js → index-56d41f51.js} +2 -2
  44. package/dist/cjs/index-c8d52405.js +10 -0
  45. package/dist/cjs/{index-9f379eaa.js → index-e9634bc9.js} +1 -1
  46. package/dist/cjs/index.cjs.js +10 -10
  47. package/dist/cjs/{input-shims-b0a75a01.js → input-shims-3e3f35b9.js} +15 -10
  48. package/dist/cjs/{input.utils-0fe3097c.js → input.utils-bdb6953c.js} +4 -3
  49. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  50. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  51. package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
  52. package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
  53. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -0
  54. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-datetime_3.cjs.entry.js +43 -30
  56. package/dist/cjs/ion-input.cjs.entry.js +34 -11
  57. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-item_8.cjs.entry.js +17 -4
  59. package/dist/cjs/ion-loading.cjs.entry.js +3 -4
  60. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  61. package/dist/cjs/ion-modal.cjs.entry.js +10 -10
  62. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  63. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +12 -12
  64. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
  65. package/dist/cjs/ion-popover.cjs.entry.js +4 -5
  66. package/dist/cjs/ion-radio_2.cjs.entry.js +6 -1
  67. package/dist/cjs/ion-range.cjs.entry.js +3 -1
  68. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  69. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  70. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  71. package/dist/cjs/ion-select_3.cjs.entry.js +51 -36
  72. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  73. package/dist/cjs/ion-textarea.cjs.entry.js +33 -10
  74. package/dist/cjs/ion-toast.cjs.entry.js +434 -93
  75. package/dist/cjs/ion-toggle.cjs.entry.js +6 -4
  76. package/dist/cjs/ionic.cjs.js +1 -1
  77. package/dist/cjs/{ios.transition-ac909bc8.js → ios.transition-f4caf640.js} +3 -3
  78. package/dist/cjs/{keyboard-fd7db491.js → keyboard-43df0428.js} +1 -1
  79. package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-840107b3.js} +3 -3
  80. package/dist/cjs/{keyboard-controller-50beb83a.js → keyboard-controller-019f42df.js} +2 -2
  81. package/dist/cjs/loader.cjs.js +1 -1
  82. package/dist/cjs/{md.transition-907af519.js → md.transition-33331e93.js} +3 -3
  83. package/dist/cjs/{notch-controller-f4f6af5d.js → notch-controller-c22d1344.js} +1 -1
  84. package/dist/cjs/{overlays-dbb71984.js → overlays-4d8897dc.js} +7 -12
  85. package/dist/cjs/{swipe-back-a6dc6e5d.js → swipe-back-d0412fb6.js} +2 -2
  86. package/dist/collection/collection-manifest.json +6 -7
  87. package/dist/collection/components/backdrop/backdrop.js +12 -0
  88. package/dist/collection/components/checkbox/checkbox.js +2 -0
  89. package/dist/collection/components/content/content.css +4 -0
  90. package/dist/collection/components/datetime/datetime.ios.css +26 -84
  91. package/dist/collection/components/datetime/datetime.js +29 -14
  92. package/dist/collection/components/datetime/datetime.md.css +26 -89
  93. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  94. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  95. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  96. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  97. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +5 -5
  98. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  99. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +2 -2
  100. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  101. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  102. package/dist/collection/components/datetime/test/values/datetime.e2e.js +5 -5
  103. package/dist/collection/components/datetime/utils/data.js +1 -1
  104. package/dist/collection/components/input/input.ios.css +10 -3
  105. package/dist/collection/components/input/input.js +31 -6
  106. package/dist/collection/components/input/input.md.css +13 -12
  107. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  108. package/dist/collection/components/item/item.ios.css +26 -3
  109. package/dist/collection/components/item/item.md.css +26 -3
  110. package/dist/collection/components/item/test/basic/item.e2e.js +1 -1
  111. package/dist/collection/components/item/test/disabled/item.e2e.js +0 -1
  112. package/dist/collection/components/label/label.ios.css +14 -3
  113. package/dist/collection/components/label/label.md.css +14 -3
  114. package/dist/collection/components/modal/gestures/swipe-to-close.js +2 -1
  115. package/dist/collection/components/note/test/a11y/note.e2e.js +43 -0
  116. package/dist/collection/components/picker/picker.ios.css +205 -100
  117. package/dist/collection/components/picker/picker.js +735 -463
  118. package/dist/collection/components/picker/picker.md.css +194 -98
  119. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -106
  120. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  121. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  122. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  123. package/dist/collection/components/picker-column/picker-column.ios.css +176 -59
  124. package/dist/collection/components/picker-column/picker-column.js +333 -478
  125. package/dist/collection/components/picker-column/picker-column.md.css +113 -63
  126. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  127. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  128. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  129. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  130. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +138 -0
  131. package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
  132. package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
  133. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +7 -7
  134. package/dist/collection/components/{picker-column/test/disabled/picker-column.e2e.js → picker-column-internal/test/disabled/picker-column-internal.e2e.js} +39 -39
  135. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  136. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  137. package/dist/collection/components/{picker-legacy-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
  138. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  139. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  140. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +20 -20
  141. package/dist/collection/components/radio/radio.js +5 -2
  142. package/dist/collection/components/radio-group/radio-group.js +24 -0
  143. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  144. package/dist/collection/components/range/range.js +2 -0
  145. package/dist/collection/components/select/select.ios.css +61 -7
  146. package/dist/collection/components/select/select.js +45 -28
  147. package/dist/collection/components/select/select.md.css +64 -19
  148. package/dist/collection/components/select/test/item/select.e2e.js +13 -0
  149. package/dist/collection/components/select/test/label/select.e2e.js +1 -1
  150. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  151. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  152. package/dist/collection/components/skeleton-text/skeleton-text.js +39 -0
  153. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  154. package/dist/collection/components/textarea/textarea.ios.css +37 -5
  155. package/dist/collection/components/textarea/textarea.js +30 -5
  156. package/dist/collection/components/textarea/textarea.md.css +47 -14
  157. package/dist/collection/components/toast/animations/ios.enter.js +2 -1
  158. package/dist/collection/components/toast/animations/md.enter.js +4 -3
  159. package/dist/collection/components/toast/animations/utils.js +20 -14
  160. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  161. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  162. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  163. package/dist/collection/components/toast/test/toast.spec.js +80 -0
  164. package/dist/collection/components/toast/toast.ios.css +10 -10
  165. package/dist/collection/components/toast/toast.js +104 -1
  166. package/dist/collection/components/toast/toast.md.css +10 -0
  167. package/dist/collection/components/toggle/toggle.js +2 -0
  168. package/dist/collection/utils/animation/animation.js +12 -11
  169. package/dist/collection/utils/animation/test/animation.spec.js +16 -0
  170. package/dist/collection/utils/browser/index.js +0 -22
  171. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  172. package/dist/collection/utils/forms/index.js +1 -0
  173. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  174. package/dist/collection/utils/input-shims/input-shims.js +12 -6
  175. package/dist/collection/utils/menu-controller/index.js +10 -12
  176. package/dist/collection/utils/overlays.js +5 -11
  177. package/dist/collection/utils/slot-mutation-controller.js +3 -2
  178. package/dist/docs.json +166 -385
  179. package/dist/esm/{animation-8aa13916.js → animation-cf3dd234.js} +13 -12
  180. package/dist/esm/{button-active-5b0516e7.js → button-active-47196c40.js} +2 -2
  181. package/dist/esm/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
  182. package/dist/esm/compare-with-utils-4928c09d.js +41 -0
  183. package/dist/esm/{data-12e24f00.js → data-44d9e816.js} +1 -1
  184. package/dist/esm/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  185. package/dist/esm/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
  186. package/dist/esm/{index-0aa6e61f.js → index-23c05a55.js} +11 -13
  187. package/dist/esm/{index-6a0ccabb.js → index-702b3cd3.js} +2 -2
  188. package/dist/esm/index-a5d50daf.js +7 -0
  189. package/dist/esm/{index-f0cc4e14.js → index-c9e82353.js} +1 -1
  190. package/dist/esm/{index-32cbee52.js → index-ff313b19.js} +2 -2
  191. package/dist/esm/index.js +10 -10
  192. package/dist/esm/{input-shims-d0c93e5d.js → input-shims-1d767845.js} +14 -9
  193. package/dist/esm/{input.utils-ec063df4.js → input.utils-2cf5e372.js} +4 -3
  194. package/dist/esm/ion-action-sheet.entry.js +8 -8
  195. package/dist/esm/ion-alert.entry.js +8 -8
  196. package/dist/esm/ion-app_8.entry.js +10 -10
  197. package/dist/esm/ion-backdrop.entry.js +12 -0
  198. package/dist/esm/ion-checkbox.entry.js +2 -0
  199. package/dist/esm/ion-datetime-button.entry.js +1 -1
  200. package/dist/esm/ion-datetime_3.entry.js +42 -29
  201. package/dist/esm/ion-input.entry.js +34 -11
  202. package/dist/esm/ion-item-option_3.entry.js +1 -1
  203. package/dist/esm/ion-item_8.entry.js +17 -4
  204. package/dist/esm/ion-loading.entry.js +3 -4
  205. package/dist/esm/ion-menu_3.entry.js +7 -7
  206. package/dist/esm/ion-modal.entry.js +10 -10
  207. package/dist/esm/ion-nav_2.entry.js +2 -2
  208. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +12 -12
  209. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
  210. package/dist/esm/ion-popover.entry.js +4 -5
  211. package/dist/esm/ion-radio_2.entry.js +6 -1
  212. package/dist/esm/ion-range.entry.js +3 -1
  213. package/dist/esm/ion-refresher_2.entry.js +7 -7
  214. package/dist/esm/ion-reorder_2.entry.js +4 -4
  215. package/dist/esm/ion-segment_2.entry.js +1 -1
  216. package/dist/esm/ion-select_3.entry.js +47 -32
  217. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  218. package/dist/esm/ion-textarea.entry.js +33 -10
  219. package/dist/esm/ion-toast.entry.js +417 -76
  220. package/dist/esm/ion-toggle.entry.js +6 -4
  221. package/dist/esm/ionic.js +1 -1
  222. package/dist/esm/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +3 -3
  223. package/dist/esm/{keyboard-b551279d.js → keyboard-9f771a04.js} +3 -3
  224. package/dist/esm/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
  225. package/dist/esm/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +2 -2
  226. package/dist/esm/loader.js +1 -1
  227. package/dist/esm/{md.transition-66f18369.js → md.transition-1173eca9.js} +3 -3
  228. package/dist/esm/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
  229. package/dist/esm/{overlays-789cd7a7.js → overlays-34169295.js} +7 -13
  230. package/dist/esm/{swipe-back-cc4c2bcb.js → swipe-back-0f3bfc8e.js} +2 -2
  231. package/dist/esm-es5/{animation-8aa13916.js → animation-cf3dd234.js} +1 -1
  232. package/dist/esm-es5/{button-active-5b0516e7.js → button-active-47196c40.js} +1 -1
  233. package/dist/esm-es5/{capacitor-b4979570.js → capacitor-f1f25364.js} +1 -1
  234. package/dist/esm-es5/compare-with-utils-4928c09d.js +4 -0
  235. package/dist/esm-es5/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  236. package/dist/esm-es5/{haptic-1243b917.js → haptic-1a66d69f.js} +1 -1
  237. package/dist/esm-es5/index-23c05a55.js +4 -0
  238. package/dist/esm-es5/{index-6a0ccabb.js → index-702b3cd3.js} +1 -1
  239. package/dist/esm-es5/index-c9e82353.js +4 -0
  240. package/dist/esm-es5/{index-32cbee52.js → index-ff313b19.js} +1 -1
  241. package/dist/esm-es5/index.js +1 -1
  242. package/dist/esm-es5/input-shims-1d767845.js +4 -0
  243. package/dist/esm-es5/input.utils-2cf5e372.js +4 -0
  244. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  245. package/dist/esm-es5/ion-alert.entry.js +1 -1
  246. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  247. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  248. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  249. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  250. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  251. package/dist/esm-es5/ion-input.entry.js +1 -1
  252. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  253. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  254. package/dist/esm-es5/ion-loading.entry.js +1 -1
  255. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  256. package/dist/esm-es5/ion-modal.entry.js +1 -1
  257. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  258. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  259. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  260. package/dist/esm-es5/ion-popover.entry.js +1 -1
  261. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  262. package/dist/esm-es5/ion-range.entry.js +1 -1
  263. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  264. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  265. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  266. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  267. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  268. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  269. package/dist/esm-es5/ion-toast.entry.js +1 -1
  270. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  271. package/dist/esm-es5/ionic.js +1 -1
  272. package/dist/esm-es5/{ios.transition-1651c430.js → ios.transition-c3e77862.js} +1 -1
  273. package/dist/esm-es5/{keyboard-b551279d.js → keyboard-9f771a04.js} +1 -1
  274. package/dist/esm-es5/{keyboard-b063f012.js → keyboard-b6230bfb.js} +1 -1
  275. package/dist/esm-es5/{keyboard-controller-0c2dce71.js → keyboard-controller-3f0faa10.js} +1 -1
  276. package/dist/esm-es5/loader.js +1 -1
  277. package/dist/esm-es5/md.transition-1173eca9.js +4 -0
  278. package/dist/esm-es5/{notch-controller-8c9c0e54.js → notch-controller-3f79197e.js} +1 -1
  279. package/dist/esm-es5/overlays-34169295.js +4 -0
  280. package/dist/esm-es5/swipe-back-0f3bfc8e.js +4 -0
  281. package/dist/html.html-data.json +15 -120
  282. package/dist/ionic/index.esm.js +1 -1
  283. package/dist/ionic/ionic.esm.js +1 -1
  284. package/dist/ionic/{p-02d8fdba.system.entry.js → p-03ed6107.system.entry.js} +1 -1
  285. package/dist/ionic/p-0547e914.entry.js +4 -0
  286. package/dist/ionic/{p-81c818e7.js → p-11cb4e19.js} +1 -1
  287. package/dist/ionic/p-131761b4.entry.js +4 -0
  288. package/dist/ionic/p-196f2123.system.entry.js +4 -0
  289. package/dist/ionic/{p-64ed03a3.entry.js → p-1abc74d9.entry.js} +1 -1
  290. package/dist/ionic/p-1cf5e8d6.entry.js +4 -0
  291. package/dist/ionic/{p-c4042875.system.js → p-21b4981c.system.js} +1 -1
  292. package/dist/ionic/p-2207f3c2.js +4 -0
  293. package/dist/ionic/p-27eb8a91.system.entry.js +4 -0
  294. package/dist/ionic/p-2a41d4d1.js +4 -0
  295. package/dist/ionic/p-31189dae.entry.js +4 -0
  296. package/dist/ionic/p-314c4dee.js +4 -0
  297. package/dist/ionic/{p-4f3e2767.system.entry.js → p-37c69d34.system.entry.js} +1 -1
  298. package/dist/ionic/p-385c51f8.system.entry.js +4 -0
  299. package/dist/ionic/{p-477a182e.entry.js → p-3abf5b7a.entry.js} +1 -1
  300. package/dist/ionic/p-3bc3d880.system.js +4 -0
  301. package/dist/ionic/{p-56224549.entry.js → p-3de79805.entry.js} +1 -1
  302. package/dist/ionic/{p-9e6bf9ed.entry.js → p-3e655d4c.entry.js} +1 -1
  303. package/dist/ionic/p-40903d34.system.js +1 -1
  304. package/dist/ionic/p-43716898.js +4 -0
  305. package/dist/ionic/p-450a26bf.js +4 -0
  306. package/dist/ionic/p-485668f0.entry.js +4 -0
  307. package/dist/ionic/p-48c59094.system.entry.js +4 -0
  308. package/dist/ionic/p-494e75ad.js +4 -0
  309. package/dist/ionic/{p-cb62e3fc.system.entry.js → p-4c80afe1.system.entry.js} +1 -1
  310. package/dist/ionic/{p-0e23256e.system.entry.js → p-54824705.system.entry.js} +1 -1
  311. package/dist/ionic/p-561cc050.system.js +4 -0
  312. package/dist/ionic/{p-4a142496.system.entry.js → p-587afb80.system.entry.js} +1 -1
  313. package/dist/ionic/{p-8cf94fc1.js → p-5885e9af.js} +1 -1
  314. package/dist/ionic/p-5bd4e009.entry.js +4 -0
  315. package/dist/ionic/{p-b3e79338.system.entry.js → p-5e6bc319.system.entry.js} +1 -1
  316. package/dist/ionic/{p-939d903b.entry.js → p-64ab3eb3.entry.js} +1 -1
  317. package/dist/ionic/p-671dbd61.js +4 -0
  318. package/dist/ionic/{p-702d85d8.system.js → p-67951604.system.js} +1 -1
  319. package/dist/ionic/{p-835e0346.entry.js → p-6797887a.entry.js} +1 -1
  320. package/dist/ionic/p-693cabd5.entry.js +4 -0
  321. package/dist/ionic/{p-b923f3d7.js → p-6a309574.js} +1 -1
  322. package/dist/ionic/{p-a4cda7a8.system.entry.js → p-6e23777e.system.entry.js} +1 -1
  323. package/dist/ionic/{p-06e6d235.system.entry.js → p-7047a40c.system.entry.js} +2 -2
  324. package/dist/ionic/p-70dcf429.js +4 -0
  325. package/dist/ionic/p-710cea83.system.js +4 -0
  326. package/dist/ionic/p-7b44e419.js +4 -0
  327. package/dist/ionic/p-80a9b397.entry.js +4 -0
  328. package/dist/ionic/{p-9b5301cc.system.entry.js → p-823890d5.system.entry.js} +1 -1
  329. package/dist/ionic/{p-a57f223c.system.js → p-83a455fd.system.js} +1 -1
  330. package/dist/ionic/{p-baa7cb1e.entry.js → p-8ad82eb3.entry.js} +1 -1
  331. package/dist/ionic/{p-c1229981.entry.js → p-8b15ca22.entry.js} +1 -1
  332. package/dist/ionic/{p-a7e2ac5c.js → p-8b1be026.js} +1 -1
  333. package/dist/ionic/p-8dbdb163.system.js +4 -0
  334. package/dist/ionic/p-8ddfecbf.entry.js +4 -0
  335. package/dist/ionic/{p-b4b4bb29.system.js → p-9292fd42.system.js} +1 -1
  336. package/dist/ionic/{p-41477ad9.system.js → p-958f1c70.system.js} +1 -1
  337. package/dist/ionic/{p-5ce11143.entry.js → p-965677f1.entry.js} +1 -1
  338. package/dist/ionic/p-98712253.system.entry.js +4 -0
  339. package/dist/ionic/p-9c6787e2.entry.js +4 -0
  340. package/dist/ionic/{p-6500b298.system.js → p-9e852ff1.system.js} +1 -1
  341. package/dist/ionic/p-a11c1aff.system.entry.js +4 -0
  342. package/dist/ionic/{p-419eb426.js → p-a135e3ba.js} +1 -1
  343. package/dist/ionic/p-a31099a4.entry.js +4 -0
  344. package/dist/ionic/p-a6bc00ab.entry.js +4 -0
  345. package/dist/ionic/p-a9c3699b.system.entry.js +4 -0
  346. package/dist/ionic/p-ad4b4f73.system.entry.js +4 -0
  347. package/dist/ionic/{p-ab4cff27.system.js → p-aec8a70a.system.js} +1 -1
  348. package/dist/ionic/p-b673ee9b.entry.js +4 -0
  349. package/dist/ionic/p-be0f6600.system.js +4 -0
  350. package/dist/ionic/p-beb64be7.system.entry.js +4 -0
  351. package/dist/ionic/{p-dd837fa8.entry.js → p-c1e725db.entry.js} +1 -1
  352. package/dist/ionic/p-c2db1374.system.js +4 -0
  353. package/dist/ionic/p-c3547c7a.system.js +4 -0
  354. package/dist/ionic/{p-c7fd81ba.system.js → p-c4de53af.system.js} +1 -1
  355. package/dist/ionic/p-c700acef.system.js +4 -0
  356. package/dist/ionic/p-c919498d.entry.js +4 -0
  357. package/dist/ionic/{p-3f88eab8.system.entry.js → p-cc615985.system.entry.js} +1 -1
  358. package/dist/ionic/p-d48872b1.system.js +4 -0
  359. package/dist/ionic/p-d4fba36b.system.entry.js +4 -0
  360. package/dist/ionic/{p-22813b28.system.entry.js → p-d61a2cee.system.entry.js} +1 -1
  361. package/dist/ionic/{p-c31fc05f.system.entry.js → p-db5043df.system.entry.js} +1 -1
  362. package/dist/ionic/{p-100ef961.js → p-e0b06b65.js} +1 -1
  363. package/dist/ionic/p-e5b8f2f7.js +4 -0
  364. package/dist/ionic/{p-3bad5c1a.js → p-e5fd9f10.js} +1 -1
  365. package/dist/ionic/{p-302091ab.js → p-e627ed84.js} +1 -1
  366. package/dist/ionic/{p-ccdcb022.system.js → p-e7d20dfb.system.js} +1 -1
  367. package/dist/ionic/{p-14b4348c.system.js → p-e9e5755c.system.js} +1 -1
  368. package/dist/ionic/p-ea9addc8.system.entry.js +4 -0
  369. package/dist/ionic/p-f36112b4.entry.js +4 -0
  370. package/dist/ionic/p-f43f4102.entry.js +4 -0
  371. package/dist/ionic/p-f5d78105.entry.js +4 -0
  372. package/dist/ionic/p-f7769c83.js +4 -0
  373. package/dist/ionic/{p-bba2ce59.system.js → p-f9a641fa.system.js} +1 -1
  374. package/dist/ionic/{p-2e1794df.system.js → p-fa8d4788.system.js} +1 -1
  375. package/dist/ionic/p-fcb148dc.system.entry.js +4 -0
  376. package/dist/ionic/p-fcc23f25.system.entry.js +4 -0
  377. package/dist/ionic/{p-878c7aa5.system.entry.js → p-fce6b76a.system.entry.js} +1 -1
  378. package/dist/ionic/p-fdcf04c3.system.entry.js +4 -0
  379. package/dist/ionic/{p-a0b6d438.js → p-fe1f93f2.js} +1 -1
  380. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  381. package/dist/types/components/datetime/datetime.d.ts +1 -0
  382. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  383. package/dist/types/components/input/input.d.ts +2 -0
  384. package/dist/types/components/menu/menu.d.ts +1 -1
  385. package/dist/types/components/picker/picker.d.ts +131 -74
  386. package/dist/types/components/picker-column/picker-column.d.ts +39 -94
  387. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  388. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  389. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  390. package/dist/types/components/radio-group/radio-group-interface.d.ts +1 -0
  391. package/dist/types/components/radio-group/radio-group.d.ts +8 -1
  392. package/dist/types/components/router/router.d.ts +2 -1
  393. package/dist/types/components/select/select.d.ts +6 -1
  394. package/dist/types/components/skeleton-text/skeleton-text.d.ts +9 -1
  395. package/dist/types/components/textarea/textarea.d.ts +2 -0
  396. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  397. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  398. package/dist/types/components/toast/toast-interface.d.ts +2 -0
  399. package/dist/types/components/toast/toast.d.ts +28 -1
  400. package/dist/types/components.d.ts +159 -157
  401. package/dist/types/interface.d.ts +2 -6
  402. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  403. package/dist/types/utils/browser/index.d.ts +11 -2
  404. package/dist/types/utils/config.d.ts +2 -2
  405. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  406. package/dist/types/utils/forms/index.d.ts +1 -0
  407. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  408. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  409. package/dist/types/utils/overlays.d.ts +3 -5
  410. package/dist/types/utils/slot-mutation-controller.d.ts +2 -2
  411. package/hydrate/index.js +2003 -1567
  412. package/package.json +1 -1
  413. package/components/ion-picker-column-option.d.ts +0 -11
  414. package/components/ion-picker-column-option.js +0 -52
  415. package/components/ion-picker-legacy-column.d.ts +0 -11
  416. package/components/ion-picker-legacy-column.js +0 -9
  417. package/components/ion-picker-legacy.js +0 -309
  418. package/components/picker-column2.js +0 -379
  419. package/dist/cjs/index-306a7476.js +0 -32
  420. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -35
  421. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  422. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -68
  423. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  424. package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
  425. package/dist/collection/components/picker-legacy/picker.js +0 -817
  426. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  427. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  428. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  429. package/dist/esm/index-7a14ecec.js +0 -29
  430. package/dist/esm/ion-picker-column-option.entry.js +0 -31
  431. package/dist/esm-es5/index-0aa6e61f.js +0 -4
  432. package/dist/esm-es5/index-f0cc4e14.js +0 -4
  433. package/dist/esm-es5/input-shims-d0c93e5d.js +0 -4
  434. package/dist/esm-es5/input.utils-ec063df4.js +0 -4
  435. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  436. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  437. package/dist/esm-es5/ion-picker.entry.js +0 -4
  438. package/dist/esm-es5/md.transition-66f18369.js +0 -4
  439. package/dist/esm-es5/overlays-789cd7a7.js +0 -4
  440. package/dist/esm-es5/swipe-back-cc4c2bcb.js +0 -4
  441. package/dist/ionic/p-0c244faf.entry.js +0 -4
  442. package/dist/ionic/p-20cf4994.js +0 -4
  443. package/dist/ionic/p-234b9617.system.entry.js +0 -4
  444. package/dist/ionic/p-25c34422.system.entry.js +0 -4
  445. package/dist/ionic/p-276afddd.js +0 -4
  446. package/dist/ionic/p-2804781b.entry.js +0 -4
  447. package/dist/ionic/p-2ad38423.system.entry.js +0 -4
  448. package/dist/ionic/p-2ba9414e.entry.js +0 -4
  449. package/dist/ionic/p-2e8e0045.js +0 -4
  450. package/dist/ionic/p-332f64af.system.entry.js +0 -4
  451. package/dist/ionic/p-352c0232.system.entry.js +0 -4
  452. package/dist/ionic/p-3602001b.system.js +0 -4
  453. package/dist/ionic/p-3632220b.system.js +0 -4
  454. package/dist/ionic/p-39074595.entry.js +0 -4
  455. package/dist/ionic/p-439e20ef.entry.js +0 -4
  456. package/dist/ionic/p-4cd588b3.system.entry.js +0 -4
  457. package/dist/ionic/p-67aab78f.js +0 -4
  458. package/dist/ionic/p-67eecef4.system.js +0 -4
  459. package/dist/ionic/p-6893f6e4.entry.js +0 -4
  460. package/dist/ionic/p-77e7a9c8.entry.js +0 -4
  461. package/dist/ionic/p-7c66a566.system.entry.js +0 -4
  462. package/dist/ionic/p-8b4ab236.entry.js +0 -4
  463. package/dist/ionic/p-9403b297.system.entry.js +0 -4
  464. package/dist/ionic/p-966cf574.system.entry.js +0 -4
  465. package/dist/ionic/p-97c65aa5.js +0 -4
  466. package/dist/ionic/p-992d3bad.entry.js +0 -4
  467. package/dist/ionic/p-9ab6f3e6.system.js +0 -4
  468. package/dist/ionic/p-9b89cbde.js +0 -4
  469. package/dist/ionic/p-9c967a65.system.entry.js +0 -4
  470. package/dist/ionic/p-a21b8d05.entry.js +0 -4
  471. package/dist/ionic/p-b0cee324.entry.js +0 -4
  472. package/dist/ionic/p-b1142133.entry.js +0 -4
  473. package/dist/ionic/p-b4cbb736.js +0 -4
  474. package/dist/ionic/p-b6a8588f.entry.js +0 -4
  475. package/dist/ionic/p-b6f8ee31.entry.js +0 -4
  476. package/dist/ionic/p-ba70d455.entry.js +0 -4
  477. package/dist/ionic/p-bd7a3269.entry.js +0 -4
  478. package/dist/ionic/p-c32bf078.system.entry.js +0 -4
  479. package/dist/ionic/p-cc196b34.js +0 -4
  480. package/dist/ionic/p-d1de1188.js +0 -4
  481. package/dist/ionic/p-d21bfe66.system.entry.js +0 -4
  482. package/dist/ionic/p-d3952bd5.system.entry.js +0 -4
  483. package/dist/ionic/p-dc565ca3.js +0 -4
  484. package/dist/ionic/p-dfa756ed.system.js +0 -4
  485. package/dist/ionic/p-e88ed07f.system.js +0 -4
  486. package/dist/ionic/p-eb07ec1a.system.entry.js +0 -4
  487. package/dist/ionic/p-eb5697b5.system.js +0 -4
  488. package/dist/ionic/p-ee800093.entry.js +0 -4
  489. package/dist/ionic/p-f0559c5d.system.entry.js +0 -4
  490. package/dist/ionic/p-fdd22426.entry.js +0 -4
  491. package/dist/ionic/p-ff5a10f9.system.js +0 -4
  492. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  493. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -16
  494. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  495. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  496. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  497. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  498. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  499. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  500. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  501. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  502. /package/dist/esm-es5/{data-12e24f00.js → data-44d9e816.js} +0 -0
  503. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  504. /package/dist/ionic/{p-bb849ebb.js → p-17240d90.js} +0 -0
  505. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  506. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  507. /package/dist/ionic/{p-e4219e27.system.js → p-b8c3f071.system.js} +0 -0
  508. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  509. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  510. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  511. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
  512. /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
@@ -24,8 +24,8 @@
24
24
  "components/col/col.js",
25
25
  "components/content/content.js",
26
26
  "components/datetime/datetime.js",
27
- "components/picker-column/picker-column.js",
28
- "components/picker/picker.js",
27
+ "components/picker-column-internal/picker-column-internal.js",
28
+ "components/picker-internal/picker-internal.js",
29
29
  "components/datetime-button/datetime-button.js",
30
30
  "components/fab/fab.js",
31
31
  "components/fab-button/fab-button.js",
@@ -55,9 +55,8 @@
55
55
  "components/nav/nav.js",
56
56
  "components/nav-link/nav-link.js",
57
57
  "components/note/note.js",
58
- "components/picker-column-option/picker-column-option.js",
59
- "components/picker-legacy/picker.js",
60
- "components/picker-legacy-column/picker-column.js",
58
+ "components/picker/picker.js",
59
+ "components/picker-column/picker-column.js",
61
60
  "components/popover/popover.js",
62
61
  "components/progress-bar/progress-bar.js",
63
62
  "components/range/range.js",
@@ -288,8 +287,8 @@
288
287
  {
289
288
  "components": [
290
289
  "ion-datetime",
291
- "ion-picker-legacy",
292
- "ion-picker-legacy-column"
290
+ "ion-picker",
291
+ "ion-picker-column"
293
292
  ]
294
293
  },
295
294
  {
@@ -2,13 +2,25 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
5
6
  import { getIonMode } from "../../global/ionic-global";
6
7
  export class Backdrop {
7
8
  constructor() {
9
+ this.blocker = GESTURE_CONTROLLER.createBlocker({
10
+ disableScroll: true,
11
+ });
8
12
  this.visible = true;
9
13
  this.tappable = true;
10
14
  this.stopPropagation = true;
11
15
  }
16
+ connectedCallback() {
17
+ if (this.stopPropagation) {
18
+ this.blocker.block();
19
+ }
20
+ }
21
+ disconnectedCallback() {
22
+ this.blocker.unblock();
23
+ }
12
24
  onMouseDown(ev) {
13
25
  this.emitTap(ev);
14
26
  }
@@ -80,6 +80,8 @@ export class Checkbox {
80
80
  emitStyle() {
81
81
  const style = {
82
82
  'interactive-disabled': this.disabled,
83
+ // TODO(FW-3100): remove this
84
+ legacy: !!this.legacy,
83
85
  };
84
86
  // TODO(FW-3100): remove this
85
87
  if (this.legacyFormController.hasLegacyControl()) {
@@ -97,6 +97,10 @@
97
97
  color: var(--ion-color-contrast);
98
98
  }
99
99
 
100
+ :host(.outer-content) {
101
+ --background: var(--ion-color-step-50, #f2f2f2);
102
+ }
103
+
100
104
  #background-content {
101
105
  left: 0px;
102
106
  right: 0px;
@@ -80,7 +80,7 @@
80
80
  * widest item in the column. Setting a minimum
81
81
  * width avoids this layout shifting.
82
82
  */
83
- ion-picker-column {
83
+ ion-picker-column-internal {
84
84
  min-width: 26px;
85
85
  }
86
86
 
@@ -94,7 +94,7 @@ ion-picker-column {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,8 +317,24 @@ ion-picker-column {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
+ :host .calendar-action-buttons ion-item,
320
321
  :host .calendar-action-buttons ion-button {
321
- --background: transparent;
322
+ --background: translucent;
323
+ }
324
+
325
+ :host .calendar-action-buttons ion-item ion-label {
326
+ display: flex;
327
+ align-items: center;
328
+ width: auto;
329
+ }
330
+
331
+ :host .calendar-action-buttons ion-item ion-icon {
332
+ -webkit-padding-start: 4px;
333
+ padding-inline-start: 4px;
334
+ -webkit-padding-end: 0;
335
+ padding-inline-end: 0;
336
+ padding-top: 0;
337
+ padding-bottom: 0;
322
338
  }
323
339
 
324
340
  :host .calendar-days-of-week {
@@ -500,66 +516,8 @@ ion-picker-column {
500
516
  position: static;
501
517
  }
502
518
 
503
- :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
- color: var(--ion-color-base);
505
- }
506
-
507
- .calendar-month-year {
508
- min-width: 0;
509
- }
510
-
511
- .calendar-month-year-toggle {
512
- font-family: inherit;
513
- font-size: inherit;
514
- font-style: inherit;
515
- font-weight: inherit;
516
- letter-spacing: inherit;
517
- text-decoration: inherit;
518
- text-indent: inherit;
519
- text-overflow: inherit;
520
- text-transform: inherit;
521
- text-align: inherit;
522
- white-space: inherit;
523
- color: inherit;
524
- position: relative;
525
- border: 0;
526
- outline: none;
527
- background: transparent;
528
- cursor: pointer;
529
- z-index: 1;
530
- }
531
- .calendar-month-year-toggle::after {
532
- left: 0;
533
- right: 0;
534
- top: 0;
535
- bottom: 0;
536
- position: absolute;
537
- content: "";
538
- opacity: 0;
539
- transition: opacity 15ms linear, background-color 15ms linear;
540
- z-index: -1;
541
- }
542
- .calendar-month-year-toggle.ion-focused::after {
543
- background: currentColor;
544
- }
545
- .calendar-month-year-toggle:disabled {
546
- opacity: 0.3;
547
- pointer-events: none;
548
- }
549
-
550
- .calendar-month-year-toggle ion-icon {
551
- -webkit-padding-start: 4px;
552
- padding-inline-start: 4px;
553
- -webkit-padding-end: 0;
554
- padding-inline-end: 0;
555
- padding-top: 0;
556
- padding-bottom: 0;
557
- flex-shrink: 0;
558
- }
559
-
560
- .calendar-month-year-toggle #toggle-wrapper {
561
- display: inline-flex;
562
- align-items: center;
519
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
+ --color: var(--ion-color-base);
563
521
  }
564
522
 
565
523
  /**
@@ -648,31 +606,15 @@ ion-picker-column {
648
606
  margin-top: 10px;
649
607
  }
650
608
 
651
- .calendar-month-year-toggle {
652
- -webkit-padding-start: 16px;
653
- padding-inline-start: 16px;
654
- -webkit-padding-end: 16px;
655
- padding-inline-end: 16px;
656
- padding-top: 0px;
657
- padding-bottom: 0px;
658
- min-height: 44px;
609
+ :host .calendar-action-buttons ion-item {
610
+ --padding-start: 16px;
611
+ --background-hover: transparent;
612
+ --background-activated: transparent;
659
613
  font-size: min(1rem, 25.6px);
660
614
  font-weight: 600;
661
615
  }
662
- .calendar-month-year-toggle.ion-focused::after {
663
- opacity: 0.15;
664
- }
665
-
666
- .calendar-month-year-toggle #toggle-wrapper {
667
- -webkit-margin-start: 0;
668
- margin-inline-start: 0;
669
- -webkit-margin-end: 8px;
670
- margin-inline-end: 8px;
671
- margin-top: 10px;
672
- margin-bottom: 10px;
673
- }
674
616
 
675
- :host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
617
+ :host .calendar-action-buttons ion-item ion-icon,
676
618
  :host .calendar-action-buttons ion-buttons ion-button {
677
619
  color: var(--ion-color-base);
678
620
  }
@@ -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", null, renderArray);
980
+ return h("ion-picker-internal", 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", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1039
+ return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, 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
@@ -1120,7 +1120,7 @@ export class Datetime {
1120
1120
  }
1121
1121
  const { disabled, workingParts } = this;
1122
1122
  const activePart = this.getActivePartsWithFallback();
1123
- return (h("ion-picker-column", { 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
+ 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) => {
1124
1124
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1125
1125
  // Due to a Safari 14 issue we need to destroy
1126
1126
  // the scroll listener before we update state
@@ -1142,7 +1142,7 @@ export class Datetime {
1142
1142
  }
1143
1143
  const { disabled, workingParts } = this;
1144
1144
  const activePart = this.getActivePartsWithFallback();
1145
- return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1145
+ return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1146
1146
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1147
1147
  // Due to a Safari 14 issue we need to destroy
1148
1148
  // the scroll listener before we update state
@@ -1164,7 +1164,7 @@ export class Datetime {
1164
1164
  }
1165
1165
  const { disabled, workingParts } = this;
1166
1166
  const activePart = this.getActivePartsWithFallback();
1167
- return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1167
+ return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1168
1168
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1169
1169
  // Due to a Safari 14 issue we need to destroy
1170
1170
  // the scroll listener before we update state
@@ -1207,7 +1207,7 @@ export class Datetime {
1207
1207
  if (hoursData.length === 0)
1208
1208
  return [];
1209
1209
  const activePart = this.getActivePartsWithFallback();
1210
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1210
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1211
1211
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1212
1212
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1213
1213
  ev.stopPropagation();
@@ -1218,7 +1218,7 @@ export class Datetime {
1218
1218
  if (minutesData.length === 0)
1219
1219
  return [];
1220
1220
  const activePart = this.getActivePartsWithFallback();
1221
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1221
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1222
1222
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1223
1223
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1224
1224
  ev.stopPropagation();
@@ -1231,7 +1231,7 @@ export class Datetime {
1231
1231
  }
1232
1232
  const activePart = this.getActivePartsWithFallback();
1233
1233
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1234
- return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1234
+ return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1235
1235
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1236
1236
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1237
1237
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
@@ -1257,11 +1257,26 @@ export class Datetime {
1257
1257
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1258
1258
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1259
1259
  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("button", { class: {
1261
- 'calendar-month-year-toggle': true,
1262
- 'ion-activatable': true,
1263
- 'ion-focusable': true,
1264
- }, 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) => {
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) => {
1265
1280
  return h("div", { class: "day-of-week" }, d);
1266
1281
  }))));
1267
1282
  }
@@ -1422,7 +1437,7 @@ export class Datetime {
1422
1437
  * This will correctly scroll the element position to the correct time value,
1423
1438
  * before the popover is fully presented.
1424
1439
  */
1425
- const cols = ev.target.querySelectorAll('ion-picker-column');
1440
+ const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1426
1441
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1427
1442
  cols.forEach((col) => col.scrollActiveItemIntoView());
1428
1443
  }, style: {
@@ -80,7 +80,7 @@
80
80
  * widest item in the column. Setting a minimum
81
81
  * width avoids this layout shifting.
82
82
  */
83
- ion-picker-column {
83
+ ion-picker-column-internal {
84
84
  min-width: 26px;
85
85
  }
86
86
 
@@ -94,7 +94,7 @@ ion-picker-column {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,8 +317,24 @@ ion-picker-column {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
+ :host .calendar-action-buttons ion-item,
320
321
  :host .calendar-action-buttons ion-button {
321
- --background: transparent;
322
+ --background: translucent;
323
+ }
324
+
325
+ :host .calendar-action-buttons ion-item ion-label {
326
+ display: flex;
327
+ align-items: center;
328
+ width: auto;
329
+ }
330
+
331
+ :host .calendar-action-buttons ion-item ion-icon {
332
+ -webkit-padding-start: 4px;
333
+ padding-inline-start: 4px;
334
+ -webkit-padding-end: 0;
335
+ padding-inline-end: 0;
336
+ padding-top: 0;
337
+ padding-bottom: 0;
322
338
  }
323
339
 
324
340
  :host .calendar-days-of-week {
@@ -500,66 +516,8 @@ ion-picker-column {
500
516
  position: static;
501
517
  }
502
518
 
503
- :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
- color: var(--ion-color-base);
505
- }
506
-
507
- .calendar-month-year {
508
- min-width: 0;
509
- }
510
-
511
- .calendar-month-year-toggle {
512
- font-family: inherit;
513
- font-size: inherit;
514
- font-style: inherit;
515
- font-weight: inherit;
516
- letter-spacing: inherit;
517
- text-decoration: inherit;
518
- text-indent: inherit;
519
- text-overflow: inherit;
520
- text-transform: inherit;
521
- text-align: inherit;
522
- white-space: inherit;
523
- color: inherit;
524
- position: relative;
525
- border: 0;
526
- outline: none;
527
- background: transparent;
528
- cursor: pointer;
529
- z-index: 1;
530
- }
531
- .calendar-month-year-toggle::after {
532
- left: 0;
533
- right: 0;
534
- top: 0;
535
- bottom: 0;
536
- position: absolute;
537
- content: "";
538
- opacity: 0;
539
- transition: opacity 15ms linear, background-color 15ms linear;
540
- z-index: -1;
541
- }
542
- .calendar-month-year-toggle.ion-focused::after {
543
- background: currentColor;
544
- }
545
- .calendar-month-year-toggle:disabled {
546
- opacity: 0.3;
547
- pointer-events: none;
548
- }
549
-
550
- .calendar-month-year-toggle ion-icon {
551
- -webkit-padding-start: 4px;
552
- padding-inline-start: 4px;
553
- -webkit-padding-end: 0;
554
- padding-inline-end: 0;
555
- padding-top: 0;
556
- padding-bottom: 0;
557
- flex-shrink: 0;
558
- }
559
-
560
- .calendar-month-year-toggle #toggle-wrapper {
561
- display: inline-flex;
562
- align-items: center;
519
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
+ --color: var(--ion-color-base);
563
521
  }
564
522
 
565
523
  /**
@@ -643,36 +601,15 @@ ion-picker-column {
643
601
  font-size: 2.125rem;
644
602
  }
645
603
 
646
- :host .calendar-action-buttons ion-button {
647
- --color: var(--ion-color-step-650, #595959);
648
- }
649
-
650
- .calendar-month-year-toggle {
651
- -webkit-padding-start: 20px;
652
- padding-inline-start: 20px;
653
- -webkit-padding-end: 16px;
654
- padding-inline-end: 16px;
655
- padding-top: 12px;
656
- padding-bottom: 12px;
657
- min-height: 48px;
658
- background: transparent;
659
- color: var(--ion-color-step-650, #595959);
660
- z-index: 1;
661
- }
662
- .calendar-month-year-toggle.ion-focused::after {
663
- opacity: 0.04;
604
+ :host .datetime-calendar .calendar-action-buttons ion-item {
605
+ --padding-start: 20px;
664
606
  }
665
607
 
666
- .calendar-month-year-toggle ion-ripple-effect {
667
- color: currentColor;
608
+ :host .calendar-action-buttons ion-item,
609
+ :host .calendar-action-buttons ion-button {
610
+ --color: var(--ion-color-step-650, #595959);
668
611
  }
669
612
 
670
- @media (any-hover: hover) {
671
- .calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
672
- background: currentColor;
673
- opacity: 0.04;
674
- }
675
- }
676
613
  :host .calendar-days-of-week {
677
614
  -webkit-padding-start: 10px;
678
615
  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-toggle');
41
+ const monthYearButton = page.locator('.calendar-month-year ion-item');
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,6 +2,7 @@
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";
5
6
  import { Datetime } from "../../datetime";
6
7
  describe('datetime', () => {
7
8
  beforeEach(() => {
@@ -17,23 +18,25 @@ describe('datetime', () => {
17
18
  let page;
18
19
  beforeEach(async () => {
19
20
  page = await newSpecPage({
20
- components: [Datetime],
21
+ components: [Datetime, Item],
21
22
  html: `<ion-datetime></ion-datetime>`,
22
23
  });
23
24
  });
24
25
  it('should have aria-label "Show year picker" when collapsed', async () => {
25
26
  const datetime = page.body.querySelector('ion-datetime');
26
- const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
27
+ const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
28
+ const monthYearToggleBtn = item.shadowRoot.querySelector('button');
27
29
  const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
28
30
  expect(ariaLabel).toContain('Show year picker');
29
31
  });
30
32
  it('should have aria-label "Hide year picker" when expanded', async () => {
31
33
  const datetime = page.body.querySelector('ion-datetime');
32
- const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
33
- monthYearToggleBtn.click();
34
+ const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
35
+ item.click();
34
36
  await page.waitForChanges();
35
- const monthYearToggleBtnAfter = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
36
- const ariaLabel = monthYearToggleBtnAfter.getAttribute('aria-label');
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');
37
40
  expect(ariaLabel).toContain('Hide year picker');
38
41
  });
39
42
  });
@@ -372,14 +372,4 @@ 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
- });
385
375
  });
@@ -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 { PickerColumn } from "../../../picker-column/picker-column";
8
- import { Picker } from "../../../picker/picker";
7
+ import { PickerColumnInternal } from "../../../picker-column-internal/picker-column-internal";
8
+ import { PickerInternal } from "../../../picker-internal/picker-internal";
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, PickerColumn, Picker],
22
+ components: [Datetime, PickerColumnInternal, PickerInternal],
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');
27
+ const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column-internal');
28
28
  await expect(columns.length).toEqual(4);
29
29
  columns.forEach((column) => {
30
30
  expect(column.disabled).toBe(true);
@@ -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:nth-child(1) .picker-item:not(.picker-item-empty)');
85
- const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) .picker-item:not(.picker-item-empty)');
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)');
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:first-of-type .picker-item:not(.picker-item-empty)');
162
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
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:first-of-type .picker-item:not(.picker-item-empty)');
178
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
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', () => {
@@ -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:nth-child(1) .picker-item:not(.picker-item-empty)');
261
+ const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
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 > .calendar-month-year-toggle');
19
+ const pickerButton = page.locator('#date-time .calendar-month-year > ion-item');
20
20
  await pickerButton.click();
21
21
  await page.waitForChanges();
22
22
  await expect(datetimeFooter).not.toBeVisible();
@@ -228,7 +228,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
228
228
  ></ion-datetime>
229
229
  `, config);
230
230
  await page.waitForSelector('.datetime-ready');
231
- const columns = page.locator('ion-picker-column');
231
+ const columns = page.locator('ion-picker-column-internal');
232
232
  await expect(columns.nth(0)).toHaveClass(/month-column/);
233
233
  await expect(columns.nth(1)).toHaveClass(/day-column/);
234
234
  await expect(columns.nth(2)).toHaveClass(/year-column/);
@@ -243,7 +243,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
243
243
  ></ion-datetime>
244
244
  `, config);
245
245
  await page.waitForSelector('.datetime-ready');
246
- const columns = page.locator('ion-picker-column');
246
+ const columns = page.locator('ion-picker-column-internal');
247
247
  await expect(columns.nth(0)).toHaveClass(/day-column/);
248
248
  await expect(columns.nth(1)).toHaveClass(/month-column/);
249
249
  await expect(columns.nth(2)).toHaveClass(/year-column/);