@ionic/core 8.8.18-dev.11786487682.1e6f798f → 8.8.18-dev.11786663039.1d61e2fe

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 (1229) 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-0tt0PTAe.js +4 -0
  99. package/components/p-3dKnMgX5.js +4 -0
  100. package/components/p-6e_5igwn.js +4 -0
  101. package/components/p-AqD_wmvU.js +4 -0
  102. package/components/p-B-FxiyeI.js +4 -0
  103. package/components/p-B4COLbAV.js +4 -0
  104. package/components/p-B9zzUBwR.js +4 -0
  105. package/components/p-BFU7kgcj.js +4 -0
  106. package/components/p-BMPN55of.js +4 -0
  107. package/components/p-BPbRjpb2.js +4 -0
  108. package/components/p-BSQPZ79H.js +4 -0
  109. package/components/p-BXQ7upSC.js +4 -0
  110. package/components/p-BhamHSw3.js +4 -0
  111. package/components/p-BmVRXR1y.js +4 -0
  112. package/components/p-BrXE0XUu.js +4 -0
  113. package/components/p-Bv7Rqz3Z.js +4 -0
  114. package/components/p-Bw7MMRH7.js +4 -0
  115. package/components/p-C-X5vb8f.js +4 -0
  116. package/components/p-C117Majq.js +4 -0
  117. package/components/{p-DWoO0801.js → p-C6JOi8wS.js} +1 -1
  118. package/components/p-CCVPk59A.js +4 -0
  119. package/components/p-CEW4RXZO.js +4 -0
  120. package/components/p-CIGNaXM1.js +4 -0
  121. package/components/p-CKMc290p.js +4 -0
  122. package/components/{p-B2SvA6NE.js → p-CO5nI-BZ.js} +1 -1
  123. package/components/p-COQ_7Wwc.js +4 -0
  124. package/components/p-CQbh6Be_.js +4 -0
  125. package/components/p-CQtcj8t7.js +4 -0
  126. package/components/p-Cap9bvqr.js +4 -0
  127. package/components/p-CdP7ze2J.js +4 -0
  128. package/components/p-CfyJ_Ogc.js +4 -0
  129. package/components/p-ChWC4-vA.js +4 -0
  130. package/components/p-CmKf4pgI.js +4 -0
  131. package/components/p-CqYSqB9_.js +4 -0
  132. package/{dist/ionic/p-Cm20lBQw.js → components/p-Cwsd9bue.js} +1 -1
  133. package/components/p-D0pL_HuH.js +4 -0
  134. package/components/p-D0xd6h3Q.js +4 -0
  135. package/components/p-D28LaDuR.js +4 -0
  136. package/components/p-D7-vHX0A.js +4 -0
  137. package/components/p-D9KqizZs.js +4 -0
  138. package/components/p-DIZE3CVV.js +4 -0
  139. package/components/p-DJztqcrH.js +4 -0
  140. package/{dist/ionic/p-im8OkZlj.js → components/p-DL8rd5jo.js} +1 -1
  141. package/components/p-DRcApg6F.js +4 -0
  142. package/components/p-DTTnwMiS.js +4 -0
  143. package/components/p-DWCzVL3Y.js +4 -0
  144. package/components/p-DYmrV1HT.js +4 -0
  145. package/components/{p-BZwQa9ey.js → p-Dcu-SAJG.js} +1 -1
  146. package/components/p-DnINLmwC.js +4 -0
  147. package/components/{p-CVqhQif1.js → p-DsNz6_gM.js} +1 -1
  148. package/components/p-DtiuiOTk.js +4 -0
  149. package/components/p-DunYzubP.js +4 -0
  150. package/components/p-DwcSJ9u1.js +4 -0
  151. package/components/p-LpMHEu3v.js +4 -0
  152. package/components/p-QCPSB1bo.js +4 -0
  153. package/components/p-RvtofbHn.js +4 -0
  154. package/components/p-TXPDHL13.js +4 -0
  155. package/components/p-WOFp6fXj.js +4 -0
  156. package/components/p-ZjP4CjeZ.js +4 -0
  157. package/components/p-byZM6qHV.js +4 -0
  158. package/components/{p-B_jBop0E.js → p-ltNYIRmI.js} +1 -1
  159. package/components/p-miSGCTAU.js +4 -0
  160. package/components/p-mpdX3emm.js +4 -0
  161. package/components/p-nvqVLrWC.js +4 -0
  162. package/components/p-qiWM96Sz.js +4 -0
  163. package/components/p-vlF0Bcfd.js +4 -0
  164. package/css/core.css +1 -1
  165. package/css/core.css.map +1 -1
  166. package/css/display.css +1 -1
  167. package/css/display.css.map +1 -1
  168. package/css/flex-utils.css +1 -1
  169. package/css/flex-utils.css.map +1 -1
  170. package/css/float-elements.css.map +1 -1
  171. package/css/global.bundle.css.map +1 -1
  172. package/css/ionic-swiper.css +1 -1
  173. package/css/ionic-swiper.css.map +1 -1
  174. package/css/ionic.bundle.css +1 -1
  175. package/css/ionic.bundle.css.map +1 -1
  176. package/css/normalize.css.map +1 -1
  177. package/css/padding.css.map +1 -1
  178. package/css/palettes/dark.always.css.map +1 -1
  179. package/css/palettes/dark.class.css.map +1 -1
  180. package/css/palettes/dark.system.css.map +1 -1
  181. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  182. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  183. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  184. package/css/palettes/high-contrast.always.css.map +1 -1
  185. package/css/palettes/high-contrast.class.css.map +1 -1
  186. package/css/palettes/high-contrast.system.css.map +1 -1
  187. package/css/structure.css.map +1 -1
  188. package/css/text-alignment.css.map +1 -1
  189. package/css/text-transformation.css.map +1 -1
  190. package/css/typography.css.map +1 -1
  191. package/css/utils.bundle.css +1 -1
  192. package/css/utils.bundle.css.map +1 -1
  193. package/dist/cjs/{animation-B3xfVcDO.js → animation-D5WDBRvT.js} +6 -6
  194. package/dist/cjs/{app-globals-3ZoCVkn-.js → app-globals-C2s3Cbal.js} +1 -1
  195. package/dist/cjs/{button-active-3tZKuPbT.js → button-active-CXI2TseG.js} +3 -3
  196. package/dist/cjs/{capacitor-CQSg1uCo.js → capacitor-DmA66EwP.js} +3 -3
  197. package/dist/cjs/{config-DWdFbSNK.js → config-CjUbvdPW.js} +5 -4
  198. package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
  199. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  200. package/dist/cjs/{format-BCIkDef_.js → format-ZfKtcdit.js} +40 -30
  201. package/dist/cjs/{framework-delegate-DC5nq_NN.js → framework-delegate-Bdvk3JQO.js} +6 -10
  202. package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
  203. package/dist/cjs/{haptic-eix26ESE.js → haptic-Ch-X4gRx.js} +3 -4
  204. package/dist/cjs/hardware-back-button-zr8zeYaH.js +121 -0
  205. package/dist/cjs/{helpers-DiOgV5hw.js → helpers-DURh1XdY.js} +6 -73
  206. package/dist/cjs/{index-DYRcC3bw.js → index-B7sCu6vN.js} +15 -16
  207. package/dist/cjs/{index-BxEZd5IE.js → index-BnhnwL1o.js} +2 -2
  208. package/dist/cjs/{index-bX3nz2vw.js → index-Btdix80K.js} +8 -9
  209. package/dist/cjs/{index-GZU9YrFc.js → index-CAThePqm.js} +8 -47
  210. package/dist/cjs/{index-Bj07IRTB.js → index-DhSx3VvD.js} +3 -3
  211. package/dist/cjs/index-DkNv4J_i.js +10 -0
  212. package/dist/cjs/{index-BaJ7_YbC.js → index-DsoHs7Ly.js} +5 -5
  213. package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
  214. package/dist/cjs/{index-CxDnX7hd.js → index-wOmugbdg.js} +0 -2
  215. package/dist/cjs/index.cjs.js +17 -17
  216. package/dist/cjs/{input-shims-BSEBw22J.js → input-shims-CPbWb84M.js} +19 -22
  217. package/dist/cjs/{input.utils-D68wgI2Y.js → input.utils-CkASW3mE.js} +6 -7
  218. package/dist/cjs/ion-accordion_2.cjs.entry.js +378 -382
  219. package/dist/cjs/ion-action-sheet.cjs.entry.js +178 -86
  220. package/dist/cjs/ion-alert.cjs.entry.js +250 -125
  221. package/dist/cjs/ion-app_8.cjs.entry.js +460 -608
  222. package/dist/cjs/ion-avatar_3.cjs.entry.js +19 -125
  223. package/dist/cjs/ion-back-button.cjs.entry.js +64 -49
  224. package/dist/cjs/ion-backdrop.cjs.entry.js +23 -22
  225. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +211 -169
  226. package/dist/cjs/ion-button_2.cjs.entry.js +152 -117
  227. package/dist/cjs/ion-card_5.cjs.entry.js +109 -79
  228. package/dist/cjs/ion-checkbox.cjs.entry.js +163 -129
  229. package/dist/cjs/ion-chip.cjs.entry.js +21 -56
  230. package/dist/cjs/ion-col_3.cjs.entry.js +186 -61
  231. package/dist/cjs/ion-datetime-button.cjs.entry.js +255 -247
  232. package/dist/cjs/ion-datetime.cjs.entry.js +2767 -0
  233. package/dist/cjs/ion-fab_3.cjs.entry.js +154 -112
  234. package/dist/cjs/ion-img.cjs.entry.js +34 -16
  235. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +108 -156
  236. package/dist/cjs/ion-input-otp.cjs.entry.js +435 -437
  237. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +40 -64
  238. package/dist/cjs/ion-input.cjs.entry.js +330 -276
  239. package/dist/cjs/ion-item-option_3.cjs.entry.js +136 -511
  240. package/dist/cjs/ion-item_8.cjs.entry.js +217 -189
  241. package/dist/cjs/ion-loading.cjs.entry.js +151 -68
  242. package/dist/cjs/ion-menu_3.cjs.entry.js +181 -137
  243. package/dist/cjs/ion-modal.cjs.entry.js +534 -491
  244. package/dist/cjs/ion-nav_2.cjs.entry.js +103 -163
  245. package/dist/cjs/ion-picker-column-option.cjs.entry.js +39 -39
  246. package/dist/cjs/ion-picker-column.cjs.entry.js +421 -409
  247. package/dist/cjs/ion-picker.cjs.entry.js +405 -400
  248. package/dist/cjs/ion-popover.cjs.entry.js +323 -211
  249. package/dist/cjs/ion-progress-bar.cjs.entry.js +35 -47
  250. package/dist/cjs/ion-radio_2.cjs.entry.js +216 -161
  251. package/dist/cjs/ion-range.cjs.entry.js +307 -249
  252. package/dist/cjs/ion-refresher_2.cjs.entry.js +174 -121
  253. package/dist/cjs/ion-reorder_2.cjs.entry.js +59 -53
  254. package/dist/cjs/ion-ripple-effect.cjs.entry.js +18 -26
  255. package/dist/cjs/ion-route_4.cjs.entry.js +178 -75
  256. package/dist/cjs/ion-searchbar.cjs.entry.js +308 -331
  257. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  258. package/dist/cjs/ion-segment-view.cjs.entry.js +28 -27
  259. package/dist/cjs/ion-segment_2.cjs.entry.js +177 -141
  260. package/dist/cjs/ion-select-modal.cjs.entry.js +49 -69
  261. package/dist/cjs/ion-select_3.cjs.entry.js +481 -385
  262. package/dist/cjs/ion-spinner.cjs.entry.js +28 -36
  263. package/dist/cjs/ion-split-pane.cjs.entry.js +34 -25
  264. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +116 -179
  265. package/dist/cjs/ion-tab_2.cjs.entry.js +54 -29
  266. package/dist/cjs/ion-text.cjs.entry.js +13 -7
  267. package/dist/cjs/ion-textarea.cjs.entry.js +274 -269
  268. package/dist/cjs/ion-toast.cjs.entry.js +264 -169
  269. package/dist/cjs/ion-toggle.cjs.entry.js +184 -187
  270. package/dist/cjs/ionic-global-dMut1Czp.js +156 -0
  271. package/dist/cjs/ionic.cjs.js +4 -4
  272. package/dist/cjs/{ios.transition-DpFQfFfT.js → ios.transition-CeaFa0y2.js} +14 -20
  273. package/dist/cjs/{item-multiple-inputs-BG9f5_eV.js → item-multiple-inputs-HQO5Iy9I.js} +1 -1
  274. package/dist/cjs/{keyboard-faZBQysj.js → keyboard-Cix5TVkD.js} +4 -5
  275. package/dist/cjs/{keyboard-Bn0Ppim6.js → keyboard-cHxZlTyz.js} +3 -3
  276. package/dist/cjs/keyboard-controller-PtZoN2GS.js +167 -0
  277. package/dist/cjs/loader.cjs.js +4 -4
  278. package/dist/cjs/{md.transition-ChJcoZUH.js → md.transition-D4Q5jny7.js} +8 -10
  279. package/dist/cjs/{notch-controller-BO0UGB4F.js → notch-controller-fMfidI-7.js} +4 -4
  280. package/dist/cjs/{overlay-control-label-DnRLQR1t.js → overlay-control-label-D2sdL2O8.js} +11 -13
  281. package/dist/cjs/{overlays-CFGbPUmE.js → overlays-C2qrqpHm.js} +60 -336
  282. package/dist/cjs/{select-option-render-DqBHEjDn.js → select-option-render-Dh16lTnA.js} +3 -4
  283. package/dist/cjs/{status-tap-x2qDo5QR.js → status-tap-CgjQ-6jq.js} +3 -4
  284. package/dist/cjs/{swipe-back-CvZt_4YX.js → swipe-back-CmfRYdWQ.js} +5 -6
  285. package/dist/cjs/{theme-IlOsGAz7.js → theme-Bw0rpaNN.js} +7 -26
  286. package/dist/cjs/validity-BpS37YFM.js +19 -0
  287. package/dist/collection/collection-manifest.json +1 -13
  288. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  289. package/dist/collection/components/accordion/accordion.js +327 -338
  290. package/dist/collection/components/accordion/accordion.md.css +59 -67
  291. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  292. package/dist/collection/components/accordion-group/accordion-group.js +56 -69
  293. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  294. package/dist/collection/components/action-sheet/action-sheet.ios.css +54 -184
  295. package/dist/collection/components/action-sheet/action-sheet.js +166 -76
  296. package/dist/collection/components/action-sheet/action-sheet.md.css +55 -179
  297. package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
  298. package/dist/collection/components/alert/alert.ios.css +54 -247
  299. package/dist/collection/components/alert/alert.js +236 -113
  300. package/dist/collection/components/alert/alert.md.css +56 -243
  301. package/dist/collection/components/app/app.js +86 -15
  302. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  303. package/dist/collection/components/avatar/avatar.js +4 -120
  304. package/dist/collection/components/avatar/avatar.md.css +0 -51
  305. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  306. package/dist/collection/components/back-button/back-button.js +61 -46
  307. package/dist/collection/components/back-button/back-button.md.css +48 -60
  308. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  309. package/dist/collection/components/backdrop/backdrop.js +22 -26
  310. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  311. package/dist/collection/components/badge/badge.ios.css +12 -137
  312. package/dist/collection/components/badge/badge.js +15 -145
  313. package/dist/collection/components/badge/badge.md.css +12 -122
  314. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  315. package/dist/collection/components/breadcrumb/breadcrumb.js +101 -72
  316. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  317. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  318. package/dist/collection/components/breadcrumbs/breadcrumbs.js +112 -99
  319. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  320. package/dist/collection/components/button/button.ios.css +46 -154
  321. package/dist/collection/components/button/button.js +157 -122
  322. package/dist/collection/components/button/button.md.css +50 -150
  323. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  324. package/dist/collection/components/buttons/buttons.js +21 -29
  325. package/dist/collection/components/buttons/buttons.md.css +3 -55
  326. package/dist/collection/components/card/card.ios.css +14 -65
  327. package/dist/collection/components/card/card.js +63 -61
  328. package/dist/collection/components/card/card.md.css +14 -65
  329. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  330. package/dist/collection/components/card-content/card-content.js +10 -12
  331. package/dist/collection/components/card-content/card-content.md.css +35 -20
  332. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  333. package/dist/collection/components/card-header/card-header.js +21 -20
  334. package/dist/collection/components/card-header/card-header.md.css +15 -27
  335. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  336. package/dist/collection/components/card-subtitle/card-subtitle.js +14 -11
  337. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  338. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  339. package/dist/collection/components/card-title/card-title.js +14 -11
  340. package/dist/collection/components/card-title/card-title.md.css +0 -73
  341. package/dist/collection/components/checkbox/checkbox.ios.css +117 -242
  342. package/dist/collection/components/checkbox/checkbox.js +160 -165
  343. package/dist/collection/components/checkbox/checkbox.md.css +118 -243
  344. package/dist/collection/components/chip/chip.ios.css +14 -67
  345. package/dist/collection/components/chip/chip.js +20 -116
  346. package/dist/collection/components/chip/chip.md.css +14 -67
  347. package/dist/collection/components/col/col.css +4 -192
  348. package/dist/collection/components/col/col.js +186 -212
  349. package/dist/collection/components/content/content.css +2 -47
  350. package/dist/collection/components/content/content.js +101 -78
  351. package/dist/collection/components/datetime/datetime.ios.css +148 -304
  352. package/dist/collection/components/datetime/datetime.js +1064 -906
  353. package/dist/collection/components/datetime/datetime.md.css +138 -294
  354. package/dist/collection/components/datetime/utils/data.js +18 -19
  355. package/dist/collection/components/datetime/utils/format.js +21 -11
  356. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  357. package/dist/collection/components/datetime/utils/parse.js +10 -10
  358. package/dist/collection/components/datetime/utils/state.js +8 -2
  359. package/dist/collection/components/datetime/utils/validate.js +4 -5
  360. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -6
  361. package/dist/collection/components/datetime-button/datetime-button.js +253 -246
  362. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -6
  363. package/dist/collection/components/fab/fab.css +1 -25
  364. package/dist/collection/components/fab/fab.js +25 -22
  365. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  366. package/dist/collection/components/fab-button/fab-button.js +117 -83
  367. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  368. package/dist/collection/components/fab-list/fab-list.css +0 -12
  369. package/dist/collection/components/fab-list/fab-list.js +15 -20
  370. package/dist/collection/components/footer/footer.ios.css +6 -33
  371. package/dist/collection/components/footer/footer.js +65 -151
  372. package/dist/collection/components/footer/footer.md.css +0 -40
  373. package/dist/collection/components/grid/grid.css +0 -12
  374. package/dist/collection/components/grid/grid.js +9 -15
  375. package/dist/collection/components/header/header.ios.css +133 -178
  376. package/dist/collection/components/header/header.js +70 -202
  377. package/dist/collection/components/header/header.md.css +9 -199
  378. package/dist/collection/components/header/header.utils.js +13 -6
  379. package/dist/collection/components/img/img.js +34 -16
  380. package/dist/collection/components/infinite-scroll/infinite-scroll.js +76 -164
  381. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  382. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +30 -19
  383. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  384. package/dist/collection/components/input/input.ios.css +135 -223
  385. package/dist/collection/components/input/input.js +339 -307
  386. package/dist/collection/components/input/input.md.css +207 -193
  387. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  388. package/dist/collection/components/input-otp/input-otp.js +432 -437
  389. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  390. package/dist/collection/components/input-password-toggle/input-password-toggle.js +37 -60
  391. package/dist/collection/components/item/item.ios.css +80 -120
  392. package/dist/collection/components/item/item.js +113 -102
  393. package/dist/collection/components/item/item.md.css +79 -131
  394. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  395. package/dist/collection/components/item-divider/item-divider.js +23 -21
  396. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  397. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  398. package/dist/collection/components/item-group/item-group.js +7 -13
  399. package/dist/collection/components/item-group/item-group.md.css +0 -12
  400. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  401. package/dist/collection/components/item-option/item-option.js +56 -92
  402. package/dist/collection/components/item-option/item-option.md.css +29 -136
  403. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  404. package/dist/collection/components/item-options/item-options.js +17 -20
  405. package/dist/collection/components/item-options/item-options.md.css +34 -77
  406. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  407. package/dist/collection/components/item-sliding/item-sliding.js +61 -441
  408. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  409. package/dist/collection/components/label/label.ios.css +0 -18
  410. package/dist/collection/components/label/label.js +32 -15
  411. package/dist/collection/components/label/label.md.css +0 -18
  412. package/dist/collection/components/list/list.ios.css +14 -54
  413. package/dist/collection/components/list/list.js +19 -55
  414. package/dist/collection/components/list/list.md.css +16 -56
  415. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  416. package/dist/collection/components/list-header/list-header.js +18 -11
  417. package/dist/collection/components/list-header/list-header.md.css +38 -82
  418. package/dist/collection/components/loading/loading.ios.css +1 -13
  419. package/dist/collection/components/loading/loading.js +143 -62
  420. package/dist/collection/components/loading/loading.md.css +1 -13
  421. package/dist/collection/components/menu/menu.ios.css +3 -15
  422. package/dist/collection/components/menu/menu.js +108 -71
  423. package/dist/collection/components/menu/menu.md.css +3 -15
  424. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  425. package/dist/collection/components/menu-button/menu-button.js +38 -45
  426. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  427. package/dist/collection/components/menu-toggle/menu-toggle.js +25 -21
  428. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  429. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  430. package/dist/collection/components/modal/animations/sheet.js +2 -8
  431. package/dist/collection/components/modal/gestures/sheet.js +16 -83
  432. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -2
  433. package/dist/collection/components/modal/modal.ios.css +70 -178
  434. package/dist/collection/components/modal/modal.js +399 -268
  435. package/dist/collection/components/modal/modal.md.css +70 -178
  436. package/dist/collection/components/modal/safe-area-utils.js +4 -5
  437. package/dist/collection/components/modal/test/fixtures.js +3 -0
  438. package/dist/collection/components/nav/nav.css +1 -7
  439. package/dist/collection/components/nav/nav.js +72 -256
  440. package/dist/collection/components/nav/view-controller.js +7 -1
  441. package/dist/collection/components/nav-link/nav-link.js +21 -14
  442. package/dist/collection/components/note/note.ios.css +0 -12
  443. package/dist/collection/components/note/note.js +14 -11
  444. package/dist/collection/components/note/note.md.css +0 -12
  445. package/dist/collection/components/picker/picker.ios.css +3 -15
  446. package/dist/collection/components/picker/picker.js +403 -398
  447. package/dist/collection/components/picker/picker.md.css +3 -15
  448. package/dist/collection/components/picker-column/picker-column.css +5 -9
  449. package/dist/collection/components/picker-column/picker-column.js +418 -409
  450. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  451. package/dist/collection/components/picker-column-option/picker-column-option.js +38 -42
  452. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -7
  453. package/dist/collection/components/popover/animations/ios.enter.js +1 -2
  454. package/dist/collection/components/popover/animations/md.enter.js +1 -2
  455. package/dist/collection/components/popover/popover.ios.css +2 -15
  456. package/dist/collection/components/popover/popover.js +313 -199
  457. package/dist/collection/components/popover/popover.md.css +2 -15
  458. package/dist/collection/components/popover/test/fixture.js +1 -0
  459. package/dist/collection/components/popover/utils.js +4 -6
  460. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  461. package/dist/collection/components/progress-bar/progress-bar.js +33 -65
  462. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  463. package/dist/collection/components/radio/radio.ios.css +102 -207
  464. package/dist/collection/components/radio/radio.js +108 -77
  465. package/dist/collection/components/radio/radio.md.css +102 -207
  466. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  467. package/dist/collection/components/radio-group/radio-group.js +107 -113
  468. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  469. package/dist/collection/components/radio-group/test/fixtures.js +2 -0
  470. package/dist/collection/components/range/range.ios.css +85 -128
  471. package/dist/collection/components/range/range.js +303 -245
  472. package/dist/collection/components/range/range.md.css +85 -128
  473. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  474. package/dist/collection/components/refresher/refresher.js +117 -88
  475. package/dist/collection/components/refresher/refresher.md.css +2 -15
  476. package/dist/collection/components/refresher-content/refresher-content.js +47 -31
  477. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  478. package/dist/collection/components/reorder/reorder.js +7 -33
  479. package/dist/collection/components/reorder/reorder.md.css +0 -6
  480. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  481. package/dist/collection/components/reorder-group/reorder-group.js +47 -22
  482. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  483. package/dist/collection/components/ripple-effect/ripple-effect.js +17 -26
  484. package/dist/collection/components/route/route.js +39 -14
  485. package/dist/collection/components/route-redirect/route-redirect.js +31 -0
  486. package/dist/collection/components/router/router.js +37 -37
  487. package/dist/collection/components/router/utils/dom.js +25 -7
  488. package/dist/collection/components/router/utils/matching.js +7 -9
  489. package/dist/collection/components/router/utils/parser.js +1 -1
  490. package/dist/collection/components/router/utils/path.js +0 -1
  491. package/dist/collection/components/router-link/router-link.css +2 -8
  492. package/dist/collection/components/router-link/router-link.js +40 -19
  493. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  494. package/dist/collection/components/router-outlet/router-outlet.js +83 -25
  495. package/dist/collection/components/row/row.css +0 -16
  496. package/dist/collection/components/row/row.js +2 -9
  497. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  498. package/dist/collection/components/searchbar/searchbar.js +321 -380
  499. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  500. package/dist/collection/components/segment/segment.ios.css +2 -45
  501. package/dist/collection/components/segment/segment.js +126 -94
  502. package/dist/collection/components/segment/segment.md.css +2 -45
  503. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  504. package/dist/collection/components/segment-button/segment-button.js +49 -46
  505. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  506. package/dist/collection/components/segment-content/segment-content.js +1 -1
  507. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  508. package/dist/collection/components/segment-view/segment-view.js +28 -27
  509. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  510. package/dist/collection/components/select/select.ios.css +177 -316
  511. package/dist/collection/components/select/select.js +401 -399
  512. package/dist/collection/components/select/select.md.css +179 -332
  513. package/dist/collection/components/select-modal/select-modal.ios.css +45 -293
  514. package/dist/collection/components/select-modal/select-modal.js +37 -79
  515. package/dist/collection/components/select-modal/select-modal.md.css +43 -273
  516. package/dist/collection/components/select-modal/test/fixtures.js +8 -1
  517. package/dist/collection/components/select-option/select-option.js +48 -15
  518. package/dist/collection/components/select-popover/select-popover.ios.css +124 -188
  519. package/dist/collection/components/select-popover/select-popover.js +44 -37
  520. package/dist/collection/components/select-popover/select-popover.md.css +47 -228
  521. package/dist/collection/components/select-popover/test/fixtures.js +8 -1
  522. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  523. package/dist/collection/components/skeleton-text/skeleton-text.js +15 -15
  524. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  525. package/dist/collection/components/spinner/spinner.js +26 -55
  526. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  527. package/dist/collection/components/split-pane/split-pane.js +33 -28
  528. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  529. package/dist/collection/components/tab/tab.js +17 -10
  530. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  531. package/dist/collection/components/tab-bar/tab-bar.js +44 -190
  532. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  533. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  534. package/dist/collection/components/tab-button/tab-button.js +68 -74
  535. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  536. package/dist/collection/components/tabs/tabs.css +1 -7
  537. package/dist/collection/components/tabs/tabs.js +33 -23
  538. package/dist/collection/components/text/text.css +0 -6
  539. package/dist/collection/components/text/text.js +12 -7
  540. package/dist/collection/components/textarea/textarea.ios.css +158 -298
  541. package/dist/collection/components/textarea/textarea.js +275 -295
  542. package/dist/collection/components/textarea/textarea.md.css +159 -312
  543. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  544. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  545. package/dist/collection/components/title/title.ios.css +4 -32
  546. package/dist/collection/components/title/title.js +23 -13
  547. package/dist/collection/components/title/title.md.css +4 -39
  548. package/dist/collection/components/toast/animations/utils.js +1 -1
  549. package/dist/collection/components/toast/toast.ios.css +45 -84
  550. package/dist/collection/components/toast/toast.js +232 -178
  551. package/dist/collection/components/toast/toast.md.css +45 -84
  552. package/dist/collection/components/toggle/toggle.ios.css +127 -247
  553. package/dist/collection/components/toggle/toggle.js +175 -177
  554. package/dist/collection/components/toggle/toggle.md.css +127 -245
  555. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  556. package/dist/collection/components/toolbar/toolbar.js +25 -222
  557. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  558. package/dist/collection/global/config.js +4 -6
  559. package/dist/collection/global/ionic-global.js +20 -242
  560. package/dist/collection/index.js +1 -1
  561. package/dist/collection/utils/animation/animation.js +3 -3
  562. package/dist/collection/utils/config.js +5 -4
  563. package/dist/collection/utils/focus-controller/index.js +1 -1
  564. package/dist/collection/utils/focus-trap.js +5 -16
  565. package/dist/collection/utils/focus-visible.js +0 -22
  566. package/dist/collection/utils/forms/index.js +0 -1
  567. package/dist/collection/utils/forms/validity.js +0 -31
  568. package/dist/collection/utils/framework-delegate.js +5 -9
  569. package/dist/collection/utils/gesture/gesture-controller.js +15 -8
  570. package/dist/collection/utils/gesture/index.js +10 -2
  571. package/dist/collection/utils/gesture/listener.js +1 -1
  572. package/dist/collection/utils/hardware-back-button.js +3 -18
  573. package/dist/collection/utils/helpers.js +5 -72
  574. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
  575. package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
  576. package/dist/collection/utils/keyboard/keyboard-controller.js +6 -8
  577. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  578. package/dist/collection/utils/media.js +0 -1
  579. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  580. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  581. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  582. package/dist/collection/utils/menu-controller/index.js +1 -2
  583. package/dist/collection/utils/native/haptic.js +2 -3
  584. package/dist/collection/utils/native/keyboard.js +2 -2
  585. package/dist/collection/utils/native/status-bar.js +1 -1
  586. package/dist/collection/utils/overlay-control-label.js +11 -13
  587. package/dist/collection/utils/overlays.js +45 -312
  588. package/dist/collection/utils/platform.js +4 -5
  589. package/dist/collection/utils/rtl/dir.js +1 -1
  590. package/dist/collection/utils/sanitization/index.js +2 -2
  591. package/dist/collection/utils/select-option-render.js +1 -2
  592. package/dist/collection/utils/slot-mutation-controller.js +1 -2
  593. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  594. package/dist/collection/utils/test/playwright/drag-element.js +11 -35
  595. package/dist/collection/utils/test/playwright/generator.js +25 -51
  596. package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
  597. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -15
  598. package/dist/collection/utils/test/playwright/page/utils/set-content.js +4 -27
  599. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
  600. package/dist/collection/utils/test/press-keys.js +10 -17
  601. package/dist/collection/utils/theme.js +7 -26
  602. package/dist/collection/utils/transition/ios.transition.js +9 -14
  603. package/dist/collection/utils/transition/md.transition.js +3 -4
  604. package/dist/docs.json +502 -10022
  605. package/dist/esm/{animation-B2qdQ_ou.js → animation-CVK55yMY.js} +5 -5
  606. package/dist/esm/{app-globals-DZ-iIjxA.js → app-globals-Bk1_t4sH.js} +1 -1
  607. package/dist/esm/{button-active-BmajAby6.js → button-active-CdCqmeT0.js} +3 -3
  608. package/dist/esm/{capacitor-CtQSWUU0.js → capacitor-CFERIeaU.js} +1 -1
  609. package/dist/esm/{config-BwKpO3Is.js → config-DWCzVL3Y.js} +5 -4
  610. package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
  611. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  612. package/dist/esm/{format-2WlZcMvG.js → format-sMi4BZ_l.js} +41 -31
  613. package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate-BfAlKlW5.js} +6 -10
  614. package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
  615. package/dist/esm/{haptic-DFgKNCce.js → haptic-Cq4UAeka.js} +3 -4
  616. package/dist/esm/hardware-back-button-DcHMMB9j.js +115 -0
  617. package/dist/esm/{helpers-DfF5_wJc.js → helpers-BPcITY5s.js} +7 -73
  618. package/dist/esm/{index-BjaaZqVY.js → index-B9GsUd2c.js} +3 -4
  619. package/dist/esm/{index-B4Kq2YNk.js → index-BvabGprD.js} +1 -2
  620. package/dist/esm/{index-C0EQceqV.js → index-D1CQtpUN.js} +9 -48
  621. package/dist/esm/{index-Mq5pCWmZ.js → index-DDa8edAS.js} +3 -3
  622. package/dist/esm/{index-KxK0gcRp.js → index-DcUt1pPn.js} +2 -2
  623. package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
  624. package/dist/esm/{index-BIUWGRUl.js → index-DqVqy_Cy.js} +5 -5
  625. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  626. package/dist/esm/{index-Di034G4O.js → index-ks-BjikL.js} +12 -13
  627. package/dist/esm/index.js +17 -16
  628. package/dist/esm/{input-shims-DvNNw70a.js → input-shims-C1dCKVMO.js} +11 -14
  629. package/dist/esm/{input.utils-_LkBfBWt.js → input.utils-Dd5xwlP6.js} +4 -5
  630. package/dist/esm/ion-accordion_2.entry.js +378 -382
  631. package/dist/esm/ion-action-sheet.entry.js +178 -86
  632. package/dist/esm/ion-alert.entry.js +250 -125
  633. package/dist/esm/ion-app_8.entry.js +459 -607
  634. package/dist/esm/ion-avatar_3.entry.js +19 -125
  635. package/dist/esm/ion-back-button.entry.js +64 -49
  636. package/dist/esm/ion-backdrop.entry.js +23 -22
  637. package/dist/esm/ion-breadcrumb_2.entry.js +211 -169
  638. package/dist/esm/ion-button_2.entry.js +152 -117
  639. package/dist/esm/ion-card_5.entry.js +109 -79
  640. package/dist/esm/ion-checkbox.entry.js +163 -129
  641. package/dist/esm/ion-chip.entry.js +21 -56
  642. package/dist/esm/ion-col_3.entry.js +186 -61
  643. package/dist/esm/ion-datetime-button.entry.js +255 -247
  644. package/dist/esm/ion-datetime.entry.js +2765 -0
  645. package/dist/esm/ion-fab_3.entry.js +154 -112
  646. package/dist/esm/ion-img.entry.js +34 -16
  647. package/dist/esm/ion-infinite-scroll_2.entry.js +108 -156
  648. package/dist/esm/ion-input-otp.entry.js +435 -437
  649. package/dist/esm/ion-input-password-toggle.entry.js +40 -64
  650. package/dist/esm/ion-input.entry.js +330 -276
  651. package/dist/esm/ion-item-option_3.entry.js +136 -511
  652. package/dist/esm/ion-item_8.entry.js +217 -189
  653. package/dist/esm/ion-loading.entry.js +151 -68
  654. package/dist/esm/ion-menu_3.entry.js +181 -137
  655. package/dist/esm/ion-modal.entry.js +491 -448
  656. package/dist/esm/ion-nav_2.entry.js +103 -163
  657. package/dist/esm/ion-picker-column-option.entry.js +39 -39
  658. package/dist/esm/ion-picker-column.entry.js +421 -409
  659. package/dist/esm/ion-picker.entry.js +405 -400
  660. package/dist/esm/ion-popover.entry.js +323 -211
  661. package/dist/esm/ion-progress-bar.entry.js +35 -47
  662. package/dist/esm/ion-radio_2.entry.js +216 -161
  663. package/dist/esm/ion-range.entry.js +307 -249
  664. package/dist/esm/ion-refresher_2.entry.js +174 -121
  665. package/dist/esm/ion-reorder_2.entry.js +59 -53
  666. package/dist/esm/ion-ripple-effect.entry.js +18 -26
  667. package/dist/esm/ion-route_4.entry.js +178 -75
  668. package/dist/esm/ion-searchbar.entry.js +308 -331
  669. package/dist/esm/ion-segment-content.entry.js +2 -2
  670. package/dist/esm/ion-segment-view.entry.js +28 -27
  671. package/dist/esm/ion-segment_2.entry.js +177 -141
  672. package/dist/esm/ion-select-modal.entry.js +49 -69
  673. package/dist/esm/ion-select_3.entry.js +482 -386
  674. package/dist/esm/ion-spinner.entry.js +28 -36
  675. package/dist/esm/ion-split-pane.entry.js +34 -25
  676. package/dist/esm/ion-tab-bar_2.entry.js +115 -178
  677. package/dist/esm/ion-tab_2.entry.js +54 -29
  678. package/dist/esm/ion-text.entry.js +13 -7
  679. package/dist/esm/ion-textarea.entry.js +274 -269
  680. package/dist/esm/ion-toast.entry.js +243 -148
  681. package/dist/esm/ion-toggle.entry.js +184 -187
  682. package/dist/esm/ionic-global-5bZ91kOL.js +151 -0
  683. package/dist/esm/ionic.js +5 -5
  684. package/dist/esm/{ios.transition-CgScDbsb.js → ios.transition-OcwIGkv9.js} +14 -20
  685. package/dist/esm/{item-multiple-inputs-C6onMFOo.js → item-multiple-inputs-ifd3ZrqY.js} +1 -1
  686. package/dist/esm/{keyboard-WJix-wcz.js → keyboard-Cj8mLJeq.js} +4 -5
  687. package/dist/esm/{keyboard-CyyguLDw.js → keyboard-DAF8GNJ9.js} +3 -3
  688. package/dist/esm/keyboard-controller-DEwoa1ev.js +165 -0
  689. package/dist/esm/loader.js +5 -5
  690. package/dist/esm/{md.transition-DThqYazt.js → md.transition-BetdF0bc.js} +8 -10
  691. package/dist/esm/{notch-controller-MTblRxjD.js → notch-controller-DBSn-Uat.js} +2 -2
  692. package/dist/esm/{overlay-control-label-CODBQrPj.js → overlay-control-label-BSQPZ79H.js} +11 -13
  693. package/dist/esm/{overlays-tv6nLsmk.js → overlays-DUzb9CQf.js} +57 -333
  694. package/dist/esm/{select-option-render-BlKZ2H83.js → select-option-render-DsW8svRr.js} +3 -4
  695. package/dist/esm/{status-tap-CoPI1M2q.js → status-tap-C-wNhea0.js} +3 -4
  696. package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-D6YSgAn7.js} +5 -6
  697. package/dist/esm/theme-byZM6qHV.js +48 -0
  698. package/dist/esm/validity-DJztqcrH.js +17 -0
  699. package/dist/html.html-data.json +146 -2713
  700. package/dist/ionic/index.esm.js +1 -1
  701. package/dist/ionic/ionic.esm.js +1 -1
  702. package/dist/ionic/p-01eaee58.entry.js +4 -0
  703. package/dist/ionic/p-0c567140.entry.js +4 -0
  704. package/dist/ionic/p-105bb794.entry.js +4 -0
  705. package/dist/ionic/p-10d55bb6.entry.js +4 -0
  706. package/dist/ionic/p-173a87d8.entry.js +4 -0
  707. package/dist/ionic/p-178da672.entry.js +4 -0
  708. package/dist/ionic/p-1ead2857.entry.js +4 -0
  709. package/dist/ionic/p-224e2464.entry.js +4 -0
  710. package/dist/ionic/p-2268e718.entry.js +4 -0
  711. package/dist/ionic/p-2b5283f3.entry.js +4 -0
  712. package/dist/ionic/p-2b6decac.entry.js +4 -0
  713. package/dist/ionic/p-2da5d9c6.entry.js +4 -0
  714. package/dist/ionic/p-31890acd.entry.js +4 -0
  715. package/dist/ionic/p-34ef7425.entry.js +4 -0
  716. package/dist/ionic/p-34f7c1d8.entry.js +4 -0
  717. package/dist/ionic/p-3b1e6fa4.entry.js +4 -0
  718. package/dist/ionic/p-42fefd2c.entry.js +4 -0
  719. package/dist/ionic/p-440cd489.entry.js +4 -0
  720. package/dist/ionic/p-460da491.entry.js +4 -0
  721. package/dist/ionic/p-53f680e8.entry.js +4 -0
  722. package/dist/ionic/p-57ba508f.entry.js +4 -0
  723. package/dist/ionic/p-599e5a75.entry.js +4 -0
  724. package/dist/ionic/p-5f670a9e.entry.js +4 -0
  725. package/dist/ionic/p-63502088.entry.js +4 -0
  726. package/dist/ionic/p-6e6bf45d.entry.js +4 -0
  727. package/dist/ionic/p-6f0b6a48.entry.js +4 -0
  728. package/dist/ionic/p-7438c462.entry.js +4 -0
  729. package/dist/ionic/p-747716e7.entry.js +4 -0
  730. package/dist/ionic/p-7759fcaf.entry.js +4 -0
  731. package/dist/ionic/p-7a8338e2.entry.js +4 -0
  732. package/dist/ionic/p-80f9f1dc.entry.js +4 -0
  733. package/dist/ionic/p-83ff4dcb.entry.js +4 -0
  734. package/dist/ionic/p-86f03895.entry.js +4 -0
  735. package/dist/ionic/p-87b8d70e.entry.js +4 -0
  736. package/dist/ionic/p-888236bf.entry.js +4 -0
  737. package/dist/ionic/p-8a92ca23.entry.js +4 -0
  738. package/dist/ionic/p-8c9af4ad.entry.js +4 -0
  739. package/dist/ionic/p-9669f546.entry.js +4 -0
  740. package/dist/ionic/p-9bcd8b74.entry.js +4 -0
  741. package/dist/ionic/p-B-FxiyeI.js +4 -0
  742. package/dist/ionic/p-B2trYd8K.js +4 -0
  743. package/dist/ionic/p-BMPN55of.js +4 -0
  744. package/dist/ionic/p-BNKr91bi.js +4 -0
  745. package/dist/ionic/p-BSQPZ79H.js +4 -0
  746. package/dist/ionic/p-BSzG1VcX.js +4 -0
  747. package/dist/ionic/p-BVgBHS96.js +4 -0
  748. package/dist/ionic/p-BX2IOAqC.js +4 -0
  749. package/dist/ionic/p-BhamHSw3.js +4 -0
  750. package/dist/ionic/p-BmVRXR1y.js +4 -0
  751. package/dist/ionic/p-BufXJ_A8.js +4 -0
  752. package/dist/ionic/p-BvabGprD.js +4 -0
  753. package/dist/ionic/p-C73UOs4m.js +4 -0
  754. package/dist/ionic/p-CHpEzg-o.js +4 -0
  755. package/dist/ionic/p-CIGNaXM1.js +4 -0
  756. package/{components/p-r_CFQBc1.js → dist/ionic/p-CUSwMljM.js} +1 -1
  757. package/dist/ionic/p-CeOSrSdu.js +4 -0
  758. package/dist/ionic/p-CfkB7_FV.js +4 -0
  759. package/dist/ionic/p-CmKf4pgI.js +4 -0
  760. package/dist/ionic/p-CnM-CMw7.js +4 -0
  761. package/dist/ionic/p-D1CQtpUN.js +5 -0
  762. package/dist/ionic/p-D5t_-oMk.js +4 -0
  763. package/dist/ionic/p-DJztqcrH.js +4 -0
  764. package/dist/ionic/p-DVYb1IVZ.js +4 -0
  765. package/dist/ionic/p-DWCzVL3Y.js +4 -0
  766. package/dist/ionic/p-DfJ-SVJf.js +4 -0
  767. package/dist/ionic/p-DmXrLsoD.js +4 -0
  768. package/dist/ionic/p-DtLHAMFW.js +4 -0
  769. package/dist/ionic/p-Dtlob2JL.js +4 -0
  770. package/dist/ionic/p-F7ipfyOA.js +4 -0
  771. package/dist/ionic/p-I9ETXg5W.js +4 -0
  772. package/dist/ionic/{p-oUgyLDGL.js → p-IaXd5VMv.js} +1 -1
  773. package/dist/ionic/p-T71k3C35.js +4 -0
  774. package/dist/ionic/p-TXPDHL13.js +4 -0
  775. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  776. package/dist/ionic/{p-Cipl19Qe.js → p-aL0G45tD.js} +1 -1
  777. package/dist/ionic/p-acbb97c3.entry.js +4 -0
  778. package/dist/ionic/p-aeb85531.entry.js +4 -0
  779. package/dist/ionic/p-b157f80d.entry.js +4 -0
  780. package/dist/ionic/p-b158de5d.entry.js +4 -0
  781. package/dist/ionic/p-b40c9715.entry.js +4 -0
  782. package/dist/ionic/p-b852101e.entry.js +4 -0
  783. package/dist/ionic/p-byZM6qHV.js +4 -0
  784. package/dist/ionic/p-c0d81bee.entry.js +4 -0
  785. package/dist/ionic/p-c8a327fb.entry.js +4 -0
  786. package/dist/ionic/p-d42ae99f.entry.js +4 -0
  787. package/dist/ionic/p-d47ff529.entry.js +4 -0
  788. package/dist/ionic/p-eHi73fGE.js +4 -0
  789. package/dist/ionic/p-eeabce92.entry.js +4 -0
  790. package/dist/ionic/p-efc66d77.entry.js +4 -0
  791. package/dist/ionic/p-f6d203dc.entry.js +4 -0
  792. package/dist/ionic/p-u2a770LZ.js +4 -0
  793. package/dist/types/components/accordion/accordion.d.ts +3 -6
  794. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  795. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  796. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  797. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  798. package/dist/types/components/alert/alert.d.ts +2 -3
  799. package/dist/types/components/app/app.d.ts +5 -4
  800. package/dist/types/components/avatar/avatar.d.ts +0 -32
  801. package/dist/types/components/back-button/back-button.d.ts +1 -2
  802. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  803. package/dist/types/components/badge/badge.d.ts +1 -34
  804. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  805. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  806. package/dist/types/components/button/button.d.ts +8 -23
  807. package/dist/types/components/buttons/buttons.d.ts +1 -5
  808. package/dist/types/components/card/card.d.ts +1 -8
  809. package/dist/types/components/card-content/card-content.d.ts +1 -2
  810. package/dist/types/components/card-header/card-header.d.ts +2 -3
  811. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  812. package/dist/types/components/card-title/card-title.d.ts +1 -2
  813. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  814. package/dist/types/components/chip/chip.d.ts +1 -26
  815. package/dist/types/components/col/col.d.ts +5 -52
  816. package/dist/types/components/content/content.d.ts +0 -3
  817. package/dist/types/components/datetime/datetime.d.ts +1 -26
  818. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  819. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  820. package/dist/types/components/fab/fab.d.ts +0 -4
  821. package/dist/types/components/fab-button/fab-button.d.ts +3 -5
  822. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  823. package/dist/types/components/footer/footer.d.ts +3 -20
  824. package/dist/types/components/grid/grid.d.ts +0 -4
  825. package/dist/types/components/header/header.d.ts +3 -26
  826. package/dist/types/components/header/header.utils.d.ts +5 -4
  827. package/dist/types/components/img/img.d.ts +1 -2
  828. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  829. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  830. package/dist/types/components/input/input.d.ts +6 -35
  831. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  832. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
  833. package/dist/types/components/item/item.d.ts +4 -11
  834. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  835. package/dist/types/components/item-group/item-group.d.ts +0 -4
  836. package/dist/types/components/item-option/item-option.d.ts +1 -18
  837. package/dist/types/components/item-options/item-options.d.ts +0 -4
  838. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  839. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  840. package/dist/types/components/label/label.d.ts +1 -2
  841. package/dist/types/components/list/list.d.ts +1 -15
  842. package/dist/types/components/list-header/list-header.d.ts +1 -2
  843. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  844. package/dist/types/components/loading/loading.d.ts +2 -3
  845. package/dist/types/components/menu/menu.d.ts +0 -3
  846. package/dist/types/components/menu-button/menu-button.d.ts +1 -3
  847. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  848. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  849. package/dist/types/components/modal/modal-interface.d.ts +7 -4
  850. package/dist/types/components/modal/modal.d.ts +12 -15
  851. package/dist/types/components/nav/nav-interface.d.ts +1 -10
  852. package/dist/types/components/nav/nav.d.ts +3 -27
  853. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  854. package/dist/types/components/note/note.d.ts +1 -2
  855. package/dist/types/components/picker/picker.d.ts +1 -2
  856. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  857. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  858. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  859. package/dist/types/components/popover/popover.d.ts +5 -6
  860. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  861. package/dist/types/components/radio/radio.d.ts +1 -2
  862. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  863. package/dist/types/components/range/range.d.ts +1 -2
  864. package/dist/types/components/refresher/refresher.d.ts +1 -2
  865. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
  866. package/dist/types/components/reorder/reorder.d.ts +0 -9
  867. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  868. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  869. package/dist/types/components/route/route.d.ts +1 -5
  870. package/dist/types/components/router/router.d.ts +0 -4
  871. package/dist/types/components/router-link/router-link.d.ts +0 -4
  872. package/dist/types/components/router-outlet/router-outlet.d.ts +8 -4
  873. package/dist/types/components/row/row.d.ts +0 -4
  874. package/dist/types/components/searchbar/searchbar.d.ts +11 -57
  875. package/dist/types/components/segment/segment.d.ts +1 -2
  876. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  877. package/dist/types/components/select/select.d.ts +14 -49
  878. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  879. package/dist/types/components/select-option/select-option.d.ts +4 -7
  880. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  881. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  882. package/dist/types/components/spinner/spinner.d.ts +0 -15
  883. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  884. package/dist/types/components/tab/tab.d.ts +0 -4
  885. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +0 -1
  886. package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
  887. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  888. package/dist/types/components/tabs/tabs.d.ts +0 -3
  889. package/dist/types/components/text/text.d.ts +1 -2
  890. package/dist/types/components/textarea/textarea.d.ts +4 -53
  891. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  892. package/dist/types/components/title/title.d.ts +0 -4
  893. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  894. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  895. package/dist/types/components/toast/toast.d.ts +2 -19
  896. package/dist/types/components/toggle/toggle.d.ts +1 -15
  897. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  898. package/dist/types/components.d.ts +263 -2171
  899. package/dist/types/global/ionic-global.d.ts +2 -28
  900. package/dist/types/index.d.ts +1 -1
  901. package/dist/types/interface.d.ts +0 -4
  902. package/dist/types/utils/config.d.ts +2 -114
  903. package/dist/types/utils/focus-trap.d.ts +1 -1
  904. package/dist/types/utils/focus-visible.d.ts +0 -13
  905. package/dist/types/utils/forms/index.d.ts +0 -1
  906. package/dist/types/utils/forms/validity.d.ts +0 -7
  907. package/dist/types/utils/helpers.d.ts +0 -22
  908. package/dist/types/utils/overlay-control-label.d.ts +9 -11
  909. package/dist/types/utils/overlays-interface.d.ts +1 -31
  910. package/dist/types/utils/overlays.d.ts +12 -10
  911. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  912. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  913. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  914. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  915. package/dist/types/utils/theme.d.ts +0 -9
  916. package/hydrate/index.js +10246 -12016
  917. package/hydrate/index.mjs +10246 -12016
  918. package/package.json +56 -17
  919. package/components/ion-divider.d.ts +0 -11
  920. package/components/ion-divider.js +0 -4
  921. package/components/ion-gallery-item.d.ts +0 -11
  922. package/components/ion-gallery-item.js +0 -4
  923. package/components/ion-gallery.d.ts +0 -11
  924. package/components/ion-gallery.js +0 -4
  925. package/components/ion-picker-legacy-column.d.ts +0 -11
  926. package/components/ion-picker-legacy-column.js +0 -4
  927. package/components/ion-picker-legacy.d.ts +0 -11
  928. package/components/ion-picker-legacy.js +0 -4
  929. package/components/p-3VXQGlP7.js +0 -4
  930. package/components/p-B5krYTuW.js +0 -4
  931. package/components/p-B6a9IJZ0.js +0 -4
  932. package/components/p-BArGQkuV.js +0 -4
  933. package/components/p-BDqjX7Z_.js +0 -4
  934. package/components/p-BE21dB_a.js +0 -4
  935. package/components/p-BG-Q139o.js +0 -4
  936. package/components/p-BPxMDyfV.js +0 -4
  937. package/components/p-BT8fsdEQ.js +0 -4
  938. package/components/p-BTEOs1at.js +0 -4
  939. package/components/p-BWH3I3Dl.js +0 -4
  940. package/components/p-BYSs-jZz.js +0 -4
  941. package/components/p-BbVhJs-a.js +0 -4
  942. package/components/p-Bc6odfwr.js +0 -4
  943. package/components/p-BjW8SOqw.js +0 -4
  944. package/components/p-BkWXBpOv.js +0 -4
  945. package/components/p-Bt9GDUv-.js +0 -4
  946. package/components/p-BvNVjXg4.js +0 -4
  947. package/components/p-BwKpO3Is.js +0 -4
  948. package/components/p-BwlU9cX_.js +0 -4
  949. package/components/p-Bz4JFPmj.js +0 -4
  950. package/components/p-C53feagD.js +0 -4
  951. package/components/p-CBxy8OYq.js +0 -4
  952. package/components/p-CGdeq57o.js +0 -4
  953. package/components/p-CHPdgLHZ.js +0 -4
  954. package/components/p-CMZlqiT7.js +0 -4
  955. package/components/p-CMzkbes2.js +0 -4
  956. package/components/p-CODBQrPj.js +0 -4
  957. package/components/p-COPA4jD9.js +0 -4
  958. package/components/p-CPnW-OVE.js +0 -4
  959. package/components/p-CRmBpp1v.js +0 -4
  960. package/components/p-CT3P-wjL.js +0 -4
  961. package/components/p-CVYFPBs-.js +0 -4
  962. package/components/p-Cc3oC60a.js +0 -4
  963. package/components/p-CjY4Hs1X.js +0 -4
  964. package/components/p-Cl0B-RWe.js +0 -4
  965. package/components/p-CrYjk-l3.js +0 -4
  966. package/components/p-CsUcWJuB.js +0 -4
  967. package/components/p-D0Iqw6OZ.js +0 -4
  968. package/components/p-D0fnq0lf.js +0 -4
  969. package/components/p-D1kNlmYt.js +0 -4
  970. package/components/p-D1t981Ih.js +0 -4
  971. package/components/p-D9C5yWpF.js +0 -4
  972. package/components/p-DDNG-IsR.js +0 -4
  973. package/components/p-DJSp7Si8.js +0 -4
  974. package/components/p-DL5wyRub.js +0 -4
  975. package/components/p-DXKZXLjV.js +0 -4
  976. package/components/p-DaJxRxSQ.js +0 -4
  977. package/components/p-Dhi5xtNS.js +0 -4
  978. package/components/p-Do8qRv6r.js +0 -4
  979. package/components/p-Dt--PjSF.js +0 -4
  980. package/components/p-DylrHLJF.js +0 -4
  981. package/components/p-FCT_QxQG.js +0 -4
  982. package/components/p-OCde3AhO.js +0 -4
  983. package/components/p-OPFCgx0m.js +0 -4
  984. package/components/p-PCVpe9Tq.js +0 -4
  985. package/components/p-Rkm2AOZ2.js +0 -4
  986. package/components/p-WSZErkoI.js +0 -4
  987. package/components/p-bHSMZulH.js +0 -4
  988. package/components/p-fIOYmaqA.js +0 -4
  989. package/components/p-hNcst9K9.js +0 -4
  990. package/components/p-hW_3y-wm.js +0 -4
  991. package/components/p-nLMDgmzd.js +0 -4
  992. package/components/p-oI96rnOD.js +0 -4
  993. package/components/p-vXpMhGrs.js +0 -4
  994. package/components/p-zBZRdRDd.js +0 -4
  995. package/css/ionic/bundle.ionic.css +0 -1
  996. package/css/ionic/bundle.ionic.css.map +0 -1
  997. package/css/ionic/core.ionic.css +0 -1
  998. package/css/ionic/core.ionic.css.map +0 -1
  999. package/css/ionic/global.bundle.ionic.css +0 -1
  1000. package/css/ionic/global.bundle.ionic.css.map +0 -1
  1001. package/css/ionic/ionic-swiper.ionic.css +0 -1
  1002. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  1003. package/css/ionic/link.ionic.css +0 -1
  1004. package/css/ionic/link.ionic.css.map +0 -1
  1005. package/css/ionic/structure.ionic.css +0 -1
  1006. package/css/ionic/structure.ionic.css.map +0 -1
  1007. package/css/ionic/typography.ionic.css +0 -1
  1008. package/css/ionic/typography.ionic.css.map +0 -1
  1009. package/css/ionic/utils.bundle.ionic.css +0 -1
  1010. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  1011. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  1012. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  1013. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  1014. package/dist/cjs/clear-button-press-controller-DGX8X5js.js +0 -45
  1015. package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3239
  1016. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  1017. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  1018. package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
  1019. package/dist/cjs/ionic-global-QoUqobrQ.js +0 -519
  1020. package/dist/cjs/list-a-7GSA6K.js +0 -8
  1021. package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +0 -345
  1022. package/dist/cjs/validity-QmuwEptc.js +0 -51
  1023. package/dist/cjs/x-BTF99yFH.js +0 -8
  1024. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  1025. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  1026. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -494
  1027. package/dist/collection/components/alert/alert.ionic.css +0 -787
  1028. package/dist/collection/components/avatar/avatar.ionic.css +0 -385
  1029. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  1030. package/dist/collection/components/badge/badge.ionic.css +0 -272
  1031. package/dist/collection/components/button/button.ionic.css +0 -644
  1032. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  1033. package/dist/collection/components/card/card.ionic.css +0 -144
  1034. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  1035. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  1036. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  1037. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -543
  1038. package/dist/collection/components/chip/chip.ionic.css +0 -217
  1039. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  1040. package/dist/collection/components/divider/divider.ionic.css +0 -148
  1041. package/dist/collection/components/divider/divider.ios.css +0 -87
  1042. package/dist/collection/components/divider/divider.js +0 -94
  1043. package/dist/collection/components/divider/divider.md.css +0 -87
  1044. package/dist/collection/components/footer/footer-interface.js +0 -1
  1045. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  1046. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  1047. package/dist/collection/components/gallery/gallery.css +0 -15
  1048. package/dist/collection/components/gallery/gallery.js +0 -679
  1049. package/dist/collection/components/gallery/test/utils.js +0 -100
  1050. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  1051. package/dist/collection/components/gallery-item/gallery-item.js +0 -99
  1052. package/dist/collection/components/header/header-interface.js +0 -1
  1053. package/dist/collection/components/header/header.ionic.css +0 -250
  1054. package/dist/collection/components/input/input.ionic.css +0 -891
  1055. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  1056. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  1057. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  1058. package/dist/collection/components/item/item.ionic.css +0 -496
  1059. package/dist/collection/components/item-option/item-option.ionic.css +0 -277
  1060. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  1061. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  1062. package/dist/collection/components/list/list.ionic.css +0 -212
  1063. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  1064. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  1065. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  1066. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  1067. package/dist/collection/components/modal/modal.ionic.css +0 -255
  1068. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  1069. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  1070. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  1071. package/dist/collection/components/picker-legacy/picker.ios.css +0 -312
  1072. package/dist/collection/components/picker-legacy/picker.js +0 -891
  1073. package/dist/collection/components/picker-legacy/picker.md.css +0 -299
  1074. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
  1075. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  1076. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
  1077. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  1078. package/dist/collection/components/popover/popover.ionic.css +0 -290
  1079. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  1080. package/dist/collection/components/radio/radio.ionic.css +0 -422
  1081. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  1082. package/dist/collection/components/range/range.ionic.css +0 -567
  1083. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  1084. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -622
  1085. package/dist/collection/components/segment/segment.ionic.css +0 -115
  1086. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -352
  1087. package/dist/collection/components/select/select.ionic.css +0 -809
  1088. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -257
  1089. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -255
  1090. package/dist/collection/components/spinner/spinner.native.css +0 -199
  1091. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  1092. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -373
  1093. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  1094. package/dist/collection/components/title/title.ionic.css +0 -127
  1095. package/dist/collection/components/toast/toast.ionic.css +0 -394
  1096. package/dist/collection/components/toggle/toggle.ionic.css +0 -512
  1097. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1098. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1099. package/dist/collection/utils/css-value-validation.js +0 -39
  1100. package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
  1101. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  1102. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1103. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1104. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1105. package/dist/esm/clear-button-press-controller-C7AAVMKK.js +0 -43
  1106. package/dist/esm/ion-datetime_3.entry.js +0 -3235
  1107. package/dist/esm/ion-divider.entry.js +0 -49
  1108. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1109. package/dist/esm/ion-gallery.entry.js +0 -605
  1110. package/dist/esm/ionic-global-BpkTponr.js +0 -508
  1111. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1112. package/dist/esm/scroll-hide-controller-CUNW7EpD.js +0 -342
  1113. package/dist/esm/theme-DaJxRxSQ.js +0 -67
  1114. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1115. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1116. package/dist/ionic/p--sroV-k-.js +0 -4
  1117. package/dist/ionic/p-05ce9821.entry.js +0 -4
  1118. package/dist/ionic/p-085b8cdf.entry.js +0 -4
  1119. package/dist/ionic/p-0ef6bfc4.entry.js +0 -4
  1120. package/dist/ionic/p-18b7771e.entry.js +0 -4
  1121. package/dist/ionic/p-19f34fe5.entry.js +0 -4
  1122. package/dist/ionic/p-1b6e3914.entry.js +0 -4
  1123. package/dist/ionic/p-2740db6e.entry.js +0 -4
  1124. package/dist/ionic/p-2a1abbb1.entry.js +0 -4
  1125. package/dist/ionic/p-2d9c681b.entry.js +0 -4
  1126. package/dist/ionic/p-2fba8f15.entry.js +0 -4
  1127. package/dist/ionic/p-3886bfbe.entry.js +0 -4
  1128. package/dist/ionic/p-3ab9c35a.entry.js +0 -4
  1129. package/dist/ionic/p-3b4c5cb5.entry.js +0 -4
  1130. package/dist/ionic/p-3cfb4ff2.entry.js +0 -4
  1131. package/dist/ionic/p-41afaf15.entry.js +0 -4
  1132. package/dist/ionic/p-47b9dac0.entry.js +0 -4
  1133. package/dist/ionic/p-54419365.entry.js +0 -4
  1134. package/dist/ionic/p-54b7972e.entry.js +0 -4
  1135. package/dist/ionic/p-602cf876.entry.js +0 -4
  1136. package/dist/ionic/p-678ee14a.entry.js +0 -4
  1137. package/dist/ionic/p-679c1448.entry.js +0 -4
  1138. package/dist/ionic/p-68ea8ed1.entry.js +0 -4
  1139. package/dist/ionic/p-6e1ec775.entry.js +0 -4
  1140. package/dist/ionic/p-745d6b2b.entry.js +0 -4
  1141. package/dist/ionic/p-77254b78.entry.js +0 -4
  1142. package/dist/ionic/p-7k7Q1A38.js +0 -4
  1143. package/dist/ionic/p-898691b3.entry.js +0 -4
  1144. package/dist/ionic/p-89fedfda.entry.js +0 -4
  1145. package/dist/ionic/p-8cf82b85.entry.js +0 -4
  1146. package/dist/ionic/p-8d5fd199.entry.js +0 -4
  1147. package/dist/ionic/p-9087119f.entry.js +0 -4
  1148. package/dist/ionic/p-9c508a22.entry.js +0 -4
  1149. package/dist/ionic/p-B4Kq2YNk.js +0 -4
  1150. package/dist/ionic/p-BDSH5ckF.js +0 -4
  1151. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1152. package/dist/ionic/p-BFy_BK46.js +0 -4
  1153. package/dist/ionic/p-BTEOs1at.js +0 -4
  1154. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1155. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1156. package/dist/ionic/p-BlZo7Gy-.js +0 -4
  1157. package/dist/ionic/p-Bq8S4vhI.js +0 -4
  1158. package/dist/ionic/p-Btc4flkw.js +0 -4
  1159. package/dist/ionic/p-BwKpO3Is.js +0 -4
  1160. package/dist/ionic/p-C0EQceqV.js +0 -5
  1161. package/dist/ionic/p-C1I_d964.js +0 -4
  1162. package/dist/ionic/p-C53feagD.js +0 -4
  1163. package/dist/ionic/p-CB91Gr9M.js +0 -4
  1164. package/dist/ionic/p-CEkwLb3L.js +0 -4
  1165. package/dist/ionic/p-CJsJQPQD.js +0 -4
  1166. package/dist/ionic/p-CODBQrPj.js +0 -4
  1167. package/dist/ionic/p-Ch7MBNn_.js +0 -4
  1168. package/dist/ionic/p-Cl0B-RWe.js +0 -4
  1169. package/dist/ionic/p-CnAWnbNK.js +0 -4
  1170. package/dist/ionic/p-D1t981Ih.js +0 -4
  1171. package/dist/ionic/p-D4MT1z4_.js +0 -4
  1172. package/dist/ionic/p-D4veLKCq.js +0 -4
  1173. package/dist/ionic/p-DF7ubVci.js +0 -4
  1174. package/dist/ionic/p-DMaSfupH.js +0 -4
  1175. package/dist/ionic/p-DQDmksdT.js +0 -4
  1176. package/dist/ionic/p-DTsDGZPd.js +0 -4
  1177. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1178. package/dist/ionic/p-DdCaKRle.js +0 -4
  1179. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1180. package/dist/ionic/p-Dy243NXW.js +0 -4
  1181. package/dist/ionic/p-OkgYzj-7.js +0 -4
  1182. package/dist/ionic/p-YIsE5bNG.js +0 -4
  1183. package/dist/ionic/p-a4af8e39.entry.js +0 -4
  1184. package/dist/ionic/p-b2368a93.entry.js +0 -4
  1185. package/dist/ionic/p-b275f17e.entry.js +0 -4
  1186. package/dist/ionic/p-c5635175.entry.js +0 -4
  1187. package/dist/ionic/p-c76d57fb.entry.js +0 -4
  1188. package/dist/ionic/p-ca3a07b5.entry.js +0 -4
  1189. package/dist/ionic/p-ced3cda1.entry.js +0 -4
  1190. package/dist/ionic/p-cf22e991.entry.js +0 -4
  1191. package/dist/ionic/p-d0c1d21d.entry.js +0 -4
  1192. package/dist/ionic/p-d0d42da6.entry.js +0 -4
  1193. package/dist/ionic/p-d33dfc12.entry.js +0 -4
  1194. package/dist/ionic/p-d34bfb61.entry.js +0 -4
  1195. package/dist/ionic/p-dbc08f67.entry.js +0 -4
  1196. package/dist/ionic/p-dc8e0b91.entry.js +0 -4
  1197. package/dist/ionic/p-df642ef5.entry.js +0 -4
  1198. package/dist/ionic/p-e04d63e1.entry.js +0 -4
  1199. package/dist/ionic/p-e3615478.entry.js +0 -4
  1200. package/dist/ionic/p-f1810d29.entry.js +0 -4
  1201. package/dist/ionic/p-f1a8aead.entry.js +0 -4
  1202. package/dist/ionic/p-f69af9d3.entry.js +0 -4
  1203. package/dist/ionic/p-f760f90e.entry.js +0 -4
  1204. package/dist/ionic/p-f8001f8f.entry.js +0 -4
  1205. package/dist/ionic/p-f8b63ebb.entry.js +0 -4
  1206. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1207. package/dist/ionic/p-fc6d26ff.entry.js +0 -4
  1208. package/dist/ionic/p-lMb_45ax.js +0 -4
  1209. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1210. package/dist/types/components/divider/divider.d.ts +0 -20
  1211. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1212. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1213. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1214. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1215. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1216. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1217. package/dist/types/components/header/header-interface.d.ts +0 -1
  1218. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1219. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1220. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  1221. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  1222. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  1223. package/dist/types/components/picker-legacy/picker.d.ts +0 -159
  1224. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  1225. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  1226. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1227. package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
  1228. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1229. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -8,13 +8,12 @@ import { raf, inheritAttributes, hasLazyBuild, getElementRoot } from "../../util
8
8
  import { createLockController } from "../../utils/lock-controller";
9
9
  import { printIonWarning } from "../../utils/logging/index";
10
10
  import { Style as StatusBarStyle, StatusBar } from "../../utils/native/status-bar";
11
- import { GESTURE, BACKDROP, dismiss, eventMethod, prepareOverlay, present, createTriggerController, setOverlayId, FOCUS_TRAP_DISABLE_CLASS, } from "../../utils/overlays";
11
+ import { BACKDROP, cleanupRootFocusTrapAccessibility, createTriggerController, dismiss, eventMethod, FOCUS_TRAP_DISABLE_CLASS, GESTURE, prepareOverlay, present, setOverlayId, } from "../../utils/overlays";
12
12
  import { getClassMap } from "../../utils/theme";
13
13
  import { deepReady, waitForMount } from "../../utils/transition/index";
14
14
  import { config } from "../../global/config";
15
- import { getIonMode, getIonTheme } from "../../global/ionic-global";
15
+ import { getIonMode } from "../../global/ionic-global";
16
16
  import { KEYBOARD_DID_OPEN } from "../../utils/keyboard/keyboard";
17
- import { ionicEnterAnimation } from "./animations/ionic.enter";
18
17
  import { iosEnterAnimation } from "./animations/ios.enter";
19
18
  import { iosLeaveAnimation } from "./animations/ios.leave";
20
19
  import { portraitToLandscapeTransition, landscapeToPortraitTransition } from "./animations/ios.transition";
@@ -26,8 +25,7 @@ import { getInitialSafeAreaConfig, getPositionBasedSafeAreaConfig, applySafeArea
26
25
  import { setCardStatusBarDark, setCardStatusBarDefault } from "./utils";
27
26
  // TODO(FW-2832): types
28
27
  /**
29
- * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
30
- * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
28
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
31
29
  *
32
30
  * @slot - Content is placed inside of the `.modal-content` element.
33
31
  *
@@ -36,196 +34,175 @@ import { setCardStatusBarDark, setCardStatusBarDefault } from "./utils";
36
34
  * @part handle - The handle that is displayed at the top of the sheet modal when `handle="true"`.
37
35
  */
38
36
  export class Modal {
39
- constructor() {
40
- this.lockController = createLockController();
41
- this.triggerController = createTriggerController();
42
- this.coreDelegate = CoreDelegate();
43
- this.isSheetModal = false;
44
- this.inheritedAttributes = {};
45
- this.inline = false;
46
- // Whether or not modal is being dismissed via gesture
47
- this.gestureAnimationDismissing = false;
48
- this.presented = false;
49
- /** @internal */
50
- this.hasController = false;
51
- /**
52
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
53
- */
54
- this.keyboardClose = true;
55
- /**
56
- * Controls whether scrolling or dragging within the sheet modal expands
57
- * it to a larger breakpoint. This only takes effect when `breakpoints`
58
- * and `initialBreakpoint` are set.
59
- *
60
- * If `true`, scrolling or dragging anywhere in the modal will first expand
61
- * it to the next breakpoint. Once fully expanded, scrolling will affect the
62
- * content.
63
- * If `false`, scrolling will always affect the content. The modal will
64
- * only expand when dragging the header or handle. The modal will close when
65
- * dragging the header or handle. It can also be closed when dragging the
66
- * content, but only if the content is scrolled to the top.
67
- */
68
- this.expandToScroll = true;
69
- /**
70
- * A decimal value between 0 and 1 that indicates the
71
- * point after which the backdrop will begin to fade in
72
- * when using a sheet modal. Prior to this point, the
73
- * backdrop will be hidden and the content underneath
74
- * the sheet can be interacted with. This value is exclusive
75
- * meaning the backdrop will become active after the value
76
- * specified.
77
- */
78
- this.backdropBreakpoint = 0;
79
- /**
80
- * The interaction behavior for the sheet modal when the handle is pressed.
81
- *
82
- * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
83
- * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
84
- *
85
- * Handle behavior is unavailable when the `handle` property is set to `false` or
86
- * when the `breakpoints` property is not set (using a fullscreen or card modal).
87
- */
88
- this.handleBehavior = 'none';
89
- /**
90
- * If `true`, the modal will be dismissed when the backdrop is clicked.
91
- */
92
- this.backdropDismiss = true;
93
- /**
94
- * If `true`, a backdrop will be displayed behind the modal.
95
- * This property controls whether or not the backdrop
96
- * darkens the screen when the modal is presented.
97
- * It does not control whether or not the backdrop
98
- * is active or present in the DOM.
99
- */
100
- this.showBackdrop = true;
101
- /**
102
- * If `true`, the modal will animate.
103
- */
104
- this.animated = true;
105
- /**
106
- * If `true`, the modal will open. If `false`, the modal will close.
107
- * Use this if you need finer grained control over presentation, otherwise
108
- * just use the modalController or the `trigger` property.
109
- * Note: `isOpen` will not automatically be set back to `false` when
110
- * the modal dismisses. You will need to do that in your code.
111
- */
112
- this.isOpen = false;
113
- /**
114
- * If `true`, the component passed into `ion-modal` will
115
- * automatically be mounted when the modal is created. The
116
- * component will remain mounted even when the modal is dismissed.
117
- * However, the component will be destroyed when the modal is
118
- * destroyed. This property is not reactive and should only be
119
- * used when initially creating a modal.
120
- *
121
- * Note: This feature only applies to inline modals in JavaScript
122
- * frameworks such as Angular, React, and Vue.
123
- */
124
- this.keepContentsMounted = false;
125
- /**
126
- * If `true`, focus will not be allowed to move outside of this overlay.
127
- * If `false`, focus will be allowed to move outside of the overlay.
128
- *
129
- * In most scenarios this property should remain set to `true`. Setting
130
- * this property to `false` can cause severe accessibility issues as users
131
- * relying on assistive technologies may be able to move focus into
132
- * a confusing state. We recommend only setting this to `false` when
133
- * absolutely necessary.
134
- *
135
- * Developers may want to consider disabling focus trapping if this
136
- * overlay presents a non-Ionic overlay from a 3rd party library.
137
- * Developers would disable focus trapping on the Ionic overlay
138
- * when presenting the 3rd party overlay and then re-enable
139
- * focus trapping when dismissing the 3rd party overlay and moving
140
- * focus back to the Ionic overlay.
141
- */
142
- this.focusTrap = true;
143
- /**
144
- * Determines whether or not a modal can dismiss
145
- * when calling the `dismiss` method.
146
- *
147
- * If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
148
- * If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
149
- *
150
- * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
151
- * if you need to access `this` from within the callback.
152
- */
153
- this.canDismiss = true;
154
- this.onHandleClick = () => {
155
- const { sheetTransition, handleBehavior } = this;
156
- if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
157
- /**
158
- * The sheet modal should not advance to the next breakpoint
159
- * if the handle behavior is not `cycle` or if the handle
160
- * is clicked while the sheet is moving to a breakpoint.
161
- */
162
- return;
163
- }
164
- this.moveToNextBreakpoint();
165
- };
166
- this.onBackdropTap = () => {
167
- const { sheetTransition } = this;
168
- if (sheetTransition !== undefined) {
169
- /**
170
- * When the handle is double clicked at the largest breakpoint,
171
- * it will start to move to the first breakpoint. While transitioning,
172
- * the backdrop will often receive the second click. We prevent the
173
- * backdrop from dismissing the modal while moving between breakpoints.
174
- */
175
- return;
176
- }
177
- this.dismiss(undefined, BACKDROP);
178
- };
179
- this.onLifecycle = (modalEvent) => {
180
- const el = this.usersElement;
181
- const name = LIFECYCLE_MAP[modalEvent.type];
182
- if (el && name) {
183
- const ev = new CustomEvent(name, {
184
- bubbles: false,
185
- cancelable: false,
186
- detail: modalEvent.detail,
187
- });
188
- el.dispatchEvent(ev);
189
- }
190
- };
191
- /**
192
- * When the modal receives focus directly, pass focus to the handle
193
- * if it exists and is focusable, otherwise let the focus trap handle it.
194
- */
195
- this.onModalFocus = (ev) => {
196
- var _a;
197
- const { dragHandleEl, el } = this;
198
- /**
199
- * Shadow DOM focus is retargeted to the host, so `ev.target === el` is also
200
- * true when a shadow child (the dialog wrapper present() focuses) is focused.
201
- * shadowRoot's activeElement is null only when the host was focused directly,
202
- * so redirect to the handle only then and leave present()'s wrapper focus intact.
203
- */
204
- if (ev.target === el && ((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) == null && dragHandleEl && dragHandleEl.tabIndex !== -1) {
205
- dragHandleEl.focus();
206
- }
207
- };
208
- /**
209
- * When the slot changes, we need to find all the modals in the slot
210
- * and set the data-parent-ion-modal attribute on them so we can find them
211
- * and dismiss them when we get dismissed.
212
- * We need to do it this way because when a modal is opened, it's moved to
213
- * the end of the body and is no longer an actual child of the modal.
214
- */
215
- this.onSlotChange = ({ target }) => {
216
- const slot = target;
217
- slot.assignedElements().forEach((el) => {
218
- el.querySelectorAll('ion-modal').forEach((childModal) => {
219
- // We don't need to write to the DOM if the modal is already tagged
220
- // If this is a deeply nested modal, this effect should cascade so we don't
221
- // need to worry about another modal claiming the same child.
222
- if (childModal.getAttribute('data-parent-ion-modal') === null) {
223
- childModal.setAttribute('data-parent-ion-modal', this.el.id);
224
- }
225
- });
226
- });
227
- };
228
- }
37
+ lockController = createLockController();
38
+ triggerController = createTriggerController();
39
+ gesture;
40
+ coreDelegate = CoreDelegate();
41
+ sheetTransition;
42
+ isSheetModal = false;
43
+ /**
44
+ * The breakpoint value that has been committed for a sheet modal.
45
+ * This represents the modal's resting state when it is not being dragged
46
+ * or animating toward a new position.
47
+ */
48
+ currentBreakpoint;
49
+ wrapperEl;
50
+ backdropEl;
51
+ dragHandleEl;
52
+ sortedBreakpoints;
53
+ keyboardOpenCallback;
54
+ moveSheetToBreakpoint;
55
+ inheritedAttributes = {};
56
+ statusBarStyle;
57
+ inline = false;
58
+ workingDelegate;
59
+ // Reference to the user's provided modal content
60
+ usersElement;
61
+ // Whether or not modal is being dismissed via gesture
62
+ gestureAnimationDismissing = false;
63
+ // View transition properties for handling portrait/landscape switches
64
+ currentViewIsPortrait;
65
+ viewTransitionAnimation;
66
+ resizeTimeout;
67
+ // Mutation observer to watch for parent removal
68
+ parentRemovalObserver;
69
+ // Cached original parent from before modal is moved to body during presentation
70
+ cachedOriginalParent;
71
+ // Cached ion-page ancestor for child route passthrough
72
+ cachedPageParent;
73
+ lastFocus;
74
+ animation;
75
+ presented = false;
76
+ el;
77
+ /** @internal */
78
+ hasController = false;
79
+ /** @internal */
80
+ overlayIndex;
81
+ /** @internal */
82
+ delegate;
83
+ /**
84
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
85
+ */
86
+ keyboardClose = true;
87
+ /**
88
+ * Animation to use when the modal is presented.
89
+ */
90
+ enterAnimation;
91
+ /**
92
+ * Animation to use when the modal is dismissed.
93
+ */
94
+ leaveAnimation;
95
+ /**
96
+ * The breakpoints to use when creating a sheet modal. Each value in the
97
+ * array must be a decimal between 0 and 1 where 0 indicates the modal is fully
98
+ * closed and 1 indicates the modal is fully open. Values are relative
99
+ * to the height of the modal, not the height of the screen. One of the values in this
100
+ * array must be the value of the `initialBreakpoint` property.
101
+ * For example: [0, .25, .5, 1]
102
+ */
103
+ breakpoints;
104
+ /**
105
+ * Controls whether scrolling or dragging within the sheet modal expands
106
+ * it to a larger breakpoint. This only takes effect when `breakpoints`
107
+ * and `initialBreakpoint` are set.
108
+ *
109
+ * If `true`, scrolling or dragging anywhere in the modal will first expand
110
+ * it to the next breakpoint. Once fully expanded, scrolling will affect the
111
+ * content.
112
+ * If `false`, scrolling will always affect the content. The modal will
113
+ * only expand when dragging the header or handle. The modal will close when
114
+ * dragging the header or handle. It can also be closed when dragging the
115
+ * content, but only if the content is scrolled to the top.
116
+ */
117
+ expandToScroll = true;
118
+ /**
119
+ * A decimal value between 0 and 1 that indicates the
120
+ * initial point the modal will open at when creating a
121
+ * sheet modal. This value must also be listed in the
122
+ * `breakpoints` array.
123
+ */
124
+ initialBreakpoint;
125
+ /**
126
+ * A decimal value between 0 and 1 that indicates the
127
+ * point after which the backdrop will begin to fade in
128
+ * when using a sheet modal. Prior to this point, the
129
+ * backdrop will be hidden and the content underneath
130
+ * the sheet can be interacted with. This value is exclusive
131
+ * meaning the backdrop will become active after the value
132
+ * specified.
133
+ */
134
+ backdropBreakpoint = 0;
135
+ /**
136
+ * The horizontal line that displays at the top of a sheet modal. It is `true` by default when
137
+ * setting the `breakpoints` and `initialBreakpoint` properties.
138
+ */
139
+ handle;
140
+ /**
141
+ * The interaction behavior for the sheet modal when the handle is pressed.
142
+ *
143
+ * Handle behavior is unavailable when the `handle` property is set to
144
+ * `false` or when the `breakpoints` property is not set (using a
145
+ * fullscreen or card modal).
146
+ *
147
+ * Set to `"cycle"` to make the handle focusable and let the sheet modal
148
+ * cycle between available breakpoints when pressed. This keeps the sheet
149
+ * operable with assistive technology.
150
+ *
151
+ * Set to `"none"` to make the handle purely decorative when pressed and
152
+ * removed from the tab order.
153
+ *
154
+ * Defaults to `"cycle"`.
155
+ */
156
+ handleBehavior = 'cycle';
157
+ /**
158
+ * The component to display inside of the modal.
159
+ * @internal
160
+ */
161
+ component;
162
+ /**
163
+ * The data to pass to the modal component.
164
+ * @internal
165
+ */
166
+ componentProps;
167
+ /**
168
+ * Additional classes to apply for custom CSS. If multiple classes are
169
+ * provided they should be separated by spaces.
170
+ * @internal
171
+ */
172
+ cssClass;
173
+ /**
174
+ * If `true`, the modal will be dismissed when the backdrop is clicked.
175
+ */
176
+ backdropDismiss = true;
177
+ /**
178
+ * If `true`, a backdrop will be displayed behind the modal.
179
+ * This property controls whether or not the backdrop
180
+ * darkens the screen when the modal is presented.
181
+ * It does not control whether or not the backdrop
182
+ * is active or present in the DOM.
183
+ */
184
+ showBackdrop = true;
185
+ /**
186
+ * If `true`, the modal will animate.
187
+ */
188
+ animated = true;
189
+ /**
190
+ * The element that presented the modal. This is used for card presentation effects
191
+ * and for stacking multiple modals on top of each other. Only applies in iOS mode.
192
+ */
193
+ presentingElement;
194
+ /**
195
+ * Additional attributes to pass to the modal.
196
+ */
197
+ htmlAttributes;
198
+ /**
199
+ * If `true`, the modal will open. If `false`, the modal will close.
200
+ * Use this if you need finer grained control over presentation, otherwise
201
+ * just use the modalController or the `trigger` property.
202
+ * Note: `isOpen` will not automatically be set back to `false` when
203
+ * the modal dismisses. You will need to do that in your code.
204
+ */
205
+ isOpen = false;
229
206
  onIsOpenChange(newValue, oldValue) {
230
207
  if (newValue === true && oldValue === false) {
231
208
  this.present();
@@ -234,6 +211,11 @@ export class Modal {
234
211
  this.dismiss();
235
212
  }
236
213
  }
214
+ /**
215
+ * An ID corresponding to the trigger element that
216
+ * causes the modal to open when clicked.
217
+ */
218
+ trigger;
237
219
  triggerChanged() {
238
220
  const { trigger, el, triggerController } = this;
239
221
  if (trigger) {
@@ -266,6 +248,108 @@ export class Modal {
266
248
  }
267
249
  }, 50); // Debounce to avoid excessive calls during active resizing
268
250
  }
251
+ /**
252
+ * If `true`, the component passed into `ion-modal` will
253
+ * automatically be mounted when the modal is created. The
254
+ * component will remain mounted even when the modal is dismissed.
255
+ * However, the component will be destroyed when the modal is
256
+ * destroyed. This property is not reactive and should only be
257
+ * used when initially creating a modal.
258
+ *
259
+ * Note: This feature only applies to inline modals in JavaScript
260
+ * frameworks such as Angular, React, and Vue.
261
+ */
262
+ keepContentsMounted = false;
263
+ /**
264
+ * If `true`, focus will not be allowed to move outside of this overlay.
265
+ * If `false`, focus will be allowed to move outside of the overlay.
266
+ *
267
+ * In most scenarios this property should remain set to `true`. Setting
268
+ * this property to `false` can cause severe accessibility issues as users
269
+ * relying on assistive technologies may be able to move focus into
270
+ * a confusing state. We recommend only setting this to `false` when
271
+ * absolutely necessary.
272
+ *
273
+ * Developers may want to consider disabling focus trapping if this
274
+ * overlay presents a non-Ionic overlay from a 3rd party library.
275
+ * Developers would disable focus trapping on the Ionic overlay
276
+ * when presenting the 3rd party overlay and then re-enable
277
+ * focus trapping when dismissing the 3rd party overlay and moving
278
+ * focus back to the Ionic overlay.
279
+ */
280
+ focusTrap = true;
281
+ /**
282
+ * Determines whether or not a modal can dismiss
283
+ * when calling the `dismiss` method.
284
+ *
285
+ * If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
286
+ * If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
287
+ *
288
+ * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
289
+ * if you need to access `this` from within the callback.
290
+ */
291
+ canDismiss = true;
292
+ /**
293
+ * Emitted after the modal has presented.
294
+ */
295
+ didPresent;
296
+ /**
297
+ * Emitted before the modal has presented.
298
+ */
299
+ willPresent;
300
+ /**
301
+ * Emitted before the modal has dismissed.
302
+ */
303
+ willDismiss;
304
+ /**
305
+ * Emitted after the modal has dismissed.
306
+ */
307
+ didDismiss;
308
+ /**
309
+ * Emitted after the modal breakpoint has changed.
310
+ */
311
+ ionBreakpointDidChange;
312
+ /**
313
+ * Emitted after the modal has presented.
314
+ * Shorthand for ionModalDidPresent.
315
+ */
316
+ didPresentShorthand;
317
+ /**
318
+ * Emitted before the modal has presented.
319
+ * Shorthand for ionModalWillPresent.
320
+ */
321
+ willPresentShorthand;
322
+ /**
323
+ * Emitted before the modal has dismissed.
324
+ * Shorthand for ionModalWillDismiss.
325
+ */
326
+ willDismissShorthand;
327
+ /**
328
+ * Emitted after the modal has dismissed.
329
+ * Shorthand for ionModalDidDismiss.
330
+ */
331
+ didDismissShorthand;
332
+ /**
333
+ * Emitted before the modal has presented, but after the component
334
+ * has been mounted in the DOM.
335
+ * This event exists so iOS can run the entering
336
+ * transition properly
337
+ *
338
+ * @internal
339
+ */
340
+ ionMount;
341
+ /**
342
+ * Event that is emitted when the sheet modal or card modal gesture starts.
343
+ */
344
+ ionDragStart;
345
+ /**
346
+ * Event that is emitted when the sheet modal or card modal gesture moves.
347
+ */
348
+ ionDragMove;
349
+ /**
350
+ * Event that is emitted when the sheet modal or card modal gesture ends.
351
+ */
352
+ ionDragEnd;
269
353
  breakpointsChanged(breakpoints) {
270
354
  if (breakpoints !== undefined) {
271
355
  this.sortedBreakpoints = breakpoints.sort((a, b) => a - b);
@@ -283,9 +367,12 @@ export class Modal {
283
367
  // Also called in dismiss() — intentional dual cleanup covers both
284
368
  // dismiss-then-remove and direct DOM removal without dismiss.
285
369
  this.cleanupSafeAreaOverrides();
370
+ // Clean up aria-hidden if removed without dismiss() being called
371
+ if (this.presented) {
372
+ cleanupRootFocusTrapAccessibility();
373
+ }
286
374
  }
287
375
  componentWillLoad() {
288
- var _a;
289
376
  const { breakpoints, initialBreakpoint, el, htmlAttributes } = this;
290
377
  const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined);
291
378
  const attributesToInherit = ['aria-label', 'role'];
@@ -320,7 +407,10 @@ export class Modal {
320
407
  * htmlAttributes wins, but that's not a pattern that we recommend.
321
408
  * The only time you'd need htmlAttributes is when using modalController.
322
409
  */
323
- this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attribute]: htmlAttributes[attribute] });
410
+ this.inheritedAttributes = {
411
+ ...this.inheritedAttributes,
412
+ [attribute]: htmlAttributes[attribute],
413
+ };
324
414
  delete htmlAttributes[attribute];
325
415
  }
326
416
  });
@@ -331,7 +421,7 @@ export class Modal {
331
421
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
332
422
  printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
333
423
  }
334
- if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
424
+ if (!this.htmlAttributes?.id) {
335
425
  setOverlayId(this.el);
336
426
  }
337
427
  }
@@ -459,12 +549,11 @@ export class Modal {
459
549
  this.statusBarStyle = await StatusBar.getStyle();
460
550
  setCardStatusBarDark();
461
551
  }
462
- await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
552
+ await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
463
553
  presentingEl: presentingElement,
464
554
  currentBreakpoint: this.initialBreakpoint,
465
555
  backdropBreakpoint: this.backdropBreakpoint,
466
556
  expandToScroll: this.expandToScroll,
467
- staticBackdropOpacity: getIonTheme(this) === 'ionic',
468
557
  });
469
558
  // Update safe-area based on actual position after animation
470
559
  this.updateSafeAreaOverrides();
@@ -514,7 +603,6 @@ export class Modal {
514
603
  unlock();
515
604
  }
516
605
  initSwipeToClose() {
517
- var _a;
518
606
  if (getIonMode(this) !== 'ios') {
519
607
  return;
520
608
  }
@@ -532,7 +620,7 @@ export class Modal {
532
620
  printIonContentErrorMsg(el);
533
621
  return;
534
622
  }
535
- const statusBarStyle = (_a = this.statusBarStyle) !== null && _a !== void 0 ? _a : StatusBarStyle.Default;
623
+ const statusBarStyle = this.statusBarStyle ?? StatusBarStyle.Default;
536
624
  this.gesture = createSwipeToCloseGesture(el, ani, statusBarStyle, () => this.cardOnDismiss(), () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
537
625
  this.gesture.enable(true);
538
626
  }
@@ -547,15 +635,14 @@ export class Modal {
547
635
  currentBreakpoint: initialBreakpoint,
548
636
  backdropBreakpoint,
549
637
  expandToScroll: this.expandToScroll,
550
- staticBackdropOpacity: getIonTheme(this) === 'ionic',
551
638
  }));
552
639
  ani.progressStart(true, 1);
553
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
640
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => this.currentBreakpoint ?? 0, () => this.sheetOnDismiss(), (breakpoint) => {
554
641
  if (this.currentBreakpoint !== breakpoint) {
555
642
  this.currentBreakpoint = breakpoint;
556
643
  this.ionBreakpointDidChange.emit({ breakpoint });
557
644
  }
558
- }, getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
645
+ }, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
559
646
  this.gesture = gesture;
560
647
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
561
648
  this.gesture.enable(true);
@@ -575,7 +662,6 @@ export class Modal {
575
662
  * passthrough on child route page wrappers and nested router outlets.
576
663
  */
577
664
  setupChildRoutePassthrough() {
578
- var _a;
579
665
  // Cache the page parent for cleanup
580
666
  this.cachedPageParent = this.getOriginalPageParent();
581
667
  const pageParent = this.cachedPageParent;
@@ -583,14 +669,11 @@ export class Modal {
583
669
  if (!pageParent || pageParent.tagName === 'ION-APP') {
584
670
  return;
585
671
  }
586
- const hasVisibleContent = Array.from(pageParent.children).some((child) => {
587
- var _a;
588
- return child !== this.el &&
589
- !(child instanceof HTMLElement && window.getComputedStyle(child).display === 'none') &&
590
- child.tagName !== 'TEMPLATE' &&
591
- child.tagName !== 'SLOT' &&
592
- !(child.nodeType === Node.TEXT_NODE && !((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()));
593
- });
672
+ const hasVisibleContent = Array.from(pageParent.children).some((child) => child !== this.el &&
673
+ !(child instanceof HTMLElement && window.getComputedStyle(child).display === 'none') &&
674
+ child.tagName !== 'TEMPLATE' &&
675
+ child.tagName !== 'SLOT' &&
676
+ !(child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()));
594
677
  if (hasVisibleContent) {
595
678
  return;
596
679
  }
@@ -598,7 +681,7 @@ export class Modal {
598
681
  pageParent.classList.add('ion-page-overlay-passthrough');
599
682
  // Also make nested router outlets passthrough
600
683
  const routerOutlet = pageParent.parentElement;
601
- if ((routerOutlet === null || routerOutlet === void 0 ? void 0 : routerOutlet.tagName) === 'ION-ROUTER-OUTLET' && ((_a = routerOutlet.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) !== 'ION-APP') {
684
+ if (routerOutlet?.tagName === 'ION-ROUTER-OUTLET' && routerOutlet.parentElement?.tagName !== 'ION-APP') {
602
685
  routerOutlet.style.setProperty('pointer-events', 'none');
603
686
  routerOutlet.setAttribute('data-overlay-passthrough', 'true');
604
687
  }
@@ -626,7 +709,7 @@ export class Modal {
626
709
  }
627
710
  pageParent.classList.remove('ion-page-overlay-passthrough');
628
711
  const routerOutlet = pageParent.parentElement;
629
- if (routerOutlet === null || routerOutlet === void 0 ? void 0 : routerOutlet.hasAttribute('data-overlay-passthrough')) {
712
+ if (routerOutlet?.hasAttribute('data-overlay-passthrough')) {
630
713
  routerOutlet.style.removeProperty('pointer-events');
631
714
  routerOutlet.removeAttribute('data-overlay-passthrough');
632
715
  }
@@ -689,7 +772,6 @@ export class Modal {
689
772
  * For example, `cancel` or `backdrop`.
690
773
  */
691
774
  async dismiss(data, role) {
692
- var _a;
693
775
  if (this.gestureAnimationDismissing && role !== GESTURE) {
694
776
  return false;
695
777
  }
@@ -734,7 +816,7 @@ export class Modal {
734
816
  }
735
817
  const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
736
818
  presentingEl: presentingElement,
737
- currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
819
+ currentBreakpoint: this.currentBreakpoint ?? this.initialBreakpoint,
738
820
  backdropBreakpoint: this.backdropBreakpoint,
739
821
  expandToScroll: this.expandToScroll,
740
822
  });
@@ -827,18 +909,59 @@ export class Modal {
827
909
  await this.setCurrentBreakpoint(nextBreakpoint);
828
910
  return true;
829
911
  }
830
- getShape() {
831
- const theme = getIonTheme(this);
832
- const { shape } = this;
833
- // TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
834
- if (theme !== 'ionic') {
835
- return undefined;
912
+ onHandleClick = () => {
913
+ const { sheetTransition, handleBehavior } = this;
914
+ if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
915
+ /**
916
+ * The sheet modal should not advance to the next breakpoint
917
+ * if the handle behavior is not `cycle` or if the handle
918
+ * is clicked while the sheet is moving to a breakpoint.
919
+ */
920
+ return;
836
921
  }
837
- if (shape === undefined) {
838
- return 'round';
922
+ this.moveToNextBreakpoint();
923
+ };
924
+ onBackdropTap = () => {
925
+ const { sheetTransition } = this;
926
+ if (sheetTransition !== undefined) {
927
+ /**
928
+ * When the handle is double clicked at the largest breakpoint,
929
+ * it will start to move to the first breakpoint. While transitioning,
930
+ * the backdrop will often receive the second click. We prevent the
931
+ * backdrop from dismissing the modal while moving between breakpoints.
932
+ */
933
+ return;
839
934
  }
840
- return shape;
841
- }
935
+ this.dismiss(undefined, BACKDROP);
936
+ };
937
+ onLifecycle = (modalEvent) => {
938
+ const el = this.usersElement;
939
+ const name = LIFECYCLE_MAP[modalEvent.type];
940
+ if (el && name) {
941
+ const ev = new CustomEvent(name, {
942
+ bubbles: false,
943
+ cancelable: false,
944
+ detail: modalEvent.detail,
945
+ });
946
+ el.dispatchEvent(ev);
947
+ }
948
+ };
949
+ /**
950
+ * When the modal receives focus directly, pass focus to the handle
951
+ * if it exists and is focusable, otherwise let the focus trap handle it.
952
+ */
953
+ onModalFocus = (ev) => {
954
+ const { dragHandleEl, el } = this;
955
+ /**
956
+ * Shadow DOM focus is retargeted to the host, so `ev.target === el` is also
957
+ * true when a shadow child (the dialog wrapper present() focuses) is focused.
958
+ * shadowRoot's activeElement is null only when the host was focused directly,
959
+ * so redirect to the handle only then and leave present()'s wrapper focus intact.
960
+ */
961
+ if (ev.target === el && el.shadowRoot?.activeElement == null && dragHandleEl && dragHandleEl.tabIndex !== -1) {
962
+ dragHandleEl.focus();
963
+ }
964
+ };
842
965
  initViewTransitionListener() {
843
966
  // Only enable for iOS card modals when no custom animations are provided
844
967
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -942,7 +1065,7 @@ export class Modal {
942
1065
  wrapperEl.style.transform = 'translateY(0vh)';
943
1066
  wrapperEl.style.opacity = '1';
944
1067
  }
945
- if ((presentingElement === null || presentingElement === void 0 ? void 0 : presentingElement.tagName) === 'ION-MODAL') {
1068
+ if (presentingElement?.tagName === 'ION-MODAL') {
946
1069
  const isPortrait = window.innerWidth < 768;
947
1070
  if (isPortrait) {
948
1071
  const transformOffset = !CSS.supports('width', 'max(0px, 1px)')
@@ -956,9 +1079,29 @@ export class Modal {
956
1079
  }
957
1080
  }
958
1081
  }
1082
+ /**
1083
+ * When the slot changes, we need to find all the modals in the slot
1084
+ * and set the data-parent-ion-modal attribute on them so we can find them
1085
+ * and dismiss them when we get dismissed.
1086
+ * We need to do it this way because when a modal is opened, it's moved to
1087
+ * the end of the body and is no longer an actual child of the modal.
1088
+ */
1089
+ onSlotChange = ({ target }) => {
1090
+ const slot = target;
1091
+ slot.assignedElements().forEach((el) => {
1092
+ el.querySelectorAll('ion-modal').forEach((childModal) => {
1093
+ // We don't need to write to the DOM if the modal is already tagged
1094
+ // If this is a deeply nested modal, this effect should cascade so we don't
1095
+ // need to worry about another modal claiming the same child.
1096
+ if (childModal.getAttribute('data-parent-ion-modal') === null) {
1097
+ childModal.setAttribute('data-parent-ion-modal', this.el.id);
1098
+ }
1099
+ });
1100
+ });
1101
+ };
959
1102
  async dismissNestedModals() {
960
1103
  const nestedModals = document.querySelectorAll(`ion-modal[data-parent-ion-modal="${this.el.id}"]`);
961
- nestedModals === null || nestedModals === void 0 ? void 0 : nestedModals.forEach(async (modal) => {
1104
+ nestedModals?.forEach(async (modal) => {
962
1105
  await modal.dismiss(undefined, 'parent-dismissed');
963
1106
  });
964
1107
  }
@@ -991,10 +1134,9 @@ export class Modal {
991
1134
  if (mutation.type === 'childList' && mutation.removedNodes.length > 0) {
992
1135
  // Check if our cached original parent was removed
993
1136
  const cachedParentWasRemoved = Array.from(mutation.removedNodes).some((node) => {
994
- var _a, _b;
995
1137
  const isDirectMatch = node === this.cachedOriginalParent;
996
1138
  const isContainedMatch = this.cachedOriginalParent
997
- ? (_b = (_a = node).contains) === null || _b === void 0 ? void 0 : _b.call(_a, this.cachedOriginalParent)
1139
+ ? node.contains?.(this.cachedOriginalParent)
998
1140
  : false;
999
1141
  return isDirectMatch || isContainedMatch;
1000
1142
  });
@@ -1016,8 +1158,7 @@ export class Modal {
1016
1158
  });
1017
1159
  }
1018
1160
  cleanupParentRemovalObserver() {
1019
- var _a;
1020
- (_a = this.parentRemovalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
1161
+ this.parentRemovalObserver?.disconnect();
1021
1162
  this.parentRemovalObserver = undefined;
1022
1163
  }
1023
1164
  onDragStart() {
@@ -1057,7 +1198,10 @@ export class Modal {
1057
1198
  * sheets to prevent header content from getting double-offset padding).
1058
1199
  */
1059
1200
  setInitialSafeAreaOverrides() {
1060
- const context = Object.assign(Object.assign({}, this.getSafeAreaContext()), { hasCustomDimensions: hasCustomModalDimensions(this.el) });
1201
+ const context = {
1202
+ ...this.getSafeAreaContext(),
1203
+ hasCustomDimensions: hasCustomModalDimensions(this.el),
1204
+ };
1061
1205
  const safeAreaConfig = getInitialSafeAreaConfig(context);
1062
1206
  applySafeAreaOverrides(this.el, safeAreaConfig);
1063
1207
  // Set the internal offset property with the resolved root safe-area-top value
@@ -1180,16 +1324,24 @@ export class Modal {
1180
1324
  render() {
1181
1325
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1182
1326
  const showHandle = handle !== false && isSheetModal;
1183
- const theme = getIonTheme(this);
1184
- const isCardModal = presentingElement !== undefined && theme === 'ios';
1327
+ const mode = getIonMode(this);
1328
+ const isCardModal = presentingElement !== undefined && mode === 'ios';
1185
1329
  const isHandleCycle = handleBehavior === 'cycle';
1186
- const shape = this.getShape();
1187
1330
  const isSheetModalWithHandle = isSheetModal && showHandle;
1188
- return (h(Host, Object.assign({ key: 'aa0c8c6926534d17df0b76ba0c3bad143f22f577', "no-router": true,
1331
+ return (h(Host, { key: 'e2d5e0985b3812d6de4f7783becb5e6b50417d6f', "no-router": true,
1189
1332
  // Allow the modal to be navigable when the handle is focusable
1190
- tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
1333
+ tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
1191
1334
  zIndex: `${20000 + this.overlayIndex}`,
1192
- }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '9d9421370a86dbe4bb4ff27681f22bea168d7297', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: '9a4e349ed6234bf18c07995fcd97dd0e1d65a2bd', class: "modal-shadow" }), h("div", Object.assign({ key: '3649cb4a4b63f4335f607b7fe7b6048a6742c9c4',
1335
+ }, class: {
1336
+ [mode]: true,
1337
+ ['modal-default']: !isCardModal && !isSheetModal,
1338
+ [`modal-card`]: isCardModal,
1339
+ [`modal-sheet`]: isSheetModal,
1340
+ [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll,
1341
+ 'overlay-hidden': true,
1342
+ [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
1343
+ ...getClassMap(this.cssClass),
1344
+ }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, h("ion-backdrop", { key: 'dee7fea7a218a3cf62991164304db778d9137b72', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '770ab0d08851077d30f3f18bdc287a863d03ce77', class: "modal-shadow" }), h("div", { key: '435f22d484f67624b1eecaaebef6c20cc42f37f5',
1193
1345
  /*
1194
1346
  role and aria-modal must be used on the
1195
1347
  same element. They must also be set inside the
@@ -1202,24 +1354,22 @@ export class Modal {
1202
1354
  without the tabindex focus() would be a no-op and screen readers
1203
1355
  may not properly announce the dialog and its content when it opens.
1204
1356
  */
1205
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e12aa8cdea0657254dec4534a52d79bd00fa7351', class: "modal-handle",
1357
+ role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (h("button", { key: '85e20acddde9a5335312342e885967722d5b128d', class: "modal-handle",
1206
1358
  // Prevents the handle from receiving keyboard focus when it does not cycle
1207
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", "data-focus-order": "1", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '744f526d2a1111a936a517dfad4ae0b2551cf834', onSlotchange: this.onSlotChange }))));
1359
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'deb0106d335712c42a9d866648ee90c98efb5f9d', onSlotchange: this.onSlotChange }))));
1208
1360
  }
1209
1361
  static get is() { return "ion-modal"; }
1210
1362
  static get encapsulation() { return "shadow"; }
1211
1363
  static get originalStyleUrls() {
1212
1364
  return {
1213
1365
  "ios": ["modal.ios.scss"],
1214
- "md": ["modal.md.scss"],
1215
- "ionic": ["modal.ionic.scss"]
1366
+ "md": ["modal.md.scss"]
1216
1367
  };
1217
1368
  }
1218
1369
  static get styleUrls() {
1219
1370
  return {
1220
1371
  "ios": ["modal.ios.css"],
1221
- "md": ["modal.md.css"],
1222
- "ionic": ["modal.ionic.css"]
1372
+ "md": ["modal.md.css"]
1223
1373
  };
1224
1374
  }
1225
1375
  static get properties() {
@@ -1478,13 +1628,13 @@ export class Modal {
1478
1628
  "optional": true,
1479
1629
  "docs": {
1480
1630
  "tags": [],
1481
- "text": "The interaction behavior for the sheet modal when the handle is pressed.\n\nDefaults to `\"none\"`, which means the modal will not change size or position when the handle is pressed.\nSet to `\"cycle\"` to let the modal cycle between available breakpoints when pressed.\n\nHandle behavior is unavailable when the `handle` property is set to `false` or\nwhen the `breakpoints` property is not set (using a fullscreen or card modal)."
1631
+ "text": "The interaction behavior for the sheet modal when the handle is pressed.\n\nHandle behavior is unavailable when the `handle` property is set to\n`false` or when the `breakpoints` property is not set (using a\nfullscreen or card modal).\n\nSet to `\"cycle\"` to make the handle focusable and let the sheet modal\ncycle between available breakpoints when pressed. This keeps the sheet\noperable with assistive technology.\n\nSet to `\"none\"` to make the handle purely decorative when pressed and\nremoved from the tab order.\n\nDefaults to `\"cycle\"`."
1482
1632
  },
1483
1633
  "getter": false,
1484
1634
  "setter": false,
1485
1635
  "reflect": false,
1486
1636
  "attribute": "handle-behavior",
1487
- "defaultValue": "'none'"
1637
+ "defaultValue": "'cycle'"
1488
1638
  },
1489
1639
  "component": {
1490
1640
  "type": "string",
@@ -1766,25 +1916,6 @@ export class Modal {
1766
1916
  "reflect": false,
1767
1917
  "attribute": "can-dismiss",
1768
1918
  "defaultValue": "true"
1769
- },
1770
- "shape": {
1771
- "type": "string",
1772
- "mutable": false,
1773
- "complexType": {
1774
- "original": "'soft' | 'round' | 'rectangular'",
1775
- "resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
1776
- "references": {}
1777
- },
1778
- "required": false,
1779
- "optional": true,
1780
- "docs": {
1781
- "tags": [],
1782
- "text": "Set to `\"soft\"` for a modal with slightly rounded corners,\n`\"round\"` for a modal with fully rounded corners, or `\"rectangular\"`\nfor a modal without rounded corners.\n\nDefaults to `\"round\"` for the `ionic` theme, undefined for all other themes."
1783
- },
1784
- "getter": false,
1785
- "setter": false,
1786
- "reflect": false,
1787
- "attribute": "shape"
1788
1919
  }
1789
1920
  };
1790
1921
  }