@ionic/core 7.6.2-dev.11702924017.193c825c → 7.6.2-dev.11702933439.181fa64e

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 (517) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/backdrop.js +12 -0
  3. package/components/button-active.js +1 -1
  4. package/components/button.js +2 -2
  5. package/components/data.js +1 -1
  6. package/components/gesture-controller.js +1 -1
  7. package/components/ion-content.js +1 -1
  8. package/components/ion-datetime.js +64 -40
  9. package/components/ion-picker-column-internal.d.ts +11 -0
  10. package/components/ion-picker-column-internal.js +9 -0
  11. package/components/ion-picker-column.js +2 -2
  12. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  13. package/components/ion-picker-internal.js +9 -0
  14. package/components/ion-picker.js +309 -1
  15. package/components/overlays.js +4 -11
  16. package/components/picker-column-internal.js +390 -0
  17. package/components/picker-column.js +322 -351
  18. package/components/{picker.js → picker-internal.js} +22 -29
  19. package/dist/cjs/{app-globals-7def22c8.js → app-globals-cd7be47d.js} +1 -1
  20. package/dist/cjs/{button-active-466dfc8a.js → button-active-21b0334e.js} +3 -3
  21. package/dist/cjs/{data-e2bf21de.js → data-a5109f09.js} +1 -1
  22. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-c40c045a.js} +0 -1
  23. package/dist/cjs/{index-50dcfe2f.js → index-1699be56.js} +24 -16
  24. package/dist/cjs/{index-3b012034.js → index-4e68b270.js} +1 -1
  25. package/dist/cjs/{index-17ab7794.js → index-862c03dc.js} +3 -3
  26. package/dist/cjs/{index-ee07ed59.js → index-d1b59ffa.js} +1 -1
  27. package/dist/cjs/index.cjs.js +9 -9
  28. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  29. package/dist/cjs/ion-action-sheet.cjs.entry.js +10 -10
  30. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  31. package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
  32. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -2
  35. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  37. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  42. package/dist/cjs/ion-datetime_3.cjs.entry.js +59 -39
  43. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-loading.cjs.entry.js +3 -4
  50. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  51. package/dist/cjs/ion-modal.cjs.entry.js +6 -6
  52. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  53. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +89 -106
  54. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +20 -27
  55. package/dist/cjs/ion-popover.cjs.entry.js +4 -5
  56. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  60. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-select_3.cjs.entry.js +4 -5
  66. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  70. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  73. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  74. package/dist/cjs/{ionic-global-a4edbf03.js → ionic-global-592bef9e.js} +1 -1
  75. package/dist/cjs/ionic.cjs.js +5 -5
  76. package/dist/cjs/{ios.transition-b5353f3e.js → ios.transition-1ac35be5.js} +2 -2
  77. package/dist/cjs/loader.cjs.js +4 -4
  78. package/dist/cjs/{md.transition-67157dd9.js → md.transition-df2947e8.js} +2 -2
  79. package/dist/cjs/{overlays-7773cbe1.js → overlays-e10edfa0.js} +5 -12
  80. package/dist/cjs/{status-tap-b5d77c08.js → status-tap-23a3173f.js} +1 -1
  81. package/dist/cjs/{swipe-back-b8f2330b.js → swipe-back-2a858bbd.js} +2 -2
  82. package/dist/collection/collection-manifest.json +7 -8
  83. package/dist/collection/components/accordion-group/accordion-group.js +6 -4
  84. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -9
  85. package/dist/collection/components/action-sheet/action-sheet.js +8 -12
  86. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -9
  87. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +0 -20
  88. package/dist/collection/components/alert/alert.js +6 -10
  89. package/dist/collection/components/app/app.js +3 -2
  90. package/dist/collection/components/backdrop/backdrop.js +12 -0
  91. package/dist/collection/components/button/button.ios.css +1 -1
  92. package/dist/collection/components/button/button.md.css +1 -1
  93. package/dist/collection/components/button/test/wrap/button.e2e.js +24 -12
  94. package/dist/collection/components/content/content.css +4 -0
  95. package/dist/collection/components/content/content.js +24 -40
  96. package/dist/collection/components/datetime/datetime.ios.css +38 -91
  97. package/dist/collection/components/datetime/datetime.js +45 -30
  98. package/dist/collection/components/datetime/datetime.md.css +38 -96
  99. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  100. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  101. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  102. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  103. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  104. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  105. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  106. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  107. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +41 -43
  108. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  109. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  110. package/dist/collection/components/datetime/test/values/datetime.e2e.js +12 -15
  111. package/dist/collection/components/datetime/utils/data.js +1 -1
  112. package/dist/collection/components/icon/test/dir/heart-broken.svg +0 -0
  113. package/dist/collection/components/item/test/icons/heart-broken.svg +0 -0
  114. package/dist/collection/components/item-sliding/item-sliding.js +3 -5
  115. package/dist/collection/components/loading/loading.js +6 -10
  116. package/dist/collection/components/menu/menu.js +15 -10
  117. package/dist/collection/components/modal/modal.js +9 -12
  118. package/dist/collection/components/nav/nav.js +114 -190
  119. package/dist/collection/components/picker/picker.ios.css +211 -112
  120. package/dist/collection/components/picker/picker.js +738 -472
  121. package/dist/collection/components/picker/picker.md.css +198 -108
  122. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -99
  123. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  124. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  125. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  126. package/dist/collection/components/picker-column/picker-column.js +335 -497
  127. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  128. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  129. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  130. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  131. package/dist/collection/components/{picker-column-option/picker-column-option.md.css → picker-column-internal/picker-column-internal.ios.css} +53 -6
  132. package/dist/collection/components/picker-column-internal/picker-column-internal.js +566 -0
  133. package/dist/collection/components/{picker-column/picker-column.css → picker-column-internal/picker-column-internal.md.css} +83 -96
  134. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +8 -8
  135. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +162 -0
  136. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  137. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  138. package/dist/collection/components/{picker-legacy/picker.ios.css → picker-internal/picker-internal.md.css} +98 -207
  139. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  140. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  141. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +32 -63
  142. package/dist/collection/components/popover/popover.js +18 -21
  143. package/dist/collection/components/radio/radio.js +6 -4
  144. package/dist/collection/components/refresher/refresher.js +3 -0
  145. package/dist/collection/components/reorder-group/reorder-group.js +3 -5
  146. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -10
  147. package/dist/collection/components/router/router.js +12 -14
  148. package/dist/collection/components/router-outlet/router-outlet.js +21 -14
  149. package/dist/collection/components/select/select.js +3 -5
  150. package/dist/collection/components/tabs/tabs.js +9 -12
  151. package/dist/collection/components/toast/toast.js +6 -10
  152. package/dist/collection/utils/gesture/button-active.js +1 -1
  153. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  154. package/dist/collection/utils/overlays.js +4 -11
  155. package/dist/docs.d.ts +1 -21
  156. package/dist/docs.json +786 -1029
  157. package/dist/esm/{app-globals-8c62bec2.js → app-globals-736d53f6.js} +1 -1
  158. package/dist/esm/{button-active-2758ff14.js → button-active-7836d6bf.js} +3 -3
  159. package/dist/esm/{data-6a31d701.js → data-775093f5.js} +1 -1
  160. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  161. package/dist/esm/{index-39782642.js → index-2cf77112.js} +2 -2
  162. package/dist/esm/{index-4743453d.js → index-6b0e432e.js} +3 -3
  163. package/dist/esm/{index-b7d870cf.js → index-78d39194.js} +24 -16
  164. package/dist/esm/{index-1193f005.js → index-c4ebf628.js} +1 -1
  165. package/dist/esm/index.js +9 -9
  166. package/dist/esm/ion-accordion_2.entry.js +3 -3
  167. package/dist/esm/ion-action-sheet.entry.js +10 -10
  168. package/dist/esm/ion-alert.entry.js +6 -6
  169. package/dist/esm/ion-app_8.entry.js +6 -6
  170. package/dist/esm/ion-avatar_3.entry.js +2 -2
  171. package/dist/esm/ion-back-button.entry.js +3 -3
  172. package/dist/esm/ion-backdrop.entry.js +14 -2
  173. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  174. package/dist/esm/ion-button_2.entry.js +4 -4
  175. package/dist/esm/ion-card_5.entry.js +2 -2
  176. package/dist/esm/ion-checkbox.entry.js +2 -2
  177. package/dist/esm/ion-chip.entry.js +2 -2
  178. package/dist/esm/ion-col_3.entry.js +2 -2
  179. package/dist/esm/ion-datetime-button.entry.js +3 -3
  180. package/dist/esm/ion-datetime_3.entry.js +58 -38
  181. package/dist/esm/ion-fab_3.entry.js +3 -3
  182. package/dist/esm/ion-img.entry.js +2 -2
  183. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  184. package/dist/esm/ion-input.entry.js +3 -3
  185. package/dist/esm/ion-item-option_3.entry.js +3 -3
  186. package/dist/esm/ion-item_8.entry.js +3 -3
  187. package/dist/esm/ion-loading.entry.js +3 -4
  188. package/dist/esm/ion-menu_3.entry.js +7 -7
  189. package/dist/esm/ion-modal.entry.js +6 -6
  190. package/dist/esm/ion-nav_2.entry.js +4 -4
  191. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +89 -106
  192. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +20 -27
  193. package/dist/esm/ion-popover.entry.js +4 -5
  194. package/dist/esm/ion-progress-bar.entry.js +2 -2
  195. package/dist/esm/ion-radio_2.entry.js +2 -2
  196. package/dist/esm/ion-range.entry.js +3 -3
  197. package/dist/esm/ion-refresher_2.entry.js +6 -6
  198. package/dist/esm/ion-reorder_2.entry.js +4 -4
  199. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  200. package/dist/esm/ion-route_4.entry.js +2 -2
  201. package/dist/esm/ion-searchbar.entry.js +3 -3
  202. package/dist/esm/ion-segment_2.entry.js +3 -3
  203. package/dist/esm/ion-select_3.entry.js +4 -5
  204. package/dist/esm/ion-spinner.entry.js +2 -2
  205. package/dist/esm/ion-split-pane.entry.js +2 -2
  206. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  207. package/dist/esm/ion-tab_2.entry.js +1 -1
  208. package/dist/esm/ion-text.entry.js +2 -2
  209. package/dist/esm/ion-textarea.entry.js +2 -2
  210. package/dist/esm/ion-toast.entry.js +5 -5
  211. package/dist/esm/ion-toggle.entry.js +4 -4
  212. package/dist/esm/{ionic-global-1f99b929.js → ionic-global-6270e632.js} +1 -1
  213. package/dist/esm/ionic.js +6 -6
  214. package/dist/esm/{ios.transition-3376ccb2.js → ios.transition-cfb6d320.js} +2 -2
  215. package/dist/esm/loader.js +5 -5
  216. package/dist/esm/{md.transition-f992779f.js → md.transition-77e73830.js} +2 -2
  217. package/dist/esm/{overlays-94dac1cb.js → overlays-55cf1508.js} +5 -12
  218. package/dist/esm/polyfills/core-js.js +0 -0
  219. package/dist/esm/polyfills/dom.js +0 -0
  220. package/dist/esm/polyfills/es5-html-element.js +0 -0
  221. package/dist/esm/polyfills/index.js +0 -0
  222. package/dist/esm/polyfills/system.js +0 -0
  223. package/dist/esm/{status-tap-16fd8f3d.js → status-tap-92380b33.js} +1 -1
  224. package/dist/esm/{swipe-back-a8ca7f93.js → swipe-back-a6f386fc.js} +2 -2
  225. package/dist/esm-es5/app-globals-736d53f6.js +4 -0
  226. package/dist/esm-es5/button-active-7836d6bf.js +4 -0
  227. package/dist/esm-es5/{gesture-controller-314a54f6.js → gesture-controller-1bf57181.js} +1 -1
  228. package/dist/esm-es5/{index-39782642.js → index-2cf77112.js} +1 -1
  229. package/dist/esm-es5/{index-4743453d.js → index-6b0e432e.js} +1 -1
  230. package/dist/esm-es5/index-78d39194.js +5 -0
  231. package/dist/esm-es5/{index-1193f005.js → index-c4ebf628.js} +1 -1
  232. package/dist/esm-es5/index.js +1 -1
  233. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  235. package/dist/esm-es5/ion-alert.entry.js +1 -1
  236. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  237. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  238. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  239. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  240. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  241. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  242. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  243. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  244. package/dist/esm-es5/ion-chip.entry.js +1 -1
  245. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  246. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  247. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  248. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  249. package/dist/esm-es5/ion-img.entry.js +1 -1
  250. package/dist/esm-es5/ion-infinite-scroll_2.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-progress-bar.entry.js +1 -1
  262. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  263. package/dist/esm-es5/ion-range.entry.js +1 -1
  264. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  265. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  266. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  267. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  268. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  269. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  270. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  271. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  272. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  273. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  274. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  275. package/dist/esm-es5/ion-text.entry.js +1 -1
  276. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  277. package/dist/esm-es5/ion-toast.entry.js +1 -1
  278. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  279. package/dist/esm-es5/{ionic-global-1f99b929.js → ionic-global-6270e632.js} +1 -1
  280. package/dist/esm-es5/ionic.js +1 -1
  281. package/dist/esm-es5/{ios.transition-3376ccb2.js → ios.transition-cfb6d320.js} +1 -1
  282. package/dist/esm-es5/loader.js +1 -1
  283. package/dist/esm-es5/md.transition-77e73830.js +4 -0
  284. package/dist/esm-es5/overlays-55cf1508.js +4 -0
  285. package/dist/esm-es5/{status-tap-16fd8f3d.js → status-tap-92380b33.js} +1 -1
  286. package/dist/esm-es5/swipe-back-a6f386fc.js +4 -0
  287. package/dist/html.html-data.json +13 -152
  288. package/dist/ionic/index.esm.js +1 -1
  289. package/dist/ionic/ionic.esm.js +1 -1
  290. package/dist/ionic/ionic.js +1 -1
  291. package/dist/ionic/{p-a074be82.system.js → p-0029c932.system.js} +1 -1
  292. package/dist/ionic/{p-529b24fb.entry.js → p-00afbe80.entry.js} +1 -1
  293. package/dist/ionic/p-026707ab.js +4 -0
  294. package/dist/ionic/{p-4981ea0a.system.entry.js → p-0a617e59.system.entry.js} +1 -1
  295. package/dist/ionic/{p-db05ecb6.system.entry.js → p-0f244e47.system.entry.js} +1 -1
  296. package/dist/ionic/p-106e9ce9.entry.js +4 -0
  297. package/dist/ionic/{p-52cfafe9.system.js → p-10f2a748.system.js} +1 -1
  298. package/dist/ionic/{p-3313c481.entry.js → p-12a41623.entry.js} +1 -1
  299. package/dist/ionic/{p-0dfa4ab4.system.entry.js → p-149c8c11.system.entry.js} +1 -1
  300. package/dist/ionic/{p-38531958.system.entry.js → p-1ccbe3ee.system.entry.js} +1 -1
  301. package/dist/ionic/{p-ba5d9e27.entry.js → p-220ba811.entry.js} +1 -1
  302. package/dist/ionic/{p-806a9810.entry.js → p-22c7b943.entry.js} +1 -1
  303. package/dist/ionic/p-22e959cb.entry.js +4 -0
  304. package/dist/ionic/{p-13d4dfe7.entry.js → p-26af79a8.entry.js} +1 -1
  305. package/dist/ionic/{p-e33d1ebc.entry.js → p-26afb1cb.entry.js} +1 -1
  306. package/dist/ionic/{p-9f94c72e.system.js → p-28a04f26.system.js} +1 -1
  307. package/dist/ionic/p-2bdd791d.system.entry.js +4 -0
  308. package/dist/ionic/p-2c7cce0a.entry.js +4 -0
  309. package/dist/ionic/{p-25312768.system.entry.js → p-2c7ee8fe.system.entry.js} +1 -1
  310. package/dist/ionic/{p-3e1e14d9.system.js → p-31b2326e.system.js} +1 -1
  311. package/dist/ionic/{p-4685218a.system.entry.js → p-322e9039.system.entry.js} +1 -1
  312. package/dist/ionic/{p-abd5d0d5.system.entry.js → p-336ea079.system.entry.js} +1 -1
  313. package/dist/ionic/{p-d2634efe.system.entry.js → p-33a569df.system.entry.js} +1 -1
  314. package/dist/ionic/p-35ce400e.system.js +4 -0
  315. package/dist/ionic/{p-bb3fd397.entry.js → p-36704958.entry.js} +1 -1
  316. package/dist/ionic/p-38be1c0f.system.entry.js +4 -0
  317. package/dist/ionic/{p-0509fd34.js → p-394865a5.js} +1 -1
  318. package/dist/ionic/{p-e2737fef.system.entry.js → p-39d6d212.system.entry.js} +1 -1
  319. package/dist/ionic/{p-6e4c7340.system.entry.js → p-3d0221e5.system.entry.js} +1 -1
  320. package/dist/ionic/{p-c01803db.entry.js → p-3dd34db9.entry.js} +1 -1
  321. package/dist/ionic/{p-0aa78a8d.system.js → p-3ef606fa.system.js} +1 -1
  322. package/dist/ionic/p-4225fa09.js +4 -0
  323. package/dist/ionic/{p-332ea4d3.system.entry.js → p-42eaba59.system.entry.js} +1 -1
  324. package/dist/ionic/p-45e296d3.system.entry.js +4 -0
  325. package/dist/ionic/{p-ed8402d6.entry.js → p-478c4f2e.entry.js} +1 -1
  326. package/dist/ionic/{p-44dc52e5.entry.js → p-47c90ee4.entry.js} +1 -1
  327. package/dist/ionic/{p-84b567a6.entry.js → p-494983ab.entry.js} +1 -1
  328. package/dist/ionic/{p-26c4bf85.entry.js → p-4b3d1d68.entry.js} +1 -1
  329. package/dist/ionic/{p-cd574dfa.js → p-4b6089e6.js} +1 -1
  330. package/dist/ionic/{p-9a68d8ef.system.js → p-4fbc0c3b.system.js} +1 -1
  331. package/dist/ionic/{p-c08fe2c0.entry.js → p-532acc35.entry.js} +1 -1
  332. package/dist/ionic/p-586de692.system.entry.js +4 -0
  333. package/dist/ionic/{p-69641343.system.entry.js → p-5d5d621a.system.entry.js} +1 -1
  334. package/dist/ionic/p-5eea0433.system.entry.js +4 -0
  335. package/dist/ionic/p-60a574c1.entry.js +4 -0
  336. package/dist/ionic/{p-0ebc87b7.system.entry.js → p-61cdea9d.system.entry.js} +1 -1
  337. package/dist/ionic/p-6a6477b2.js +4 -0
  338. package/dist/ionic/{p-19d9ceb8.system.js → p-6d74d882.system.js} +1 -1
  339. package/dist/ionic/p-6e58bc9b.system.js +4 -0
  340. package/dist/ionic/{p-642ac927.entry.js → p-6eb35f60.entry.js} +1 -1
  341. package/dist/ionic/{p-04377cfa.js → p-70dd9d79.js} +1 -1
  342. package/dist/ionic/{p-cb8dff22.system.entry.js → p-72ad8f87.system.entry.js} +1 -1
  343. package/dist/ionic/p-73f47fce.system.entry.js +4 -0
  344. package/dist/ionic/{p-92bfb607.entry.js → p-754bcac2.entry.js} +1 -1
  345. package/dist/ionic/p-76cab6f8.js +4 -0
  346. package/dist/ionic/p-7c057cbc.entry.js +4 -0
  347. package/dist/ionic/{p-cf53213c.entry.js → p-7c7ffd26.entry.js} +1 -1
  348. package/dist/ionic/p-7e07c38f.js +5 -0
  349. package/dist/ionic/{p-f0504446.system.entry.js → p-7fb31fb2.system.entry.js} +1 -1
  350. package/dist/ionic/{p-b7058a0e.system.entry.js → p-82e7b12b.system.entry.js} +1 -1
  351. package/dist/ionic/{p-0550f802.entry.js → p-8345c94e.entry.js} +1 -1
  352. package/dist/ionic/p-86b88102.system.entry.js +4 -0
  353. package/dist/ionic/p-8ac48377.system.entry.js +4 -0
  354. package/dist/ionic/{p-1ab2642a.system.js → p-8f1e7b4c.system.js} +1 -1
  355. package/dist/ionic/{p-beed2450.system.entry.js → p-909a997a.system.entry.js} +1 -1
  356. package/dist/ionic/{p-20e0e75d.system.entry.js → p-93c75152.system.entry.js} +1 -1
  357. package/dist/ionic/{p-4793c14c.system.entry.js → p-990912bd.system.entry.js} +1 -1
  358. package/dist/ionic/{p-803efb5d.entry.js → p-9b837aa0.entry.js} +1 -1
  359. package/dist/ionic/p-9e098902.entry.js +4 -0
  360. package/dist/ionic/{p-beeed22c.system.entry.js → p-a0f9488c.system.entry.js} +1 -1
  361. package/dist/ionic/{p-5ff211d0.system.entry.js → p-a13d22c3.system.entry.js} +1 -1
  362. package/dist/ionic/{p-97174c1e.js → p-a2cd14c6.js} +1 -1
  363. package/dist/ionic/p-a37e738b.system.js +4 -0
  364. package/dist/ionic/{p-6855f26a.entry.js → p-a610605e.entry.js} +1 -1
  365. package/dist/ionic/{p-0cc80201.entry.js → p-a692f502.entry.js} +1 -1
  366. package/dist/ionic/{p-964dcdb2.system.entry.js → p-a74e7199.system.entry.js} +1 -1
  367. package/dist/ionic/{p-11bf2ad0.system.entry.js → p-aa4e59fb.system.entry.js} +1 -1
  368. package/dist/ionic/{p-bec6ae40.entry.js → p-aa75cca3.entry.js} +1 -1
  369. package/dist/ionic/p-abcd194b.system.entry.js +4 -0
  370. package/dist/ionic/{p-b2b5d761.entry.js → p-b3931df6.entry.js} +1 -1
  371. package/dist/ionic/{p-a3013394.entry.js → p-b62c0f2e.entry.js} +1 -1
  372. package/dist/ionic/{p-0e908476.system.entry.js → p-b710b39c.system.entry.js} +1 -1
  373. package/dist/ionic/p-b74c1510.entry.js +4 -0
  374. package/dist/ionic/{p-950c05ad.entry.js → p-b794b87a.entry.js} +1 -1
  375. package/dist/ionic/{p-9b97df10.js → p-bb3615f7.js} +1 -1
  376. package/dist/ionic/{p-d93eed83.system.entry.js → p-be650493.system.entry.js} +1 -1
  377. package/dist/ionic/{p-42925096.system.entry.js → p-c2e60d23.system.entry.js} +1 -1
  378. package/dist/ionic/{p-1501b945.system.js → p-c491c7ce.system.js} +1 -1
  379. package/dist/ionic/{p-7dcf795f.entry.js → p-c661d124.entry.js} +1 -1
  380. package/dist/ionic/{p-5ad1fe3b.system.js → p-c66b0166.system.js} +1 -1
  381. package/dist/ionic/{p-20d469d0.system.js → p-c7c8429a.system.js} +1 -1
  382. package/dist/ionic/{p-f6cae0b2.system.entry.js → p-c8237c3c.system.entry.js} +1 -1
  383. package/dist/ionic/{p-1b14f0f8.entry.js → p-ca2ea280.entry.js} +1 -1
  384. package/dist/ionic/{p-3b434dee.system.entry.js → p-ca6fb31a.system.entry.js} +1 -1
  385. package/dist/ionic/{p-928ee57a.entry.js → p-ca730236.entry.js} +1 -1
  386. package/dist/ionic/p-cd9c4ffe.system.entry.js +4 -0
  387. package/dist/ionic/{p-60959b71.entry.js → p-ce7ef475.entry.js} +1 -1
  388. package/dist/ionic/{p-61e4d3ec.entry.js → p-cea29c88.entry.js} +1 -1
  389. package/dist/ionic/{p-799da666.entry.js → p-d3f2db71.entry.js} +1 -1
  390. package/dist/ionic/p-d6f34fe9.entry.js +4 -0
  391. package/dist/ionic/{p-6e0539ea.system.entry.js → p-d7da1178.system.entry.js} +1 -1
  392. package/dist/ionic/{p-20755eb0.entry.js → p-d9b88ba6.entry.js} +1 -1
  393. package/dist/ionic/{p-41208f54.system.entry.js → p-dbe4f2bc.system.entry.js} +1 -1
  394. package/dist/ionic/{p-9fb45814.entry.js → p-de161adf.entry.js} +1 -1
  395. package/dist/ionic/p-de3aa772.entry.js +4 -0
  396. package/dist/ionic/{p-da666998.system.entry.js → p-e292e49b.system.entry.js} +1 -1
  397. package/dist/ionic/{p-b8a9e195.system.entry.js → p-e3f8c30f.system.entry.js} +1 -1
  398. package/dist/ionic/{p-ae4b7df8.entry.js → p-e4d320f7.entry.js} +1 -1
  399. package/dist/ionic/{p-3dc1b0f9.entry.js → p-e579a727.entry.js} +1 -1
  400. package/dist/ionic/{p-10339dcc.entry.js → p-e5a6f367.entry.js} +1 -1
  401. package/dist/ionic/{p-4489dd20.system.entry.js → p-e6327ff5.system.entry.js} +1 -1
  402. package/dist/ionic/{p-7fae5c36.js → p-e89d7c8a.js} +1 -1
  403. package/dist/ionic/{p-3af5faf8.system.entry.js → p-ec49bd1f.system.entry.js} +1 -1
  404. package/dist/ionic/{p-3dfc522b.entry.js → p-ed3b7404.entry.js} +1 -1
  405. package/dist/ionic/{p-19c379da.system.entry.js → p-ef2445a2.system.entry.js} +1 -1
  406. package/dist/ionic/{p-a49931aa.system.js → p-f30eb152.system.js} +1 -1
  407. package/dist/ionic/{p-44a56556.js → p-f501137d.js} +1 -1
  408. package/dist/ionic/{p-8ededb41.js → p-f5d2dc9b.js} +1 -1
  409. package/dist/ionic/{p-043aa6cc.system.entry.js → p-f7cb002f.system.entry.js} +1 -1
  410. package/dist/ionic/p-ffb54fd5.entry.js +4 -0
  411. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +0 -1
  412. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  413. package/dist/types/components/datetime/datetime.d.ts +1 -0
  414. package/dist/types/components/datetime/utils/data.d.ts +7 -11
  415. package/dist/types/components/menu/menu.d.ts +1 -1
  416. package/dist/types/components/picker/picker.d.ts +129 -75
  417. package/dist/types/components/picker-column/picker-column.d.ts +39 -99
  418. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +5 -0
  419. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  420. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  421. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  422. package/dist/types/components/refresher/refresher.d.ts +3 -0
  423. package/dist/types/components.d.ts +130 -154
  424. package/dist/types/interface.d.ts +1 -1
  425. package/dist/types/utils/config.d.ts +2 -2
  426. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  427. package/dist/types/utils/overlays.d.ts +2 -5
  428. package/dist/types/utils/test/playwright/page/utils/goto.d.ts +1 -1
  429. package/hydrate/index.d.ts +1 -1
  430. package/hydrate/index.js +2676 -1082
  431. package/package.json +31 -29
  432. package/components/ion-picker-column-option.d.ts +0 -11
  433. package/components/ion-picker-column-option.js +0 -9
  434. package/components/ion-picker-legacy-column.d.ts +0 -11
  435. package/components/ion-picker-legacy-column.js +0 -9
  436. package/components/ion-picker-legacy.js +0 -309
  437. package/components/picker-column-option.js +0 -122
  438. package/components/picker-column2.js +0 -379
  439. package/dist/cjs/ion-picker-column-option.cjs.entry.js +0 -104
  440. package/dist/collection/components/picker/test/custom/picker.e2e.js +0 -85
  441. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +0 -91
  442. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +0 -39
  443. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -87
  444. package/dist/collection/components/picker-column-option/picker-column-option.js +0 -173
  445. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +0 -18
  446. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +0 -37
  447. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +0 -29
  448. package/dist/collection/components/picker-legacy/picker.js +0 -817
  449. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  450. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  451. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  452. package/dist/esm/ion-picker-column-option.entry.js +0 -100
  453. package/dist/esm-es5/app-globals-8c62bec2.js +0 -4
  454. package/dist/esm-es5/button-active-2758ff14.js +0 -4
  455. package/dist/esm-es5/index-b7d870cf.js +0 -5
  456. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  457. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  458. package/dist/esm-es5/ion-picker.entry.js +0 -4
  459. package/dist/esm-es5/md.transition-f992779f.js +0 -4
  460. package/dist/esm-es5/overlays-94dac1cb.js +0 -4
  461. package/dist/esm-es5/swipe-back-a8ca7f93.js +0 -4
  462. package/dist/ionic/p-26ff1180.entry.js +0 -4
  463. package/dist/ionic/p-290d3fe9.js +0 -5
  464. package/dist/ionic/p-2f449cdf.system.entry.js +0 -4
  465. package/dist/ionic/p-3717e641.system.entry.js +0 -4
  466. package/dist/ionic/p-51abefb7.system.js +0 -4
  467. package/dist/ionic/p-71483cbb.entry.js +0 -4
  468. package/dist/ionic/p-73fbf18d.entry.js +0 -4
  469. package/dist/ionic/p-75a3e35b.entry.js +0 -4
  470. package/dist/ionic/p-77d78f68.system.entry.js +0 -4
  471. package/dist/ionic/p-7c0d778d.system.js +0 -4
  472. package/dist/ionic/p-80ad9792.system.js +0 -4
  473. package/dist/ionic/p-85a67421.system.entry.js +0 -4
  474. package/dist/ionic/p-8ad6d643.entry.js +0 -4
  475. package/dist/ionic/p-9164a09d.entry.js +0 -4
  476. package/dist/ionic/p-98f35d98.js +0 -4
  477. package/dist/ionic/p-a06501e3.entry.js +0 -4
  478. package/dist/ionic/p-a1bd098f.system.entry.js +0 -4
  479. package/dist/ionic/p-a41eaff2.system.entry.js +0 -4
  480. package/dist/ionic/p-a60a1ce5.js +0 -4
  481. package/dist/ionic/p-c001b24f.entry.js +0 -4
  482. package/dist/ionic/p-c19bf524.entry.js +0 -4
  483. package/dist/ionic/p-c6176849.system.entry.js +0 -4
  484. package/dist/ionic/p-cf350317.entry.js +0 -4
  485. package/dist/ionic/p-d3525765.js +0 -4
  486. package/dist/ionic/p-dc63dccb.system.entry.js +0 -4
  487. package/dist/ionic/p-e2903cdc.system.entry.js +0 -4
  488. package/dist/ionic/p-f0717d98.js +0 -4
  489. package/dist/ionic/p-f0dea903.system.entry.js +0 -4
  490. package/dist/ionic/p-f60807dd.system.entry.js +0 -4
  491. package/dist/ionic/p-f8c5008f.entry.js +0 -4
  492. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -144
  493. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  494. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +0 -4
  495. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -66
  496. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  497. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  498. /package/dist/cjs/{index-09471526.js → index-677c4d13.js} +0 -0
  499. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  500. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  501. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  502. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.ios.css +0 -0
  503. /package/dist/collection/components/{picker-legacy-column → picker-column}/picker-column.md.css +0 -0
  504. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  505. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  506. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  507. /package/dist/esm/{index-c132c5f1.js → index-4d016006.js} +0 -0
  508. /package/dist/esm-es5/{data-6a31d701.js → data-775093f5.js} +0 -0
  509. /package/dist/esm-es5/{index-c132c5f1.js → index-4d016006.js} +0 -0
  510. /package/dist/ionic/{p-8050b9b9.system.js → p-0c55ffe1.system.js} +0 -0
  511. /package/dist/ionic/{p-a64accf5.js → p-18cae04f.js} +0 -0
  512. /package/dist/ionic/{p-7ff4359e.system.js → p-87bb3735.system.js} +0 -0
  513. /package/dist/ionic/{p-ea96fa73.js → p-e90d610c.js} +0 -0
  514. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  515. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  516. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  517. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
@@ -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", null, renderArray);
999
+ return h("ion-picker-internal", 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", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
1058
+ return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, 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
- } }, 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)))));
1074
+ } }));
1075
1075
  }
1076
1076
  renderIndividualDatePickerColumns(forcePresentation) {
1077
1077
  const { workingParts, isDateEnabled } = this;
@@ -1139,8 +1139,7 @@ export class Datetime {
1139
1139
  }
1140
1140
  const { disabled, workingParts } = this;
1141
1141
  const activePart = this.getActivePartsWithFallback();
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) => {
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) => {
1144
1143
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1145
1144
  // Due to a Safari 14 issue we need to destroy
1146
1145
  // the scroll listener before we update state
@@ -1154,7 +1153,7 @@ export class Datetime {
1154
1153
  // the working parts have been updated.
1155
1154
  this.initializeCalendarListener();
1156
1155
  ev.stopPropagation();
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)))));
1156
+ } }));
1158
1157
  }
1159
1158
  renderMonthPickerColumn(months) {
1160
1159
  if (months.length === 0) {
@@ -1162,7 +1161,7 @@ export class Datetime {
1162
1161
  }
1163
1162
  const { disabled, workingParts } = this;
1164
1163
  const activePart = this.getActivePartsWithFallback();
1165
- return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
1164
+ return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1166
1165
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1167
1166
  // Due to a Safari 14 issue we need to destroy
1168
1167
  // the scroll listener before we update state
@@ -1176,7 +1175,7 @@ export class Datetime {
1176
1175
  // the working parts have been updated.
1177
1176
  this.initializeCalendarListener();
1178
1177
  ev.stopPropagation();
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)))));
1178
+ } }));
1180
1179
  }
1181
1180
  renderYearPickerColumn(years) {
1182
1181
  if (years.length === 0) {
@@ -1184,7 +1183,7 @@ export class Datetime {
1184
1183
  }
1185
1184
  const { disabled, workingParts } = this;
1186
1185
  const activePart = this.getActivePartsWithFallback();
1187
- return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
1186
+ return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1188
1187
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1189
1188
  // Due to a Safari 14 issue we need to destroy
1190
1189
  // the scroll listener before we update state
@@ -1198,7 +1197,7 @@ export class Datetime {
1198
1197
  // the working parts have been updated.
1199
1198
  this.initializeCalendarListener();
1200
1199
  ev.stopPropagation();
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)))));
1200
+ } }));
1202
1201
  }
1203
1202
  renderTimePickerColumns(forcePresentation) {
1204
1203
  if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {
@@ -1227,22 +1226,22 @@ export class Datetime {
1227
1226
  if (hoursData.length === 0)
1228
1227
  return [];
1229
1228
  const activePart = this.getActivePartsWithFallback();
1230
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
1229
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1231
1230
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1232
1231
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1233
1232
  ev.stopPropagation();
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)))));
1233
+ } }));
1235
1234
  }
1236
1235
  renderMinutePickerColumn(minutesData) {
1237
1236
  const { disabled, workingParts } = this;
1238
1237
  if (minutesData.length === 0)
1239
1238
  return [];
1240
1239
  const activePart = this.getActivePartsWithFallback();
1241
- return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
1240
+ return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1242
1241
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1243
1242
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1244
1243
  ev.stopPropagation();
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)))));
1244
+ } }));
1246
1245
  }
1247
1246
  renderDayPeriodPickerColumn(dayPeriodData) {
1248
1247
  const { disabled, workingParts } = this;
@@ -1251,12 +1250,12 @@ export class Datetime {
1251
1250
  }
1252
1251
  const activePart = this.getActivePartsWithFallback();
1253
1252
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1254
- return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
1253
+ return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1255
1254
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1256
1255
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1257
1256
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
1258
1257
  ev.stopPropagation();
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)))));
1258
+ } }));
1260
1259
  }
1261
1260
  renderWheelView(forcePresentation) {
1262
1261
  const { locale } = this;
@@ -1277,11 +1276,26 @@ export class Datetime {
1277
1276
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1278
1277
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1279
1278
  const hostDir = this.el.getAttribute('dir') || undefined;
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) => {
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) => {
1285
1299
  return h("div", { class: "day-of-week" }, d);
1286
1300
  }))));
1287
1301
  }
@@ -1442,7 +1456,7 @@ export class Datetime {
1442
1456
  * This will correctly scroll the element position to the correct time value,
1443
1457
  * before the popover is fully presented.
1444
1458
  */
1445
- const cols = ev.target.querySelectorAll('ion-picker-column');
1459
+ const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1446
1460
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1447
1461
  cols.forEach((col) => col.scrollActiveItemIntoView());
1448
1462
  }, style: {
@@ -2279,8 +2293,9 @@ export class Datetime {
2279
2293
  "complexType": {
2280
2294
  "signature": "(closeOverlay?: boolean) => Promise<void>",
2281
2295
  "parameters": [{
2282
- "tags": [],
2283
- "text": ""
2296
+ "name": "closeOverlay",
2297
+ "type": "boolean",
2298
+ "docs": ""
2284
2299
  }],
2285
2300
  "references": {
2286
2301
  "Promise": {
@@ -2299,8 +2314,9 @@ export class Datetime {
2299
2314
  "complexType": {
2300
2315
  "signature": "(startDate?: string) => Promise<void>",
2301
2316
  "parameters": [{
2302
- "tags": [],
2303
- "text": ""
2317
+ "name": "startDate",
2318
+ "type": "string | undefined",
2319
+ "docs": ""
2304
2320
  }],
2305
2321
  "references": {
2306
2322
  "Promise": {
@@ -2319,8 +2335,9 @@ export class Datetime {
2319
2335
  "complexType": {
2320
2336
  "signature": "(closeOverlay?: boolean) => Promise<void>",
2321
2337
  "parameters": [{
2322
- "tags": [],
2323
- "text": ""
2338
+ "name": "closeOverlay",
2339
+ "type": "boolean",
2340
+ "docs": ""
2324
2341
  }],
2325
2342
  "references": {
2326
2343
  "Promise": {
@@ -2370,5 +2387,3 @@ export class Datetime {
2370
2387
  }
2371
2388
  }
2372
2389
  let datetimeIds = 0;
2373
- const WHEEL_ITEM_PART = 'wheel-item';
2374
- const WHEEL_ITEM_ACTIVE_PART = `active`;
@@ -61,8 +61,6 @@
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.
66
64
  * @prop --wheel-fade-background-rgb: The color of the gradient covering non-selected items
67
65
  * when using a wheel style layout, or in the month/year picker for grid style layouts. Must
68
66
  * be in RGB format, e.g. `255, 255, 255`.
@@ -73,6 +71,19 @@
73
71
  overflow: hidden;
74
72
  }
75
73
 
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
+
76
87
  :host(.datetime-size-fixed) {
77
88
  width: auto;
78
89
  height: auto;
@@ -83,7 +94,7 @@
83
94
  }
84
95
 
85
96
  /**
86
- * This ensures that the picker is appropriately
97
+ * This ensures that the picker is apppropriately
87
98
  * sized and never truncates the text.
88
99
  */
89
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -306,8 +317,24 @@
306
317
  justify-content: space-between;
307
318
  }
308
319
 
320
+ :host .calendar-action-buttons ion-item,
309
321
  :host .calendar-action-buttons ion-button {
310
- --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;
311
338
  }
312
339
 
313
340
  :host .calendar-days-of-week {
@@ -489,72 +516,8 @@
489
516
  position: static;
490
517
  }
491
518
 
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);
519
+ :host(.show-month-and-year) .calendar-action-buttons ion-item {
520
+ --color: var(--ion-color-base);
558
521
  }
559
522
 
560
523
  /**
@@ -638,36 +601,15 @@ ion-picker {
638
601
  font-size: 2.125rem;
639
602
  }
640
603
 
641
- :host .calendar-action-buttons ion-button {
642
- --color: var(--ion-color-step-650, #595959);
643
- }
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;
604
+ :host .datetime-calendar .calendar-action-buttons ion-item {
605
+ --padding-start: 20px;
659
606
  }
660
607
 
661
- .calendar-month-year-toggle ion-ripple-effect {
662
- color: currentColor;
608
+ :host .calendar-action-buttons ion-item,
609
+ :host .calendar-action-buttons ion-button {
610
+ --color: var(--ion-color-step-650, #595959);
663
611
  }
664
612
 
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
- }
671
613
  :host .calendar-days-of-week {
672
614
  -webkit-padding-start: 10px;
673
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
  });
@@ -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 ion-picker-column-option');
16
+ const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
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 ion-picker-column-option');
27
+ const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
28
28
  const datetime = page.locator('ion-datetime');
29
29
  const ionChange = await page.spyOnEvent('ionChange');
30
30
  await monthYearToggle.click();
@@ -4,8 +4,8 @@
4
4
  import { h } from "@stencil/core";
5
5
  import { newSpecPage } from "@stencil/core/testing";
6
6
  import { Datetime } from "../../../datetime/datetime";
7
- import { 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);
@@ -85,10 +85,10 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
85
85
  });
86
86
  test('should correctly localize year column data', async ({ page }) => {
87
87
  await page.setContent(`
88
- <ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01" max="2022" min="2022"></ion-datetime>
88
+ <ion-datetime prefer-wheel="true" locale="ar-EG" presentation="date" value="2022-01-01"></ion-datetime>
89
89
  `, config);
90
90
  await page.waitForSelector('.datetime-ready');
91
- const datetimeYear = page.locator('ion-datetime .year-column ion-picker-column-option').nth(0);
91
+ const datetimeYear = page.locator('ion-datetime .year-column .picker-item[data-value="2022"]');
92
92
  await expect(datetimeYear).toHaveText('٢٠٢٢');
93
93
  });
94
94
  });
@@ -81,8 +81,8 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
81
81
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
82
82
  await page.click('.time-body');
83
83
  await ionPopoverDidPresent.next();
84
- const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
85
- const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) ion-picker-column-option');
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 ion-picker-column-option');
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 ion-picker-column-option');
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', () => {
@@ -218,7 +218,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
218
218
  ></ion-datetime>
219
219
  `, config);
220
220
  const datetime = page.locator('ion-datetime');
221
- const monthColumnItems = page.locator('ion-datetime .month-column ion-picker-column-option');
221
+ const monthColumnItems = page.locator('ion-datetime .month-column .picker-item:not(.picker-item-empty)');
222
222
  const ionChange = await page.spyOnEvent('ionChange');
223
223
  await page.waitForSelector('.datetime-ready');
224
224
  await monthColumnItems.nth(0).click(); // switch to January
@@ -258,7 +258,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
258
258
  const timeButton = page.locator('ion-datetime .time-body');
259
259
  await timeButton.click();
260
260
  await ionPopoverDidPresent.next();
261
- const hours = page.locator('ion-popover ion-picker-column:nth-child(1) ion-picker-column-option');
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();