@ionic/core 8.8.18-dev.11786108988.1fd94742 → 8.8.18-dev.11786109471.1285bcfb

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 (788) 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-legacy-column.d.ts +11 -0
  59. package/components/ion-picker-legacy-column.js +4 -0
  60. package/components/ion-picker-legacy.d.ts +11 -0
  61. package/components/ion-picker-legacy.js +4 -0
  62. package/components/ion-picker.js +1 -1
  63. package/components/ion-popover.js +1 -1
  64. package/components/ion-progress-bar.js +1 -1
  65. package/components/ion-radio-group.js +1 -1
  66. package/components/ion-radio.js +1 -1
  67. package/components/ion-range.js +1 -1
  68. package/components/ion-refresher-content.js +1 -1
  69. package/components/ion-refresher.js +1 -1
  70. package/components/ion-reorder-group.js +1 -1
  71. package/components/ion-reorder.js +1 -1
  72. package/components/ion-ripple-effect.js +1 -1
  73. package/components/ion-route-redirect.js +1 -1
  74. package/components/ion-route.js +1 -1
  75. package/components/ion-router-link.js +1 -1
  76. package/components/ion-router-outlet.js +1 -1
  77. package/components/ion-router.js +1 -1
  78. package/components/ion-row.js +1 -1
  79. package/components/ion-searchbar.js +1 -1
  80. package/components/ion-segment-button.js +1 -1
  81. package/components/ion-segment-content.js +1 -1
  82. package/components/ion-segment-view.js +1 -1
  83. package/components/ion-segment.js +1 -1
  84. package/components/ion-select-modal.js +1 -1
  85. package/components/ion-select-option.js +1 -1
  86. package/components/ion-select-popover.js +1 -1
  87. package/components/ion-select.js +1 -1
  88. package/components/ion-skeleton-text.js +1 -1
  89. package/components/ion-spinner.js +1 -1
  90. package/components/ion-split-pane.js +1 -1
  91. package/components/ion-tab-bar.js +1 -1
  92. package/components/ion-tab-button.js +1 -1
  93. package/components/ion-tab.js +1 -1
  94. package/components/ion-tabs.js +1 -1
  95. package/components/ion-text.js +1 -1
  96. package/components/ion-textarea.js +1 -1
  97. package/components/ion-thumbnail.js +1 -1
  98. package/components/ion-title.js +1 -1
  99. package/components/ion-toast.js +1 -1
  100. package/components/ion-toggle.js +1 -1
  101. package/components/ion-toolbar.js +1 -1
  102. package/components/{p-AqD_wmvU.js → p--JUspHvy.js} +1 -1
  103. package/components/p-A3O24YmY.js +4 -0
  104. package/components/p-ABkNVeU9.js +4 -0
  105. package/{dist/ionic/p-CHpEzg-o.js → components/p-B-JJgYSG.js} +1 -1
  106. package/components/p-B9jFTlwE.js +4 -0
  107. package/components/p-BLmJ0zRm.js +4 -0
  108. package/components/p-BMI53wYL.js +4 -0
  109. package/components/p-BMaKgJFV.js +4 -0
  110. package/components/p-BSEgsdFI.js +4 -0
  111. package/components/p-BTEOs1at.js +4 -0
  112. package/{dist/ionic/p-aL0G45tD.js → components/p-BkKAANMJ.js} +1 -1
  113. package/components/p-BlIAuGv2.js +4 -0
  114. package/components/p-Bnsn6KaP.js +4 -0
  115. package/components/p-BsBCoGa-.js +4 -0
  116. package/components/p-Bz0dSlXZ.js +4 -0
  117. package/components/p-C53feagD.js +4 -0
  118. package/components/p-CHqRYvYm.js +4 -0
  119. package/components/p-CQGnMY3n.js +4 -0
  120. package/components/p-CSZf8_j0.js +4 -0
  121. package/components/{p-ltNYIRmI.js → p-C_hpsif8.js} +1 -1
  122. package/components/p-C_xFdyXe.js +4 -0
  123. package/components/p-Cf2jSDS8.js +4 -0
  124. package/components/p-Cfx4M1Bn.js +4 -0
  125. package/components/{p-C6JOi8wS.js → p-ChIZKXUu.js} +1 -1
  126. package/components/p-CkMSOsFF.js +4 -0
  127. package/components/p-Cl0B-RWe.js +4 -0
  128. package/components/p-CmR5uXej.js +4 -0
  129. package/components/p-Cp4GRDqq.js +4 -0
  130. package/components/p-CsNJ1ULL.js +4 -0
  131. package/components/p-CtWGkNnJ.js +4 -0
  132. package/components/p-CzCbeKys.js +4 -0
  133. package/components/p-D-aHdMxW.js +4 -0
  134. package/components/p-D0d8qTwj.js +4 -0
  135. package/components/p-D13Eaw-8.js +4 -0
  136. package/components/{p-D0pL_HuH.js → p-D3xo7hqU.js} +1 -1
  137. package/components/p-D6Ynv7Xh.js +4 -0
  138. package/components/p-D7uN07a3.js +4 -0
  139. package/components/p-DCnGU1fF.js +4 -0
  140. package/components/p-DGvrK8dD.js +4 -0
  141. package/components/p-DOFCbuQR.js +4 -0
  142. package/components/p-DV5mPYQS.js +4 -0
  143. package/components/p-DWkAgceV.js +4 -0
  144. package/components/p-DiVJyqlX.js +4 -0
  145. package/components/{p-Dcu-SAJG.js → p-DqLB8yFQ.js} +1 -1
  146. package/components/p-DqZAXv2t.js +4 -0
  147. package/components/p-Osve4qkc.js +4 -0
  148. package/components/p-R8zmRi4c.js +4 -0
  149. package/components/p-SLS1rDZM.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/components/p-cyNmxje6.js +4 -0
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-j5IxBIan.js +4 -0
  154. package/components/p-k_E4tX5Z.js +4 -0
  155. package/components/p-oD4kcBRX.js +4 -0
  156. package/components/p-rCa2eL0j.js +4 -0
  157. package/components/p-scxfI1Dd.js +4 -0
  158. package/components/p-tr4_8ZS8.js +4 -0
  159. package/components/p-vRBNsYbs.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/dist/cjs/{animation-D5WDBRvT.js → animation-BJq0kcy2.js} +4 -4
  162. package/dist/cjs/{app-globals-C2s3Cbal.js → app-globals-BlqrqKTN.js} +1 -1
  163. package/dist/cjs/{button-active-CXI2TseG.js → button-active-0mPOKmV2.js} +3 -3
  164. package/dist/cjs/config-xninhj0J.js +201 -0
  165. package/dist/cjs/{dir-Brx7VkvP.js → dir-Cn0z1rJH.js} +1 -1
  166. package/dist/cjs/{format-ZfKtcdit.js → format-PxvGiOik.js} +30 -40
  167. package/dist/cjs/{framework-delegate-Bdvk3JQO.js → framework-delegate-BtICZDHr.js} +7 -5
  168. package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
  169. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-ClPPQ_PS.js} +3 -2
  170. package/dist/cjs/{hardware-back-button-zr8zeYaH.js → hardware-back-button-iUuF_76h.js} +4 -4
  171. package/dist/cjs/{helpers-DURh1XdY.js → helpers-Cv23MFHM.js} +3 -3
  172. package/dist/cjs/{index-DsoHs7Ly.js → index-BERfRao3.js} +5 -5
  173. package/dist/cjs/{index-P1nQxrpZ.js → index-CAvQ7Tka.js} +4 -10
  174. package/dist/cjs/{index-CAThePqm.js → index-Ct7gcRif.js} +6 -4
  175. package/dist/cjs/{index-Btdix80K.js → index-D81eLYUM.js} +2 -2
  176. package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
  177. package/dist/cjs/{index-BnhnwL1o.js → index-Dqpns5vP.js} +34 -2
  178. package/dist/cjs/{index-B7sCu6vN.js → index-aC4x3Fk3.js} +7 -6
  179. package/dist/cjs/index.cjs.js +18 -18
  180. package/dist/cjs/{input-shims-CPbWb84M.js → input-shims-DpA1zUN9.js} +11 -9
  181. package/dist/cjs/{input.utils-CkASW3mE.js → input.utils-DetjmtH2.js} +4 -3
  182. package/dist/cjs/ion-accordion_2.cjs.entry.js +340 -368
  183. package/dist/cjs/ion-action-sheet.cjs.entry.js +76 -187
  184. package/dist/cjs/ion-alert.cjs.entry.js +111 -273
  185. package/dist/cjs/ion-app_8.cjs.entry.js +190 -306
  186. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
  187. package/dist/cjs/ion-back-button.cjs.entry.js +23 -47
  188. package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
  189. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +121 -199
  190. package/dist/cjs/ion-button_2.cjs.entry.js +66 -138
  191. package/dist/cjs/ion-card_5.cjs.entry.js +30 -82
  192. package/dist/cjs/ion-checkbox.cjs.entry.js +101 -152
  193. package/dist/cjs/ion-chip.cjs.entry.js +11 -17
  194. package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
  195. package/dist/cjs/ion-datetime-button.cjs.entry.js +241 -253
  196. package/dist/cjs/ion-datetime_3.cjs.entry.js +3164 -0
  197. package/dist/cjs/ion-fab_3.cjs.entry.js +81 -139
  198. package/dist/cjs/ion-img.cjs.entry.js +12 -34
  199. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +72 -100
  200. package/dist/cjs/ion-input-otp.cjs.entry.js +370 -433
  201. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +19 -33
  202. package/dist/cjs/ion-input.cjs.entry.js +168 -314
  203. package/dist/cjs/ion-item-option_3.cjs.entry.js +51 -91
  204. package/dist/cjs/ion-item_8.cjs.entry.js +82 -181
  205. package/dist/cjs/ion-loading.cjs.entry.js +60 -146
  206. package/dist/cjs/ion-menu_3.cjs.entry.js +101 -163
  207. package/dist/cjs/ion-modal.cjs.entry.js +283 -482
  208. package/dist/cjs/ion-nav_2.cjs.entry.js +157 -100
  209. package/dist/cjs/ion-picker-column-option.cjs.entry.js +33 -37
  210. package/dist/cjs/ion-picker-column.cjs.entry.js +405 -417
  211. package/dist/cjs/ion-picker.cjs.entry.js +392 -401
  212. package/dist/cjs/ion-popover.cjs.entry.js +205 -319
  213. package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -31
  214. package/dist/cjs/ion-radio_2.cjs.entry.js +133 -206
  215. package/dist/cjs/ion-range.cjs.entry.js +237 -302
  216. package/dist/cjs/ion-refresher_2.cjs.entry.js +94 -166
  217. package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -53
  218. package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
  219. package/dist/cjs/ion-route_4.cjs.entry.js +71 -175
  220. package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
  221. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  222. package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
  223. package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
  224. package/dist/cjs/ion-select-modal.cjs.entry.js +48 -104
  225. package/dist/cjs/ion-select_3.cjs.entry.js +214 -759
  226. package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
  227. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
  228. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +41 -100
  229. package/dist/cjs/ion-tab_2.cjs.entry.js +27 -53
  230. package/dist/cjs/ion-text.cjs.entry.js +5 -11
  231. package/dist/cjs/ion-textarea.cjs.entry.js +144 -263
  232. package/dist/cjs/ion-toast.cjs.entry.js +117 -236
  233. package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
  234. package/dist/cjs/{ionic-global-dMut1Czp.js → ionic-global-B-cA6LkY.js} +8 -13
  235. package/dist/cjs/ionic.cjs.js +4 -4
  236. package/dist/cjs/{ios.transition-CeaFa0y2.js → ios.transition-BOSWOaiK.js} +17 -13
  237. package/dist/cjs/{item-multiple-inputs-HQO5Iy9I.js → item-multiple-inputs-D-gyg57c.js} +1 -1
  238. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-UuAS4D_9.js} +2 -2
  239. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-GXBiBRKS.js} +6 -6
  240. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-hHzlEQpk.js} +2 -2
  241. package/dist/cjs/loader.cjs.js +4 -4
  242. package/dist/cjs/{md.transition-D4Q5jny7.js → md.transition-B8-wBZqt.js} +8 -7
  243. package/dist/cjs/{notch-controller-fMfidI-7.js → notch-controller-18PzRGXd.js} +1 -1
  244. package/dist/cjs/{overlays-C2qrqpHm.js → overlays-DdtIYQUH.js} +33 -48
  245. package/dist/cjs/{status-tap-CgjQ-6jq.js → status-tap-N1kaBbuk.js} +3 -3
  246. package/dist/cjs/{swipe-back-CmfRYdWQ.js → swipe-back-C0GCB18x.js} +5 -5
  247. package/dist/cjs/{theme-Bw0rpaNN.js → theme-CeDs6Hcv.js} +1 -6
  248. package/dist/collection/collection-manifest.json +10 -6
  249. package/dist/collection/components/accordion/accordion.js +312 -315
  250. package/dist/collection/components/accordion-group/accordion-group.js +25 -48
  251. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -228
  252. package/dist/collection/components/action-sheet/action-sheet.js +64 -173
  253. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -174
  254. package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
  255. package/dist/collection/components/alert/alert.ios.css +10 -279
  256. package/dist/collection/components/alert/alert.js +97 -257
  257. package/dist/collection/components/alert/alert.md.css +20 -268
  258. package/dist/collection/components/app/app.js +0 -3
  259. package/dist/collection/components/back-button/back-button.js +19 -42
  260. package/dist/collection/components/backdrop/backdrop.js +14 -16
  261. package/dist/collection/components/badge/badge.js +0 -6
  262. package/dist/collection/components/breadcrumb/breadcrumb.js +30 -91
  263. package/dist/collection/components/breadcrumbs/breadcrumbs.js +88 -103
  264. package/dist/collection/components/button/button.js +61 -132
  265. package/dist/collection/components/buttons/buttons.js +15 -13
  266. package/dist/collection/components/card/card.js +21 -54
  267. package/dist/collection/components/card-header/card-header.js +8 -12
  268. package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
  269. package/dist/collection/components/card-title/card-title.js +0 -6
  270. package/dist/collection/components/checkbox/checkbox.js +97 -147
  271. package/dist/collection/components/chip/chip.js +10 -14
  272. package/dist/collection/components/col/col.js +3 -127
  273. package/dist/collection/components/content/content.js +64 -92
  274. package/dist/collection/components/datetime/datetime.ios.css +2 -42
  275. package/dist/collection/components/datetime/datetime.js +812 -1047
  276. package/dist/collection/components/datetime/datetime.md.css +1 -42
  277. package/dist/collection/components/datetime/utils/data.js +14 -13
  278. package/dist/collection/components/datetime/utils/format.js +11 -21
  279. package/dist/collection/components/datetime/utils/manipulation.js +8 -8
  280. package/dist/collection/components/datetime/utils/parse.js +10 -10
  281. package/dist/collection/components/datetime/utils/state.js +2 -8
  282. package/dist/collection/components/datetime/utils/validate.js +5 -4
  283. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -5
  284. package/dist/collection/components/datetime-button/datetime-button.js +237 -247
  285. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -5
  286. package/dist/collection/components/fab/fab.js +13 -20
  287. package/dist/collection/components/fab-button/fab-button.js +55 -104
  288. package/dist/collection/components/fab-list/fab-list.js +11 -10
  289. package/dist/collection/components/footer/footer.js +44 -50
  290. package/dist/collection/components/grid/grid.js +6 -4
  291. package/dist/collection/components/header/header.js +25 -35
  292. package/dist/collection/components/img/img.js +10 -34
  293. package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
  294. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
  295. package/dist/collection/components/input/input.ios.css +2 -1
  296. package/dist/collection/components/input/input.js +164 -309
  297. package/dist/collection/components/input/input.md.css +2 -1
  298. package/dist/collection/components/input-otp/input-otp.js +366 -428
  299. package/dist/collection/components/input-password-toggle/input-password-toggle.js +16 -29
  300. package/dist/collection/components/item/item.js +53 -99
  301. package/dist/collection/components/item-divider/item-divider.js +10 -15
  302. package/dist/collection/components/item-option/item-option.js +21 -49
  303. package/dist/collection/components/item-options/item-options.js +7 -10
  304. package/dist/collection/components/item-sliding/item-sliding.js +20 -26
  305. package/dist/collection/components/label/label.js +4 -24
  306. package/dist/collection/components/list/list.js +7 -10
  307. package/dist/collection/components/list-header/list-header.js +0 -10
  308. package/dist/collection/components/loading/loading.js +51 -135
  309. package/dist/collection/components/menu/menu.js +59 -101
  310. package/dist/collection/components/menu-button/menu-button.js +20 -29
  311. package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
  312. package/dist/collection/components/modal/animations/ios.enter.js +1 -1
  313. package/dist/collection/components/modal/animations/md.enter.js +1 -1
  314. package/dist/collection/components/modal/gestures/sheet.js +12 -29
  315. package/dist/collection/components/modal/gestures/swipe-to-close.js +5 -33
  316. package/dist/collection/components/modal/gestures/utils.js +17 -0
  317. package/dist/collection/components/modal/modal.js +224 -393
  318. package/dist/collection/components/modal/safe-area-utils.js +5 -4
  319. package/dist/collection/components/modal/test/fixtures.js +0 -3
  320. package/dist/collection/components/nav/nav.js +247 -69
  321. package/dist/collection/components/nav/view-controller.js +1 -7
  322. package/dist/collection/components/nav-link/nav-link.js +9 -20
  323. package/dist/collection/components/note/note.js +0 -6
  324. package/dist/collection/components/picker/picker.js +390 -398
  325. package/dist/collection/components/picker-column/picker-column.css +0 -3
  326. package/dist/collection/components/picker-column/picker-column.js +404 -414
  327. package/dist/collection/components/picker-column-option/picker-column-option.js +31 -33
  328. package/dist/collection/components/picker-column-option/picker-column-option.md.css +1 -6
  329. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  330. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  331. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  332. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  333. package/dist/collection/components/picker-legacy/picker.js +890 -0
  334. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  335. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  336. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  337. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  338. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  339. package/dist/collection/components/popover/animations/ios.enter.js +2 -1
  340. package/dist/collection/components/popover/animations/md.enter.js +2 -1
  341. package/dist/collection/components/popover/popover.ios.css +0 -15
  342. package/dist/collection/components/popover/popover.js +185 -302
  343. package/dist/collection/components/popover/popover.md.css +0 -15
  344. package/dist/collection/components/popover/test/fixture.js +0 -1
  345. package/dist/collection/components/popover/utils.js +6 -4
  346. package/dist/collection/components/progress-bar/progress-bar.js +23 -27
  347. package/dist/collection/components/radio/radio.js +66 -102
  348. package/dist/collection/components/radio-group/radio-group.js +65 -100
  349. package/dist/collection/components/radio-group/test/fixtures.js +0 -2
  350. package/dist/collection/components/range/range.js +232 -296
  351. package/dist/collection/components/refresher/refresher.js +80 -112
  352. package/dist/collection/components/refresher-content/refresher-content.js +4 -41
  353. package/dist/collection/components/reorder/reorder.js +1 -2
  354. package/dist/collection/components/reorder-group/reorder-group.js +15 -44
  355. package/dist/collection/components/ripple-effect/ripple-effect.js +13 -12
  356. package/dist/collection/components/route/route.js +10 -39
  357. package/dist/collection/components/route-redirect/route-redirect.js +0 -31
  358. package/dist/collection/components/router/router.js +33 -37
  359. package/dist/collection/components/router/utils/dom.js +7 -25
  360. package/dist/collection/components/router/utils/matching.js +9 -7
  361. package/dist/collection/components/router/utils/parser.js +1 -1
  362. package/dist/collection/components/router/utils/path.js +1 -0
  363. package/dist/collection/components/router-link/router-link.js +12 -37
  364. package/dist/collection/components/router-outlet/router-outlet.js +21 -82
  365. package/dist/collection/components/row/row.js +1 -1
  366. package/dist/collection/components/searchbar/searchbar.js +199 -289
  367. package/dist/collection/components/segment/segment.js +85 -120
  368. package/dist/collection/components/segment-button/segment-button.js +37 -43
  369. package/dist/collection/components/segment-content/segment-content.js +1 -1
  370. package/dist/collection/components/segment-view/segment-view.js +16 -26
  371. package/dist/collection/components/select/select.ios.css +0 -33
  372. package/dist/collection/components/select/select.js +166 -597
  373. package/dist/collection/components/select/select.md.css +0 -33
  374. package/dist/collection/components/select-modal/select-modal.ios.css +0 -218
  375. package/dist/collection/components/select-modal/select-modal.js +38 -92
  376. package/dist/collection/components/select-modal/select-modal.md.css +0 -164
  377. package/dist/collection/components/select-modal/test/fixtures.js +1 -8
  378. package/dist/collection/components/select-option/select-option.js +9 -110
  379. package/dist/collection/components/select-popover/select-popover.ios.css +0 -218
  380. package/dist/collection/components/select-popover/select-popover.js +36 -103
  381. package/dist/collection/components/select-popover/select-popover.md.css +0 -164
  382. package/dist/collection/components/select-popover/test/fixtures.js +1 -8
  383. package/dist/collection/components/skeleton-text/skeleton-text.js +8 -12
  384. package/dist/collection/components/spinner/spinner.js +9 -21
  385. package/dist/collection/components/split-pane/split-pane.js +15 -27
  386. package/dist/collection/components/tab/tab.js +6 -17
  387. package/dist/collection/components/tab-bar/tab-bar.js +14 -32
  388. package/dist/collection/components/tab-button/tab-button.js +23 -62
  389. package/dist/collection/components/tabs/tabs.js +20 -33
  390. package/dist/collection/components/text/text.js +2 -8
  391. package/dist/collection/components/textarea/textarea.js +139 -257
  392. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  393. package/dist/collection/components/title/title.js +2 -18
  394. package/dist/collection/components/toast/toast.js +106 -223
  395. package/dist/collection/components/toggle/toggle.js +115 -167
  396. package/dist/collection/components/toolbar/toolbar.js +7 -15
  397. package/dist/collection/global/config.js +6 -4
  398. package/dist/collection/global/ionic-global.js +2 -8
  399. package/dist/collection/index.js +1 -1
  400. package/dist/collection/utils/animation/animation.js +3 -3
  401. package/dist/collection/utils/config.js +4 -5
  402. package/dist/collection/utils/content/index.js +30 -0
  403. package/dist/collection/utils/focus-controller/index.js +1 -1
  404. package/dist/collection/utils/focus-trap.js +3 -3
  405. package/dist/collection/utils/framework-delegate.js +6 -4
  406. package/dist/collection/utils/gesture/gesture-controller.js +8 -15
  407. package/dist/collection/utils/gesture/index.js +2 -10
  408. package/dist/collection/utils/gesture/listener.js +1 -1
  409. package/dist/collection/utils/hardware-back-button.js +3 -3
  410. package/dist/collection/utils/helpers.js +2 -2
  411. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -4
  412. package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
  413. package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
  414. package/dist/collection/utils/keyboard/keyboard.js +1 -1
  415. package/dist/collection/utils/menu-controller/index.js +2 -1
  416. package/dist/collection/utils/native/haptic.js +3 -2
  417. package/dist/collection/utils/native/keyboard.js +2 -2
  418. package/dist/collection/utils/native/status-bar.js +1 -1
  419. package/dist/collection/utils/overlays.js +23 -38
  420. package/dist/collection/utils/platform.js +5 -4
  421. package/dist/collection/utils/rtl/dir.js +1 -1
  422. package/dist/collection/utils/sanitization/index.js +20 -276
  423. package/dist/collection/utils/slot-mutation-controller.js +2 -1
  424. package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
  425. package/dist/collection/utils/test/playwright/drag-element.js +3 -2
  426. package/dist/collection/utils/test/playwright/generator.js +4 -3
  427. package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
  428. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
  429. package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
  430. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +3 -2
  431. package/dist/collection/utils/test/press-keys.js +17 -10
  432. package/dist/collection/utils/theme.js +1 -6
  433. package/dist/collection/utils/transition/ios.transition.js +13 -9
  434. package/dist/collection/utils/transition/md.transition.js +4 -3
  435. package/dist/docs.json +1267 -551
  436. package/dist/esm/{animation-CVK55yMY.js → animation-DLJpuoEz.js} +4 -4
  437. package/dist/esm/{app-globals-Bk1_t4sH.js → app-globals-D0C5S4hU.js} +1 -1
  438. package/dist/esm/{button-active-CdCqmeT0.js → button-active-BSpTQmS9.js} +3 -3
  439. package/dist/esm/config-DQCONYYp.js +195 -0
  440. package/dist/esm/{dir-B-FxiyeI.js → dir-C53feagD.js} +1 -1
  441. package/dist/esm/{format-sMi4BZ_l.js → format-CAmvpAez.js} +31 -41
  442. package/dist/esm/{framework-delegate-BfAlKlW5.js → framework-delegate-FnPGymXL.js} +7 -5
  443. package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
  444. package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
  445. package/dist/esm/{hardware-back-button-DcHMMB9j.js → hardware-back-button-B93Gru0Y.js} +4 -4
  446. package/dist/esm/{helpers-BPcITY5s.js → helpers-HEqiOzXb.js} +3 -3
  447. package/dist/esm/{index-B9GsUd2c.js → index-BRHzoo00.js} +2 -2
  448. package/dist/esm/{index-DqVqy_Cy.js → index-B_dQk_WE.js} +5 -5
  449. package/dist/esm/{index-DppOcPFQ.js → index-CfgBF1SE.js} +4 -10
  450. package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
  451. package/dist/esm/{index-DcUt1pPn.js → index-Dw-wN0Ja.js} +33 -3
  452. package/dist/esm/{index-ks-BjikL.js → index-Q6UPU0Ay.js} +7 -6
  453. package/dist/esm/{index-D1CQtpUN.js → index-tcQvqkiX.js} +7 -5
  454. package/dist/esm/index.js +15 -16
  455. package/dist/esm/{input-shims-C1dCKVMO.js → input-shims-LXhI7LEx.js} +11 -9
  456. package/dist/esm/{input.utils-Dd5xwlP6.js → input.utils-Y6NgW8bw.js} +4 -3
  457. package/dist/esm/ion-accordion_2.entry.js +340 -368
  458. package/dist/esm/ion-action-sheet.entry.js +76 -187
  459. package/dist/esm/ion-alert.entry.js +110 -272
  460. package/dist/esm/ion-app_8.entry.js +190 -306
  461. package/dist/esm/ion-avatar_3.entry.js +4 -10
  462. package/dist/esm/ion-back-button.entry.js +23 -47
  463. package/dist/esm/ion-backdrop.entry.js +14 -18
  464. package/dist/esm/ion-breadcrumb_2.entry.js +121 -199
  465. package/dist/esm/ion-button_2.entry.js +66 -138
  466. package/dist/esm/ion-card_5.entry.js +30 -82
  467. package/dist/esm/ion-checkbox.entry.js +101 -152
  468. package/dist/esm/ion-chip.entry.js +11 -17
  469. package/dist/esm/ion-col_3.entry.js +10 -134
  470. package/dist/esm/ion-datetime-button.entry.js +241 -253
  471. package/dist/esm/ion-datetime_3.entry.js +3160 -0
  472. package/dist/esm/ion-fab_3.entry.js +81 -139
  473. package/dist/esm/ion-img.entry.js +12 -34
  474. package/dist/esm/ion-infinite-scroll_2.entry.js +71 -99
  475. package/dist/esm/ion-input-otp.entry.js +370 -433
  476. package/dist/esm/ion-input-password-toggle.entry.js +19 -33
  477. package/dist/esm/ion-input.entry.js +168 -314
  478. package/dist/esm/ion-item-option_3.entry.js +51 -91
  479. package/dist/esm/ion-item_8.entry.js +82 -181
  480. package/dist/esm/ion-loading.entry.js +59 -145
  481. package/dist/esm/ion-menu_3.entry.js +101 -163
  482. package/dist/esm/ion-modal.entry.js +271 -470
  483. package/dist/esm/ion-nav_2.entry.js +157 -100
  484. package/dist/esm/ion-picker-column-option.entry.js +33 -37
  485. package/dist/esm/ion-picker-column.entry.js +405 -417
  486. package/dist/esm/ion-picker.entry.js +392 -401
  487. package/dist/esm/ion-popover.entry.js +205 -319
  488. package/dist/esm/ion-progress-bar.entry.js +25 -31
  489. package/dist/esm/ion-radio_2.entry.js +133 -206
  490. package/dist/esm/ion-range.entry.js +237 -302
  491. package/dist/esm/ion-refresher_2.entry.js +92 -164
  492. package/dist/esm/ion-reorder_2.entry.js +23 -53
  493. package/dist/esm/ion-ripple-effect.entry.js +14 -14
  494. package/dist/esm/ion-route_4.entry.js +71 -175
  495. package/dist/esm/ion-searchbar.entry.js +200 -291
  496. package/dist/esm/ion-segment-content.entry.js +2 -2
  497. package/dist/esm/ion-segment-view.entry.js +17 -28
  498. package/dist/esm/ion-segment_2.entry.js +126 -169
  499. package/dist/esm/ion-select-modal.entry.js +48 -104
  500. package/dist/esm/ion-select_3.entry.js +215 -760
  501. package/dist/esm/ion-spinner.entry.js +10 -24
  502. package/dist/esm/ion-split-pane.entry.js +16 -29
  503. package/dist/esm/ion-tab-bar_2.entry.js +41 -100
  504. package/dist/esm/ion-tab_2.entry.js +27 -53
  505. package/dist/esm/ion-text.entry.js +5 -11
  506. package/dist/esm/ion-textarea.entry.js +144 -263
  507. package/dist/esm/ion-toast.entry.js +116 -235
  508. package/dist/esm/ion-toggle.entry.js +122 -175
  509. package/dist/esm/{ionic-global-5bZ91kOL.js → ionic-global-Cp_eT4sZ.js} +8 -13
  510. package/dist/esm/ionic.js +5 -5
  511. package/dist/esm/{ios.transition-OcwIGkv9.js → ios.transition-ClFrsIrS.js} +17 -13
  512. package/dist/esm/{item-multiple-inputs-ifd3ZrqY.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  513. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
  514. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
  515. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
  516. package/dist/esm/loader.js +5 -5
  517. package/dist/esm/{md.transition-BetdF0bc.js → md.transition-D0msQmzI.js} +8 -7
  518. package/dist/esm/{notch-controller-DBSn-Uat.js → notch-controller-DKDjU_O7.js} +1 -1
  519. package/dist/esm/{overlays-DUzb9CQf.js → overlays-Dg0q2_tJ.js} +33 -48
  520. package/dist/esm/{status-tap-C-wNhea0.js → status-tap-vO-6s4Yp.js} +3 -3
  521. package/dist/esm/{swipe-back-D6YSgAn7.js → swipe-back-DQ1q5MgD.js} +5 -5
  522. package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
  523. package/dist/html.html-data.json +80 -52
  524. package/dist/ionic/index.esm.js +1 -1
  525. package/dist/ionic/ionic.esm.js +1 -1
  526. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  527. package/dist/ionic/p-06c232a4.entry.js +4 -0
  528. package/dist/ionic/p-0caa922c.entry.js +4 -0
  529. package/dist/ionic/p-0dc33652.entry.js +4 -0
  530. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  531. package/dist/ionic/p-10e833ef.entry.js +4 -0
  532. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  533. package/dist/ionic/p-27d30585.entry.js +4 -0
  534. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  535. package/dist/ionic/p-2b204c59.entry.js +4 -0
  536. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  537. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  538. package/dist/ionic/p-3353c229.entry.js +4 -0
  539. package/dist/ionic/p-34586ead.entry.js +4 -0
  540. package/dist/ionic/p-37e720da.entry.js +4 -0
  541. package/dist/ionic/p-390ca786.entry.js +4 -0
  542. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  543. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  544. package/dist/ionic/p-4745f534.entry.js +4 -0
  545. package/dist/ionic/p-4858af1f.entry.js +4 -0
  546. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  547. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  548. package/dist/ionic/p-5018dfc8.entry.js +4 -0
  549. package/dist/ionic/p-50e1194a.entry.js +4 -0
  550. package/dist/ionic/p-5334df12.entry.js +4 -0
  551. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  552. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  553. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  554. package/dist/ionic/p-746fa988.entry.js +4 -0
  555. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  556. package/dist/ionic/p-7c319341.entry.js +4 -0
  557. package/dist/ionic/p-8158d422.entry.js +4 -0
  558. package/dist/ionic/p-829367ed.entry.js +4 -0
  559. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  560. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  561. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  562. package/dist/ionic/p-9eeaBrnk.js +4 -0
  563. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  564. package/dist/ionic/p-BGqMS-oh.js +4 -0
  565. package/dist/ionic/p-BTEOs1at.js +4 -0
  566. package/dist/ionic/p-BUFIpxKM.js +4 -0
  567. package/dist/ionic/p-C0eMdTCW.js +4 -0
  568. package/dist/ionic/p-C53feagD.js +4 -0
  569. package/dist/ionic/p-CFlfIb2g.js +4 -0
  570. package/dist/ionic/p-CKvCXMs9.js +4 -0
  571. package/dist/ionic/p-Cl0B-RWe.js +4 -0
  572. package/dist/ionic/p-CmcFnK-B.js +4 -0
  573. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  574. package/dist/ionic/p-Cx3IXROA.js +4 -0
  575. package/dist/ionic/p-D-3ycHmd.js +4 -0
  576. package/dist/ionic/p-D13Eaw-8.js +4 -0
  577. package/dist/ionic/p-D4uTWt4-.js +4 -0
  578. package/{components/p-Cwsd9bue.js → dist/ionic/p-DC3RagnA.js} +1 -1
  579. package/dist/ionic/{p-BNKr91bi.js → p-DIuEbVLu.js} +1 -1
  580. package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
  581. package/dist/ionic/p-DiVJyqlX.js +4 -0
  582. package/dist/ionic/{p-I9ETXg5W.js → p-DoJvtrbw.js} +1 -1
  583. package/dist/ionic/p-DqN5EA2O.js +4 -0
  584. package/dist/ionic/p-DzWaWHGc.js +4 -0
  585. package/{components/p-BXQ7upSC.js → dist/ionic/p-KjNvRoEp.js} +1 -1
  586. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  587. package/dist/ionic/p-SNAkTDfm.js +4 -0
  588. package/dist/ionic/p-VAemlbDS.js +4 -0
  589. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  590. package/dist/ionic/{p-460da491.entry.js → p-aaeedb6b.entry.js} +1 -1
  591. package/dist/ionic/p-af55a72f.entry.js +4 -0
  592. package/dist/ionic/p-b2020591.entry.js +4 -0
  593. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  594. package/dist/ionic/p-biz8zWmJ.js +4 -0
  595. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  596. package/dist/ionic/p-c38b648e.entry.js +4 -0
  597. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  598. package/dist/ionic/{p-b40c9715.entry.js → p-c6e49f3f.entry.js} +1 -1
  599. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  600. package/dist/ionic/p-d1aac015.entry.js +4 -0
  601. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  602. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  603. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  604. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  605. package/dist/ionic/p-mjKAFv89.js +4 -0
  606. package/dist/ionic/p-tcQvqkiX.js +5 -0
  607. package/dist/ionic/p-uWtqTrG8.js +4 -0
  608. package/dist/ionic/p-viFHDgRs.js +4 -0
  609. package/dist/ionic/p-xWb6fgfq.js +4 -0
  610. package/dist/types/components/img/img.d.ts +0 -2
  611. package/dist/types/components/input/input.d.ts +1 -1
  612. package/dist/types/components/modal/gestures/utils.d.ts +11 -0
  613. package/dist/types/components/modal/modal.d.ts +4 -11
  614. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  615. package/dist/types/components/nav/nav.d.ts +22 -2
  616. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  617. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  618. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  619. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  620. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  621. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  622. package/dist/types/components/route/route.d.ts +1 -1
  623. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  624. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  625. package/dist/types/components/select/select-interface.d.ts +0 -31
  626. package/dist/types/components/select/select.d.ts +0 -18
  627. package/dist/types/components/select-option/select-option.d.ts +1 -42
  628. package/dist/types/components.d.ts +311 -74
  629. package/dist/types/index.d.ts +1 -1
  630. package/dist/types/interface.d.ts +1 -0
  631. package/dist/types/utils/config.d.ts +8 -0
  632. package/dist/types/utils/content/index.d.ts +12 -0
  633. package/dist/types/utils/overlays.d.ts +9 -11
  634. package/dist/types/utils/sanitization/index.d.ts +2 -58
  635. package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
  636. package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
  637. package/hydrate/index.js +7103 -10331
  638. package/hydrate/index.mjs +7103 -10331
  639. package/package.json +11 -54
  640. package/components/p-0tt0PTAe.js +0 -4
  641. package/components/p-3dKnMgX5.js +0 -4
  642. package/components/p-6e_5igwn.js +0 -4
  643. package/components/p-B-FxiyeI.js +0 -4
  644. package/components/p-B4COLbAV.js +0 -4
  645. package/components/p-B9zzUBwR.js +0 -4
  646. package/components/p-BFU7kgcj.js +0 -4
  647. package/components/p-BMPN55of.js +0 -4
  648. package/components/p-BPbRjpb2.js +0 -4
  649. package/components/p-BSQPZ79H.js +0 -4
  650. package/components/p-BhamHSw3.js +0 -4
  651. package/components/p-BrXE0XUu.js +0 -4
  652. package/components/p-Bv7Rqz3Z.js +0 -4
  653. package/components/p-Bw7MMRH7.js +0 -4
  654. package/components/p-C-X5vb8f.js +0 -4
  655. package/components/p-C117Majq.js +0 -4
  656. package/components/p-CCVPk59A.js +0 -4
  657. package/components/p-CEW4RXZO.js +0 -4
  658. package/components/p-CKMc290p.js +0 -4
  659. package/components/p-CO5nI-BZ.js +0 -4
  660. package/components/p-COQ_7Wwc.js +0 -4
  661. package/components/p-CQbh6Be_.js +0 -4
  662. package/components/p-CQtcj8t7.js +0 -4
  663. package/components/p-Cap9bvqr.js +0 -4
  664. package/components/p-CdP7ze2J.js +0 -4
  665. package/components/p-CfyJ_Ogc.js +0 -4
  666. package/components/p-ChWC4-vA.js +0 -4
  667. package/components/p-CmKf4pgI.js +0 -4
  668. package/components/p-CqYSqB9_.js +0 -4
  669. package/components/p-D0xd6h3Q.js +0 -4
  670. package/components/p-D28LaDuR.js +0 -4
  671. package/components/p-D7-vHX0A.js +0 -4
  672. package/components/p-D9KqizZs.js +0 -4
  673. package/components/p-DIZE3CVV.js +0 -4
  674. package/components/p-DL8rd5jo.js +0 -4
  675. package/components/p-DRcApg6F.js +0 -4
  676. package/components/p-DTTnwMiS.js +0 -4
  677. package/components/p-DWCzVL3Y.js +0 -4
  678. package/components/p-DYmrV1HT.js +0 -4
  679. package/components/p-DnINLmwC.js +0 -4
  680. package/components/p-DsNz6_gM.js +0 -4
  681. package/components/p-DtiuiOTk.js +0 -4
  682. package/components/p-DunYzubP.js +0 -4
  683. package/components/p-DwcSJ9u1.js +0 -4
  684. package/components/p-QCPSB1bo.js +0 -4
  685. package/components/p-RvtofbHn.js +0 -4
  686. package/components/p-TXPDHL13.js +0 -4
  687. package/components/p-WOFp6fXj.js +0 -4
  688. package/components/p-byZM6qHV.js +0 -4
  689. package/components/p-miSGCTAU.js +0 -4
  690. package/components/p-mpdX3emm.js +0 -4
  691. package/components/p-nvqVLrWC.js +0 -4
  692. package/components/p-qiWM96Sz.js +0 -4
  693. package/components/p-vlF0Bcfd.js +0 -4
  694. package/dist/cjs/config-CjUbvdPW.js +0 -36
  695. package/dist/cjs/index-DhSx3VvD.js +0 -429
  696. package/dist/cjs/ion-datetime.cjs.entry.js +0 -2767
  697. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  698. package/dist/cjs/select-option-render-Dh16lTnA.js +0 -123
  699. package/dist/collection/utils/overlay-control-label.js +0 -45
  700. package/dist/collection/utils/select-option-render.js +0 -118
  701. package/dist/esm/config-DWCzVL3Y.js +0 -32
  702. package/dist/esm/index-DDa8edAS.js +0 -424
  703. package/dist/esm/ion-datetime.entry.js +0 -2765
  704. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  705. package/dist/esm/select-option-render-DsW8svRr.js +0 -121
  706. package/dist/ionic/p-01eaee58.entry.js +0 -4
  707. package/dist/ionic/p-0c567140.entry.js +0 -4
  708. package/dist/ionic/p-105bb794.entry.js +0 -4
  709. package/dist/ionic/p-10d55bb6.entry.js +0 -4
  710. package/dist/ionic/p-173a87d8.entry.js +0 -4
  711. package/dist/ionic/p-178da672.entry.js +0 -4
  712. package/dist/ionic/p-1ead2857.entry.js +0 -4
  713. package/dist/ionic/p-224e2464.entry.js +0 -4
  714. package/dist/ionic/p-2268e718.entry.js +0 -4
  715. package/dist/ionic/p-2b5283f3.entry.js +0 -4
  716. package/dist/ionic/p-2b6decac.entry.js +0 -4
  717. package/dist/ionic/p-2da5d9c6.entry.js +0 -4
  718. package/dist/ionic/p-31890acd.entry.js +0 -4
  719. package/dist/ionic/p-34ef7425.entry.js +0 -4
  720. package/dist/ionic/p-34f7c1d8.entry.js +0 -4
  721. package/dist/ionic/p-3b1e6fa4.entry.js +0 -4
  722. package/dist/ionic/p-42fefd2c.entry.js +0 -4
  723. package/dist/ionic/p-440cd489.entry.js +0 -4
  724. package/dist/ionic/p-53f680e8.entry.js +0 -4
  725. package/dist/ionic/p-57ba508f.entry.js +0 -4
  726. package/dist/ionic/p-599e5a75.entry.js +0 -4
  727. package/dist/ionic/p-5f670a9e.entry.js +0 -4
  728. package/dist/ionic/p-63502088.entry.js +0 -4
  729. package/dist/ionic/p-6e6bf45d.entry.js +0 -4
  730. package/dist/ionic/p-6f0b6a48.entry.js +0 -4
  731. package/dist/ionic/p-7438c462.entry.js +0 -4
  732. package/dist/ionic/p-747716e7.entry.js +0 -4
  733. package/dist/ionic/p-7759fcaf.entry.js +0 -4
  734. package/dist/ionic/p-7a8338e2.entry.js +0 -4
  735. package/dist/ionic/p-80f9f1dc.entry.js +0 -4
  736. package/dist/ionic/p-83ff4dcb.entry.js +0 -4
  737. package/dist/ionic/p-86f03895.entry.js +0 -4
  738. package/dist/ionic/p-87b8d70e.entry.js +0 -4
  739. package/dist/ionic/p-888236bf.entry.js +0 -4
  740. package/dist/ionic/p-8a92ca23.entry.js +0 -4
  741. package/dist/ionic/p-8c9af4ad.entry.js +0 -4
  742. package/dist/ionic/p-9669f546.entry.js +0 -4
  743. package/dist/ionic/p-9bcd8b74.entry.js +0 -4
  744. package/dist/ionic/p-B-FxiyeI.js +0 -4
  745. package/dist/ionic/p-B2trYd8K.js +0 -4
  746. package/dist/ionic/p-BMPN55of.js +0 -4
  747. package/dist/ionic/p-BSQPZ79H.js +0 -4
  748. package/dist/ionic/p-BSzG1VcX.js +0 -4
  749. package/dist/ionic/p-BVgBHS96.js +0 -4
  750. package/dist/ionic/p-BX2IOAqC.js +0 -4
  751. package/dist/ionic/p-BhamHSw3.js +0 -4
  752. package/dist/ionic/p-BufXJ_A8.js +0 -4
  753. package/dist/ionic/p-C73UOs4m.js +0 -4
  754. package/dist/ionic/p-CUSwMljM.js +0 -4
  755. package/dist/ionic/p-CeOSrSdu.js +0 -4
  756. package/dist/ionic/p-CfkB7_FV.js +0 -4
  757. package/dist/ionic/p-CmKf4pgI.js +0 -4
  758. package/dist/ionic/p-CnM-CMw7.js +0 -4
  759. package/dist/ionic/p-D1CQtpUN.js +0 -5
  760. package/dist/ionic/p-D5t_-oMk.js +0 -4
  761. package/dist/ionic/p-DVYb1IVZ.js +0 -4
  762. package/dist/ionic/p-DWCzVL3Y.js +0 -4
  763. package/dist/ionic/p-DfJ-SVJf.js +0 -4
  764. package/dist/ionic/p-DmXrLsoD.js +0 -4
  765. package/dist/ionic/p-DtLHAMFW.js +0 -4
  766. package/dist/ionic/p-Dtlob2JL.js +0 -4
  767. package/dist/ionic/p-F7ipfyOA.js +0 -4
  768. package/dist/ionic/p-IaXd5VMv.js +0 -4
  769. package/dist/ionic/p-T71k3C35.js +0 -4
  770. package/dist/ionic/p-TXPDHL13.js +0 -4
  771. package/dist/ionic/p-acbb97c3.entry.js +0 -4
  772. package/dist/ionic/p-aeb85531.entry.js +0 -4
  773. package/dist/ionic/p-b157f80d.entry.js +0 -4
  774. package/dist/ionic/p-b158de5d.entry.js +0 -4
  775. package/dist/ionic/p-b852101e.entry.js +0 -4
  776. package/dist/ionic/p-byZM6qHV.js +0 -4
  777. package/dist/ionic/p-c0d81bee.entry.js +0 -4
  778. package/dist/ionic/p-c8a327fb.entry.js +0 -4
  779. package/dist/ionic/p-d42ae99f.entry.js +0 -4
  780. package/dist/ionic/p-d47ff529.entry.js +0 -4
  781. package/dist/ionic/p-eHi73fGE.js +0 -4
  782. package/dist/ionic/p-eeabce92.entry.js +0 -4
  783. package/dist/ionic/p-efc66d77.entry.js +0 -4
  784. package/dist/ionic/p-f6d203dc.entry.js +0 -4
  785. package/dist/ionic/p-u2a770LZ.js +0 -4
  786. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  787. package/dist/types/utils/select-option-render.d.ts +0 -53
  788. /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
@@ -3,24 +3,24 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index$3 = require('./index-CAThePqm.js');
7
- var index$2 = require('./index-BnhnwL1o.js');
8
- var frameworkDelegate = require('./framework-delegate-Bdvk3JQO.js');
9
- var helpers = require('./helpers-DURh1XdY.js');
6
+ var index$3 = require('./index-Ct7gcRif.js');
7
+ var index$1 = require('./index-Dqpns5vP.js');
8
+ var frameworkDelegate = require('./framework-delegate-BtICZDHr.js');
9
+ var helpers = require('./helpers-Cv23MFHM.js');
10
10
  var lockController = require('./lock-controller-aDB9wrEf.js');
11
11
  var capacitor = require('./capacitor-DmA66EwP.js');
12
- var overlays = require('./overlays-C2qrqpHm.js');
13
- var theme = require('./theme-Bw0rpaNN.js');
14
- var index$4 = require('./index-DsoHs7Ly.js');
15
- var ionicGlobal = require('./ionic-global-dMut1Czp.js');
16
- var keyboard = require('./keyboard-Cix5TVkD.js');
17
- var animation = require('./animation-D5WDBRvT.js');
12
+ var overlays = require('./overlays-DdtIYQUH.js');
13
+ var theme = require('./theme-CeDs6Hcv.js');
14
+ var index$4 = require('./index-BERfRao3.js');
15
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
16
+ var keyboard = require('./keyboard-hHzlEQpk.js');
17
+ var animation = require('./animation-BJq0kcy2.js');
18
18
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
19
- var index$1 = require('./index-P1nQxrpZ.js');
19
+ var index$2 = require('./index-CAvQ7Tka.js');
20
20
  var index = require('./index-DkNv4J_i.js');
21
- require('./hardware-back-button-zr8zeYaH.js');
22
- require('./gesture-controller-BDUH7687.js');
23
- require('./keyboard-cHxZlTyz.js');
21
+ require('./hardware-back-button-iUuF_76h.js');
22
+ require('./gesture-controller-dtqlP_q4.js');
23
+ require('./keyboard-UuAS4D_9.js');
24
24
 
25
25
  var Style;
26
26
  (function (Style) {
@@ -31,7 +31,7 @@ var Style;
31
31
  const StatusBar = {
32
32
  getEngine() {
33
33
  const capacitor$1 = capacitor.getCapacitor();
34
- if (capacitor$1?.isPluginAvailable('StatusBar')) {
34
+ if (capacitor$1 === null || capacitor$1 === void 0 ? void 0 : capacitor$1.isPluginAvailable('StatusBar')) {
35
35
  return capacitor$1.Plugins.StatusBar;
36
36
  }
37
37
  return undefined;
@@ -129,6 +129,21 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
129
129
  StatusBar.setStyle({ style: defaultStyle });
130
130
  };
131
131
 
132
+ /**
133
+ * Swiping is only possible when the content is scrolled to the top, so that we
134
+ * do not interfere with scrolling, and never on content with a refresher.
135
+ *
136
+ * Note: We cannot solve the refresher case with gesture priority as the iOS
137
+ * native refresh gesture uses a scroll listener in addition to a gesture.
138
+ *
139
+ * Note: Do not use `getScrollElement` here because we need this to be a
140
+ * synchronous operation, and `getScrollElement` is asynchronous.
141
+ */
142
+ const canSwipeOnContent = (contentEl) => {
143
+ const scrollEl = index$1.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
144
+ const hasRefresherInContent = !!index$1.findRefresherInContent(contentEl);
145
+ return !hasRefresherInContent && scrollEl.scrollTop === 0;
146
+ };
132
147
  const handleCanDismiss = async (el, animation) => {
133
148
  /**
134
149
  * If canDismiss is not a function
@@ -259,12 +274,11 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
259
274
  let isOpen = false;
260
275
  let canDismissBlocksGesture = false;
261
276
  let contentEl = null;
262
- let scrollEl = null;
263
277
  const canDismissMaxStep = 0.2;
264
278
  let initialScrollY = true;
265
279
  let lastStep = 0;
266
280
  const getScrollY = () => {
267
- if (contentEl && index$2.isIonContent(contentEl)) {
281
+ if (contentEl && index$1.isIonContent(contentEl)) {
268
282
  return contentEl.scrollY;
269
283
  /**
270
284
  * Custom scroll containers are intended to be
@@ -282,12 +296,6 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
282
296
  return true;
283
297
  }
284
298
  /**
285
- * If we are swiping on the content,
286
- * swiping should only be possible if
287
- * the content is scrolled all the way
288
- * to the top so that we do not interfere
289
- * with scrolling.
290
- *
291
299
  * We cannot assume that the `ion-content`
292
300
  * target will remain consistent between
293
301
  * swipes. For example, when using
@@ -296,31 +304,9 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
296
304
  * swipe again. The target content will not
297
305
  * be the same between swipes.
298
306
  */
299
- contentEl = index$2.findClosestIonContent(target);
307
+ contentEl = index$1.findClosestIonContent(target);
300
308
  if (contentEl) {
301
- /**
302
- * The card should never swipe to close
303
- * on the content with a refresher.
304
- * Note: We cannot solve this by making the
305
- * swipeToClose gesture have a higher priority
306
- * than the refresher gesture as the iOS native
307
- * refresh gesture uses a scroll listener in
308
- * addition to a gesture.
309
- *
310
- * Note: Do not use getScrollElement here
311
- * because we need this to be a synchronous
312
- * operation, and getScrollElement is
313
- * asynchronous.
314
- */
315
- if (index$2.isIonContent(contentEl)) {
316
- const root = helpers.getElementRoot(contentEl);
317
- scrollEl = root.querySelector('.inner-scroll');
318
- }
319
- else {
320
- scrollEl = contentEl;
321
- }
322
- const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
323
- return !hasRefresherInContent && scrollEl.scrollTop === 0;
309
+ return canSwipeOnContent(contentEl);
324
310
  }
325
311
  /**
326
312
  * Card should be swipeable on all
@@ -333,13 +319,14 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
333
319
  return false;
334
320
  };
335
321
  const onStart = (detail) => {
322
+ var _a;
336
323
  const { deltaY } = detail;
337
324
  /**
338
325
  * Firefox automatically selects the header text during drag
339
326
  * due to the focusable wrapper (tabindex="-1"). Remove any
340
327
  * selection that may have occurred.
341
328
  */
342
- window.getSelection()?.removeAllRanges();
329
+ (_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
343
330
  /**
344
331
  * Get the initial scrollY value so
345
332
  * that we can correctly reset the scrollY
@@ -362,7 +349,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
362
349
  * happen at the same time as the gesture.
363
350
  */
364
351
  if (deltaY > 0 && contentEl) {
365
- index$2.disableContentScrollY(contentEl);
352
+ index$1.disableContentScrollY(contentEl);
366
353
  }
367
354
  animation.progressStart(true, isOpen ? 1 : 0);
368
355
  onDragStart();
@@ -376,7 +363,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
376
363
  * happen at the same time as the gesture.
377
364
  */
378
365
  if (deltaY > 0 && contentEl) {
379
- index$2.disableContentScrollY(contentEl);
366
+ index$1.disableContentScrollY(contentEl);
380
367
  }
381
368
  /**
382
369
  * If we are swiping on the content
@@ -471,7 +458,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
471
458
  isOpen = shouldComplete;
472
459
  gesture.enable(false);
473
460
  if (contentEl) {
474
- index$2.resetContentScrollY(contentEl, initialScrollY);
461
+ index$1.resetContentScrollY(contentEl, initialScrollY);
475
462
  }
476
463
  animation
477
464
  .onFinish(() => {
@@ -506,7 +493,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
506
493
  };
507
494
  onDragEnd(eventDetail);
508
495
  };
509
- const gesture = index$1.createGesture({
496
+ const gesture = index$2.createGesture({
510
497
  el,
511
498
  gestureName: 'modalSwipeToClose',
512
499
  gesturePriority: overlays.OVERLAY_GESTURE_PRIORITY,
@@ -639,7 +626,7 @@ const iosEnterAnimation = (baseEl, opts) => {
639
626
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
640
627
  // The content animation is only added if scrolling is enabled for
641
628
  // all the breakpoints.
642
- !expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
629
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
643
630
  const baseAnimation = animation.createAnimation('entering-base')
644
631
  .addElement(baseEl)
645
632
  .easing('cubic-bezier(0.32,0.72,0,1)')
@@ -972,7 +959,7 @@ const mdEnterAnimation = (baseEl, opts) => {
972
959
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
973
960
  // The content animation is only added if scrolling is enabled for
974
961
  // all the breakpoints.
975
- !expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
962
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
976
963
  const baseAnimation = animation.createAnimation()
977
964
  .addElement(baseEl)
978
965
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
@@ -1096,9 +1083,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1096
1083
  cachedFooterEl.style.removeProperty('height');
1097
1084
  cachedFooterEl.style.removeProperty('top');
1098
1085
  cachedFooterEl.style.removeProperty('left');
1099
- page?.style.removeProperty('padding-bottom');
1086
+ page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
1100
1087
  // Move to page
1101
- page?.appendChild(cachedFooterEl);
1088
+ page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
1102
1089
  });
1103
1090
  }
1104
1091
  else {
@@ -1142,7 +1129,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1142
1129
  // when the footer is positioned absolutely. This has to be done before we
1143
1130
  // make the footer absolutely positioned or we may accidentally cause the
1144
1131
  // sheet to scroll.
1145
- page?.style.setProperty('padding-bottom', `${footerHeights}px`);
1132
+ page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
1146
1133
  // Apply positioning styles to keep footer at bottom
1147
1134
  cachedFooterEl.classList.add('modal-footer-moving');
1148
1135
  // Apply our preserved styles to pin the footer
@@ -1167,7 +1154,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1167
1154
  if (wrapperAnimation && backdropAnimation) {
1168
1155
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
1169
1156
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1170
- contentAnimation?.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1157
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1171
1158
  animation.progressStart(true, 1 - currentBreakpoint);
1172
1159
  /**
1173
1160
  * If backdrop is not enabled, then content
@@ -1191,46 +1178,29 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1191
1178
  }
1192
1179
  const canStart = (detail) => {
1193
1180
  /**
1194
- * If we are swiping on the content, swiping should only be possible if the content
1195
- * is scrolled all the way to the top so that we do not interfere with scrolling.
1196
- *
1197
1181
  * We cannot assume that the `ion-content` target will remain consistent between swipes.
1198
1182
  * For example, when using ion-nav within a modal it is possible to swipe, push a view,
1199
1183
  * and then swipe again. The target content will not be the same between swipes.
1200
1184
  */
1201
- const contentEl = index$2.findClosestIonContent(detail.event.target);
1185
+ const contentEl = index$1.findClosestIonContent(detail.event.target);
1202
1186
  currentBreakpoint = getCurrentBreakpoint();
1203
1187
  /**
1204
- * If `expandToScroll` is disabled, we should not allow the swipe gesture
1205
- * to start if the content is not scrolled to the top.
1188
+ * Upwards swipes on the content cannot move the sheet anyway, so this only
1189
+ * blocks swiping the sheet down from the content.
1206
1190
  */
1207
- if (!expandToScroll && contentEl) {
1208
- const scrollEl = index$2.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1209
- return scrollEl.scrollTop === 0;
1210
- }
1211
- if (currentBreakpoint === 1 && contentEl) {
1212
- /**
1213
- * The modal should never swipe to close on the content with a refresher.
1214
- * Note 1: We cannot solve this by making this gesture have a higher priority than
1215
- * the refresher gesture as the iOS native refresh gesture uses a scroll listener in
1216
- * addition to a gesture.
1217
- *
1218
- * Note 2: Do not use getScrollElement here because we need this to be a synchronous
1219
- * operation, and getScrollElement is asynchronous.
1220
- */
1221
- const scrollEl = index$2.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1222
- const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
1223
- return !hasRefresherInContent && scrollEl.scrollTop === 0;
1191
+ if (contentEl && (!expandToScroll || currentBreakpoint === 1)) {
1192
+ return canSwipeOnContent(contentEl);
1224
1193
  }
1225
1194
  return true;
1226
1195
  };
1227
1196
  const onStart = (detail) => {
1197
+ var _a;
1228
1198
  /**
1229
1199
  * Firefox automatically selects the header text during drag
1230
1200
  * due to the focusable wrapper (tabindex="-1"). Remove any
1231
1201
  * selection that may have occurred.
1232
1202
  */
1233
- window.getSelection()?.removeAllRanges();
1203
+ (_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.removeAllRanges();
1234
1204
  /**
1235
1205
  * If canDismiss is anything other than `true`
1236
1206
  * then users should be able to swipe down
@@ -1250,9 +1220,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1250
1220
  * which would impact performance significantly.
1251
1221
  */
1252
1222
  if (!expandToScroll) {
1253
- const targetEl = index$2.findClosestIonContent(detail.event.target);
1223
+ const targetEl = index$1.findClosestIonContent(detail.event.target);
1254
1224
  cachedScrollEl =
1255
- targetEl && index$2.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1225
+ targetEl && index$1.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1256
1226
  }
1257
1227
  /**
1258
1228
  * If expandToScroll is disabled, we need to swap
@@ -1494,7 +1464,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1494
1464
  helpers.raf(() => {
1495
1465
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
1496
1466
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1497
- contentAnimation?.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1467
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1498
1468
  animation.progressStart(true, 1 - snapToBreakpoint);
1499
1469
  currentBreakpoint = snapToBreakpoint;
1500
1470
  onBreakpointChange(currentBreakpoint);
@@ -1630,7 +1600,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1630
1600
  */
1631
1601
  return viewportBottom - activeHeight;
1632
1602
  };
1633
- const gesture = index$1.createGesture({
1603
+ const gesture = index$2.createGesture({
1634
1604
  el: wrapperEl,
1635
1605
  gestureName: 'modalSheet',
1636
1606
  gesturePriority: 40,
@@ -1693,8 +1663,8 @@ const getRootSafeAreaTop = () => {
1693
1663
  if (cachedRootSafeAreaTop !== null) {
1694
1664
  return cachedRootSafeAreaTop;
1695
1665
  }
1696
- const doc = index.win?.document;
1697
- if (!doc?.body) {
1666
+ const doc = index.win === null || index.win === void 0 ? void 0 : index.win.document;
1667
+ if (!(doc === null || doc === void 0 ? void 0 : doc.body)) {
1698
1668
  return 0;
1699
1669
  }
1700
1670
  const el = doc.createElement('div');
@@ -1797,9 +1767,10 @@ const getInitialSafeAreaConfig = (context) => {
1797
1767
  * @returns SafeAreaConfig based on position
1798
1768
  */
1799
1769
  const getPositionBasedSafeAreaConfig = (wrapperEl) => {
1770
+ var _a, _b;
1800
1771
  const rect = wrapperEl.getBoundingClientRect();
1801
- const vh = index.win?.innerHeight ?? 0;
1802
- const vw = index.win?.innerWidth ?? 0;
1772
+ const vh = (_a = index.win === null || index.win === void 0 ? void 0 : index.win.innerHeight) !== null && _a !== void 0 ? _a : 0;
1773
+ const vw = (_b = index.win === null || index.win === void 0 ? void 0 : index.win.innerWidth) !== null && _b !== void 0 ? _b : 0;
1803
1774
  // Only apply safe-area to sides where modal overlaps with screen edge
1804
1775
  return {
1805
1776
  top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
@@ -1852,176 +1823,195 @@ const Modal = class {
1852
1823
  this.ionDragStart = index$3.createEvent(this, "ionDragStart", 7);
1853
1824
  this.ionDragMove = index$3.createEvent(this, "ionDragMove", 7);
1854
1825
  this.ionDragEnd = index$3.createEvent(this, "ionDragEnd", 7);
1826
+ this.lockController = lockController.createLockController();
1827
+ this.triggerController = overlays.createTriggerController();
1828
+ this.coreDelegate = frameworkDelegate.CoreDelegate();
1829
+ this.isSheetModal = false;
1830
+ this.inheritedAttributes = {};
1831
+ this.inline = false;
1832
+ // Whether or not modal is being dismissed via gesture
1833
+ this.gestureAnimationDismissing = false;
1834
+ this.presented = false;
1835
+ /** @internal */
1836
+ this.hasController = false;
1837
+ /**
1838
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
1839
+ */
1840
+ this.keyboardClose = true;
1841
+ /**
1842
+ * Controls whether scrolling or dragging within the sheet modal expands
1843
+ * it to a larger breakpoint. This only takes effect when `breakpoints`
1844
+ * and `initialBreakpoint` are set.
1845
+ *
1846
+ * If `true`, scrolling or dragging anywhere in the modal will first expand
1847
+ * it to the next breakpoint. Once fully expanded, scrolling will affect the
1848
+ * content.
1849
+ * If `false`, scrolling will always affect the content. The modal will
1850
+ * only expand when dragging the header or handle. The modal will close when
1851
+ * dragging the header or handle. It can also be closed when dragging the
1852
+ * content, but only if the content is scrolled to the top.
1853
+ */
1854
+ this.expandToScroll = true;
1855
+ /**
1856
+ * A decimal value between 0 and 1 that indicates the
1857
+ * point after which the backdrop will begin to fade in
1858
+ * when using a sheet modal. Prior to this point, the
1859
+ * backdrop will be hidden and the content underneath
1860
+ * the sheet can be interacted with. This value is exclusive
1861
+ * meaning the backdrop will become active after the value
1862
+ * specified.
1863
+ */
1864
+ this.backdropBreakpoint = 0;
1865
+ /**
1866
+ * The interaction behavior for the sheet modal when the handle is pressed.
1867
+ *
1868
+ * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
1869
+ * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
1870
+ *
1871
+ * Handle behavior is unavailable when the `handle` property is set to `false` or
1872
+ * when the `breakpoints` property is not set (using a fullscreen or card modal).
1873
+ */
1874
+ this.handleBehavior = 'none';
1875
+ /**
1876
+ * If `true`, the modal will be dismissed when the backdrop is clicked.
1877
+ */
1878
+ this.backdropDismiss = true;
1879
+ /**
1880
+ * If `true`, a backdrop will be displayed behind the modal.
1881
+ * This property controls whether or not the backdrop
1882
+ * darkens the screen when the modal is presented.
1883
+ * It does not control whether or not the backdrop
1884
+ * is active or present in the DOM.
1885
+ */
1886
+ this.showBackdrop = true;
1887
+ /**
1888
+ * If `true`, the modal will animate.
1889
+ */
1890
+ this.animated = true;
1891
+ /**
1892
+ * If `true`, the modal will open. If `false`, the modal will close.
1893
+ * Use this if you need finer grained control over presentation, otherwise
1894
+ * just use the modalController or the `trigger` property.
1895
+ * Note: `isOpen` will not automatically be set back to `false` when
1896
+ * the modal dismisses. You will need to do that in your code.
1897
+ */
1898
+ this.isOpen = false;
1899
+ /**
1900
+ * If `true`, the component passed into `ion-modal` will
1901
+ * automatically be mounted when the modal is created. The
1902
+ * component will remain mounted even when the modal is dismissed.
1903
+ * However, the component will be destroyed when the modal is
1904
+ * destroyed. This property is not reactive and should only be
1905
+ * used when initially creating a modal.
1906
+ *
1907
+ * Note: This feature only applies to inline modals in JavaScript
1908
+ * frameworks such as Angular, React, and Vue.
1909
+ */
1910
+ this.keepContentsMounted = false;
1911
+ /**
1912
+ * If `true`, focus will not be allowed to move outside of this overlay.
1913
+ * If `false`, focus will be allowed to move outside of the overlay.
1914
+ *
1915
+ * In most scenarios this property should remain set to `true`. Setting
1916
+ * this property to `false` can cause severe accessibility issues as users
1917
+ * relying on assistive technologies may be able to move focus into
1918
+ * a confusing state. We recommend only setting this to `false` when
1919
+ * absolutely necessary.
1920
+ *
1921
+ * Developers may want to consider disabling focus trapping if this
1922
+ * overlay presents a non-Ionic overlay from a 3rd party library.
1923
+ * Developers would disable focus trapping on the Ionic overlay
1924
+ * when presenting the 3rd party overlay and then re-enable
1925
+ * focus trapping when dismissing the 3rd party overlay and moving
1926
+ * focus back to the Ionic overlay.
1927
+ */
1928
+ this.focusTrap = true;
1929
+ /**
1930
+ * Determines whether or not a modal can dismiss
1931
+ * when calling the `dismiss` method.
1932
+ *
1933
+ * If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
1934
+ * If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
1935
+ *
1936
+ * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
1937
+ * if you need to access `this` from within the callback.
1938
+ */
1939
+ this.canDismiss = true;
1940
+ this.onHandleClick = () => {
1941
+ const { sheetTransition, handleBehavior } = this;
1942
+ if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
1943
+ /**
1944
+ * The sheet modal should not advance to the next breakpoint
1945
+ * if the handle behavior is not `cycle` or if the handle
1946
+ * is clicked while the sheet is moving to a breakpoint.
1947
+ */
1948
+ return;
1949
+ }
1950
+ this.moveToNextBreakpoint();
1951
+ };
1952
+ this.onBackdropTap = () => {
1953
+ const { sheetTransition } = this;
1954
+ if (sheetTransition !== undefined) {
1955
+ /**
1956
+ * When the handle is double clicked at the largest breakpoint,
1957
+ * it will start to move to the first breakpoint. While transitioning,
1958
+ * the backdrop will often receive the second click. We prevent the
1959
+ * backdrop from dismissing the modal while moving between breakpoints.
1960
+ */
1961
+ return;
1962
+ }
1963
+ this.dismiss(undefined, overlays.BACKDROP);
1964
+ };
1965
+ this.onLifecycle = (modalEvent) => {
1966
+ const el = this.usersElement;
1967
+ const name = LIFECYCLE_MAP[modalEvent.type];
1968
+ if (el && name) {
1969
+ const ev = new CustomEvent(name, {
1970
+ bubbles: false,
1971
+ cancelable: false,
1972
+ detail: modalEvent.detail,
1973
+ });
1974
+ el.dispatchEvent(ev);
1975
+ }
1976
+ };
1977
+ /**
1978
+ * When the modal receives focus directly, pass focus to the handle
1979
+ * if it exists and is focusable, otherwise let the focus trap handle it.
1980
+ */
1981
+ this.onModalFocus = (ev) => {
1982
+ var _a;
1983
+ const { dragHandleEl, el } = this;
1984
+ /**
1985
+ * Shadow DOM focus is retargeted to the host, so `ev.target === el` is also
1986
+ * true when a shadow child (the dialog wrapper present() focuses) is focused.
1987
+ * shadowRoot's activeElement is null only when the host was focused directly,
1988
+ * so redirect to the handle only then and leave present()'s wrapper focus intact.
1989
+ */
1990
+ if (ev.target === el && ((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) == null && dragHandleEl && dragHandleEl.tabIndex !== -1) {
1991
+ dragHandleEl.focus();
1992
+ }
1993
+ };
1994
+ /**
1995
+ * When the slot changes, we need to find all the modals in the slot
1996
+ * and set the data-parent-ion-modal attribute on them so we can find them
1997
+ * and dismiss them when we get dismissed.
1998
+ * We need to do it this way because when a modal is opened, it's moved to
1999
+ * the end of the body and is no longer an actual child of the modal.
2000
+ */
2001
+ this.onSlotChange = ({ target }) => {
2002
+ const slot = target;
2003
+ slot.assignedElements().forEach((el) => {
2004
+ el.querySelectorAll('ion-modal').forEach((childModal) => {
2005
+ // We don't need to write to the DOM if the modal is already tagged
2006
+ // If this is a deeply nested modal, this effect should cascade so we don't
2007
+ // need to worry about another modal claiming the same child.
2008
+ if (childModal.getAttribute('data-parent-ion-modal') === null) {
2009
+ childModal.setAttribute('data-parent-ion-modal', this.el.id);
2010
+ }
2011
+ });
2012
+ });
2013
+ };
1855
2014
  }
1856
- lockController = lockController.createLockController();
1857
- triggerController = overlays.createTriggerController();
1858
- gesture;
1859
- coreDelegate = frameworkDelegate.CoreDelegate();
1860
- sheetTransition;
1861
- isSheetModal = false;
1862
- /**
1863
- * The breakpoint value that has been committed for a sheet modal.
1864
- * This represents the modal's resting state when it is not being dragged
1865
- * or animating toward a new position.
1866
- */
1867
- currentBreakpoint;
1868
- wrapperEl;
1869
- backdropEl;
1870
- dragHandleEl;
1871
- sortedBreakpoints;
1872
- keyboardOpenCallback;
1873
- moveSheetToBreakpoint;
1874
- inheritedAttributes = {};
1875
- statusBarStyle;
1876
- inline = false;
1877
- workingDelegate;
1878
- // Reference to the user's provided modal content
1879
- usersElement;
1880
- // Whether or not modal is being dismissed via gesture
1881
- gestureAnimationDismissing = false;
1882
- // View transition properties for handling portrait/landscape switches
1883
- currentViewIsPortrait;
1884
- viewTransitionAnimation;
1885
- resizeTimeout;
1886
- // Mutation observer to watch for parent removal
1887
- parentRemovalObserver;
1888
- // Cached original parent from before modal is moved to body during presentation
1889
- cachedOriginalParent;
1890
- // Cached ion-page ancestor for child route passthrough
1891
- cachedPageParent;
1892
- lastFocus;
1893
- animation;
1894
- presented = false;
1895
- get el() { return index$3.getElement(this); }
1896
- /** @internal */
1897
- hasController = false;
1898
- /** @internal */
1899
- overlayIndex;
1900
- /** @internal */
1901
- delegate;
1902
- /**
1903
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
1904
- */
1905
- keyboardClose = true;
1906
- /**
1907
- * Animation to use when the modal is presented.
1908
- */
1909
- enterAnimation;
1910
- /**
1911
- * Animation to use when the modal is dismissed.
1912
- */
1913
- leaveAnimation;
1914
- /**
1915
- * The breakpoints to use when creating a sheet modal. Each value in the
1916
- * array must be a decimal between 0 and 1 where 0 indicates the modal is fully
1917
- * closed and 1 indicates the modal is fully open. Values are relative
1918
- * to the height of the modal, not the height of the screen. One of the values in this
1919
- * array must be the value of the `initialBreakpoint` property.
1920
- * For example: [0, .25, .5, 1]
1921
- */
1922
- breakpoints;
1923
- /**
1924
- * Controls whether scrolling or dragging within the sheet modal expands
1925
- * it to a larger breakpoint. This only takes effect when `breakpoints`
1926
- * and `initialBreakpoint` are set.
1927
- *
1928
- * If `true`, scrolling or dragging anywhere in the modal will first expand
1929
- * it to the next breakpoint. Once fully expanded, scrolling will affect the
1930
- * content.
1931
- * If `false`, scrolling will always affect the content. The modal will
1932
- * only expand when dragging the header or handle. The modal will close when
1933
- * dragging the header or handle. It can also be closed when dragging the
1934
- * content, but only if the content is scrolled to the top.
1935
- */
1936
- expandToScroll = true;
1937
- /**
1938
- * A decimal value between 0 and 1 that indicates the
1939
- * initial point the modal will open at when creating a
1940
- * sheet modal. This value must also be listed in the
1941
- * `breakpoints` array.
1942
- */
1943
- initialBreakpoint;
1944
- /**
1945
- * A decimal value between 0 and 1 that indicates the
1946
- * point after which the backdrop will begin to fade in
1947
- * when using a sheet modal. Prior to this point, the
1948
- * backdrop will be hidden and the content underneath
1949
- * the sheet can be interacted with. This value is exclusive
1950
- * meaning the backdrop will become active after the value
1951
- * specified.
1952
- */
1953
- backdropBreakpoint = 0;
1954
- /**
1955
- * The horizontal line that displays at the top of a sheet modal. It is `true` by default when
1956
- * setting the `breakpoints` and `initialBreakpoint` properties.
1957
- */
1958
- handle;
1959
- /**
1960
- * The interaction behavior for the sheet modal when the handle is pressed.
1961
- *
1962
- * Handle behavior is unavailable when the `handle` property is set to
1963
- * `false` or when the `breakpoints` property is not set (using a
1964
- * fullscreen or card modal).
1965
- *
1966
- * Set to `"cycle"` to make the handle focusable and let the sheet modal
1967
- * cycle between available breakpoints when pressed. This keeps the sheet
1968
- * operable with assistive technology.
1969
- *
1970
- * Set to `"none"` to make the handle purely decorative when pressed and
1971
- * removed from the tab order.
1972
- *
1973
- * Defaults to `"cycle"`.
1974
- */
1975
- handleBehavior = 'cycle';
1976
- /**
1977
- * The component to display inside of the modal.
1978
- * @internal
1979
- */
1980
- component;
1981
- /**
1982
- * The data to pass to the modal component.
1983
- * @internal
1984
- */
1985
- componentProps;
1986
- /**
1987
- * Additional classes to apply for custom CSS. If multiple classes are
1988
- * provided they should be separated by spaces.
1989
- * @internal
1990
- */
1991
- cssClass;
1992
- /**
1993
- * If `true`, the modal will be dismissed when the backdrop is clicked.
1994
- */
1995
- backdropDismiss = true;
1996
- /**
1997
- * If `true`, a backdrop will be displayed behind the modal.
1998
- * This property controls whether or not the backdrop
1999
- * darkens the screen when the modal is presented.
2000
- * It does not control whether or not the backdrop
2001
- * is active or present in the DOM.
2002
- */
2003
- showBackdrop = true;
2004
- /**
2005
- * If `true`, the modal will animate.
2006
- */
2007
- animated = true;
2008
- /**
2009
- * The element that presented the modal. This is used for card presentation effects
2010
- * and for stacking multiple modals on top of each other. Only applies in iOS mode.
2011
- */
2012
- presentingElement;
2013
- /**
2014
- * Additional attributes to pass to the modal.
2015
- */
2016
- htmlAttributes;
2017
- /**
2018
- * If `true`, the modal will open. If `false`, the modal will close.
2019
- * Use this if you need finer grained control over presentation, otherwise
2020
- * just use the modalController or the `trigger` property.
2021
- * Note: `isOpen` will not automatically be set back to `false` when
2022
- * the modal dismisses. You will need to do that in your code.
2023
- */
2024
- isOpen = false;
2025
2015
  onIsOpenChange(newValue, oldValue) {
2026
2016
  if (newValue === true && oldValue === false) {
2027
2017
  this.present();
@@ -2030,11 +2020,6 @@ const Modal = class {
2030
2020
  this.dismiss();
2031
2021
  }
2032
2022
  }
2033
- /**
2034
- * An ID corresponding to the trigger element that
2035
- * causes the modal to open when clicked.
2036
- */
2037
- trigger;
2038
2023
  triggerChanged() {
2039
2024
  const { trigger, el, triggerController } = this;
2040
2025
  if (trigger) {
@@ -2067,108 +2052,6 @@ const Modal = class {
2067
2052
  }
2068
2053
  }, 50); // Debounce to avoid excessive calls during active resizing
2069
2054
  }
2070
- /**
2071
- * If `true`, the component passed into `ion-modal` will
2072
- * automatically be mounted when the modal is created. The
2073
- * component will remain mounted even when the modal is dismissed.
2074
- * However, the component will be destroyed when the modal is
2075
- * destroyed. This property is not reactive and should only be
2076
- * used when initially creating a modal.
2077
- *
2078
- * Note: This feature only applies to inline modals in JavaScript
2079
- * frameworks such as Angular, React, and Vue.
2080
- */
2081
- keepContentsMounted = false;
2082
- /**
2083
- * If `true`, focus will not be allowed to move outside of this overlay.
2084
- * If `false`, focus will be allowed to move outside of the overlay.
2085
- *
2086
- * In most scenarios this property should remain set to `true`. Setting
2087
- * this property to `false` can cause severe accessibility issues as users
2088
- * relying on assistive technologies may be able to move focus into
2089
- * a confusing state. We recommend only setting this to `false` when
2090
- * absolutely necessary.
2091
- *
2092
- * Developers may want to consider disabling focus trapping if this
2093
- * overlay presents a non-Ionic overlay from a 3rd party library.
2094
- * Developers would disable focus trapping on the Ionic overlay
2095
- * when presenting the 3rd party overlay and then re-enable
2096
- * focus trapping when dismissing the 3rd party overlay and moving
2097
- * focus back to the Ionic overlay.
2098
- */
2099
- focusTrap = true;
2100
- /**
2101
- * Determines whether or not a modal can dismiss
2102
- * when calling the `dismiss` method.
2103
- *
2104
- * If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
2105
- * If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
2106
- *
2107
- * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
2108
- * if you need to access `this` from within the callback.
2109
- */
2110
- canDismiss = true;
2111
- /**
2112
- * Emitted after the modal has presented.
2113
- */
2114
- didPresent;
2115
- /**
2116
- * Emitted before the modal has presented.
2117
- */
2118
- willPresent;
2119
- /**
2120
- * Emitted before the modal has dismissed.
2121
- */
2122
- willDismiss;
2123
- /**
2124
- * Emitted after the modal has dismissed.
2125
- */
2126
- didDismiss;
2127
- /**
2128
- * Emitted after the modal breakpoint has changed.
2129
- */
2130
- ionBreakpointDidChange;
2131
- /**
2132
- * Emitted after the modal has presented.
2133
- * Shorthand for ionModalDidPresent.
2134
- */
2135
- didPresentShorthand;
2136
- /**
2137
- * Emitted before the modal has presented.
2138
- * Shorthand for ionModalWillPresent.
2139
- */
2140
- willPresentShorthand;
2141
- /**
2142
- * Emitted before the modal has dismissed.
2143
- * Shorthand for ionModalWillDismiss.
2144
- */
2145
- willDismissShorthand;
2146
- /**
2147
- * Emitted after the modal has dismissed.
2148
- * Shorthand for ionModalDidDismiss.
2149
- */
2150
- didDismissShorthand;
2151
- /**
2152
- * Emitted before the modal has presented, but after the component
2153
- * has been mounted in the DOM.
2154
- * This event exists so iOS can run the entering
2155
- * transition properly
2156
- *
2157
- * @internal
2158
- */
2159
- ionMount;
2160
- /**
2161
- * Event that is emitted when the sheet modal or card modal gesture starts.
2162
- */
2163
- ionDragStart;
2164
- /**
2165
- * Event that is emitted when the sheet modal or card modal gesture moves.
2166
- */
2167
- ionDragMove;
2168
- /**
2169
- * Event that is emitted when the sheet modal or card modal gesture ends.
2170
- */
2171
- ionDragEnd;
2172
2055
  breakpointsChanged(breakpoints) {
2173
2056
  if (breakpoints !== undefined) {
2174
2057
  this.sortedBreakpoints = breakpoints.sort((a, b) => a - b);
@@ -2186,12 +2069,9 @@ const Modal = class {
2186
2069
  // Also called in dismiss() — intentional dual cleanup covers both
2187
2070
  // dismiss-then-remove and direct DOM removal without dismiss.
2188
2071
  this.cleanupSafeAreaOverrides();
2189
- // Clean up aria-hidden if removed without dismiss() being called
2190
- if (this.presented) {
2191
- overlays.cleanupRootFocusTrapAccessibility();
2192
- }
2193
2072
  }
2194
2073
  componentWillLoad() {
2074
+ var _a;
2195
2075
  const { breakpoints, initialBreakpoint, el, htmlAttributes } = this;
2196
2076
  const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined);
2197
2077
  const attributesToInherit = ['aria-label', 'role'];
@@ -2226,10 +2106,7 @@ const Modal = class {
2226
2106
  * htmlAttributes wins, but that's not a pattern that we recommend.
2227
2107
  * The only time you'd need htmlAttributes is when using modalController.
2228
2108
  */
2229
- this.inheritedAttributes = {
2230
- ...this.inheritedAttributes,
2231
- [attribute]: htmlAttributes[attribute],
2232
- };
2109
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attribute]: htmlAttributes[attribute] });
2233
2110
  delete htmlAttributes[attribute];
2234
2111
  }
2235
2112
  });
@@ -2240,7 +2117,7 @@ const Modal = class {
2240
2117
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
2241
2118
  index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
2242
2119
  }
2243
- if (!this.htmlAttributes?.id) {
2120
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
2244
2121
  overlays.setOverlayId(this.el);
2245
2122
  }
2246
2123
  }
@@ -2422,6 +2299,7 @@ const Modal = class {
2422
2299
  unlock();
2423
2300
  }
2424
2301
  initSwipeToClose() {
2302
+ var _a;
2425
2303
  if (ionicGlobal.getIonMode(this) !== 'ios') {
2426
2304
  return;
2427
2305
  }
@@ -2434,12 +2312,12 @@ const Modal = class {
2434
2312
  presentingEl: this.presentingElement,
2435
2313
  expandToScroll: this.expandToScroll,
2436
2314
  }));
2437
- const contentEl = index$2.findIonContent(el);
2315
+ const contentEl = index$1.findIonContent(el);
2438
2316
  if (!contentEl) {
2439
- index$2.printIonContentErrorMsg(el);
2317
+ index$1.printIonContentErrorMsg(el);
2440
2318
  return;
2441
2319
  }
2442
- const statusBarStyle = this.statusBarStyle ?? Style.Default;
2320
+ const statusBarStyle = (_a = this.statusBarStyle) !== null && _a !== void 0 ? _a : Style.Default;
2443
2321
  this.gesture = createSwipeToCloseGesture(el, ani, statusBarStyle, () => this.cardOnDismiss(), () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2444
2322
  this.gesture.enable(true);
2445
2323
  }
@@ -2456,7 +2334,7 @@ const Modal = class {
2456
2334
  expandToScroll: this.expandToScroll,
2457
2335
  }));
2458
2336
  ani.progressStart(true, 1);
2459
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => this.currentBreakpoint ?? 0, () => this.sheetOnDismiss(), (breakpoint) => {
2337
+ 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) => {
2460
2338
  if (this.currentBreakpoint !== breakpoint) {
2461
2339
  this.currentBreakpoint = breakpoint;
2462
2340
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -2481,6 +2359,7 @@ const Modal = class {
2481
2359
  * passthrough on child route page wrappers and nested router outlets.
2482
2360
  */
2483
2361
  setupChildRoutePassthrough() {
2362
+ var _a;
2484
2363
  // Cache the page parent for cleanup
2485
2364
  this.cachedPageParent = this.getOriginalPageParent();
2486
2365
  const pageParent = this.cachedPageParent;
@@ -2488,11 +2367,14 @@ const Modal = class {
2488
2367
  if (!pageParent || pageParent.tagName === 'ION-APP') {
2489
2368
  return;
2490
2369
  }
2491
- const hasVisibleContent = Array.from(pageParent.children).some((child) => child !== this.el &&
2492
- !(child instanceof HTMLElement && window.getComputedStyle(child).display === 'none') &&
2493
- child.tagName !== 'TEMPLATE' &&
2494
- child.tagName !== 'SLOT' &&
2495
- !(child.nodeType === Node.TEXT_NODE && !child.textContent?.trim()));
2370
+ const hasVisibleContent = Array.from(pageParent.children).some((child) => {
2371
+ var _a;
2372
+ return child !== this.el &&
2373
+ !(child instanceof HTMLElement && window.getComputedStyle(child).display === 'none') &&
2374
+ child.tagName !== 'TEMPLATE' &&
2375
+ child.tagName !== 'SLOT' &&
2376
+ !(child.nodeType === Node.TEXT_NODE && !((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()));
2377
+ });
2496
2378
  if (hasVisibleContent) {
2497
2379
  return;
2498
2380
  }
@@ -2500,7 +2382,7 @@ const Modal = class {
2500
2382
  pageParent.classList.add('ion-page-overlay-passthrough');
2501
2383
  // Also make nested router outlets passthrough
2502
2384
  const routerOutlet = pageParent.parentElement;
2503
- if (routerOutlet?.tagName === 'ION-ROUTER-OUTLET' && routerOutlet.parentElement?.tagName !== 'ION-APP') {
2385
+ 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') {
2504
2386
  routerOutlet.style.setProperty('pointer-events', 'none');
2505
2387
  routerOutlet.setAttribute('data-overlay-passthrough', 'true');
2506
2388
  }
@@ -2528,7 +2410,7 @@ const Modal = class {
2528
2410
  }
2529
2411
  pageParent.classList.remove('ion-page-overlay-passthrough');
2530
2412
  const routerOutlet = pageParent.parentElement;
2531
- if (routerOutlet?.hasAttribute('data-overlay-passthrough')) {
2413
+ if (routerOutlet === null || routerOutlet === void 0 ? void 0 : routerOutlet.hasAttribute('data-overlay-passthrough')) {
2532
2414
  routerOutlet.style.removeProperty('pointer-events');
2533
2415
  routerOutlet.removeAttribute('data-overlay-passthrough');
2534
2416
  }
@@ -2591,6 +2473,7 @@ const Modal = class {
2591
2473
  * For example, `cancel` or `backdrop`.
2592
2474
  */
2593
2475
  async dismiss(data, role) {
2476
+ var _a;
2594
2477
  if (this.gestureAnimationDismissing && role !== overlays.GESTURE) {
2595
2478
  return false;
2596
2479
  }
@@ -2635,7 +2518,7 @@ const Modal = class {
2635
2518
  }
2636
2519
  const dismissed = await overlays.dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
2637
2520
  presentingEl: presentingElement,
2638
- currentBreakpoint: this.currentBreakpoint ?? this.initialBreakpoint,
2521
+ currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
2639
2522
  backdropBreakpoint: this.backdropBreakpoint,
2640
2523
  expandToScroll: this.expandToScroll,
2641
2524
  });
@@ -2728,59 +2611,6 @@ const Modal = class {
2728
2611
  await this.setCurrentBreakpoint(nextBreakpoint);
2729
2612
  return true;
2730
2613
  }
2731
- onHandleClick = () => {
2732
- const { sheetTransition, handleBehavior } = this;
2733
- if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
2734
- /**
2735
- * The sheet modal should not advance to the next breakpoint
2736
- * if the handle behavior is not `cycle` or if the handle
2737
- * is clicked while the sheet is moving to a breakpoint.
2738
- */
2739
- return;
2740
- }
2741
- this.moveToNextBreakpoint();
2742
- };
2743
- onBackdropTap = () => {
2744
- const { sheetTransition } = this;
2745
- if (sheetTransition !== undefined) {
2746
- /**
2747
- * When the handle is double clicked at the largest breakpoint,
2748
- * it will start to move to the first breakpoint. While transitioning,
2749
- * the backdrop will often receive the second click. We prevent the
2750
- * backdrop from dismissing the modal while moving between breakpoints.
2751
- */
2752
- return;
2753
- }
2754
- this.dismiss(undefined, overlays.BACKDROP);
2755
- };
2756
- onLifecycle = (modalEvent) => {
2757
- const el = this.usersElement;
2758
- const name = LIFECYCLE_MAP[modalEvent.type];
2759
- if (el && name) {
2760
- const ev = new CustomEvent(name, {
2761
- bubbles: false,
2762
- cancelable: false,
2763
- detail: modalEvent.detail,
2764
- });
2765
- el.dispatchEvent(ev);
2766
- }
2767
- };
2768
- /**
2769
- * When the modal receives focus directly, pass focus to the handle
2770
- * if it exists and is focusable, otherwise let the focus trap handle it.
2771
- */
2772
- onModalFocus = (ev) => {
2773
- const { dragHandleEl, el } = this;
2774
- /**
2775
- * Shadow DOM focus is retargeted to the host, so `ev.target === el` is also
2776
- * true when a shadow child (the dialog wrapper present() focuses) is focused.
2777
- * shadowRoot's activeElement is null only when the host was focused directly,
2778
- * so redirect to the handle only then and leave present()'s wrapper focus intact.
2779
- */
2780
- if (ev.target === el && el.shadowRoot?.activeElement == null && dragHandleEl && dragHandleEl.tabIndex !== -1) {
2781
- dragHandleEl.focus();
2782
- }
2783
- };
2784
2614
  initViewTransitionListener() {
2785
2615
  // Only enable for iOS card modals when no custom animations are provided
2786
2616
  if (ionicGlobal.getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -2876,7 +2706,7 @@ const Modal = class {
2876
2706
  wrapperEl.style.transform = 'translateY(0vh)';
2877
2707
  wrapperEl.style.opacity = '1';
2878
2708
  }
2879
- if (presentingElement?.tagName === 'ION-MODAL') {
2709
+ if ((presentingElement === null || presentingElement === void 0 ? void 0 : presentingElement.tagName) === 'ION-MODAL') {
2880
2710
  const isPortrait = window.innerWidth < 768;
2881
2711
  if (isPortrait) {
2882
2712
  const transformOffset = !CSS.supports('width', 'max(0px, 1px)')
@@ -2890,29 +2720,9 @@ const Modal = class {
2890
2720
  }
2891
2721
  }
2892
2722
  }
2893
- /**
2894
- * When the slot changes, we need to find all the modals in the slot
2895
- * and set the data-parent-ion-modal attribute on them so we can find them
2896
- * and dismiss them when we get dismissed.
2897
- * We need to do it this way because when a modal is opened, it's moved to
2898
- * the end of the body and is no longer an actual child of the modal.
2899
- */
2900
- onSlotChange = ({ target }) => {
2901
- const slot = target;
2902
- slot.assignedElements().forEach((el) => {
2903
- el.querySelectorAll('ion-modal').forEach((childModal) => {
2904
- // We don't need to write to the DOM if the modal is already tagged
2905
- // If this is a deeply nested modal, this effect should cascade so we don't
2906
- // need to worry about another modal claiming the same child.
2907
- if (childModal.getAttribute('data-parent-ion-modal') === null) {
2908
- childModal.setAttribute('data-parent-ion-modal', this.el.id);
2909
- }
2910
- });
2911
- });
2912
- };
2913
2723
  async dismissNestedModals() {
2914
2724
  const nestedModals = document.querySelectorAll(`ion-modal[data-parent-ion-modal="${this.el.id}"]`);
2915
- nestedModals?.forEach(async (modal) => {
2725
+ nestedModals === null || nestedModals === void 0 ? void 0 : nestedModals.forEach(async (modal) => {
2916
2726
  await modal.dismiss(undefined, 'parent-dismissed');
2917
2727
  });
2918
2728
  }
@@ -2945,9 +2755,10 @@ const Modal = class {
2945
2755
  if (mutation.type === 'childList' && mutation.removedNodes.length > 0) {
2946
2756
  // Check if our cached original parent was removed
2947
2757
  const cachedParentWasRemoved = Array.from(mutation.removedNodes).some((node) => {
2758
+ var _a, _b;
2948
2759
  const isDirectMatch = node === this.cachedOriginalParent;
2949
2760
  const isContainedMatch = this.cachedOriginalParent
2950
- ? node.contains?.(this.cachedOriginalParent)
2761
+ ? (_b = (_a = node).contains) === null || _b === void 0 ? void 0 : _b.call(_a, this.cachedOriginalParent)
2951
2762
  : false;
2952
2763
  return isDirectMatch || isContainedMatch;
2953
2764
  });
@@ -2969,7 +2780,8 @@ const Modal = class {
2969
2780
  });
2970
2781
  }
2971
2782
  cleanupParentRemovalObserver() {
2972
- this.parentRemovalObserver?.disconnect();
2783
+ var _a;
2784
+ (_a = this.parentRemovalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
2973
2785
  this.parentRemovalObserver = undefined;
2974
2786
  }
2975
2787
  onDragStart() {
@@ -3009,10 +2821,7 @@ const Modal = class {
3009
2821
  * sheets to prevent header content from getting double-offset padding).
3010
2822
  */
3011
2823
  setInitialSafeAreaOverrides() {
3012
- const context = {
3013
- ...this.getSafeAreaContext(),
3014
- hasCustomDimensions: hasCustomModalDimensions(this.el),
3015
- };
2824
+ const context = Object.assign(Object.assign({}, this.getSafeAreaContext()), { hasCustomDimensions: hasCustomModalDimensions(this.el) });
3016
2825
  const safeAreaConfig = getInitialSafeAreaConfig(context);
3017
2826
  applySafeAreaOverrides(this.el, safeAreaConfig);
3018
2827
  // Set the internal offset property with the resolved root safe-area-top value
@@ -3139,20 +2948,11 @@ const Modal = class {
3139
2948
  const isCardModal = presentingElement !== undefined && mode === 'ios';
3140
2949
  const isHandleCycle = handleBehavior === 'cycle';
3141
2950
  const isSheetModalWithHandle = isSheetModal && showHandle;
3142
- return (index$3.h(index$3.Host, { key: 'e2d5e0985b3812d6de4f7783becb5e6b50417d6f', "no-router": true,
2951
+ return (index$3.h(index$3.Host, Object.assign({ key: 'bad33199a939bd1e289b3b3f936c676ba403224f', "no-router": true,
3143
2952
  // Allow the modal to be navigable when the handle is focusable
3144
- tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
2953
+ tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
3145
2954
  zIndex: `${20000 + this.overlayIndex}`,
3146
- }, class: {
3147
- [mode]: true,
3148
- ['modal-default']: !isCardModal && !isSheetModal,
3149
- [`modal-card`]: isCardModal,
3150
- [`modal-sheet`]: isSheetModal,
3151
- [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll,
3152
- 'overlay-hidden': true,
3153
- [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
3154
- ...theme.getClassMap(this.cssClass),
3155
- }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, index$3.h("ion-backdrop", { key: 'dee7fea7a218a3cf62991164304db778d9137b72', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '770ab0d08851077d30f3f18bdc287a863d03ce77', class: "modal-shadow" }), index$3.h("div", { key: '435f22d484f67624b1eecaaebef6c20cc42f37f5',
2955
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), index$3.h("ion-backdrop", { key: 'd098688a65fb2d1befb255f0e59fd4c00b401092', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '96cd2e59a7d1c0de7c9afb8f8d366367b09fbc93', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '882ccc39ce344a2c51d6508c11c3f40b26eaf2a7',
3156
2956
  /*
3157
2957
  role and aria-modal must be used on the
3158
2958
  same element. They must also be set inside the
@@ -3165,10 +2965,11 @@ const Modal = class {
3165
2965
  without the tabindex focus() would be a no-op and screen readers
3166
2966
  may not properly announce the dialog and its content when it opens.
3167
2967
  */
3168
- role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (index$3.h("button", { key: '85e20acddde9a5335312342e885967722d5b128d', class: "modal-handle",
2968
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: '714d9904fcc8105b21e2bb66cdc032bffd685d72', class: "modal-handle",
3169
2969
  // Prevents the handle from receiving keyboard focus when it does not cycle
3170
- 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) })), index$3.h("slot", { key: 'deb0106d335712c42a9d866648ee90c98efb5f9d', onSlotchange: this.onSlotChange }))));
2970
+ 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) })), index$3.h("slot", { key: '79dfbeb3fe5eee7dc3a243ad880d3f63184f3ab7', onSlotchange: this.onSlotChange }))));
3171
2971
  }
2972
+ get el() { return index$3.getElement(this); }
3172
2973
  static get watchers() { return {
3173
2974
  "isOpen": [{
3174
2975
  "onIsOpenChange": 0