@ionic/core 7.5.7-dev.11701203423.1b6a8829 → 7.5.7-dev.11701270755.14f050ad

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 (333) hide show
  1. package/components/backdrop.js +0 -12
  2. package/components/data.js +1 -1
  3. package/components/gesture-controller.js +1 -1
  4. package/components/icon.js +23 -14
  5. package/components/index7.js +1 -1
  6. package/components/ion-content.js +1 -1
  7. package/components/ion-datetime.js +28 -61
  8. package/components/ion-picker-column-option.d.ts +11 -0
  9. package/components/ion-picker-column-option.js +52 -0
  10. package/components/ion-picker-column.js +2 -2
  11. package/components/ion-picker-legacy-column.d.ts +11 -0
  12. package/components/ion-picker-legacy-column.js +9 -0
  13. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  14. package/components/ion-picker-legacy.js +309 -0
  15. package/components/ion-picker.js +1 -299
  16. package/components/overlays.js +11 -4
  17. package/components/picker-column.js +331 -320
  18. package/components/picker-column2.js +379 -0
  19. package/components/{picker-internal.js → picker.js} +16 -16
  20. package/dist/cjs/{button-active-af897e0e.js → button-active-cd07b55b.js} +1 -1
  21. package/dist/cjs/{data-c8d21093.js → data-4845b494.js} +1 -1
  22. package/dist/cjs/{gesture-controller-b46721be.js → gesture-controller-d6a3f907.js} +1 -0
  23. package/dist/cjs/{index-5ea49600.js → index-09471526.js} +1 -1
  24. package/dist/cjs/{index-0ee995e4.js → index-0f8b33f8.js} +1 -1
  25. package/dist/cjs/index.cjs.js +3 -3
  26. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  27. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  28. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  29. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  32. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-button_2.cjs.entry.js +23 -14
  34. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-datetime_3.cjs.entry.js +27 -40
  36. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-input.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  40. package/dist/cjs/ion-loading.cjs.entry.js +2 -1
  41. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  44. package/dist/cjs/ion-picker-column-option.cjs.entry.js +35 -0
  45. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +9 -9
  46. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +13 -13
  47. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  48. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  50. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  53. package/dist/cjs/ion-select_3.cjs.entry.js +3 -2
  54. package/dist/cjs/ion-toast.cjs.entry.js +2 -1
  55. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  56. package/dist/cjs/ionic.cjs.js +1 -1
  57. package/dist/cjs/loader.cjs.js +1 -1
  58. package/dist/cjs/{overlays-2ffc5f27.js → overlays-dbb71984.js} +11 -4
  59. package/dist/cjs/{swipe-back-d0412fb6.js → swipe-back-a6dc6e5d.js} +2 -2
  60. package/dist/collection/collection-manifest.json +7 -6
  61. package/dist/collection/components/backdrop/backdrop.js +0 -12
  62. package/dist/collection/components/content/content.css +0 -4
  63. package/dist/collection/components/datetime/datetime.ios.css +84 -25
  64. package/dist/collection/components/datetime/datetime.js +14 -29
  65. package/dist/collection/components/datetime/datetime.md.css +89 -25
  66. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  67. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  68. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  69. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  70. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +5 -5
  71. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  72. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +2 -2
  73. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  74. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  75. package/dist/collection/components/datetime/test/values/datetime.e2e.js +5 -5
  76. package/dist/collection/components/datetime/utils/data.js +1 -1
  77. package/dist/collection/components/picker/picker.ios.css +100 -205
  78. package/dist/collection/components/picker/picker.js +463 -735
  79. package/dist/collection/components/picker/picker.md.css +98 -194
  80. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  81. package/dist/collection/components/picker/test/basic/picker.e2e.js +106 -13
  82. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +20 -20
  83. package/dist/collection/components/picker-column/picker-column.ios.css +59 -176
  84. package/dist/collection/components/picker-column/picker-column.js +478 -333
  85. package/dist/collection/components/picker-column/picker-column.md.css +63 -113
  86. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +7 -7
  87. package/dist/collection/components/{picker-column-internal/test/disabled/picker-column-internal.e2e.js → picker-column/test/disabled/picker-column.e2e.js} +39 -39
  88. package/dist/collection/components/picker-column-option/picker-column-option.js +68 -0
  89. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  90. package/dist/collection/components/picker-legacy/picker.ios.css +367 -0
  91. package/dist/collection/components/picker-legacy/picker.js +817 -0
  92. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  93. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  94. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  95. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  96. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  97. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy-column/picker-column.ios.css} +98 -101
  98. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  99. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-legacy-column/picker-column.md.css} +113 -63
  100. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  101. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  102. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  103. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  104. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  105. package/dist/collection/utils/overlays.js +11 -4
  106. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  107. package/dist/docs.json +384 -40
  108. package/dist/esm/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  109. package/dist/esm/{data-44d9e816.js → data-12e24f00.js} +1 -1
  110. package/dist/esm/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  111. package/dist/esm/{index-ff313b19.js → index-32cbee52.js} +2 -2
  112. package/dist/esm/{index-d1a56aed.js → index-c132c5f1.js} +1 -1
  113. package/dist/esm/index.js +3 -3
  114. package/dist/esm/ion-accordion_2.entry.js +1 -1
  115. package/dist/esm/ion-action-sheet.entry.js +4 -4
  116. package/dist/esm/ion-alert.entry.js +4 -4
  117. package/dist/esm/ion-app_8.entry.js +2 -2
  118. package/dist/esm/ion-back-button.entry.js +1 -1
  119. package/dist/esm/ion-backdrop.entry.js +0 -12
  120. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  121. package/dist/esm/ion-button_2.entry.js +23 -14
  122. package/dist/esm/ion-datetime-button.entry.js +1 -1
  123. package/dist/esm/ion-datetime_3.entry.js +26 -39
  124. package/dist/esm/ion-fab_3.entry.js +1 -1
  125. package/dist/esm/ion-input.entry.js +1 -1
  126. package/dist/esm/ion-item-option_3.entry.js +1 -1
  127. package/dist/esm/ion-item_8.entry.js +1 -1
  128. package/dist/esm/ion-loading.entry.js +2 -1
  129. package/dist/esm/ion-menu_3.entry.js +4 -4
  130. package/dist/esm/ion-modal.entry.js +3 -3
  131. package/dist/esm/ion-nav_2.entry.js +1 -1
  132. package/dist/esm/ion-picker-column-option.entry.js +31 -0
  133. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +9 -9
  134. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +13 -13
  135. package/dist/esm/ion-popover.entry.js +2 -1
  136. package/dist/esm/ion-range.entry.js +1 -1
  137. package/dist/esm/ion-refresher_2.entry.js +4 -4
  138. package/dist/esm/ion-reorder_2.entry.js +2 -2
  139. package/dist/esm/ion-searchbar.entry.js +1 -1
  140. package/dist/esm/ion-segment_2.entry.js +1 -1
  141. package/dist/esm/ion-select_3.entry.js +3 -2
  142. package/dist/esm/ion-toast.entry.js +2 -1
  143. package/dist/esm/ion-toggle.entry.js +2 -2
  144. package/dist/esm/ionic.js +1 -1
  145. package/dist/esm/loader.js +1 -1
  146. package/dist/esm/{overlays-6c9feb7e.js → overlays-789cd7a7.js} +11 -4
  147. package/dist/esm/{swipe-back-0f3bfc8e.js → swipe-back-cc4c2bcb.js} +2 -2
  148. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  149. package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  150. package/dist/esm-es5/{index-ff313b19.js → index-32cbee52.js} +1 -1
  151. package/dist/esm-es5/index.js +1 -1
  152. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  153. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  154. package/dist/esm-es5/ion-alert.entry.js +1 -1
  155. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  156. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  157. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  158. package/dist/esm-es5/ion-breadcrumb_2.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-fab_3.entry.js +1 -1
  163. package/dist/esm-es5/ion-input.entry.js +1 -1
  164. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  165. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  166. package/dist/esm-es5/ion-loading.entry.js +1 -1
  167. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  168. package/dist/esm-es5/ion-modal.entry.js +1 -1
  169. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  170. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  171. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  172. package/dist/esm-es5/ion-picker.entry.js +4 -0
  173. package/dist/esm-es5/ion-popover.entry.js +1 -1
  174. package/dist/esm-es5/ion-range.entry.js +1 -1
  175. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  176. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  177. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  178. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  179. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-toast.entry.js +1 -1
  181. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  182. package/dist/esm-es5/ionic.js +1 -1
  183. package/dist/esm-es5/loader.js +1 -1
  184. package/dist/esm-es5/overlays-789cd7a7.js +4 -0
  185. package/dist/esm-es5/swipe-back-cc4c2bcb.js +4 -0
  186. package/dist/html.html-data.json +119 -1
  187. package/dist/ionic/index.esm.js +1 -1
  188. package/dist/ionic/ionic.esm.js +1 -1
  189. package/dist/ionic/{p-67e644bd.system.entry.js → p-02d8fdba.system.entry.js} +1 -1
  190. package/dist/ionic/{p-f3c82f74.system.entry.js → p-06e6d235.system.entry.js} +2 -2
  191. package/dist/ionic/{p-c429a314.system.entry.js → p-07d9e9cd.system.entry.js} +1 -1
  192. package/dist/ionic/p-0c244faf.entry.js +4 -0
  193. package/dist/ionic/{p-e0b06b65.js → p-100ef961.js} +1 -1
  194. package/dist/ionic/{p-04dca48d.entry.js → p-14aca3fb.entry.js} +1 -1
  195. package/dist/ionic/p-1dc91702.entry.js +4 -0
  196. package/dist/ionic/{p-a43603ce.entry.js → p-1e86a71b.entry.js} +1 -1
  197. package/dist/ionic/{p-dbf7d6e5.system.entry.js → p-22813b28.system.entry.js} +1 -1
  198. package/dist/ionic/p-234b9617.system.entry.js +4 -0
  199. package/dist/ionic/p-25c34422.system.entry.js +4 -0
  200. package/dist/ionic/p-2804781b.entry.js +4 -0
  201. package/dist/ionic/p-2ad38423.system.entry.js +4 -0
  202. package/dist/ionic/{p-7176cea3.entry.js → p-2ba9414e.entry.js} +1 -1
  203. package/dist/ionic/{p-fa8d4788.system.js → p-2e1794df.system.js} +1 -1
  204. package/dist/ionic/{p-e627ed84.js → p-302091ab.js} +1 -1
  205. package/dist/ionic/p-332f64af.system.entry.js +4 -0
  206. package/dist/ionic/p-39074595.entry.js +4 -0
  207. package/dist/ionic/{p-67ed452a.system.entry.js → p-3f88eab8.system.entry.js} +1 -1
  208. package/dist/ionic/{p-8659f9a9.system.entry.js → p-3fb57e1b.system.entry.js} +1 -1
  209. package/dist/ionic/p-40903d34.system.js +1 -1
  210. package/dist/ionic/p-439e20ef.entry.js +4 -0
  211. package/dist/ionic/{p-8d5a30dd.entry.js → p-477a182e.entry.js} +1 -1
  212. package/dist/ionic/{p-899fb2da.entry.js → p-48d9faa7.entry.js} +1 -1
  213. package/dist/ionic/{p-7d7fdaf0.system.entry.js → p-4f3e2767.system.entry.js} +1 -1
  214. package/dist/ionic/{p-3de79805.entry.js → p-56224549.entry.js} +1 -1
  215. package/dist/ionic/{p-965677f1.entry.js → p-5ce11143.entry.js} +1 -1
  216. package/dist/ionic/{p-6594d76a.system.entry.js → p-5da0eb3e.system.entry.js} +1 -1
  217. package/dist/ionic/{p-9e852ff1.system.js → p-6500b298.system.js} +1 -1
  218. package/dist/ionic/{p-42435018.system.entry.js → p-664d2b07.system.entry.js} +1 -1
  219. package/dist/ionic/p-6893f6e4.entry.js +4 -0
  220. package/dist/ionic/p-7c66a566.system.entry.js +4 -0
  221. package/dist/ionic/{p-68166ba6.entry.js → p-835e0346.entry.js} +1 -1
  222. package/dist/ionic/{p-7b4cd5fc.system.entry.js → p-878c7aa5.system.entry.js} +1 -1
  223. package/dist/ionic/p-8b4ab236.entry.js +4 -0
  224. package/dist/ionic/{p-f37b4b79.entry.js → p-939d903b.entry.js} +1 -1
  225. package/dist/ionic/p-9403b297.system.entry.js +4 -0
  226. package/dist/ionic/{p-6d812360.system.entry.js → p-966cf574.system.entry.js} +1 -1
  227. package/dist/ionic/p-992d3bad.entry.js +4 -0
  228. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-9b5301cc.system.entry.js} +1 -1
  229. package/dist/ionic/p-9c967a65.system.entry.js +4 -0
  230. package/dist/ionic/{p-8e1bded3.entry.js → p-9e6bf9ed.entry.js} +1 -1
  231. package/dist/ionic/{p-8cbf0979.entry.js → p-a21b8d05.entry.js} +1 -1
  232. package/dist/ionic/{p-6e23777e.system.entry.js → p-a4cda7a8.system.entry.js} +1 -1
  233. package/dist/ionic/{p-09d142b3.system.js → p-a57f223c.system.js} +1 -1
  234. package/dist/ionic/{p-8b1be026.js → p-a7e2ac5c.js} +1 -1
  235. package/dist/ionic/{p-0838e6bb.entry.js → p-a8e68fd9.entry.js} +1 -1
  236. package/dist/ionic/{p-14923cd7.system.entry.js → p-abacb44b.system.entry.js} +1 -1
  237. package/dist/ionic/{p-61c30156.system.entry.js → p-b3e79338.system.entry.js} +1 -1
  238. package/dist/ionic/p-b4cbb736.js +4 -0
  239. package/dist/ionic/{p-4fa201a7.entry.js → p-b6a8588f.entry.js} +1 -1
  240. package/dist/ionic/{p-ee2469c1.entry.js → p-b6f8ee31.entry.js} +1 -1
  241. package/dist/ionic/p-ba70d455.entry.js +4 -0
  242. package/dist/ionic/{p-8ad82eb3.entry.js → p-baa7cb1e.entry.js} +1 -1
  243. package/dist/ionic/p-bd7a3269.entry.js +4 -0
  244. package/dist/ionic/{p-bd76524d.entry.js → p-c1229981.entry.js} +1 -1
  245. package/dist/ionic/{p-db5043df.system.entry.js → p-c31fc05f.system.entry.js} +1 -1
  246. package/dist/ionic/p-c32bf078.system.entry.js +4 -0
  247. package/dist/ionic/{p-a936d224.system.js → p-c7fd81ba.system.js} +1 -1
  248. package/dist/ionic/{p-4c80afe1.system.entry.js → p-cb62e3fc.system.entry.js} +1 -1
  249. package/dist/ionic/{p-cd2808f5.system.entry.js → p-d21bfe66.system.entry.js} +1 -1
  250. package/dist/ionic/{p-4d786d1f.system.entry.js → p-d3952bd5.system.entry.js} +1 -1
  251. package/dist/ionic/p-dc565ca3.js +4 -0
  252. package/dist/ionic/{p-deab76dc.entry.js → p-dd837fa8.entry.js} +1 -1
  253. package/dist/ionic/p-e88ed07f.system.js +4 -0
  254. package/dist/ionic/p-eb07ec1a.system.entry.js +4 -0
  255. package/dist/ionic/p-eb5697b5.system.js +4 -0
  256. package/dist/ionic/{p-52360c7a.entry.js → p-ee800093.entry.js} +1 -1
  257. package/dist/ionic/p-f0559c5d.system.entry.js +4 -0
  258. package/dist/ionic/{p-97a96f5f.entry.js → p-f4cc91f6.entry.js} +1 -1
  259. package/dist/ionic/{p-640efee6.system.entry.js → p-f5a750e4.system.entry.js} +1 -1
  260. package/dist/ionic/p-fdd22426.entry.js +4 -0
  261. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +0 -1
  262. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  263. package/dist/types/components/datetime/datetime.d.ts +0 -1
  264. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  265. package/dist/types/components/menu/menu.d.ts +1 -1
  266. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  267. package/dist/types/components/picker/picker.d.ts +74 -131
  268. package/dist/types/components/picker-column/picker-column.d.ts +94 -39
  269. package/dist/types/components/picker-column-option/picker-column-option.d.ts +16 -0
  270. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  271. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  272. package/dist/types/components.d.ts +151 -122
  273. package/dist/types/interface.d.ts +1 -1
  274. package/dist/types/utils/config.d.ts +2 -2
  275. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  276. package/dist/types/utils/overlays.d.ts +5 -2
  277. package/hydrate/index.js +1451 -1432
  278. package/package.json +2 -2
  279. package/components/ion-picker-column-internal.d.ts +0 -11
  280. package/components/ion-picker-column-internal.js +0 -9
  281. package/components/ion-picker-internal.js +0 -9
  282. package/components/picker-column-internal.js +0 -390
  283. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +0 -138
  284. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  285. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  286. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  287. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  288. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  289. package/dist/esm-es5/overlays-6c9feb7e.js +0 -4
  290. package/dist/esm-es5/swipe-back-0f3bfc8e.js +0 -4
  291. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  292. package/dist/ionic/p-18e01b30.system.entry.js +0 -4
  293. package/dist/ionic/p-19a7c660.system.entry.js +0 -4
  294. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  295. package/dist/ionic/p-29adc040.entry.js +0 -4
  296. package/dist/ionic/p-29fe18ef.entry.js +0 -4
  297. package/dist/ionic/p-431151f2.entry.js +0 -4
  298. package/dist/ionic/p-5bd4e009.entry.js +0 -4
  299. package/dist/ionic/p-64296b15.entry.js +0 -4
  300. package/dist/ionic/p-800ef057.js +0 -4
  301. package/dist/ionic/p-86b2394a.entry.js +0 -4
  302. package/dist/ionic/p-8dbdb163.system.js +0 -4
  303. package/dist/ionic/p-97e31c0a.system.js +0 -4
  304. package/dist/ionic/p-a9c3699b.system.entry.js +0 -4
  305. package/dist/ionic/p-b91fe549.entry.js +0 -4
  306. package/dist/ionic/p-beb64be7.system.entry.js +0 -4
  307. package/dist/ionic/p-c56b6570.system.entry.js +0 -4
  308. package/dist/ionic/p-c6be7737.system.entry.js +0 -4
  309. package/dist/ionic/p-c919498d.entry.js +0 -4
  310. package/dist/ionic/p-cf425ec5.system.entry.js +0 -4
  311. package/dist/ionic/p-ddfc4ef4.system.entry.js +0 -4
  312. package/dist/ionic/p-e6b240a0.js +0 -4
  313. package/dist/ionic/p-f54ddd19.entry.js +0 -4
  314. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  315. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  316. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  317. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  318. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  319. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  320. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  321. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  322. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  323. /package/dist/esm-es5/{data-44d9e816.js → data-12e24f00.js} +0 -0
  324. /package/dist/esm-es5/{index-d1a56aed.js → index-c132c5f1.js} +0 -0
  325. /package/dist/ionic/{p-84c6dece.system.js → p-8050b9b9.system.js} +0 -0
  326. /package/dist/ionic/{p-17240d90.js → p-bb849ebb.js} +0 -0
  327. /package/dist/ionic/{p-b8c3f071.system.js → p-e4219e27.system.js} +0 -0
  328. /package/dist/ionic/{p-6e383534.js → p-ea96fa73.js} +0 -0
  329. /package/dist/types/components/{picker-column-internal/picker-column-internal-interfaces.d.ts → picker-column/picker-column-interfaces.d.ts} +0 -0
  330. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  331. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  332. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  333. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
@@ -80,7 +80,7 @@
80
80
  * widest item in the column. Setting a minimum
81
81
  * width avoids this layout shifting.
82
82
  */
83
- ion-picker-column-internal {
83
+ ion-picker-column {
84
84
  min-width: 26px;
85
85
  }
86
86
 
@@ -94,7 +94,7 @@ ion-picker-column-internal {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is apppropriately
97
+ * This ensures that the picker is appropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,23 +317,8 @@ ion-picker-column-internal {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
- :host .calendar-action-buttons ion-item,
321
320
  :host .calendar-action-buttons ion-button {
322
- --background: translucent;
323
- }
324
-
325
- :host .calendar-action-buttons ion-item ion-label {
326
- display: flex;
327
- align-items: center;
328
- }
329
-
330
- :host .calendar-action-buttons ion-item ion-icon {
331
- -webkit-padding-start: 4px;
332
- padding-inline-start: 4px;
333
- -webkit-padding-end: 0;
334
- padding-inline-end: 0;
335
- padding-top: 0;
336
- padding-bottom: 0;
321
+ --background: transparent;
337
322
  }
338
323
 
339
324
  :host .calendar-days-of-week {
@@ -515,8 +500,66 @@ ion-picker-column-internal {
515
500
  position: static;
516
501
  }
517
502
 
518
- :host(.show-month-and-year) .calendar-action-buttons ion-item {
519
- --color: var(--ion-color-base);
503
+ :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
+ color: var(--ion-color-base);
505
+ }
506
+
507
+ .calendar-month-year {
508
+ min-width: 0;
509
+ }
510
+
511
+ .calendar-month-year-toggle {
512
+ font-family: inherit;
513
+ font-size: inherit;
514
+ font-style: inherit;
515
+ font-weight: inherit;
516
+ letter-spacing: inherit;
517
+ text-decoration: inherit;
518
+ text-indent: inherit;
519
+ text-overflow: inherit;
520
+ text-transform: inherit;
521
+ text-align: inherit;
522
+ white-space: inherit;
523
+ color: inherit;
524
+ position: relative;
525
+ border: 0;
526
+ outline: none;
527
+ background: transparent;
528
+ cursor: pointer;
529
+ z-index: 1;
530
+ }
531
+ .calendar-month-year-toggle::after {
532
+ left: 0;
533
+ right: 0;
534
+ top: 0;
535
+ bottom: 0;
536
+ position: absolute;
537
+ content: "";
538
+ opacity: 0;
539
+ transition: opacity 15ms linear, background-color 15ms linear;
540
+ z-index: -1;
541
+ }
542
+ .calendar-month-year-toggle.ion-focused::after {
543
+ background: currentColor;
544
+ }
545
+ .calendar-month-year-toggle:disabled {
546
+ opacity: 0.3;
547
+ pointer-events: none;
548
+ }
549
+
550
+ .calendar-month-year-toggle ion-icon {
551
+ -webkit-padding-start: 4px;
552
+ padding-inline-start: 4px;
553
+ -webkit-padding-end: 0;
554
+ padding-inline-end: 0;
555
+ padding-top: 0;
556
+ padding-bottom: 0;
557
+ flex-shrink: 0;
558
+ }
559
+
560
+ .calendar-month-year-toggle #toggle-wrapper {
561
+ display: inline-flex;
562
+ align-items: center;
520
563
  }
521
564
 
522
565
  /**
@@ -605,15 +648,31 @@ ion-picker-column-internal {
605
648
  margin-top: 10px;
606
649
  }
607
650
 
608
- :host .calendar-action-buttons ion-item {
609
- --padding-start: 16px;
610
- --background-hover: transparent;
611
- --background-activated: transparent;
651
+ .calendar-month-year-toggle {
652
+ -webkit-padding-start: 16px;
653
+ padding-inline-start: 16px;
654
+ -webkit-padding-end: 16px;
655
+ padding-inline-end: 16px;
656
+ padding-top: 0px;
657
+ padding-bottom: 0px;
658
+ min-height: 44px;
612
659
  font-size: min(1rem, 25.6px);
613
660
  font-weight: 600;
614
661
  }
662
+ .calendar-month-year-toggle.ion-focused::after {
663
+ opacity: 0.15;
664
+ }
665
+
666
+ .calendar-month-year-toggle #toggle-wrapper {
667
+ -webkit-margin-start: 0;
668
+ margin-inline-start: 0;
669
+ -webkit-margin-end: 8px;
670
+ margin-inline-end: 8px;
671
+ margin-top: 10px;
672
+ margin-bottom: 10px;
673
+ }
615
674
 
616
- :host .calendar-action-buttons ion-item ion-icon,
675
+ :host .calendar-action-buttons .calendar-month-year-toggle ion-icon,
617
676
  :host .calendar-action-buttons ion-buttons ion-button {
618
677
  color: var(--ion-color-base);
619
678
  }
@@ -977,7 +977,7 @@ export class Datetime {
977
977
  const renderArray = forcePresentation === 'time-date'
978
978
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
979
979
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
980
- return h("ion-picker-internal", null, renderArray);
980
+ return h("ion-picker", null, renderArray);
981
981
  }
982
982
  renderDatePickerColumns(forcePresentation) {
983
983
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -1036,7 +1036,7 @@ export class Datetime {
1036
1036
  const todayString = workingParts.day !== null
1037
1037
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
1038
1038
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
1039
- return (h("ion-picker-column-internal", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1039
+ return (h("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, items: items, value: todayString, onIonChange: (ev) => {
1040
1040
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1041
1041
  // Due to a Safari 14 issue we need to destroy
1042
1042
  // the scroll listener before we update state
@@ -1120,7 +1120,7 @@ export class Datetime {
1120
1120
  }
1121
1121
  const { disabled, workingParts } = this;
1122
1122
  const activePart = this.getActivePartsWithFallback();
1123
- return (h("ion-picker-column-internal", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1123
+ return (h("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {
1124
1124
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1125
1125
  // Due to a Safari 14 issue we need to destroy
1126
1126
  // the scroll listener before we update state
@@ -1142,7 +1142,7 @@ export class Datetime {
1142
1142
  }
1143
1143
  const { disabled, workingParts } = this;
1144
1144
  const activePart = this.getActivePartsWithFallback();
1145
- return (h("ion-picker-column-internal", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1145
+ return (h("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, items: months, value: workingParts.month, onIonChange: (ev) => {
1146
1146
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1147
1147
  // Due to a Safari 14 issue we need to destroy
1148
1148
  // the scroll listener before we update state
@@ -1164,7 +1164,7 @@ export class Datetime {
1164
1164
  }
1165
1165
  const { disabled, workingParts } = this;
1166
1166
  const activePart = this.getActivePartsWithFallback();
1167
- return (h("ion-picker-column-internal", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1167
+ return (h("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, items: years, value: workingParts.year, onIonChange: (ev) => {
1168
1168
  // TODO(FW-1823) Remove this when iOS 14 support is dropped.
1169
1169
  // Due to a Safari 14 issue we need to destroy
1170
1170
  // the scroll listener before we update state
@@ -1207,7 +1207,7 @@ export class Datetime {
1207
1207
  if (hoursData.length === 0)
1208
1208
  return [];
1209
1209
  const activePart = this.getActivePartsWithFallback();
1210
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1210
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {
1211
1211
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
1212
1212
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
1213
1213
  ev.stopPropagation();
@@ -1218,7 +1218,7 @@ export class Datetime {
1218
1218
  if (minutesData.length === 0)
1219
1219
  return [];
1220
1220
  const activePart = this.getActivePartsWithFallback();
1221
- return (h("ion-picker-column-internal", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1221
+ return (h("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {
1222
1222
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
1223
1223
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
1224
1224
  ev.stopPropagation();
@@ -1231,7 +1231,7 @@ export class Datetime {
1231
1231
  }
1232
1232
  const activePart = this.getActivePartsWithFallback();
1233
1233
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1234
- return (h("ion-picker-column-internal", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1234
+ return (h("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {
1235
1235
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1236
1236
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
1237
1237
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
@@ -1257,26 +1257,11 @@ export class Datetime {
1257
1257
  const nextMonthDisabled = disabled || isNextMonthDisabled(this.workingParts, this.maxParts);
1258
1258
  // don't use the inheritAttributes util because it removes dir from the host, and we still need that
1259
1259
  const hostDir = this.el.getAttribute('dir') || undefined;
1260
- return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("ion-item", { part: "month-year-button", ref: (el) => (this.monthYearToggleItemRef = el), button: true, "aria-label": "Show year picker", detail: false, lines: "none", disabled: disabled, onClick: () => {
1261
- var _a;
1262
- this.toggleMonthAndYearView();
1263
- /**
1264
- * TODO: FW-3547
1265
- *
1266
- * Currently there is not a way to set the aria-label on the inner button
1267
- * on the `ion-item` and have it be reactive to changes. This is a workaround
1268
- * until we either refactor `ion-item` to a button or Stencil adds a way to
1269
- * have reactive props for built-in properties, such as `aria-label`.
1270
- */
1271
- const { monthYearToggleItemRef } = this;
1272
- if (monthYearToggleItemRef) {
1273
- const btn = (_a = monthYearToggleItemRef.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-native');
1274
- if (btn) {
1275
- const monthYearAriaLabel = this.showMonthAndYear ? 'Hide year picker' : 'Show year picker';
1276
- btn.setAttribute('aria-label', monthYearAriaLabel);
1277
- }
1278
- }
1279
- } }, h("ion-label", null, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1260
+ return (h("div", { class: "calendar-header" }, h("div", { class: "calendar-action-buttons" }, h("div", { class: "calendar-month-year" }, h("button", { class: {
1261
+ 'calendar-month-year-toggle': true,
1262
+ 'ion-activatable': true,
1263
+ 'ion-focusable': true,
1264
+ }, part: "month-year-button", disabled: disabled, "aria-label": this.showMonthAndYear ? 'Hide year picker' : 'Show year picker', onClick: () => this.toggleMonthAndYearView() }, h("span", { id: "toggle-wrapper" }, getMonthAndYear(this.locale, this.workingParts), h("ion-icon", { "aria-hidden": "true", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false, flipRtl: true })), mode === 'md' && h("ion-ripple-effect", null))), h("div", { class: "calendar-next-prev" }, h("ion-buttons", null, h("ion-button", { "aria-label": "Previous month", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronBack, lazy: false, flipRtl: true })), h("ion-button", { "aria-label": "Next month", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h("ion-icon", { dir: hostDir, "aria-hidden": "true", slot: "icon-only", icon: chevronForward, lazy: false, flipRtl: true }))))), h("div", { class: "calendar-days-of-week", "aria-hidden": "true" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {
1280
1265
  return h("div", { class: "day-of-week" }, d);
1281
1266
  }))));
1282
1267
  }
@@ -1437,7 +1422,7 @@ export class Datetime {
1437
1422
  * This will correctly scroll the element position to the correct time value,
1438
1423
  * before the popover is fully presented.
1439
1424
  */
1440
- const cols = ev.target.querySelectorAll('ion-picker-column-internal');
1425
+ const cols = ev.target.querySelectorAll('ion-picker-column');
1441
1426
  // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column
1442
1427
  cols.forEach((col) => col.scrollActiveItemIntoView());
1443
1428
  }, style: {
@@ -80,7 +80,7 @@
80
80
  * widest item in the column. Setting a minimum
81
81
  * width avoids this layout shifting.
82
82
  */
83
- ion-picker-column-internal {
83
+ ion-picker-column {
84
84
  min-width: 26px;
85
85
  }
86
86
 
@@ -94,7 +94,7 @@ ion-picker-column-internal {
94
94
  }
95
95
 
96
96
  /**
97
- * This ensures that the picker is apppropriately
97
+ * This ensures that the picker is appropriately
98
98
  * sized and never truncates the text.
99
99
  */
100
100
  :host(.datetime-size-fixed.datetime-prefer-wheel) {
@@ -317,23 +317,8 @@ ion-picker-column-internal {
317
317
  justify-content: space-between;
318
318
  }
319
319
 
320
- :host .calendar-action-buttons ion-item,
321
320
  :host .calendar-action-buttons ion-button {
322
- --background: translucent;
323
- }
324
-
325
- :host .calendar-action-buttons ion-item ion-label {
326
- display: flex;
327
- align-items: center;
328
- }
329
-
330
- :host .calendar-action-buttons ion-item ion-icon {
331
- -webkit-padding-start: 4px;
332
- padding-inline-start: 4px;
333
- -webkit-padding-end: 0;
334
- padding-inline-end: 0;
335
- padding-top: 0;
336
- padding-bottom: 0;
321
+ --background: transparent;
337
322
  }
338
323
 
339
324
  :host .calendar-days-of-week {
@@ -515,8 +500,66 @@ ion-picker-column-internal {
515
500
  position: static;
516
501
  }
517
502
 
518
- :host(.show-month-and-year) .calendar-action-buttons ion-item {
519
- --color: var(--ion-color-base);
503
+ :host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle {
504
+ color: var(--ion-color-base);
505
+ }
506
+
507
+ .calendar-month-year {
508
+ min-width: 0;
509
+ }
510
+
511
+ .calendar-month-year-toggle {
512
+ font-family: inherit;
513
+ font-size: inherit;
514
+ font-style: inherit;
515
+ font-weight: inherit;
516
+ letter-spacing: inherit;
517
+ text-decoration: inherit;
518
+ text-indent: inherit;
519
+ text-overflow: inherit;
520
+ text-transform: inherit;
521
+ text-align: inherit;
522
+ white-space: inherit;
523
+ color: inherit;
524
+ position: relative;
525
+ border: 0;
526
+ outline: none;
527
+ background: transparent;
528
+ cursor: pointer;
529
+ z-index: 1;
530
+ }
531
+ .calendar-month-year-toggle::after {
532
+ left: 0;
533
+ right: 0;
534
+ top: 0;
535
+ bottom: 0;
536
+ position: absolute;
537
+ content: "";
538
+ opacity: 0;
539
+ transition: opacity 15ms linear, background-color 15ms linear;
540
+ z-index: -1;
541
+ }
542
+ .calendar-month-year-toggle.ion-focused::after {
543
+ background: currentColor;
544
+ }
545
+ .calendar-month-year-toggle:disabled {
546
+ opacity: 0.3;
547
+ pointer-events: none;
548
+ }
549
+
550
+ .calendar-month-year-toggle ion-icon {
551
+ -webkit-padding-start: 4px;
552
+ padding-inline-start: 4px;
553
+ -webkit-padding-end: 0;
554
+ padding-inline-end: 0;
555
+ padding-top: 0;
556
+ padding-bottom: 0;
557
+ flex-shrink: 0;
558
+ }
559
+
560
+ .calendar-month-year-toggle #toggle-wrapper {
561
+ display: inline-flex;
562
+ align-items: center;
520
563
  }
521
564
 
522
565
  /**
@@ -600,15 +643,36 @@ ion-picker-column-internal {
600
643
  font-size: 2.125rem;
601
644
  }
602
645
 
603
- :host .datetime-calendar .calendar-action-buttons ion-item {
604
- --padding-start: 20px;
605
- }
606
-
607
- :host .calendar-action-buttons ion-item,
608
646
  :host .calendar-action-buttons ion-button {
609
647
  --color: var(--ion-color-step-650, #595959);
610
648
  }
611
649
 
650
+ .calendar-month-year-toggle {
651
+ -webkit-padding-start: 20px;
652
+ padding-inline-start: 20px;
653
+ -webkit-padding-end: 16px;
654
+ padding-inline-end: 16px;
655
+ padding-top: 12px;
656
+ padding-bottom: 12px;
657
+ min-height: 48px;
658
+ background: transparent;
659
+ color: var(--ion-color-step-650, #595959);
660
+ z-index: 1;
661
+ }
662
+ .calendar-month-year-toggle.ion-focused::after {
663
+ opacity: 0.04;
664
+ }
665
+
666
+ .calendar-month-year-toggle ion-ripple-effect {
667
+ color: currentColor;
668
+ }
669
+
670
+ @media (any-hover: hover) {
671
+ .calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after {
672
+ background: currentColor;
673
+ opacity: 0.04;
674
+ }
675
+ }
612
676
  :host .calendar-days-of-week {
613
677
  -webkit-padding-start: 10px;
614
678
  padding-inline-start: 10px;
@@ -38,7 +38,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
38
38
  `, config);
39
39
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
40
40
  const datetime = page.locator('ion-datetime');
41
- const monthYearButton = page.locator('.calendar-month-year ion-item');
41
+ const monthYearButton = page.locator('.calendar-month-year-toggle');
42
42
  const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
43
43
  const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
44
44
  await page.keyboard.press(tabKey);
@@ -2,7 +2,6 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { newSpecPage } from "@stencil/core/testing";
5
- import { Item } from "../../../item/item";
6
5
  import { Datetime } from "../../datetime";
7
6
  describe('datetime', () => {
8
7
  beforeEach(() => {
@@ -18,25 +17,23 @@ describe('datetime', () => {
18
17
  let page;
19
18
  beforeEach(async () => {
20
19
  page = await newSpecPage({
21
- components: [Datetime, Item],
20
+ components: [Datetime],
22
21
  html: `<ion-datetime></ion-datetime>`,
23
22
  });
24
23
  });
25
24
  it('should have aria-label "Show year picker" when collapsed', async () => {
26
25
  const datetime = page.body.querySelector('ion-datetime');
27
- const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
28
- const monthYearToggleBtn = item.shadowRoot.querySelector('button');
26
+ const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
29
27
  const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
30
28
  expect(ariaLabel).toContain('Show year picker');
31
29
  });
32
30
  it('should have aria-label "Hide year picker" when expanded', async () => {
33
31
  const datetime = page.body.querySelector('ion-datetime');
34
- const item = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
35
- item.click();
32
+ const monthYearToggleBtn = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
33
+ monthYearToggleBtn.click();
36
34
  await page.waitForChanges();
37
- const itemAfter = datetime.shadowRoot.querySelector('.calendar-month-year ion-item');
38
- const monthYearToggleBtn = itemAfter.shadowRoot.querySelector('button');
39
- const ariaLabel = monthYearToggleBtn.getAttribute('aria-label');
35
+ const monthYearToggleBtnAfter = datetime.shadowRoot.querySelector('.calendar-month-year .calendar-month-year-toggle');
36
+ const ariaLabel = monthYearToggleBtnAfter.getAttribute('aria-label');
40
37
  expect(ariaLabel).toContain('Hide year picker');
41
38
  });
42
39
  });
@@ -372,4 +372,14 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
372
372
  await expect(datetime).toHaveScreenshot(screenshot(`datetime-focus-calendar-day`));
373
373
  });
374
374
  });
375
+ test.describe(title('datetime: calendar month toggle'), () => {
376
+ test('should have focus styles', async ({ page }) => {
377
+ await page.setContent('<ion-datetime value="2021-01-01"></ion-datetime>', config);
378
+ const datetime = page.locator('ion-datetime');
379
+ await page.waitForSelector('.datetime-ready');
380
+ const monthYearToggle = datetime.locator('.calendar-month-year-toggle');
381
+ monthYearToggle.evaluate((el) => el.classList.add('ion-focused'));
382
+ await expect(datetime).toHaveScreenshot(screenshot(`date-month-toggle-focused`));
383
+ });
384
+ });
375
385
  });
@@ -4,8 +4,8 @@
4
4
  import { h } from "@stencil/core";
5
5
  import { newSpecPage } from "@stencil/core/testing";
6
6
  import { Datetime } from "../../../datetime/datetime";
7
- import { PickerColumnInternal } from "../../../picker-column-internal/picker-column-internal";
8
- import { PickerInternal } from "../../../picker-internal/picker-internal";
7
+ import { PickerColumn } from "../../../picker-column/picker-column";
8
+ import { Picker } from "../../../picker/picker";
9
9
  describe('ion-datetime disabled', () => {
10
10
  beforeEach(() => {
11
11
  // IntersectionObserver isn't available in test environment
@@ -19,12 +19,12 @@ describe('ion-datetime disabled', () => {
19
19
  });
20
20
  it('picker should be disabled in prefer wheel mode', async () => {
21
21
  const page = await newSpecPage({
22
- components: [Datetime, PickerColumnInternal, PickerInternal],
22
+ components: [Datetime, PickerColumn, Picker],
23
23
  template: () => (h("ion-datetime", { id: "inline-datetime-wheel", disabled: true, "prefer-wheel": true, value: "2022-04-21T00:00:00" })),
24
24
  });
25
25
  await page.waitForChanges();
26
26
  const datetime = page.body.querySelector('ion-datetime');
27
- const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column-internal');
27
+ const columns = datetime.shadowRoot.querySelectorAll('ion-picker-column');
28
28
  await expect(columns.length).toEqual(4);
29
29
  columns.forEach((column) => {
30
30
  expect(column.disabled).toBe(true);
@@ -81,8 +81,8 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
81
81
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
82
82
  await page.click('.time-body');
83
83
  await ionPopoverDidPresent.next();
84
- const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
85
- const minutes = page.locator('ion-popover ion-picker-column-internal:nth-child(2) .picker-item:not(.picker-item-empty)');
84
+ const hours = page.locator('ion-popover ion-picker-column:nth-child(1) .picker-item:not(.picker-item-empty)');
85
+ const minutes = page.locator('ion-popover ion-picker-column:nth-child(2) .picker-item:not(.picker-item-empty)');
86
86
  expect(await hours.count()).toBe(12);
87
87
  expect(await minutes.count()).toBe(60);
88
88
  });
@@ -159,7 +159,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
159
159
  value="2022-04-25T08:30:00"
160
160
  ></ion-datetime>
161
161
  `, config);
162
- const hourPickerItems = page.locator('ion-datetime ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
162
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type .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-internal:first-of-type .picker-item:not(.picker-item-empty)');
178
+ const hourPickerItems = page.locator('ion-datetime ion-picker-column:first-of-type .picker-item:not(.picker-item-empty)');
179
179
  await expect(hourPickerItems).toHaveText(['12', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']);
180
180
  });
181
181
  test.describe('minmax value adjustment when out of bounds', () => {
@@ -258,7 +258,7 @@ configs({ directions: ['ltr'], modes: ['ios'] }).forEach(({ title, config }) =>
258
258
  const timeButton = page.locator('ion-datetime .time-body');
259
259
  await timeButton.click();
260
260
  await ionPopoverDidPresent.next();
261
- const hours = page.locator('ion-popover ion-picker-column-internal:nth-child(1) .picker-item:not(.picker-item-empty)');
261
+ const hours = page.locator('ion-popover ion-picker-column: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 > ion-item');
19
+ const pickerButton = page.locator('#date-time .calendar-month-year > .calendar-month-year-toggle');
20
20
  await pickerButton.click();
21
21
  await page.waitForChanges();
22
22
  await expect(datetimeFooter).not.toBeVisible();
@@ -228,7 +228,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
228
228
  ></ion-datetime>
229
229
  `, config);
230
230
  await page.waitForSelector('.datetime-ready');
231
- const columns = page.locator('ion-picker-column-internal');
231
+ const columns = page.locator('ion-picker-column');
232
232
  await expect(columns.nth(0)).toHaveClass(/month-column/);
233
233
  await expect(columns.nth(1)).toHaveClass(/day-column/);
234
234
  await expect(columns.nth(2)).toHaveClass(/year-column/);
@@ -243,7 +243,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
243
243
  ></ion-datetime>
244
244
  `, config);
245
245
  await page.waitForSelector('.datetime-ready');
246
- const columns = page.locator('ion-picker-column-internal');
246
+ const columns = page.locator('ion-picker-column');
247
247
  await expect(columns.nth(0)).toHaveClass(/day-column/);
248
248
  await expect(columns.nth(1)).toHaveClass(/month-column/);
249
249
  await expect(columns.nth(2)).toHaveClass(/year-column/);
@@ -161,7 +161,7 @@ class TimePickerFixture {
161
161
  await this.page.waitForChanges();
162
162
  }
163
163
  async expectTime(hour, minute, ampm) {
164
- const pickerColumns = this.timePicker.locator('ion-picker-column-internal');
164
+ const pickerColumns = this.timePicker.locator('ion-picker-column');
165
165
  await expect(pickerColumns.nth(0)).toHaveJSProperty('value', hour);
166
166
  await expect(pickerColumns.nth(1)).toHaveJSProperty('value', minute);
167
167
  await expect(pickerColumns.nth(2)).toHaveJSProperty('value', ampm);
@@ -46,7 +46,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
46
46
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
47
47
  await page.waitForSelector('.datetime-ready');
48
48
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
49
- const monthYearButton = page.locator('.calendar-month-year ion-item');
49
+ const monthYearButton = page.locator('.calendar-month-year-toggle');
50
50
  await expect(calendarMonthYear).toHaveText('February 2022');
51
51
  await page.keyboard.press(tabKey);
52
52
  await expect(monthYearButton).toBeFocused();
@@ -75,7 +75,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config, scree
75
75
  `, config);
76
76
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
77
77
  const datetime = page.locator('ion-datetime');
78
- const monthYearButton = page.locator('.calendar-month-year ion-item');
78
+ const monthYearButton = page.locator('.calendar-month-year-toggle');
79
79
  const prevButton = page.locator('.calendar-next-prev ion-button:nth-child(1)');
80
80
  const nextButton = page.locator('.calendar-next-prev ion-button:nth-child(2)');
81
81
  const calendarMonthYear = page.locator('ion-datetime .calendar-month-year');
@@ -36,14 +36,14 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
36
36
  await page.setContent(`
37
37
  <ion-datetime locale="en-US" presentation="time" hour-values="1,2,3"></ion-datetime>
38
38
  `, config);
39
- const items = page.locator('ion-picker-column-internal:first-of-type .picker-item:not(.picker-item-empty)');
39
+ const items = page.locator('ion-picker-column:first-of-type .picker-item:not(.picker-item-empty)');
40
40
  await expect(items).toHaveText(['1', '2', '3']);
41
41
  });
42
42
  test('should render correct minutes', async ({ page }) => {
43
43
  await page.setContent(`
44
44
  <ion-datetime locale="en-US" presentation="time" minute-values="1,2,3"></ion-datetime>
45
45
  `, config);
46
- const items = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
46
+ const items = page.locator('ion-picker-column:nth-of-type(2) .picker-item:not(.picker-item-empty)');
47
47
  await expect(items).toHaveText(['01', '02', '03']);
48
48
  });
49
49
  test('should adjust default parts for allowed hour and minute values', async ({ page }) => {
@@ -69,17 +69,17 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
69
69
  </script>
70
70
  `, config);
71
71
  await page.waitForSelector('.datetime-ready');
72
- const minuteItems = page.locator('ion-picker-column-internal:nth-of-type(2) .picker-item:not(.picker-item-empty)');
72
+ const minuteItems = page.locator('ion-picker-column:nth-of-type(2) .picker-item:not(.picker-item-empty)');
73
73
  await expect(minuteItems).toHaveText(['00', '15', '30', '45']);
74
74
  await expect(minuteItems.nth(1)).toHaveClass(/picker-item-active/);
75
- const hourItems = page.locator('ion-picker-column-internal:nth-of-type(1) .picker-item:not(.picker-item-empty)');
75
+ const hourItems = page.locator('ion-picker-column:nth-of-type(1) .picker-item:not(.picker-item-empty)');
76
76
  await expect(hourItems).toHaveText(['2']);
77
77
  await expect(hourItems.nth(0)).toHaveClass(/picker-item-active/);
78
78
  /**
79
79
  * Since the allowed hour is 2AM, the time period
80
80
  * should switch from PM to AM.
81
81
  */
82
- const ampmItems = page.locator('ion-picker-column-internal:nth-of-type(3) .picker-item:not(.picker-item-empty)');
82
+ const ampmItems = page.locator('ion-picker-column:nth-of-type(3) .picker-item:not(.picker-item-empty)');
83
83
  await expect(ampmItems).toHaveText(['AM', 'PM']);
84
84
  await expect(ampmItems.nth(0)).toHaveClass(/picker-item-active/);
85
85
  });
@@ -323,7 +323,7 @@ export const getMonthColumnData = (locale, refParts, minParts, maxParts, monthVa
323
323
  * @param minParts The minimum bound on the date that can be returned
324
324
  * @param maxParts The maximum bound on the date that can be returned
325
325
  * @param dayValues The allowed date values
326
- * @returns Date data to be used in ion-picker-column-internal
326
+ * @returns Date data to be used in ion-picker-column
327
327
  */
328
328
  export const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
329
329
  day: 'numeric',