@ionic/core 7.6.2-dev.11702674537.125883cb → 7.6.2-dev.11702924017.193c825c

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 (325) hide show
  1. package/components/action-sheet.js +4 -4
  2. package/components/backdrop.js +0 -12
  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 +40 -64
  9. package/components/ion-picker-column-option.d.ts +11 -0
  10. package/components/ion-picker-column-option.js +9 -0
  11. package/components/ion-picker-column.js +2 -2
  12. package/components/ion-picker-legacy-column.d.ts +11 -0
  13. package/components/ion-picker-legacy-column.js +9 -0
  14. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  15. package/components/ion-picker-legacy.js +309 -0
  16. package/components/ion-picker.js +1 -309
  17. package/components/overlays.js +11 -4
  18. package/components/picker-column-option.js +122 -0
  19. package/components/picker-column.js +351 -322
  20. package/components/picker-column2.js +379 -0
  21. package/components/{picker-internal.js → picker.js} +29 -22
  22. package/css/ionic.bundle.css +1 -1
  23. package/css/ionic.bundle.css.map +1 -1
  24. package/css/utils.bundle.css +0 -67
  25. package/css/utils.bundle.css.map +1 -1
  26. package/dist/cjs/{button-active-962fe442.js → button-active-466dfc8a.js} +2 -2
  27. package/dist/cjs/{data-a5109f09.js → data-e2bf21de.js} +1 -1
  28. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  29. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  30. package/dist/cjs/index.cjs.js +3 -3
  31. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  32. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  33. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  35. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-datetime_3.cjs.entry.js +36 -56
  38. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-loading.cjs.entry.js +2 -1
  40. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  42. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  44. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +104 -87
  45. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +26 -19
  46. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  47. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  49. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  51. package/dist/cjs/ion-select_3.cjs.entry.js +2 -1
  52. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  54. package/dist/cjs/ionic.cjs.js +1 -1
  55. package/dist/cjs/loader.cjs.js +1 -1
  56. package/dist/cjs/{overlays-e77cc023.js → overlays-7773cbe1.js} +11 -4
  57. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  58. package/dist/collection/collection-manifest.json +7 -6
  59. package/dist/collection/components/action-sheet/action-sheet.ios.css +9 -2
  60. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  61. package/dist/collection/components/action-sheet/action-sheet.md.css +9 -2
  62. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +20 -0
  63. package/dist/collection/components/backdrop/backdrop.js +0 -12
  64. package/dist/collection/components/button/button.ios.css +1 -1
  65. package/dist/collection/components/button/button.md.css +1 -1
  66. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  67. package/dist/collection/components/content/content.css +0 -4
  68. package/dist/collection/components/datetime/datetime.ios.css +91 -38
  69. package/dist/collection/components/datetime/datetime.js +24 -36
  70. package/dist/collection/components/datetime/datetime.md.css +96 -38
  71. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  72. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  73. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  74. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  75. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  76. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  77. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  78. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  79. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  80. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  81. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  82. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  83. package/dist/collection/components/datetime/utils/data.js +1 -1
  84. package/dist/collection/components/picker/picker.ios.css +112 -211
  85. package/dist/collection/components/picker/picker.js +472 -744
  86. package/dist/collection/components/picker/picker.md.css +108 -198
  87. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  88. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  89. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  90. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  91. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  92. package/dist/collection/components/picker-column/picker-column.js +497 -335
  93. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  94. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  95. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  96. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  97. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  98. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  99. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  100. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  101. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  102. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  103. package/dist/collection/components/picker-legacy/picker.js +817 -0
  104. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  105. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  106. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  107. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  108. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  109. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  110. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  111. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  112. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  113. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  114. package/dist/collection/utils/gesture/button-active.js +1 -1
  115. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  116. package/dist/collection/utils/overlays.js +11 -4
  117. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  118. package/dist/docs.json +484 -42
  119. package/dist/esm/{button-active-308d3edd.js → button-active-2758ff14.js} +2 -2
  120. package/dist/esm/{data-775093f5.js → data-6a31d701.js} +1 -1
  121. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  122. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  123. package/dist/esm/index.js +3 -3
  124. package/dist/esm/ion-action-sheet.entry.js +8 -8
  125. package/dist/esm/ion-alert.entry.js +4 -4
  126. package/dist/esm/ion-app_8.entry.js +2 -2
  127. package/dist/esm/ion-backdrop.entry.js +0 -12
  128. package/dist/esm/ion-button_2.entry.js +2 -2
  129. package/dist/esm/ion-datetime-button.entry.js +1 -1
  130. package/dist/esm/ion-datetime_3.entry.js +35 -55
  131. package/dist/esm/ion-item-option_3.entry.js +1 -1
  132. package/dist/esm/ion-loading.entry.js +2 -1
  133. package/dist/esm/ion-menu_3.entry.js +3 -3
  134. package/dist/esm/ion-modal.entry.js +3 -3
  135. package/dist/esm/ion-nav_2.entry.js +1 -1
  136. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  137. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +104 -87
  138. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +26 -19
  139. package/dist/esm/ion-popover.entry.js +2 -1
  140. package/dist/esm/ion-range.entry.js +1 -1
  141. package/dist/esm/ion-refresher_2.entry.js +3 -3
  142. package/dist/esm/ion-reorder_2.entry.js +1 -1
  143. package/dist/esm/ion-segment_2.entry.js +1 -1
  144. package/dist/esm/ion-select_3.entry.js +2 -1
  145. package/dist/esm/ion-toast.entry.js +3 -3
  146. package/dist/esm/ion-toggle.entry.js +1 -1
  147. package/dist/esm/ionic.js +1 -1
  148. package/dist/esm/loader.js +1 -1
  149. package/dist/esm/{overlays-b33f6bca.js → overlays-94dac1cb.js} +11 -4
  150. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  151. package/dist/esm-es5/button-active-2758ff14.js +4 -0
  152. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  153. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  154. package/dist/esm-es5/index.js +1 -1
  155. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  156. package/dist/esm-es5/ion-alert.entry.js +1 -1
  157. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  158. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  159. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  160. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  161. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  162. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  163. package/dist/esm-es5/ion-loading.entry.js +1 -1
  164. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  165. package/dist/esm-es5/ion-modal.entry.js +1 -1
  166. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  167. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  168. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  169. package/dist/esm-es5/ion-picker.entry.js +4 -0
  170. package/dist/esm-es5/ion-popover.entry.js +1 -1
  171. package/dist/esm-es5/ion-range.entry.js +1 -1
  172. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  174. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  176. package/dist/esm-es5/ion-toast.entry.js +1 -1
  177. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  178. package/dist/esm-es5/ionic.js +1 -1
  179. package/dist/esm-es5/loader.js +1 -1
  180. package/dist/esm-es5/overlays-94dac1cb.js +4 -0
  181. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  182. package/dist/html.html-data.json +152 -1
  183. package/dist/ionic/index.esm.js +1 -1
  184. package/dist/ionic/ionic.esm.js +1 -1
  185. package/dist/ionic/{p-96d4814f.system.entry.js → p-0e908476.system.entry.js} +1 -1
  186. package/dist/ionic/{p-11786dc7.entry.js → p-10339dcc.entry.js} +1 -1
  187. package/dist/ionic/{p-f2bfd3d7.entry.js → p-13d4dfe7.entry.js} +1 -1
  188. package/dist/ionic/p-19d9ceb8.system.js +1 -1
  189. package/dist/ionic/{p-afa9f205.system.js → p-1ab2642a.system.js} +1 -1
  190. package/dist/ionic/{p-11a3973f.entry.js → p-1b14f0f8.entry.js} +1 -1
  191. package/dist/ionic/{p-c5acfeb1.entry.js → p-20755eb0.entry.js} +1 -1
  192. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  193. package/dist/ionic/{p-6b0ce9b4.system.entry.js → p-25312768.system.entry.js} +1 -1
  194. package/dist/ionic/p-26ff1180.entry.js +4 -0
  195. package/dist/ionic/p-2f449cdf.system.entry.js +4 -0
  196. package/dist/ionic/p-3717e641.system.entry.js +4 -0
  197. package/dist/ionic/{p-745e3339.system.entry.js → p-3af5faf8.system.entry.js} +1 -1
  198. package/dist/ionic/{p-dc71e4ef.system.entry.js → p-3b434dee.system.entry.js} +1 -1
  199. package/dist/ionic/{p-c1701827.entry.js → p-3dc1b0f9.entry.js} +1 -1
  200. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  201. package/dist/ionic/{p-a42ef163.system.entry.js → p-4793c14c.system.entry.js} +1 -1
  202. package/dist/ionic/p-51abefb7.system.js +4 -0
  203. package/dist/ionic/{p-10ec9af7.system.entry.js → p-5ff211d0.system.entry.js} +1 -1
  204. package/dist/ionic/{p-1b27ac67.entry.js → p-642ac927.entry.js} +1 -1
  205. package/dist/ionic/{p-a821750c.system.entry.js → p-6e4c7340.system.entry.js} +1 -1
  206. package/dist/ionic/p-71483cbb.entry.js +4 -0
  207. package/dist/ionic/p-73fbf18d.entry.js +4 -0
  208. package/dist/ionic/p-75a3e35b.entry.js +4 -0
  209. package/dist/ionic/p-77d78f68.system.entry.js +4 -0
  210. package/dist/ionic/p-7c0d778d.system.js +4 -0
  211. package/dist/ionic/p-80ad9792.system.js +4 -0
  212. package/dist/ionic/p-85a67421.system.entry.js +4 -0
  213. package/dist/ionic/p-8ad6d643.entry.js +4 -0
  214. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  215. package/dist/ionic/p-9164a09d.entry.js +4 -0
  216. package/dist/ionic/{p-b964aba3.entry.js → p-92bfb607.entry.js} +1 -1
  217. package/dist/ionic/{p-9fda6824.system.entry.js → p-964dcdb2.system.entry.js} +1 -1
  218. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  219. package/dist/ionic/p-a1bd098f.system.entry.js +4 -0
  220. package/dist/ionic/p-a41eaff2.system.entry.js +4 -0
  221. package/dist/ionic/p-a60a1ce5.js +4 -0
  222. package/dist/ionic/{p-2a583966.entry.js → p-b2b5d761.entry.js} +1 -1
  223. package/dist/ionic/{p-767f1a92.entry.js → p-ba5d9e27.entry.js} +1 -1
  224. package/dist/ionic/{p-3e8d5e53.entry.js → p-bb3fd397.entry.js} +1 -1
  225. package/dist/ionic/{p-a3ca2e64.entry.js → p-bec6ae40.entry.js} +1 -1
  226. package/dist/ionic/{p-2df97906.system.entry.js → p-beed2450.system.entry.js} +1 -1
  227. package/dist/ionic/p-c001b24f.entry.js +4 -0
  228. package/dist/ionic/{p-2894d5f6.entry.js → p-c01803db.entry.js} +1 -1
  229. package/dist/ionic/p-c19bf524.entry.js +4 -0
  230. package/dist/ionic/p-c6176849.system.entry.js +4 -0
  231. package/dist/ionic/p-cf350317.entry.js +4 -0
  232. package/dist/ionic/{p-28740823.system.entry.js → p-d2634efe.system.entry.js} +1 -1
  233. package/dist/ionic/p-d3525765.js +4 -0
  234. package/dist/ionic/{p-ddd48faf.system.entry.js → p-db05ecb6.system.entry.js} +1 -1
  235. package/dist/ionic/p-dc63dccb.system.entry.js +4 -0
  236. package/dist/ionic/{p-22827063.system.entry.js → p-e2737fef.system.entry.js} +1 -1
  237. package/dist/ionic/{p-aee39e06.entry.js → p-ed8402d6.entry.js} +1 -1
  238. package/dist/ionic/p-f0717d98.js +4 -0
  239. package/dist/ionic/p-f0dea903.system.entry.js +4 -0
  240. package/dist/ionic/p-f60807dd.system.entry.js +4 -0
  241. package/dist/ionic/{p-06abe918.system.entry.js → p-f6cae0b2.system.entry.js} +1 -1
  242. package/dist/ionic/p-f8c5008f.entry.js +4 -0
  243. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +1 -0
  244. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  245. package/dist/types/components/datetime/datetime.d.ts +0 -1
  246. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  247. package/dist/types/components/menu/menu.d.ts +1 -1
  248. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  249. package/dist/types/components/picker/picker.d.ts +75 -129
  250. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  251. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  252. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  253. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  254. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  255. package/dist/types/components.d.ts +154 -122
  256. package/dist/types/interface.d.ts +1 -1
  257. package/dist/types/utils/config.d.ts +2 -2
  258. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  259. package/dist/types/utils/overlays.d.ts +5 -2
  260. package/hydrate/index.js +1502 -1401
  261. package/package.json +1 -1
  262. package/components/ion-picker-column-internal.d.ts +0 -11
  263. package/components/ion-picker-column-internal.js +0 -9
  264. package/components/ion-picker-internal.js +0 -9
  265. package/components/picker-column-internal.js +0 -390
  266. package/css/themes/dark.always.css +0 -23
  267. package/css/themes/dark.always.css.map +0 -1
  268. package/css/themes/dark.class.css +0 -23
  269. package/css/themes/dark.class.css.map +0 -1
  270. package/css/themes/dark.css +0 -3
  271. package/css/themes/dark.css.map +0 -1
  272. package/css/themes/dark.media.css +0 -25
  273. package/css/themes/dark.media.css.map +0 -1
  274. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  275. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  276. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  277. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  278. package/dist/esm-es5/button-active-308d3edd.js +0 -4
  279. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  280. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  281. package/dist/esm-es5/overlays-b33f6bca.js +0 -4
  282. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  283. package/dist/ionic/p-0235067a.js +0 -4
  284. package/dist/ionic/p-12a62500.entry.js +0 -4
  285. package/dist/ionic/p-1c249831.entry.js +0 -4
  286. package/dist/ionic/p-35ce400e.system.js +0 -4
  287. package/dist/ionic/p-3671f1b9.system.js +0 -4
  288. package/dist/ionic/p-47bb15a1.entry.js +0 -4
  289. package/dist/ionic/p-4d145435.entry.js +0 -4
  290. package/dist/ionic/p-507ddbfe.system.entry.js +0 -4
  291. package/dist/ionic/p-648ad047.system.entry.js +0 -4
  292. package/dist/ionic/p-6a6477b2.js +0 -4
  293. package/dist/ionic/p-6ab03751.js +0 -4
  294. package/dist/ionic/p-6c277fa2.system.entry.js +0 -4
  295. package/dist/ionic/p-6fba0ce1.system.entry.js +0 -4
  296. package/dist/ionic/p-7dc892f8.entry.js +0 -4
  297. package/dist/ionic/p-85f48531.entry.js +0 -4
  298. package/dist/ionic/p-8f301ac5.system.entry.js +0 -4
  299. package/dist/ionic/p-932f2259.system.entry.js +0 -4
  300. package/dist/ionic/p-b1f29949.system.entry.js +0 -4
  301. package/dist/ionic/p-b7a2ffc9.system.entry.js +0 -4
  302. package/dist/ionic/p-cd1b920b.entry.js +0 -4
  303. package/dist/ionic/p-da5e2652.entry.js +0 -4
  304. package/dist/ionic/p-ec652bc0.system.entry.js +0 -4
  305. package/dist/ionic/p-f6e9c227.system.js +0 -4
  306. package/dist/ionic/p-f894e0ad.entry.js +0 -4
  307. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  308. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  309. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  310. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  311. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  312. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  313. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  314. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  315. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  316. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  317. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +0 -0
  318. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  319. /package/dist/esm-es5/{data-775093f5.js → data-6a31d701.js} +0 -0
  320. /package/dist/ionic/{p-87bb3735.system.js → p-7ff4359e.system.js} +0 -0
  321. /package/dist/ionic/{p-18cae04f.js → p-a64accf5.js} +0 -0
  322. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  323. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  324. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  325. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -2,25 +2,13 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
- import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
6
5
  import { getIonMode } from "../../global/ionic-global";
7
6
  export class Backdrop {
8
7
  constructor() {
9
- this.blocker = GESTURE_CONTROLLER.createBlocker({
10
- disableScroll: true,
11
- });
12
8
  this.visible = true;
13
9
  this.tappable = true;
14
10
  this.stopPropagation = true;
15
11
  }
16
- connectedCallback() {
17
- if (this.stopPropagation) {
18
- this.blocker.block();
19
- }
20
- }
21
- disconnectedCallback() {
22
- this.blocker.unblock();
23
- }
24
12
  onMouseDown(ev) {
25
13
  this.emitTap(ev);
26
14
  }
@@ -100,7 +100,7 @@
100
100
  font-family: var(--ion-font-family, inherit);
101
101
  text-align: center;
102
102
  text-decoration: none;
103
- white-space: nowrap;
103
+ white-space: normal;
104
104
  user-select: none;
105
105
  vertical-align: top;
106
106
  vertical-align: -webkit-baseline-middle;
@@ -100,7 +100,7 @@
100
100
  font-family: var(--ion-font-family, inherit);
101
101
  text-align: center;
102
102
  text-decoration: none;
103
- white-space: nowrap;
103
+ white-space: normal;
104
104
  user-select: none;
105
105
  vertical-align: top;
106
106
  vertical-align: -webkit-baseline-middle;
@@ -6,33 +6,29 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
7
7
  test.describe(title('button: wrap'), () => {
8
8
  test('should render button with long text', async ({ page }) => {
9
- // TODO(FW-4599): remove ion-text-wrap class
10
9
  await page.setContent(`
11
- <ion-button class="ion-text-wrap">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
10
+ <ion-button>This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
12
11
  `, config);
13
12
  const button = page.locator('ion-button');
14
13
  await expect(button).toHaveScreenshot(screenshot(`button-wrap`));
15
14
  });
16
15
  test('should render small button with long text', async ({ page }) => {
17
- // TODO(FW-4599): remove ion-text-wrap class
18
16
  await page.setContent(`
19
- <ion-button class="ion-text-wrap" size="small">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
17
+ <ion-button size="small">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
20
18
  `, config);
21
19
  const button = page.locator('ion-button');
22
20
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-small`));
23
21
  });
24
22
  test('should render large button with long text', async ({ page }) => {
25
- // TODO(FW-4599): remove ion-text-wrap class
26
23
  await page.setContent(`
27
- <ion-button class="ion-text-wrap" size="large">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
24
+ <ion-button size="large">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
28
25
  `, config);
29
26
  const button = page.locator('ion-button');
30
27
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-large`));
31
28
  });
32
29
  test('should render button with long text and icons', async ({ page }) => {
33
- // TODO(FW-4599): remove ion-text-wrap class
34
30
  await page.setContent(`
35
- <ion-button class="ion-text-wrap">
31
+ <ion-button>
36
32
  <ion-icon slot="start" name="heart"></ion-icon>
37
33
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
38
34
  <ion-icon slot="end" name="star"></ion-icon>
@@ -42,17 +38,15 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
42
38
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-icons`));
43
39
  });
44
40
  test('should render block button with long text', async ({ page }) => {
45
- // TODO(FW-4599): remove ion-text-wrap class
46
41
  await page.setContent(`
47
- <ion-button class="ion-text-wrap" expand="block">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
42
+ <ion-button expand="block">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
48
43
  `, config);
49
44
  const button = page.locator('ion-button');
50
45
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-block`));
51
46
  });
52
47
  test('should render block button with long text and icons', async ({ page }) => {
53
- // TODO(FW-4599): remove ion-text-wrap class
54
48
  await page.setContent(`
55
- <ion-button class="ion-text-wrap" expand="block">
49
+ <ion-button expand="block">
56
50
  <ion-icon slot="start" name="heart"></ion-icon>
57
51
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
58
52
  <ion-icon slot="end" name="star"></ion-icon>
@@ -62,17 +56,15 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
62
56
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-block-icons`));
63
57
  });
64
58
  test('should render full button with long text', async ({ page }) => {
65
- // TODO(FW-4599): remove ion-text-wrap class
66
59
  await page.setContent(`
67
- <ion-button class="ion-text-wrap" expand="full">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
60
+ <ion-button expand="full">This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends</ion-button>
68
61
  `, config);
69
62
  const button = page.locator('ion-button');
70
63
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-full`));
71
64
  });
72
65
  test('should render full button with long text and icons', async ({ page }) => {
73
- // TODO(FW-4599): remove ion-text-wrap class
74
66
  await page.setContent(`
75
- <ion-button class="ion-text-wrap" expand="full">
67
+ <ion-button expand="full">
76
68
  <ion-icon slot="start" name="heart"></ion-icon>
77
69
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
78
70
  <ion-icon slot="end" name="star"></ion-icon>
@@ -82,10 +74,9 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
82
74
  await expect(button).toHaveScreenshot(screenshot(`button-wrap-full-icons`));
83
75
  });
84
76
  test('should render an item button with long text', async ({ page }) => {
85
- // TODO(FW-4599): remove ion-text-wrap class
86
77
  await page.setContent(`
87
78
  <ion-item>
88
- <ion-button class="ion-text-wrap" slot="end">
79
+ <ion-button slot="end">
89
80
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
90
81
  </ion-button>
91
82
  </ion-item>
@@ -94,10 +85,9 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
94
85
  await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button`));
95
86
  });
96
87
  test('should render an item button with long text and icons', async ({ page }) => {
97
- // TODO(FW-4599): remove ion-text-wrap class
98
88
  await page.setContent(`
99
89
  <ion-item>
100
- <ion-button class="ion-text-wrap" slot="end">
90
+ <ion-button slot="end">
101
91
  <ion-icon slot="start" name="heart"></ion-icon>
102
92
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
103
93
  <ion-icon slot="end" name="star"></ion-icon>
@@ -108,11 +98,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
108
98
  await expect(item).toHaveScreenshot(screenshot(`button-wrap-item-button-icons`));
109
99
  });
110
100
  test('should render a list header button with long text', async ({ page }) => {
111
- // TODO(FW-4599): remove ion-text-wrap class
112
101
  await page.setContent(`
113
102
  <ion-list-header>
114
103
  <ion-label>List Header</ion-label>
115
- <ion-button class="ion-text-wrap">
104
+ <ion-button>
116
105
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
117
106
  </ion-button>
118
107
  </ion-list-header>
@@ -121,11 +110,10 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
121
110
  await expect(listHeader).toHaveScreenshot(screenshot(`button-wrap-list-header-button`));
122
111
  });
123
112
  test('should render a toolbar button with long text', async ({ page }) => {
124
- // TODO(FW-4599): remove ion-text-wrap class
125
113
  await page.setContent(`
126
114
  <ion-toolbar>
127
115
  <ion-buttons slot="end">
128
- <ion-button class="ion-text-wrap">
116
+ <ion-button>
129
117
  This is the button that never ends it just goes on and on and on and on and on and on and on and on my friends
130
118
  </ion-button>
131
119
  </ion-buttons>
@@ -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;
@@ -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`;