@ionic/core 9.0.4-nightly.20260911 → 9.0.4-nightly.20260915

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 (492) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/p--pR3YKVX.js +4 -0
  99. package/components/{p-BJr2B5hZ.js → p-2ta4uE9-.js} +1 -1
  100. package/components/{p-YjMkHuvH.js → p-47h0_nN4.js} +1 -1
  101. package/components/{p-C8Ck7_Eo.js → p-8MzqWBTT.js} +1 -1
  102. package/components/{p-CNLioZ3B.js → p-BGChz0G8.js} +1 -1
  103. package/components/{p-DZRZic9C.js → p-BLe-edUh.js} +1 -1
  104. package/components/{p-CJgnoKcN.js → p-BMHhG7Xh.js} +1 -1
  105. package/components/{p-TWw4e4sO.js → p-BPbgEuCf.js} +1 -1
  106. package/components/{p-DnBNYc7u.js → p-Bc-3W2an.js} +1 -1
  107. package/{dist/ionic/p-DTxBioUO.js → components/p-BezPzC13.js} +1 -1
  108. package/components/{p-B1_TL6RQ.js → p-BezRi1ML.js} +1 -1
  109. package/components/p-Bi8VGu4M.js +4 -0
  110. package/components/{p-DL13ieTa.js → p-BjizFeM6.js} +1 -1
  111. package/components/{p-BF48Oc0v.js → p-BuxZkazO.js} +1 -1
  112. package/components/p-BxCcX93a.js +4 -0
  113. package/components/{p-BW_SlU2D.js → p-C0tpzcpi.js} +1 -1
  114. package/components/{p-DMBiAyOR.js → p-C6WYVtle.js} +1 -1
  115. package/components/p-CDt7Q7Dj.js +4 -0
  116. package/components/p-CDvyV0r0.js +4 -0
  117. package/components/{p-C4VpVfrJ.js → p-CEs5NmKW.js} +1 -1
  118. package/components/{p-CMRYD_yR.js → p-CLVgYpRn.js} +1 -1
  119. package/components/{p-Cd1WaN-0.js → p-CMT0YmOj.js} +1 -1
  120. package/components/{p-DFLJvuRK.js → p-CPGp3WWG.js} +1 -1
  121. package/components/{p-B4lxwJ8N.js → p-CXuRZoWE.js} +1 -1
  122. package/components/{p-D7wDJdFn.js → p-CaY8IRMT.js} +1 -1
  123. package/components/{p-BQyuFxYc.js → p-CcOl6jEv.js} +1 -1
  124. package/components/{p-Ctop2IWW.js → p-CeGQfrDU.js} +1 -1
  125. package/components/{p-cEN43Ahr.js → p-CkffScdn.js} +1 -1
  126. package/components/{p-BT9-hMMz.js → p-CpcdCRug.js} +1 -1
  127. package/components/{p-Hp8t4RMX.js → p-Csi6iX-c.js} +1 -1
  128. package/components/{p-1sJ0ZDPe.js → p-CthoZqG1.js} +1 -1
  129. package/components/{p-Fl7ZFU74.js → p-DBGxvxkE.js} +1 -1
  130. package/components/p-DEvF_E6y.js +4 -0
  131. package/components/{p-COO0eJOA.js → p-DKX1mWld.js} +1 -1
  132. package/components/{p-CqbGBmqb.js → p-DMT-4tHM.js} +1 -1
  133. package/components/p-DOwsU7Mc.js +4 -0
  134. package/components/{p-5ldEpNdG.js → p-DSuBagxs.js} +1 -1
  135. package/{dist/ionic/p-DZ6Hmc-8.js → components/p-DVHC9GYb.js} +1 -1
  136. package/components/p-DWe-YApm.js +4 -0
  137. package/components/{p-Bi-it1EH.js → p-DX_3N4fh.js} +1 -1
  138. package/components/{p-C-NbvXu4.js → p-DcrAT6v8.js} +1 -1
  139. package/components/p-DftucGJR.js +4 -0
  140. package/components/{p-qAXsfUff.js → p-HO1CDBeU.js} +1 -1
  141. package/components/{p-DM1gJSMP.js → p-MLplUp3U.js} +1 -1
  142. package/{dist/ionic/p-BMiZX1LT.js → components/p-MOwrp7hX.js} +1 -1
  143. package/components/{p-D5w_FlVa.js → p-MSr4IlyS.js} +1 -1
  144. package/components/{p-GGbIHyEF.js → p-PWHvigWP.js} +1 -1
  145. package/components/p-S-gGoI4A.js +4 -0
  146. package/components/{p-BYJRZKHa.js → p-gyjG_IM4.js} +1 -1
  147. package/components/p-k92zpBT6.js +4 -0
  148. package/components/{p-DxhHlJln.js → p-rDUBp56G.js} +1 -1
  149. package/css/core.css +1 -1
  150. package/css/core.css.map +1 -1
  151. package/css/ionic.bundle.css +1 -1
  152. package/css/ionic.bundle.css.map +1 -1
  153. package/dist/cjs/{animation-Kd1N7WTN.js → animation-2DHlng-f.js} +3 -3
  154. package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-BeC95igM.js} +1 -1
  155. package/dist/cjs/{button-active-CQCFubJJ.js → button-active-CTyeZB16.js} +2 -2
  156. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-cADDPMtd.js} +3 -3
  157. package/dist/cjs/{format-bHU8N1g5.js → format-BbkxKT7p.js} +1 -1
  158. package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-DYIuFqQx.js} +1 -1
  159. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-CqPss9_L.js} +1 -1
  160. package/dist/cjs/{helpers-7wzdhdeg.js → helpers-DHjAEaU9.js} +45 -1
  161. package/dist/cjs/{index-C74Q3t6a.js → index-B-R-H1Z2.js} +7 -8
  162. package/dist/cjs/{index-DtvKGwdh.js → index-BLq7TkUV.js} +2 -2
  163. package/dist/cjs/{index-CQfEIyLK.js → index-D_D542p0.js} +4 -4
  164. package/dist/cjs/{index-DFNrCX7M.js → index-Da83wbmS.js} +8 -9
  165. package/dist/cjs/{index-KiSZqhYS.js → index-MdIUU940.js} +1 -1
  166. package/dist/cjs/{index-DXoo08JC.js → index-T36W_eKv.js} +13 -8
  167. package/dist/cjs/index.cjs.js +17 -19
  168. package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-DYxL0Fdm.js} +16 -17
  169. package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-B_32Xwga.js} +1 -1
  170. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  171. package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -28
  172. package/dist/cjs/ion-alert.cjs.entry.js +27 -29
  173. package/dist/cjs/ion-app_8.cjs.entry.js +72 -24
  174. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  175. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  176. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  177. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  178. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  179. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  180. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  181. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  182. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  183. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  184. package/dist/cjs/ion-datetime.cjs.entry.js +7 -9
  185. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  186. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  187. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  188. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  189. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  190. package/dist/cjs/ion-input.cjs.entry.js +12 -16
  191. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  192. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  193. package/dist/cjs/ion-loading.cjs.entry.js +18 -20
  194. package/dist/cjs/ion-menu_3.cjs.entry.js +15 -17
  195. package/dist/cjs/ion-modal.cjs.entry.js +177 -172
  196. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  197. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  198. package/dist/cjs/ion-picker-column.cjs.entry.js +8 -9
  199. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  200. package/dist/cjs/ion-popover.cjs.entry.js +18 -20
  201. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  202. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  203. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  204. package/dist/cjs/ion-refresher_2.cjs.entry.js +8 -9
  205. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -7
  206. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  207. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  208. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  209. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  210. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  211. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  212. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -10
  213. package/dist/cjs/ion-select_3.cjs.entry.js +71 -53
  214. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  215. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  216. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -7
  217. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  218. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  219. package/dist/cjs/ion-textarea.cjs.entry.js +11 -15
  220. package/dist/cjs/ion-toast.cjs.entry.js +49 -51
  221. package/dist/cjs/ion-toggle.cjs.entry.js +6 -7
  222. package/dist/cjs/{ionic-global-CYJNT-2P.js → ionic-global-BWd7usAF.js} +1 -1
  223. package/dist/cjs/ionic.cjs.js +5 -5
  224. package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-6AFNO6uU.js} +4 -5
  225. package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-BaBx_Te8.js} +1 -1
  226. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-BJEm-3HF.js} +5 -3
  227. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-DstMw6u1.js} +1 -1
  228. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-DaUNT15d.js} +9 -9
  229. package/dist/cjs/loader.cjs.js +4 -4
  230. package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-CPq0ckrU.js} +4 -5
  231. package/dist/cjs/{overlays-BR21NUIG.js → overlays-DwMDYc_O.js} +162 -9
  232. package/dist/cjs/{select-option-render-D8ZEjYji.js → select-option-render-Cu-ABBRH.js} +2 -2
  233. package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-CtYZdaWI.js} +73 -5
  234. package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-BUfv_eD4.js} +3 -3
  235. package/dist/cjs/{swipe-back-BYb_nLJe.js → swipe-back-DYKxJU5r.js} +2 -2
  236. package/dist/collection/collection-manifest.json +1 -1
  237. package/dist/collection/components/content/content.js +62 -8
  238. package/dist/collection/components/input/input.ios.css +6 -0
  239. package/dist/collection/components/input/input.js +6 -9
  240. package/dist/collection/components/input/input.md.css +6 -0
  241. package/dist/collection/components/modal/modal.ios.css +12 -1
  242. package/dist/collection/components/modal/modal.js +31 -8
  243. package/dist/collection/components/modal/modal.md.css +12 -1
  244. package/dist/collection/components/modal/safe-area-utils.js +69 -90
  245. package/dist/collection/components/modal/utils.js +7 -0
  246. package/dist/collection/components/select/select.ios.css +1 -1
  247. package/dist/collection/components/select/select.js +67 -38
  248. package/dist/collection/components/select/select.md.css +1 -1
  249. package/dist/collection/components/textarea/textarea.ios.css +15 -1
  250. package/dist/collection/components/textarea/textarea.js +5 -8
  251. package/dist/collection/components/textarea/textarea.md.css +15 -1
  252. package/dist/collection/utils/forms/click-controller.js +70 -0
  253. package/dist/collection/utils/forms/index.js +1 -0
  254. package/dist/collection/utils/helpers.js +39 -0
  255. package/dist/collection/utils/overlays.js +34 -0
  256. package/dist/docs.json +9 -3
  257. package/dist/esm/{animation-BFNVlYum.js → animation-CAzXJ2I1.js} +2 -2
  258. package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-DGJXnnkm.js} +1 -1
  259. package/dist/esm/{button-active-BfOvDr3b.js → button-active-DyyWVqU3.js} +2 -2
  260. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-C041I3qZ.js} +1 -1
  261. package/dist/esm/{format-DDFE9jM5.js → format-D78cdY12.js} +1 -1
  262. package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-CUDbUfWS.js} +1 -1
  263. package/dist/esm/{haptic-Cq4UAeka.js → haptic-D3njgGLB.js} +1 -1
  264. package/dist/esm/{helpers-BSmc0nst.js → helpers-BJFnZngp.js} +43 -2
  265. package/dist/esm/{index-DnA_7Bnx.js → index-CdoVp_rZ.js} +4 -4
  266. package/dist/esm/{index-D76bbuoi.js → index-DmnOg_xm.js} +1 -1
  267. package/dist/esm/{index-CJln0gS3.js → index-DoY4e_3F.js} +2 -3
  268. package/dist/esm/{index-C23AVPx9.js → index-Dvqtt_WK.js} +13 -8
  269. package/dist/esm/{index-BuPaALjU.js → index-iurdcGHg.js} +5 -6
  270. package/dist/esm/{index-C1b9CLFg.js → index-obGyiHiO.js} +2 -2
  271. package/dist/esm/index.js +11 -13
  272. package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-DognYvwv.js} +5 -6
  273. package/dist/esm/{input.utils-rqoH22pW.js → input.utils-C3mVJhji.js} +1 -1
  274. package/dist/esm/ion-accordion_2.entry.js +3 -3
  275. package/dist/esm/ion-action-sheet.entry.js +11 -13
  276. package/dist/esm/ion-alert.entry.js +11 -13
  277. package/dist/esm/ion-app_8.entry.js +72 -24
  278. package/dist/esm/ion-avatar_3.entry.js +2 -2
  279. package/dist/esm/ion-back-button.entry.js +3 -3
  280. package/dist/esm/ion-backdrop.entry.js +2 -2
  281. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  282. package/dist/esm/ion-button_2.entry.js +3 -3
  283. package/dist/esm/ion-card_5.entry.js +3 -3
  284. package/dist/esm/ion-checkbox.entry.js +4 -4
  285. package/dist/esm/ion-chip.entry.js +2 -2
  286. package/dist/esm/ion-col_3.entry.js +2 -2
  287. package/dist/esm/ion-datetime-button.entry.js +4 -4
  288. package/dist/esm/ion-datetime.entry.js +6 -8
  289. package/dist/esm/ion-fab_3.entry.js +3 -3
  290. package/dist/esm/ion-img.entry.js +3 -3
  291. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  292. package/dist/esm/ion-input-otp.entry.js +3 -3
  293. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  294. package/dist/esm/ion-input.entry.js +12 -16
  295. package/dist/esm/ion-item-option_3.entry.js +4 -4
  296. package/dist/esm/ion-item_8.entry.js +3 -3
  297. package/dist/esm/ion-loading.entry.js +7 -9
  298. package/dist/esm/ion-menu_3.entry.js +7 -9
  299. package/dist/esm/ion-modal.entry.js +115 -110
  300. package/dist/esm/ion-nav_2.entry.js +6 -6
  301. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  302. package/dist/esm/ion-picker-column.entry.js +5 -6
  303. package/dist/esm/ion-picker.entry.js +2 -2
  304. package/dist/esm/ion-popover.entry.js +7 -9
  305. package/dist/esm/ion-progress-bar.entry.js +3 -3
  306. package/dist/esm/ion-radio_2.entry.js +4 -4
  307. package/dist/esm/ion-range.entry.js +4 -4
  308. package/dist/esm/ion-refresher_2.entry.js +8 -9
  309. package/dist/esm/ion-reorder_2.entry.js +6 -7
  310. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  311. package/dist/esm/ion-route_4.entry.js +4 -4
  312. package/dist/esm/ion-searchbar.entry.js +3 -3
  313. package/dist/esm/ion-segment-content.entry.js +1 -1
  314. package/dist/esm/ion-segment-view.entry.js +1 -1
  315. package/dist/esm/ion-segment_2.entry.js +3 -3
  316. package/dist/esm/ion-select-modal.entry.js +7 -9
  317. package/dist/esm/ion-select_3.entry.js +66 -48
  318. package/dist/esm/ion-spinner.entry.js +2 -2
  319. package/dist/esm/ion-split-pane.entry.js +2 -2
  320. package/dist/esm/ion-tab-bar_2.entry.js +6 -7
  321. package/dist/esm/ion-tab_2.entry.js +3 -3
  322. package/dist/esm/ion-text.entry.js +2 -2
  323. package/dist/esm/ion-textarea.entry.js +11 -15
  324. package/dist/esm/ion-toast.entry.js +7 -9
  325. package/dist/esm/ion-toggle.entry.js +6 -7
  326. package/dist/esm/{ionic-global-ZXjCXKH0.js → ionic-global-BSaFA7np.js} +1 -1
  327. package/dist/esm/ionic.js +6 -6
  328. package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-ofa92pAl.js} +4 -5
  329. package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-CffmpUe9.js} +1 -1
  330. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-Cz4hUjuj.js} +1 -1
  331. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-Dsc85bts.js} +5 -3
  332. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BLvRgxgP.js} +2 -2
  333. package/dist/esm/loader.js +5 -5
  334. package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-DnFfqsAv.js} +4 -5
  335. package/dist/esm/{overlays-DKE0DgvE.js → overlays-a_5AhqWk.js} +156 -7
  336. package/dist/esm/{select-option-render-CRP_teb1.js → select-option-render-C_PCwA67.js} +2 -2
  337. package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-D7n8Peo2.js} +69 -3
  338. package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-BsTKKfug.js} +3 -3
  339. package/dist/esm/{swipe-back-B2CmabKY.js → swipe-back-ibFGqXH2.js} +2 -2
  340. package/dist/ionic/index.esm.js +1 -1
  341. package/dist/ionic/ionic.esm.js +1 -1
  342. package/dist/ionic/p-063769cf.entry.js +4 -0
  343. package/dist/ionic/{p-d8c138d9.entry.js → p-097a0cf5.entry.js} +1 -1
  344. package/dist/ionic/{p-ec00fd0d.entry.js → p-0a14a6a3.entry.js} +1 -1
  345. package/dist/ionic/p-0a824cef.entry.js +4 -0
  346. package/dist/ionic/{p-9c5f2691.entry.js → p-12ea6d13.entry.js} +1 -1
  347. package/dist/ionic/p-1c4926e9.entry.js +4 -0
  348. package/dist/ionic/p-1dac4211.entry.js +4 -0
  349. package/dist/ionic/{p-a8ff2489.entry.js → p-23afeeb2.entry.js} +1 -1
  350. package/dist/ionic/{p-ca1b8865.entry.js → p-25abc69d.entry.js} +1 -1
  351. package/dist/ionic/{p-099b7f9f.entry.js → p-26d89234.entry.js} +1 -1
  352. package/dist/ionic/{p-8b80d9f9.entry.js → p-28952272.entry.js} +1 -1
  353. package/dist/ionic/{p-5cc09b40.entry.js → p-29687c0b.entry.js} +1 -1
  354. package/dist/ionic/p-2ecebfd9.entry.js +4 -0
  355. package/dist/ionic/p-302e4d74.entry.js +4 -0
  356. package/dist/ionic/p-38d3e1cb.entry.js +4 -0
  357. package/dist/ionic/p-41254776.entry.js +4 -0
  358. package/dist/ionic/{p-6e386853.entry.js → p-416bec74.entry.js} +1 -1
  359. package/dist/ionic/{p-354d38d3.entry.js → p-41ae57ea.entry.js} +1 -1
  360. package/dist/ionic/{p-7bfeccb3.entry.js → p-4dc3f2b3.entry.js} +1 -1
  361. package/dist/ionic/{p-efc0cf82.entry.js → p-5272e103.entry.js} +1 -1
  362. package/dist/ionic/{p-68cc89a6.entry.js → p-59305088.entry.js} +1 -1
  363. package/dist/ionic/p-5b9b245e.entry.js +4 -0
  364. package/dist/ionic/{p-561af487.entry.js → p-5eadc64e.entry.js} +1 -1
  365. package/dist/ionic/p-5f695204.entry.js +4 -0
  366. package/dist/ionic/{p-38b9375b.entry.js → p-60ca717e.entry.js} +1 -1
  367. package/dist/ionic/{p-4c3e50f8.entry.js → p-63eb4550.entry.js} +1 -1
  368. package/dist/ionic/{p-90f50a65.entry.js → p-689f7a37.entry.js} +1 -1
  369. package/dist/ionic/{p-54cbb0a7.entry.js → p-7da532af.entry.js} +1 -1
  370. package/dist/ionic/{p-271c3640.entry.js → p-84dea138.entry.js} +1 -1
  371. package/dist/ionic/{p-4712a8a9.entry.js → p-88cf4127.entry.js} +1 -1
  372. package/dist/ionic/{p-3bba83ee.entry.js → p-89e04e63.entry.js} +1 -1
  373. package/dist/ionic/{p-dd01be0a.entry.js → p-8af458bf.entry.js} +1 -1
  374. package/dist/ionic/p-8d68604a.entry.js +4 -0
  375. package/dist/ionic/p-B13Uv-FT.js +4 -0
  376. package/dist/ionic/p-B8K6OHqa.js +4 -0
  377. package/dist/ionic/p-BD0v0Sx_.js +4 -0
  378. package/dist/ionic/p-BDs20Dfe.js +4 -0
  379. package/dist/ionic/p-BIj0Lfim.js +4 -0
  380. package/dist/ionic/p-BRZstBYy.js +4 -0
  381. package/dist/ionic/{p-T71k3C35.js → p-BRlwrQ6h.js} +1 -1
  382. package/dist/ionic/{p-DYUjHcuH.js → p-BT0-h-eD.js} +1 -1
  383. package/dist/ionic/p-Ba_yQZdQ.js +4 -0
  384. package/dist/ionic/p-BnMJqJBa.js +4 -0
  385. package/{components/p-6ZLn6K5e.js → dist/ionic/p-BrbwGxm1.js} +1 -1
  386. package/dist/ionic/p-Bu6uWqQM.js +4 -0
  387. package/dist/ionic/p-Bx46Dlpo.js +4 -0
  388. package/dist/ionic/p-C0vJzNM9.js +4 -0
  389. package/dist/ionic/p-C4FdGOym.js +4 -0
  390. package/dist/ionic/p-C5SsTfux.js +4 -0
  391. package/dist/ionic/p-CD77BF32.js +4 -0
  392. package/dist/ionic/p-CESQIy-V.js +4 -0
  393. package/dist/ionic/{p-BaeKWZ-a.js → p-CazJOH5P.js} +1 -1
  394. package/dist/ionic/p-D14knedj.js +4 -0
  395. package/dist/ionic/p-DQcKi6P6.js +4 -0
  396. package/dist/ionic/p-DlvB1Idh.js +4 -0
  397. package/dist/ionic/{p-C23AVPx9.js → p-Dvqtt_WK.js} +1 -1
  398. package/dist/ionic/{p-CJv-wOAd.js → p-NL1pxcde.js} +1 -1
  399. package/dist/ionic/{p-191a651e.entry.js → p-a1d733a3.entry.js} +1 -1
  400. package/dist/ionic/p-a4a2ce90.entry.js +4 -0
  401. package/dist/ionic/p-a6a95175.entry.js +4 -0
  402. package/dist/ionic/p-ac6a1168.entry.js +4 -0
  403. package/dist/ionic/{p-cc4320d3.entry.js → p-bcf18c26.entry.js} +1 -1
  404. package/dist/ionic/p-be8ae1cc.entry.js +4 -0
  405. package/dist/ionic/{p-85599fe3.entry.js → p-c0dd14f4.entry.js} +1 -1
  406. package/dist/ionic/{p-f0fb23c1.entry.js → p-c9952851.entry.js} +1 -1
  407. package/dist/ionic/p-cb893f35.entry.js +4 -0
  408. package/dist/ionic/p-d7fb1d2a.entry.js +4 -0
  409. package/dist/ionic/{p-ee09ac9d.entry.js → p-d8a6ebfd.entry.js} +1 -1
  410. package/dist/ionic/{p-7fbb3319.entry.js → p-dd89474c.entry.js} +1 -1
  411. package/dist/ionic/{p-fe9ed9bd.entry.js → p-df272a41.entry.js} +1 -1
  412. package/dist/ionic/{p-b9b4e85d.entry.js → p-e04a7110.entry.js} +1 -1
  413. package/dist/ionic/{p-D7jHfs0Y.js → p-e0g1fYYm.js} +1 -1
  414. package/dist/ionic/{p-a8df96c8.entry.js → p-e3a98575.entry.js} +1 -1
  415. package/dist/ionic/{p-d6755739.entry.js → p-efa78f73.entry.js} +1 -1
  416. package/dist/ionic/{p-1f24cb24.entry.js → p-f97ef975.entry.js} +1 -1
  417. package/dist/ionic/p-fc3312a4.entry.js +4 -0
  418. package/dist/ionic/{p-5d9094ac.entry.js → p-fd220f9c.entry.js} +1 -1
  419. package/dist/ionic/p-g9SK-dv1.js +4 -0
  420. package/dist/ionic/p-yYEBg4iw.js +4 -0
  421. package/dist/ionic/{p-BMPN55of.js → p-yiP8rgDC.js} +1 -1
  422. package/dist/types/components/content/content.d.ts +28 -3
  423. package/dist/types/components/input/input.d.ts +1 -0
  424. package/dist/types/components/modal/modal.d.ts +9 -1
  425. package/dist/types/components/modal/safe-area-utils.d.ts +28 -14
  426. package/dist/types/components/modal/utils.d.ts +4 -0
  427. package/dist/types/components/select/select.d.ts +11 -0
  428. package/dist/types/components/textarea/textarea.d.ts +1 -0
  429. package/dist/types/components.d.ts +1 -1
  430. package/dist/types/stencil-public-runtime.d.ts +61 -55
  431. package/dist/types/utils/forms/click-controller.d.ts +36 -0
  432. package/dist/types/utils/forms/index.d.ts +1 -0
  433. package/dist/types/utils/helpers.d.ts +17 -0
  434. package/dist/types/utils/overlays.d.ts +15 -0
  435. package/hydrate/index.js +454 -194
  436. package/hydrate/index.mjs +454 -194
  437. package/package.json +1 -1
  438. package/components/p-BNIsryb2.js +0 -4
  439. package/components/p-BU8a2IhR.js +0 -4
  440. package/components/p-BWoa-cki.js +0 -4
  441. package/components/p-BgkOsq-d.js +0 -4
  442. package/components/p-C09TXohi.js +0 -4
  443. package/components/p-CG_zZq_I.js +0 -4
  444. package/components/p-CWAks_S_.js +0 -4
  445. package/components/p-CWuIRJQN.js +0 -4
  446. package/components/p-CrAKlX71.js +0 -4
  447. package/components/p-Cw6WocLJ.js +0 -4
  448. package/components/p-DhNuxvJH.js +0 -4
  449. package/components/p-DiuOa1vw.js +0 -4
  450. package/components/p-M34T2gyX.js +0 -4
  451. package/dist/cjs/hardware-back-button-Bu4Dzw8l.js +0 -121
  452. package/dist/cjs/index-DkNv4J_i.js +0 -10
  453. package/dist/esm/hardware-back-button-DmkiRgOT.js +0 -115
  454. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  455. package/dist/ionic/p-171a2278.entry.js +0 -4
  456. package/dist/ionic/p-2ea4bb36.entry.js +0 -4
  457. package/dist/ionic/p-338a02e0.entry.js +0 -4
  458. package/dist/ionic/p-3e01c744.entry.js +0 -4
  459. package/dist/ionic/p-458715a9.entry.js +0 -4
  460. package/dist/ionic/p-5906ea6f.entry.js +0 -4
  461. package/dist/ionic/p-612ea3b1.entry.js +0 -4
  462. package/dist/ionic/p-77c96e08.entry.js +0 -4
  463. package/dist/ionic/p-7e394cc3.entry.js +0 -4
  464. package/dist/ionic/p-803059b6.entry.js +0 -4
  465. package/dist/ionic/p-9595e305.entry.js +0 -4
  466. package/dist/ionic/p-9ee9c5b6.entry.js +0 -4
  467. package/dist/ionic/p-BY6BzzPF.js +0 -4
  468. package/dist/ionic/p-Bd72UYI2.js +0 -4
  469. package/dist/ionic/p-BgOvhHy_.js +0 -4
  470. package/dist/ionic/p-BhamHSw3.js +0 -4
  471. package/dist/ionic/p-BijjLYjT.js +0 -4
  472. package/dist/ionic/p-C8XilMh0.js +0 -4
  473. package/dist/ionic/p-CER8qW8Y.js +0 -4
  474. package/dist/ionic/p-CFuOr1Tu.js +0 -4
  475. package/dist/ionic/p-CIGNaXM1.js +0 -4
  476. package/dist/ionic/p-CMZYmFb4.js +0 -4
  477. package/dist/ionic/p-CkxVYPtX.js +0 -4
  478. package/dist/ionic/p-CmXuiRT6.js +0 -4
  479. package/dist/ionic/p-D5t_-oMk.js +0 -4
  480. package/dist/ionic/p-D6rHcCvc.js +0 -4
  481. package/dist/ionic/p-DLM95R4x.js +0 -4
  482. package/dist/ionic/p-D_gb-kdd.js +0 -4
  483. package/dist/ionic/p-DajLgJ4d.js +0 -4
  484. package/dist/ionic/p-Do3zTvCA.js +0 -4
  485. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  486. package/dist/ionic/p-aff52029.entry.js +0 -4
  487. package/dist/ionic/p-b3532b8d.entry.js +0 -4
  488. package/dist/ionic/p-d526798a.entry.js +0 -4
  489. package/dist/ionic/p-e7f4b1e0.entry.js +0 -4
  490. package/dist/ionic/p-f83b3e0c.entry.js +0 -4
  491. package/dist/ionic/p-fa50d493.entry.js +0 -4
  492. package/dist/ionic/p-zWf7R2xV.js +0 -4
@@ -1,25 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { i as isIonContent, f as findRefresherInContent, a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY, b as findIonContent, p as printIonContentErrorMsg } from './index-C1b9CLFg.js';
6
- import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-BwNhx9NR.js';
7
- import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { i as isIonContent, f as findRefresherInContent, a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY, b as findIonContent, p as printIonContentErrorMsg } from './index-obGyiHiO.js';
6
+ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-CUDbUfWS.js';
7
+ import { w as win, o as onCustomPropertyChange, g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-BJFnZngp.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
- import { g as getCapacitor } from './capacitor-CFERIeaU.js';
10
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, f as dismiss, g as eventMethod } from './overlays-DKE0DgvE.js';
9
+ import { g as getCapacitor } from './capacitor-C041I3qZ.js';
10
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, n as getOverlaySizeType, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, f as dismiss, g as eventMethod } from './overlays-a_5AhqWk.js';
11
11
  import { g as getClassMap } from './theme-byZM6qHV.js';
12
- import { e as deepReady, w as waitForMount } from './index-DnA_7Bnx.js';
13
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
14
- import { KEYBOARD_DID_OPEN } from './keyboard-Cj8mLJeq.js';
15
- import { c as createAnimation } from './animation-BFNVlYum.js';
12
+ import { e as deepReady, w as waitForMount } from './index-CdoVp_rZ.js';
13
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
14
+ import { KEYBOARD_DID_OPEN } from './keyboard-Dsc85bts.js';
15
+ import { c as createAnimation } from './animation-CAzXJ2I1.js';
16
16
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
17
17
  import { createGesture } from './index-BmLuEdV7.js';
18
- import { w as win } from './index-ZjP4CjeZ.js';
19
18
  import './dir-Dojwmvde.js';
20
- import './hardware-back-button-DmkiRgOT.js';
21
19
  import './gesture-controller-B_gJaBk0.js';
22
- import './keyboard-DAF8GNJ9.js';
20
+ import './keyboard-Cz4hUjuj.js';
23
21
 
24
22
  var Style;
25
23
  (function (Style) {
@@ -127,6 +125,12 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
127
125
  }
128
126
  StatusBar.setStyle({ style: defaultStyle });
129
127
  };
128
+ /**
129
+ * Calls back when the modal's resolved `--height` changes.
130
+ */
131
+ const onModalHeightChange = (hostEl, callback) => {
132
+ return onCustomPropertyChange(hostEl, '--height', () => callback());
133
+ };
130
134
 
131
135
  /**
132
136
  * Swiping is only possible when the content is scrolled to the top, so that we
@@ -1654,40 +1658,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1654
1658
  };
1655
1659
  };
1656
1660
 
1657
- /**
1658
- * These thresholds match the SCSS media query breakpoints in modal.vars.scss
1659
- * that trigger the centered dialog layout (non-fullscreen modal).
1660
- *
1661
- * SCSS defines two height breakpoints: $modal-inset-min-height-small (600px)
1662
- * and $modal-inset-min-height-large (768px). We use the smaller one because
1663
- * that's the threshold where the modal transitions from fullscreen to centered
1664
- * dialog — the larger breakpoint only increases the dialog's height.
1665
- */
1666
- const MODAL_INSET_MIN_WIDTH = 768;
1667
- const MODAL_INSET_MIN_HEIGHT = 600;
1668
1661
  const EDGE_THRESHOLD = 5;
1669
- /**
1670
- * CSS values for `--width` / `--height` that are treated as fullscreen
1671
- * (modal touches the corresponding screen edges). Empty string means the
1672
- * property was not overridden. See `hasCustomModalDimensions()`.
1673
- */
1674
- const FULLSCREEN_SIZE_VALUES = new Set(['', '100%', '100vw', '100vh', '100dvw', '100dvh', '100svw', '100svh']);
1675
1662
  /**
1676
1663
  * Cache for resolved root safe-area-top value, invalidated once per frame.
1677
1664
  */
1678
1665
  let cachedRootSafeAreaTop = null;
1679
1666
  let cacheInvalidationScheduled = false;
1680
- /**
1681
- * Determines if the current viewport meets the CSS media query conditions
1682
- * that cause regular modals to render as centered dialogs instead of fullscreen.
1683
- * Matches: @media (min-width: 768px) and (min-height: 600px)
1684
- */
1685
- const isCenteredDialogViewport = () => {
1686
- if (!win)
1687
- return false;
1688
- return win.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
1689
- .matches;
1690
- };
1691
1667
  /**
1692
1668
  * Resolves the current root --ion-safe-area-top value to pixels.
1693
1669
  * Uses a temporary element because getComputedStyle on :root returns
@@ -1721,55 +1697,64 @@ const getRootSafeAreaTop = () => {
1721
1697
  return value;
1722
1698
  };
1723
1699
  /**
1724
- * Calls back when the resolved root `--ion-safe-area-top` changes, which no
1725
- * event and no window resize covers. The probe's height tracks the variable, so
1726
- * a change to it becomes a size change the observer can see.
1700
+ * Calls back when the resolved root `--ion-safe-area-top` changes. The value
1701
+ * the caller already applied is passed as the baseline, so a change between
1702
+ * that read and the observer starting is still reported.
1727
1703
  */
1728
1704
  const onRootSafeAreaTopChange = (callback) => {
1729
- const doc = win?.document;
1730
- if (!doc?.body || typeof ResizeObserver === 'undefined') {
1731
- return () => undefined;
1732
- }
1733
- const probe = doc.createElement('div');
1734
- probe.style.cssText =
1735
- 'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;' +
1736
- 'height:var(--ion-safe-area-top,0px);';
1737
- doc.body.appendChild(probe);
1738
- /**
1739
- * Seeded with the value the caller has already applied, so a change that
1740
- * lands before the observer's first delivery still gets reported. Comparing
1741
- * against an unset value instead would consume that first delivery and treat
1742
- * the new inset as the baseline.
1743
- */
1744
- let lastHeight = getRootSafeAreaTop();
1745
- const observer = new ResizeObserver((entries) => {
1746
- const { height } = entries[0].contentRect;
1747
- if (height !== lastHeight) {
1748
- lastHeight = height;
1749
- callback(height);
1750
- }
1751
- });
1752
- observer.observe(probe);
1753
- return () => {
1754
- observer.disconnect();
1755
- probe.remove();
1756
- };
1705
+ return onCustomPropertyChange(win?.document?.body, '--ion-safe-area-top', callback, getRootSafeAreaTop());
1757
1706
  };
1758
1707
  /**
1759
- * True when the modal host declares BOTH a non-fullscreen `--width` AND a
1760
- * non-fullscreen `--height` (i.e. a centered-dialog-like modal that doesn't
1761
- * touch any screen edge).
1708
+ * Determines which viewport axes the modal spans so safe-area requirements
1709
+ * can be predicted independently for each axis.
1762
1710
  *
1763
- * The conservative "both axes" check avoids mis-zeroing safe-area for
1764
- * partial-custom modals where the modal still touches top/bottom edges
1765
- * (e.g. only `--width` overridden). Partial cases fall through to the
1766
- * existing position-based post-animation correction.
1711
+ * A modal that spans an axis reaches both edges on that axis and needs the
1712
+ * corresponding safe-area insets. A modal that does not span an axis reaches
1713
+ * neither edge on that axis.
1714
+ *
1715
+ * When both `--width` and `--height` are `fullscreen`, coverage can be
1716
+ * determined directly. Otherwise, coverage is based on the rendered wrapper,
1717
+ * including cases where content sizing or `--max-height` causes the modal
1718
+ * to reach the viewport.
1767
1719
  */
1768
- const hasCustomModalDimensions = (hostEl) => {
1720
+ const getModalCoveredAxes = (hostEl) => {
1769
1721
  const styles = getComputedStyle(hostEl);
1770
- const width = styles.getPropertyValue('--width').trim();
1771
- const height = styles.getPropertyValue('--height').trim();
1772
- return !FULLSCREEN_SIZE_VALUES.has(width) && !FULLSCREEN_SIZE_VALUES.has(height);
1722
+ const width = getOverlaySizeType(styles.getPropertyValue('--width'));
1723
+ const height = getOverlaySizeType(styles.getPropertyValue('--height'));
1724
+ if (width === 'fullscreen' && height === 'fullscreen') {
1725
+ return { vertical: true, horizontal: true };
1726
+ }
1727
+ return measureCoveredAxes(hostEl);
1728
+ };
1729
+ /**
1730
+ * Measures the modal wrapper to determine whether it spans the viewport
1731
+ * on each axis.
1732
+ *
1733
+ * The wrapper has no box while the modal is hidden, so `overlay-hidden`
1734
+ * is temporarily removed to allow the wrapper to be measured. The class
1735
+ * is restored in the same task before the browser can paint.
1736
+ *
1737
+ * Only the wrapper's size is measured. Its position is affected by the
1738
+ * enter animation, which initially translates it by its own height, while
1739
+ * the translation does not affect its measured size.
1740
+ */
1741
+ const measureCoveredAxes = (hostEl) => {
1742
+ const wrapperEl = hostEl.shadowRoot?.querySelector('.modal-wrapper');
1743
+ if (wrapperEl == null || win === undefined) {
1744
+ return { vertical: false, horizontal: false };
1745
+ }
1746
+ const wasHidden = hostEl.classList.contains('overlay-hidden');
1747
+ if (wasHidden) {
1748
+ hostEl.classList.remove('overlay-hidden');
1749
+ }
1750
+ const { width, height } = wrapperEl.getBoundingClientRect();
1751
+ if (wasHidden) {
1752
+ hostEl.classList.add('overlay-hidden');
1753
+ }
1754
+ return {
1755
+ vertical: height >= win.innerHeight - EDGE_THRESHOLD,
1756
+ horizontal: width >= win.innerWidth - EDGE_THRESHOLD,
1757
+ };
1773
1758
  };
1774
1759
  /**
1775
1760
  * Returns the initial safe-area configuration based on modal type.
@@ -1803,26 +1788,23 @@ const getInitialSafeAreaConfig = (context) => {
1803
1788
  right: '0px',
1804
1789
  };
1805
1790
  }
1806
- // On viewports that meet the centered dialog media query breakpoints,
1807
- // regular modals render as centered dialogs (not fullscreen), so they
1808
- // don't touch any screen edges and don't need safe-area insets. Also
1809
- // applies to phone viewports when the modal declares custom --width and
1810
- // --height; these don't touch screen edges either, so the initial
1811
- // prediction must be zero to avoid a post-animation correction flash.
1812
- if (isCenteredDialogViewport() || context.hasCustomDimensions) {
1813
- return {
1814
- top: '0px',
1815
- bottom: '0px',
1816
- left: '0px',
1817
- right: '0px',
1818
- };
1819
- }
1820
- // Fullscreen modals on phone - inherit all safe areas
1791
+ /**
1792
+ * Each axis is evaluated independently because a modal can span one axis
1793
+ * without spanning the other. This allows the initial safe-area configuration
1794
+ * to match the modal's expected dimensions and avoids correcting an incorrect
1795
+ * pair of insets after presentation.
1796
+ *
1797
+ * A modal can span the horizontal axis while remaining inset vertically, or
1798
+ * span the vertical axis while remaining inset horizontally. Wide viewports
1799
+ * can also render regular modals as centered dialogs, while content-sized
1800
+ * modals may still be clamped to the viewport.
1801
+ */
1802
+ const { vertical, horizontal } = context.coveredAxes ?? { vertical: true, horizontal: true };
1821
1803
  return {
1822
- top: 'inherit',
1823
- bottom: 'inherit',
1824
- left: 'inherit',
1825
- right: 'inherit',
1804
+ top: vertical ? 'inherit' : '0px',
1805
+ bottom: vertical ? 'inherit' : '0px',
1806
+ left: horizontal ? 'inherit' : '0px',
1807
+ right: horizontal ? 'inherit' : '0px',
1826
1808
  };
1827
1809
  };
1828
1810
  /**
@@ -1874,9 +1856,9 @@ const clearSafeAreaOverrides = (hostEl) => {
1874
1856
  hostEl.style.removeProperty('--ion-safe-area-right');
1875
1857
  };
1876
1858
 
1877
- const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
1859
+ const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
1878
1860
 
1879
- const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
1861
+ const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
1880
1862
 
1881
1863
  const Modal = class {
1882
1864
  constructor(hostRef) {
@@ -2904,7 +2886,7 @@ const Modal = class {
2904
2886
  /**
2905
2887
  * Creates the context object for safe-area utilities.
2906
2888
  *
2907
- * `hasCustomDimensions` is only set by `setInitialSafeAreaOverrides()`
2889
+ * `coveredAxes` is only set by `setInitialSafeAreaOverrides()`
2908
2890
  * because it is only read by `getInitialSafeAreaConfig()`. Other callers
2909
2891
  * (resize handler, post-animation update, fullscreen-padding apply) would
2910
2892
  * pay a `getComputedStyle()` cost for a value they never consult.
@@ -2918,6 +2900,26 @@ const Modal = class {
2918
2900
  currentBreakpoint: this.currentBreakpoint,
2919
2901
  };
2920
2902
  }
2903
+ /**
2904
+ * Keeps the content's sizing in sync with `--height`. The content reads the
2905
+ * property to determine whether it should size itself to its content, and
2906
+ * changes to `--height` on an ancestor or the root can change that behavior
2907
+ * without changing the modal itself.
2908
+ */
2909
+ watchHeightForContent() {
2910
+ /**
2911
+ * A sheet's height comes from its breakpoints, so its content never sizes
2912
+ * itself to `--height`. Watching it would cause the drag to recalculate on
2913
+ * every frame.
2914
+ */
2915
+ if (this.isSheetModal) {
2916
+ return;
2917
+ }
2918
+ this.unsubscribeHeightChange?.();
2919
+ this.unsubscribeHeightChange = onModalHeightChange(this.el, () => {
2920
+ this.el.querySelectorAll('ion-content').forEach((contentEl) => contentEl.recalculateDimensions());
2921
+ });
2922
+ }
2921
2923
  /**
2922
2924
  * Sets initial safe-area overrides before modal animation.
2923
2925
  * Called in present() before animation starts.
@@ -2931,10 +2933,11 @@ const Modal = class {
2931
2933
  setInitialSafeAreaOverrides() {
2932
2934
  const context = {
2933
2935
  ...this.getSafeAreaContext(),
2934
- hasCustomDimensions: hasCustomModalDimensions(this.el),
2936
+ coveredAxes: getModalCoveredAxes(this.el),
2935
2937
  };
2936
2938
  const safeAreaConfig = getInitialSafeAreaConfig(context);
2937
2939
  applySafeAreaOverrides(this.el, safeAreaConfig);
2940
+ this.watchHeightForContent();
2938
2941
  // Set the internal offset property with the resolved root safe-area-top value
2939
2942
  if (context.isSheetModal) {
2940
2943
  this.updateSheetOffsetTop();
@@ -3054,6 +3057,8 @@ const Modal = class {
3054
3057
  clearSafeAreaOverrides(this.el);
3055
3058
  this.unsubscribeRootSafeAreaTop?.();
3056
3059
  this.unsubscribeRootSafeAreaTop = undefined;
3060
+ this.unsubscribeHeightChange?.();
3061
+ this.unsubscribeHeightChange = undefined;
3057
3062
  // Remove internal sheet offset property
3058
3063
  this.el.style.removeProperty('--ion-modal-offset-top');
3059
3064
  const { contentEl } = this.findContentAndFooter();
@@ -3091,7 +3096,7 @@ const Modal = class {
3091
3096
  const isCardModal = presentingElement !== undefined && mode === 'ios';
3092
3097
  const isHandleCycle = handleBehavior === 'cycle';
3093
3098
  const isSheetModalWithHandle = isSheetModal && showHandle;
3094
- return (h(Host, { key: '7c9c736052c5a788cf31040b6b2386dd9ea7454b', "no-router": true,
3099
+ return (h(Host, { key: '17a95bd7722bac2344bea041aff97db17f55c0cf', "no-router": true,
3095
3100
  // Allow the modal to be navigable when the handle is focusable
3096
3101
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
3097
3102
  zIndex: `${20000 + this.overlayIndex}`,
@@ -3104,7 +3109,7 @@ const Modal = class {
3104
3109
  'overlay-hidden': true,
3105
3110
  [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
3106
3111
  ...getClassMap(this.cssClass),
3107
- }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, h("ion-backdrop", { key: '01b5b5765fb3a32393c736065c824bf760728823', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '40fa7727a0923f7d7461dd027f1511a6a148d84a', class: "modal-shadow" }), h("div", { key: '9af934b607f60795bd5bff7bee6eacfc9b14fa35',
3112
+ }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, h("ion-backdrop", { key: '9dab1ef4771c0d847ba2be8672afbaa2748517f3', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '64af7ed1c5f552b61fc4b9387b926acc76c8a99a', class: "modal-shadow" }), h("div", { key: '7e76d77d5b2e8f0467bb793facf5aa86f8d01bbe',
3108
3113
  /*
3109
3114
  role and aria-modal must be used on the
3110
3115
  same element. They must also be set inside the
@@ -3117,9 +3122,9 @@ const Modal = class {
3117
3122
  without the tabindex focus() would be a no-op and screen readers
3118
3123
  may not properly announce the dialog and its content when it opens.
3119
3124
  */
3120
- role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (h("button", { key: 'df84a6806413b13efc5b03c862edde83151579a7', class: "modal-handle",
3125
+ role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (h("button", { key: '5efc0bb0a59adcc594ac48da9fd90e57908a7ffb', class: "modal-handle",
3121
3126
  // Prevents the handle from receiving keyboard focus when it does not cycle
3122
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '072d3929ec6f25481946b184d8ac24219011e783', onSlotchange: this.onSlotChange }))));
3127
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '6175fcd0b39c086b4e9eb9e96c4d631c2a86774b', onSlotchange: this.onSlotChange }))));
3123
3128
  }
3124
3129
  get el() { return getElement(this); }
3125
3130
  static get watchers() { return {
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, e as config, f as printIonWarning, h, g as getElement, d as Host } from './index-C23AVPx9.js';
4
+ import { r as registerInstance, c as createEvent, e as config, f as printIonWarning, h, g as getElement, d as Host } from './index-Dvqtt_WK.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
6
- import { l as assert } from './helpers-BSmc0nst.js';
7
- import { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index-DnA_7Bnx.js';
8
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
9
- import { a as attachComponent } from './framework-delegate-BwNhx9NR.js';
6
+ import { l as assert } from './helpers-BJFnZngp.js';
7
+ import { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index-CdoVp_rZ.js';
8
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
9
+ import { a as attachComponent } from './framework-delegate-CUDbUfWS.js';
10
10
  import './dir-Dojwmvde.js';
11
11
 
12
12
  const VIEW_STATE_NEW = 1;
@@ -115,7 +115,7 @@ const Nav = class {
115
115
  // We want to set this flag before any watch callbacks are manually called
116
116
  this.didLoad = true;
117
117
  this.rootChanged();
118
- this.gesture = (await import('./swipe-back-B2CmabKY.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
118
+ this.gesture = (await import('./swipe-back-ibFGqXH2.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
119
119
  this.swipeGestureChanged();
120
120
  }
121
121
  connectedCallback() {
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { b as inheritAttributes } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { b as inheritAttributes } from './helpers-BJFnZngp.js';
6
6
  import { c as createColorClasses } from './theme-byZM6qHV.js';
7
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
7
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
8
8
  import './dir-Dojwmvde.js';
9
9
 
10
10
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
@@ -1,14 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { d as doc } from './index-ZjP4CjeZ.js';
6
- import { r as raf } from './helpers-BSmc0nst.js';
7
- import { h as hapticSelectionEnd, b as hapticSelectionStart, a as hapticSelectionChanged } from './haptic-Cq4UAeka.js';
8
- import { a as isPlatform, b as getIonMode } from './ionic-global-ZXjCXKH0.js';
4
+ import { r as registerInstance, c as createEvent, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { n as doc, r as raf } from './helpers-BJFnZngp.js';
6
+ import { h as hapticSelectionEnd, b as hapticSelectionStart, a as hapticSelectionChanged } from './haptic-D3njgGLB.js';
7
+ import { a as isPlatform, b as getIonMode } from './ionic-global-BSaFA7np.js';
9
8
  import { c as createColorClasses } from './theme-byZM6qHV.js';
10
9
  import './dir-Dojwmvde.js';
11
- import './capacitor-CFERIeaU.js';
10
+ import './capacitor-C041I3qZ.js';
12
11
 
13
12
  const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.2)}:host(.ion-color:focus) .picker-opts{background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
14
13
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { g as getElementRoot } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, c as createEvent, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { g as getElementRoot } from './helpers-BJFnZngp.js';
6
6
  import './dir-Dojwmvde.js';
7
7
 
8
8
  const pickerIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
@@ -1,17 +1,15 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, n as focusFirstDescendant, f as dismiss, g as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-DKE0DgvE.js';
6
- import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-BwNhx9NR.js';
7
- import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, o as focusFirstDescendant, f as dismiss, g as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-a_5AhqWk.js';
6
+ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-CUDbUfWS.js';
7
+ import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-BJFnZngp.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
- import { b as getIonMode, a as isPlatform } from './ionic-global-ZXjCXKH0.js';
9
+ import { b as getIonMode, a as isPlatform } from './ionic-global-BSaFA7np.js';
10
10
  import { g as getClassMap } from './theme-byZM6qHV.js';
11
- import { e as deepReady, w as waitForMount } from './index-DnA_7Bnx.js';
12
- import { c as createAnimation } from './animation-BFNVlYum.js';
13
- import './index-ZjP4CjeZ.js';
14
- import './hardware-back-button-DmkiRgOT.js';
11
+ import { e as deepReady, w as waitForMount } from './index-CdoVp_rZ.js';
12
+ import { c as createAnimation } from './animation-CAzXJ2I1.js';
15
13
  import './gesture-controller-B_gJaBk0.js';
16
14
  import './dir-Dojwmvde.js';
17
15
 
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, e as config, h, d as Host } from './index-C23AVPx9.js';
5
- import { e as clamp } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, e as config, h, d as Host } from './index-Dvqtt_WK.js';
5
+ import { e as clamp } from './helpers-BJFnZngp.js';
6
6
  import { c as createColorClasses } from './theme-byZM6qHV.js';
7
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
7
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
8
8
  import './dir-Dojwmvde.js';
9
9
 
10
10
  const progressBarIosCss = () => `:host{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.3);--progress-background:var(--ion-color-primary, #0054e9);display:block;position:relative;width:100%;contain:strict;direction:ltr;overflow:hidden}.progress,.progress-indeterminate,.indeterminate-bar-primary,.indeterminate-bar-secondary,.progress-buffer-bar{left:0;right:0;top:0;bottom:0;position:absolute;width:100%;height:100%}.buffer-circles-container,.buffer-circles{left:0;right:0;top:0;bottom:0;position:absolute}.buffer-circles{right:-10px;left:-10px;}.progress,.progress-buffer-bar,.buffer-circles-container{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 150ms linear;transition:-webkit-transform 150ms linear;transition:transform 150ms linear;transition:transform 150ms linear, -webkit-transform 150ms linear}.progress,.progress-indeterminate{background:var(--progress-background);z-index:2}.progress-buffer-bar{background:var(--background);z-index:1}.buffer-circles-container{overflow:hidden}.indeterminate-bar-primary{top:0;right:0;bottom:0;left:-145.166611%;-webkit-animation:primary-indeterminate-translate 2s infinite linear;animation:primary-indeterminate-translate 2s infinite linear}.indeterminate-bar-primary .progress-indeterminate{-webkit-animation:primary-indeterminate-scale 2s infinite linear;animation:primary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.indeterminate-bar-secondary{top:0;right:0;bottom:0;left:-54.888891%;-webkit-animation:secondary-indeterminate-translate 2s infinite linear;animation:secondary-indeterminate-translate 2s infinite linear}.indeterminate-bar-secondary .progress-indeterminate{-webkit-animation:secondary-indeterminate-scale 2s infinite linear;animation:secondary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.buffer-circles{background-image:radial-gradient(ellipse at center, var(--background) 0%, var(--background) 30%, transparent 30%);background-repeat:repeat-x;background-position:5px center;background-size:10px 10px;z-index:0;-webkit-animation:buffering 450ms infinite linear;animation:buffering 450ms infinite linear}:host(.progress-bar-reversed){-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.progress-paused) .indeterminate-bar-secondary,:host(.progress-paused) .indeterminate-bar-primary,:host(.progress-paused) .buffer-circles{-webkit-animation-play-state:paused;animation-play-state:paused}:host(.ion-color) .buffer-circles{background-image:radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%)}:host(.ion-color) .progress,:host(.ion-color) .progress-indeterminate{background:var(--ion-color-base)}@-webkit-keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@-webkit-keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@-webkit-keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}:host{border-radius:9999px;height:4px}:host(.progress-bar-solid){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}`;
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, d as Host, g as getElement, i as forceUpdate } from './index-C23AVPx9.js';
5
- import { f as addEventListener, m as removeEventListener, a as renderHiddenInput } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, c as createEvent, h, d as Host, g as getElement, i as forceUpdate } from './index-Dvqtt_WK.js';
5
+ import { f as addEventListener, m as removeEventListener, a as renderHiddenInput } from './helpers-BJFnZngp.js';
6
6
  import { i as isOptionSelected } from './compare-with-utils-sObYyvOy.js';
7
- import { c as createItemMultipleInputsObserver } from './item-multiple-inputs-DZnIiOO_.js';
7
+ import { c as createItemMultipleInputsObserver } from './item-multiple-inputs-CffmpUe9.js';
8
8
  import { h as hostContext, c as createColorClasses } from './theme-byZM6qHV.js';
9
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
9
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
10
10
  import { c as checkInvalidState } from './validity-DJztqcrH.js';
11
11
  import './dir-Dojwmvde.js';
12
12
 
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host, g as getElement } from './index-C23AVPx9.js';
5
- import { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-C1b9CLFg.js';
6
- import { j as isSafeNumber, e as clamp, d as debounceEvent, i as inheritAriaAttributes, a as renderHiddenInput } from './helpers-BSmc0nst.js';
4
+ import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host, g as getElement } from './index-Dvqtt_WK.js';
5
+ import { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-obGyiHiO.js';
6
+ import { j as isSafeNumber, e as clamp, d as debounceEvent, i as inheritAriaAttributes, a as renderHiddenInput } from './helpers-BJFnZngp.js';
7
7
  import { i as isRTL } from './dir-Dojwmvde.js';
8
8
  import { h as hostContext, c as createColorClasses } from './theme-byZM6qHV.js';
9
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
9
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
10
10
 
11
11
  function getDecimalPlaces(n) {
12
12
  if (!isSafeNumber(n))
@@ -1,20 +1,19 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask, r as registerInstance, c as createEvent, a as readTask, j as printIonError, h, d as Host, g as getElement, e as config } from './index-C23AVPx9.js';
4
+ import { w as writeTask, r as registerInstance, c as createEvent, a as readTask, j as printIonError, h, d as Host, g as getElement, e as config } from './index-Dvqtt_WK.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
6
- import { I as ION_CONTENT_CLASS_SELECTOR, c as ION_CONTENT_ELEMENT_SELECTOR, p as printIonContentErrorMsg, e as findRefresherScrollHost, g as getScrollElement } from './index-C1b9CLFg.js';
7
- import { c as componentOnReady, t as transitionEndAsync, e as clamp, g as getElementRoot, r as raf } from './helpers-BSmc0nst.js';
8
- import { d as hapticImpact, I as ImpactStyle } from './haptic-Cq4UAeka.js';
9
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
10
- import { c as createAnimation } from './animation-BFNVlYum.js';
6
+ import { I as ION_CONTENT_CLASS_SELECTOR, c as ION_CONTENT_ELEMENT_SELECTOR, p as printIonContentErrorMsg, e as findRefresherScrollHost, g as getScrollElement } from './index-obGyiHiO.js';
7
+ import { c as componentOnReady, t as transitionEndAsync, e as clamp, g as getElementRoot, r as raf } from './helpers-BJFnZngp.js';
8
+ import { d as hapticImpact, I as ImpactStyle } from './haptic-D3njgGLB.js';
9
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
10
+ import { c as createAnimation } from './animation-CAzXJ2I1.js';
11
11
  import { E as ENABLE_HTML_CONTENT_DEFAULT } from './config-DWCzVL3Y.js';
12
- import { s as sanitizeDOMString } from './index-D76bbuoi.js';
12
+ import { s as sanitizeDOMString } from './index-DmnOg_xm.js';
13
13
  import { l as arrowDown, m as caretBackSharp } from './index-BvabGprD.js';
14
14
  import { S as SPINNERS } from './spinner-configs-D4RIp70E.js';
15
15
  import './dir-Dojwmvde.js';
16
- import './capacitor-CFERIeaU.js';
17
- import './index-ZjP4CjeZ.js';
16
+ import './capacitor-C041I3qZ.js';
18
17
 
19
18
  const getRefresherAnimationType = (contentEl) => {
20
19
  const previousSibling = contentEl.previousElementSibling;
@@ -1,15 +1,14 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, d as Host, g as getElement, c as createEvent } from './index-C23AVPx9.js';
4
+ import { r as registerInstance, h, d as Host, g as getElement, c as createEvent } from './index-Dvqtt_WK.js';
5
5
  import { n as reorderThreeOutline, o as reorderTwoSharp } from './index-BvabGprD.js';
6
- import { b as getIonMode } from './ionic-global-ZXjCXKH0.js';
7
- import { a as findClosestIonContent, g as getScrollElement } from './index-C1b9CLFg.js';
8
- import { r as raf } from './helpers-BSmc0nst.js';
9
- import { b as hapticSelectionStart, a as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-Cq4UAeka.js';
6
+ import { b as getIonMode } from './ionic-global-BSaFA7np.js';
7
+ import { a as findClosestIonContent, g as getScrollElement } from './index-obGyiHiO.js';
8
+ import { r as raf } from './helpers-BJFnZngp.js';
9
+ import { b as hapticSelectionStart, a as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic-D3njgGLB.js';
10
10
  import './dir-Dojwmvde.js';
11
- import './capacitor-CFERIeaU.js';
12
- import './index-ZjP4CjeZ.js';
11
+ import './capacitor-C041I3qZ.js';
13
12
 
14
13
  const reorderIosCss = () => `:host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block}::slotted(ion-icon){font-size:dynamic-font(16px)}.reorder-icon{font-size:2.125rem;opacity:0.4}`;
15
14