@ionic/core 8.8.18-nightly.20260812 → 8.8.19-dev.11786610762.137bbb21

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 (1141) 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-divider.d.ts +11 -0
  27. package/components/ion-divider.js +4 -0
  28. package/components/ion-fab-button.js +1 -1
  29. package/components/ion-fab-list.js +1 -1
  30. package/components/ion-fab.js +1 -1
  31. package/components/ion-footer.js +1 -1
  32. package/components/ion-gallery-item.d.ts +11 -0
  33. package/components/ion-gallery-item.js +4 -0
  34. package/components/ion-gallery.d.ts +11 -0
  35. package/components/ion-gallery.js +4 -0
  36. package/components/ion-grid.js +1 -1
  37. package/components/ion-header.js +1 -1
  38. package/components/ion-icon.js +1 -1
  39. package/components/ion-img.js +1 -1
  40. package/components/ion-infinite-scroll-content.js +1 -1
  41. package/components/ion-infinite-scroll.js +1 -1
  42. package/components/ion-input-otp.js +1 -1
  43. package/components/ion-input-password-toggle.js +1 -1
  44. package/components/ion-input.js +1 -1
  45. package/components/ion-item-divider.js +1 -1
  46. package/components/ion-item-group.js +1 -1
  47. package/components/ion-item-option.js +1 -1
  48. package/components/ion-item-options.js +1 -1
  49. package/components/ion-item-sliding.js +1 -1
  50. package/components/ion-item.js +1 -1
  51. package/components/ion-label.js +1 -1
  52. package/components/ion-list-header.js +1 -1
  53. package/components/ion-list.js +1 -1
  54. package/components/ion-loading.js +1 -1
  55. package/components/ion-menu-button.js +1 -1
  56. package/components/ion-menu-toggle.js +1 -1
  57. package/components/ion-menu.js +1 -1
  58. package/components/ion-modal.js +1 -1
  59. package/components/ion-nav-link.js +1 -1
  60. package/components/ion-nav.js +1 -1
  61. package/components/ion-note.js +1 -1
  62. package/components/ion-picker-column-option.js +1 -1
  63. package/components/ion-picker-column.js +1 -1
  64. package/components/ion-picker-legacy-column.js +1 -1
  65. package/components/ion-picker-legacy.js +1 -1
  66. package/components/ion-picker.js +1 -1
  67. package/components/ion-popover.js +1 -1
  68. package/components/ion-progress-bar.js +1 -1
  69. package/components/ion-radio-group.js +1 -1
  70. package/components/ion-radio.js +1 -1
  71. package/components/ion-range.js +1 -1
  72. package/components/ion-refresher-content.js +1 -1
  73. package/components/ion-refresher.js +1 -1
  74. package/components/ion-reorder-group.js +1 -1
  75. package/components/ion-reorder.js +1 -1
  76. package/components/ion-ripple-effect.js +1 -1
  77. package/components/ion-route-redirect.js +1 -1
  78. package/components/ion-route.js +1 -1
  79. package/components/ion-router-link.js +1 -1
  80. package/components/ion-router-outlet.js +1 -1
  81. package/components/ion-router.js +1 -1
  82. package/components/ion-row.js +1 -1
  83. package/components/ion-searchbar.js +1 -1
  84. package/components/ion-segment-button.js +1 -1
  85. package/components/ion-segment-content.js +1 -1
  86. package/components/ion-segment-view.js +1 -1
  87. package/components/ion-segment.js +1 -1
  88. package/components/ion-select-modal.js +1 -1
  89. package/components/ion-select-option.js +1 -1
  90. package/components/ion-select-popover.js +1 -1
  91. package/components/ion-select.js +1 -1
  92. package/components/ion-skeleton-text.js +1 -1
  93. package/components/ion-spinner.js +1 -1
  94. package/components/ion-split-pane.js +1 -1
  95. package/components/ion-tab-bar.js +1 -1
  96. package/components/ion-tab-button.js +1 -1
  97. package/components/ion-tab.js +1 -1
  98. package/components/ion-tabs.js +1 -1
  99. package/components/ion-text.js +1 -1
  100. package/components/ion-textarea.js +1 -1
  101. package/components/ion-thumbnail.js +1 -1
  102. package/components/ion-title.js +1 -1
  103. package/components/ion-toast.js +1 -1
  104. package/components/ion-toggle.js +1 -1
  105. package/components/ion-toolbar.js +1 -1
  106. package/components/p-6hUZIMBp.js +4 -0
  107. package/components/p-9mfpAwJh.js +4 -0
  108. package/components/{p-BkKAANMJ.js → p-B2SvA6NE.js} +1 -1
  109. package/components/p-B2aAAEfp.js +4 -0
  110. package/components/p-B2lpqDWK.js +4 -0
  111. package/components/p-BDoEcs72.js +4 -0
  112. package/components/p-BDqjX7Z_.js +4 -0
  113. package/components/{p-Cf2jSDS8.js → p-BE21dB_a.js} +1 -1
  114. package/components/p-BFpXpzD-.js +4 -0
  115. package/components/{p-cyNmxje6.js → p-BUNIyvqe.js} +1 -1
  116. package/components/p-BYSs-jZz.js +4 -0
  117. package/{dist/ionic/p-mjKAFv89.js → components/p-BYoGvMgh.js} +1 -1
  118. package/components/p-BYrCPOBM.js +4 -0
  119. package/components/{p-DqLB8yFQ.js → p-BZwQa9ey.js} +1 -1
  120. package/components/p-BbVhJs-a.js +4 -0
  121. package/components/p-BhRXIcSN.js +4 -0
  122. package/components/p-BjW8SOqw.js +4 -0
  123. package/components/p-BsiHrVPa.js +4 -0
  124. package/components/p-BwKpO3Is.js +4 -0
  125. package/components/p-Bz8jnuiy.js +4 -0
  126. package/components/p-C-Ea1l5K.js +4 -0
  127. package/components/p-C3X10Pc6.js +4 -0
  128. package/{dist/ionic/p-DC3RagnA.js → components/p-CA4M5WkT.js} +1 -1
  129. package/components/p-CH6jbAEI.js +4 -0
  130. package/components/p-CJE5t2qs.js +4 -0
  131. package/components/p-CODBQrPj.js +4 -0
  132. package/components/p-CUbb1HkU.js +4 -0
  133. package/components/p-CVYFPBs-.js +4 -0
  134. package/components/p-CVoLDZ7z.js +4 -0
  135. package/components/p-CZrORZXS.js +4 -0
  136. package/components/p-Cc3oC60a.js +4 -0
  137. package/components/{p-ChIZKXUu.js → p-Ch8jco3x.js} +1 -1
  138. package/components/p-CmoUesXp.js +4 -0
  139. package/components/{p-C_hpsif8.js → p-CpHPq11n.js} +1 -1
  140. package/components/p-CyNW8ypn.js +4 -0
  141. package/components/{p-D7uN07a3.js → p-CzlL9T_X.js} +1 -1
  142. package/components/p-CzxyxYID.js +4 -0
  143. package/components/p-D0Iqw6OZ.js +4 -0
  144. package/components/p-D0LT3Z3i.js +4 -0
  145. package/components/p-D1t981Ih.js +4 -0
  146. package/components/p-D6tqrIYY.js +4 -0
  147. package/components/p-D9C5yWpF.js +4 -0
  148. package/components/p-DCRXgAoM.js +4 -0
  149. package/components/p-DL5wyRub.js +4 -0
  150. package/components/p-DQlXUUDh.js +4 -0
  151. package/components/p-DRWN7QM2.js +4 -0
  152. package/components/p-DaJxRxSQ.js +4 -0
  153. package/components/p-DbmfFkd1.js +4 -0
  154. package/components/p-Dhi5xtNS.js +4 -0
  155. package/components/p-DnwLgh9U.js +4 -0
  156. package/components/p-DoZB3DcY.js +4 -0
  157. package/components/p-Dovs7FIs.js +4 -0
  158. package/components/p-DrrpZB81.js +4 -0
  159. package/components/p-DrzWRqnG.js +4 -0
  160. package/components/p-DylrHLJF.js +4 -0
  161. package/components/p-Dypq4kXE.js +4 -0
  162. package/components/p-DzeMJvWL.js +4 -0
  163. package/components/p-Dzk4Tr0X.js +4 -0
  164. package/components/p-Rkm2AOZ2.js +4 -0
  165. package/components/p-UYngqo1f.js +4 -0
  166. package/components/p-Va26YR7l.js +4 -0
  167. package/components/p-asUhrzOB.js +4 -0
  168. package/components/p-fIOYmaqA.js +4 -0
  169. package/components/p-jlwpz7Ms.js +4 -0
  170. package/components/p-kInyVu79.js +4 -0
  171. package/components/{p-Osve4qkc.js → p-miSYSxcc.js} +1 -1
  172. package/components/{p-A3O24YmY.js → p-paDbTUL9.js} +1 -1
  173. package/components/p-vXpMhGrs.js +4 -0
  174. package/{dist/ionic/p-D13Eaw-8.js → components/p-znZTPd7u.js} +1 -1
  175. package/css/core.css +1 -1
  176. package/css/core.css.map +1 -1
  177. package/css/display.css +1 -1
  178. package/css/display.css.map +1 -1
  179. package/css/flex-utils.css +1 -1
  180. package/css/flex-utils.css.map +1 -1
  181. package/css/float-elements.css.map +1 -1
  182. package/css/global.bundle.css.map +1 -1
  183. package/css/ionic/bundle.ionic.css +1 -0
  184. package/css/ionic/bundle.ionic.css.map +1 -0
  185. package/css/ionic/core.ionic.css +1 -0
  186. package/css/ionic/core.ionic.css.map +1 -0
  187. package/css/ionic/global.bundle.ionic.css +1 -0
  188. package/css/ionic/global.bundle.ionic.css.map +1 -0
  189. package/css/ionic/ionic-swiper.ionic.css +1 -0
  190. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  191. package/css/ionic/link.ionic.css +1 -0
  192. package/css/ionic/link.ionic.css.map +1 -0
  193. package/css/ionic/structure.ionic.css +1 -0
  194. package/css/ionic/structure.ionic.css.map +1 -0
  195. package/css/ionic/typography.ionic.css +1 -0
  196. package/css/ionic/typography.ionic.css.map +1 -0
  197. package/css/ionic/utils.bundle.ionic.css +1 -0
  198. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  199. package/css/ionic-swiper.css +1 -1
  200. package/css/ionic-swiper.css.map +1 -1
  201. package/css/ionic.bundle.css +1 -1
  202. package/css/ionic.bundle.css.map +1 -1
  203. package/css/normalize.css.map +1 -1
  204. package/css/padding.css.map +1 -1
  205. package/css/palettes/dark.always.css.map +1 -1
  206. package/css/palettes/dark.class.css.map +1 -1
  207. package/css/palettes/dark.system.css.map +1 -1
  208. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  209. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  210. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  211. package/css/palettes/high-contrast.always.css.map +1 -1
  212. package/css/palettes/high-contrast.class.css.map +1 -1
  213. package/css/palettes/high-contrast.system.css.map +1 -1
  214. package/css/structure.css.map +1 -1
  215. package/css/text-alignment.css.map +1 -1
  216. package/css/text-transformation.css.map +1 -1
  217. package/css/typography.css.map +1 -1
  218. package/css/utils.bundle.css +1 -1
  219. package/css/utils.bundle.css.map +1 -1
  220. package/dist/cjs/{animation-Ch16T-Nb.js → animation-qlGmEn5Y.js} +3 -3
  221. package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-CtK-3pCu.js} +1 -1
  222. package/dist/cjs/{button-active-COnxOe4X.js → button-active-CugpWmFI.js} +2 -2
  223. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-BixsAzyb.js} +3 -3
  224. package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
  225. package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
  226. package/dist/cjs/caret-right-CRCgv98E.js +8 -0
  227. package/dist/cjs/clear-button-press-controller-2hAy_qdm.js +45 -0
  228. package/dist/cjs/config-DWdFbSNK.js +35 -0
  229. package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
  230. package/dist/cjs/{format-BUFWn4Bn.js → format-COAsdjOc.js} +1 -1
  231. package/dist/cjs/{framework-delegate-BgU6U9Ez.js → framework-delegate-CJT_QJQI.js} +4 -2
  232. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-BFgF-QCg.js} +1 -1
  233. package/dist/cjs/{helpers-gntk8bfm.js → helpers-Fh1iXsX9.js} +71 -4
  234. package/dist/cjs/{index-BfaXsATC.js → index-C1knGA9x.js} +53 -4
  235. package/dist/cjs/{index-ooS8B4p9.js → index-CM8iGvyx.js} +15 -15
  236. package/dist/cjs/{index-BhhuJ1Yx.js → index-CNicxECl.js} +9 -8
  237. package/dist/cjs/{index-DqmRDbxg.js → index-CxDnX7hd.js} +3 -1
  238. package/dist/cjs/{index-BS2uhvhT.js → index-D94mERjz.js} +4 -4
  239. package/dist/cjs/{index-BiRrzGDi.js → index-DRFkZu3V.js} +2 -2
  240. package/dist/cjs/index-YYUVCfP-.js +429 -0
  241. package/dist/cjs/index.cjs.js +16 -16
  242. package/dist/cjs/{input-shims-Bn1cXfCM.js → input-shims-C8NCYfWv.js} +18 -17
  243. package/dist/cjs/{input.utils-BwhxZooW.js → input.utils-CYZZsbdf.js} +5 -5
  244. package/dist/cjs/ion-accordion_2.cjs.entry.js +61 -29
  245. package/dist/cjs/ion-action-sheet.cjs.entry.js +41 -22
  246. package/dist/cjs/ion-alert.cjs.entry.js +78 -41
  247. package/dist/cjs/ion-app_8.cjs.entry.js +508 -194
  248. package/dist/cjs/ion-avatar_3.cjs.entry.js +125 -13
  249. package/dist/cjs/ion-back-button.cjs.entry.js +31 -22
  250. package/dist/cjs/ion-backdrop.cjs.entry.js +10 -7
  251. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +54 -18
  252. package/dist/cjs/ion-button_2.cjs.entry.js +61 -24
  253. package/dist/cjs/ion-card_5.cjs.entry.js +55 -33
  254. package/dist/cjs/ion-checkbox.cjs.entry.js +34 -17
  255. package/dist/cjs/ion-chip.cjs.entry.js +50 -9
  256. package/dist/cjs/ion-col_3.cjs.entry.js +56 -57
  257. package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -9
  258. package/dist/cjs/ion-datetime_3.cjs.entry.js +121 -46
  259. package/dist/cjs/ion-divider.cjs.entry.js +51 -0
  260. package/dist/cjs/ion-fab_3.cjs.entry.js +44 -28
  261. package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
  262. package/dist/cjs/ion-gallery.cjs.entry.js +607 -0
  263. package/dist/cjs/ion-img.cjs.entry.js +8 -4
  264. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +93 -17
  265. package/dist/cjs/ion-input-otp.cjs.entry.js +74 -9
  266. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +53 -15
  267. package/dist/cjs/ion-input.cjs.entry.js +132 -40
  268. package/dist/cjs/ion-item-option_3.cjs.entry.js +467 -52
  269. package/dist/cjs/ion-item_8.cjs.entry.js +121 -50
  270. package/dist/cjs/ion-loading.cjs.entry.js +22 -19
  271. package/dist/cjs/ion-menu_3.cjs.entry.js +47 -29
  272. package/dist/cjs/ion-modal.cjs.entry.js +307 -143
  273. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -11
  274. package/dist/cjs/ion-picker-column-option.cjs.entry.js +12 -8
  275. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
  276. package/dist/cjs/ion-picker.cjs.entry.js +10 -6
  277. package/dist/cjs/ion-popover.cjs.entry.js +21 -19
  278. package/dist/cjs/ion-progress-bar.cjs.entry.js +27 -9
  279. package/dist/cjs/ion-radio_2.cjs.entry.js +36 -18
  280. package/dist/cjs/ion-range.cjs.entry.js +20 -13
  281. package/dist/cjs/ion-refresher_2.cjs.entry.js +42 -23
  282. package/dist/cjs/ion-reorder_2.cjs.entry.js +38 -14
  283. package/dist/cjs/ion-ripple-effect.cjs.entry.js +15 -7
  284. package/dist/cjs/ion-route_4.cjs.entry.js +11 -10
  285. package/dist/cjs/ion-searchbar.cjs.entry.js +146 -32
  286. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  287. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
  288. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -16
  289. package/dist/cjs/ion-select-modal.cjs.entry.js +114 -38
  290. package/dist/cjs/ion-select_3.cjs.entry.js +557 -108
  291. package/dist/cjs/ion-spinner.cjs.entry.js +30 -8
  292. package/dist/cjs/ion-split-pane.cjs.entry.js +13 -9
  293. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -28
  294. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
  295. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  296. package/dist/cjs/ion-textarea.cjs.entry.js +137 -23
  297. package/dist/cjs/ion-toast.cjs.entry.js +70 -46
  298. package/dist/cjs/ion-toggle.cjs.entry.js +82 -26
  299. package/dist/cjs/ionic-global-DvEcO0tQ.js +519 -0
  300. package/dist/cjs/ionic.cjs.js +4 -4
  301. package/dist/cjs/{ios.transition-IMJRwn29.js → ios.transition-BgDCUY4Y.js} +7 -5
  302. package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-DKn76MYO.js} +1 -1
  303. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-BbZXOwZg.js} +1 -1
  304. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-nne7rvBK.js} +4 -3
  305. package/dist/cjs/list-a-7GSA6K.js +8 -0
  306. package/dist/cjs/loader.cjs.js +4 -4
  307. package/dist/cjs/{md.transition-CgQZxcoT.js → md.transition-Debf4tYr.js} +6 -5
  308. package/dist/cjs/{notch-controller-_SwR025y.js → notch-controller-CFlPw7ER.js} +4 -4
  309. package/dist/cjs/overlay-control-label-DnRLQR1t.js +52 -0
  310. package/dist/cjs/{overlays-DuSEMhIW.js → overlays-DYBUkNQu.js} +309 -18
  311. package/dist/cjs/scroll-hide-controller-DAf_DwKc.js +345 -0
  312. package/dist/cjs/select-option-render-BqJEK1N1.js +124 -0
  313. package/dist/cjs/{status-tap-CSvBT7FV.js → status-tap-hwqc0yb_.js} +4 -3
  314. package/dist/cjs/{swipe-back-CuIiziaa.js → swipe-back-DqQx5QCp.js} +3 -2
  315. package/dist/cjs/{theme-CeDs6Hcv.js → theme-IlOsGAz7.js} +25 -1
  316. package/dist/cjs/validity-QmuwEptc.js +51 -0
  317. package/dist/cjs/x-BTF99yFH.js +8 -0
  318. package/dist/collection/collection-manifest.json +9 -1
  319. package/dist/collection/components/accordion/accordion.ionic.css +201 -0
  320. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  321. package/dist/collection/components/accordion/accordion.js +41 -27
  322. package/dist/collection/components/accordion/accordion.md.css +67 -59
  323. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  324. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  325. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  326. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  327. package/dist/collection/components/action-sheet/action-sheet.ionic.css +494 -0
  328. package/dist/collection/components/action-sheet/action-sheet.ios.css +367 -11
  329. package/dist/collection/components/action-sheet/action-sheet.js +32 -13
  330. package/dist/collection/components/action-sheet/action-sheet.md.css +306 -10
  331. package/dist/collection/components/alert/alert.ionic.css +787 -0
  332. package/dist/collection/components/alert/alert.ios.css +481 -19
  333. package/dist/collection/components/alert/alert.js +67 -30
  334. package/dist/collection/components/alert/alert.md.css +464 -29
  335. package/dist/collection/components/app/app.js +15 -83
  336. package/dist/collection/components/avatar/avatar.ionic.css +385 -0
  337. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  338. package/dist/collection/components/avatar/avatar.js +120 -4
  339. package/dist/collection/components/avatar/avatar.md.css +51 -0
  340. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  341. package/dist/collection/components/back-button/back-button.js +27 -19
  342. package/dist/collection/components/back-button/back-button.md.css +60 -48
  343. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  344. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  345. package/dist/collection/components/backdrop/backdrop.js +12 -6
  346. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  347. package/dist/collection/components/badge/badge.ionic.css +272 -0
  348. package/dist/collection/components/badge/badge.ios.css +137 -12
  349. package/dist/collection/components/badge/badge.js +145 -9
  350. package/dist/collection/components/badge/badge.md.css +122 -12
  351. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  352. package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
  353. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  354. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  355. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  356. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  357. package/dist/collection/components/button/button.ionic.css +644 -0
  358. package/dist/collection/components/button/button.ios.css +154 -46
  359. package/dist/collection/components/button/button.js +63 -27
  360. package/dist/collection/components/button/button.md.css +150 -50
  361. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  362. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  363. package/dist/collection/components/buttons/buttons.js +15 -9
  364. package/dist/collection/components/buttons/buttons.md.css +55 -3
  365. package/dist/collection/components/card/card.ionic.css +144 -0
  366. package/dist/collection/components/card/card.ios.css +65 -14
  367. package/dist/collection/components/card/card.js +41 -10
  368. package/dist/collection/components/card/card.md.css +65 -14
  369. package/dist/collection/components/card-content/card-content.ionic.css +89 -0
  370. package/dist/collection/components/card-content/card-content.ios.css +20 -35
  371. package/dist/collection/components/card-content/card-content.js +12 -10
  372. package/dist/collection/components/card-content/card-content.md.css +20 -35
  373. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  374. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  375. package/dist/collection/components/card-header/card-header.js +13 -10
  376. package/dist/collection/components/card-header/card-header.md.css +27 -15
  377. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
  378. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  379. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  380. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  381. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  382. package/dist/collection/components/card-title/card-title.js +11 -8
  383. package/dist/collection/components/card-title/card-title.md.css +73 -0
  384. package/dist/collection/components/checkbox/checkbox.ionic.css +543 -0
  385. package/dist/collection/components/checkbox/checkbox.ios.css +242 -117
  386. package/dist/collection/components/checkbox/checkbox.js +69 -14
  387. package/dist/collection/components/checkbox/checkbox.md.css +243 -118
  388. package/dist/collection/components/chip/chip.ionic.css +217 -0
  389. package/dist/collection/components/chip/chip.ios.css +67 -14
  390. package/dist/collection/components/chip/chip.js +108 -8
  391. package/dist/collection/components/chip/chip.md.css +67 -14
  392. package/dist/collection/components/col/col.css +192 -4
  393. package/dist/collection/components/col/col.js +211 -61
  394. package/dist/collection/components/content/content.css +47 -2
  395. package/dist/collection/components/content/content.js +68 -12
  396. package/dist/collection/components/datetime/datetime.ionic.css +703 -0
  397. package/dist/collection/components/datetime/datetime.ios.css +302 -106
  398. package/dist/collection/components/datetime/datetime.js +97 -20
  399. package/dist/collection/components/datetime/datetime.md.css +293 -96
  400. package/dist/collection/components/datetime/utils/data.js +5 -5
  401. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
  402. package/dist/collection/components/datetime-button/datetime-button.js +11 -8
  403. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
  404. package/dist/collection/components/divider/divider.ionic.css +148 -0
  405. package/dist/collection/components/divider/divider.ios.css +87 -0
  406. package/dist/collection/components/divider/divider.js +94 -0
  407. package/dist/collection/components/divider/divider.md.css +87 -0
  408. package/dist/collection/components/fab/fab.css +25 -1
  409. package/dist/collection/components/fab/fab.js +9 -5
  410. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  411. package/dist/collection/components/fab-button/fab-button.js +36 -21
  412. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  413. package/dist/collection/components/fab-list/fab-list.css +12 -0
  414. package/dist/collection/components/fab-list/fab-list.js +9 -5
  415. package/dist/collection/components/footer/footer-interface.js +1 -0
  416. package/dist/collection/components/footer/footer.ios.css +33 -6
  417. package/dist/collection/components/footer/footer.js +117 -25
  418. package/dist/collection/components/footer/footer.md.css +40 -0
  419. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  420. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  421. package/dist/collection/components/gallery/gallery.css +15 -0
  422. package/dist/collection/components/gallery/gallery.js +679 -0
  423. package/dist/collection/components/gallery/test/utils.js +100 -0
  424. package/dist/collection/components/gallery-item/gallery-item.css +49 -0
  425. package/dist/collection/components/gallery-item/gallery-item.js +99 -0
  426. package/dist/collection/components/grid/grid.css +12 -0
  427. package/dist/collection/components/grid/grid.js +9 -5
  428. package/dist/collection/components/header/header-interface.js +1 -0
  429. package/dist/collection/components/header/header.ionic.css +250 -0
  430. package/dist/collection/components/header/header.ios.css +178 -133
  431. package/dist/collection/components/header/header.js +181 -39
  432. package/dist/collection/components/header/header.md.css +199 -9
  433. package/dist/collection/components/header/header.utils.js +6 -13
  434. package/dist/collection/components/img/img.js +8 -2
  435. package/dist/collection/components/infinite-scroll/infinite-scroll.js +100 -5
  436. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  437. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  438. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  439. package/dist/collection/components/input/input.ionic.css +891 -0
  440. package/dist/collection/components/input/input.ios.css +224 -137
  441. package/dist/collection/components/input/input.js +158 -45
  442. package/dist/collection/components/input/input.md.css +194 -209
  443. package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
  444. package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
  445. package/dist/collection/components/input-otp/input-otp.js +74 -7
  446. package/dist/collection/components/input-otp/input-otp.md.css +105 -60
  447. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  448. package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -12
  449. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  450. package/dist/collection/components/item/item.ionic.css +496 -0
  451. package/dist/collection/components/item/item.ios.css +120 -80
  452. package/dist/collection/components/item/item.js +56 -21
  453. package/dist/collection/components/item/item.md.css +131 -79
  454. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  455. package/dist/collection/components/item-divider/item-divider.js +11 -8
  456. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  457. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  458. package/dist/collection/components/item-group/item-group.js +13 -7
  459. package/dist/collection/components/item-group/item-group.md.css +12 -0
  460. package/dist/collection/components/item-option/item-option.ionic.css +277 -0
  461. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  462. package/dist/collection/components/item-option/item-option.js +73 -9
  463. package/dist/collection/components/item-option/item-option.md.css +136 -29
  464. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  465. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  466. package/dist/collection/components/item-options/item-options.js +13 -7
  467. package/dist/collection/components/item-options/item-options.md.css +77 -34
  468. package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
  469. package/dist/collection/components/item-sliding/item-sliding.js +421 -35
  470. package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
  471. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  472. package/dist/collection/components/label/label.ios.css +18 -0
  473. package/dist/collection/components/label/label.js +11 -8
  474. package/dist/collection/components/label/label.md.css +18 -0
  475. package/dist/collection/components/list/list.ionic.css +212 -0
  476. package/dist/collection/components/list/list.ios.css +54 -14
  477. package/dist/collection/components/list/list.js +48 -9
  478. package/dist/collection/components/list/list.md.css +56 -16
  479. package/dist/collection/components/list-header/list-header.ionic.css +190 -0
  480. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  481. package/dist/collection/components/list-header/list-header.js +11 -8
  482. package/dist/collection/components/list-header/list-header.md.css +82 -38
  483. package/dist/collection/components/loading/loading.ios.css +13 -1
  484. package/dist/collection/components/loading/loading.js +14 -11
  485. package/dist/collection/components/loading/loading.md.css +13 -1
  486. package/dist/collection/components/menu/menu.ios.css +15 -3
  487. package/dist/collection/components/menu/menu.js +12 -7
  488. package/dist/collection/components/menu/menu.md.css +15 -3
  489. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  490. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  491. package/dist/collection/components/menu-button/menu-button.js +26 -10
  492. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  493. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  494. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  495. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  496. package/dist/collection/components/modal/animations/sheet.js +8 -2
  497. package/dist/collection/components/modal/gestures/sheet.js +76 -10
  498. package/dist/collection/components/modal/modal.ionic.css +255 -0
  499. package/dist/collection/components/modal/modal.ios.css +178 -70
  500. package/dist/collection/components/modal/modal.js +62 -19
  501. package/dist/collection/components/modal/modal.md.css +178 -70
  502. package/dist/collection/components/modal/safe-area-utils.js +35 -0
  503. package/dist/collection/components/nav/nav.css +7 -1
  504. package/dist/collection/components/nav/nav.js +11 -5
  505. package/dist/collection/components/nav-link/nav-link.js +5 -1
  506. package/dist/collection/components/note/note.ios.css +12 -0
  507. package/dist/collection/components/note/note.js +11 -8
  508. package/dist/collection/components/note/note.md.css +12 -0
  509. package/dist/collection/components/picker/picker.ios.css +15 -3
  510. package/dist/collection/components/picker/picker.js +8 -5
  511. package/dist/collection/components/picker/picker.md.css +15 -3
  512. package/dist/collection/components/picker-column/picker-column.css +9 -2
  513. package/dist/collection/components/picker-column/picker-column.js +8 -7
  514. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  515. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  516. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  517. package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
  518. package/dist/collection/components/picker-legacy/picker.js +7 -6
  519. package/dist/collection/components/picker-legacy/picker.md.css +13 -1
  520. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
  521. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
  522. package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
  523. package/dist/collection/components/popover/popover.ionic.css +290 -0
  524. package/dist/collection/components/popover/popover.ios.css +29 -1
  525. package/dist/collection/components/popover/popover.js +18 -15
  526. package/dist/collection/components/popover/popover.md.css +29 -1
  527. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  528. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  529. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  530. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  531. package/dist/collection/components/radio/radio.ionic.css +422 -0
  532. package/dist/collection/components/radio/radio.ios.css +207 -102
  533. package/dist/collection/components/radio/radio.js +14 -9
  534. package/dist/collection/components/radio/radio.md.css +207 -102
  535. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  536. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  537. package/dist/collection/components/radio-group/radio-group.js +48 -7
  538. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  539. package/dist/collection/components/range/range.ionic.css +567 -0
  540. package/dist/collection/components/range/range.ios.css +128 -85
  541. package/dist/collection/components/range/range.js +16 -10
  542. package/dist/collection/components/range/range.md.css +128 -85
  543. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  544. package/dist/collection/components/refresher/refresher.js +11 -8
  545. package/dist/collection/components/refresher/refresher.md.css +15 -2
  546. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  547. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  548. package/dist/collection/components/reorder/reorder.js +33 -6
  549. package/dist/collection/components/reorder/reorder.md.css +6 -0
  550. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  551. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  552. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  553. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  554. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  555. package/dist/collection/components/route/route.js +4 -0
  556. package/dist/collection/components/router/router.js +4 -0
  557. package/dist/collection/components/router-link/router-link.css +8 -2
  558. package/dist/collection/components/router-link/router-link.js +9 -5
  559. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  560. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  561. package/dist/collection/components/row/row.css +16 -0
  562. package/dist/collection/components/row/row.js +9 -2
  563. package/dist/collection/components/searchbar/searchbar.ionic.css +622 -0
  564. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  565. package/dist/collection/components/searchbar/searchbar.js +191 -42
  566. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  567. package/dist/collection/components/segment/segment.ionic.css +115 -0
  568. package/dist/collection/components/segment/segment.ios.css +45 -2
  569. package/dist/collection/components/segment/segment.js +11 -8
  570. package/dist/collection/components/segment/segment.md.css +45 -2
  571. package/dist/collection/components/segment-button/segment-button.ionic.css +352 -0
  572. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  573. package/dist/collection/components/segment-button/segment-button.js +11 -8
  574. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  575. package/dist/collection/components/segment-content/segment-content.js +1 -1
  576. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  577. package/dist/collection/components/segment-view/segment-view.js +13 -4
  578. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  579. package/dist/collection/components/select/select.ionic.css +809 -0
  580. package/dist/collection/components/select/select.ios.css +348 -176
  581. package/dist/collection/components/select/select.js +521 -92
  582. package/dist/collection/components/select/select.md.css +364 -178
  583. package/dist/collection/components/select-modal/select-modal.ionic.css +257 -0
  584. package/dist/collection/components/select-modal/select-modal.ios.css +466 -0
  585. package/dist/collection/components/select-modal/select-modal.js +126 -30
  586. package/dist/collection/components/select-modal/select-modal.md.css +394 -0
  587. package/dist/collection/components/select-option/select-option.js +72 -4
  588. package/dist/collection/components/select-popover/select-popover.ionic.css +255 -0
  589. package/dist/collection/components/select-popover/select-popover.ios.css +302 -20
  590. package/dist/collection/components/select-popover/select-popover.js +89 -29
  591. package/dist/collection/components/select-popover/select-popover.md.css +345 -0
  592. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  593. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  594. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  595. package/dist/collection/components/spinner/spinner.js +47 -6
  596. package/dist/collection/components/spinner/spinner.native.css +199 -0
  597. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  598. package/dist/collection/components/split-pane/split-pane.js +15 -8
  599. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  600. package/dist/collection/components/tab/tab.js +6 -2
  601. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  602. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  603. package/dist/collection/components/tab-bar/tab-bar.js +179 -15
  604. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  605. package/dist/collection/components/tab-button/tab-button.ionic.css +373 -0
  606. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  607. package/dist/collection/components/tab-button/tab-button.js +54 -9
  608. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  609. package/dist/collection/components/tabs/tabs.css +7 -1
  610. package/dist/collection/components/tabs/tabs.js +4 -1
  611. package/dist/collection/components/text/text.css +6 -0
  612. package/dist/collection/components/text/text.js +7 -6
  613. package/dist/collection/components/textarea/textarea.ionic.css +898 -0
  614. package/dist/collection/components/textarea/textarea.ios.css +298 -158
  615. package/dist/collection/components/textarea/textarea.js +162 -24
  616. package/dist/collection/components/textarea/textarea.md.css +312 -159
  617. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  618. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  619. package/dist/collection/components/title/title.ionic.css +127 -0
  620. package/dist/collection/components/title/title.ios.css +32 -4
  621. package/dist/collection/components/title/title.js +13 -7
  622. package/dist/collection/components/title/title.md.css +39 -4
  623. package/dist/collection/components/toast/animations/utils.js +1 -1
  624. package/dist/collection/components/toast/toast.ionic.css +394 -0
  625. package/dist/collection/components/toast/toast.ios.css +84 -45
  626. package/dist/collection/components/toast/toast.js +76 -13
  627. package/dist/collection/components/toast/toast.md.css +84 -45
  628. package/dist/collection/components/toggle/toggle.ionic.css +512 -0
  629. package/dist/collection/components/toggle/toggle.ios.css +247 -127
  630. package/dist/collection/components/toggle/toggle.js +72 -18
  631. package/dist/collection/components/toggle/toggle.md.css +245 -127
  632. package/dist/collection/components/toolbar/test/image.svg +1 -0
  633. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  634. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  635. package/dist/collection/components/toolbar/toolbar.js +218 -13
  636. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  637. package/dist/collection/global/ionic-global.js +241 -13
  638. package/dist/collection/utils/css-value-validation.js +39 -0
  639. package/dist/collection/utils/focus-trap.js +13 -2
  640. package/dist/collection/utils/focus-visible.js +22 -0
  641. package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
  642. package/dist/collection/utils/forms/index.js +1 -0
  643. package/dist/collection/utils/forms/validity.js +31 -0
  644. package/dist/collection/utils/framework-delegate.js +3 -1
  645. package/dist/collection/utils/hardware-back-button.js +15 -0
  646. package/dist/collection/utils/helpers.js +70 -3
  647. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  648. package/dist/collection/utils/media.js +1 -0
  649. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  650. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  651. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  652. package/dist/collection/utils/overlay-control-label.js +47 -0
  653. package/dist/collection/utils/overlays.js +290 -8
  654. package/dist/collection/utils/sanitization/index.js +274 -18
  655. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  656. package/dist/collection/utils/select-option-render.js +119 -0
  657. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  658. package/dist/collection/utils/test/playwright/generator.js +48 -23
  659. package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
  660. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  661. package/dist/collection/utils/theme.js +25 -1
  662. package/dist/collection/utils/transition/ios.transition.js +1 -0
  663. package/dist/docs.json +9090 -286
  664. package/dist/esm/{animation-DLJpuoEz.js → animation-ChfHU0RG.js} +2 -2
  665. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-D1OOQlqq.js} +1 -1
  666. package/dist/esm/{button-active-BSpTQmS9.js → button-active-CPYK0dNo.js} +2 -2
  667. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-DG_4yVXz.js} +1 -1
  668. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  669. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  670. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  671. package/dist/esm/clear-button-press-controller-C79TPm5p.js +43 -0
  672. package/dist/esm/config-BwKpO3Is.js +31 -0
  673. package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
  674. package/dist/esm/{format-CAmvpAez.js → format-2WlZcMvG.js} +1 -1
  675. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-DO2QXccA.js} +4 -2
  676. package/dist/esm/{haptic-DzAMWJuk.js → haptic-BWlRCqa-.js} +1 -1
  677. package/dist/esm/{helpers-HEqiOzXb.js → helpers-DfF5_wJc.js} +71 -5
  678. package/dist/esm/{index-Q6UPU0Ay.js → index-7eS8XtuU.js} +11 -11
  679. package/dist/esm/{index-DV3sJJW8.js → index-B4Kq2YNk.js} +3 -2
  680. package/dist/esm/{index-B_dQk_WE.js → index-BSDDOljg.js} +4 -4
  681. package/dist/esm/{index-tcQvqkiX.js → index-C0EQceqV.js} +53 -4
  682. package/dist/esm/{index-BRHzoo00.js → index-DNY2GOUg.js} +4 -3
  683. package/dist/esm/index-Mq5pCWmZ.js +424 -0
  684. package/dist/esm/{index-Dw-wN0Ja.js → index-taYRjZGp.js} +2 -2
  685. package/dist/esm/index.js +14 -14
  686. package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-tZfqB5a5.js} +7 -6
  687. package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-fs4B7WL5.js} +3 -3
  688. package/dist/esm/ion-accordion_2.entry.js +61 -29
  689. package/dist/esm/ion-action-sheet.entry.js +41 -22
  690. package/dist/esm/ion-alert.entry.js +77 -40
  691. package/dist/esm/ion-app_8.entry.js +507 -193
  692. package/dist/esm/ion-avatar_3.entry.js +125 -13
  693. package/dist/esm/ion-back-button.entry.js +31 -22
  694. package/dist/esm/ion-backdrop.entry.js +10 -7
  695. package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
  696. package/dist/esm/ion-button_2.entry.js +61 -24
  697. package/dist/esm/ion-card_5.entry.js +55 -33
  698. package/dist/esm/ion-checkbox.entry.js +34 -17
  699. package/dist/esm/ion-chip.entry.js +50 -9
  700. package/dist/esm/ion-col_3.entry.js +56 -57
  701. package/dist/esm/ion-datetime-button.entry.js +13 -9
  702. package/dist/esm/ion-datetime_3.entry.js +121 -46
  703. package/dist/esm/ion-divider.entry.js +49 -0
  704. package/dist/esm/ion-fab_3.entry.js +44 -28
  705. package/dist/esm/ion-gallery-item.entry.js +57 -0
  706. package/dist/esm/ion-gallery.entry.js +605 -0
  707. package/dist/esm/ion-img.entry.js +8 -4
  708. package/dist/esm/ion-infinite-scroll_2.entry.js +92 -16
  709. package/dist/esm/ion-input-otp.entry.js +74 -9
  710. package/dist/esm/ion-input-password-toggle.entry.js +53 -15
  711. package/dist/esm/ion-input.entry.js +132 -40
  712. package/dist/esm/ion-item-option_3.entry.js +467 -52
  713. package/dist/esm/ion-item_8.entry.js +121 -50
  714. package/dist/esm/ion-loading.entry.js +21 -18
  715. package/dist/esm/ion-menu_3.entry.js +47 -29
  716. package/dist/esm/ion-modal.entry.js +261 -97
  717. package/dist/esm/ion-nav_2.entry.js +14 -11
  718. package/dist/esm/ion-picker-column-option.entry.js +12 -8
  719. package/dist/esm/ion-picker-column.entry.js +13 -13
  720. package/dist/esm/ion-picker.entry.js +10 -6
  721. package/dist/esm/ion-popover.entry.js +21 -19
  722. package/dist/esm/ion-progress-bar.entry.js +27 -9
  723. package/dist/esm/ion-radio_2.entry.js +36 -18
  724. package/dist/esm/ion-range.entry.js +20 -13
  725. package/dist/esm/ion-refresher_2.entry.js +40 -21
  726. package/dist/esm/ion-reorder_2.entry.js +38 -14
  727. package/dist/esm/ion-ripple-effect.entry.js +15 -7
  728. package/dist/esm/ion-route_4.entry.js +11 -10
  729. package/dist/esm/ion-searchbar.entry.js +146 -32
  730. package/dist/esm/ion-segment-content.entry.js +2 -2
  731. package/dist/esm/ion-segment-view.entry.js +13 -3
  732. package/dist/esm/ion-segment_2.entry.js +23 -16
  733. package/dist/esm/ion-select-modal.entry.js +114 -38
  734. package/dist/esm/ion-select_3.entry.js +557 -108
  735. package/dist/esm/ion-spinner.entry.js +30 -8
  736. package/dist/esm/ion-split-pane.entry.js +13 -9
  737. package/dist/esm/ion-tab-bar_2.entry.js +149 -27
  738. package/dist/esm/ion-tab_2.entry.js +8 -7
  739. package/dist/esm/ion-text.entry.js +7 -7
  740. package/dist/esm/ion-textarea.entry.js +137 -23
  741. package/dist/esm/ion-toast.entry.js +45 -21
  742. package/dist/esm/ion-toggle.entry.js +82 -26
  743. package/dist/esm/ionic-global-CEwbmRLz.js +508 -0
  744. package/dist/esm/ionic.js +5 -5
  745. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-C3r-0w96.js} +7 -5
  746. package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-C6onMFOo.js} +1 -1
  747. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-BzbtCDwZ.js} +4 -3
  748. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DYGmALa7.js} +1 -1
  749. package/dist/esm/list-Dhi5xtNS.js +6 -0
  750. package/dist/esm/loader.js +5 -5
  751. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-CPHOF5T9.js} +6 -5
  752. package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-CsbpmbOz.js} +2 -2
  753. package/dist/esm/overlay-control-label-CODBQrPj.js +49 -0
  754. package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-C1NQMs9y.js} +306 -15
  755. package/dist/esm/scroll-hide-controller-CfbtPBWv.js +342 -0
  756. package/dist/esm/select-option-render-BlKZ2H83.js +122 -0
  757. package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-BueE8Coq.js} +4 -3
  758. package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-qmvTRnSq.js} +3 -2
  759. package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
  760. package/dist/esm/validity-BjW8SOqw.js +48 -0
  761. package/dist/esm/x-BDqjX7Z_.js +6 -0
  762. package/dist/html.html-data.json +2707 -168
  763. package/dist/ionic/index.esm.js +1 -1
  764. package/dist/ionic/ionic.esm.js +1 -1
  765. package/dist/ionic/p--sroV-k-.js +4 -0
  766. package/dist/ionic/p-00731d20.entry.js +4 -0
  767. package/dist/ionic/p-03c20a50.entry.js +4 -0
  768. package/dist/ionic/p-03ec6673.entry.js +4 -0
  769. package/dist/ionic/p-0405ec57.entry.js +4 -0
  770. package/dist/ionic/p-04f16322.entry.js +4 -0
  771. package/dist/ionic/p-09123f89.entry.js +4 -0
  772. package/dist/ionic/p-15028853.entry.js +4 -0
  773. package/dist/ionic/p-16c5db90.entry.js +4 -0
  774. package/dist/ionic/p-1d1dfb68.entry.js +4 -0
  775. package/dist/ionic/p-231572a0.entry.js +4 -0
  776. package/dist/ionic/p-2740db6e.entry.js +4 -0
  777. package/dist/ionic/p-2a6d4601.entry.js +4 -0
  778. package/dist/ionic/p-2d8fe33c.entry.js +4 -0
  779. package/dist/ionic/p-2dbc50d9.entry.js +4 -0
  780. package/dist/ionic/p-32d3095c.entry.js +4 -0
  781. package/dist/ionic/p-356cd619.entry.js +4 -0
  782. package/dist/ionic/p-391bdb60.entry.js +4 -0
  783. package/dist/ionic/p-3b2ab5b4.entry.js +4 -0
  784. package/dist/ionic/p-4e3e750a.entry.js +4 -0
  785. package/dist/ionic/p-4fee0df6.entry.js +4 -0
  786. package/dist/ionic/p-547d010c.entry.js +4 -0
  787. package/dist/ionic/p-54895118.entry.js +4 -0
  788. package/dist/ionic/p-6163d04d.entry.js +4 -0
  789. package/dist/ionic/p-679c1448.entry.js +4 -0
  790. package/dist/ionic/p-6de524e5.entry.js +4 -0
  791. package/dist/ionic/p-764d7ea2.entry.js +4 -0
  792. package/dist/ionic/{p-C0eMdTCW.js → p-7k7Q1A38.js} +1 -1
  793. package/dist/ionic/p-81BMEE8Q.js +4 -0
  794. package/dist/ionic/p-8d6d7acb.entry.js +4 -0
  795. package/dist/ionic/p-96732fe2.entry.js +4 -0
  796. package/dist/ionic/p-96c4c1b9.entry.js +4 -0
  797. package/dist/ionic/p-9745f518.entry.js +4 -0
  798. package/dist/ionic/p-9a40af3c.entry.js +4 -0
  799. package/dist/ionic/p-9e725104.entry.js +4 -0
  800. package/dist/ionic/p-B4Kq2YNk.js +4 -0
  801. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  802. package/dist/ionic/p-BYSs-jZz.js +4 -0
  803. package/dist/ionic/p-BbWo-T8F.js +4 -0
  804. package/dist/ionic/p-BjW8SOqw.js +4 -0
  805. package/dist/ionic/p-Bvz8PHo5.js +4 -0
  806. package/dist/ionic/p-BwKpO3Is.js +4 -0
  807. package/dist/ionic/p-C0EQceqV.js +5 -0
  808. package/dist/ionic/p-C1_a9uRb.js +4 -0
  809. package/dist/ionic/p-C6WD6qSF.js +4 -0
  810. package/dist/ionic/{p-CKvCXMs9.js → p-C7urd_wE.js} +1 -1
  811. package/{components/p-D13Eaw-8.js → dist/ionic/p-CCgRIJJv.js} +1 -1
  812. package/dist/ionic/p-CEkwLb3L.js +4 -0
  813. package/dist/ionic/p-CGFf6My7.js +4 -0
  814. package/dist/ionic/p-CLUwRxij.js +4 -0
  815. package/dist/ionic/p-CODBQrPj.js +4 -0
  816. package/dist/ionic/p-CP_sVwEm.js +4 -0
  817. package/dist/ionic/p-CSMWpRc0.js +4 -0
  818. package/dist/ionic/{p-VAemlbDS.js → p-CYYo93al.js} +1 -1
  819. package/dist/ionic/p-Cipl19Qe.js +4 -0
  820. package/{components/p-B-JJgYSG.js → dist/ionic/p-CnIzWLAn.js} +1 -1
  821. package/dist/ionic/p-Cvvva6Z7.js +4 -0
  822. package/dist/ionic/p-D1t981Ih.js +4 -0
  823. package/dist/ionic/{p-viFHDgRs.js → p-DINFwXlp.js} +1 -1
  824. package/dist/ionic/p-DIvCXVmD.js +4 -0
  825. package/dist/ionic/p-DTsDGZPd.js +4 -0
  826. package/dist/ionic/p-DaJxRxSQ.js +4 -0
  827. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  828. package/dist/ionic/p-DtQgCTtW.js +4 -0
  829. package/dist/ionic/p-DuRx6DeQ.js +4 -0
  830. package/dist/ionic/p-YGLqXqFd.js +4 -0
  831. package/dist/ionic/p-YIsE5bNG.js +4 -0
  832. package/dist/ionic/p-a61c2ace.entry.js +4 -0
  833. package/dist/ionic/p-abb516e3.entry.js +4 -0
  834. package/dist/ionic/p-b54edee6.entry.js +4 -0
  835. package/dist/ionic/p-c076ac5c.entry.js +4 -0
  836. package/dist/ionic/p-c4ff25cb.entry.js +4 -0
  837. package/dist/ionic/p-c7279756.entry.js +4 -0
  838. package/dist/ionic/p-c7ebed50.entry.js +4 -0
  839. package/dist/ionic/p-cd0037e4.entry.js +4 -0
  840. package/dist/ionic/p-d261938d.entry.js +4 -0
  841. package/dist/ionic/p-d33dfc12.entry.js +4 -0
  842. package/dist/ionic/p-d7764330.entry.js +4 -0
  843. package/dist/ionic/p-defb23a2.entry.js +4 -0
  844. package/dist/ionic/p-df642ef5.entry.js +4 -0
  845. package/dist/ionic/p-e2a35249.entry.js +4 -0
  846. package/dist/ionic/p-e2b952ef.entry.js +4 -0
  847. package/dist/ionic/p-e77cfd1e.entry.js +4 -0
  848. package/dist/ionic/p-ecb9d3d3.entry.js +4 -0
  849. package/dist/ionic/p-efd13adf.entry.js +4 -0
  850. package/dist/ionic/p-f0904c1d.entry.js +4 -0
  851. package/dist/ionic/p-f33689f7.entry.js +4 -0
  852. package/dist/ionic/p-f693efe9.entry.js +4 -0
  853. package/dist/ionic/p-f788396b.entry.js +4 -0
  854. package/dist/ionic/p-fIOYmaqA.js +4 -0
  855. package/dist/ionic/p-fa16fad8.entry.js +4 -0
  856. package/dist/ionic/p-lMb_45ax.js +4 -0
  857. package/dist/ionic/p-oadJNPuo.js +4 -0
  858. package/dist/ionic/p-vXpMhGrs.js +4 -0
  859. package/dist/ionic/p-wNjWCZVO.js +4 -0
  860. package/dist/types/components/accordion/accordion.d.ts +6 -3
  861. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  862. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  863. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  864. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  865. package/dist/types/components/alert/alert.d.ts +3 -2
  866. package/dist/types/components/app/app.d.ts +4 -5
  867. package/dist/types/components/avatar/avatar.d.ts +32 -0
  868. package/dist/types/components/back-button/back-button.d.ts +2 -1
  869. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  870. package/dist/types/components/badge/badge.d.ts +34 -1
  871. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  872. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  873. package/dist/types/components/button/button.d.ts +23 -8
  874. package/dist/types/components/buttons/buttons.d.ts +5 -1
  875. package/dist/types/components/card/card.d.ts +8 -1
  876. package/dist/types/components/card-content/card-content.d.ts +2 -1
  877. package/dist/types/components/card-header/card-header.d.ts +3 -2
  878. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  879. package/dist/types/components/card-title/card-title.d.ts +2 -1
  880. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  881. package/dist/types/components/chip/chip.d.ts +26 -1
  882. package/dist/types/components/col/col.d.ts +52 -5
  883. package/dist/types/components/content/content.d.ts +15 -0
  884. package/dist/types/components/datetime/datetime.d.ts +26 -1
  885. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  886. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  887. package/dist/types/components/divider/divider.d.ts +20 -0
  888. package/dist/types/components/fab/fab.d.ts +4 -0
  889. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  890. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  891. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  892. package/dist/types/components/footer/footer.d.ts +20 -3
  893. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  894. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  895. package/dist/types/components/gallery/gallery.d.ts +218 -0
  896. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  897. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  898. package/dist/types/components/grid/grid.d.ts +4 -0
  899. package/dist/types/components/header/header-interface.d.ts +1 -0
  900. package/dist/types/components/header/header.d.ts +26 -3
  901. package/dist/types/components/header/header.utils.d.ts +4 -5
  902. package/dist/types/components/img/img.d.ts +3 -0
  903. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  904. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  905. package/dist/types/components/input/input.d.ts +34 -5
  906. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  907. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  908. package/dist/types/components/item/item.d.ts +11 -4
  909. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  910. package/dist/types/components/item-group/item-group.d.ts +4 -0
  911. package/dist/types/components/item-option/item-option.d.ts +18 -1
  912. package/dist/types/components/item-options/item-options.d.ts +4 -0
  913. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  914. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  915. package/dist/types/components/label/label.d.ts +2 -1
  916. package/dist/types/components/list/list.d.ts +15 -1
  917. package/dist/types/components/list-header/list-header.d.ts +2 -1
  918. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  919. package/dist/types/components/loading/loading.d.ts +3 -2
  920. package/dist/types/components/menu/menu.d.ts +3 -0
  921. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  922. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  923. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  924. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  925. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  926. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  927. package/dist/types/components/modal/modal.d.ts +16 -4
  928. package/dist/types/components/modal/safe-area-utils.d.ts +6 -0
  929. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  930. package/dist/types/components/nav/nav.d.ts +5 -1
  931. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  932. package/dist/types/components/note/note.d.ts +2 -1
  933. package/dist/types/components/picker/picker.d.ts +2 -1
  934. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  935. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  936. package/dist/types/components/picker-legacy/picker.d.ts +2 -1
  937. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  938. package/dist/types/components/popover/popover.d.ts +6 -5
  939. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  940. package/dist/types/components/radio/radio.d.ts +2 -1
  941. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  942. package/dist/types/components/range/range.d.ts +2 -1
  943. package/dist/types/components/refresher/refresher.d.ts +2 -1
  944. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  945. package/dist/types/components/reorder/reorder.d.ts +9 -0
  946. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  947. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  948. package/dist/types/components/route/route.d.ts +4 -0
  949. package/dist/types/components/router/router.d.ts +4 -0
  950. package/dist/types/components/router-link/router-link.d.ts +4 -0
  951. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  952. package/dist/types/components/row/row.d.ts +4 -0
  953. package/dist/types/components/searchbar/searchbar.d.ts +56 -10
  954. package/dist/types/components/segment/segment.d.ts +2 -1
  955. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  956. package/dist/types/components/select/select-interface.d.ts +31 -0
  957. package/dist/types/components/select/select.d.ts +66 -13
  958. package/dist/types/components/select-modal/select-modal.d.ts +8 -0
  959. package/dist/types/components/select-option/select-option.d.ts +45 -1
  960. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  961. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  962. package/dist/types/components/spinner/spinner.d.ts +15 -0
  963. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  964. package/dist/types/components/tab/tab.d.ts +4 -0
  965. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  966. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  967. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  968. package/dist/types/components/tabs/tabs.d.ts +3 -0
  969. package/dist/types/components/text/text.d.ts +2 -1
  970. package/dist/types/components/textarea/textarea.d.ts +53 -4
  971. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  972. package/dist/types/components/title/title.d.ts +4 -0
  973. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  974. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  975. package/dist/types/components/toast/toast.d.ts +19 -2
  976. package/dist/types/components/toggle/toggle.d.ts +15 -1
  977. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  978. package/dist/types/components.d.ts +1881 -210
  979. package/dist/types/global/ionic-global.d.ts +28 -2
  980. package/dist/types/interface.d.ts +3 -0
  981. package/dist/types/utils/config.d.ts +106 -2
  982. package/dist/types/utils/css-value-validation.d.ts +21 -0
  983. package/dist/types/utils/focus-trap.d.ts +1 -1
  984. package/dist/types/utils/focus-visible.d.ts +13 -0
  985. package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
  986. package/dist/types/utils/forms/index.d.ts +1 -0
  987. package/dist/types/utils/forms/validity.d.ts +7 -0
  988. package/dist/types/utils/helpers.d.ts +22 -0
  989. package/dist/types/utils/overlay-control-label.d.ts +34 -0
  990. package/dist/types/utils/overlays-interface.d.ts +31 -1
  991. package/dist/types/utils/overlays.d.ts +1 -1
  992. package/dist/types/utils/sanitization/index.d.ts +58 -2
  993. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  994. package/dist/types/utils/select-option-render.d.ts +53 -0
  995. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  996. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  997. package/dist/types/utils/theme.d.ts +9 -0
  998. package/hydrate/index.js +6481 -1412
  999. package/hydrate/index.mjs +6481 -1412
  1000. package/package.json +9 -5
  1001. package/components/p--JUspHvy.js +0 -4
  1002. package/components/p-ABkNVeU9.js +0 -4
  1003. package/components/p-B9jFTlwE.js +0 -4
  1004. package/components/p-BLmJ0zRm.js +0 -4
  1005. package/components/p-BMI53wYL.js +0 -4
  1006. package/components/p-BMaKgJFV.js +0 -4
  1007. package/components/p-BSEgsdFI.js +0 -4
  1008. package/components/p-BlIAuGv2.js +0 -4
  1009. package/components/p-BmVRXR1y.js +0 -4
  1010. package/components/p-Bnsn6KaP.js +0 -4
  1011. package/components/p-BsBCoGa-.js +0 -4
  1012. package/components/p-BvmB20aD.js +0 -4
  1013. package/components/p-Bz0dSlXZ.js +0 -4
  1014. package/components/p-CHqRYvYm.js +0 -4
  1015. package/components/p-CIGNaXM1.js +0 -4
  1016. package/components/p-CO7fmmxt.js +0 -4
  1017. package/components/p-CQGnMY3n.js +0 -4
  1018. package/components/p-CSZf8_j0.js +0 -4
  1019. package/components/p-C_xFdyXe.js +0 -4
  1020. package/components/p-Cfx4M1Bn.js +0 -4
  1021. package/components/p-CkMSOsFF.js +0 -4
  1022. package/components/p-CmR5uXej.js +0 -4
  1023. package/components/p-Cp4GRDqq.js +0 -4
  1024. package/components/p-CsNJ1ULL.js +0 -4
  1025. package/components/p-CtWGkNnJ.js +0 -4
  1026. package/components/p-CzCbeKys.js +0 -4
  1027. package/components/p-D-aHdMxW.js +0 -4
  1028. package/components/p-D0d8qTwj.js +0 -4
  1029. package/components/p-D3xo7hqU.js +0 -4
  1030. package/components/p-D6Ynv7Xh.js +0 -4
  1031. package/components/p-DCnGU1fF.js +0 -4
  1032. package/components/p-DGvrK8dD.js +0 -4
  1033. package/components/p-DJztqcrH.js +0 -4
  1034. package/components/p-DOFCbuQR.js +0 -4
  1035. package/components/p-DV5mPYQS.js +0 -4
  1036. package/components/p-DWkAgceV.js +0 -4
  1037. package/components/p-DiVJyqlX.js +0 -4
  1038. package/components/p-DqZAXv2t.js +0 -4
  1039. package/components/p-R8zmRi4c.js +0 -4
  1040. package/components/p-SLS1rDZM.js +0 -4
  1041. package/components/p-ZjP4CjeZ.js +0 -4
  1042. package/components/p-aJ6PBUvj.js +0 -4
  1043. package/components/p-gAg0kXZp.js +0 -4
  1044. package/components/p-j5IxBIan.js +0 -4
  1045. package/components/p-k_E4tX5Z.js +0 -4
  1046. package/components/p-oD4kcBRX.js +0 -4
  1047. package/components/p-rCa2eL0j.js +0 -4
  1048. package/components/p-scxfI1Dd.js +0 -4
  1049. package/components/p-vRBNsYbs.js +0 -4
  1050. package/components/p-yzCsOZE2.js +0 -4
  1051. package/dist/cjs/config-D6C-KlA9.js +0 -201
  1052. package/dist/cjs/hardware-back-button-CXmUnTJC.js +0 -121
  1053. package/dist/cjs/index-DkNv4J_i.js +0 -10
  1054. package/dist/cjs/ionic-global-BerQGEpE.js +0 -151
  1055. package/dist/cjs/keyboard-controller-GXBiBRKS.js +0 -167
  1056. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1057. package/dist/esm/config-DQCONYYp.js +0 -195
  1058. package/dist/esm/hardware-back-button-B93Gru0Y.js +0 -115
  1059. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  1060. package/dist/esm/ionic-global-Cp_eT4sZ.js +0 -146
  1061. package/dist/esm/keyboard-controller-BaaVITYt.js +0 -165
  1062. package/dist/esm/validity-DJztqcrH.js +0 -17
  1063. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  1064. package/dist/ionic/p-06c232a4.entry.js +0 -4
  1065. package/dist/ionic/p-0caa922c.entry.js +0 -4
  1066. package/dist/ionic/p-0dc33652.entry.js +0 -4
  1067. package/dist/ionic/p-0fa9c382.entry.js +0 -4
  1068. package/dist/ionic/p-10e833ef.entry.js +0 -4
  1069. package/dist/ionic/p-15c9319c.entry.js +0 -4
  1070. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  1071. package/dist/ionic/p-27d30585.entry.js +0 -4
  1072. package/dist/ionic/p-2a05aa64.entry.js +0 -4
  1073. package/dist/ionic/p-2b204c59.entry.js +0 -4
  1074. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  1075. package/dist/ionic/p-2fa58e80.entry.js +0 -4
  1076. package/dist/ionic/p-3353c229.entry.js +0 -4
  1077. package/dist/ionic/p-34586ead.entry.js +0 -4
  1078. package/dist/ionic/p-37e720da.entry.js +0 -4
  1079. package/dist/ionic/p-390ca786.entry.js +0 -4
  1080. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  1081. package/dist/ionic/p-4654ae1c.entry.js +0 -4
  1082. package/dist/ionic/p-4745f534.entry.js +0 -4
  1083. package/dist/ionic/p-4858af1f.entry.js +0 -4
  1084. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  1085. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  1086. package/dist/ionic/p-50e1194a.entry.js +0 -4
  1087. package/dist/ionic/p-5334df12.entry.js +0 -4
  1088. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  1089. package/dist/ionic/p-5eb8e86d.entry.js +0 -4
  1090. package/dist/ionic/p-65ebdf1b.entry.js +0 -4
  1091. package/dist/ionic/p-746fa988.entry.js +0 -4
  1092. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  1093. package/dist/ionic/p-7c319341.entry.js +0 -4
  1094. package/dist/ionic/p-829367ed.entry.js +0 -4
  1095. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  1096. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  1097. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  1098. package/dist/ionic/p-9eeaBrnk.js +0 -4
  1099. package/dist/ionic/p-9f9db3a2.entry.js +0 -4
  1100. package/dist/ionic/p-9fa3c405.entry.js +0 -4
  1101. package/dist/ionic/p-BGqMS-oh.js +0 -4
  1102. package/dist/ionic/p-BUFIpxKM.js +0 -4
  1103. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1104. package/dist/ionic/p-CFlfIb2g.js +0 -4
  1105. package/dist/ionic/p-CIGNaXM1.js +0 -4
  1106. package/dist/ionic/p-CmcFnK-B.js +0 -4
  1107. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  1108. package/dist/ionic/p-Cx3IXROA.js +0 -4
  1109. package/dist/ionic/p-D-3ycHmd.js +0 -4
  1110. package/dist/ionic/p-D4uTWt4-.js +0 -4
  1111. package/dist/ionic/p-DIuEbVLu.js +0 -4
  1112. package/dist/ionic/p-DJztqcrH.js +0 -4
  1113. package/dist/ionic/p-DV3sJJW8.js +0 -4
  1114. package/dist/ionic/p-DiVJyqlX.js +0 -4
  1115. package/dist/ionic/p-DoJvtrbw.js +0 -4
  1116. package/dist/ionic/p-DqN5EA2O.js +0 -4
  1117. package/dist/ionic/p-DzWaWHGc.js +0 -4
  1118. package/dist/ionic/p-KjNvRoEp.js +0 -4
  1119. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  1120. package/dist/ionic/p-SNAkTDfm.js +0 -4
  1121. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  1122. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  1123. package/dist/ionic/p-aaeedb6b.entry.js +0 -4
  1124. package/dist/ionic/p-af55a72f.entry.js +0 -4
  1125. package/dist/ionic/p-b2020591.entry.js +0 -4
  1126. package/dist/ionic/p-b9fadbfe.entry.js +0 -4
  1127. package/dist/ionic/p-biz8zWmJ.js +0 -4
  1128. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  1129. package/dist/ionic/p-c38b648e.entry.js +0 -4
  1130. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  1131. package/dist/ionic/p-c6e49f3f.entry.js +0 -4
  1132. package/dist/ionic/p-ca2ab74d.entry.js +0 -4
  1133. package/dist/ionic/p-d1aac015.entry.js +0 -4
  1134. package/dist/ionic/p-d889ff6d.entry.js +0 -4
  1135. package/dist/ionic/p-dfa8d673.entry.js +0 -4
  1136. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  1137. package/dist/ionic/p-f386f6ae.entry.js +0 -4
  1138. package/dist/ionic/p-tcQvqkiX.js +0 -5
  1139. package/dist/ionic/p-uWtqTrG8.js +0 -4
  1140. package/dist/ionic/p-xWb6fgfq.js +0 -4
  1141. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -3,24 +3,23 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index$3 = require('./index-BfaXsATC.js');
7
- var index$1 = require('./index-BiRrzGDi.js');
8
- var frameworkDelegate = require('./framework-delegate-BgU6U9Ez.js');
9
- var helpers = require('./helpers-gntk8bfm.js');
6
+ var index$2 = require('./index-C1knGA9x.js');
7
+ var index = require('./index-DRFkZu3V.js');
8
+ var frameworkDelegate = require('./framework-delegate-CJT_QJQI.js');
9
+ var helpers = require('./helpers-Fh1iXsX9.js');
10
10
  var lockController = require('./lock-controller-aDB9wrEf.js');
11
- var capacitor = require('./capacitor-DmA66EwP.js');
12
- var overlays = require('./overlays-DuSEMhIW.js');
13
- var theme = require('./theme-CeDs6Hcv.js');
14
- var index$4 = require('./index-BS2uhvhT.js');
15
- var ionicGlobal = require('./ionic-global-BerQGEpE.js');
16
- var keyboard = require('./keyboard-hHzlEQpk.js');
17
- var animation = require('./animation-Ch16T-Nb.js');
11
+ var capacitor = require('./capacitor-BixsAzyb.js');
12
+ var overlays = require('./overlays-DYBUkNQu.js');
13
+ var theme = require('./theme-IlOsGAz7.js');
14
+ var index$3 = require('./index-D94mERjz.js');
15
+ var ionicGlobal = require('./ionic-global-DvEcO0tQ.js');
16
+ var keyboard = require('./keyboard-nne7rvBK.js');
17
+ var animation = require('./animation-qlGmEn5Y.js');
18
18
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
19
- var index$2 = require('./index-CAvQ7Tka.js');
20
- var index = require('./index-DkNv4J_i.js');
21
- require('./hardware-back-button-CXmUnTJC.js');
19
+ var index$1 = require('./index-CAvQ7Tka.js');
20
+ require('./focus-visible-BIj-I3-C.js');
22
21
  require('./gesture-controller-dtqlP_q4.js');
23
- require('./keyboard-UuAS4D_9.js');
22
+ require('./keyboard-BbZXOwZg.js');
24
23
 
25
24
  var Style;
26
25
  (function (Style) {
@@ -117,18 +116,116 @@ const getBackdropValueForSheet = (x, backdropBreakpoint) => {
117
116
  *
118
117
  */
119
118
  const setCardStatusBarDark = () => {
120
- if (!index.win || index.win.innerWidth >= 768) {
119
+ if (!ionicGlobal.win || ionicGlobal.win.innerWidth >= 768) {
121
120
  return;
122
121
  }
123
122
  StatusBar.setStyle({ style: Style.Dark });
124
123
  };
125
124
  const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
126
- if (!index.win || index.win.innerWidth >= 768) {
125
+ if (!ionicGlobal.win || ionicGlobal.win.innerWidth >= 768) {
127
126
  return;
128
127
  }
129
128
  StatusBar.setStyle({ style: defaultStyle });
130
129
  };
131
130
 
131
+ const createSheetEnterAnimation = (opts) => {
132
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
133
+ /**
134
+ * If the backdropBreakpoint is undefined, then the backdrop
135
+ * should always fade in. If the backdropBreakpoint came before the
136
+ * current breakpoint, then the backdrop should be fading in.
137
+ */
138
+ const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
139
+ let initialBackdrop = '0';
140
+ if (staticBackdropOpacity) {
141
+ initialBackdrop = 'calc(var(--backdrop-opacity)';
142
+ }
143
+ else if (shouldShowBackdrop) {
144
+ initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
145
+ }
146
+ const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
147
+ if (shouldShowBackdrop) {
148
+ backdropAnimation
149
+ .beforeStyles({
150
+ 'pointer-events': 'none',
151
+ })
152
+ .afterClearStyles(['pointer-events']);
153
+ }
154
+ const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
155
+ { offset: 0, opacity: 1, transform: 'translateY(100%)' },
156
+ { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
157
+ ]);
158
+ /**
159
+ * This allows the content to be scrollable at any breakpoint.
160
+ */
161
+ const contentAnimation = !expandToScroll
162
+ ? animation.createAnimation('contentAnimation').keyframes([
163
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
164
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
165
+ ])
166
+ : undefined;
167
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
168
+ };
169
+ const createSheetLeaveAnimation = (opts) => {
170
+ const { currentBreakpoint, backdropBreakpoint } = opts;
171
+ /**
172
+ * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
173
+ * is defined, so we need to account for that offset by figuring out
174
+ * what the current backdrop value should be.
175
+ */
176
+ const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
177
+ const defaultBackdrop = [
178
+ { offset: 0, opacity: backdropValue },
179
+ { offset: 1, opacity: 0 },
180
+ ];
181
+ const customBackdrop = [
182
+ { offset: 0, opacity: backdropValue },
183
+ { offset: backdropBreakpoint, opacity: 0 },
184
+ { offset: 1, opacity: 0 },
185
+ ];
186
+ const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
187
+ const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
188
+ { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
189
+ { offset: 1, opacity: 1, transform: `translateY(100%)` },
190
+ ]);
191
+ return { wrapperAnimation, backdropAnimation };
192
+ };
193
+
194
+ const createEnterAnimation$2 = () => {
195
+ const backdropAnimation = animation.createAnimation()
196
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
197
+ .beforeStyles({
198
+ 'pointer-events': 'none',
199
+ })
200
+ .afterClearStyles(['pointer-events']);
201
+ const wrapperAnimation = animation.createAnimation().keyframes([
202
+ { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
203
+ { offset: 1, opacity: 1, transform: `translateY(0px)` },
204
+ ]);
205
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
206
+ };
207
+ /**
208
+ * Ionic Modal Enter Animation
209
+ */
210
+ const ionicEnterAnimation = (baseEl, opts) => {
211
+ const { currentBreakpoint, expandToScroll } = opts;
212
+ const root = helpers.getElementRoot(baseEl);
213
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
214
+ backdropAnimation.addElement(root.querySelector('ion-backdrop'));
215
+ wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
216
+ // The content animation is only added if scrolling is enabled for
217
+ // all the breakpoints.
218
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
219
+ backdropAnimation.duration(300).easing('ease-out');
220
+ wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
221
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
222
+ const baseAnimation = animation.createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
223
+ if (contentAnimation) {
224
+ baseAnimation.addAnimation(contentAnimation);
225
+ }
226
+ return baseAnimation;
227
+ };
228
+
132
229
  /**
133
230
  * Swiping is only possible when the content is scrolled to the top, so that we
134
231
  * do not interfere with scrolling, and never on content with a refresher.
@@ -140,8 +237,8 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
140
237
  * synchronous operation, and `getScrollElement` is asynchronous.
141
238
  */
142
239
  const canSwipeOnContent = (contentEl) => {
143
- const scrollEl = index$1.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
144
- const hasRefresherInContent = !!index$1.findRefresherInContent(contentEl);
240
+ const scrollEl = index.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
241
+ const hasRefresherInContent = !!index.findRefresherInContent(contentEl);
145
242
  return !hasRefresherInContent && scrollEl.scrollTop === 0;
146
243
  };
147
244
  const handleCanDismiss = async (el, animation) => {
@@ -278,7 +375,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
278
375
  let initialScrollY = true;
279
376
  let lastStep = 0;
280
377
  const getScrollY = () => {
281
- if (contentEl && index$1.isIonContent(contentEl)) {
378
+ if (contentEl && index.isIonContent(contentEl)) {
282
379
  return contentEl.scrollY;
283
380
  /**
284
381
  * Custom scroll containers are intended to be
@@ -304,7 +401,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
304
401
  * swipe again. The target content will not
305
402
  * be the same between swipes.
306
403
  */
307
- contentEl = index$1.findClosestIonContent(target);
404
+ contentEl = index.findClosestIonContent(target);
308
405
  if (contentEl) {
309
406
  return canSwipeOnContent(contentEl);
310
407
  }
@@ -349,7 +446,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
349
446
  * happen at the same time as the gesture.
350
447
  */
351
448
  if (deltaY > 0 && contentEl) {
352
- index$1.disableContentScrollY(contentEl);
449
+ index.disableContentScrollY(contentEl);
353
450
  }
354
451
  animation.progressStart(true, isOpen ? 1 : 0);
355
452
  onDragStart();
@@ -363,7 +460,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
363
460
  * happen at the same time as the gesture.
364
461
  */
365
462
  if (deltaY > 0 && contentEl) {
366
- index$1.disableContentScrollY(contentEl);
463
+ index.disableContentScrollY(contentEl);
367
464
  }
368
465
  /**
369
466
  * If we are swiping on the content
@@ -458,7 +555,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
458
555
  isOpen = shouldComplete;
459
556
  gesture.enable(false);
460
557
  if (contentEl) {
461
- index$1.resetContentScrollY(contentEl, initialScrollY);
558
+ index.resetContentScrollY(contentEl, initialScrollY);
462
559
  }
463
560
  animation
464
561
  .onFinish(() => {
@@ -493,7 +590,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
493
590
  };
494
591
  onDragEnd(eventDetail);
495
592
  };
496
- const gesture = index$2.createGesture({
593
+ const gesture = index$1.createGesture({
497
594
  el,
498
595
  gestureName: 'modalSwipeToClose',
499
596
  gesturePriority: overlays.OVERLAY_GESTURE_PRIORITY,
@@ -548,63 +645,6 @@ const calculateProgress = (el, deltaY) => {
548
645
  return Math.max(0, Math.min(1, roundedProgress));
549
646
  };
550
647
 
551
- const createSheetEnterAnimation = (opts) => {
552
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
553
- /**
554
- * If the backdropBreakpoint is undefined, then the backdrop
555
- * should always fade in. If the backdropBreakpoint came before the
556
- * current breakpoint, then the backdrop should be fading in.
557
- */
558
- const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
559
- const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
560
- const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
561
- if (shouldShowBackdrop) {
562
- backdropAnimation
563
- .beforeStyles({
564
- 'pointer-events': 'none',
565
- })
566
- .afterClearStyles(['pointer-events']);
567
- }
568
- const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
569
- { offset: 0, opacity: 1, transform: 'translateY(100%)' },
570
- { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
571
- ]);
572
- /**
573
- * This allows the content to be scrollable at any breakpoint.
574
- */
575
- const contentAnimation = !expandToScroll
576
- ? animation.createAnimation('contentAnimation').keyframes([
577
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
578
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
579
- ])
580
- : undefined;
581
- return { wrapperAnimation, backdropAnimation, contentAnimation };
582
- };
583
- const createSheetLeaveAnimation = (opts) => {
584
- const { currentBreakpoint, backdropBreakpoint } = opts;
585
- /**
586
- * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
587
- * is defined, so we need to account for that offset by figuring out
588
- * what the current backdrop value should be.
589
- */
590
- const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
591
- const defaultBackdrop = [
592
- { offset: 0, opacity: backdropValue },
593
- { offset: 1, opacity: 0 },
594
- ];
595
- const customBackdrop = [
596
- { offset: 0, opacity: backdropValue },
597
- { offset: backdropBreakpoint, opacity: 0 },
598
- { offset: 1, opacity: 0 },
599
- ];
600
- const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
601
- const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
602
- { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
603
- { offset: 1, opacity: 1, transform: `translateY(100%)` },
604
- ]);
605
- return { wrapperAnimation, backdropAnimation };
606
- };
607
-
608
648
  const createEnterAnimation$1 = () => {
609
649
  const backdropAnimation = animation.createAnimation()
610
650
  .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
@@ -995,17 +1035,17 @@ const mdLeaveAnimation = (baseEl, opts) => {
995
1035
  return baseAnimation;
996
1036
  };
997
1037
 
998
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, onDragStart, onDragMove, onDragEnd) => {
1038
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, usePhysicsBasedGesture, onDragStart, onDragMove, onDragEnd) => {
999
1039
  var _a;
1000
1040
  // Defaults for the sheet swipe animation
1001
1041
  const defaultBackdrop = [
1002
1042
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1003
- { offset: 1, opacity: 0.01 },
1043
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0.01 },
1004
1044
  ];
1005
1045
  const customBackdrop = [
1006
1046
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1007
- { offset: 1 - backdropBreakpoint, opacity: 0 },
1008
- { offset: 1, opacity: 0 },
1047
+ { offset: 1 - backdropBreakpoint, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1048
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1009
1049
  ];
1010
1050
  const SheetDefaults = {
1011
1051
  WRAPPER_KEYFRAMES: [
@@ -1185,7 +1225,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1185
1225
  * For example, when using ion-nav within a modal it is possible to swipe, push a view,
1186
1226
  * and then swipe again. The target content will not be the same between swipes.
1187
1227
  */
1188
- const contentEl = index$1.findClosestIonContent(detail.event.target);
1228
+ const contentEl = index.findClosestIonContent(detail.event.target);
1189
1229
  currentBreakpoint = getCurrentBreakpoint();
1190
1230
  /**
1191
1231
  * Upwards swipes on the content cannot move the sheet anyway, so this only
@@ -1223,9 +1263,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1223
1263
  * which would impact performance significantly.
1224
1264
  */
1225
1265
  if (!expandToScroll) {
1226
- const targetEl = index$1.findClosestIonContent(detail.event.target);
1266
+ const targetEl = index.findClosestIonContent(detail.event.target);
1227
1267
  cachedScrollEl =
1228
- targetEl && index$1.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1268
+ targetEl && index.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1229
1269
  }
1230
1270
  /**
1231
1271
  * If expandToScroll is disabled, we need to swap
@@ -1319,7 +1359,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1319
1359
  : step;
1320
1360
  offset = helpers.clamp(0.0001, processedStep, maxStep);
1321
1361
  animation.progressStep(offset);
1322
- const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1362
+ const snapBreakpoint = usePhysicsBasedGesture
1363
+ ? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1364
+ : calculatePositionSnapBreakpoint(detail.deltaY);
1323
1365
  const eventDetail = {
1324
1366
  currentY: detail.currentY,
1325
1367
  deltaY: detail.deltaY,
@@ -1330,7 +1372,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1330
1372
  onDragMove(eventDetail);
1331
1373
  };
1332
1374
  const onEnd = (detail) => {
1333
- const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1375
+ const snapBreakpoint = usePhysicsBasedGesture
1376
+ ? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1377
+ : calculatePositionSnapBreakpoint(detail.deltaY);
1334
1378
  const eventDetail = {
1335
1379
  currentY: detail.currentY,
1336
1380
  deltaY: detail.deltaY,
@@ -1377,6 +1421,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1377
1421
  */
1378
1422
  const shouldPreventDismiss = canDismiss && breakpoint === 0;
1379
1423
  const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
1424
+ /**
1425
+ * Detect snap-back behavior: when the snap target is the same as the current breakpoint,
1426
+ * the user released before crossing the threshold to a new breakpoint.
1427
+ * Apply different timing and easing for snap-back vs. snap-to-new.
1428
+ */
1429
+ const isSnapBack = snapToBreakpoint === currentBreakpoint;
1430
+ const duration = usePhysicsBasedGesture ? (isSnapBack ? 300 : 400) : 500;
1431
+ const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
1380
1432
  const shouldRemainOpen = snapToBreakpoint !== 0;
1381
1433
  currentBreakpoint = 0;
1382
1434
  /**
@@ -1391,11 +1443,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1391
1443
  backdropAnimation.keyframes([
1392
1444
  {
1393
1445
  offset: 0,
1394
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1446
+ opacity: usePhysicsBasedGesture
1447
+ ? 'var(--backdrop-opacity)'
1448
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1395
1449
  },
1396
1450
  {
1397
1451
  offset: 1,
1398
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1452
+ opacity: usePhysicsBasedGesture
1453
+ ? 'var(--backdrop-opacity)'
1454
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1399
1455
  },
1400
1456
  ]);
1401
1457
  if (contentAnimation) {
@@ -1413,6 +1469,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1413
1469
  }
1414
1470
  animation.progressStep(0);
1415
1471
  }
1472
+ /**
1473
+ * Apply the appropriate easing curve for this snap behavior.
1474
+ */
1475
+ if (usePhysicsBasedGesture) {
1476
+ animation.easing(easing);
1477
+ }
1416
1478
  /**
1417
1479
  * Gesture should remain disabled until the
1418
1480
  * snapping animation completes.
@@ -1502,7 +1564,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1502
1564
  * be added every time onEnd runs.
1503
1565
  */
1504
1566
  }, { oneTimeCallback: true })
1505
- .progressEnd(1, 0, animated ? 500 : 0);
1567
+ .progressEnd(1, 0, animated ? duration : 0);
1506
1568
  });
1507
1569
  };
1508
1570
  /**
@@ -1513,7 +1575,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1513
1575
  * @param deltaY The change in Y position since the gesture started.
1514
1576
  * @returns The snap breakpoint value.
1515
1577
  */
1516
- const calculateSnapBreakpoint = (deltaY) => {
1578
+ const calculatePositionSnapBreakpoint = (deltaY) => {
1517
1579
  /**
1518
1580
  * Calculates the real-time vertical position of the modal.
1519
1581
  * We combine the wrapper's current bounding box position with the
@@ -1533,6 +1595,50 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1533
1595
  });
1534
1596
  return snapBreakpoint;
1535
1597
  };
1598
+ /**
1599
+ * Calculates the snap breakpoint using velocity-based logic.
1600
+ * This provides a more intuitive and responsive sheet behavior for the Ionic theme.
1601
+ *
1602
+ * Rules:
1603
+ * 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
1604
+ * 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
1605
+ * 3. If dragged 40% below current snap point without fast upward flick, dismisses
1606
+ * 4. Otherwise, falls back to position-based snap (closest breakpoint)
1607
+ *
1608
+ * @param deltaY The change in Y position since gesture started
1609
+ * @param velocityY The velocity in pixels per millisecond
1610
+ * @param currentY The current Y position of the gesture
1611
+ * @returns The snap breakpoint value
1612
+ */
1613
+ const calculateVelocitySnapBreakpoint = (deltaY, velocityY, currentY) => {
1614
+ // Convert velocity from px/ms to px/s for easier threshold comparison
1615
+ const velocityYPerSecond = velocityY * 1000;
1616
+ // Calculate current progress (0 = fully closed, 1 = fully expanded)
1617
+ const currentProgress = calculateProgress(currentY);
1618
+ // Rule 1: Fast downward flick always dismisses
1619
+ if (velocityYPerSecond > 500) {
1620
+ return minBreakpoint;
1621
+ }
1622
+ // Rule 2: Fast upward flick moves to next breakpoint above
1623
+ if (velocityYPerSecond < -400) {
1624
+ // Find next breakpoint above current position
1625
+ const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
1626
+ // If no breakpoint above, stay at max breakpoint
1627
+ return nextBreakpoint !== null && nextBreakpoint !== void 0 ? nextBreakpoint : maxBreakpoint;
1628
+ }
1629
+ // Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
1630
+ if (minBreakpoint === 0 && currentBreakpoint > 0) {
1631
+ // Calculate how far we've moved below the current snap point
1632
+ const distanceBelowSnap = currentBreakpoint - currentProgress;
1633
+ const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
1634
+ // If dragged more than 40% below and not flicking up, dismiss
1635
+ if (percentageBelowSnap > 0.4 && velocityYPerSecond <= 400) {
1636
+ return 0;
1637
+ }
1638
+ }
1639
+ // Rule 4: Fallback to position-based snap (existing logic)
1640
+ return calculatePositionSnapBreakpoint(deltaY);
1641
+ };
1536
1642
  /**
1537
1643
  * Calculates the progress of the swipe gesture.
1538
1644
  *
@@ -1603,7 +1709,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1603
1709
  */
1604
1710
  return viewportBottom - activeHeight;
1605
1711
  };
1606
- const gesture = index$2.createGesture({
1712
+ const gesture = index$1.createGesture({
1607
1713
  el: wrapperEl,
1608
1714
  gestureName: 'modalSheet',
1609
1715
  gesturePriority: 40,
@@ -1660,9 +1766,9 @@ let cacheInvalidationScheduled = false;
1660
1766
  * Matches: @media (min-width: 768px) and (min-height: 600px)
1661
1767
  */
1662
1768
  const isCenteredDialogViewport = () => {
1663
- if (!index.win)
1769
+ if (!ionicGlobal.win)
1664
1770
  return false;
1665
- return index.win.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
1771
+ return ionicGlobal.win.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
1666
1772
  .matches;
1667
1773
  };
1668
1774
  /**
@@ -1677,7 +1783,7 @@ const getRootSafeAreaTop = () => {
1677
1783
  if (cachedRootSafeAreaTop !== null) {
1678
1784
  return cachedRootSafeAreaTop;
1679
1785
  }
1680
- const doc = index.win === null || index.win === void 0 ? void 0 : index.win.document;
1786
+ const doc = ionicGlobal.win === null || ionicGlobal.win === void 0 ? void 0 : ionicGlobal.win.document;
1681
1787
  if (!(doc === null || doc === void 0 ? void 0 : doc.body)) {
1682
1788
  return 0;
1683
1789
  }
@@ -1697,6 +1803,41 @@ const getRootSafeAreaTop = () => {
1697
1803
  }
1698
1804
  return value;
1699
1805
  };
1806
+ /**
1807
+ * Calls back when the resolved root `--ion-safe-area-top` changes, which no
1808
+ * event and no window resize covers. The probe's height tracks the variable, so
1809
+ * a change to it becomes a size change the observer can see.
1810
+ */
1811
+ const onRootSafeAreaTopChange = (callback) => {
1812
+ const doc = ionicGlobal.win === null || ionicGlobal.win === void 0 ? void 0 : ionicGlobal.win.document;
1813
+ if (!(doc === null || doc === void 0 ? void 0 : doc.body) || typeof ResizeObserver === 'undefined') {
1814
+ return () => undefined;
1815
+ }
1816
+ const probe = doc.createElement('div');
1817
+ probe.style.cssText =
1818
+ 'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;width:0;' +
1819
+ 'height:var(--ion-safe-area-top,0px);';
1820
+ doc.body.appendChild(probe);
1821
+ /**
1822
+ * Seeded with the value the caller has already applied, so a change that
1823
+ * lands before the observer's first delivery still gets reported. Comparing
1824
+ * against an unset value instead would consume that first delivery and treat
1825
+ * the new inset as the baseline.
1826
+ */
1827
+ let lastHeight = getRootSafeAreaTop();
1828
+ const observer = new ResizeObserver((entries) => {
1829
+ const { height } = entries[0].contentRect;
1830
+ if (height !== lastHeight) {
1831
+ lastHeight = height;
1832
+ callback(height);
1833
+ }
1834
+ });
1835
+ observer.observe(probe);
1836
+ return () => {
1837
+ observer.disconnect();
1838
+ probe.remove();
1839
+ };
1840
+ };
1700
1841
  /**
1701
1842
  * True when the modal host declares BOTH a non-fullscreen `--width` AND a
1702
1843
  * non-fullscreen `--height` (i.e. a centered-dialog-like modal that doesn't
@@ -1783,8 +1924,8 @@ const getInitialSafeAreaConfig = (context) => {
1783
1924
  const getPositionBasedSafeAreaConfig = (wrapperEl) => {
1784
1925
  var _a, _b;
1785
1926
  const rect = wrapperEl.getBoundingClientRect();
1786
- const vh = (_a = index.win === null || index.win === void 0 ? void 0 : index.win.innerHeight) !== null && _a !== void 0 ? _a : 0;
1787
- const vw = (_b = index.win === null || index.win === void 0 ? void 0 : index.win.innerWidth) !== null && _b !== void 0 ? _b : 0;
1927
+ const vh = (_a = ionicGlobal.win === null || ionicGlobal.win === void 0 ? void 0 : ionicGlobal.win.innerHeight) !== null && _a !== void 0 ? _a : 0;
1928
+ const vw = (_b = ionicGlobal.win === null || ionicGlobal.win === void 0 ? void 0 : ionicGlobal.win.innerWidth) !== null && _b !== void 0 ? _b : 0;
1788
1929
  // Only apply safe-area to sides where modal overlaps with screen edge
1789
1930
  return {
1790
1931
  top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
@@ -1817,26 +1958,28 @@ const clearSafeAreaOverrides = (hostEl) => {
1817
1958
  hostEl.style.removeProperty('--ion-safe-area-right');
1818
1959
  };
1819
1960
 
1820
- 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}`;
1961
+ const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left: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;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}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}: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{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-3, 0px 2px 7px 0px rgba(0, 0, 0, 0.05), 0px 6px 32px 0px rgba(0, 0, 0, 0.16));--backdrop-opacity:0.7;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}:host(.modal-round){--border-radius:var(--token-border-radius-1000, var(--token-scale-1000, 40px))}:host(.modal-soft){--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.modal-rectangular){--border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host(.select-modal.modal-default){--max-height:45%;--max-width:calc(100% - (var(--token-space-400, var(--token-scale-400, 16px)) * 2));--min-height:340px}.modal-handle{right:0px;left:0px;top:var(--token-space-300, var(--token-scale-300, 12px));border-radius:var(--token-border-radius-100, var(--token-scale-100, 4px));width:var(--token-scale-1100, 44px);height:var(--token-scale-100, 4px);background-color:var(--token-primitives-neutral-300, #e0e0e0)}.modal-handle::before{-webkit-padding-start:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-padding-end:var(--token-space-100, var(--token-scale-100, 4px));padding-inline-end:var(--token-space-100, var(--token-scale-100, 4px));padding-top:var(--token-space-100, var(--token-scale-100, 4px));padding-bottom:var(--token-space-100, var(--token-scale-100, 4px))}: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}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + var(--token-scale-250, 10px)))}`;
1821
1962
 
1822
- 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}`;
1963
+ const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left: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;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}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}: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{--background:var(--ion-background-color, #fff);--border-radius:0;--backdrop-opacity:0;color:var(--ion-text-color, #000)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{right:0px;left:0px;top:5px;border-radius:8px;width:36px;height:5px;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be))}.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;width:36px;height:5px}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}: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}`;
1964
+
1965
+ const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-width:0;--border-style:none;--border-color:transparent;--box-shadow:none;right:0;left: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;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}.modal-handle{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;cursor:pointer;z-index:11}.modal-handle::before{position:absolute;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}: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{--background:var(--ion-background-color, #fff);--border-radius:0;--backdrop-opacity:0;color:var(--ion-text-color, #000)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{right:0px;left:0px;top:5px;border-radius:8px;width:36px;height:5px;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be))}.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;width:36px;height:5px}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}: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}`;
1823
1966
 
1824
1967
  const Modal = class {
1825
1968
  constructor(hostRef) {
1826
- index$3.registerInstance(this, hostRef);
1827
- this.didPresent = index$3.createEvent(this, "ionModalDidPresent", 7);
1828
- this.willPresent = index$3.createEvent(this, "ionModalWillPresent", 7);
1829
- this.willDismiss = index$3.createEvent(this, "ionModalWillDismiss", 7);
1830
- this.didDismiss = index$3.createEvent(this, "ionModalDidDismiss", 7);
1831
- this.ionBreakpointDidChange = index$3.createEvent(this, "ionBreakpointDidChange", 7);
1832
- this.didPresentShorthand = index$3.createEvent(this, "didPresent", 7);
1833
- this.willPresentShorthand = index$3.createEvent(this, "willPresent", 7);
1834
- this.willDismissShorthand = index$3.createEvent(this, "willDismiss", 7);
1835
- this.didDismissShorthand = index$3.createEvent(this, "didDismiss", 7);
1836
- this.ionMount = index$3.createEvent(this, "ionMount", 7);
1837
- this.ionDragStart = index$3.createEvent(this, "ionDragStart", 7);
1838
- this.ionDragMove = index$3.createEvent(this, "ionDragMove", 7);
1839
- this.ionDragEnd = index$3.createEvent(this, "ionDragEnd", 7);
1969
+ index$2.registerInstance(this, hostRef);
1970
+ this.didPresent = index$2.createEvent(this, "ionModalDidPresent", 7);
1971
+ this.willPresent = index$2.createEvent(this, "ionModalWillPresent", 7);
1972
+ this.willDismiss = index$2.createEvent(this, "ionModalWillDismiss", 7);
1973
+ this.didDismiss = index$2.createEvent(this, "ionModalDidDismiss", 7);
1974
+ this.ionBreakpointDidChange = index$2.createEvent(this, "ionBreakpointDidChange", 7);
1975
+ this.didPresentShorthand = index$2.createEvent(this, "didPresent", 7);
1976
+ this.willPresentShorthand = index$2.createEvent(this, "willPresent", 7);
1977
+ this.willDismissShorthand = index$2.createEvent(this, "willDismiss", 7);
1978
+ this.didDismissShorthand = index$2.createEvent(this, "didDismiss", 7);
1979
+ this.ionMount = index$2.createEvent(this, "ionMount", 7);
1980
+ this.ionDragStart = index$2.createEvent(this, "ionDragStart", 7);
1981
+ this.ionDragMove = index$2.createEvent(this, "ionDragMove", 7);
1982
+ this.ionDragEnd = index$2.createEvent(this, "ionDragEnd", 7);
1840
1983
  this.lockController = lockController.createLockController();
1841
1984
  this.triggerController = overlays.createTriggerController();
1842
1985
  this.coreDelegate = frameworkDelegate.CoreDelegate();
@@ -2129,7 +2272,7 @@ const Modal = class {
2129
2272
  this.currentBreakpoint = this.initialBreakpoint;
2130
2273
  }
2131
2274
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
2132
- index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
2275
+ index$2.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
2133
2276
  }
2134
2277
  if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
2135
2278
  overlays.setOverlayId(this.el);
@@ -2229,7 +2372,7 @@ const Modal = class {
2229
2372
  * get the transition incorrect.
2230
2373
  */
2231
2374
  if (helpers.hasLazyBuild(el)) {
2232
- await index$4.deepReady(this.usersElement);
2375
+ await index$3.deepReady(this.usersElement);
2233
2376
  /**
2234
2377
  * If keepContentsMounted="true" then the
2235
2378
  * JS Framework has already mounted the inner
@@ -2240,9 +2383,9 @@ const Modal = class {
2240
2383
  */
2241
2384
  }
2242
2385
  else if (!this.keepContentsMounted) {
2243
- await index$4.waitForMount();
2386
+ await index$3.waitForMount();
2244
2387
  }
2245
- index$3.writeTask(() => this.el.classList.add('show-modal'));
2388
+ index$2.writeTask(() => this.el.classList.add('show-modal'));
2246
2389
  // Recalculate isSheetModal before safe-area setup because framework
2247
2390
  // bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
2248
2391
  this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
@@ -2259,11 +2402,12 @@ const Modal = class {
2259
2402
  this.statusBarStyle = await StatusBar.getStyle();
2260
2403
  setCardStatusBarDark();
2261
2404
  }
2262
- await overlays.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
2405
+ await overlays.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
2263
2406
  presentingEl: presentingElement,
2264
2407
  currentBreakpoint: this.initialBreakpoint,
2265
2408
  backdropBreakpoint: this.backdropBreakpoint,
2266
2409
  expandToScroll: this.expandToScroll,
2410
+ staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
2267
2411
  });
2268
2412
  // Update safe-area based on actual position after animation
2269
2413
  this.updateSafeAreaOverrides();
@@ -2321,14 +2465,14 @@ const Modal = class {
2321
2465
  // All of the elements needed for the swipe gesture
2322
2466
  // should be in the DOM and referenced by now, except
2323
2467
  // for the presenting el
2324
- const animationBuilder = this.leaveAnimation || index$3.config.get('modalLeave', iosLeaveAnimation);
2468
+ const animationBuilder = this.leaveAnimation || index$2.config.get('modalLeave', iosLeaveAnimation);
2325
2469
  const ani = (this.animation = animationBuilder(el, {
2326
2470
  presentingEl: this.presentingElement,
2327
2471
  expandToScroll: this.expandToScroll,
2328
2472
  }));
2329
- const contentEl = index$1.findIonContent(el);
2473
+ const contentEl = index.findIonContent(el);
2330
2474
  if (!contentEl) {
2331
- index$1.printIonContentErrorMsg(el);
2475
+ index.printIonContentErrorMsg(el);
2332
2476
  return;
2333
2477
  }
2334
2478
  const statusBarStyle = (_a = this.statusBarStyle) !== null && _a !== void 0 ? _a : Style.Default;
@@ -2340,12 +2484,13 @@ const Modal = class {
2340
2484
  if (!wrapperEl || initialBreakpoint === undefined) {
2341
2485
  return;
2342
2486
  }
2343
- const animationBuilder = this.enterAnimation || index$3.config.get('modalEnter', iosEnterAnimation);
2487
+ const animationBuilder = this.enterAnimation || index$2.config.get('modalEnter', iosEnterAnimation);
2344
2488
  const ani = (this.animation = animationBuilder(this.el, {
2345
2489
  presentingEl: this.presentingElement,
2346
2490
  currentBreakpoint: initialBreakpoint,
2347
2491
  backdropBreakpoint,
2348
2492
  expandToScroll: this.expandToScroll,
2493
+ staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
2349
2494
  }));
2350
2495
  ani.progressStart(true, 1);
2351
2496
  const { gesture, moveSheetToBreakpoint, resetContentScroll } = 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) => {
@@ -2353,7 +2498,7 @@ const Modal = class {
2353
2498
  this.currentBreakpoint = breakpoint;
2354
2499
  this.ionBreakpointDidChange.emit({ breakpoint });
2355
2500
  }
2356
- }, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2501
+ }, ionicGlobal.getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2357
2502
  this.gesture = gesture;
2358
2503
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
2359
2504
  this.resetSheetContentScroll = resetContentScroll;
@@ -2540,7 +2685,7 @@ const Modal = class {
2540
2685
  if (dismissed) {
2541
2686
  const { delegate } = this.getDelegate();
2542
2687
  await frameworkDelegate.detachComponent(delegate, this.usersElement);
2543
- index$3.writeTask(() => this.el.classList.remove('show-modal'));
2688
+ index$2.writeTask(() => this.el.classList.remove('show-modal'));
2544
2689
  if (this.animation) {
2545
2690
  this.animation.destroy();
2546
2691
  }
@@ -2584,11 +2729,11 @@ const Modal = class {
2584
2729
  */
2585
2730
  async setCurrentBreakpoint(breakpoint) {
2586
2731
  if (!this.isSheetModal) {
2587
- index$3.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
2732
+ index$2.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
2588
2733
  return;
2589
2734
  }
2590
2735
  if (!this.breakpoints.includes(breakpoint)) {
2591
- index$3.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
2736
+ index$2.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
2592
2737
  return;
2593
2738
  }
2594
2739
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -2633,6 +2778,18 @@ const Modal = class {
2633
2778
  await this.setCurrentBreakpoint(nextBreakpoint);
2634
2779
  return true;
2635
2780
  }
2781
+ getShape() {
2782
+ const theme = ionicGlobal.getIonTheme(this);
2783
+ const { shape } = this;
2784
+ // TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
2785
+ if (theme !== 'ionic') {
2786
+ return undefined;
2787
+ }
2788
+ if (shape === undefined) {
2789
+ return 'round';
2790
+ }
2791
+ return shape;
2792
+ }
2636
2793
  initViewTransitionListener() {
2637
2794
  // Only enable for iOS card modals when no custom animations are provided
2638
2795
  if (ionicGlobal.getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -2849,16 +3006,18 @@ const Modal = class {
2849
3006
  // Set the internal offset property with the resolved root safe-area-top value
2850
3007
  if (context.isSheetModal) {
2851
3008
  this.updateSheetOffsetTop();
3009
+ this.unsubscribeRootSafeAreaTop = onRootSafeAreaTopChange((safeAreaTop) => this.updateSheetOffsetTop(safeAreaTop));
2852
3010
  }
2853
3011
  }
2854
3012
  /**
2855
- * Resolves the current root --ion-safe-area-top value and sets the
2856
- * internal --ion-modal-offset-top property on the host element.
2857
- * Called on present and on resize (e.g., device rotation changes safe-area).
3013
+ * Sets the internal --ion-modal-offset-top property on the host element,
3014
+ * resolving the current root --ion-safe-area-top when no value is given.
3015
+ * Called on present, on resize (e.g., device rotation changes safe-area),
3016
+ * and whenever the root safe-area value itself changes.
2858
3017
  */
2859
- updateSheetOffsetTop() {
2860
- const safeAreaTop = getRootSafeAreaTop();
2861
- this.el.style.setProperty('--ion-modal-offset-top', `${safeAreaTop}px`);
3018
+ updateSheetOffsetTop(safeAreaTop) {
3019
+ const value = safeAreaTop !== null && safeAreaTop !== void 0 ? safeAreaTop : getRootSafeAreaTop();
3020
+ this.el.style.setProperty('--ion-modal-offset-top', `${value}px`);
2862
3021
  }
2863
3022
  /**
2864
3023
  * Updates safe-area overrides during dynamic state changes.
@@ -2957,7 +3116,10 @@ const Modal = class {
2957
3116
  * Clears all safe-area overrides and padding.
2958
3117
  */
2959
3118
  cleanupSafeAreaOverrides() {
3119
+ var _a;
2960
3120
  clearSafeAreaOverrides(this.el);
3121
+ (_a = this.unsubscribeRootSafeAreaTop) === null || _a === void 0 ? void 0 : _a.call(this);
3122
+ this.unsubscribeRootSafeAreaTop = undefined;
2961
3123
  // Remove internal sheet offset property
2962
3124
  this.el.style.removeProperty('--ion-modal-offset-top');
2963
3125
  const { contentEl } = this.findContentAndFooter();
@@ -2966,15 +3128,16 @@ const Modal = class {
2966
3128
  render() {
2967
3129
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
2968
3130
  const showHandle = handle !== false && isSheetModal;
2969
- const mode = ionicGlobal.getIonMode(this);
2970
- const isCardModal = presentingElement !== undefined && mode === 'ios';
3131
+ const theme$1 = ionicGlobal.getIonTheme(this);
3132
+ const isCardModal = presentingElement !== undefined && theme$1 === 'ios';
2971
3133
  const isHandleCycle = handleBehavior === 'cycle';
3134
+ const shape = this.getShape();
2972
3135
  const isSheetModalWithHandle = isSheetModal && showHandle;
2973
- return (index$3.h(index$3.Host, Object.assign({ key: '09f09a10d858e976bc2a989f30db925348a7784c', "no-router": true,
3136
+ return (index$2.h(index$2.Host, Object.assign({ key: 'cf99da2a03dd010716265401c8b6fe46a9bf0ced', "no-router": true,
2974
3137
  // Allow the modal to be navigable when the handle is focusable
2975
3138
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2976
3139
  zIndex: `${20000 + this.overlayIndex}`,
2977
- }, 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: 'b197319bdddf0b979ccacdb63dbceccfd9bf2560', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: 'c848ff6a10e9092cdb10a6f21c9a299a72b17ca9', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: 'e7c8e67807d49098aba63dce69a1bbf9647bbab6',
3140
+ }, class: Object.assign({ [theme$1]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`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$2.h("ion-backdrop", { key: '91d148a13955bcda57b5d15d2613e74cc8cd5047', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme$1 === 'ios' && index$2.h("div", { key: 'bd51fa967ced9c6d574f0bb6d3c569fe53a2be59', class: "modal-shadow" }), index$2.h("div", Object.assign({ key: '45fc1228a8dfc8009c933c6cee4067c08ab27fe6',
2978
3141
  /*
2979
3142
  role and aria-modal must be used on the
2980
3143
  same element. They must also be set inside the
@@ -2987,11 +3150,11 @@ const Modal = class {
2987
3150
  without the tabindex focus() would be a no-op and screen readers
2988
3151
  may not properly announce the dialog and its content when it opens.
2989
3152
  */
2990
- 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: '0851cc75ee7367e13d1993a9c4d8b1b4de1d3bf0', class: "modal-handle",
3153
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$2.h("button", { key: '9bcc1589af7c422ee6f116aa50f62981031042ba', class: "modal-handle",
2991
3154
  // Prevents the handle from receiving keyboard focus when it does not cycle
2992
- 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: 'b4d9bc13dc0867e858db8e1c7277bd09b7fce44c', onSlotchange: this.onSlotChange }))));
3155
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", "data-focus-order": "1", ref: (el) => (this.dragHandleEl = el) })), index$2.h("slot", { key: 'd913facdd6abf0d87ba5e2d7f8b2f1c18e3ef556', onSlotchange: this.onSlotChange }))));
2993
3156
  }
2994
- get el() { return index$3.getElement(this); }
3157
+ get el() { return index$2.getElement(this); }
2995
3158
  static get watchers() { return {
2996
3159
  "isOpen": [{
2997
3160
  "onIsOpenChange": 0
@@ -3011,6 +3174,7 @@ const LIFECYCLE_MAP = {
3011
3174
  ionModalDidDismiss: 'ionViewDidLeave',
3012
3175
  };
3013
3176
  Modal.style = {
3177
+ ionic: modalIonicCss(),
3014
3178
  ios: modalIosCss(),
3015
3179
  md: modalMdCss()
3016
3180
  };