@ionic/core 9.0.1-dev.11787177893.1979eb13 → 9.0.1-dev.11787589191.1e183b55

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 (602) 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/components/{p-63OhffQv.js → p-66ogmUZU.js} +1 -1
  99. package/components/p-6Vp915Y7.js +4 -0
  100. package/components/p-7PNwKFZi.js +4 -0
  101. package/components/{p-G0TxqHfe.js → p-A8MJRBIY.js} +1 -1
  102. package/components/p-AQcCdH2_.js +4 -0
  103. package/{dist/ionic/p-Dn0mqQ_R.js → components/p-B6x5_b9w.js} +1 -1
  104. package/components/p-B8MQjdvk.js +4 -0
  105. package/components/p-BA_4ZIEg.js +4 -0
  106. package/components/p-BFtL8t1r.js +4 -0
  107. package/components/{p-DaA_8eqt.js → p-BMfgF-Tv.js} +1 -1
  108. package/components/p-BPDxVIRr.js +4 -0
  109. package/components/p-BPnXVGaS.js +4 -0
  110. package/components/p-BQAiulS1.js +4 -0
  111. package/components/p-BSARlp49.js +4 -0
  112. package/components/p-B_gJaBk0.js +4 -0
  113. package/components/p-BdwCtX8Y.js +4 -0
  114. package/components/{p-DV85C0e0.js → p-BgUIV8NQ.js} +1 -1
  115. package/components/p-Bh2ta0iG.js +4 -0
  116. package/components/p-BnUOVmKh.js +4 -0
  117. package/components/p-BpLt_Ptn.js +4 -0
  118. package/components/p-BqBDq1Ma.js +4 -0
  119. package/components/{p-C_phlPMC.js → p-BrFaQbGY.js} +1 -1
  120. package/{dist/ionic/p-Cdjxf_yg.js → components/p-BuPAFTWI.js} +1 -1
  121. package/components/p-Bx2saTHs.js +4 -0
  122. package/components/p-BxhE2W85.js +4 -0
  123. package/components/p-CHswSpKy.js +4 -0
  124. package/components/{p-1jI5oW-W.js → p-CR9OgE6N.js} +1 -1
  125. package/components/p-CWETxTjE.js +4 -0
  126. package/components/p-CaZeZIL2.js +4 -0
  127. package/components/p-CgvDC7hC.js +4 -0
  128. package/components/{p-BqPNzJf6.js → p-CqyGR9Aq.js} +1 -1
  129. package/components/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  130. package/components/p-D1OCo42s.js +4 -0
  131. package/components/p-D7ysFE2B.js +4 -0
  132. package/{dist/ionic/p-4eOQC00Z.js → components/p-DCWfzDM8.js} +1 -1
  133. package/components/p-DD57rSP_.js +4 -0
  134. package/components/{p-DwpKZ6rl.js → p-DDdkefwf.js} +1 -1
  135. package/components/{p-DzRT60Tw.js → p-DEW7CnUc.js} +1 -1
  136. package/components/p-DQ1IPvZO.js +4 -0
  137. package/components/p-DcOH6-o5.js +4 -0
  138. package/components/{p-DD5fQ4EQ.js → p-DfdYCsov.js} +1 -1
  139. package/components/{p-DSzSbVP2.js → p-DhOoEIAs.js} +1 -1
  140. package/components/{p-DM-PrAoh.js → p-Dl_7b_UJ.js} +1 -1
  141. package/components/p-DnXLaaf7.js +4 -0
  142. package/components/{p-ryyf_ItD.js → p-DysqCsJu.js} +1 -1
  143. package/components/p-H1f2qsk4.js +4 -0
  144. package/components/p-HVYBAhFx.js +4 -0
  145. package/components/{p-CbhUdtjf.js → p-Kmrg3Fed.js} +1 -1
  146. package/components/{p-Bjig0DJK.js → p-RFfE9hF6.js} +1 -1
  147. package/{dist/ionic/p-CBWAXjA5.js → components/p-SR-LLqp_.js} +1 -1
  148. package/components/p-gFwXiYC_.js +4 -0
  149. package/components/p-tX3UxCnU.js +4 -0
  150. package/components/p-v2NpoOHp.js +4 -0
  151. package/dist/cjs/{animation-C0mOHzej.js → animation-D-OqR4a4.js} +1 -1
  152. package/dist/cjs/{app-globals-BREG4twP.js → app-globals-BzgwARwJ.js} +1 -1
  153. package/dist/cjs/{button-active-CVMevT9a.js → button-active-BlWSD7uK.js} +2 -2
  154. package/dist/cjs/{format-pp0Du3K-.js → format-D7ig6Vm0.js} +1 -1
  155. package/dist/cjs/{framework-delegate-Dfo5XsGv.js → framework-delegate-BZUx4TnE.js} +1 -1
  156. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-CeJslptU.js} +6 -14
  157. package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-JOAEFSzc.js} +1 -1
  158. package/dist/cjs/{helpers-YPQybDph.js → helpers-Dj5o76mq.js} +1 -1
  159. package/dist/cjs/{index-BLdJCcJY.js → index-2sO-zkZ2.js} +4 -4
  160. package/dist/cjs/{index-uvry__L4.js → index-BrVMoqUk.js} +3 -1
  161. package/dist/cjs/{index-zVCah4Uz.js → index-C8zH6b3d.js} +2 -2
  162. package/dist/cjs/{index-DXsPSne6.js → index-CZ6vzt_q.js} +5 -5
  163. package/dist/cjs/{index-DDg31ZF5.js → index-Csue6G3m.js} +2 -2
  164. package/dist/cjs/{index-DwlRtFZe.js → index-DRPqwSvU.js} +1 -1
  165. package/dist/cjs/{index-B7zJsYWS.js → index-EJLjthTK.js} +1 -2
  166. package/dist/cjs/index.cjs.js +14 -14
  167. package/dist/cjs/{input-shims-Cbu1fcye.js → input-shims-Bh7bnt2v.js} +3 -3
  168. package/dist/cjs/{input.utils-BZdMWVrt.js → input.utils-Cq3g9uHy.js} +1 -1
  169. package/dist/cjs/ion-accordion_2.cjs.entry.js +335 -364
  170. package/dist/cjs/ion-action-sheet.cjs.entry.js +94 -159
  171. package/dist/cjs/ion-alert.cjs.entry.js +86 -170
  172. package/dist/cjs/ion-app_8.cjs.entry.js +163 -258
  173. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -8
  174. package/dist/cjs/ion-back-button.cjs.entry.js +21 -45
  175. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  176. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +117 -195
  177. package/dist/cjs/ion-button_2.cjs.entry.js +61 -130
  178. package/dist/cjs/ion-card_5.cjs.entry.js +28 -80
  179. package/dist/cjs/ion-checkbox.cjs.entry.js +98 -147
  180. package/dist/cjs/ion-chip.cjs.entry.js +10 -16
  181. package/dist/cjs/ion-col_3.cjs.entry.js +6 -126
  182. package/dist/cjs/ion-datetime-button.cjs.entry.js +232 -248
  183. package/dist/cjs/ion-datetime.cjs.entry.js +775 -953
  184. package/dist/cjs/ion-fab_3.cjs.entry.js +78 -136
  185. package/dist/cjs/ion-img.cjs.entry.js +11 -31
  186. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +71 -98
  187. package/dist/cjs/ion-input-otp.cjs.entry.js +352 -424
  188. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -29
  189. package/dist/cjs/ion-input.cjs.entry.js +158 -302
  190. package/dist/cjs/ion-item-option_3.cjs.entry.js +45 -87
  191. package/dist/cjs/ion-item_8.cjs.entry.js +61 -157
  192. package/dist/cjs/ion-loading.cjs.entry.js +60 -133
  193. package/dist/cjs/ion-menu_3.cjs.entry.js +94 -158
  194. package/dist/cjs/ion-modal.cjs.entry.js +280 -383
  195. package/dist/cjs/ion-nav_2.cjs.entry.js +26 -78
  196. package/dist/cjs/ion-picker-column-option.cjs.entry.js +23 -33
  197. package/dist/cjs/ion-picker-column.cjs.entry.js +389 -410
  198. package/dist/cjs/ion-picker.cjs.entry.js +390 -400
  199. package/dist/cjs/ion-popover.cjs.entry.js +196 -294
  200. package/dist/cjs/ion-progress-bar.cjs.entry.js +23 -29
  201. package/dist/cjs/ion-radio_2.cjs.entry.js +128 -201
  202. package/dist/cjs/ion-range.cjs.entry.js +223 -293
  203. package/dist/cjs/ion-refresher_2.cjs.entry.js +84 -156
  204. package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -49
  205. package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -13
  206. package/dist/cjs/ion-route_4.cjs.entry.js +45 -144
  207. package/dist/cjs/ion-searchbar.cjs.entry.js +182 -268
  208. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  209. package/dist/cjs/ion-segment-view.cjs.entry.js +12 -24
  210. package/dist/cjs/ion-segment_2.cjs.entry.js +111 -154
  211. package/dist/cjs/ion-select-modal.cjs.entry.js +19 -21
  212. package/dist/cjs/ion-select_3.cjs.entry.js +151 -319
  213. package/dist/cjs/ion-spinner.cjs.entry.js +6 -21
  214. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -27
  215. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +32 -89
  216. package/dist/cjs/ion-tab_2.cjs.entry.js +22 -49
  217. package/dist/cjs/ion-text.cjs.entry.js +2 -8
  218. package/dist/cjs/ion-textarea.cjs.entry.js +139 -256
  219. package/dist/cjs/ion-toast.cjs.entry.js +106 -221
  220. package/dist/cjs/ion-toggle.cjs.entry.js +114 -165
  221. package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-DvgIzM2F.js} +1 -1
  222. package/dist/cjs/ionic.cjs.js +4 -4
  223. package/dist/cjs/{ios.transition-zTmJz8T-.js → ios.transition-zIgdoSYe.js} +4 -4
  224. package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
  225. package/dist/cjs/loader.cjs.js +4 -4
  226. package/dist/cjs/{md.transition-nb_4pUXu.js → md.transition-CXeJ9rfh.js} +4 -4
  227. package/dist/cjs/{overlays-KaNVDNqC.js → overlays-B5JeC8OQ.js} +58 -35
  228. package/dist/cjs/{select-option-render-pULCGldr.js → select-option-render-7m1WdFzF.js} +2 -2
  229. package/dist/cjs/{slot-mutation-controller-DPHmqXdV.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
  230. package/dist/cjs/{status-tap-o9IIymsP.js → status-tap-DxbUM5XX.js} +3 -3
  231. package/dist/cjs/{swipe-back-B7X9VOlH.js → swipe-back-F_DBt-Aw.js} +4 -4
  232. package/dist/collection/components/accordion/accordion.js +310 -314
  233. package/dist/collection/components/accordion-group/accordion-group.js +23 -46
  234. package/dist/collection/components/action-sheet/action-sheet.js +84 -148
  235. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  236. package/dist/collection/components/alert/alert.js +76 -159
  237. package/dist/collection/components/app/app.js +0 -3
  238. package/dist/collection/components/back-button/back-button.js +19 -42
  239. package/dist/collection/components/backdrop/backdrop.js +14 -16
  240. package/dist/collection/components/badge/badge.js +0 -6
  241. package/dist/collection/components/breadcrumb/breadcrumb.js +29 -90
  242. package/dist/collection/components/breadcrumbs/breadcrumbs.js +87 -102
  243. package/dist/collection/components/button/button.js +59 -127
  244. package/dist/collection/components/buttons/buttons.js +15 -13
  245. package/dist/collection/components/card/card.js +20 -53
  246. package/dist/collection/components/card-header/card-header.js +8 -12
  247. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  248. package/dist/collection/components/card-title/card-title.js +0 -6
  249. package/dist/collection/components/checkbox/checkbox.js +95 -143
  250. package/dist/collection/components/chip/chip.js +10 -14
  251. package/dist/collection/components/col/col.js +0 -120
  252. package/dist/collection/components/content/content.js +60 -90
  253. package/dist/collection/components/datetime/datetime.js +762 -939
  254. package/dist/collection/components/datetime-button/datetime-button.js +229 -244
  255. package/dist/collection/components/fab/fab.js +13 -20
  256. package/dist/collection/components/fab-button/fab-button.js +54 -103
  257. package/dist/collection/components/fab-list/fab-list.js +11 -10
  258. package/dist/collection/components/footer/footer.js +43 -49
  259. package/dist/collection/components/grid/grid.js +6 -4
  260. package/dist/collection/components/header/header.js +23 -33
  261. package/dist/collection/components/img/img.js +9 -28
  262. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  264. package/dist/collection/components/input/input.js +154 -297
  265. package/dist/collection/components/input-otp/input-otp.js +350 -421
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +13 -27
  267. package/dist/collection/components/item/item.js +37 -80
  268. package/dist/collection/components/item-divider/item-divider.js +10 -15
  269. package/dist/collection/components/item-option/item-option.js +20 -48
  270. package/dist/collection/components/item-options/item-options.js +7 -10
  271. package/dist/collection/components/item-sliding/item-sliding.js +16 -24
  272. package/dist/collection/components/label/label.js +4 -24
  273. package/dist/collection/components/list/list.js +6 -9
  274. package/dist/collection/components/list-header/list-header.js +0 -10
  275. package/dist/collection/components/loading/loading.js +53 -125
  276. package/dist/collection/components/menu/menu.js +55 -99
  277. package/dist/collection/components/menu-button/menu-button.js +19 -28
  278. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  279. package/dist/collection/components/modal/modal.js +271 -373
  280. package/dist/collection/components/modal/test/fixtures.js +0 -3
  281. package/dist/collection/components/nav/nav.js +12 -45
  282. package/dist/collection/components/nav/view-controller.js +1 -7
  283. package/dist/collection/components/nav-link/nav-link.js +9 -20
  284. package/dist/collection/components/note/note.js +0 -6
  285. package/dist/collection/components/picker/picker.js +388 -397
  286. package/dist/collection/components/picker-column/picker-column.js +389 -409
  287. package/dist/collection/components/picker-column-option/picker-column-option.js +21 -30
  288. package/dist/collection/components/popover/popover.js +189 -286
  289. package/dist/collection/components/popover/test/fixture.js +0 -1
  290. package/dist/collection/components/progress-bar/progress-bar.js +22 -26
  291. package/dist/collection/components/radio/radio.js +62 -98
  292. package/dist/collection/components/radio-group/radio-group.js +64 -99
  293. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  294. package/dist/collection/components/range/range.js +220 -289
  295. package/dist/collection/components/refresher/refresher.js +74 -107
  296. package/dist/collection/components/refresher-content/refresher-content.js +3 -40
  297. package/dist/collection/components/reorder/reorder.js +0 -1
  298. package/dist/collection/components/reorder-group/reorder-group.js +14 -43
  299. package/dist/collection/components/ripple-effect/ripple-effect.js +12 -11
  300. package/dist/collection/components/route/route.js +9 -38
  301. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  302. package/dist/collection/components/router/router.js +27 -35
  303. package/dist/collection/components/router/utils/matching.js +0 -1
  304. package/dist/collection/components/router-link/router-link.js +10 -35
  305. package/dist/collection/components/router-outlet/router-outlet.js +12 -34
  306. package/dist/collection/components/searchbar/searchbar.js +180 -265
  307. package/dist/collection/components/segment/segment.js +76 -113
  308. package/dist/collection/components/segment-button/segment-button.js +33 -37
  309. package/dist/collection/components/segment-view/segment-view.js +12 -23
  310. package/dist/collection/components/select/select.js +127 -240
  311. package/dist/collection/components/select-modal/select-modal.js +11 -12
  312. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  313. package/dist/collection/components/select-option/select-option.js +7 -44
  314. package/dist/collection/components/select-popover/select-popover.js +10 -25
  315. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  316. package/dist/collection/components/skeleton-text/skeleton-text.js +6 -10
  317. package/dist/collection/components/spinner/spinner.js +6 -19
  318. package/dist/collection/components/split-pane/split-pane.js +13 -25
  319. package/dist/collection/components/tab/tab.js +4 -15
  320. package/dist/collection/components/tab-bar/tab-bar.js +12 -30
  321. package/dist/collection/components/tab-button/tab-button.js +19 -56
  322. package/dist/collection/components/tabs/tabs.js +17 -31
  323. package/dist/collection/components/text/text.js +0 -6
  324. package/dist/collection/components/textarea/textarea.js +135 -251
  325. package/dist/collection/components/title/title.js +0 -16
  326. package/dist/collection/components/toast/toast.js +97 -211
  327. package/dist/collection/components/toggle/toggle.js +111 -161
  328. package/dist/collection/components/toolbar/toolbar.js +3 -8
  329. package/dist/collection/global/config.js +3 -1
  330. package/dist/collection/utils/gesture/gesture-controller.js +6 -14
  331. package/dist/collection/utils/overlays.js +51 -29
  332. package/dist/collection/utils/sanitization/index.js +0 -1
  333. package/dist/collection/utils/test/playwright/page/event-spy.js +8 -9
  334. package/dist/collection/utils/test/press-keys.js +1 -4
  335. package/dist/docs.json +1 -1
  336. package/dist/esm/{animation-CGFdmGk9.js → animation-TxGPYeDn.js} +1 -1
  337. package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-Do8rJest.js} +1 -1
  338. package/dist/esm/{button-active-BDOsVAiZ.js → button-active-ChA4D-ml.js} +2 -2
  339. package/dist/esm/{format-Dcwga61t.js → format-CVk5e_GP.js} +2 -2
  340. package/dist/esm/{framework-delegate-BHTU2Ip9.js → framework-delegate-DaLWnISz.js} +1 -1
  341. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-B_gJaBk0.js} +6 -14
  342. package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-D8W4L0JP.js} +1 -1
  343. package/dist/esm/{helpers-CAGf8Wgp.js → helpers-BIgoInJU.js} +1 -1
  344. package/dist/esm/{index-DcPaH5uL.js → index-BmLuEdV7.js} +1 -1
  345. package/dist/esm/{index-T0JxBI8V.js → index-BmOR8tCv.js} +2 -2
  346. package/dist/esm/{index-CqneaaGd.js → index-C5ZdL0qp.js} +5 -5
  347. package/dist/esm/{index-WlteAIqz.js → index-C8Dsa6li.js} +4 -4
  348. package/dist/esm/{index-ChhhtsGZ.js → index-CKYcsw8f.js} +3 -1
  349. package/dist/esm/{index-Clc-28O1.js → index-DHw2lZxe.js} +2 -2
  350. package/dist/esm/{index-CKM1DdGm.js → index-elneMH8y.js} +1 -2
  351. package/dist/esm/index.js +14 -14
  352. package/dist/esm/{input-shims-B8sfni1e.js → input-shims-09NN97kF.js} +3 -3
  353. package/dist/esm/{input.utils-B1ValN_N.js → input.utils-BxyH9l1w.js} +1 -1
  354. package/dist/esm/ion-accordion_2.entry.js +335 -364
  355. package/dist/esm/ion-action-sheet.entry.js +94 -159
  356. package/dist/esm/ion-alert.entry.js +86 -170
  357. package/dist/esm/ion-app_8.entry.js +163 -258
  358. package/dist/esm/ion-avatar_3.entry.js +2 -8
  359. package/dist/esm/ion-back-button.entry.js +21 -45
  360. package/dist/esm/ion-backdrop.entry.js +14 -18
  361. package/dist/esm/ion-breadcrumb_2.entry.js +117 -195
  362. package/dist/esm/ion-button_2.entry.js +61 -130
  363. package/dist/esm/ion-card_5.entry.js +28 -80
  364. package/dist/esm/ion-checkbox.entry.js +98 -147
  365. package/dist/esm/ion-chip.entry.js +10 -16
  366. package/dist/esm/ion-col_3.entry.js +6 -126
  367. package/dist/esm/ion-datetime-button.entry.js +232 -248
  368. package/dist/esm/ion-datetime.entry.js +775 -953
  369. package/dist/esm/ion-fab_3.entry.js +78 -136
  370. package/dist/esm/ion-img.entry.js +11 -31
  371. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -98
  372. package/dist/esm/ion-input-otp.entry.js +352 -424
  373. package/dist/esm/ion-input-password-toggle.entry.js +14 -29
  374. package/dist/esm/ion-input.entry.js +158 -302
  375. package/dist/esm/ion-item-option_3.entry.js +45 -87
  376. package/dist/esm/ion-item_8.entry.js +61 -157
  377. package/dist/esm/ion-loading.entry.js +60 -133
  378. package/dist/esm/ion-menu_3.entry.js +94 -158
  379. package/dist/esm/ion-modal.entry.js +280 -383
  380. package/dist/esm/ion-nav_2.entry.js +26 -78
  381. package/dist/esm/ion-picker-column-option.entry.js +23 -33
  382. package/dist/esm/ion-picker-column.entry.js +389 -410
  383. package/dist/esm/ion-picker.entry.js +390 -400
  384. package/dist/esm/ion-popover.entry.js +196 -294
  385. package/dist/esm/ion-progress-bar.entry.js +23 -29
  386. package/dist/esm/ion-radio_2.entry.js +128 -201
  387. package/dist/esm/ion-range.entry.js +223 -293
  388. package/dist/esm/ion-refresher_2.entry.js +84 -156
  389. package/dist/esm/ion-reorder_2.entry.js +19 -49
  390. package/dist/esm/ion-ripple-effect.entry.js +13 -13
  391. package/dist/esm/ion-route_4.entry.js +45 -144
  392. package/dist/esm/ion-searchbar.entry.js +182 -268
  393. package/dist/esm/ion-segment-content.entry.js +1 -1
  394. package/dist/esm/ion-segment-view.entry.js +12 -24
  395. package/dist/esm/ion-segment_2.entry.js +111 -154
  396. package/dist/esm/ion-select-modal.entry.js +19 -21
  397. package/dist/esm/ion-select_3.entry.js +151 -319
  398. package/dist/esm/ion-spinner.entry.js +6 -21
  399. package/dist/esm/ion-split-pane.entry.js +14 -27
  400. package/dist/esm/ion-tab-bar_2.entry.js +32 -89
  401. package/dist/esm/ion-tab_2.entry.js +22 -49
  402. package/dist/esm/ion-text.entry.js +2 -8
  403. package/dist/esm/ion-textarea.entry.js +139 -256
  404. package/dist/esm/ion-toast.entry.js +106 -221
  405. package/dist/esm/ion-toggle.entry.js +114 -165
  406. package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-lrowsHfi.js} +1 -1
  407. package/dist/esm/ionic.js +5 -5
  408. package/dist/esm/{ios.transition-DXRCmcbC.js → ios.transition-BQhADrk1.js} +4 -4
  409. package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
  410. package/dist/esm/loader.js +5 -5
  411. package/dist/esm/{md.transition-BMngO4i_.js → md.transition-D58NpmRa.js} +4 -4
  412. package/dist/esm/{overlays-CPmIs9Ls.js → overlays-CefdMZgF.js} +58 -36
  413. package/dist/esm/{select-option-render-C4m76VGH.js → select-option-render-lIuu64EV.js} +2 -2
  414. package/dist/esm/{slot-mutation-controller-DiE_C9un.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
  415. package/dist/esm/{status-tap-CHB7KwIb.js → status-tap-CpFQMLl6.js} +3 -3
  416. package/dist/esm/{swipe-back-C9HW1bug.js → swipe-back-rmc7zeNW.js} +4 -4
  417. package/dist/ionic/index.esm.js +1 -1
  418. package/dist/ionic/ionic.esm.js +1 -1
  419. package/dist/ionic/p-0eb50dca.entry.js +4 -0
  420. package/dist/ionic/p-16e9f542.entry.js +4 -0
  421. package/dist/ionic/p-18d532a3.entry.js +4 -0
  422. package/dist/ionic/p-1db2afb4.entry.js +4 -0
  423. package/dist/ionic/p-1df75f9e.entry.js +4 -0
  424. package/dist/ionic/p-295ff427.entry.js +4 -0
  425. package/dist/ionic/p-36abc1ee.entry.js +4 -0
  426. package/dist/ionic/p-39a8d4e0.entry.js +4 -0
  427. package/dist/ionic/p-408973f4.entry.js +4 -0
  428. package/dist/ionic/p-46a938a9.entry.js +4 -0
  429. package/dist/ionic/p-47626333.entry.js +4 -0
  430. package/dist/ionic/p-478035a7.entry.js +4 -0
  431. package/dist/ionic/p-485fb218.entry.js +4 -0
  432. package/dist/ionic/p-56307aea.entry.js +4 -0
  433. package/dist/ionic/p-5ee2d7b1.entry.js +4 -0
  434. package/dist/ionic/p-5f216b79.entry.js +4 -0
  435. package/dist/ionic/p-61c799d1.entry.js +4 -0
  436. package/dist/ionic/p-63bbba8d.entry.js +4 -0
  437. package/dist/ionic/{p-ded69ceb.entry.js → p-6f048604.entry.js} +1 -1
  438. package/dist/ionic/p-70ee8888.entry.js +4 -0
  439. package/dist/ionic/p-72ad7c64.entry.js +4 -0
  440. package/dist/ionic/p-881b6954.entry.js +4 -0
  441. package/dist/ionic/p-8dd4c026.entry.js +4 -0
  442. package/dist/ionic/p-8e007f11.entry.js +4 -0
  443. package/dist/ionic/p-8f464a8f.entry.js +4 -0
  444. package/dist/ionic/p-8f51110d.entry.js +4 -0
  445. package/dist/ionic/p-90ba736e.entry.js +4 -0
  446. package/dist/ionic/p-9455207b.entry.js +4 -0
  447. package/dist/ionic/p-959df5f8.entry.js +4 -0
  448. package/dist/ionic/p-9e455875.entry.js +4 -0
  449. package/dist/ionic/{p-CBR_W98Z.js → p-9wczfs_v.js} +1 -1
  450. package/dist/ionic/p-B1Y7LZhV.js +4 -0
  451. package/dist/ionic/p-B5RyLYvl.js +4 -0
  452. package/dist/ionic/{p-CPcPmkGv.js → p-BQv5i5Kf.js} +1 -1
  453. package/{components/p-8FN7p701.js → dist/ionic/p-BZVE25Gu.js} +1 -1
  454. package/{components/p-DFvZn99E.js → dist/ionic/p-BZxjcGRP.js} +1 -1
  455. package/dist/ionic/p-B_gJaBk0.js +4 -0
  456. package/dist/ionic/p-BnGA34Pd.js +4 -0
  457. package/dist/ionic/p-ByLaqOPm.js +4 -0
  458. package/dist/ionic/p-C06QNN45.js +4 -0
  459. package/dist/ionic/p-C4IBDDj6.js +4 -0
  460. package/dist/ionic/p-CCVlNZ__.js +4 -0
  461. package/dist/ionic/{p-CMRtMbJc.js → p-CDBop-kz.js} +1 -1
  462. package/dist/ionic/p-CKYcsw8f.js +5 -0
  463. package/dist/ionic/p-CazSodad.js +4 -0
  464. package/{components/p-ia3IDdJS.js → dist/ionic/p-ClrlQU2y.js} +1 -1
  465. package/dist/ionic/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
  466. package/dist/ionic/p-D0dfUysx.js +4 -0
  467. package/dist/ionic/{p-BB0LlG4y.js → p-D9yvytgv.js} +1 -1
  468. package/{components/p-C5KYjZWD.js → dist/ionic/p-DF_Uqql8.js} +1 -1
  469. package/dist/ionic/p-DLLCmV-y.js +4 -0
  470. package/dist/ionic/{p-BYEAtHr-.js → p-DXJgZWgi.js} +1 -1
  471. package/dist/ionic/p-De0eY881.js +4 -0
  472. package/dist/ionic/p-DgUL3JbO.js +4 -0
  473. package/dist/ionic/{p-7CBuOvEo.js → p-RzUn7cKs.js} +1 -1
  474. package/dist/ionic/p-VquyMbjp.js +4 -0
  475. package/dist/ionic/p-a0fee899.entry.js +4 -0
  476. package/dist/ionic/p-a2fa2de2.entry.js +4 -0
  477. package/dist/ionic/p-a53b0908.entry.js +4 -0
  478. package/dist/ionic/p-a54bcd16.entry.js +4 -0
  479. package/dist/ionic/p-aebc4d69.entry.js +4 -0
  480. package/dist/ionic/p-b5f37106.entry.js +4 -0
  481. package/dist/ionic/{p-40424a88.entry.js → p-b62bfce8.entry.js} +1 -1
  482. package/dist/ionic/p-b875a59e.entry.js +4 -0
  483. package/dist/ionic/p-bbf6878c.entry.js +4 -0
  484. package/dist/ionic/p-c49165af.entry.js +4 -0
  485. package/dist/ionic/p-cad4eccf.entry.js +4 -0
  486. package/dist/ionic/p-cdc5115e.entry.js +4 -0
  487. package/dist/ionic/p-d3384a40.entry.js +4 -0
  488. package/dist/ionic/p-d8bae128.entry.js +4 -0
  489. package/dist/ionic/p-d8deff43.entry.js +4 -0
  490. package/dist/ionic/p-ddfb7e5f.entry.js +4 -0
  491. package/dist/ionic/p-e538f18d.entry.js +4 -0
  492. package/dist/ionic/p-f376876b.entry.js +4 -0
  493. package/dist/ionic/p-f3b671aa.entry.js +4 -0
  494. package/dist/ionic/p-f521b13c.entry.js +4 -0
  495. package/dist/ionic/p-f8713b2c.entry.js +4 -0
  496. package/dist/ionic/p-fbd83d4c.entry.js +4 -0
  497. package/dist/types/components/action-sheet/action-sheet.d.ts +10 -0
  498. package/dist/types/components/alert/alert.d.ts +7 -0
  499. package/dist/types/components/modal/modal.d.ts +8 -0
  500. package/dist/types/components/refresher/refresher.d.ts +4 -4
  501. package/dist/types/utils/overlays.d.ts +9 -0
  502. package/hydrate/index.js +5621 -8448
  503. package/hydrate/index.mjs +5621 -8448
  504. package/package.json +1 -1
  505. package/components/p--m5cCjbK.js +0 -4
  506. package/components/p-B4uHHhPK.js +0 -4
  507. package/components/p-BNJOu1Q2.js +0 -4
  508. package/components/p-BOvLNVKq.js +0 -4
  509. package/components/p-BeamQXHF.js +0 -4
  510. package/components/p-BjluhQMI.js +0 -4
  511. package/components/p-BlsIikdZ.js +0 -4
  512. package/components/p-BrD9Xv62.js +0 -4
  513. package/components/p-BvJqoZ5R.js +0 -4
  514. package/components/p-Bz6z3Asd.js +0 -4
  515. package/components/p-C6HnVvHO.js +0 -4
  516. package/components/p-C7jvh5Wy.js +0 -4
  517. package/components/p-C9BGR5fy.js +0 -4
  518. package/components/p-CB-y1CdP.js +0 -4
  519. package/components/p-CHH3loEE.js +0 -4
  520. package/components/p-CJKUWjmg.js +0 -4
  521. package/components/p-CMLAwl_N.js +0 -4
  522. package/components/p-CejmQs3h.js +0 -4
  523. package/components/p-CtZqa4HM.js +0 -4
  524. package/components/p-D9qIVSWm.js +0 -4
  525. package/components/p-DE-3iMNW.js +0 -4
  526. package/components/p-DHFt2rdc.js +0 -4
  527. package/components/p-D_RCyzwu.js +0 -4
  528. package/components/p-D_tD8r3L.js +0 -4
  529. package/components/p-DjCtLZbF.js +0 -4
  530. package/components/p-Dmd2xqCe.js +0 -4
  531. package/components/p-G6JR-cr_.js +0 -4
  532. package/components/p-GG5GhznE.js +0 -4
  533. package/components/p-TXPDHL13.js +0 -4
  534. package/components/p-_IKFD3ID.js +0 -4
  535. package/components/p-dKq2jIum.js +0 -4
  536. package/components/p-fruGqVHh.js +0 -4
  537. package/components/p-iYhH60Tc.js +0 -4
  538. package/dist/ionic/p-06ec7136.entry.js +0 -4
  539. package/dist/ionic/p-09fe4fa3.entry.js +0 -4
  540. package/dist/ionic/p-10d45a07.entry.js +0 -4
  541. package/dist/ionic/p-208c8a07.entry.js +0 -4
  542. package/dist/ionic/p-212474fa.entry.js +0 -4
  543. package/dist/ionic/p-2eef1396.entry.js +0 -4
  544. package/dist/ionic/p-347e005d.entry.js +0 -4
  545. package/dist/ionic/p-3b071259.entry.js +0 -4
  546. package/dist/ionic/p-4204184c.entry.js +0 -4
  547. package/dist/ionic/p-47464391.entry.js +0 -4
  548. package/dist/ionic/p-4f9c9126.entry.js +0 -4
  549. package/dist/ionic/p-5JsKPLJD.js +0 -4
  550. package/dist/ionic/p-5bc485c6.entry.js +0 -4
  551. package/dist/ionic/p-603a61e6.entry.js +0 -4
  552. package/dist/ionic/p-60576951.entry.js +0 -4
  553. package/dist/ionic/p-67a81d33.entry.js +0 -4
  554. package/dist/ionic/p-6affb775.entry.js +0 -4
  555. package/dist/ionic/p-6f120c25.entry.js +0 -4
  556. package/dist/ionic/p-71c82b60.entry.js +0 -4
  557. package/dist/ionic/p-79325ffe.entry.js +0 -4
  558. package/dist/ionic/p-7e4d51fa.entry.js +0 -4
  559. package/dist/ionic/p-7f5d4664.entry.js +0 -4
  560. package/dist/ionic/p-80ee82fc.entry.js +0 -4
  561. package/dist/ionic/p-84af7dbc.entry.js +0 -4
  562. package/dist/ionic/p-89ca830a.entry.js +0 -4
  563. package/dist/ionic/p-93b8ec8f.entry.js +0 -4
  564. package/dist/ionic/p-946f65c2.entry.js +0 -4
  565. package/dist/ionic/p-983b6c91.entry.js +0 -4
  566. package/dist/ionic/p-9c4b39fb.entry.js +0 -4
  567. package/dist/ionic/p-B1NEZUzQ.js +0 -4
  568. package/dist/ionic/p-B1ck5iy-.js +0 -4
  569. package/dist/ionic/p-B4FrqdW0.js +0 -4
  570. package/dist/ionic/p-C-94tAim.js +0 -4
  571. package/dist/ionic/p-C-eHZMYE.js +0 -4
  572. package/dist/ionic/p-CaRuIadB.js +0 -4
  573. package/dist/ionic/p-ChhhtsGZ.js +0 -5
  574. package/dist/ionic/p-CzS1qWve.js +0 -4
  575. package/dist/ionic/p-D94_RztK.js +0 -4
  576. package/dist/ionic/p-DjjfauRM.js +0 -4
  577. package/dist/ionic/p-DkUB-ROc.js +0 -4
  578. package/dist/ionic/p-DplOqGUv.js +0 -4
  579. package/dist/ionic/p-Dst_XmZh.js +0 -4
  580. package/dist/ionic/p-TXPDHL13.js +0 -4
  581. package/dist/ionic/p-a438b193.entry.js +0 -4
  582. package/dist/ionic/p-babaaaa7.entry.js +0 -4
  583. package/dist/ionic/p-be08d500.entry.js +0 -4
  584. package/dist/ionic/p-be9a4f51.entry.js +0 -4
  585. package/dist/ionic/p-c00d3092.entry.js +0 -4
  586. package/dist/ionic/p-c36dc8f5.entry.js +0 -4
  587. package/dist/ionic/p-c72a7e17.entry.js +0 -4
  588. package/dist/ionic/p-c8edd88c.entry.js +0 -4
  589. package/dist/ionic/p-ce0e380b.entry.js +0 -4
  590. package/dist/ionic/p-ce32912b.entry.js +0 -4
  591. package/dist/ionic/p-d07cf130.entry.js +0 -4
  592. package/dist/ionic/p-d27edeb3.entry.js +0 -4
  593. package/dist/ionic/p-d5d2c506.entry.js +0 -4
  594. package/dist/ionic/p-d5e31ca9.entry.js +0 -4
  595. package/dist/ionic/p-de91444f.entry.js +0 -4
  596. package/dist/ionic/p-df72866d.entry.js +0 -4
  597. package/dist/ionic/p-e47e3151.entry.js +0 -4
  598. package/dist/ionic/p-e621e5e8.entry.js +0 -4
  599. package/dist/ionic/p-eea9cf93.entry.js +0 -4
  600. package/dist/ionic/p-f402f5a4.entry.js +0 -4
  601. package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
  602. package/dist/ionic/p-ffb90460.entry.js +0 -4
@@ -1,24 +1,24 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, g as getElement, a as readTask, h, d as Host } from './index-ChhhtsGZ.js';
5
- import { c as createButtonActiveGesture } from './button-active-BDOsVAiZ.js';
6
- import { r as raf } from './helpers-CAGf8Wgp.js';
4
+ import { r as registerInstance, c as createEvent, a as readTask, h, d as Host, g as getElement } from './index-CKYcsw8f.js';
5
+ import { c as createButtonActiveGesture } from './button-active-ChA4D-ml.js';
6
+ import { r as raf } from './helpers-BIgoInJU.js';
7
7
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
8
- import { c as createDelegateController, d as createTriggerController, e as present, f as dismiss, g as eventMethod, i as isCancel, s as safeCall, B as BACKDROP, h as prepareOverlay, j as cleanupRootFocusTrapAccessibility, k as setOverlayId } from './overlays-CPmIs9Ls.js';
9
- import { r as renderOptionLabel } from './select-option-render-C4m76VGH.js';
8
+ import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, e as present, f as dismiss, g as eventMethod, s as safeCall, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId } from './overlays-CefdMZgF.js';
9
+ import { r as renderOptionLabel } from './select-option-render-lIuu64EV.js';
10
10
  import { g as getClassMap } from './theme-byZM6qHV.js';
11
- import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
12
- import { c as createAnimation } from './animation-CGFdmGk9.js';
11
+ import { b as getIonMode } from './ionic-global-lrowsHfi.js';
12
+ import { c as createAnimation } from './animation-TxGPYeDn.js';
13
13
  import './haptic-Cq4UAeka.js';
14
14
  import './capacitor-CFERIeaU.js';
15
15
  import './index-ZjP4CjeZ.js';
16
- import './index-DcPaH5uL.js';
17
- import './gesture-controller-TXPDHL13.js';
16
+ import './index-BmLuEdV7.js';
17
+ import './gesture-controller-B_gJaBk0.js';
18
18
  import './dir-Dojwmvde.js';
19
- import './hardware-back-button-gLJHMX_F.js';
20
- import './framework-delegate-BHTU2Ip9.js';
21
- import './index-CKM1DdGm.js';
19
+ import './hardware-back-button-D8W4L0JP.js';
20
+ import './framework-delegate-DaLWnISz.js';
21
+ import './index-elneMH8y.js';
22
22
 
23
23
  /**
24
24
  * iOS Action Sheet Enter Animation
@@ -119,45 +119,54 @@ const ActionSheet = class {
119
119
  this.willPresentShorthand = createEvent(this, "willPresent", 7);
120
120
  this.willDismissShorthand = createEvent(this, "willDismiss", 7);
121
121
  this.didDismissShorthand = createEvent(this, "didDismiss", 7);
122
+ this.delegateController = createDelegateController(this);
123
+ this.lockController = createLockController();
124
+ this.triggerController = createTriggerController();
125
+ this.hasRadioButtons = false;
126
+ this.presented = false;
127
+ /** @internal */
128
+ this.hasController = false;
129
+ /**
130
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
131
+ */
132
+ this.keyboardClose = true;
133
+ /**
134
+ * An array of buttons for the action sheet.
135
+ */
136
+ this.buttons = [];
137
+ /**
138
+ * If `true`, the action sheet will be dismissed when the backdrop is clicked.
139
+ */
140
+ this.backdropDismiss = true;
141
+ /**
142
+ * If `true`, the action sheet will be translucent.
143
+ * Only applies when the mode is `"ios"` and the device supports
144
+ * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
145
+ */
146
+ this.translucent = false;
147
+ /**
148
+ * If `true`, the action sheet will animate.
149
+ */
150
+ this.animated = true;
151
+ /**
152
+ * If `true`, the action sheet will open. If `false`, the action sheet will close.
153
+ * Use this if you need finer grained control over presentation, otherwise
154
+ * just use the actionSheetController or the `trigger` property.
155
+ * Note: `isOpen` will not automatically be set back to `false` when
156
+ * the action sheet dismisses. You will need to do that in your code.
157
+ */
158
+ this.isOpen = false;
159
+ this.onBackdropTap = () => {
160
+ this.dismiss(undefined, BACKDROP);
161
+ };
162
+ this.dispatchCancelHandler = (ev) => {
163
+ const role = ev.detail.role;
164
+ if (isCancel(role)) {
165
+ const cancelButton = this.getButtons().find((b) => b.role === 'cancel');
166
+ this.callButtonHandler(cancelButton);
167
+ }
168
+ };
122
169
  }
123
- delegateController = createDelegateController(this);
124
- lockController = createLockController();
125
- triggerController = createTriggerController();
126
- wrapperEl;
127
- groupEl;
128
- gesture;
129
- hasRadioButtons = false;
130
- presented = false;
131
- lastFocus;
132
- animation;
133
- /**
134
- * The ID of the currently active/selected radio button.
135
- * Used for keyboard navigation and ARIA attributes.
136
- */
137
- activeRadioId;
138
- get el() { return getElement(this); }
139
- /** @internal */
140
- overlayIndex;
141
- /** @internal */
142
- delegate;
143
- /** @internal */
144
- hasController = false;
145
- /**
146
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
147
- */
148
- keyboardClose = true;
149
- /**
150
- * Animation to use when the action sheet is presented.
151
- */
152
- enterAnimation;
153
- /**
154
- * Animation to use when the action sheet is dismissed.
155
- */
156
- leaveAnimation;
157
- /**
158
- * An array of buttons for the action sheet.
159
- */
160
- buttons = [];
161
170
  buttonsChanged() {
162
171
  const radioButtons = this.getRadioButtons();
163
172
  this.hasRadioButtons = radioButtons.length > 0;
@@ -171,45 +180,6 @@ const ActionSheet = class {
171
180
  }
172
181
  }
173
182
  }
174
- /**
175
- * Additional classes to apply for custom CSS. If multiple classes are
176
- * provided they should be separated by spaces.
177
- */
178
- cssClass;
179
- /**
180
- * If `true`, the action sheet will be dismissed when the backdrop is clicked.
181
- */
182
- backdropDismiss = true;
183
- /**
184
- * Title for the action sheet.
185
- */
186
- header;
187
- /**
188
- * Subtitle for the action sheet.
189
- */
190
- subHeader;
191
- /**
192
- * If `true`, the action sheet will be translucent.
193
- * Only applies when the mode is `"ios"` and the device supports
194
- * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
195
- */
196
- translucent = false;
197
- /**
198
- * If `true`, the action sheet will animate.
199
- */
200
- animated = true;
201
- /**
202
- * Additional attributes to pass to the action sheet.
203
- */
204
- htmlAttributes;
205
- /**
206
- * If `true`, the action sheet will open. If `false`, the action sheet will close.
207
- * Use this if you need finer grained control over presentation, otherwise
208
- * just use the actionSheetController or the `trigger` property.
209
- * Note: `isOpen` will not automatically be set back to `false` when
210
- * the action sheet dismisses. You will need to do that in your code.
211
- */
212
- isOpen = false;
213
183
  onIsOpenChange(newValue, oldValue) {
214
184
  if (newValue === true && oldValue === false) {
215
185
  this.present();
@@ -218,53 +188,12 @@ const ActionSheet = class {
218
188
  this.dismiss();
219
189
  }
220
190
  }
221
- /**
222
- * An ID corresponding to the trigger element that
223
- * causes the action sheet to open when clicked.
224
- */
225
- trigger;
226
191
  triggerChanged() {
227
192
  const { trigger, el, triggerController } = this;
228
193
  if (trigger) {
229
194
  triggerController.addClickListener(el, trigger);
230
195
  }
231
196
  }
232
- /**
233
- * Emitted after the action sheet has presented.
234
- */
235
- didPresent;
236
- /**
237
- * Emitted before the action sheet has presented.
238
- */
239
- willPresent;
240
- /**
241
- * Emitted before the action sheet has dismissed.
242
- */
243
- willDismiss;
244
- /**
245
- * Emitted after the action sheet has dismissed.
246
- */
247
- didDismiss;
248
- /**
249
- * Emitted after the action sheet has presented.
250
- * Shorthand for ionActionSheetWillDismiss.
251
- */
252
- didPresentShorthand;
253
- /**
254
- * Emitted before the action sheet has presented.
255
- * Shorthand for ionActionSheetWillPresent.
256
- */
257
- willPresentShorthand;
258
- /**
259
- * Emitted before the action sheet has dismissed.
260
- * Shorthand for ionActionSheetWillDismiss.
261
- */
262
- willDismissShorthand;
263
- /**
264
- * Emitted after the action sheet has dismissed.
265
- * Shorthand for ionActionSheetDidDismiss.
266
- */
267
- didDismissShorthand;
268
197
  /**
269
198
  * Present the action sheet overlay after it has been created.
270
199
  */
@@ -373,16 +302,6 @@ const ActionSheet = class {
373
302
  const buttonIndex = index !== undefined ? index : allButtons.indexOf(button);
374
303
  return `action-sheet-button-${this.overlayIndex}-${buttonIndex}`;
375
304
  }
376
- onBackdropTap = () => {
377
- this.dismiss(undefined, BACKDROP);
378
- };
379
- dispatchCancelHandler = (ev) => {
380
- const role = ev.detail.role;
381
- if (isCancel(role)) {
382
- const cancelButton = this.getButtons().find((b) => b.role === 'cancel');
383
- this.callButtonHandler(cancelButton);
384
- }
385
- };
386
305
  /**
387
306
  * When the action sheet has radio buttons, we want to follow the
388
307
  * keyboard navigation pattern for radio groups:
@@ -459,6 +378,13 @@ const ActionSheet = class {
459
378
  connectedCallback() {
460
379
  prepareOverlay(this.el);
461
380
  this.triggerChanged();
381
+ // `componentDidLoad` only fires once per instance, so a reconnect has to
382
+ // rebuild the gesture its disconnect destroyed.
383
+ this.setupButtonActiveGesture();
384
+ // Re-apply the root lock if moved without dismiss() being called
385
+ if (this.presented) {
386
+ restoreRootFocusTrapAccessibility(this.el);
387
+ }
462
388
  }
463
389
  disconnectedCallback() {
464
390
  if (this.gesture) {
@@ -478,24 +404,32 @@ const ActionSheet = class {
478
404
  // Initialize activeRadioId for radio buttons
479
405
  this.buttonsChanged();
480
406
  }
481
- componentDidLoad() {
482
- /**
483
- * Only create gesture if:
484
- * 1. A gesture does not already exist
485
- * 2. App is running in iOS mode
486
- * 3. A wrapper ref exists
487
- * 4. A group ref exists
488
- */
407
+ /**
408
+ * Only create gesture if:
409
+ * 1. A gesture does not already exist
410
+ * 2. App is running in iOS mode
411
+ * 3. A wrapper ref exists
412
+ * 4. A group ref exists
413
+ * 5. The host is still connected, since a reconnect can schedule this and
414
+ * disconnect again before the task runs
415
+ */
416
+ setupButtonActiveGesture() {
489
417
  const { groupEl, wrapperEl } = this;
490
- if (!this.gesture && getIonMode(this) === 'ios' && wrapperEl && groupEl) {
491
- readTask(() => {
492
- const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;
493
- if (!isScrollable) {
494
- this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
495
- this.gesture.enable(true);
496
- }
497
- });
418
+ if (getIonMode(this) !== 'ios' || !wrapperEl || !groupEl) {
419
+ return;
498
420
  }
421
+ readTask(() => {
422
+ // Two calls before the first flushes would otherwise both create a
423
+ // gesture, orphaning the first with its listeners still bound.
424
+ if (this.gesture || !this.el.isConnected || groupEl.scrollHeight > groupEl.clientHeight) {
425
+ return;
426
+ }
427
+ this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
428
+ this.gesture.enable(true);
429
+ });
430
+ }
431
+ componentDidLoad() {
432
+ this.setupButtonActiveGesture();
499
433
  /**
500
434
  * If action sheet was rendered with isOpen="true"
501
435
  * then we should open action sheet immediately.
@@ -588,18 +522,19 @@ const ActionSheet = class {
588
522
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
589
523
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
590
524
  const headerID = `action-sheet-${overlayIndex}-header`;
591
- return (h(Host, { key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
525
+ return (h(Host, { key: '326d4af08e832e10e1882fbbf67dba3221095865', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
592
526
  zIndex: `${20000 + this.overlayIndex}`,
593
527
  }, class: {
594
528
  [mode]: true,
595
529
  ...getClassMap(this.cssClass),
596
530
  'overlay-hidden': true,
597
531
  'action-sheet-translucent': this.translucent,
598
- }, 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: {
532
+ }, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '8cb6a0d763a60f61f563a1b7d572ad5e9afd6e40', tappable: this.backdropDismiss }), h("div", { key: 'f8b8da0f52ae674a5e313632ee3d049bed3f813f', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '53cf0d1b01a2cda23c27fc8b96edaccf892e61b3', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '6df261ff946c3b4496535df04cc70e2cfa3cc2da', class: "action-sheet-container" }, h("div", { key: '6f6f2846d19baa738651b990d8613aa0ecac9479', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (h("div", { key: '3f36df8eaaedb5e61a41bbf44134f25f263d1e7e', id: headerID, class: {
599
533
  'action-sheet-title': true,
600
534
  'action-sheet-has-sub-title': this.subHeader !== undefined,
601
- } }, 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" })));
535
+ } }, header, this.subHeader && h("div", { key: 'a6b2bf51123eaae4ed873e65c00c426e9c511ac0', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (h("div", { key: '4dd96553327003b899bc03a815a06a7cce35db29', class: "action-sheet-group action-sheet-group-cancel" }, h("button", { key: 'a1928040a3d20f2e50230b7d6003467d2916f5b4', ...cancelButton.htmlAttributes, type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }, h("span", { key: '2fa9d0e4072f1fd55f08048966495a627a14ef8f', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: 'c2eec9967cb9f0b75d4428bb548674199089203c', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", { key: '09e71f28d77ae16481b832863f49b3f7d7dd76f9' })))))), h("div", { key: '386fbe5ca2a88e9b52bd3b9d8f3daddbc630e6f6', tabindex: "0", "aria-hidden": "true" })));
602
536
  }
537
+ get el() { return getElement(this); }
603
538
  static get watchers() { return {
604
539
  "buttons": [{
605
540
  "buttonsChanged": 0
@@ -1,26 +1,26 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, e as config, g as getElement, f as printIonWarning, i as forceUpdate, h, d as Host } from './index-ChhhtsGZ.js';
4
+ import { r as registerInstance, c as createEvent, e as config, f as printIonWarning, i as forceUpdate, h, d as Host, g as getElement } from './index-CKYcsw8f.js';
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT } from './config-DWCzVL3Y.js';
6
- import { c as createButtonActiveGesture } from './button-active-BDOsVAiZ.js';
7
- import { r as raf } from './helpers-CAGf8Wgp.js';
6
+ import { c as createButtonActiveGesture } from './button-active-ChA4D-ml.js';
7
+ import { r as raf } from './helpers-BIgoInJU.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
9
  import { g as getOverlayLabelJustify, a as getOverlayLabelPlacement } from './overlay-control-label-BSQPZ79H.js';
10
- import { c as createDelegateController, d as createTriggerController, h as prepareOverlay, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod, s as safeCall, i as isCancel, B as BACKDROP } from './overlays-CPmIs9Ls.js';
11
- import { s as sanitizeDOMString } from './index-CKM1DdGm.js';
12
- import { r as renderOptionLabel } from './select-option-render-C4m76VGH.js';
10
+ import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays-CefdMZgF.js';
11
+ import { s as sanitizeDOMString } from './index-elneMH8y.js';
12
+ import { r as renderOptionLabel } from './select-option-render-lIuu64EV.js';
13
13
  import { g as getClassMap } from './theme-byZM6qHV.js';
14
- import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
15
- import { c as createAnimation } from './animation-CGFdmGk9.js';
14
+ import { b as getIonMode } from './ionic-global-lrowsHfi.js';
15
+ import { c as createAnimation } from './animation-TxGPYeDn.js';
16
16
  import './haptic-Cq4UAeka.js';
17
17
  import './capacitor-CFERIeaU.js';
18
18
  import './index-ZjP4CjeZ.js';
19
- import './index-DcPaH5uL.js';
20
- import './gesture-controller-TXPDHL13.js';
19
+ import './index-BmLuEdV7.js';
20
+ import './gesture-controller-B_gJaBk0.js';
21
21
  import './dir-Dojwmvde.js';
22
- import './hardware-back-button-gLJHMX_F.js';
23
- import './framework-delegate-BHTU2Ip9.js';
22
+ import './hardware-back-button-D8W4L0JP.js';
23
+ import './framework-delegate-DaLWnISz.js';
24
24
 
25
25
  /**
26
26
  * iOS Alert Enter Animation
@@ -122,103 +122,61 @@ const Alert = class {
122
122
  this.willPresentShorthand = createEvent(this, "willPresent", 7);
123
123
  this.willDismissShorthand = createEvent(this, "willDismiss", 7);
124
124
  this.didDismissShorthand = createEvent(this, "didDismiss", 7);
125
+ this.delegateController = createDelegateController(this);
126
+ this.lockController = createLockController();
127
+ this.triggerController = createTriggerController();
128
+ this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
129
+ this.processedInputs = [];
130
+ this.processedButtons = [];
131
+ this.isButtonGroupWrapped = false;
132
+ this.presented = false;
133
+ /** @internal */
134
+ this.hasController = false;
135
+ /**
136
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
137
+ */
138
+ this.keyboardClose = true;
139
+ /**
140
+ * Array of buttons to be added to the alert.
141
+ */
142
+ this.buttons = [];
143
+ /**
144
+ * Array of input to show in the alert.
145
+ */
146
+ this.inputs = [];
147
+ /**
148
+ * If `true`, the alert will be dismissed when the backdrop is clicked.
149
+ */
150
+ this.backdropDismiss = true;
151
+ /**
152
+ * If `true`, the alert will be translucent.
153
+ * Only applies when the mode is `"ios"` and the device supports
154
+ * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
155
+ */
156
+ this.translucent = false;
157
+ /**
158
+ * If `true`, the alert will animate.
159
+ */
160
+ this.animated = true;
161
+ /**
162
+ * If `true`, the alert will open. If `false`, the alert will close.
163
+ * Use this if you need finer grained control over presentation, otherwise
164
+ * just use the alertController or the `trigger` property.
165
+ * Note: `isOpen` will not automatically be set back to `false` when
166
+ * the alert dismisses. You will need to do that in your code.
167
+ */
168
+ this.isOpen = false;
169
+ this.onBackdropTap = () => {
170
+ this.dismiss(undefined, BACKDROP);
171
+ };
172
+ this.dispatchCancelHandler = (ev) => {
173
+ const role = ev.detail.role;
174
+ if (isCancel(role)) {
175
+ const cancelButton = this.processedButtons.find((b) => b.role === 'cancel');
176
+ this.callButtonHandler(cancelButton);
177
+ }
178
+ };
125
179
  }
126
- delegateController = createDelegateController(this);
127
- lockController = createLockController();
128
- triggerController = createTriggerController();
129
- customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
130
- activeId;
131
- inputType;
132
- processedInputs = [];
133
- processedButtons = [];
134
- wrapperEl;
135
- buttonGroupEl;
136
- buttonGroupResizeObserver;
137
- gesture;
138
- isButtonGroupWrapped = false;
139
- presented = false;
140
- lastFocus;
141
- get el() { return getElement(this); }
142
- /** @internal */
143
- overlayIndex;
144
- /** @internal */
145
- delegate;
146
- /** @internal */
147
- hasController = false;
148
- /**
149
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
150
- */
151
- keyboardClose = true;
152
- /**
153
- * Animation to use when the alert is presented.
154
- */
155
- enterAnimation;
156
- /**
157
- * Animation to use when the alert is dismissed.
158
- */
159
- leaveAnimation;
160
- /**
161
- * Additional classes to apply for custom CSS. If multiple classes are
162
- * provided they should be separated by spaces.
163
- */
164
- cssClass;
165
- /**
166
- * The main title in the heading of the alert.
167
- */
168
- header;
169
- /**
170
- * The subtitle in the heading of the alert. Displayed under the title.
171
- */
172
- subHeader;
173
- /**
174
- * The main message to be displayed in the alert.
175
- * `message` can accept either plaintext or HTML as a string.
176
- * To display characters normally reserved for HTML, they
177
- * must be escaped. For example `<Ionic>` would become
178
- * `&lt;Ionic&gt;`
179
- *
180
- * For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)
181
- *
182
- * This property accepts custom HTML as a string.
183
- * Content is parsed as plaintext by default.
184
- * `innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config
185
- * before custom HTML can be used.
186
- */
187
- message;
188
- /**
189
- * Array of buttons to be added to the alert.
190
- */
191
- buttons = [];
192
- /**
193
- * Array of input to show in the alert.
194
- */
195
- inputs = [];
196
- /**
197
- * If `true`, the alert will be dismissed when the backdrop is clicked.
198
- */
199
- backdropDismiss = true;
200
- /**
201
- * If `true`, the alert will be translucent.
202
- * Only applies when the mode is `"ios"` and the device supports
203
- * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
204
- */
205
- translucent = false;
206
- /**
207
- * If `true`, the alert will animate.
208
- */
209
- animated = true;
210
- /**
211
- * Additional attributes to pass to the alert.
212
- */
213
- htmlAttributes;
214
- /**
215
- * If `true`, the alert will open. If `false`, the alert will close.
216
- * Use this if you need finer grained control over presentation, otherwise
217
- * just use the alertController or the `trigger` property.
218
- * Note: `isOpen` will not automatically be set back to `false` when
219
- * the alert dismisses. You will need to do that in your code.
220
- */
221
- isOpen = false;
222
180
  onIsOpenChange(newValue, oldValue) {
223
181
  if (newValue === true && oldValue === false) {
224
182
  this.present();
@@ -227,53 +185,12 @@ const Alert = class {
227
185
  this.dismiss();
228
186
  }
229
187
  }
230
- /**
231
- * An ID corresponding to the trigger element that
232
- * causes the alert to open when clicked.
233
- */
234
- trigger;
235
188
  triggerChanged() {
236
189
  const { trigger, el, triggerController } = this;
237
190
  if (trigger) {
238
191
  triggerController.addClickListener(el, trigger);
239
192
  }
240
193
  }
241
- /**
242
- * Emitted after the alert has presented.
243
- */
244
- didPresent;
245
- /**
246
- * Emitted before the alert has presented.
247
- */
248
- willPresent;
249
- /**
250
- * Emitted before the alert has dismissed.
251
- */
252
- willDismiss;
253
- /**
254
- * Emitted after the alert has dismissed.
255
- */
256
- didDismiss;
257
- /**
258
- * Emitted after the alert has presented.
259
- * Shorthand for ionAlertWillDismiss.
260
- */
261
- didPresentShorthand;
262
- /**
263
- * Emitted before the alert has presented.
264
- * Shorthand for ionAlertWillPresent.
265
- */
266
- willPresentShorthand;
267
- /**
268
- * Emitted before the alert has dismissed.
269
- * Shorthand for ionAlertWillDismiss.
270
- */
271
- willDismissShorthand;
272
- /**
273
- * Emitted after the alert has dismissed.
274
- * Shorthand for ionAlertDidDismiss.
275
- */
276
- didDismissShorthand;
277
194
  onKeydown(ev) {
278
195
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
279
196
  /**
@@ -379,10 +296,15 @@ const Alert = class {
379
296
  this.triggerChanged();
380
297
  /**
381
298
  * If the alert was previously connected and is being reattached, the
382
- * ResizeObserver was disconnected. componentDidLoad only fires once per
383
- * instance, so re-establish the observer here on reconnect.
299
+ * `ResizeObserver` and the button gesture were torn down. `componentDidLoad`
300
+ * only fires once per instance, so re-establish both here on reconnect.
384
301
  */
385
302
  this.setupButtonGroupResizeObserver();
303
+ this.setupButtonActiveGesture();
304
+ // Re-apply the root lock if moved without dismiss() being called
305
+ if (this.presented) {
306
+ restoreRootFocusTrapAccessibility(this.el);
307
+ }
386
308
  }
387
309
  componentWillLoad() {
388
310
  if (!this.htmlAttributes?.id) {
@@ -404,17 +326,20 @@ const Alert = class {
404
326
  this.buttonGroupResizeObserver?.disconnect();
405
327
  this.buttonGroupResizeObserver = undefined;
406
328
  }
407
- componentDidLoad() {
408
- /**
409
- * Only create gesture if:
410
- * 1. A gesture does not already exist
411
- * 2. App is running in iOS mode
412
- * 3. A wrapper ref exists
413
- */
329
+ /**
330
+ * Only create gesture if:
331
+ * 1. A gesture does not already exist
332
+ * 2. App is running in iOS mode
333
+ * 3. A wrapper ref exists
334
+ */
335
+ setupButtonActiveGesture() {
414
336
  if (!this.gesture && getIonMode(this) === 'ios' && this.wrapperEl) {
415
337
  this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
416
338
  this.gesture.enable(true);
417
339
  }
340
+ }
341
+ componentDidLoad() {
342
+ this.setupButtonActiveGesture();
418
343
  this.setupButtonGroupResizeObserver();
419
344
  /**
420
345
  * If alert was rendered with isOpen="true"
@@ -664,16 +589,6 @@ const Alert = class {
664
589
  }
665
590
  })));
666
591
  }
667
- onBackdropTap = () => {
668
- this.dismiss(undefined, BACKDROP);
669
- };
670
- dispatchCancelHandler = (ev) => {
671
- const role = ev.detail.role;
672
- if (isCancel(role)) {
673
- const cancelButton = this.processedButtons.find((b) => b.role === 'cancel');
674
- this.callButtonHandler(cancelButton);
675
- }
676
- };
677
592
  setupButtonGroupResizeObserver() {
678
593
  /**
679
594
  * Re-evaluate vertical layout when the button group resizes so a 2-button
@@ -747,15 +662,16 @@ const Alert = class {
747
662
  * If neither are defined, do not set aria-labelledby.
748
663
  */
749
664
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
750
- return (h(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
665
+ return (h(Host, { key: '083b5250dc4c76e85240e0225abcb7ca2b66de2f', tabindex: "-1", style: {
751
666
  zIndex: `${20000 + overlayIndex}`,
752
667
  }, class: {
753
668
  ...getClassMap(this.cssClass),
754
669
  [mode]: true,
755
670
  'overlay-hidden': true,
756
671
  'alert-translucent': this.translucent,
757
- }, 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" })));
672
+ }, 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" })));
758
673
  }
674
+ get el() { return getElement(this); }
759
675
  static get watchers() { return {
760
676
  "isOpen": [{
761
677
  "onIsOpenChange": 0