@ionic/core 7.5.7-dev.11701201960.104b3a1f → 7.5.7-dev.11701203423.1b6a8829

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 (323) hide show
  1. package/components/backdrop.js +12 -0
  2. package/components/data.js +1 -1
  3. package/components/gesture-controller.js +1 -1
  4. package/components/icon.js +14 -23
  5. package/components/index7.js +1 -1
  6. package/components/ion-content.js +1 -1
  7. package/components/ion-datetime.js +61 -28
  8. package/components/ion-picker-column-internal.d.ts +11 -0
  9. package/components/ion-picker-column-internal.js +9 -0
  10. package/components/ion-picker-column.js +2 -2
  11. package/components/{ion-picker-legacy.d.ts → ion-picker-internal.d.ts} +4 -4
  12. package/components/ion-picker-internal.js +9 -0
  13. package/components/ion-picker.js +299 -1
  14. package/components/overlays.js +4 -11
  15. package/components/picker-column-internal.js +390 -0
  16. package/components/picker-column.js +320 -331
  17. package/components/{picker.js → picker-internal.js} +16 -16
  18. package/dist/cjs/{button-active-cd07b55b.js → button-active-af897e0e.js} +1 -1
  19. package/dist/cjs/{data-4845b494.js → data-c8d21093.js} +1 -1
  20. package/dist/cjs/{gesture-controller-d6a3f907.js → gesture-controller-b46721be.js} +0 -1
  21. package/dist/cjs/{index-0f8b33f8.js → index-0ee995e4.js} +1 -1
  22. package/dist/cjs/{index-09471526.js → index-5ea49600.js} +1 -1
  23. package/dist/cjs/index.cjs.js +3 -3
  24. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  26. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  27. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-backdrop.cjs.entry.js +12 -0
  30. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-button_2.cjs.entry.js +14 -23
  32. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-datetime_3.cjs.entry.js +40 -27
  34. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-input.cjs.entry.js +1 -1
  36. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-loading.cjs.entry.js +1 -2
  39. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  42. package/dist/cjs/{ion-picker-column.cjs.entry.js → ion-picker-column-internal.cjs.entry.js} +9 -9
  43. package/dist/cjs/{ion-picker.cjs.entry.js → ion-picker-internal.cjs.entry.js} +13 -13
  44. package/dist/cjs/ion-popover.cjs.entry.js +1 -2
  45. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  46. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-select_3.cjs.entry.js +2 -3
  51. package/dist/cjs/ion-toast.cjs.entry.js +1 -2
  52. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  53. package/dist/cjs/ionic.cjs.js +1 -1
  54. package/dist/cjs/loader.cjs.js +1 -1
  55. package/dist/cjs/{overlays-dbb71984.js → overlays-2ffc5f27.js} +4 -11
  56. package/dist/cjs/{swipe-back-a6dc6e5d.js → swipe-back-d0412fb6.js} +2 -2
  57. package/dist/collection/collection-manifest.json +6 -6
  58. package/dist/collection/components/backdrop/backdrop.js +12 -0
  59. package/dist/collection/components/content/content.css +4 -0
  60. package/dist/collection/components/datetime/datetime.ios.css +25 -84
  61. package/dist/collection/components/datetime/datetime.js +29 -14
  62. package/dist/collection/components/datetime/datetime.md.css +25 -89
  63. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  64. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +9 -6
  65. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +0 -10
  66. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  67. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +5 -5
  68. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  69. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +2 -2
  70. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  71. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  72. package/dist/collection/components/datetime/test/values/datetime.e2e.js +5 -5
  73. package/dist/collection/components/datetime/utils/data.js +1 -1
  74. package/dist/collection/components/picker/picker.ios.css +205 -100
  75. package/dist/collection/components/picker/picker.js +735 -463
  76. package/dist/collection/components/picker/picker.md.css +194 -98
  77. package/dist/collection/components/picker/test/basic/picker.e2e.js +13 -106
  78. package/dist/collection/components/{picker-legacy → picker}/test/is-open/picker.e2e.js +4 -4
  79. package/dist/collection/components/{picker-legacy → picker}/test/picker-id.spec.js +5 -5
  80. package/dist/collection/components/{picker-legacy → picker}/test/trigger/picker.e2e.js +1 -1
  81. package/dist/collection/components/picker-column/picker-column.ios.css +176 -59
  82. package/dist/collection/components/picker-column/picker-column.js +333 -478
  83. package/dist/collection/components/picker-column/picker-column.md.css +113 -63
  84. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-aria.spec.js +3 -3
  85. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column-dynamic.spec.js +2 -2
  86. package/dist/collection/components/{picker-legacy-column → picker-column}/test/picker-column.spec.js +2 -2
  87. package/dist/collection/components/{picker-legacy-column → picker-column}/test/standalone/picker-column.e2e.js +3 -3
  88. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +138 -0
  89. package/dist/collection/components/picker-column-internal/picker-column-internal.js +565 -0
  90. package/dist/collection/components/{picker-legacy-column/picker-column.md.css → picker-column-internal/picker-column-internal.md.css} +63 -113
  91. package/dist/collection/components/{picker-column/test/basic/picker-column.e2e.js → picker-column-internal/test/basic/picker-column-internal.e2e.js} +7 -7
  92. package/dist/collection/components/{picker-column/test/disabled/picker-column.e2e.js → picker-column-internal/test/disabled/picker-column-internal.e2e.js} +39 -39
  93. package/dist/collection/components/{picker-legacy/picker.md.css → picker-internal/picker-internal.ios.css} +100 -192
  94. package/dist/collection/components/picker-internal/picker-internal.js +544 -0
  95. package/dist/collection/components/{picker-legacy-column/picker-column.ios.css → picker-internal/picker-internal.md.css} +101 -98
  96. package/dist/collection/components/{picker/test/a11y/picker.e2e.js → picker-internal/test/a11y/picker-internal.e2e.js} +2 -2
  97. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +118 -0
  98. package/dist/collection/components/{picker/test/keyboard-entry/picker.e2e.js → picker-internal/test/keyboard-entry/picker-internal.e2e.js} +20 -20
  99. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  100. package/dist/collection/utils/overlays.js +4 -11
  101. package/dist/docs.json +40 -322
  102. package/dist/esm/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
  103. package/dist/esm/{data-12e24f00.js → data-44d9e816.js} +1 -1
  104. package/dist/esm/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  105. package/dist/esm/{index-c132c5f1.js → index-d1a56aed.js} +1 -1
  106. package/dist/esm/{index-32cbee52.js → index-ff313b19.js} +2 -2
  107. package/dist/esm/index.js +3 -3
  108. package/dist/esm/ion-accordion_2.entry.js +1 -1
  109. package/dist/esm/ion-action-sheet.entry.js +4 -4
  110. package/dist/esm/ion-alert.entry.js +4 -4
  111. package/dist/esm/ion-app_8.entry.js +2 -2
  112. package/dist/esm/ion-back-button.entry.js +1 -1
  113. package/dist/esm/ion-backdrop.entry.js +12 -0
  114. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  115. package/dist/esm/ion-button_2.entry.js +14 -23
  116. package/dist/esm/ion-datetime-button.entry.js +1 -1
  117. package/dist/esm/ion-datetime_3.entry.js +39 -26
  118. package/dist/esm/ion-fab_3.entry.js +1 -1
  119. package/dist/esm/ion-input.entry.js +1 -1
  120. package/dist/esm/ion-item-option_3.entry.js +1 -1
  121. package/dist/esm/ion-item_8.entry.js +1 -1
  122. package/dist/esm/ion-loading.entry.js +1 -2
  123. package/dist/esm/ion-menu_3.entry.js +4 -4
  124. package/dist/esm/ion-modal.entry.js +3 -3
  125. package/dist/esm/ion-nav_2.entry.js +1 -1
  126. package/dist/esm/{ion-picker-column.entry.js → ion-picker-column-internal.entry.js} +9 -9
  127. package/dist/esm/{ion-picker.entry.js → ion-picker-internal.entry.js} +13 -13
  128. package/dist/esm/ion-popover.entry.js +1 -2
  129. package/dist/esm/ion-range.entry.js +1 -1
  130. package/dist/esm/ion-refresher_2.entry.js +4 -4
  131. package/dist/esm/ion-reorder_2.entry.js +2 -2
  132. package/dist/esm/ion-searchbar.entry.js +1 -1
  133. package/dist/esm/ion-segment_2.entry.js +1 -1
  134. package/dist/esm/ion-select_3.entry.js +2 -3
  135. package/dist/esm/ion-toast.entry.js +1 -2
  136. package/dist/esm/ion-toggle.entry.js +2 -2
  137. package/dist/esm/ionic.js +1 -1
  138. package/dist/esm/loader.js +1 -1
  139. package/dist/esm/{overlays-789cd7a7.js → overlays-6c9feb7e.js} +4 -11
  140. package/dist/esm/{swipe-back-cc4c2bcb.js → swipe-back-0f3bfc8e.js} +2 -2
  141. package/dist/esm-es5/{button-active-5b0516e7.js → button-active-ce5cba4c.js} +1 -1
  142. package/dist/esm-es5/{gesture-controller-3723db7c.js → gesture-controller-0fa396c4.js} +1 -1
  143. package/dist/esm-es5/{index-32cbee52.js → index-ff313b19.js} +1 -1
  144. package/dist/esm-es5/index.js +1 -1
  145. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  146. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  147. package/dist/esm-es5/ion-alert.entry.js +1 -1
  148. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  149. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  150. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  151. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  152. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  153. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  154. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  155. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  156. package/dist/esm-es5/ion-input.entry.js +1 -1
  157. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  158. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  159. package/dist/esm-es5/ion-loading.entry.js +1 -1
  160. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  161. package/dist/esm-es5/ion-modal.entry.js +1 -1
  162. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  163. package/dist/esm-es5/ion-picker-column-internal.entry.js +4 -0
  164. package/dist/esm-es5/ion-picker-internal.entry.js +4 -0
  165. package/dist/esm-es5/ion-popover.entry.js +1 -1
  166. package/dist/esm-es5/ion-range.entry.js +1 -1
  167. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  169. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  170. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  171. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  172. package/dist/esm-es5/ion-toast.entry.js +1 -1
  173. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  174. package/dist/esm-es5/ionic.js +1 -1
  175. package/dist/esm-es5/loader.js +1 -1
  176. package/dist/esm-es5/overlays-6c9feb7e.js +4 -0
  177. package/dist/esm-es5/swipe-back-0f3bfc8e.js +4 -0
  178. package/dist/html.html-data.json +1 -96
  179. package/dist/ionic/index.esm.js +1 -1
  180. package/dist/ionic/ionic.esm.js +1 -1
  181. package/dist/ionic/{p-14aca3fb.entry.js → p-04dca48d.entry.js} +1 -1
  182. package/dist/ionic/{p-a8e68fd9.entry.js → p-0838e6bb.entry.js} +1 -1
  183. package/dist/ionic/{p-a57f223c.system.js → p-09d142b3.system.js} +1 -1
  184. package/dist/ionic/p-0d8e9393.entry.js +4 -0
  185. package/dist/ionic/{p-abacb44b.system.entry.js → p-14923cd7.system.entry.js} +1 -1
  186. package/dist/ionic/p-18e01b30.system.entry.js +4 -0
  187. package/dist/ionic/p-19a7c660.system.entry.js +4 -0
  188. package/dist/ionic/{p-9b5301cc.system.entry.js → p-1cb5f2f8.system.entry.js} +1 -1
  189. package/dist/ionic/p-1e5165db.system.entry.js +4 -0
  190. package/dist/ionic/p-29adc040.entry.js +4 -0
  191. package/dist/ionic/p-29fe18ef.entry.js +4 -0
  192. package/dist/ionic/{p-56224549.entry.js → p-3de79805.entry.js} +1 -1
  193. package/dist/ionic/p-40903d34.system.js +1 -1
  194. package/dist/ionic/{p-664d2b07.system.entry.js → p-42435018.system.entry.js} +1 -1
  195. package/dist/ionic/p-431151f2.entry.js +4 -0
  196. package/dist/ionic/{p-cb62e3fc.system.entry.js → p-4c80afe1.system.entry.js} +1 -1
  197. package/dist/ionic/{p-d3952bd5.system.entry.js → p-4d786d1f.system.entry.js} +1 -1
  198. package/dist/ionic/{p-b6a8588f.entry.js → p-4fa201a7.entry.js} +1 -1
  199. package/dist/ionic/{p-ee800093.entry.js → p-52360c7a.entry.js} +1 -1
  200. package/dist/ionic/p-5bd4e009.entry.js +4 -0
  201. package/dist/ionic/{p-b3e79338.system.entry.js → p-61c30156.system.entry.js} +1 -1
  202. package/dist/ionic/{p-f5a750e4.system.entry.js → p-640efee6.system.entry.js} +1 -1
  203. package/dist/ionic/p-64296b15.entry.js +4 -0
  204. package/dist/ionic/{p-5da0eb3e.system.entry.js → p-6594d76a.system.entry.js} +1 -1
  205. package/dist/ionic/{p-02d8fdba.system.entry.js → p-67e644bd.system.entry.js} +1 -1
  206. package/dist/ionic/{p-3f88eab8.system.entry.js → p-67ed452a.system.entry.js} +1 -1
  207. package/dist/ionic/{p-835e0346.entry.js → p-68166ba6.entry.js} +1 -1
  208. package/dist/ionic/{p-966cf574.system.entry.js → p-6d812360.system.entry.js} +1 -1
  209. package/dist/ionic/{p-a4cda7a8.system.entry.js → p-6e23777e.system.entry.js} +1 -1
  210. package/dist/ionic/{p-2ba9414e.entry.js → p-7176cea3.entry.js} +1 -1
  211. package/dist/ionic/{p-878c7aa5.system.entry.js → p-7b4cd5fc.system.entry.js} +1 -1
  212. package/dist/ionic/{p-4f3e2767.system.entry.js → p-7d7fdaf0.system.entry.js} +1 -1
  213. package/dist/ionic/p-800ef057.js +4 -0
  214. package/dist/ionic/{p-3fb57e1b.system.entry.js → p-8659f9a9.system.entry.js} +1 -1
  215. package/dist/ionic/p-86b2394a.entry.js +4 -0
  216. package/dist/ionic/{p-48d9faa7.entry.js → p-899fb2da.entry.js} +1 -1
  217. package/dist/ionic/{p-baa7cb1e.entry.js → p-8ad82eb3.entry.js} +1 -1
  218. package/dist/ionic/{p-a7e2ac5c.js → p-8b1be026.js} +1 -1
  219. package/dist/ionic/{p-a21b8d05.entry.js → p-8cbf0979.entry.js} +1 -1
  220. package/dist/ionic/{p-477a182e.entry.js → p-8d5a30dd.entry.js} +1 -1
  221. package/dist/ionic/p-8dbdb163.system.js +4 -0
  222. package/dist/ionic/{p-9e6bf9ed.entry.js → p-8e1bded3.entry.js} +1 -1
  223. package/dist/ionic/{p-5ce11143.entry.js → p-965677f1.entry.js} +1 -1
  224. package/dist/ionic/{p-f4cc91f6.entry.js → p-97a96f5f.entry.js} +1 -1
  225. package/dist/ionic/p-97e31c0a.system.js +4 -0
  226. package/dist/ionic/{p-6500b298.system.js → p-9e852ff1.system.js} +1 -1
  227. package/dist/ionic/{p-1e86a71b.entry.js → p-a43603ce.entry.js} +1 -1
  228. package/dist/ionic/{p-c7fd81ba.system.js → p-a936d224.system.js} +1 -1
  229. package/dist/ionic/p-a9c3699b.system.entry.js +4 -0
  230. package/dist/ionic/p-b91fe549.entry.js +4 -0
  231. package/dist/ionic/{p-c1229981.entry.js → p-bd76524d.entry.js} +1 -1
  232. package/dist/ionic/p-beb64be7.system.entry.js +4 -0
  233. package/dist/ionic/{p-07d9e9cd.system.entry.js → p-c429a314.system.entry.js} +1 -1
  234. package/dist/ionic/p-c56b6570.system.entry.js +4 -0
  235. package/dist/ionic/p-c6be7737.system.entry.js +4 -0
  236. package/dist/ionic/p-c919498d.entry.js +4 -0
  237. package/dist/ionic/{p-d21bfe66.system.entry.js → p-cd2808f5.system.entry.js} +1 -1
  238. package/dist/ionic/p-cf425ec5.system.entry.js +4 -0
  239. package/dist/ionic/{p-c31fc05f.system.entry.js → p-db5043df.system.entry.js} +1 -1
  240. package/dist/ionic/{p-22813b28.system.entry.js → p-dbf7d6e5.system.entry.js} +1 -1
  241. package/dist/ionic/p-ddfc4ef4.system.entry.js +4 -0
  242. package/dist/ionic/{p-dd837fa8.entry.js → p-deab76dc.entry.js} +1 -1
  243. package/dist/ionic/{p-100ef961.js → p-e0b06b65.js} +1 -1
  244. package/dist/ionic/{p-302091ab.js → p-e627ed84.js} +1 -1
  245. package/dist/ionic/p-e6b240a0.js +4 -0
  246. package/dist/ionic/{p-b6f8ee31.entry.js → p-ee2469c1.entry.js} +1 -1
  247. package/dist/ionic/{p-939d903b.entry.js → p-f37b4b79.entry.js} +1 -1
  248. package/dist/ionic/{p-06e6d235.system.entry.js → p-f3c82f74.system.entry.js} +2 -2
  249. package/dist/ionic/p-f54ddd19.entry.js +4 -0
  250. package/dist/ionic/{p-2e1794df.system.js → p-fa8d4788.system.js} +1 -1
  251. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +1 -0
  252. package/dist/types/components/backdrop/backdrop.d.ts +3 -0
  253. package/dist/types/components/datetime/datetime.d.ts +1 -0
  254. package/dist/types/components/datetime/utils/data.d.ts +2 -2
  255. package/dist/types/components/menu/menu.d.ts +1 -1
  256. package/dist/types/components/picker/picker.d.ts +131 -74
  257. package/dist/types/components/picker-column/picker-column.d.ts +39 -94
  258. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +102 -0
  259. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +8 -0
  260. package/dist/types/components/picker-internal/picker-internal.d.ts +102 -0
  261. package/dist/types/components.d.ts +122 -122
  262. package/dist/types/interface.d.ts +1 -1
  263. package/dist/types/utils/config.d.ts +2 -2
  264. package/dist/types/utils/gesture/gesture-controller.d.ts +0 -1
  265. package/dist/types/utils/overlays.d.ts +2 -5
  266. package/hydrate/index.js +1083 -1067
  267. package/package.json +2 -2
  268. package/components/ion-picker-legacy-column.d.ts +0 -11
  269. package/components/ion-picker-legacy-column.js +0 -9
  270. package/components/ion-picker-legacy.js +0 -309
  271. package/components/picker-column2.js +0 -379
  272. package/dist/collection/components/picker-legacy/picker.ios.css +0 -367
  273. package/dist/collection/components/picker-legacy/picker.js +0 -817
  274. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +0 -25
  275. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -419
  276. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +0 -65
  277. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  278. package/dist/esm-es5/ion-picker.entry.js +0 -4
  279. package/dist/esm-es5/overlays-789cd7a7.js +0 -4
  280. package/dist/esm-es5/swipe-back-cc4c2bcb.js +0 -4
  281. package/dist/ionic/p-0c244faf.entry.js +0 -4
  282. package/dist/ionic/p-1dc91702.entry.js +0 -4
  283. package/dist/ionic/p-234b9617.system.entry.js +0 -4
  284. package/dist/ionic/p-25c34422.system.entry.js +0 -4
  285. package/dist/ionic/p-2804781b.entry.js +0 -4
  286. package/dist/ionic/p-2ad38423.system.entry.js +0 -4
  287. package/dist/ionic/p-39074595.entry.js +0 -4
  288. package/dist/ionic/p-439e20ef.entry.js +0 -4
  289. package/dist/ionic/p-6893f6e4.entry.js +0 -4
  290. package/dist/ionic/p-7c66a566.system.entry.js +0 -4
  291. package/dist/ionic/p-8b4ab236.entry.js +0 -4
  292. package/dist/ionic/p-9403b297.system.entry.js +0 -4
  293. package/dist/ionic/p-992d3bad.entry.js +0 -4
  294. package/dist/ionic/p-9c967a65.system.entry.js +0 -4
  295. package/dist/ionic/p-b4cbb736.js +0 -4
  296. package/dist/ionic/p-ba70d455.entry.js +0 -4
  297. package/dist/ionic/p-c32bf078.system.entry.js +0 -4
  298. package/dist/ionic/p-dc565ca3.js +0 -4
  299. package/dist/ionic/p-e88ed07f.system.js +0 -4
  300. package/dist/ionic/p-eb07ec1a.system.entry.js +0 -4
  301. package/dist/ionic/p-eb5697b5.system.js +0 -4
  302. package/dist/ionic/p-f0559c5d.system.entry.js +0 -4
  303. package/dist/ionic/p-fdd22426.entry.js +0 -4
  304. package/dist/types/components/picker/picker-interfaces.d.ts +0 -8
  305. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  306. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  307. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.enter.js +0 -0
  308. /package/dist/collection/components/{picker-legacy → picker}/animations/ios.leave.js +0 -0
  309. /package/dist/collection/components/picker/{picker-interfaces.js → picker-interface.js} +0 -0
  310. /package/dist/collection/components/{picker-legacy-column → picker-column}/test/test.utils.js +0 -0
  311. /package/dist/collection/components/{picker-column/picker-column-interfaces.js → picker-column-internal/picker-column-internal-interfaces.js} +0 -0
  312. /package/dist/collection/components/{picker-legacy/picker-interface.js → picker-internal/picker-internal-interfaces.js} +0 -0
  313. /package/dist/esm-es5/{data-12e24f00.js → data-44d9e816.js} +0 -0
  314. /package/dist/esm-es5/{index-c132c5f1.js → index-d1a56aed.js} +0 -0
  315. /package/dist/ionic/{p-bb849ebb.js → p-17240d90.js} +0 -0
  316. /package/dist/ionic/{p-ea96fa73.js → p-6e383534.js} +0 -0
  317. /package/dist/ionic/{p-8050b9b9.system.js → p-84c6dece.system.js} +0 -0
  318. /package/dist/ionic/{p-e4219e27.system.js → p-b8c3f071.system.js} +0 -0
  319. /package/dist/types/components/{picker-legacy → picker}/animations/ios.enter.d.ts +0 -0
  320. /package/dist/types/components/{picker-legacy → picker}/animations/ios.leave.d.ts +0 -0
  321. /package/dist/types/components/{picker-legacy → picker}/picker-interface.d.ts +0 -0
  322. /package/dist/types/components/{picker-legacy-column → picker-column}/test/test.utils.d.ts +0 -0
  323. /package/dist/types/components/{picker-column/picker-column-interfaces.d.ts → picker-column-internal/picker-column-internal-interfaces.d.ts} +0 -0
@@ -53,56 +53,89 @@
53
53
  * }
54
54
  * }
55
55
  */
56
- .picker-col {
56
+ :host {
57
57
  display: flex;
58
58
  position: relative;
59
- flex: 1;
59
+ align-items: center;
60
60
  justify-content: center;
61
- height: 100%;
62
- box-sizing: content-box;
63
- contain: content;
61
+ width: 100%;
62
+ height: 200px;
63
+ /**
64
+ * Picker columns should display
65
+ * in the order in which developers
66
+ * added them and should ignore
67
+ * LTR vs RTL directions.
68
+ */
69
+ direction: ltr;
70
+ /**
71
+ * This is required otherwise the
72
+ * highlight will appear behind
73
+ * the picker when used inline.
74
+ */
75
+ z-index: 0;
64
76
  }
65
77
 
66
- .picker-opts {
67
- position: relative;
68
- flex: 1;
69
- max-width: 100%;
78
+ :host .picker-before,
79
+ :host .picker-after {
80
+ position: absolute;
81
+ width: 100%;
82
+ /**
83
+ * The transform and z-index
84
+ * are needed for WebKit otherwise
85
+ * the fade will appear underneath the picker.
86
+ */
87
+ transform: translateZ(0);
88
+ z-index: 1;
89
+ pointer-events: none;
70
90
  }
71
91
 
72
- .picker-opt {
92
+ :host .picker-before {
73
93
  top: 0;
74
- display: block;
75
- position: absolute;
76
- width: 100%;
77
- border: 0;
78
- text-align: center;
79
- text-overflow: ellipsis;
80
- white-space: nowrap;
81
- contain: strict;
82
- overflow: hidden;
83
- will-change: transform;
94
+ height: 83px;
84
95
  }
85
96
  @supports (inset-inline-start: 0) {
86
- .picker-opt {
97
+ :host .picker-before {
87
98
  inset-inline-start: 0;
88
99
  }
89
100
  }
90
101
  @supports not (inset-inline-start: 0) {
91
- .picker-opt {
102
+ :host .picker-before {
92
103
  left: 0;
93
104
  }
94
- :host-context([dir=rtl]) .picker-opt {
105
+ :host-context([dir=rtl]) .picker-before {
95
106
  left: unset;
96
107
  right: unset;
97
108
  right: 0;
98
109
  }
99
- [dir=rtl] .picker-opt {
110
+ @supports selector(:dir(rtl)) {
111
+ :host(:dir(rtl)) .picker-before {
112
+ left: unset;
113
+ right: unset;
114
+ right: 0;
115
+ }
116
+ }
117
+ }
118
+
119
+ :host .picker-after {
120
+ top: 116px;
121
+ height: 84px;
122
+ }
123
+ @supports (inset-inline-start: 0) {
124
+ :host .picker-after {
125
+ inset-inline-start: 0;
126
+ }
127
+ }
128
+ @supports not (inset-inline-start: 0) {
129
+ :host .picker-after {
130
+ left: 0;
131
+ }
132
+ :host-context([dir=rtl]) .picker-after {
100
133
  left: unset;
101
134
  right: unset;
102
135
  right: 0;
103
136
  }
104
137
  @supports selector(:dir(rtl)) {
105
- .picker-opt:dir(rtl) {
138
+ :host(:dir(rtl)) .picker-after {
106
139
  left: unset;
107
140
  right: unset;
108
141
  right: 0;
@@ -110,38 +143,55 @@
110
143
  }
111
144
  }
112
145
 
113
- .picker-opt.picker-opt-disabled {
114
- pointer-events: none;
146
+ :host .picker-highlight {
147
+ border-radius: 8px;
148
+ left: 0;
149
+ right: 0;
150
+ top: 50%;
151
+ bottom: 0;
152
+ -webkit-margin-start: auto;
153
+ margin-inline-start: auto;
154
+ -webkit-margin-end: auto;
155
+ margin-inline-end: auto;
156
+ margin-top: 0;
157
+ margin-bottom: 0;
158
+ position: absolute;
159
+ width: calc(100% - 16px);
160
+ height: 34px;
161
+ transform: translateY(-50%);
162
+ background: var(--wheel-highlight-background);
163
+ z-index: -1;
115
164
  }
116
165
 
117
- .picker-opt-disabled {
166
+ :host input {
167
+ position: absolute;
168
+ top: 0;
169
+ left: 0;
170
+ right: 0;
171
+ bottom: 0;
172
+ width: 100%;
173
+ height: 100%;
174
+ margin: 0;
175
+ padding: 0;
176
+ border: 0;
177
+ outline: 0;
178
+ clip: rect(0 0 0 0);
118
179
  opacity: 0;
180
+ overflow: hidden;
181
+ -webkit-appearance: none;
182
+ -moz-appearance: none;
119
183
  }
120
184
 
121
- .picker-opts-left {
122
- justify-content: flex-start;
123
- }
124
-
125
- .picker-opts-right {
126
- justify-content: flex-end;
127
- }
128
-
129
- .picker-opt:active, .picker-opt:focus {
130
- outline: none;
185
+ :host ::slotted(ion-picker-column-internal:first-of-type) {
186
+ text-align: start;
131
187
  }
132
188
 
133
- .picker-prefix {
134
- position: relative;
135
- flex: 1;
189
+ :host ::slotted(ion-picker-column-internal:last-of-type) {
136
190
  text-align: end;
137
- white-space: nowrap;
138
191
  }
139
192
 
140
- .picker-suffix {
141
- position: relative;
142
- flex: 1;
143
- text-align: start;
144
- white-space: nowrap;
193
+ :host ::slotted(ion-picker-column-internal:only-child) {
194
+ text-align: center;
145
195
  }
146
196
 
147
197
  /**
@@ -199,57 +249,10 @@
199
249
  * }
200
250
  * }
201
251
  */
202
- .picker-col {
203
- -webkit-padding-start: 4px;
204
- padding-inline-start: 4px;
205
- -webkit-padding-end: 4px;
206
- padding-inline-end: 4px;
207
- padding-top: 0;
208
- padding-bottom: 0;
209
- transform-style: preserve-3d;
210
- }
211
-
212
- .picker-prefix,
213
- .picker-suffix,
214
- .picker-opts {
215
- top: 77px;
216
- transform-style: preserve-3d;
217
- color: inherit;
218
- font-size: 20px;
219
- line-height: 42px;
220
- pointer-events: none;
221
- }
222
-
223
- .picker-opt {
224
- padding-left: 0;
225
- padding-right: 0;
226
- padding-top: 0;
227
- padding-bottom: 0;
228
- margin-left: 0;
229
- margin-right: 0;
230
- margin-top: 0;
231
- margin-bottom: 0;
232
- transform-origin: center center;
233
- height: 46px;
234
- transform-style: preserve-3d;
235
- transition-timing-function: ease-out;
236
- background: transparent;
237
- color: inherit;
238
- font-size: 20px;
239
- line-height: 42px;
240
- backface-visibility: hidden;
241
- pointer-events: auto;
242
- }
243
- :host-context([dir=rtl]) .picker-opt {
244
- transform-origin: calc(100% - center) center;
252
+ :host .picker-before {
253
+ background: linear-gradient(to bottom, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%);
245
254
  }
246
255
 
247
- [dir=rtl] .picker-opt {
248
- transform-origin: calc(100% - center) center;
249
- }
250
-
251
- @supports selector(:dir(rtl)) {
252
- .picker-opt:dir(rtl) {
253
- transform-origin: calc(100% - center) center;
254
- }
256
+ :host .picker-after {
257
+ background: linear-gradient(to top, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--wheel-fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%);
255
258
  }
@@ -5,9 +5,9 @@ import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
7
  configs().forEach(({ title, config }) => {
8
- test.describe(title('picker: a11y'), () => {
8
+ test.describe(title('picker-internal: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
- await page.goto(`/src/components/picker/test/a11y`, config);
10
+ await page.goto(`/src/components/picker-internal/test/a11y`, config);
11
11
  const results = await new AxeBuilder({ page }).analyze();
12
12
  expect(results.violations).toEqual([]);
13
13
  });
@@ -0,0 +1,118 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ /**
7
+ * This behavior does not vary across directions.
8
+ */
9
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
10
+ test.describe(title('picker-internal: rendering'), () => {
11
+ test('inline pickers should not have visual regression', async ({ page }) => {
12
+ await page.goto(`/src/components/picker-internal/test/basic`, config);
13
+ const fullStack = page.locator('#inline button[data-value="full-stack"]');
14
+ const onion = page.locator('#inline button[data-value="onion"]');
15
+ await expect(fullStack).toHaveClass(/picker-item-active/);
16
+ await expect(onion).toHaveClass(/picker-item-active/);
17
+ await page.waitForChanges();
18
+ await expect(page.locator('#inline')).toHaveScreenshot(screenshot(`picker-internal-inline-diff`));
19
+ });
20
+ });
21
+ test.describe(title('picker-internal: overlay rendering'), () => {
22
+ test('popover: should not have visual regression', async ({ page }) => {
23
+ await page.goto(`/src/components/picker-internal/test/basic`, config);
24
+ const button = page.locator('#popover');
25
+ const didPresent = await page.spyOnEvent('ionPopoverDidPresent');
26
+ const pickerInternal = page.locator('ion-popover ion-picker-internal');
27
+ await button.click();
28
+ await didPresent.next();
29
+ await expect(pickerInternal).toBeVisible();
30
+ const popoverContent = page.locator('ion-popover .ion-delegate-host');
31
+ await expect(popoverContent).toHaveScreenshot(screenshot(`picker-internal-popover-diff`), {
32
+ /**
33
+ * Animations must be enabled to capture the screenshot.
34
+ * By default, animations are disabled with toHaveScreenshot,
35
+ * and when capturing the screenshot will call animation.finish().
36
+ * This will cause the popover to close and the screenshot capture
37
+ * to be invalid.
38
+ */
39
+ animations: 'allow',
40
+ });
41
+ });
42
+ test('modal: should not have visual regression', async ({ page }) => {
43
+ await page.goto('/src/components/picker-internal/test/basic', config);
44
+ const button = page.locator('#modal');
45
+ const didPresent = await page.spyOnEvent('ionModalDidPresent');
46
+ const pickerInternal = page.locator('ion-modal ion-picker-internal');
47
+ await button.click();
48
+ await didPresent.next();
49
+ await expect(pickerInternal).toBeVisible();
50
+ const modalContent = page.locator('ion-modal .ion-delegate-host');
51
+ await expect(modalContent).toHaveScreenshot(screenshot(`picker-internal-modal-diff`), {
52
+ /**
53
+ * Animations must be enabled to capture the screenshot.
54
+ * By default, animations are disabled with toHaveScreenshot,
55
+ * and when capturing the screenshot will call animation.finish().
56
+ * This will cause the modal to close and the screenshot capture
57
+ * to be invalid.
58
+ */
59
+ animations: 'allow',
60
+ });
61
+ });
62
+ });
63
+ });
64
+ /**
65
+ * This behavior does not vary across modes/directions.
66
+ */
67
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
68
+ test.describe(title('picker-internal: focus'), () => {
69
+ test.beforeEach(async ({ page }) => {
70
+ await page.setContent(`
71
+ <ion-picker-internal>
72
+ <ion-picker-column-internal value="full-stack" id="first"></ion-picker-column-internal>
73
+ <ion-picker-column-internal value="onion" id="second"></ion-picker-column-internal>
74
+ </ion-picker-internal>
75
+
76
+ <script>
77
+ const columns = document.querySelectorAll('ion-picker-column-internal');
78
+ columns[0].items = [
79
+ { text: 'Minified', value: 'minified' },
80
+ { text: 'Responsive', value: 'responsive' },
81
+ { text: 'Full Stack', value: 'full-stack' },
82
+ { text: 'Mobile First', value: 'mobile-first' },
83
+ { text: 'Serverless', value: 'serverless' },
84
+ ]
85
+
86
+ columns[1].items = [
87
+ { text: 'Tomato', value: 'tomato' },
88
+ { text: 'Avocado', value: 'avocado' },
89
+ { text: 'Onion', value: 'onion' },
90
+ { text: 'Potato', value: 'potato' },
91
+ { text: 'Artichoke', value: 'artichoke' },
92
+ ];
93
+ </script>
94
+ `, config);
95
+ });
96
+ test('tabbing should correctly move focus between columns', async ({ page }) => {
97
+ const firstColumn = page.locator('ion-picker-column-internal#first');
98
+ const secondColumn = page.locator('ion-picker-column-internal#second');
99
+ // Focus first column
100
+ await page.keyboard.press('Tab');
101
+ await expect(firstColumn).toBeFocused();
102
+ await page.waitForChanges();
103
+ // Focus second column
104
+ await page.keyboard.press('Tab');
105
+ await expect(secondColumn).toBeFocused();
106
+ });
107
+ test('tabbing should correctly move focus back', async ({ page }) => {
108
+ const firstColumn = page.locator('ion-picker-column-internal#first');
109
+ const secondColumn = page.locator('ion-picker-column-internal#second');
110
+ await secondColumn.focus();
111
+ await expect(secondColumn).toBeFocused();
112
+ await page.waitForChanges();
113
+ // Focus first column
114
+ await page.keyboard.press('Shift+Tab');
115
+ await expect(firstColumn).toBeFocused();
116
+ });
117
+ });
118
+ });
@@ -7,15 +7,15 @@ import { configs, test } from "../../../../utils/test/playwright/index";
7
7
  * This behavior does not vary across modes/directions.
8
8
  */
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
- test.describe(title('picker: keyboard entry'), () => {
10
+ test.describe(title('picker-internal: keyboard entry'), () => {
11
11
  test('should scroll to and update the value prop for a single column', async ({ page }) => {
12
12
  await page.setContent(`
13
- <ion-picker>
14
- <ion-picker-column></ion-picker-column>
15
- </ion-picker>
13
+ <ion-picker-internal>
14
+ <ion-picker-column-internal></ion-picker-column-internal>
15
+ </ion-picker-internal>
16
16
 
17
17
  <script>
18
- const column = document.querySelector('ion-picker-column');
18
+ const column = document.querySelector('ion-picker-column-internal');
19
19
  column.items = [
20
20
  { text: '01', value: 1 },
21
21
  { text: '02', value: 2 },
@@ -27,7 +27,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
27
27
  column.numericInput = true;
28
28
  </script>
29
29
  `, config);
30
- const column = page.locator('ion-picker-column');
30
+ const column = page.locator('ion-picker-column-internal');
31
31
  const ionChange = await page.spyOnEvent('ionChange');
32
32
  await column.focus();
33
33
  await page.keyboard.press('Digit2');
@@ -36,13 +36,13 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
36
36
  });
37
37
  test('should scroll to and update the value prop for multiple columns', async ({ page }) => {
38
38
  await page.setContent(`
39
- <ion-picker>
40
- <ion-picker-column id="first"></ion-picker-column>
41
- <ion-picker-column id="second"></ion-picker-column>
42
- </ion-picker>
39
+ <ion-picker-internal>
40
+ <ion-picker-column-internal id="first"></ion-picker-column-internal>
41
+ <ion-picker-column-internal id="second"></ion-picker-column-internal>
42
+ </ion-picker-internal>
43
43
 
44
44
  <script>
45
- const firstColumn = document.querySelector('ion-picker-column#first');
45
+ const firstColumn = document.querySelector('ion-picker-column-internal#first');
46
46
  firstColumn.items = [
47
47
  { text: '01', value: 1 },
48
48
  { text: '02', value: 2 },
@@ -53,7 +53,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
53
53
  firstColumn.value = 5;
54
54
  firstColumn.numericInput = true;
55
55
 
56
- const secondColumn = document.querySelector('ion-picker-column#second');
56
+ const secondColumn = document.querySelector('ion-picker-column-internal#second');
57
57
  secondColumn.items = [
58
58
  { text: '20', value: 20 },
59
59
  { text: '21', value: 21 },
@@ -65,9 +65,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
65
65
  secondColumn.numericInput = true;
66
66
  </script>
67
67
  `, config);
68
- const firstColumn = page.locator('ion-picker-column#first');
69
- const secondColumn = page.locator('ion-picker-column#second');
70
- const highlight = page.locator('ion-picker .picker-highlight');
68
+ const firstColumn = page.locator('ion-picker-column-internal#first');
69
+ const secondColumn = page.locator('ion-picker-column-internal#second');
70
+ const highlight = page.locator('ion-picker-internal .picker-highlight');
71
71
  const firstIonChange = await firstColumn.spyOnEvent('ionChange');
72
72
  const secondIonChange = await secondColumn.spyOnEvent('ionChange');
73
73
  const box = await highlight.boundingBox();
@@ -85,12 +85,12 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
85
85
  });
86
86
  test('should select 00', async ({ page }) => {
87
87
  await page.setContent(`
88
- <ion-picker>
89
- <ion-picker-column></ion-picker-column>
90
- </ion-picker>
88
+ <ion-picker-internal>
89
+ <ion-picker-column-internal></ion-picker-column-internal>
90
+ </ion-picker-internal>
91
91
 
92
92
  <script>
93
- const column = document.querySelector('ion-picker-column');
93
+ const column = document.querySelector('ion-picker-column-internal');
94
94
  column.items = [
95
95
  { text: '00', value: 12 },
96
96
  { text: '01', value: 1 },
@@ -103,7 +103,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
103
103
  column.numericInput = true;
104
104
  </script>
105
105
  `, config);
106
- const column = page.locator('ion-picker-column');
106
+ const column = page.locator('ion-picker-column-internal');
107
107
  const ionChange = await page.spyOnEvent('ionChange');
108
108
  await column.focus();
109
109
  await page.keyboard.press('Digit0');
@@ -189,5 +189,5 @@ class BlockerDelegate {
189
189
  this.ctrl = undefined;
190
190
  }
191
191
  }
192
- export const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
192
+ const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
193
193
  export const GESTURE_CONTROLLER = new GestureController();
@@ -5,7 +5,6 @@ import { doc } from "./browser/index";
5
5
  import { config } from "../global/config";
6
6
  import { getIonMode } from "../global/ionic-global";
7
7
  import { CoreDelegate } from "./framework-delegate";
8
- import { BACKDROP_NO_SCROLL } from "./gesture/gesture-controller";
9
8
  import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
10
9
  import { addEventListener, componentOnReady, focusElement, getElementRoot, removeEventListener } from "./helpers";
11
10
  import { printIonWarning } from "./logging";
@@ -29,10 +28,7 @@ export const alertController = /*@__PURE__*/ createController('ion-alert');
29
28
  export const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
30
29
  export const loadingController = /*@__PURE__*/ createController('ion-loading');
31
30
  export const modalController = /*@__PURE__*/ createController('ion-modal');
32
- /**
33
- * @deprecated Use the inline ion-picker component instead.
34
- */
35
- export const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
31
+ export const pickerController = /*@__PURE__*/ createController('ion-picker');
36
32
  export const popoverController = /*@__PURE__*/ createController('ion-popover');
37
33
  export const toastController = /*@__PURE__*/ createController('ion-toast');
38
34
  /**
@@ -142,7 +138,7 @@ const focusLastDescendant = (ref, overlay) => {
142
138
  * Should NOT include: Toast
143
139
  */
144
140
  const trapKeyboardFocus = (ev, doc) => {
145
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
141
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
146
142
  const target = ev.target;
147
143
  /**
148
144
  * If no active overlay, ignore this event.
@@ -327,7 +323,7 @@ export const dismissOverlay = (doc, data, role, overlayTag, id) => {
327
323
  */
328
324
  export const getOverlays = (doc, selector) => {
329
325
  if (selector === undefined) {
330
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
326
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
331
327
  }
332
328
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
333
329
  };
@@ -393,7 +389,6 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
393
389
  return;
394
390
  }
395
391
  setRootAriaHidden(true);
396
- document.body.classList.add(BACKDROP_NO_SCROLL);
397
392
  overlay.presented = true;
398
393
  overlay.willPresent.emit();
399
394
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -456,14 +451,12 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
456
451
  if (!overlay.presented) {
457
452
  return false;
458
453
  }
459
- const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
460
454
  /**
461
455
  * If this is the last visible overlay then
462
456
  * we want to re-add the root to the accessibility tree.
463
457
  */
464
- if (lastOverlay) {
458
+ if (doc !== undefined && getPresentedOverlays(doc).length === 1) {
465
459
  setRootAriaHidden(false);
466
- document.body.classList.remove(BACKDROP_NO_SCROLL);
467
460
  }
468
461
  overlay.presented = false;
469
462
  try {