@ionic/core 9.0.1-dev.11787949960.1e63841c → 9.0.1-dev.11788285010.17561004

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 (461) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/{dist/ionic/p-BpG7jkT9.js → components/p-66ogmUZU.js} +1 -1
  99. package/components/p-6Vp915Y7.js +4 -0
  100. package/components/{p-B2L09UOs.js → p-7PNwKFZi.js} +1 -1
  101. package/components/{p-C8mPeq0D.js → p-A8MJRBIY.js} +1 -1
  102. package/components/p-AQcCdH2_.js +4 -0
  103. package/components/{p-DkEb3SCT.js → p-B6x5_b9w.js} +1 -1
  104. package/components/{p-CDKY4TZ_.js → p-B8MQjdvk.js} +1 -1
  105. package/components/{p-CLZPNP7x.js → p-BA_4ZIEg.js} +1 -1
  106. package/components/{p-CyKlfXdt.js → p-BFtL8t1r.js} +1 -1
  107. package/components/{p-RRH-7cpd.js → p-BMfgF-Tv.js} +1 -1
  108. package/components/{p-l-zxxFre.js → p-BPDxVIRr.js} +1 -1
  109. package/{dist/ionic/p-BC17SPKH.js → components/p-BSARlp49.js} +1 -1
  110. package/components/p-BdwCtX8Y.js +4 -0
  111. package/components/p-Bg4OwDwb.js +4 -0
  112. package/components/{p-CBhGZ6rF.js → p-BgUIV8NQ.js} +1 -1
  113. package/components/{p-CxiXpCtB.js → p-Bnc0m4SW.js} +1 -1
  114. package/components/{p-7qDu1bID.js → p-BpLt_Ptn.js} +1 -1
  115. package/components/{p-C12SAK00.js → p-BqBDq1Ma.js} +1 -1
  116. package/components/{p-mXsQnyWB.js → p-BrFaQbGY.js} +1 -1
  117. package/{dist/ionic/p-CoEa7CiN.js → components/p-BuPAFTWI.js} +1 -1
  118. package/components/{p-CB06XtlF.js → p-Bx2saTHs.js} +1 -1
  119. package/components/p-BxhE2W85.js +4 -0
  120. package/components/p-CHswSpKy.js +4 -0
  121. package/components/p-CQAjyETU.js +4 -0
  122. package/components/p-CR9OgE6N.js +4 -0
  123. package/components/{p-CEkamjav.js → p-CWETxTjE.js} +1 -1
  124. package/components/p-CaZeZIL2.js +4 -0
  125. package/components/{p-CuS0-WwK.js → p-CaiZOhfC.js} +1 -1
  126. package/components/{p-BFwL2yyK.js → p-CgvDC7hC.js} +1 -1
  127. package/components/p-CqyGR9Aq.js +4 -0
  128. package/components/{p-DMkSsriG.js → p-D7ysFE2B.js} +1 -1
  129. package/components/p-DCWfzDM8.js +4 -0
  130. package/{dist/ionic/p-DA88iqXQ.js → components/p-DDdkefwf.js} +1 -1
  131. package/components/{p-CJTKYpZv.js → p-DEW7CnUc.js} +1 -1
  132. package/components/p-DQ1IPvZO.js +4 -0
  133. package/components/{p-BAJ7NctL.js → p-DcOH6-o5.js} +1 -1
  134. package/components/p-DfdYCsov.js +4 -0
  135. package/{dist/ionic/p-DoUx_N0R.js → components/p-DhOoEIAs.js} +1 -1
  136. package/components/p-Dl_7b_UJ.js +4 -0
  137. package/components/p-DqAI6tg7.js +4 -0
  138. package/components/p-DrehWDfv.js +4 -0
  139. package/components/{p-BWHBdLfY.js → p-DysqCsJu.js} +1 -1
  140. package/components/{p-BqE7e5gH.js → p-H1f2qsk4.js} +1 -1
  141. package/components/p-HVYBAhFx.js +4 -0
  142. package/components/{p-BE9noJ1O.js → p-Kmrg3Fed.js} +1 -1
  143. package/{dist/ionic/p-wdSUbx5C.js → components/p-RFfE9hF6.js} +1 -1
  144. package/components/{p-Bcm-GVQM.js → p-SR-LLqp_.js} +1 -1
  145. package/components/p-eFI3mtEX.js +4 -0
  146. package/components/{p-5rFO7X8J.js → p-gFwXiYC_.js} +1 -1
  147. package/components/{p-COxY7PLK.js → p-tX3UxCnU.js} +1 -1
  148. package/components/{p-VTfnz_8u.js → p-v2NpoOHp.js} +1 -1
  149. package/css/core.css +1 -1
  150. package/css/core.css.map +1 -1
  151. package/css/ionic.bundle.css +1 -1
  152. package/css/ionic.bundle.css.map +1 -1
  153. package/dist/cjs/{animation-ihPP_z2n.js → animation-D-OqR4a4.js} +1 -1
  154. package/dist/cjs/{app-globals-BlkzA410.js → app-globals-BzgwARwJ.js} +1 -1
  155. package/dist/cjs/{button-active-ItGBjzmO.js → button-active-BlWSD7uK.js} +1 -1
  156. package/dist/cjs/{format-CPIqtp4x.js → format-D7ig6Vm0.js} +1 -1
  157. package/dist/cjs/{framework-delegate-DhyWUPGg.js → framework-delegate-BZUx4TnE.js} +1 -1
  158. package/dist/cjs/{hardware-back-button-D5f_kASb.js → hardware-back-button-JOAEFSzc.js} +1 -1
  159. package/dist/cjs/{helpers-BCLkFTTd.js → helpers-Dj5o76mq.js} +1 -1
  160. package/dist/cjs/{index-CldjPPyP.js → index-2sO-zkZ2.js} +4 -4
  161. package/dist/cjs/{index-Bgz6BcKx.js → index-BrVMoqUk.js} +16 -50
  162. package/dist/cjs/{index-49DTLc_Z.js → index-C8zH6b3d.js} +2 -2
  163. package/dist/cjs/{index-BcyiqD6R.js → index-CZ6vzt_q.js} +5 -5
  164. package/dist/cjs/{index-xum7jdbq.js → index-Csue6G3m.js} +2 -2
  165. package/dist/cjs/{index-BocV_y-c.js → index-EJLjthTK.js} +1 -2
  166. package/dist/cjs/index.cjs.js +12 -12
  167. package/dist/cjs/{input-shims-Jisy7U7-.js → input-shims-Bh7bnt2v.js} +3 -3
  168. package/dist/cjs/{input.utils-BDTpGrfn.js → input.utils-Cq3g9uHy.js} +1 -1
  169. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  170. package/dist/cjs/ion-action-sheet.cjs.entry.js +29 -45
  171. package/dist/cjs/ion-alert.cjs.entry.js +21 -29
  172. package/dist/cjs/ion-app_8.cjs.entry.js +16 -38
  173. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  174. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  175. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  176. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  177. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  178. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  179. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  180. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  181. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  182. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  183. package/dist/cjs/ion-datetime.cjs.entry.js +24 -32
  184. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  185. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  186. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  187. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  188. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  189. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  190. package/dist/cjs/ion-item-option_3.cjs.entry.js +15 -13
  191. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  192. package/dist/cjs/ion-loading.cjs.entry.js +10 -14
  193. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  194. package/dist/cjs/ion-modal.cjs.entry.js +32 -85
  195. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  196. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  197. package/dist/cjs/ion-picker-column.cjs.entry.js +46 -210
  198. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  199. package/dist/cjs/ion-popover.cjs.entry.js +10 -23
  200. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  201. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  202. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  203. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  204. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  205. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  206. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  207. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  208. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  209. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  210. package/dist/cjs/ion-segment_2.cjs.entry.js +10 -14
  211. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
  212. package/dist/cjs/ion-select_3.cjs.entry.js +47 -57
  213. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  214. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  215. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  216. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  217. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  218. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  219. package/dist/cjs/ion-toast.cjs.entry.js +8 -8
  220. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  221. package/dist/cjs/{ionic-global-BMU-Us1Q.js → ionic-global-DvgIzM2F.js} +1 -1
  222. package/dist/cjs/ionic.cjs.js +4 -4
  223. package/dist/cjs/{ios.transition-OCcCN--B.js → ios.transition-zIgdoSYe.js} +4 -4
  224. package/dist/cjs/{item-multiple-inputs-BH9yPC66.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
  225. package/dist/cjs/loader.cjs.js +3 -3
  226. package/dist/cjs/{md.transition-D0o2IIbo.js → md.transition-CXeJ9rfh.js} +4 -4
  227. package/dist/cjs/{overlays-HN9joo1Z.js → overlays-Bg0auTQa.js} +34 -59
  228. package/dist/cjs/{select-option-render-BPjGDlsG.js → select-option-render-7m1WdFzF.js} +2 -2
  229. package/dist/cjs/{slot-mutation-controller-IQ250LoG.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
  230. package/dist/cjs/{status-tap-Bakl9czs.js → status-tap-DxbUM5XX.js} +3 -3
  231. package/dist/cjs/{swipe-back-Cv4OZVJ5.js → swipe-back-F_DBt-Aw.js} +2 -2
  232. package/dist/collection/collection-manifest.json +1 -1
  233. package/dist/collection/components/action-sheet/action-sheet.js +20 -36
  234. package/dist/collection/components/alert/alert.js +12 -20
  235. package/dist/collection/components/content/content.js +4 -26
  236. package/dist/collection/components/datetime/datetime.js +17 -25
  237. package/dist/collection/components/item-sliding/item-sliding.js +12 -10
  238. package/dist/collection/components/loading/loading.js +3 -7
  239. package/dist/collection/components/modal/modal.ios.css +1 -12
  240. package/dist/collection/components/modal/modal.js +22 -75
  241. package/dist/collection/components/modal/modal.md.css +1 -12
  242. package/dist/collection/components/picker-column/picker-column.js +43 -207
  243. package/dist/collection/components/popover/popover.js +3 -16
  244. package/dist/collection/components/segment-button/segment-button.js +7 -11
  245. package/dist/collection/components/select/select.js +39 -49
  246. package/dist/collection/utils/overlays.js +29 -53
  247. package/dist/collection/utils/test/playwright/index.js +0 -1
  248. package/dist/docs.json +48 -279
  249. package/dist/esm/{animation-B6KGUJwl.js → animation-TxGPYeDn.js} +1 -1
  250. package/dist/esm/{app-globals-BvutUX8P.js → app-globals-Do8rJest.js} +1 -1
  251. package/dist/esm/{button-active-DRNebs9r.js → button-active-ChA4D-ml.js} +1 -1
  252. package/dist/esm/{format-BF3btM7P.js → format-CVk5e_GP.js} +1 -1
  253. package/dist/esm/{framework-delegate-60cEIAgt.js → framework-delegate-DaLWnISz.js} +1 -1
  254. package/dist/esm/{hardware-back-button-rhkwRNk2.js → hardware-back-button-D8W4L0JP.js} +1 -1
  255. package/dist/esm/{helpers-DLLANtRS.js → helpers-BIgoInJU.js} +1 -1
  256. package/dist/esm/{index-DOrtAUWV.js → index-BmOR8tCv.js} +2 -2
  257. package/dist/esm/{index-D_7MeuVD.js → index-C5ZdL0qp.js} +5 -5
  258. package/dist/esm/{index-BZHVn0iF.js → index-C8Dsa6li.js} +4 -4
  259. package/dist/esm/{index-h81G-QbJ.js → index-CKYcsw8f.js} +16 -50
  260. package/dist/esm/{index-Bl4BUvBL.js → index-DHw2lZxe.js} +2 -2
  261. package/dist/esm/{index-JgU5uTSY.js → index-elneMH8y.js} +2 -2
  262. package/dist/esm/index.js +12 -12
  263. package/dist/esm/{input-shims-C2ipc_XX.js → input-shims-09NN97kF.js} +3 -3
  264. package/dist/esm/{input.utils-D-qoPjqr.js → input.utils-BxyH9l1w.js} +1 -1
  265. package/dist/esm/ion-accordion_2.entry.js +3 -3
  266. package/dist/esm/ion-action-sheet.entry.js +29 -45
  267. package/dist/esm/ion-alert.entry.js +21 -29
  268. package/dist/esm/ion-app_8.entry.js +16 -38
  269. package/dist/esm/ion-avatar_3.entry.js +2 -2
  270. package/dist/esm/ion-back-button.entry.js +3 -3
  271. package/dist/esm/ion-backdrop.entry.js +2 -2
  272. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  273. package/dist/esm/ion-button_2.entry.js +3 -3
  274. package/dist/esm/ion-card_5.entry.js +3 -3
  275. package/dist/esm/ion-checkbox.entry.js +4 -4
  276. package/dist/esm/ion-chip.entry.js +2 -2
  277. package/dist/esm/ion-col_3.entry.js +2 -2
  278. package/dist/esm/ion-datetime-button.entry.js +4 -4
  279. package/dist/esm/ion-datetime.entry.js +24 -32
  280. package/dist/esm/ion-fab_3.entry.js +3 -3
  281. package/dist/esm/ion-img.entry.js +3 -3
  282. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  283. package/dist/esm/ion-input-otp.entry.js +3 -3
  284. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  285. package/dist/esm/ion-input.entry.js +5 -5
  286. package/dist/esm/ion-item-option_3.entry.js +15 -13
  287. package/dist/esm/ion-item_8.entry.js +3 -3
  288. package/dist/esm/ion-loading.entry.js +10 -14
  289. package/dist/esm/ion-menu_3.entry.js +8 -8
  290. package/dist/esm/ion-modal.entry.js +32 -85
  291. package/dist/esm/ion-nav_2.entry.js +6 -6
  292. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  293. package/dist/esm/ion-picker-column.entry.js +47 -211
  294. package/dist/esm/ion-picker.entry.js +2 -2
  295. package/dist/esm/ion-popover.entry.js +10 -23
  296. package/dist/esm/ion-progress-bar.entry.js +3 -3
  297. package/dist/esm/ion-radio_2.entry.js +4 -4
  298. package/dist/esm/ion-range.entry.js +4 -4
  299. package/dist/esm/ion-refresher_2.entry.js +6 -6
  300. package/dist/esm/ion-reorder_2.entry.js +4 -4
  301. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  302. package/dist/esm/ion-route_4.entry.js +4 -4
  303. package/dist/esm/ion-searchbar.entry.js +3 -3
  304. package/dist/esm/ion-segment-content.entry.js +1 -1
  305. package/dist/esm/ion-segment-view.entry.js +1 -1
  306. package/dist/esm/ion-segment_2.entry.js +10 -14
  307. package/dist/esm/ion-select-modal.entry.js +8 -8
  308. package/dist/esm/ion-select_3.entry.js +47 -57
  309. package/dist/esm/ion-spinner.entry.js +2 -2
  310. package/dist/esm/ion-split-pane.entry.js +2 -2
  311. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  312. package/dist/esm/ion-tab_2.entry.js +3 -3
  313. package/dist/esm/ion-text.entry.js +2 -2
  314. package/dist/esm/ion-textarea.entry.js +5 -5
  315. package/dist/esm/ion-toast.entry.js +8 -8
  316. package/dist/esm/ion-toggle.entry.js +4 -4
  317. package/dist/esm/{ionic-global-B7I1sdvg.js → ionic-global-lrowsHfi.js} +1 -1
  318. package/dist/esm/ionic.js +5 -5
  319. package/dist/esm/{ios.transition-C-6IaIxe.js → ios.transition-BQhADrk1.js} +4 -4
  320. package/dist/esm/{item-multiple-inputs-DI91syHS.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
  321. package/dist/esm/loader.js +4 -4
  322. package/dist/esm/{md.transition-dyqt0t0d.js → md.transition-D58NpmRa.js} +4 -4
  323. package/dist/esm/{overlays-Dz2cGX5q.js → overlays-BpnIFlXI.js} +35 -59
  324. package/dist/esm/{select-option-render-CUJpruSC.js → select-option-render-lIuu64EV.js} +2 -2
  325. package/dist/esm/{slot-mutation-controller-wFuztlVD.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
  326. package/dist/esm/{status-tap-Dn_42wiy.js → status-tap-CpFQMLl6.js} +3 -3
  327. package/dist/esm/{swipe-back-CqOqrHW7.js → swipe-back-rmc7zeNW.js} +2 -2
  328. package/dist/ionic/index.esm.js +1 -1
  329. package/dist/ionic/ionic.esm.js +1 -1
  330. package/dist/ionic/{p-025763b2.entry.js → p-05800a02.entry.js} +1 -1
  331. package/dist/ionic/p-0eb50dca.entry.js +4 -0
  332. package/dist/ionic/{p-0b52d921.entry.js → p-16e9f542.entry.js} +1 -1
  333. package/dist/ionic/p-18d532a3.entry.js +4 -0
  334. package/dist/ionic/{p-a2fccdaa.entry.js → p-1db2afb4.entry.js} +1 -1
  335. package/dist/ionic/{p-5ed60413.entry.js → p-1df75f9e.entry.js} +1 -1
  336. package/dist/ionic/{p-2ff12c8a.entry.js → p-295ff427.entry.js} +1 -1
  337. package/dist/ionic/p-34b9379b.entry.js +4 -0
  338. package/dist/ionic/{p-cc749877.entry.js → p-39a8d4e0.entry.js} +1 -1
  339. package/dist/ionic/p-4437015c.entry.js +4 -0
  340. package/dist/ionic/{p-53ba5651.entry.js → p-478035a7.entry.js} +1 -1
  341. package/dist/ionic/{p-1a20571c.entry.js → p-485fb218.entry.js} +1 -1
  342. package/dist/ionic/p-48c859fe.entry.js +4 -0
  343. package/dist/ionic/p-49b9d405.entry.js +4 -0
  344. package/dist/ionic/{p-d1539609.entry.js → p-56307aea.entry.js} +1 -1
  345. package/dist/ionic/{p-eeb65463.entry.js → p-5ee2d7b1.entry.js} +1 -1
  346. package/dist/ionic/{p-ca57763d.entry.js → p-5f216b79.entry.js} +1 -1
  347. package/dist/ionic/{p-fb4dabbb.entry.js → p-61c799d1.entry.js} +1 -1
  348. package/dist/ionic/{p-fe80ebb1.entry.js → p-63bbba8d.entry.js} +1 -1
  349. package/dist/ionic/p-68507e70.entry.js +4 -0
  350. package/dist/ionic/{p-43bae3f5.entry.js → p-6f048604.entry.js} +1 -1
  351. package/dist/ionic/{p-dadcb3d2.entry.js → p-70ee8888.entry.js} +1 -1
  352. package/dist/ionic/{p-7c859f42.entry.js → p-72ad7c64.entry.js} +1 -1
  353. package/dist/ionic/{p-90e06e60.entry.js → p-75887ee0.entry.js} +1 -1
  354. package/dist/ionic/{p-bdc01880.entry.js → p-873a315a.entry.js} +1 -1
  355. package/dist/ionic/{p-f0645c98.entry.js → p-881b6954.entry.js} +1 -1
  356. package/dist/ionic/p-886d9e66.entry.js +4 -0
  357. package/dist/ionic/{p-5dc53bdf.entry.js → p-8dd4c026.entry.js} +1 -1
  358. package/dist/ionic/{p-9f2d3987.entry.js → p-8e007f11.entry.js} +1 -1
  359. package/dist/ionic/p-8f464a8f.entry.js +4 -0
  360. package/dist/ionic/p-8f51110d.entry.js +4 -0
  361. package/dist/ionic/{p-1f66c230.entry.js → p-90ba736e.entry.js} +1 -1
  362. package/dist/ionic/{p-8d72244b.entry.js → p-959df5f8.entry.js} +1 -1
  363. package/dist/ionic/{p-8e388a30.entry.js → p-9e455875.entry.js} +1 -1
  364. package/{components/p-BcuLPPAE.js → dist/ionic/p-9wczfs_v.js} +1 -1
  365. package/dist/ionic/{p-C10K-FJg.js → p-B1Y7LZhV.js} +1 -1
  366. package/dist/ionic/p-B5RyLYvl.js +4 -0
  367. package/dist/ionic/p-BQv5i5Kf.js +4 -0
  368. package/dist/ionic/{p-CH8tk7Pr.js → p-BZVE25Gu.js} +1 -1
  369. package/{components/p-CdSLe3Q3.js → dist/ionic/p-BZxjcGRP.js} +1 -1
  370. package/dist/ionic/p-BnGA34Pd.js +4 -0
  371. package/dist/ionic/{p-Q9w8L_Sw.js → p-ByLaqOPm.js} +1 -1
  372. package/dist/ionic/p-C06QNN45.js +4 -0
  373. package/dist/ionic/{p-KJ5pLPiN.js → p-C4IBDDj6.js} +1 -1
  374. package/dist/ionic/p-CCVlNZ__.js +4 -0
  375. package/dist/ionic/{p-CTBfxfjC.js → p-CDBop-kz.js} +1 -1
  376. package/dist/ionic/p-CKYcsw8f.js +5 -0
  377. package/dist/ionic/p-CazSodad.js +4 -0
  378. package/dist/ionic/{p-S1shXW5M.js → p-ClrlQU2y.js} +1 -1
  379. package/{components/p-DG-dUCKp.js → dist/ionic/p-D0dfUysx.js} +1 -1
  380. package/dist/ionic/{p-C2BY_4Wp.js → p-D9yvytgv.js} +1 -1
  381. package/{components/p-DH0rRXjx.js → dist/ionic/p-DF_Uqql8.js} +1 -1
  382. package/dist/ionic/{p-DMj-M2c4.js → p-DXJgZWgi.js} +1 -1
  383. package/dist/ionic/p-DdhHqKj-.js +4 -0
  384. package/dist/ionic/{p-BRc8gq5v.js → p-De0eY881.js} +1 -1
  385. package/dist/ionic/p-DgUL3JbO.js +4 -0
  386. package/dist/ionic/{p-06ZcwRF5.js → p-RzUn7cKs.js} +1 -1
  387. package/dist/ionic/p-VquyMbjp.js +4 -0
  388. package/dist/ionic/{p-2aabd568.entry.js → p-a0fee899.entry.js} +1 -1
  389. package/dist/ionic/{p-9e688396.entry.js → p-a54bcd16.entry.js} +1 -1
  390. package/dist/ionic/{p-eaeac54e.entry.js → p-aebc4d69.entry.js} +1 -1
  391. package/dist/ionic/{p-9452849d.entry.js → p-b5f37106.entry.js} +1 -1
  392. package/dist/ionic/{p-082b8125.entry.js → p-b62bfce8.entry.js} +1 -1
  393. package/dist/ionic/p-b7a11b58.entry.js +4 -0
  394. package/dist/ionic/{p-546b1109.entry.js → p-bbf6878c.entry.js} +1 -1
  395. package/dist/ionic/{p-e93cc1e1.entry.js → p-c49165af.entry.js} +1 -1
  396. package/dist/ionic/{p-9eba0d8a.entry.js → p-cad4eccf.entry.js} +1 -1
  397. package/dist/ionic/{p-d1b888de.entry.js → p-cdc5115e.entry.js} +1 -1
  398. package/dist/ionic/{p-47b8b59a.entry.js → p-d3384a40.entry.js} +1 -1
  399. package/dist/ionic/{p-f607ad4f.entry.js → p-d8bae128.entry.js} +1 -1
  400. package/dist/ionic/{p-026e2e4c.entry.js → p-d8deff43.entry.js} +1 -1
  401. package/dist/ionic/{p-6d84fa9f.entry.js → p-ddfb7e5f.entry.js} +1 -1
  402. package/dist/ionic/{p-ecfc9c71.entry.js → p-e538f18d.entry.js} +1 -1
  403. package/dist/ionic/{p-83aa7d47.entry.js → p-f376876b.entry.js} +1 -1
  404. package/dist/ionic/p-f521b13c.entry.js +4 -0
  405. package/dist/ionic/{p-ac71362a.entry.js → p-fbd83d4c.entry.js} +1 -1
  406. package/dist/types/components/action-sheet/action-sheet.d.ts +0 -10
  407. package/dist/types/components/alert/alert.d.ts +0 -7
  408. package/dist/types/components/content/content.d.ts +0 -7
  409. package/dist/types/components/modal/modal.d.ts +0 -8
  410. package/dist/types/components/picker-column/picker-column.d.ts +0 -42
  411. package/dist/types/components.d.ts +1 -1
  412. package/dist/types/stencil-public-runtime.d.ts +0 -12
  413. package/dist/types/utils/overlays.d.ts +0 -9
  414. package/dist/types/utils/test/playwright/index.d.ts +0 -1
  415. package/hydrate/index.js +213 -558
  416. package/hydrate/index.mjs +213 -558
  417. package/loader/index.d.ts +1 -1
  418. package/package.json +2 -2
  419. package/components/p-BhlP16sB.js +0 -4
  420. package/components/p-C8Tp0cQy.js +0 -4
  421. package/components/p-CFtAWaB6.js +0 -4
  422. package/components/p-CQxPXWNM.js +0 -4
  423. package/components/p-CRcX0EGs.js +0 -4
  424. package/components/p-CVNvmbDp.js +0 -4
  425. package/components/p-CXpy69Ei.js +0 -4
  426. package/components/p-CoGD-oMG.js +0 -4
  427. package/components/p-CpYeYl3u.js +0 -4
  428. package/components/p-D2XJVty5.js +0 -4
  429. package/components/p-DALTMT_o.js +0 -4
  430. package/components/p-Dr-rBSUW.js +0 -4
  431. package/components/p-MHpJ2A_m.js +0 -4
  432. package/components/p-N6lZFXYR.js +0 -4
  433. package/components/p-QgdyH-Zs.js +0 -4
  434. package/components/p-UKksD3f9.js +0 -4
  435. package/components/p-fP0QF3iG.js +0 -4
  436. package/components/p-ntAkt4Ra.js +0 -4
  437. package/components/p-ufB0gCSU.js +0 -4
  438. package/components/p-z-BF3clL.js +0 -4
  439. package/dist/collection/utils/test/late-props/late-props.js +0 -69
  440. package/dist/collection/utils/test/playwright/detach-reattach.js +0 -23
  441. package/dist/ionic/p-010601fe.entry.js +0 -4
  442. package/dist/ionic/p-0c2b3555.entry.js +0 -4
  443. package/dist/ionic/p-326e0d05.entry.js +0 -4
  444. package/dist/ionic/p-392079fa.entry.js +0 -4
  445. package/dist/ionic/p-4778b90f.entry.js +0 -4
  446. package/dist/ionic/p-639d3b55.entry.js +0 -4
  447. package/dist/ionic/p-7dec112e.entry.js +0 -4
  448. package/dist/ionic/p-9fef333a.entry.js +0 -4
  449. package/dist/ionic/p-BRa1Jjxr.js +0 -4
  450. package/dist/ionic/p-Cc-fFNy8.js +0 -4
  451. package/dist/ionic/p-Cc4w3fVf.js +0 -4
  452. package/dist/ionic/p-CvRL-Eju.js +0 -4
  453. package/dist/ionic/p-D_IgV7tz.js +0 -4
  454. package/dist/ionic/p-b8cd338d.entry.js +0 -4
  455. package/dist/ionic/p-d85e59b1.entry.js +0 -4
  456. package/dist/ionic/p-dad2f3e4.entry.js +0 -4
  457. package/dist/ionic/p-eab77a74.entry.js +0 -4
  458. package/dist/ionic/p-h81G-QbJ.js +0 -6
  459. package/dist/ionic/p-nxFQkv7U.js +0 -4
  460. package/dist/ionic/p-w3KTiug9.js +0 -4
  461. package/dist/types/utils/test/playwright/detach-reattach.d.ts +0 -13
@@ -4,11 +4,11 @@
4
4
  'use strict';
5
5
 
6
6
  var index$1 = require('./index-DkNv4J_i.js');
7
- var helpers = require('./helpers-BCLkFTTd.js');
8
- var hardwareBackButton = require('./hardware-back-button-D5f_kASb.js');
9
- var index = require('./index-Bgz6BcKx.js');
10
- var ionicGlobal = require('./ionic-global-BMU-Us1Q.js');
11
- var frameworkDelegate = require('./framework-delegate-DhyWUPGg.js');
7
+ var helpers = require('./helpers-Dj5o76mq.js');
8
+ var hardwareBackButton = require('./hardware-back-button-JOAEFSzc.js');
9
+ var index = require('./index-BrVMoqUk.js');
10
+ var ionicGlobal = require('./ionic-global-DvgIzM2F.js');
11
+ var frameworkDelegate = require('./framework-delegate-BZUx4TnE.js');
12
12
  var gestureController = require('./gesture-controller-CeJslptU.js');
13
13
 
14
14
  /**
@@ -102,15 +102,6 @@ const activeAnimations = new WeakMap();
102
102
  const isBackdropAlwaysBlocking = (el) => {
103
103
  return el.showBackdrop !== false && !((el.backdropBreakpoint ?? 0) > 0);
104
104
  };
105
- /**
106
- * Whether the overlay takes the app root out of the accessibility tree and
107
- * blocks body scroll while presented. Toasts never do, modal and popover can
108
- * opt out with `focusTrap={false}`, and a backdrop that does not block
109
- * (`showBackdrop={false}`, or a `backdropBreakpoint` above 0) is excluded.
110
- */
111
- const locksAppRoot = (el) => {
112
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
113
- };
114
105
  const createController = (tagName) => {
115
106
  return {
116
107
  create(options) {
@@ -481,13 +472,6 @@ const getPresentedOverlay = (doc, overlayTag, id) => {
481
472
  // Otherwise, return the last overlay with the given id
482
473
  return (id === undefined ? overlays : overlays.filter((o) => o.id === id)).slice(-1)[0];
483
474
  };
484
- /**
485
- * The element an app nests its views under. Overlays hide this rather than the
486
- * whole root, so the overlay itself (a sibling) stays reachable.
487
- */
488
- const getViewContainer = () => {
489
- return getAppRoot(document).querySelector('ion-router-outlet, #ion-view-container-root');
490
- };
491
475
  /**
492
476
  * When an overlay is presented, the main
493
477
  * focus is the overlay not the page content.
@@ -511,7 +495,8 @@ const getViewContainer = () => {
511
495
  * for main content.
512
496
  */
513
497
  const setRootAriaHidden = (hidden = false) => {
514
- const viewContainer = getViewContainer();
498
+ const root = getAppRoot(document);
499
+ const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
515
500
  if (!viewContainer) {
516
501
  return;
517
502
  }
@@ -536,42 +521,15 @@ const cleanupRootFocusTrapAccessibility = () => {
536
521
  return;
537
522
  }
538
523
  const remainingOverlays = getPresentedOverlays(document);
539
- const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
524
+ const hasRemainingLocking = remainingOverlays.some((o) => {
525
+ const el = o;
526
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
527
+ });
540
528
  if (!hasRemainingLocking) {
541
529
  setRootAriaHidden(false);
542
530
  document.body.classList.remove(gestureController.BACKDROP_NO_SCROLL);
543
531
  }
544
532
  };
545
- /**
546
- * Applies the root lock itself: `aria-hidden` on the view container, and
547
- * `backdrop-no-scroll` on the body. Shared by `present()` and the restore
548
- * below, which have to stay in lockstep.
549
- */
550
- const applyRootLock = (el) => {
551
- // Hiding the container the overlay now sits in would hide the overlay too.
552
- if (!getViewContainer()?.contains(el)) {
553
- setRootAriaHidden(true);
554
- }
555
- document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
556
- };
557
- /**
558
- * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
559
- * Call from `connectedCallback` when the overlay is still presented.
560
- *
561
- * A synchronous move keeps the overlay connected, so the lock survives. A
562
- * detach with a re-insert in a later task releases it, which is the shape a
563
- * framework produces when it takes a subtree out and puts it back.
564
- */
565
- const restoreRootFocusTrapAccessibility = (overlayEl) => {
566
- if (typeof document === 'undefined') {
567
- return;
568
- }
569
- const el = overlayEl;
570
- if (!locksAppRoot(el)) {
571
- return;
572
- }
573
- applyRootLock(el);
574
- };
575
533
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
576
534
  if (overlay.presented) {
577
535
  return;
@@ -588,7 +546,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
588
546
  restoreElementFocus(overlay.el);
589
547
  }
590
548
  /**
591
- * Some apps move inline overlays to a specific container
549
+ * Due to accessibility guidelines, toasts do not have
550
+ * focus traps.
551
+ *
552
+ * All other overlays should have focus traps to prevent
553
+ * the keyboard focus from leaving the overlay unless
554
+ * developers explicitly opt out (for example, sheet
555
+ * modals that should permit background interaction).
556
+ *
557
+ * Note: Some apps move inline overlays to a specific container
592
558
  * during the willPresent lifecycle (e.g., React portals via
593
559
  * onWillPresent). Defer applying aria-hidden/inert to the app
594
560
  * root until after willPresent so we can detect where the
@@ -597,11 +563,18 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
597
563
  * to avoid disabling the overlay.
598
564
  */
599
565
  const overlayEl = overlay.el;
600
- const shouldLockRoot = locksAppRoot(overlayEl);
566
+ const shouldTrapFocus = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false;
567
+ const shouldLockRoot = shouldTrapFocus && isBackdropAlwaysBlocking(overlayEl);
601
568
  overlay.presented = true;
602
569
  overlay.willPresent.emit();
603
570
  if (shouldLockRoot) {
604
- applyRootLock(overlayEl);
571
+ const root = getAppRoot(document);
572
+ const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
573
+ const overlayInsideViewContainer = viewContainer ? viewContainer.contains(overlayEl) : false;
574
+ if (!overlayInsideViewContainer) {
575
+ setRootAriaHidden(true);
576
+ }
577
+ document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
605
578
  }
606
579
  overlay.willPresentShorthand?.emit();
607
580
  const mode = ionicGlobal.getIonMode(overlay);
@@ -727,9 +700,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
727
700
  * from the root element when the last focus-trapping overlay
728
701
  * is dismissed.
729
702
  */
730
- const overlaysLockingRoot = presentedOverlays.filter((o) => locksAppRoot(o));
703
+ const overlaysLockingRoot = presentedOverlays.filter((o) => {
704
+ const el = o;
705
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
706
+ });
731
707
  const overlayEl = overlay.el;
732
- const locksRoot = locksAppRoot(overlayEl);
708
+ const locksRoot = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false && isBackdropAlwaysBlocking(overlayEl);
733
709
  /**
734
710
  * If this is the last visible overlay that is trapping focus
735
711
  * then we want to re-add the root to the accessibility tree.
@@ -996,7 +972,6 @@ exports.modalController = modalController;
996
972
  exports.popoverController = popoverController;
997
973
  exports.prepareOverlay = prepareOverlay;
998
974
  exports.present = present;
999
- exports.restoreRootFocusTrapAccessibility = restoreRootFocusTrapAccessibility;
1000
975
  exports.safeCall = safeCall;
1001
976
  exports.setOverlayId = setOverlayId;
1002
977
  exports.toastController = toastController;
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Bgz6BcKx.js');
7
- var index$1 = require('./index-BocV_y-c.js');
6
+ var index = require('./index-BrVMoqUk.js');
7
+ var index$1 = require('./index-EJLjthTK.js');
8
8
 
9
9
  /**
10
10
  * Converts a DOM node into a Stencil VNode (or text string) so the
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var index = require('./index-DkNv4J_i.js');
7
- var helpers = require('./helpers-BCLkFTTd.js');
7
+ var helpers = require('./helpers-Dj5o76mq.js');
8
8
  var dir = require('./dir-zwDPRE5K.js');
9
9
 
10
10
  /**
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Bgz6BcKx.js');
7
- var index$1 = require('./index-49DTLc_Z.js');
8
- var helpers = require('./helpers-BCLkFTTd.js');
6
+ var index = require('./index-BrVMoqUk.js');
7
+ var index$1 = require('./index-C8zH6b3d.js');
8
+ var helpers = require('./helpers-Dj5o76mq.js');
9
9
  require('./dir-zwDPRE5K.js');
10
10
 
11
11
  const startStatusTap = () => {
@@ -3,10 +3,10 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var helpers = require('./helpers-BCLkFTTd.js');
6
+ var helpers = require('./helpers-Dj5o76mq.js');
7
7
  var dir = require('./dir-zwDPRE5K.js');
8
8
  var index = require('./index-DRPqwSvU.js');
9
- require('./index-Bgz6BcKx.js');
9
+ require('./index-BrVMoqUk.js');
10
10
  require('./gesture-controller-CeJslptU.js');
11
11
 
12
12
  const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {
@@ -99,7 +99,7 @@
99
99
  "mixins": [],
100
100
  "compiler": {
101
101
  "name": "@stencil/core",
102
- "version": "4.44.1",
102
+ "version": "4.43.5",
103
103
  "typescriptVersion": "5.8.3"
104
104
  },
105
105
  "collections": [
@@ -5,7 +5,7 @@ import { Host, h, readTask } from "@stencil/core";
5
5
  import { createButtonActiveGesture } from "../../utils/gesture/button-active";
6
6
  import { raf } from "../../utils/helpers";
7
7
  import { createLockController } from "../../utils/lock-controller";
8
- import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, restoreRootFocusTrapAccessibility, safeCall, setOverlayId, } from "../../utils/overlays";
8
+ import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
9
9
  import { renderOptionLabel } from "../../utils/select-option-render";
10
10
  import { getClassMap } from "../../utils/theme";
11
11
  import { getIonMode } from "../../global/ionic-global";
@@ -277,13 +277,6 @@ export class ActionSheet {
277
277
  connectedCallback() {
278
278
  prepareOverlay(this.el);
279
279
  this.triggerChanged();
280
- // `componentDidLoad` only fires once per instance, so a reconnect has to
281
- // rebuild the gesture its disconnect destroyed.
282
- this.setupButtonActiveGesture();
283
- // Re-apply the root lock if moved without dismiss() being called
284
- if (this.presented) {
285
- restoreRootFocusTrapAccessibility(this.el);
286
- }
287
280
  }
288
281
  disconnectedCallback() {
289
282
  if (this.gesture) {
@@ -303,33 +296,24 @@ export class ActionSheet {
303
296
  // Initialize activeRadioId for radio buttons
304
297
  this.buttonsChanged();
305
298
  }
306
- /**
307
- * Only create gesture if:
308
- * 1. A gesture does not already exist
309
- * 2. App is running in iOS mode
310
- * 3. A wrapper ref exists
311
- * 4. A group ref exists
312
- * 5. The host is still connected, since a reconnect can schedule this and
313
- * disconnect again before the task runs
314
- */
315
- setupButtonActiveGesture() {
299
+ componentDidLoad() {
300
+ /**
301
+ * Only create gesture if:
302
+ * 1. A gesture does not already exist
303
+ * 2. App is running in iOS mode
304
+ * 3. A wrapper ref exists
305
+ * 4. A group ref exists
306
+ */
316
307
  const { groupEl, wrapperEl } = this;
317
- if (getIonMode(this) !== 'ios' || !wrapperEl || !groupEl) {
318
- return;
308
+ if (!this.gesture && getIonMode(this) === 'ios' && wrapperEl && groupEl) {
309
+ readTask(() => {
310
+ const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;
311
+ if (!isScrollable) {
312
+ this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
313
+ this.gesture.enable(true);
314
+ }
315
+ });
319
316
  }
320
- readTask(() => {
321
- // Bail if a call queued ahead of this one already built the gesture
322
- // (a second would orphan the first with its listeners still bound), if
323
- // the host disconnected while this task waited, or if the group scrolls.
324
- if (this.gesture || !this.el.isConnected || groupEl.scrollHeight > groupEl.clientHeight) {
325
- return;
326
- }
327
- this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
328
- this.gesture.enable(true);
329
- });
330
- }
331
- componentDidLoad() {
332
- this.setupButtonActiveGesture();
333
317
  /**
334
318
  * If action sheet was rendered with isOpen="true"
335
319
  * then we should open action sheet immediately.
@@ -422,17 +406,17 @@ export class ActionSheet {
422
406
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
423
407
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
424
408
  const headerID = `action-sheet-${overlayIndex}-header`;
425
- return (h(Host, { key: '83b47ea6b81d4eec6582c1dcaae6f267c78ba634', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
409
+ return (h(Host, { key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
426
410
  zIndex: `${20000 + this.overlayIndex}`,
427
411
  }, class: {
428
412
  [mode]: true,
429
413
  ...getClassMap(this.cssClass),
430
414
  'overlay-hidden': true,
431
415
  'action-sheet-translucent': this.translucent,
432
- }, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '3652793ec76adcfb87b814eb65d1260ae26f6910', tappable: this.backdropDismiss }), h("div", { key: '7de3a51daf95b50e02734a2cc8eec6f55b1473f3', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '9b76bbf12901b956f7ee6d984f7f71e169bb5939', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: 'cb52c905275a46ff27810fb1b4748ab533a78c45', class: "action-sheet-container" }, h("div", { key: '578c7194cfbcb65c1e41e15c390af41f179a2686', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: 'ee961307c25cb1fcb0c6bbf667a8ed76ab717860', id: headerID, class: {
416
+ }, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), h("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, h("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
433
417
  'action-sheet-title': true,
434
418
  'action-sheet-has-sub-title': this.subHeader !== undefined,
435
- } }, header, this.subHeader && h("div", { key: '82d4016010db14d3f3b9911c276cb9a63b960ef4', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: 'a88fbfab194e13c6642a65f2e19a12299dd4ac23', class: "action-sheet-group action-sheet-group-cancel" }, h("button", { key: 'a232b8d23f1fc2efb7b37a605102b6994761a2f6', ...cancelButton.htmlAttributes, type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }, h("span", { key: '19a7d95d3428d78a56b7dacabdec8fc0b722d8c2', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '5f3f3cb996a48e6365a3a09ea72ddc68ac9ccb78', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", { key: '6e8fcb5f103ac19aa4b0682f19791cef0a147001' })))))), h("div", { key: '36f63ab77949c88f662e2cf6bb18510cb9de6a9f', tabindex: "0", "aria-hidden": "true" })));
419
+ } }, header, this.subHeader && h("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, h("button", { key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d', ...cancelButton.htmlAttributes, type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }, h("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), h("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
436
420
  }
437
421
  static get is() { return "ion-action-sheet"; }
438
422
  static get encapsulation() { return "scoped"; }
@@ -8,7 +8,7 @@ import { raf } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
10
  import { getOverlayLabelJustify, getOverlayLabelPlacement } from "../../utils/overlay-control-label";
11
- import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, restoreRootFocusTrapAccessibility, safeCall, setOverlayId, } from "../../utils/overlays";
11
+ import { BACKDROP, cleanupRootFocusTrapAccessibility, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
12
12
  import { sanitizeDOMString } from "../../utils/sanitization/index";
13
13
  import { renderOptionLabel } from "../../utils/select-option-render";
14
14
  import { getClassMap } from "../../utils/theme";
@@ -198,15 +198,10 @@ export class Alert {
198
198
  this.triggerChanged();
199
199
  /**
200
200
  * If the alert was previously connected and is being reattached, the
201
- * `ResizeObserver` and the button gesture were torn down. `componentDidLoad`
202
- * only fires once per instance, so re-establish both here on reconnect.
201
+ * ResizeObserver was disconnected. componentDidLoad only fires once per
202
+ * instance, so re-establish the observer here on reconnect.
203
203
  */
204
204
  this.setupButtonGroupResizeObserver();
205
- this.setupButtonActiveGesture();
206
- // Re-apply the root lock if moved without dismiss() being called
207
- if (this.presented) {
208
- restoreRootFocusTrapAccessibility(this.el);
209
- }
210
205
  }
211
206
  componentWillLoad() {
212
207
  if (!this.htmlAttributes?.id) {
@@ -228,20 +223,17 @@ export class Alert {
228
223
  this.buttonGroupResizeObserver?.disconnect();
229
224
  this.buttonGroupResizeObserver = undefined;
230
225
  }
231
- /**
232
- * Only create gesture if:
233
- * 1. A gesture does not already exist
234
- * 2. App is running in iOS mode
235
- * 3. A wrapper ref exists
236
- */
237
- setupButtonActiveGesture() {
226
+ componentDidLoad() {
227
+ /**
228
+ * Only create gesture if:
229
+ * 1. A gesture does not already exist
230
+ * 2. App is running in iOS mode
231
+ * 3. A wrapper ref exists
232
+ */
238
233
  if (!this.gesture && getIonMode(this) === 'ios' && this.wrapperEl) {
239
234
  this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
240
235
  this.gesture.enable(true);
241
236
  }
242
- }
243
- componentDidLoad() {
244
- this.setupButtonActiveGesture();
245
237
  this.setupButtonGroupResizeObserver();
246
238
  /**
247
239
  * If alert was rendered with isOpen="true"
@@ -564,14 +556,14 @@ export class Alert {
564
556
  * If neither are defined, do not set aria-labelledby.
565
557
  */
566
558
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
567
- return (h(Host, { key: '083b5250dc4c76e85240e0225abcb7ca2b66de2f', tabindex: "-1", style: {
559
+ return (h(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
568
560
  zIndex: `${20000 + overlayIndex}`,
569
561
  }, class: {
570
562
  ...getClassMap(this.cssClass),
571
563
  [mode]: true,
572
564
  'overlay-hidden': true,
573
565
  'alert-translucent': this.translucent,
574
- }, onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '65c92a956d998ae9016396dd2a29c42ab7376d0e', tappable: this.backdropDismiss }), h("div", { key: 'f2288fa0b7ef9d0bf031c168fe78c48422cf91c8', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'dbb109435c378f77c6b0231e58756f8a0467732d', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el), ...htmlAttributes }, h("div", { key: '075597f94719673cf1f894a8566e1036849afa75', class: "alert-head" }, header && (h("h2", { key: 'f96f4b1db8473c62040beed6e96108c733978d73', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: 'dbd824ef19a07bddde4eb928f11de7c7cadf98b8', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '4774fa13700dd23aec7930492acae80de3bdf5d1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '5c728b7457e231f64294bbec821bdb547c6437dd', tabindex: "0", "aria-hidden": "true" })));
566
+ }, onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), h("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el), ...htmlAttributes }, h("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (h("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
575
567
  }
576
568
  static get is() { return "ion-alert"; }
577
569
  static get encapsulation() { return "scoped"; }
@@ -221,23 +221,6 @@ export class Content {
221
221
  const mode = getIonMode(this);
222
222
  return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
223
223
  }
224
- /**
225
- * Whether this component should size itself to its contents height, which
226
- * is the case inside any popover and inside a modal whose `--height` is a
227
- * content-based value. Those overlays give the content no definite height
228
- * to fill.
229
- */
230
- shouldSizeToContent() {
231
- if (hostContext('ion-popover', this.el)) {
232
- return true;
233
- }
234
- const modal = this.el.closest('ion-modal');
235
- if (modal === null) {
236
- return false;
237
- }
238
- const height = getComputedStyle(modal).getPropertyValue('--height').trim();
239
- return CONTENT_SIZED_HEIGHTS.includes(height);
240
- }
241
224
  resize() {
242
225
  /**
243
226
  * Only force update if the component is rendered in a browser context.
@@ -435,21 +418,21 @@ export class Content {
435
418
  const forceOverscroll = this.shouldForceOverscroll();
436
419
  const transitionShadow = mode === 'ios';
437
420
  this.resize();
438
- return (h(Host, { key: 'd6ea57ec1f5def0bfd22f52ec5a5bbe6aa2f8e8e', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
421
+ return (h(Host, { key: '9551c759df407b10d809171641fc6e8f14d92219', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
439
422
  [mode]: true,
440
423
  'content-fullscreen': this.fullscreen,
441
- 'content-sizing': this.shouldSizeToContent(),
424
+ 'content-sizing': hostContext('ion-popover', this.el),
442
425
  overscroll: forceOverscroll,
443
426
  [`content-${rtl}`]: true,
444
427
  }), style: {
445
428
  '--offset-top': `${this.cTop}px`,
446
429
  '--offset-bottom': `${this.cBottom}px`,
447
- }, ...inheritedAttributes }, h("div", { key: '3ea7145f051ac3870ffb2b0c1fd83c20ce42d431', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: 'af112b5f681fd40417c82bee085263c85755dad5', class: {
430
+ }, ...inheritedAttributes }, h("div", { key: 'c6de8fd226f0d10a534eb107fe032ac155fbe68e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '082fc2936061360060b48221ecb1c864a3711fa0', class: {
448
431
  'inner-scroll': true,
449
432
  'scroll-x': scrollX,
450
433
  'scroll-y': scrollY,
451
434
  overscroll: (scrollX || scrollY) && forceOverscroll,
452
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '1b130c5713874fe457934359a1a1709a8cdb257a' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
435
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '0d2286206facb22696a9ca7e74a3f6b7d2397aab' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
453
436
  }
454
437
  static get is() { return "ion-content"; }
455
438
  static get encapsulation() { return "shadow"; }
@@ -891,11 +874,6 @@ export class Content {
891
874
  }];
892
875
  }
893
876
  }
894
- /**
895
- * `ion-modal` `--height` values that size the modal to its contents, leaving
896
- * children an indefinite height to resolve against.
897
- */
898
- const CONTENT_SIZED_HEIGHTS = ['auto', 'fit-content', 'min-content', 'max-content'];
899
877
  const getParentElement = (el) => {
900
878
  if (el.parentElement) {
901
879
  // normal element with a parent element
@@ -1206,6 +1206,7 @@ export class Datetime {
1206
1206
  }
1207
1207
  renderCombinedDatePickerColumn() {
1208
1208
  const { defaultParts, disabled, workingParts, locale, minParts, maxParts, todayParts, isDateEnabled } = this;
1209
+ const activePart = this.getActivePartsWithFallback();
1209
1210
  /**
1210
1211
  * By default, generate a range of 3 months:
1211
1212
  * Previous month, current month, and next month
@@ -1261,10 +1262,8 @@ export class Datetime {
1261
1262
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a date", class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
1262
1263
  const { value } = ev.detail;
1263
1264
  const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
1264
- // Read live so parts a sibling column just committed are included.
1265
- const activePart = this.getActivePartsWithFallback();
1266
1265
  this.setWorkingParts({
1267
- ...this.workingParts,
1266
+ ...workingParts,
1268
1267
  ...findPart,
1269
1268
  });
1270
1269
  this.setActiveParts({
@@ -1341,12 +1340,11 @@ export class Datetime {
1341
1340
  return [];
1342
1341
  }
1343
1342
  const { disabled, workingParts } = this;
1343
+ const activePart = this.getActivePartsWithFallback();
1344
1344
  const pickerColumnValue = (workingParts.day !== null ? workingParts.day : this.defaultParts.day) ?? undefined;
1345
1345
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a day", class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
1346
- // Read live so parts a sibling column just committed are included.
1347
- const activePart = this.getActivePartsWithFallback();
1348
1346
  this.setWorkingParts({
1349
- ...this.workingParts,
1347
+ ...workingParts,
1350
1348
  day: ev.detail.value,
1351
1349
  });
1352
1350
  this.setActiveParts({
@@ -1361,11 +1359,10 @@ export class Datetime {
1361
1359
  return [];
1362
1360
  }
1363
1361
  const { disabled, workingParts } = this;
1362
+ const activePart = this.getActivePartsWithFallback();
1364
1363
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a month", class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
1365
- // Read live so parts a sibling column just committed are included.
1366
- const activePart = this.getActivePartsWithFallback();
1367
1364
  this.setWorkingParts({
1368
- ...this.workingParts,
1365
+ ...workingParts,
1369
1366
  month: ev.detail.value,
1370
1367
  });
1371
1368
  // Month wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
@@ -1383,11 +1380,10 @@ export class Datetime {
1383
1380
  return [];
1384
1381
  }
1385
1382
  const { disabled, workingParts } = this;
1383
+ const activePart = this.getActivePartsWithFallback();
1386
1384
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a year", class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
1387
- // Read live so parts a sibling column just committed are included.
1388
- const activePart = this.getActivePartsWithFallback();
1389
1385
  this.setWorkingParts({
1390
- ...this.workingParts,
1386
+ ...workingParts,
1391
1387
  year: ev.detail.value,
1392
1388
  });
1393
1389
  // Year wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
@@ -1423,14 +1419,13 @@ export class Datetime {
1423
1419
  ];
1424
1420
  }
1425
1421
  renderHourPickerColumn(hoursData) {
1426
- const { disabled } = this;
1422
+ const { disabled, workingParts } = this;
1427
1423
  if (hoursData.length === 0)
1428
1424
  return [];
1429
1425
  const activePart = this.getActivePartsWithFallback();
1430
1426
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select an hour", color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
1431
- // Read live so parts a sibling column just committed are included.
1432
1427
  this.setWorkingParts({
1433
- ...this.workingParts,
1428
+ ...workingParts,
1434
1429
  hour: ev.detail.value,
1435
1430
  });
1436
1431
  this.setActiveParts({
@@ -1441,14 +1436,13 @@ export class Datetime {
1441
1436
  } }, hoursData.map((hour) => (h("ion-picker-column-option", { color: this.color, part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
1442
1437
  }
1443
1438
  renderMinutePickerColumn(minutesData) {
1444
- const { disabled } = this;
1439
+ const { disabled, workingParts } = this;
1445
1440
  if (minutesData.length === 0)
1446
1441
  return [];
1447
1442
  const activePart = this.getActivePartsWithFallback();
1448
1443
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a minute", color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
1449
- // Read live so parts a sibling column just committed are included.
1450
1444
  this.setWorkingParts({
1451
- ...this.workingParts,
1445
+ ...workingParts,
1452
1446
  minute: ev.detail.value,
1453
1447
  });
1454
1448
  this.setActiveParts({
@@ -1459,18 +1453,16 @@ export class Datetime {
1459
1453
  } }, minutesData.map((minute) => (h("ion-picker-column-option", { color: this.color, part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
1460
1454
  }
1461
1455
  renderDayPeriodPickerColumn(dayPeriodData) {
1462
- const { disabled } = this;
1456
+ const { disabled, workingParts } = this;
1463
1457
  if (dayPeriodData.length === 0) {
1464
1458
  return [];
1465
1459
  }
1466
1460
  const activePart = this.getActivePartsWithFallback();
1467
1461
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
1468
1462
  return (h("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a day period", style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
1469
- // Read live so parts a sibling column just committed are included.
1470
- const currentParts = this.workingParts;
1471
- const hour = calculateHourFromAMPM(currentParts, ev.detail.value);
1463
+ const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
1472
1464
  this.setWorkingParts({
1473
- ...currentParts,
1465
+ ...workingParts,
1474
1466
  ampm: ev.detail.value,
1475
1467
  hour,
1476
1468
  });
@@ -1822,7 +1814,7 @@ export class Datetime {
1822
1814
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1823
1815
  const hasWheelVariant = hasDatePresentation && preferWheel;
1824
1816
  renderHiddenInput(true, el, name, formatValue(value), disabled);
1825
- return (h(Host, { key: '4e0b529a70924b065bcc6191e08550428b5a52a0', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
1817
+ return (h(Host, { key: 'd8e6dfe5e3bffb1c38a3e37b63b3aec099f40d29', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
1826
1818
  ...createColorClasses(color, {
1827
1819
  [mode]: true,
1828
1820
  ['datetime-readonly']: readonly,
@@ -1834,7 +1826,7 @@ export class Datetime {
1834
1826
  [`datetime-prefer-wheel`]: hasWheelVariant,
1835
1827
  [`datetime-grid`]: isGridStyle,
1836
1828
  }),
1837
- } }, h("div", { key: 'cc9d1b92f960984cb0466d0003a240ace67da243', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1829
+ } }, h("div", { key: '20889d3c68dd5109633c0e214411a63d6f3025bb', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1838
1830
  }
1839
1831
  static get is() { return "ion-datetime"; }
1840
1832
  static get encapsulation() { return "shadow"; }