@ionic/core 7.6.2-dev.11703182244.1165aeec → 7.6.2-dev.11704729332.13b412c8

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 (475) hide show
  1. package/components/action-sheet.js +1 -1
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +0 -12
  4. package/components/button.js +2 -2
  5. package/components/checkbox.js +2 -2
  6. package/components/data.js +1 -1
  7. package/components/gesture-controller.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-badge.js +2 -2
  10. package/components/ion-content.js +3 -4
  11. package/components/ion-datetime.js +40 -64
  12. package/components/ion-fab-button.js +2 -2
  13. package/components/ion-input.js +2 -2
  14. package/components/ion-item-option.js +2 -2
  15. package/components/ion-loading.js +1 -1
  16. package/components/ion-menu-button.js +1 -1
  17. package/components/ion-picker-column-option.d.ts +11 -0
  18. package/components/ion-picker-column-option.js +9 -0
  19. package/components/ion-picker-column.js +2 -2
  20. package/components/ion-picker-legacy-column.d.ts +11 -0
  21. package/components/ion-picker-legacy-column.js +9 -0
  22. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  23. package/components/ion-picker-legacy.js +309 -0
  24. package/components/ion-picker.js +1 -309
  25. package/components/ion-progress-bar.js +2 -2
  26. package/components/ion-range.js +2 -2
  27. package/components/ion-refresher-content.js +1 -1
  28. package/components/ion-refresher.js +1 -1
  29. package/components/ion-router-link.js +1 -1
  30. package/components/ion-searchbar.js +1 -1
  31. package/components/ion-segment-button.js +1 -1
  32. package/components/ion-select.js +2 -2
  33. package/components/ion-tab-bar.js +2 -2
  34. package/components/ion-textarea.js +2 -2
  35. package/components/ion-toast.js +2 -2
  36. package/components/ion-toggle.js +2 -2
  37. package/components/item.js +2 -2
  38. package/components/label.js +1 -1
  39. package/components/overlays.js +11 -4
  40. package/components/picker-column-option.js +122 -0
  41. package/components/picker-column.js +351 -322
  42. package/components/picker-column2.js +379 -0
  43. package/components/{picker-internal.js → picker.js} +29 -22
  44. package/components/radio-group.js +1 -9
  45. package/components/radio.js +2 -2
  46. package/components/select-popover.js +1 -1
  47. package/css/core.css +35 -34
  48. package/css/core.css.map +1 -1
  49. package/css/global.bundle.css +1 -1
  50. package/css/ionic.bundle.css +1 -1
  51. package/css/ionic.bundle.css.map +1 -1
  52. package/css/themes/dark.always.css +122 -0
  53. package/css/themes/dark.always.css.map +1 -0
  54. package/css/themes/dark.class.css +122 -0
  55. package/css/themes/dark.class.css.map +1 -0
  56. package/css/themes/dark.css +3 -0
  57. package/css/themes/dark.css.map +1 -0
  58. package/css/themes/dark.system.css +124 -0
  59. package/css/themes/dark.system.css.map +1 -0
  60. package/css/typography.css +1 -1
  61. package/dist/cjs/{button-active-962fe442.js → button-active-5bf1cac0.js} +1 -1
  62. package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
  63. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  64. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  65. package/dist/cjs/index.cjs.js +3 -3
  66. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  67. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  68. package/dist/cjs/ion-app_8.cjs.entry.js +4 -5
  69. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  71. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  72. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-datetime_3.cjs.entry.js +37 -57
  76. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  79. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  80. package/dist/cjs/ion-loading.cjs.entry.js +3 -2
  81. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  83. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  85. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  86. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  87. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  88. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -11
  90. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  91. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  92. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  93. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  94. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  95. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  96. package/dist/cjs/ion-select_3.cjs.entry.js +5 -4
  97. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  100. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  101. package/dist/cjs/ionic.cjs.js +1 -1
  102. package/dist/cjs/loader.cjs.js +1 -1
  103. package/dist/cjs/{overlays-e77cc023.js → overlays-7773cbe1.js} +11 -4
  104. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  105. package/dist/collection/collection-manifest.json +7 -6
  106. package/dist/collection/components/action-sheet/action-sheet.ios.css +3 -3
  107. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +23 -14
  108. package/dist/collection/components/alert/alert.ios.css +6 -6
  109. package/dist/collection/components/alert/alert.md.css +6 -6
  110. package/dist/collection/components/alert/test/a11y/alert.e2e.js +22 -9
  111. package/dist/collection/components/back-button/back-button.ios.css +1 -1
  112. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +21 -0
  113. package/dist/collection/components/backdrop/backdrop.js +0 -12
  114. package/dist/collection/components/badge/badge.ios.css +1 -1
  115. package/dist/collection/components/badge/badge.md.css +1 -1
  116. package/dist/collection/components/badge/test/a11y/badge.e2e.js +18 -0
  117. package/dist/collection/components/button/button.ios.css +11 -11
  118. package/dist/collection/components/button/button.md.css +9 -9
  119. package/dist/collection/components/button/test/a11y/button.e2e.js +48 -0
  120. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  121. package/dist/collection/components/checkbox/checkbox.ios.css +2 -2
  122. package/dist/collection/components/checkbox/checkbox.md.css +2 -2
  123. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +11 -2
  124. package/dist/collection/components/content/content.css +0 -4
  125. package/dist/collection/components/content/content.js +2 -3
  126. package/dist/collection/components/datetime/datetime.ios.css +91 -38
  127. package/dist/collection/components/datetime/datetime.js +24 -36
  128. package/dist/collection/components/datetime/datetime.md.css +96 -38
  129. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  130. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  131. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  132. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  133. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  134. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  135. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  136. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  137. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  138. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  139. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  140. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  141. package/dist/collection/components/datetime/utils/data.js +1 -1
  142. package/dist/collection/components/fab-button/fab-button.ios.css +13 -13
  143. package/dist/collection/components/fab-button/fab-button.md.css +4 -4
  144. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +50 -0
  145. package/dist/collection/components/input/input.ios.css +3 -3
  146. package/dist/collection/components/input/input.md.css +3 -3
  147. package/dist/collection/components/input/test/a11y/input.e2e.js +41 -3
  148. package/dist/collection/components/item/item.ios.css +3 -3
  149. package/dist/collection/components/item/item.md.css +4 -4
  150. package/dist/collection/components/item-option/item-option.ios.css +2 -2
  151. package/dist/collection/components/item-option/item-option.md.css +1 -1
  152. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +28 -0
  153. package/dist/collection/components/label/label.md.css +1 -1
  154. package/dist/collection/components/label/test/a11y/label.e2e.js +20 -0
  155. package/dist/collection/components/loading/loading.md.css +1 -1
  156. package/dist/collection/components/loading/test/a11y/loading.e2e.js +21 -5
  157. package/dist/collection/components/menu-button/menu-button.ios.css +1 -1
  158. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +14 -0
  159. package/dist/collection/components/picker/picker.ios.css +112 -211
  160. package/dist/collection/components/picker/picker.js +472 -744
  161. package/dist/collection/components/picker/picker.md.css +108 -198
  162. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  163. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  164. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  165. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  166. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  167. package/dist/collection/components/picker-column/picker-column.js +497 -335
  168. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  169. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  170. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  171. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  172. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  173. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  174. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  175. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  176. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  177. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  178. package/dist/collection/components/picker-legacy/picker.js +817 -0
  179. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  180. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  181. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  182. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  183. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  184. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  185. package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +1 -1
  186. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  187. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  188. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  189. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  190. package/dist/collection/components/progress-bar/progress-bar.ios.css +2 -2
  191. package/dist/collection/components/progress-bar/progress-bar.md.css +2 -2
  192. package/dist/collection/components/progress-bar/test/a11y/progress-bar.e2e.js +24 -0
  193. package/dist/collection/components/radio/radio.ios.css +2 -2
  194. package/dist/collection/components/radio/radio.md.css +2 -2
  195. package/dist/collection/components/radio/test/a11y/radio.e2e.js +101 -68
  196. package/dist/collection/components/radio-group/radio-group.js +1 -9
  197. package/dist/collection/components/range/range.ios.css +1 -1
  198. package/dist/collection/components/range/range.md.css +3 -3
  199. package/dist/collection/components/range/test/a11y/range.e2e.js +18 -8
  200. package/dist/collection/components/refresher/refresher.md.css +2 -2
  201. package/dist/collection/components/refresher/test/a11y/refresher.e2e.js +25 -0
  202. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  203. package/dist/collection/components/router-link/router-link.css +1 -1
  204. package/dist/collection/components/router-link/test/a11y/router-link.e2e.js +23 -0
  205. package/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  206. package/dist/collection/components/segment/test/a11y/segment.e2e.js +23 -0
  207. package/dist/collection/components/segment-button/segment-button.md.css +2 -2
  208. package/dist/collection/components/select/select.ios.css +3 -3
  209. package/dist/collection/components/select/select.md.css +3 -3
  210. package/dist/collection/components/select/test/a11y/select.e2e.js +68 -4
  211. package/dist/collection/components/select-popover/select-popover.md.css +4 -4
  212. package/dist/collection/components/select-popover/test/a11y/select-popover.e2e.js +32 -0
  213. package/dist/collection/components/tab-bar/tab-bar.ios.css +1 -1
  214. package/dist/collection/components/tab-bar/tab-bar.md.css +1 -1
  215. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +41 -3
  216. package/dist/collection/components/textarea/textarea.ios.css +3 -3
  217. package/dist/collection/components/textarea/textarea.md.css +3 -3
  218. package/dist/collection/components/toast/test/a11y/toast.e2e.js +56 -24
  219. package/dist/collection/components/toast/toast.ios.css +1 -1
  220. package/dist/collection/components/toast/toast.md.css +2 -2
  221. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +8 -2
  222. package/dist/collection/components/toggle/toggle.ios.css +1 -1
  223. package/dist/collection/components/toggle/toggle.md.css +2 -2
  224. package/dist/collection/css/test/a11y/typography.e2e.js +18 -0
  225. package/dist/collection/themes/test/colors/theme.e2e.js +114 -0
  226. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  227. package/dist/collection/utils/overlays.js +11 -4
  228. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  229. package/dist/collection/utils/test/playwright/generator.js +1 -0
  230. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  231. package/dist/docs.json +478 -41
  232. package/dist/esm/{button-active-308d3edd.js → button-active-48379dd2.js} +1 -1
  233. package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
  234. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  235. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  236. package/dist/esm/index.js +3 -3
  237. package/dist/esm/ion-action-sheet.entry.js +5 -5
  238. package/dist/esm/ion-alert.entry.js +6 -6
  239. package/dist/esm/ion-app_8.entry.js +4 -5
  240. package/dist/esm/ion-avatar_3.entry.js +2 -2
  241. package/dist/esm/ion-back-button.entry.js +1 -1
  242. package/dist/esm/ion-backdrop.entry.js +0 -12
  243. package/dist/esm/ion-button_2.entry.js +2 -2
  244. package/dist/esm/ion-checkbox.entry.js +2 -2
  245. package/dist/esm/ion-datetime-button.entry.js +1 -1
  246. package/dist/esm/ion-datetime_3.entry.js +36 -56
  247. package/dist/esm/ion-fab_3.entry.js +2 -2
  248. package/dist/esm/ion-input.entry.js +2 -2
  249. package/dist/esm/ion-item-option_3.entry.js +3 -3
  250. package/dist/esm/ion-item_8.entry.js +3 -3
  251. package/dist/esm/ion-loading.entry.js +3 -2
  252. package/dist/esm/ion-menu_3.entry.js +4 -4
  253. package/dist/esm/ion-modal.entry.js +3 -3
  254. package/dist/esm/ion-nav_2.entry.js +1 -1
  255. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  256. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  257. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  258. package/dist/esm/ion-popover.entry.js +2 -1
  259. package/dist/esm/ion-progress-bar.entry.js +2 -2
  260. package/dist/esm/ion-radio_2.entry.js +3 -11
  261. package/dist/esm/ion-range.entry.js +3 -3
  262. package/dist/esm/ion-refresher_2.entry.js +5 -5
  263. package/dist/esm/ion-reorder_2.entry.js +1 -1
  264. package/dist/esm/ion-route_4.entry.js +1 -1
  265. package/dist/esm/ion-searchbar.entry.js +1 -1
  266. package/dist/esm/ion-segment_2.entry.js +2 -2
  267. package/dist/esm/ion-select_3.entry.js +5 -4
  268. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  269. package/dist/esm/ion-textarea.entry.js +2 -2
  270. package/dist/esm/ion-toast.entry.js +5 -5
  271. package/dist/esm/ion-toggle.entry.js +3 -3
  272. package/dist/esm/ionic.js +1 -1
  273. package/dist/esm/loader.js +1 -1
  274. package/dist/esm/{overlays-b33f6bca.js → overlays-94dac1cb.js} +11 -4
  275. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  276. package/dist/esm-es5/{button-active-308d3edd.js → button-active-48379dd2.js} +1 -1
  277. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  278. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  279. package/dist/esm-es5/index.js +1 -1
  280. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  281. package/dist/esm-es5/ion-alert.entry.js +1 -1
  282. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  283. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  284. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  285. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  286. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  287. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  288. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  289. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  290. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  291. package/dist/esm-es5/ion-input.entry.js +1 -1
  292. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  293. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  294. package/dist/esm-es5/ion-loading.entry.js +1 -1
  295. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  296. package/dist/esm-es5/ion-modal.entry.js +1 -1
  297. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  298. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  299. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  300. package/dist/esm-es5/ion-picker.entry.js +4 -0
  301. package/dist/esm-es5/ion-popover.entry.js +1 -1
  302. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  303. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  304. package/dist/esm-es5/ion-range.entry.js +1 -1
  305. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  306. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  307. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  308. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  309. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  310. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  311. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  312. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  313. package/dist/esm-es5/ion-toast.entry.js +1 -1
  314. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  315. package/dist/esm-es5/ionic.js +1 -1
  316. package/dist/esm-es5/loader.js +1 -1
  317. package/dist/esm-es5/overlays-94dac1cb.js +4 -0
  318. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  319. package/dist/html.html-data.json +152 -1
  320. package/dist/ionic/index.esm.js +1 -1
  321. package/dist/ionic/ionic.esm.js +1 -1
  322. package/dist/ionic/{p-61e4d3ec.entry.js → p-068950da.entry.js} +1 -1
  323. package/dist/ionic/{p-c1701827.entry.js → p-0832dedf.entry.js} +1 -1
  324. package/dist/ionic/{p-f6e9c227.system.js → p-11c55ac8.system.js} +1 -1
  325. package/dist/ionic/{p-f2bfd3d7.entry.js → p-13d4dfe7.entry.js} +1 -1
  326. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  327. package/dist/ionic/{p-afa9f205.system.js → p-1ab2642a.system.js} +1 -1
  328. package/dist/ionic/{p-11a3973f.entry.js → p-1b14f0f8.entry.js} +1 -1
  329. package/dist/ionic/{p-0235067a.js → p-1b60cc53.js} +1 -1
  330. package/dist/ionic/p-1c453add.system.entry.js +4 -0
  331. package/dist/ionic/{p-11bf2ad0.system.entry.js → p-1d5b03e3.system.entry.js} +1 -1
  332. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  333. package/dist/ionic/{p-6b0ce9b4.system.entry.js → p-25312768.system.entry.js} +1 -1
  334. package/dist/ionic/{p-f894e0ad.entry.js → p-2724403e.entry.js} +1 -1
  335. package/dist/ionic/p-283bc1a1.system.entry.js +4 -0
  336. package/dist/ionic/{p-2df97906.system.entry.js → p-308b6cf2.system.entry.js} +1 -1
  337. package/dist/ionic/{p-abd5d0d5.system.entry.js → p-354682e8.system.entry.js} +1 -1
  338. package/dist/ionic/p-3717e641.system.entry.js +4 -0
  339. package/dist/ionic/{p-19c379da.system.entry.js → p-3796194b.system.entry.js} +1 -1
  340. package/dist/ionic/{p-bdf71399.entry.js → p-385bb983.entry.js} +1 -1
  341. package/dist/ionic/{p-745e3339.system.entry.js → p-3af5faf8.system.entry.js} +1 -1
  342. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  343. package/dist/ionic/{p-a42ef163.system.entry.js → p-456e19bb.system.entry.js} +1 -1
  344. package/dist/ionic/p-47e42aa3.system.entry.js +4 -0
  345. package/dist/ionic/{p-529b24fb.entry.js → p-4abb1251.entry.js} +1 -1
  346. package/dist/ionic/p-51abefb7.system.js +4 -0
  347. package/dist/ionic/{p-22827063.system.entry.js → p-530bb2af.system.entry.js} +1 -1
  348. package/dist/ionic/{p-96d4814f.system.entry.js → p-590447a5.system.entry.js} +1 -1
  349. package/dist/ionic/{p-1b27ac67.entry.js → p-5aec2208.entry.js} +1 -1
  350. package/dist/ionic/p-5cbfce20.entry.js +4 -0
  351. package/dist/ionic/{p-26c4bf85.entry.js → p-5f1b0512.entry.js} +1 -1
  352. package/dist/ionic/{p-10ec9af7.system.entry.js → p-5ff211d0.system.entry.js} +1 -1
  353. package/dist/ionic/{p-254ec7c0.system.entry.js → p-662a9a47.system.entry.js} +2 -2
  354. package/dist/ionic/{p-2894d5f6.entry.js → p-713af1fe.entry.js} +1 -1
  355. package/dist/ionic/p-7c0d778d.system.js +4 -0
  356. package/dist/ionic/{p-6e0539ea.system.entry.js → p-7dade589.system.entry.js} +1 -1
  357. package/dist/ionic/{p-a821750c.system.entry.js → p-8a25bf30.system.entry.js} +1 -1
  358. package/dist/ionic/p-8ad6d643.entry.js +4 -0
  359. package/dist/ionic/p-8b160fba.entry.js +4 -0
  360. package/dist/ionic/{p-799da666.entry.js → p-8e961825.entry.js} +1 -1
  361. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  362. package/dist/ionic/p-9164a09d.entry.js +4 -0
  363. package/dist/ionic/{p-b964aba3.entry.js → p-92bfb607.entry.js} +1 -1
  364. package/dist/ionic/p-97aaf697.system.entry.js +4 -0
  365. package/dist/ionic/{p-4685218a.system.entry.js → p-9a8bc8f3.system.entry.js} +1 -1
  366. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  367. package/dist/ionic/{p-3e8d5e53.entry.js → p-9c48f42f.entry.js} +1 -1
  368. package/dist/ionic/{p-9fda6824.system.entry.js → p-9f94e34a.system.entry.js} +1 -1
  369. package/dist/ionic/p-a17a9130.entry.js +4 -0
  370. package/dist/ionic/{p-7dcf795f.entry.js → p-a29db3a0.entry.js} +1 -1
  371. package/dist/ionic/p-a41eaff2.system.entry.js +4 -0
  372. package/dist/ionic/p-a60a1ce5.js +4 -0
  373. package/dist/ionic/{p-648ad047.system.entry.js → p-a6e5f54e.system.entry.js} +1 -1
  374. package/dist/ionic/{p-aee39e06.entry.js → p-aa8b021d.entry.js} +1 -1
  375. package/dist/ionic/{p-6855f26a.entry.js → p-aa975ff8.entry.js} +1 -1
  376. package/dist/ionic/{p-043aa6cc.system.entry.js → p-b59fe3bd.system.entry.js} +1 -1
  377. package/dist/ionic/p-b7e03ff0.system.entry.js +4 -0
  378. package/dist/ionic/{p-767f1a92.entry.js → p-bc01c384.entry.js} +1 -1
  379. package/dist/ionic/{p-a3ca2e64.entry.js → p-bec6ae40.entry.js} +1 -1
  380. package/dist/ionic/p-c001b24f.entry.js +4 -0
  381. package/dist/ionic/{p-06abe918.system.entry.js → p-c16fbc5f.system.entry.js} +1 -1
  382. package/dist/ionic/p-c19bf524.entry.js +4 -0
  383. package/dist/ionic/p-c6176849.system.entry.js +4 -0
  384. package/dist/ionic/{p-0cc80201.entry.js → p-c6e9ef77.entry.js} +1 -1
  385. package/dist/ionic/{p-ddd48faf.system.entry.js → p-cc700688.system.entry.js} +1 -1
  386. package/dist/ionic/p-cd3e1a06.entry.js +4 -0
  387. package/dist/ionic/p-cf350317.entry.js +4 -0
  388. package/dist/ionic/{p-da666998.system.entry.js → p-d01449a3.system.entry.js} +1 -1
  389. package/dist/ionic/{p-84b567a6.entry.js → p-d08e0136.entry.js} +1 -1
  390. package/dist/ionic/p-d1ad57d5.system.entry.js +4 -0
  391. package/dist/ionic/{p-28740823.system.entry.js → p-d2634efe.system.entry.js} +1 -1
  392. package/dist/ionic/{p-41208f54.system.entry.js → p-d88ed181.system.entry.js} +1 -1
  393. package/dist/ionic/p-dc63dccb.system.entry.js +4 -0
  394. package/dist/ionic/{p-11786dc7.entry.js → p-df6f50ef.entry.js} +1 -1
  395. package/dist/ionic/{p-c5acfeb1.entry.js → p-e403ff07.entry.js} +1 -1
  396. package/dist/ionic/{p-ae4b7df8.entry.js → p-e9431a58.entry.js} +1 -1
  397. package/dist/ionic/p-ec0a9b2c.system.entry.js +4 -0
  398. package/dist/ionic/{p-2a583966.entry.js → p-ee8b825e.entry.js} +1 -1
  399. package/dist/ionic/p-f0717d98.js +4 -0
  400. package/dist/ionic/{p-42925096.system.entry.js → p-f0dbd73e.system.entry.js} +1 -1
  401. package/dist/ionic/{p-806a9810.entry.js → p-f38c1f8d.entry.js} +1 -1
  402. package/dist/ionic/p-f60807dd.system.entry.js +4 -0
  403. package/dist/ionic/p-fc17f198.entry.js +4 -0
  404. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  405. package/dist/types/components/datetime/datetime.d.ts +0 -1
  406. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  407. package/dist/types/components/menu/menu.d.ts +1 -1
  408. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  409. package/dist/types/components/picker/picker.d.ts +75 -129
  410. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  411. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  412. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  413. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  414. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  415. package/dist/types/components.d.ts +154 -122
  416. package/dist/types/interface.d.ts +1 -1
  417. package/dist/types/utils/config.d.ts +2 -2
  418. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  419. package/dist/types/utils/overlays.d.ts +5 -2
  420. package/hydrate/index.js +1540 -1448
  421. package/package.json +1 -1
  422. package/components/ion-picker-column-internal.d.ts +0 -11
  423. package/components/ion-picker-column-internal.js +0 -9
  424. package/components/ion-picker-internal.js +0 -9
  425. package/components/picker-column-internal.js +0 -390
  426. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  427. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  428. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  429. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  430. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  431. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  432. package/dist/esm-es5/overlays-b33f6bca.js +0 -4
  433. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  434. package/dist/ionic/p-12a62500.entry.js +0 -4
  435. package/dist/ionic/p-1c249831.entry.js +0 -4
  436. package/dist/ionic/p-35ce400e.system.js +0 -4
  437. package/dist/ionic/p-3671f1b9.system.js +0 -4
  438. package/dist/ionic/p-47bb15a1.entry.js +0 -4
  439. package/dist/ionic/p-4981ea0a.system.entry.js +0 -4
  440. package/dist/ionic/p-4d145435.entry.js +0 -4
  441. package/dist/ionic/p-507ddbfe.system.entry.js +0 -4
  442. package/dist/ionic/p-6a6477b2.js +0 -4
  443. package/dist/ionic/p-6ab03751.js +0 -4
  444. package/dist/ionic/p-6c277fa2.system.entry.js +0 -4
  445. package/dist/ionic/p-6fba0ce1.system.entry.js +0 -4
  446. package/dist/ionic/p-7dc892f8.entry.js +0 -4
  447. package/dist/ionic/p-85f48531.entry.js +0 -4
  448. package/dist/ionic/p-8f301ac5.system.entry.js +0 -4
  449. package/dist/ionic/p-932f2259.system.entry.js +0 -4
  450. package/dist/ionic/p-a3013394.entry.js +0 -4
  451. package/dist/ionic/p-b1f29949.system.entry.js +0 -4
  452. package/dist/ionic/p-b7a2ffc9.system.entry.js +0 -4
  453. package/dist/ionic/p-beeed22c.system.entry.js +0 -4
  454. package/dist/ionic/p-cd1b920b.entry.js +0 -4
  455. package/dist/ionic/p-da5e2652.entry.js +0 -4
  456. package/dist/ionic/p-dc71e4ef.system.entry.js +0 -4
  457. package/dist/ionic/p-ec652bc0.system.entry.js +0 -4
  458. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  459. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  460. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  461. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  462. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  463. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  464. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  465. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  466. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  467. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  468. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  469. /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
  470. /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
  471. /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
  472. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  473. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  474. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  475. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -4,10 +4,19 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'], themes: ['light', 'dark'] }).forEach(({ title, config }) => {
8
8
  test.describe(title('checkbox: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
- await page.goto(`/src/components/checkbox/test/a11y`, config);
10
+ await page.setContent(`
11
+ <main>
12
+ <ion-checkbox>Label</ion-checkbox>
13
+ <ion-checkbox aria-label="my aria label"></ion-checkbox>
14
+ <ion-checkbox checked="true">Checked</ion-checkbox>
15
+ <ion-item>
16
+ <ion-checkbox>Checkbox in item</ion-checkbox>
17
+ </ion-item>
18
+ </main>
19
+ `, config);
11
20
  const results = await new AxeBuilder({ page }).analyze();
12
21
  expect(results.violations).toEqual([]);
13
22
  });
@@ -97,10 +97,6 @@
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
-
104
100
  #background-content {
105
101
  left: 0px;
106
102
  right: 0px;
@@ -334,9 +334,8 @@ export class Content {
334
334
  const mode = getIonMode(this);
335
335
  const forceOverscroll = this.shouldForceOverscroll();
336
336
  const transitionShadow = mode === 'ios';
337
- const TagType = isMainContent ? 'main' : 'div';
338
337
  this.resize();
339
- return (h(Host, { class: createColorClasses(this.color, {
338
+ return (h(Host, { role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
340
339
  [mode]: true,
341
340
  'content-sizing': hostContext('ion-popover', this.el),
342
341
  overscroll: forceOverscroll,
@@ -344,7 +343,7 @@ export class Content {
344
343
  }), style: {
345
344
  '--offset-top': `${this.cTop}px`,
346
345
  '--offset-bottom': `${this.cBottom}px`,
347
- } }, h("div", { ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h(TagType, { class: {
346
+ } }, h("div", { ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), h("div", { class: {
348
347
  'inner-scroll': true,
349
348
  'scroll-x': scrollX,
350
349
  'scroll-y': scrollY,
@@ -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,24 +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
- 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;
310
+ --background: transparent;
338
311
  }
339
312
 
340
313
  :host .calendar-days-of-week {
@@ -516,8 +489,72 @@ ion-picker-column-internal {
516
489
  position: static;
517
490
  }
518
491
 
519
- :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
- --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);
521
558
  }
522
559
 
523
560
  /**
@@ -606,15 +643,31 @@ ion-picker-column-internal {
606
643
  margin-top: 10px;
607
644
  }
608
645
 
609
- :host .calendar-action-buttons ion-item {
610
- --padding-start: 16px;
611
- --background-hover: transparent;
612
- --background-activated: transparent;
646
+ .calendar-month-year-toggle {
647
+ -webkit-padding-start: 16px;
648
+ padding-inline-start: 16px;
649
+ -webkit-padding-end: 16px;
650
+ padding-inline-end: 16px;
651
+ padding-top: 0px;
652
+ padding-bottom: 0px;
653
+ min-height: 44px;
613
654
  font-size: min(1rem, 25.6px);
614
655
  font-weight: 600;
615
656
  }
657
+ .calendar-month-year-toggle.ion-focused::after {
658
+ opacity: 0.15;
659
+ }
660
+
661
+ .calendar-month-year-toggle #toggle-wrapper {
662
+ -webkit-margin-start: 0;
663
+ margin-inline-start: 0;
664
+ -webkit-margin-end: 8px;
665
+ margin-inline-end: 8px;
666
+ margin-top: 10px;
667
+ margin-bottom: 10px;
668
+ }
616
669
 
617
- :host .calendar-action-buttons ion-item ion-icon,
670
+ :host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
618
671
  :host .calendar-action-buttons ion-buttons ion-button {
619
672
  color: var(--ion-color-base);
620
673
  }
@@ -996,7 +996,7 @@ export class Datetime {
996
996
  const renderArray = forcePresentation === 'time-date'
997
997
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
998
998
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
999
- return h("ion-picker-internal", null, renderArray);
999
+ return h("ion-picker", null, renderArray);
1000
1000
  }
1001
1001
  renderDatePickerColumns(forcePresentation) {
1002
1002
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -1055,7 +1055,7 @@ export class Datetime {
1055
1055
  const todayString = workingParts.day !== null
1056
1056
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
1057
1057
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
1058
- return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1058
+ return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
1059
1059
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1060
1060
  // Due to a Safari 14 issue we need to destroy
1061
1061
  // the scroll listener before we update state
@@ -1071,7 +1071,7 @@ export class Datetime {
1071
1071
  // the working parts have been updated.
1072
1072
  this.initializeCalendarListener();
1073
1073
  ev.stopPropagation();
1074
- } }));
1074
+ } }, 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)))));
1075
1075
  }
1076
1076
  renderIndividualDatePickerColumns(forcePresentation) {
1077
1077
  const { workingParts, isDateEnabled } = this;
@@ -1139,7 +1139,8 @@ export class Datetime {
1139
1139
  }
1140
1140
  const { disabled, workingParts } = this;
1141
1141
  const activePart = this.getActivePartsWithFallback();
1142
- 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) => {
1142
+ const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
1143
+ return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
1143
1144
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1144
1145
  // Due to a Safari 14 issue we need to destroy
1145
1146
  // the scroll listener before we update state
@@ -1153,7 +1154,7 @@ export class Datetime {
1153
1154
  // the working parts have been updated.
1154
1155
  this.initializeCalendarListener();
1155
1156
  ev.stopPropagation();
1156
- } }));
1157
+ } }, 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)))));
1157
1158
  }
1158
1159
  renderMonthPickerColumn(months) {
1159
1160
  if (months.length === 0) {
@@ -1161,7 +1162,7 @@ export class Datetime {
1161
1162
  }
1162
1163
  const { disabled, workingParts } = this;
1163
1164
  const activePart = this.getActivePartsWithFallback();
1164
- return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1165
+ return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
1165
1166
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1166
1167
  // Due to a Safari 14 issue we need to destroy
1167
1168
  // the scroll listener before we update state
@@ -1175,7 +1176,7 @@ export class Datetime {
1175
1176
  // the working parts have been updated.
1176
1177
  this.initializeCalendarListener();
1177
1178
  ev.stopPropagation();
1178
- } }));
1179
+ } }, 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)))));
1179
1180
  }
1180
1181
  renderYearPickerColumn(years) {
1181
1182
  if (years.length === 0) {
@@ -1183,7 +1184,7 @@ export class Datetime {
1183
1184
  }
1184
1185
  const { disabled, workingParts } = this;
1185
1186
  const activePart = this.getActivePartsWithFallback();
1186
- return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1187
+ return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
1187
1188
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1188
1189
  // Due to a Safari 14 issue we need to destroy
1189
1190
  // the scroll listener before we update state
@@ -1197,7 +1198,7 @@ export class Datetime {
1197
1198
  // the working parts have been updated.
1198
1199
  this.initializeCalendarListener();
1199
1200
  ev.stopPropagation();
1200
- } }));
1201
+ } }, 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)))));
1201
1202
  }
1202
1203
  renderTimePickerColumns(forcePresentation) {
1203
1204
  if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
@@ -1226,22 +1227,22 @@ export class Datetime {
1226
1227
  if (hoursData.length === 0)
1227
1228
  return [];
1228
1229
  const activePart = this.getActivePartsWithFallback();
1229
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1230
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
1230
1231
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1231
1232
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1232
1233
  ev.stopPropagation();
1233
- } }));
1234
+ } }, 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)))));
1234
1235
  }
1235
1236
  renderMinutePickerColumn(minutesData) {
1236
1237
  const { disabled, workingParts } = this;
1237
1238
  if (minutesData.length === 0)
1238
1239
  return [];
1239
1240
  const activePart = this.getActivePartsWithFallback();
1240
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1241
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
1241
1242
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1242
1243
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1243
1244
  ev.stopPropagation();
1244
- } }));
1245
+ } }, 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)))));
1245
1246
  }
1246
1247
  renderDayPeriodPickerColumn(dayPeriodData) {
1247
1248
  const { disabled, workingParts } = this;
@@ -1250,12 +1251,12 @@ export class Datetime {
1250
1251
  }
1251
1252
  const activePart = this.getActivePartsWithFallback();
1252
1253
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1253
- return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1254
+ return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
1254
1255
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1255
1256
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1256
1257
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
1257
1258
  ev.stopPropagation();
1258
- } }));
1259
+ } }, 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)))));
1259
1260
  }
1260
1261
  renderWheelView(forcePresentation) {
1261
1262
  const { locale } = this;
@@ -1276,26 +1277,11 @@ export class Datetime {
1276
1277
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1277
1278
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1278
1279
  const hostDir = this.el.getAttribute('dir') || undefined;
1279
- 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: () => {
1280
- var _a;
1281
- this.toggleMonthAndYearView();
1282
- /**
1283
- * TODO: FW-3547
1284
- *
1285
- * Currently there is not a way to set the aria-label on the inner button
1286
- * on the `ion-item` and have it be reactive to changes. This is a workaround
1287
- * until we either refactor `ion-item` to a button or Stencil adds a way to
1288
- * have reactive props for built-in properties, such as `aria-label`.
1289
- */
1290
- const { monthYearToggleItemRef } = this;
1291
- if (monthYearToggleItemRef) {
1292
- const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
1293
- if (btn) {
1294
- const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
1295
- btn.setAttribute('aria-label', monthYearAriaLabel);
1296
- }
1297
- }
1298
- } }, 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) => {
1280
+ return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
1281
+ 'calendar-month-year-toggle': true,
1282
+ 'ion-activatable': true,
1283
+ 'ion-focusable': true,
1284
+ }, 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) => {
1299
1285
  return h("div", { class: "day-of-week" }, d);
1300
1286
  }))));
1301
1287
  }
@@ -1456,7 +1442,7 @@ export class Datetime {
1456
1442
  * This will correctly scroll the element position to the correct time value,
1457
1443
  * before the popover is fully presented.
1458
1444
  */
1459
- const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1445
+ const cols = ev.target.querySelectorAll('ion-picker-column');
1460
1446
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1461
1447
  cols.forEach((col) => col.scrollActiveItemIntoView());
1462
1448
  }, style: {
@@ -2384,3 +2370,5 @@ export class Datetime {
2384
2370
  }
2385
2371
  }
2386
2372
  let datetimeIds = 0;
2373
+ const WHEEL_ITEM_PART = 'wheel-item';
2374
+ 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,24 +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
- 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;
310
+ --background: transparent;
338
311
  }
339
312
 
340
313
  :host .calendar-days-of-week {
@@ -516,8 +489,72 @@ ion-picker-column-internal {
516
489
  position: static;
517
490
  }
518
491
 
519
- :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
- --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);
521
558
  }
522
559
 
523
560
  /**
@@ -601,15 +638,36 @@ ion-picker-column-internal {
601
638
  font-size: 2.125rem;
602
639
  }
603
640
 
604
- :host .datetime-calendar .calendar-action-buttons ion-item {
605
- --padding-start: 20px;
606
- }
607
-
608
- :host .calendar-action-buttons ion-item,
609
641
  :host .calendar-action-buttons ion-button {
610
642
  --color: var(--ion-color-step-650, #595959);
611
643
  }
612
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
+ }
613
671
  :host .calendar-days-of-week {
614
672
  -webkit-padding-start: 10px;
615
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();