@ionic/core 8.8.18-dev.11786385944.17aca7e5 → 8.8.18-dev.11786487682.1e6f798f

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 (1149) 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-3VXQGlP7.js +4 -0
  107. package/components/{p-BkKAANMJ.js → p-B2SvA6NE.js} +1 -1
  108. package/components/p-B5krYTuW.js +4 -0
  109. package/components/p-B6a9IJZ0.js +4 -0
  110. package/components/p-BArGQkuV.js +4 -0
  111. package/components/p-BDqjX7Z_.js +4 -0
  112. package/components/{p-Cf2jSDS8.js → p-BE21dB_a.js} +1 -1
  113. package/components/p-BG-Q139o.js +4 -0
  114. package/components/{p-cyNmxje6.js → p-BPxMDyfV.js} +1 -1
  115. package/components/p-BT8fsdEQ.js +4 -0
  116. package/components/p-BWH3I3Dl.js +4 -0
  117. package/components/p-BYSs-jZz.js +4 -0
  118. package/components/{p-DqLB8yFQ.js → p-BZwQa9ey.js} +1 -1
  119. package/components/{p-C_hpsif8.js → p-B_jBop0E.js} +1 -1
  120. package/components/p-BbVhJs-a.js +4 -0
  121. package/components/p-Bc6odfwr.js +4 -0
  122. package/components/p-BjW8SOqw.js +4 -0
  123. package/components/p-BkWXBpOv.js +4 -0
  124. package/components/p-Bt9GDUv-.js +4 -0
  125. package/components/p-BvNVjXg4.js +4 -0
  126. package/components/p-BwKpO3Is.js +4 -0
  127. package/components/p-BwlU9cX_.js +4 -0
  128. package/components/{p-Osve4qkc.js → p-Bz4JFPmj.js} +1 -1
  129. package/components/p-CBxy8OYq.js +4 -0
  130. package/components/p-CGdeq57o.js +4 -0
  131. package/components/p-CHPdgLHZ.js +4 -0
  132. package/components/p-CMZlqiT7.js +4 -0
  133. package/components/p-CMzkbes2.js +4 -0
  134. package/components/p-CODBQrPj.js +4 -0
  135. package/components/p-COPA4jD9.js +4 -0
  136. package/components/p-CPnW-OVE.js +4 -0
  137. package/components/p-CRmBpp1v.js +4 -0
  138. package/components/p-CT3P-wjL.js +4 -0
  139. package/components/p-CVYFPBs-.js +4 -0
  140. package/components/p-CVqhQif1.js +4 -0
  141. package/components/p-Cc3oC60a.js +4 -0
  142. package/components/p-CjY4Hs1X.js +4 -0
  143. package/components/p-CrYjk-l3.js +4 -0
  144. package/components/p-CsUcWJuB.js +4 -0
  145. package/components/p-D0Iqw6OZ.js +4 -0
  146. package/{dist/ionic/p-D13Eaw-8.js → components/p-D0fnq0lf.js} +1 -1
  147. package/components/p-D1kNlmYt.js +4 -0
  148. package/components/p-D1t981Ih.js +4 -0
  149. package/components/p-D9C5yWpF.js +4 -0
  150. package/components/p-DDNG-IsR.js +4 -0
  151. package/components/p-DJSp7Si8.js +4 -0
  152. package/components/p-DL5wyRub.js +4 -0
  153. package/components/{p-ChIZKXUu.js → p-DWoO0801.js} +1 -1
  154. package/components/p-DXKZXLjV.js +4 -0
  155. package/components/p-DaJxRxSQ.js +4 -0
  156. package/components/p-Dhi5xtNS.js +4 -0
  157. package/components/p-Do8qRv6r.js +4 -0
  158. package/components/p-Dt--PjSF.js +4 -0
  159. package/components/p-DylrHLJF.js +4 -0
  160. package/components/p-FCT_QxQG.js +4 -0
  161. package/components/p-OCde3AhO.js +4 -0
  162. package/components/p-OPFCgx0m.js +4 -0
  163. package/{dist/ionic/p-VAemlbDS.js → components/p-PCVpe9Tq.js} +1 -1
  164. package/components/p-Rkm2AOZ2.js +4 -0
  165. package/components/p-WSZErkoI.js +4 -0
  166. package/components/p-bHSMZulH.js +4 -0
  167. package/components/p-fIOYmaqA.js +4 -0
  168. package/components/p-hNcst9K9.js +4 -0
  169. package/components/p-hW_3y-wm.js +4 -0
  170. package/components/p-nLMDgmzd.js +4 -0
  171. package/components/p-oI96rnOD.js +4 -0
  172. package/components/p-r_CFQBc1.js +4 -0
  173. package/components/p-vXpMhGrs.js +4 -0
  174. package/components/p-zBZRdRDd.js +4 -0
  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-BJq0kcy2.js → animation-B3xfVcDO.js} +3 -3
  221. package/dist/cjs/{app-globals-BlqrqKTN.js → app-globals-3ZoCVkn-.js} +1 -1
  222. package/dist/cjs/{button-active-0mPOKmV2.js → button-active-3tZKuPbT.js} +2 -2
  223. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-CQSg1uCo.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-DGX8X5js.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-PxvGiOik.js → format-BCIkDef_.js} +1 -1
  231. package/dist/cjs/{framework-delegate-BtICZDHr.js → framework-delegate-DC5nq_NN.js} +4 -2
  232. package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-eix26ESE.js} +1 -1
  233. package/dist/cjs/{helpers-Cv23MFHM.js → helpers-DiOgV5hw.js} +71 -4
  234. package/dist/cjs/{index-BERfRao3.js → index-BaJ7_YbC.js} +4 -4
  235. package/dist/cjs/index-Bj07IRTB.js +429 -0
  236. package/dist/cjs/{index-Dqpns5vP.js → index-BxEZd5IE.js} +2 -34
  237. package/dist/cjs/{index-DqmRDbxg.js → index-CxDnX7hd.js} +3 -1
  238. package/dist/cjs/{index-aC4x3Fk3.js → index-DYRcC3bw.js} +15 -15
  239. package/dist/cjs/{index-Ct7gcRif.js → index-GZU9YrFc.js} +41 -4
  240. package/dist/cjs/{index-D81eLYUM.js → index-bX3nz2vw.js} +9 -8
  241. package/dist/cjs/index.cjs.js +16 -16
  242. package/dist/cjs/{input-shims-DpA1zUN9.js → input-shims-BSEBw22J.js} +18 -17
  243. package/dist/cjs/{input.utils-DetjmtH2.js → input.utils-D68wgI2Y.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 +458 -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 +303 -169
  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 +43 -24
  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-QoUqobrQ.js +519 -0
  300. package/dist/cjs/ionic.cjs.js +4 -4
  301. package/dist/cjs/{ios.transition-BOSWOaiK.js → ios.transition-DpFQfFfT.js} +7 -5
  302. package/dist/cjs/{item-multiple-inputs-D-gyg57c.js → item-multiple-inputs-BG9f5_eV.js} +1 -1
  303. package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-Bn0Ppim6.js} +1 -1
  304. package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-faZBQysj.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-B8-wBZqt.js → md.transition-ChJcoZUH.js} +6 -5
  308. package/dist/cjs/{notch-controller-18PzRGXd.js → notch-controller-BO0UGB4F.js} +4 -4
  309. package/dist/cjs/overlay-control-label-DnRLQR1t.js +52 -0
  310. package/dist/cjs/{overlays-DdtIYQUH.js → overlays-CFGbPUmE.js} +309 -18
  311. package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +345 -0
  312. package/dist/cjs/select-option-render-DqBHEjDn.js +124 -0
  313. package/dist/cjs/{status-tap-N1kaBbuk.js → status-tap-x2qDo5QR.js} +4 -3
  314. package/dist/cjs/{swipe-back-C0GCB18x.js → swipe-back-CvZt_4YX.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 +16 -11
  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 +102 -32
  498. package/dist/collection/components/modal/gestures/swipe-to-close.js +32 -3
  499. package/dist/collection/components/modal/gestures/utils.js +0 -17
  500. package/dist/collection/components/modal/modal.ionic.css +255 -0
  501. package/dist/collection/components/modal/modal.ios.css +178 -70
  502. package/dist/collection/components/modal/modal.js +52 -22
  503. package/dist/collection/components/modal/modal.md.css +178 -70
  504. package/dist/collection/components/nav/nav.css +7 -1
  505. package/dist/collection/components/nav/nav.js +11 -5
  506. package/dist/collection/components/nav-link/nav-link.js +5 -1
  507. package/dist/collection/components/note/note.ios.css +12 -0
  508. package/dist/collection/components/note/note.js +11 -8
  509. package/dist/collection/components/note/note.md.css +12 -0
  510. package/dist/collection/components/picker/picker.ios.css +15 -3
  511. package/dist/collection/components/picker/picker.js +8 -5
  512. package/dist/collection/components/picker/picker.md.css +15 -3
  513. package/dist/collection/components/picker-column/picker-column.css +9 -2
  514. package/dist/collection/components/picker-column/picker-column.js +8 -7
  515. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  516. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  517. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  518. package/dist/collection/components/picker-legacy/picker.ios.css +13 -1
  519. package/dist/collection/components/picker-legacy/picker.js +7 -6
  520. package/dist/collection/components/picker-legacy/picker.md.css +13 -1
  521. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +12 -0
  522. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
  523. package/dist/collection/components/picker-legacy-column/picker-column.md.css +12 -0
  524. package/dist/collection/components/popover/popover.ionic.css +290 -0
  525. package/dist/collection/components/popover/popover.ios.css +29 -1
  526. package/dist/collection/components/popover/popover.js +18 -15
  527. package/dist/collection/components/popover/popover.md.css +29 -1
  528. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  529. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  530. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  531. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  532. package/dist/collection/components/radio/radio.ionic.css +422 -0
  533. package/dist/collection/components/radio/radio.ios.css +207 -102
  534. package/dist/collection/components/radio/radio.js +14 -9
  535. package/dist/collection/components/radio/radio.md.css +207 -102
  536. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  537. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  538. package/dist/collection/components/radio-group/radio-group.js +48 -7
  539. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  540. package/dist/collection/components/range/range.ionic.css +567 -0
  541. package/dist/collection/components/range/range.ios.css +128 -85
  542. package/dist/collection/components/range/range.js +16 -10
  543. package/dist/collection/components/range/range.md.css +128 -85
  544. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  545. package/dist/collection/components/refresher/refresher.js +13 -10
  546. package/dist/collection/components/refresher/refresher.md.css +15 -2
  547. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  548. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  549. package/dist/collection/components/reorder/reorder.js +33 -6
  550. package/dist/collection/components/reorder/reorder.md.css +6 -0
  551. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  552. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  553. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  554. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  555. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  556. package/dist/collection/components/route/route.js +4 -0
  557. package/dist/collection/components/router/router.js +4 -0
  558. package/dist/collection/components/router-link/router-link.css +8 -2
  559. package/dist/collection/components/router-link/router-link.js +9 -5
  560. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  561. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  562. package/dist/collection/components/row/row.css +16 -0
  563. package/dist/collection/components/row/row.js +9 -2
  564. package/dist/collection/components/searchbar/searchbar.ionic.css +622 -0
  565. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  566. package/dist/collection/components/searchbar/searchbar.js +191 -42
  567. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  568. package/dist/collection/components/segment/segment.ionic.css +115 -0
  569. package/dist/collection/components/segment/segment.ios.css +45 -2
  570. package/dist/collection/components/segment/segment.js +11 -8
  571. package/dist/collection/components/segment/segment.md.css +45 -2
  572. package/dist/collection/components/segment-button/segment-button.ionic.css +352 -0
  573. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  574. package/dist/collection/components/segment-button/segment-button.js +11 -8
  575. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  576. package/dist/collection/components/segment-content/segment-content.js +1 -1
  577. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  578. package/dist/collection/components/segment-view/segment-view.js +13 -4
  579. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  580. package/dist/collection/components/select/select.ionic.css +809 -0
  581. package/dist/collection/components/select/select.ios.css +348 -176
  582. package/dist/collection/components/select/select.js +521 -92
  583. package/dist/collection/components/select/select.md.css +364 -178
  584. package/dist/collection/components/select-modal/select-modal.ionic.css +257 -0
  585. package/dist/collection/components/select-modal/select-modal.ios.css +466 -0
  586. package/dist/collection/components/select-modal/select-modal.js +126 -30
  587. package/dist/collection/components/select-modal/select-modal.md.css +394 -0
  588. package/dist/collection/components/select-option/select-option.js +72 -4
  589. package/dist/collection/components/select-popover/select-popover.ionic.css +255 -0
  590. package/dist/collection/components/select-popover/select-popover.ios.css +302 -20
  591. package/dist/collection/components/select-popover/select-popover.js +89 -29
  592. package/dist/collection/components/select-popover/select-popover.md.css +345 -0
  593. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  594. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  595. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  596. package/dist/collection/components/spinner/spinner.js +47 -6
  597. package/dist/collection/components/spinner/spinner.native.css +199 -0
  598. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  599. package/dist/collection/components/split-pane/split-pane.js +15 -8
  600. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  601. package/dist/collection/components/tab/tab.js +6 -2
  602. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  603. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  604. package/dist/collection/components/tab-bar/tab-bar.js +179 -15
  605. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  606. package/dist/collection/components/tab-button/tab-button.ionic.css +373 -0
  607. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  608. package/dist/collection/components/tab-button/tab-button.js +54 -9
  609. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  610. package/dist/collection/components/tabs/tabs.css +7 -1
  611. package/dist/collection/components/tabs/tabs.js +4 -1
  612. package/dist/collection/components/text/text.css +6 -0
  613. package/dist/collection/components/text/text.js +7 -6
  614. package/dist/collection/components/textarea/textarea.ionic.css +898 -0
  615. package/dist/collection/components/textarea/textarea.ios.css +298 -158
  616. package/dist/collection/components/textarea/textarea.js +162 -24
  617. package/dist/collection/components/textarea/textarea.md.css +312 -159
  618. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  619. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  620. package/dist/collection/components/title/title.ionic.css +127 -0
  621. package/dist/collection/components/title/title.ios.css +32 -4
  622. package/dist/collection/components/title/title.js +13 -7
  623. package/dist/collection/components/title/title.md.css +39 -4
  624. package/dist/collection/components/toast/animations/utils.js +1 -1
  625. package/dist/collection/components/toast/toast.ionic.css +394 -0
  626. package/dist/collection/components/toast/toast.ios.css +84 -45
  627. package/dist/collection/components/toast/toast.js +76 -13
  628. package/dist/collection/components/toast/toast.md.css +84 -45
  629. package/dist/collection/components/toggle/toggle.ionic.css +512 -0
  630. package/dist/collection/components/toggle/toggle.ios.css +247 -127
  631. package/dist/collection/components/toggle/toggle.js +72 -18
  632. package/dist/collection/components/toggle/toggle.md.css +245 -127
  633. package/dist/collection/components/toolbar/test/image.svg +1 -0
  634. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  635. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  636. package/dist/collection/components/toolbar/toolbar.js +218 -13
  637. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  638. package/dist/collection/global/ionic-global.js +241 -13
  639. package/dist/collection/utils/content/index.js +0 -30
  640. package/dist/collection/utils/css-value-validation.js +39 -0
  641. package/dist/collection/utils/focus-trap.js +13 -2
  642. package/dist/collection/utils/focus-visible.js +22 -0
  643. package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
  644. package/dist/collection/utils/forms/index.js +1 -0
  645. package/dist/collection/utils/forms/validity.js +31 -0
  646. package/dist/collection/utils/framework-delegate.js +3 -1
  647. package/dist/collection/utils/hardware-back-button.js +15 -0
  648. package/dist/collection/utils/helpers.js +70 -3
  649. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  650. package/dist/collection/utils/media.js +1 -0
  651. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  652. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  653. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  654. package/dist/collection/utils/overlay-control-label.js +47 -0
  655. package/dist/collection/utils/overlays.js +290 -8
  656. package/dist/collection/utils/sanitization/index.js +274 -18
  657. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  658. package/dist/collection/utils/select-option-render.js +119 -0
  659. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  660. package/dist/collection/utils/test/playwright/generator.js +48 -23
  661. package/dist/collection/utils/test/playwright/page/utils/goto.js +14 -5
  662. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  663. package/dist/collection/utils/theme.js +25 -1
  664. package/dist/collection/utils/transition/ios.transition.js +1 -0
  665. package/dist/docs.json +9090 -286
  666. package/dist/esm/{animation-DLJpuoEz.js → animation-B2qdQ_ou.js} +2 -2
  667. package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-DZ-iIjxA.js} +1 -1
  668. package/dist/esm/{button-active-BSpTQmS9.js → button-active-BmajAby6.js} +2 -2
  669. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CtQSWUU0.js} +1 -1
  670. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  671. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  672. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  673. package/dist/esm/clear-button-press-controller-C7AAVMKK.js +43 -0
  674. package/dist/esm/config-BwKpO3Is.js +31 -0
  675. package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
  676. package/dist/esm/{format-CAmvpAez.js → format-2WlZcMvG.js} +1 -1
  677. package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate-DO2QXccA.js} +4 -2
  678. package/dist/esm/{haptic-DzAMWJuk.js → haptic-DFgKNCce.js} +1 -1
  679. package/dist/esm/{helpers-HEqiOzXb.js → helpers-DfF5_wJc.js} +71 -5
  680. package/dist/esm/{index-DV3sJJW8.js → index-B4Kq2YNk.js} +3 -2
  681. package/dist/esm/{index-B_dQk_WE.js → index-BIUWGRUl.js} +4 -4
  682. package/dist/esm/{index-BRHzoo00.js → index-BjaaZqVY.js} +4 -3
  683. package/dist/esm/{index-tcQvqkiX.js → index-C0EQceqV.js} +41 -4
  684. package/dist/esm/{index-Q6UPU0Ay.js → index-Di034G4O.js} +11 -11
  685. package/dist/esm/{index-Dw-wN0Ja.js → index-KxK0gcRp.js} +3 -33
  686. package/dist/esm/index-Mq5pCWmZ.js +424 -0
  687. package/dist/esm/index.js +14 -14
  688. package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-DvNNw70a.js} +7 -6
  689. package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-_LkBfBWt.js} +3 -3
  690. package/dist/esm/ion-accordion_2.entry.js +61 -29
  691. package/dist/esm/ion-action-sheet.entry.js +41 -22
  692. package/dist/esm/ion-alert.entry.js +77 -40
  693. package/dist/esm/ion-app_8.entry.js +457 -193
  694. package/dist/esm/ion-avatar_3.entry.js +125 -13
  695. package/dist/esm/ion-back-button.entry.js +31 -22
  696. package/dist/esm/ion-backdrop.entry.js +10 -7
  697. package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
  698. package/dist/esm/ion-button_2.entry.js +61 -24
  699. package/dist/esm/ion-card_5.entry.js +55 -33
  700. package/dist/esm/ion-checkbox.entry.js +34 -17
  701. package/dist/esm/ion-chip.entry.js +50 -9
  702. package/dist/esm/ion-col_3.entry.js +56 -57
  703. package/dist/esm/ion-datetime-button.entry.js +13 -9
  704. package/dist/esm/ion-datetime_3.entry.js +121 -46
  705. package/dist/esm/ion-divider.entry.js +49 -0
  706. package/dist/esm/ion-fab_3.entry.js +44 -28
  707. package/dist/esm/ion-gallery-item.entry.js +57 -0
  708. package/dist/esm/ion-gallery.entry.js +605 -0
  709. package/dist/esm/ion-img.entry.js +8 -4
  710. package/dist/esm/ion-infinite-scroll_2.entry.js +92 -16
  711. package/dist/esm/ion-input-otp.entry.js +74 -9
  712. package/dist/esm/ion-input-password-toggle.entry.js +53 -15
  713. package/dist/esm/ion-input.entry.js +132 -40
  714. package/dist/esm/ion-item-option_3.entry.js +467 -52
  715. package/dist/esm/ion-item_8.entry.js +121 -50
  716. package/dist/esm/ion-loading.entry.js +21 -18
  717. package/dist/esm/ion-menu_3.entry.js +47 -29
  718. package/dist/esm/ion-modal.entry.js +269 -135
  719. package/dist/esm/ion-nav_2.entry.js +14 -11
  720. package/dist/esm/ion-picker-column-option.entry.js +12 -8
  721. package/dist/esm/ion-picker-column.entry.js +13 -13
  722. package/dist/esm/ion-picker.entry.js +10 -6
  723. package/dist/esm/ion-popover.entry.js +21 -19
  724. package/dist/esm/ion-progress-bar.entry.js +27 -9
  725. package/dist/esm/ion-radio_2.entry.js +36 -18
  726. package/dist/esm/ion-range.entry.js +20 -13
  727. package/dist/esm/ion-refresher_2.entry.js +41 -22
  728. package/dist/esm/ion-reorder_2.entry.js +38 -14
  729. package/dist/esm/ion-ripple-effect.entry.js +15 -7
  730. package/dist/esm/ion-route_4.entry.js +11 -10
  731. package/dist/esm/ion-searchbar.entry.js +146 -32
  732. package/dist/esm/ion-segment-content.entry.js +2 -2
  733. package/dist/esm/ion-segment-view.entry.js +13 -3
  734. package/dist/esm/ion-segment_2.entry.js +23 -16
  735. package/dist/esm/ion-select-modal.entry.js +114 -38
  736. package/dist/esm/ion-select_3.entry.js +557 -108
  737. package/dist/esm/ion-spinner.entry.js +30 -8
  738. package/dist/esm/ion-split-pane.entry.js +13 -9
  739. package/dist/esm/ion-tab-bar_2.entry.js +149 -27
  740. package/dist/esm/ion-tab_2.entry.js +8 -7
  741. package/dist/esm/ion-text.entry.js +7 -7
  742. package/dist/esm/ion-textarea.entry.js +137 -23
  743. package/dist/esm/ion-toast.entry.js +45 -21
  744. package/dist/esm/ion-toggle.entry.js +82 -26
  745. package/dist/esm/ionic-global-BpkTponr.js +508 -0
  746. package/dist/esm/ionic.js +5 -5
  747. package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-CgScDbsb.js} +7 -5
  748. package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-C6onMFOo.js} +1 -1
  749. package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-CyyguLDw.js} +1 -1
  750. package/dist/esm/{keyboard-ywgs5efA.js → keyboard-WJix-wcz.js} +4 -3
  751. package/dist/esm/list-Dhi5xtNS.js +6 -0
  752. package/dist/esm/loader.js +5 -5
  753. package/dist/esm/{md.transition-D0msQmzI.js → md.transition-DThqYazt.js} +6 -5
  754. package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-MTblRxjD.js} +2 -2
  755. package/dist/esm/overlay-control-label-CODBQrPj.js +49 -0
  756. package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-tv6nLsmk.js} +306 -15
  757. package/dist/esm/scroll-hide-controller-CUNW7EpD.js +342 -0
  758. package/dist/esm/select-option-render-BlKZ2H83.js +122 -0
  759. package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-CoPI1M2q.js} +4 -3
  760. package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-qmvTRnSq.js} +3 -2
  761. package/dist/esm/{theme-DiVJyqlX.js → theme-DaJxRxSQ.js} +25 -1
  762. package/dist/esm/validity-BjW8SOqw.js +48 -0
  763. package/dist/esm/x-BDqjX7Z_.js +6 -0
  764. package/dist/html.html-data.json +2707 -168
  765. package/dist/ionic/index.esm.js +1 -1
  766. package/dist/ionic/ionic.esm.js +1 -1
  767. package/dist/ionic/p--sroV-k-.js +4 -0
  768. package/dist/ionic/p-05ce9821.entry.js +4 -0
  769. package/dist/ionic/p-085b8cdf.entry.js +4 -0
  770. package/dist/ionic/p-0ef6bfc4.entry.js +4 -0
  771. package/dist/ionic/p-18b7771e.entry.js +4 -0
  772. package/dist/ionic/p-19f34fe5.entry.js +4 -0
  773. package/dist/ionic/p-1b6e3914.entry.js +4 -0
  774. package/dist/ionic/p-2740db6e.entry.js +4 -0
  775. package/dist/ionic/p-2a1abbb1.entry.js +4 -0
  776. package/dist/ionic/p-2d9c681b.entry.js +4 -0
  777. package/dist/ionic/p-2fba8f15.entry.js +4 -0
  778. package/dist/ionic/p-3886bfbe.entry.js +4 -0
  779. package/dist/ionic/p-3ab9c35a.entry.js +4 -0
  780. package/dist/ionic/p-3b4c5cb5.entry.js +4 -0
  781. package/dist/ionic/p-3cfb4ff2.entry.js +4 -0
  782. package/dist/ionic/p-41afaf15.entry.js +4 -0
  783. package/dist/ionic/p-47b9dac0.entry.js +4 -0
  784. package/dist/ionic/p-54419365.entry.js +4 -0
  785. package/dist/ionic/p-54b7972e.entry.js +4 -0
  786. package/dist/ionic/p-602cf876.entry.js +4 -0
  787. package/dist/ionic/p-678ee14a.entry.js +4 -0
  788. package/dist/ionic/p-679c1448.entry.js +4 -0
  789. package/dist/ionic/p-68ea8ed1.entry.js +4 -0
  790. package/dist/ionic/p-6e1ec775.entry.js +4 -0
  791. package/dist/ionic/p-745d6b2b.entry.js +4 -0
  792. package/dist/ionic/p-77254b78.entry.js +4 -0
  793. package/dist/ionic/{p-C0eMdTCW.js → p-7k7Q1A38.js} +1 -1
  794. package/dist/ionic/p-898691b3.entry.js +4 -0
  795. package/dist/ionic/p-89fedfda.entry.js +4 -0
  796. package/dist/ionic/p-8cf82b85.entry.js +4 -0
  797. package/dist/ionic/p-8d5fd199.entry.js +4 -0
  798. package/dist/ionic/p-9087119f.entry.js +4 -0
  799. package/dist/ionic/p-9c508a22.entry.js +4 -0
  800. package/dist/ionic/p-B4Kq2YNk.js +4 -0
  801. package/dist/ionic/p-BDSH5ckF.js +4 -0
  802. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  803. package/dist/ionic/p-BFy_BK46.js +4 -0
  804. package/dist/ionic/p-BYSs-jZz.js +4 -0
  805. package/dist/ionic/p-BjW8SOqw.js +4 -0
  806. package/dist/ionic/p-BlZo7Gy-.js +4 -0
  807. package/dist/ionic/p-Bq8S4vhI.js +4 -0
  808. package/dist/ionic/p-Btc4flkw.js +4 -0
  809. package/dist/ionic/p-BwKpO3Is.js +4 -0
  810. package/dist/ionic/p-C0EQceqV.js +5 -0
  811. package/dist/ionic/p-C1I_d964.js +4 -0
  812. package/dist/ionic/p-CB91Gr9M.js +4 -0
  813. package/dist/ionic/p-CEkwLb3L.js +4 -0
  814. package/dist/ionic/p-CJsJQPQD.js +4 -0
  815. package/dist/ionic/p-CODBQrPj.js +4 -0
  816. package/dist/ionic/p-Ch7MBNn_.js +4 -0
  817. package/dist/ionic/p-Cipl19Qe.js +4 -0
  818. package/dist/ionic/{p-DC3RagnA.js → p-Cm20lBQw.js} +1 -1
  819. package/dist/ionic/p-CnAWnbNK.js +4 -0
  820. package/dist/ionic/p-D1t981Ih.js +4 -0
  821. package/dist/ionic/p-D4MT1z4_.js +4 -0
  822. package/dist/ionic/p-D4veLKCq.js +4 -0
  823. package/dist/ionic/p-DF7ubVci.js +4 -0
  824. package/dist/ionic/p-DMaSfupH.js +4 -0
  825. package/{components/p-D13Eaw-8.js → dist/ionic/p-DQDmksdT.js} +1 -1
  826. package/dist/ionic/p-DTsDGZPd.js +4 -0
  827. package/dist/ionic/p-DaJxRxSQ.js +4 -0
  828. package/dist/ionic/p-DdCaKRle.js +4 -0
  829. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  830. package/dist/ionic/p-Dy243NXW.js +4 -0
  831. package/dist/ionic/{p-CKvCXMs9.js → p-OkgYzj-7.js} +1 -1
  832. package/dist/ionic/p-YIsE5bNG.js +4 -0
  833. package/dist/ionic/p-a4af8e39.entry.js +4 -0
  834. package/dist/ionic/p-b2368a93.entry.js +4 -0
  835. package/dist/ionic/p-b275f17e.entry.js +4 -0
  836. package/dist/ionic/p-c5635175.entry.js +4 -0
  837. package/dist/ionic/p-c76d57fb.entry.js +4 -0
  838. package/dist/ionic/p-ca3a07b5.entry.js +4 -0
  839. package/dist/ionic/p-ced3cda1.entry.js +4 -0
  840. package/dist/ionic/p-cf22e991.entry.js +4 -0
  841. package/dist/ionic/p-d0c1d21d.entry.js +4 -0
  842. package/dist/ionic/p-d0d42da6.entry.js +4 -0
  843. package/dist/ionic/p-d33dfc12.entry.js +4 -0
  844. package/dist/ionic/p-d34bfb61.entry.js +4 -0
  845. package/dist/ionic/p-dbc08f67.entry.js +4 -0
  846. package/dist/ionic/p-dc8e0b91.entry.js +4 -0
  847. package/dist/ionic/p-df642ef5.entry.js +4 -0
  848. package/dist/ionic/p-e04d63e1.entry.js +4 -0
  849. package/dist/ionic/p-e3615478.entry.js +4 -0
  850. package/dist/ionic/p-f1810d29.entry.js +4 -0
  851. package/dist/ionic/p-f1a8aead.entry.js +4 -0
  852. package/dist/ionic/p-f69af9d3.entry.js +4 -0
  853. package/dist/ionic/p-f760f90e.entry.js +4 -0
  854. package/dist/ionic/p-f8001f8f.entry.js +4 -0
  855. package/dist/ionic/p-f8b63ebb.entry.js +4 -0
  856. package/dist/ionic/p-fIOYmaqA.js +4 -0
  857. package/dist/ionic/p-fc6d26ff.entry.js +4 -0
  858. package/dist/ionic/p-im8OkZlj.js +4 -0
  859. package/dist/ionic/p-lMb_45ax.js +4 -0
  860. package/dist/ionic/p-oUgyLDGL.js +4 -0
  861. package/dist/ionic/p-vXpMhGrs.js +4 -0
  862. package/dist/types/components/accordion/accordion.d.ts +6 -3
  863. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  864. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  865. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  866. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  867. package/dist/types/components/alert/alert.d.ts +3 -2
  868. package/dist/types/components/app/app.d.ts +4 -5
  869. package/dist/types/components/avatar/avatar.d.ts +32 -0
  870. package/dist/types/components/back-button/back-button.d.ts +2 -1
  871. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  872. package/dist/types/components/badge/badge.d.ts +34 -1
  873. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  874. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  875. package/dist/types/components/button/button.d.ts +23 -8
  876. package/dist/types/components/buttons/buttons.d.ts +5 -1
  877. package/dist/types/components/card/card.d.ts +8 -1
  878. package/dist/types/components/card-content/card-content.d.ts +2 -1
  879. package/dist/types/components/card-header/card-header.d.ts +3 -2
  880. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  881. package/dist/types/components/card-title/card-title.d.ts +2 -1
  882. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  883. package/dist/types/components/chip/chip.d.ts +26 -1
  884. package/dist/types/components/col/col.d.ts +52 -5
  885. package/dist/types/components/content/content.d.ts +3 -0
  886. package/dist/types/components/datetime/datetime.d.ts +26 -1
  887. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  888. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  889. package/dist/types/components/divider/divider.d.ts +20 -0
  890. package/dist/types/components/fab/fab.d.ts +4 -0
  891. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  892. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  893. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  894. package/dist/types/components/footer/footer.d.ts +20 -3
  895. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  896. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  897. package/dist/types/components/gallery/gallery.d.ts +218 -0
  898. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  899. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  900. package/dist/types/components/grid/grid.d.ts +4 -0
  901. package/dist/types/components/header/header-interface.d.ts +1 -0
  902. package/dist/types/components/header/header.d.ts +26 -3
  903. package/dist/types/components/header/header.utils.d.ts +4 -5
  904. package/dist/types/components/img/img.d.ts +3 -0
  905. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  906. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  907. package/dist/types/components/input/input.d.ts +34 -5
  908. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  909. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  910. package/dist/types/components/item/item.d.ts +11 -4
  911. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  912. package/dist/types/components/item-group/item-group.d.ts +4 -0
  913. package/dist/types/components/item-option/item-option.d.ts +18 -1
  914. package/dist/types/components/item-options/item-options.d.ts +4 -0
  915. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  916. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  917. package/dist/types/components/label/label.d.ts +2 -1
  918. package/dist/types/components/list/list.d.ts +15 -1
  919. package/dist/types/components/list-header/list-header.d.ts +2 -1
  920. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  921. package/dist/types/components/loading/loading.d.ts +3 -2
  922. package/dist/types/components/menu/menu.d.ts +3 -0
  923. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  924. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  925. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  926. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  927. package/dist/types/components/modal/gestures/sheet.d.ts +1 -2
  928. package/dist/types/components/modal/gestures/utils.d.ts +0 -11
  929. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  930. package/dist/types/components/modal/modal.d.ts +11 -2
  931. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  932. package/dist/types/components/nav/nav.d.ts +5 -1
  933. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  934. package/dist/types/components/note/note.d.ts +2 -1
  935. package/dist/types/components/picker/picker.d.ts +2 -1
  936. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  937. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  938. package/dist/types/components/picker-legacy/picker.d.ts +2 -1
  939. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  940. package/dist/types/components/popover/popover.d.ts +6 -5
  941. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  942. package/dist/types/components/radio/radio.d.ts +2 -1
  943. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  944. package/dist/types/components/range/range.d.ts +2 -1
  945. package/dist/types/components/refresher/refresher.d.ts +2 -1
  946. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  947. package/dist/types/components/reorder/reorder.d.ts +9 -0
  948. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  949. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  950. package/dist/types/components/route/route.d.ts +4 -0
  951. package/dist/types/components/router/router.d.ts +4 -0
  952. package/dist/types/components/router-link/router-link.d.ts +4 -0
  953. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  954. package/dist/types/components/row/row.d.ts +4 -0
  955. package/dist/types/components/searchbar/searchbar.d.ts +56 -10
  956. package/dist/types/components/segment/segment.d.ts +2 -1
  957. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  958. package/dist/types/components/select/select-interface.d.ts +31 -0
  959. package/dist/types/components/select/select.d.ts +66 -13
  960. package/dist/types/components/select-modal/select-modal.d.ts +8 -0
  961. package/dist/types/components/select-option/select-option.d.ts +45 -1
  962. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  963. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  964. package/dist/types/components/spinner/spinner.d.ts +15 -0
  965. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  966. package/dist/types/components/tab/tab.d.ts +4 -0
  967. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  968. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  969. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  970. package/dist/types/components/tabs/tabs.d.ts +3 -0
  971. package/dist/types/components/text/text.d.ts +2 -1
  972. package/dist/types/components/textarea/textarea.d.ts +53 -4
  973. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  974. package/dist/types/components/title/title.d.ts +4 -0
  975. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  976. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  977. package/dist/types/components/toast/toast.d.ts +19 -2
  978. package/dist/types/components/toggle/toggle.d.ts +15 -1
  979. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  980. package/dist/types/components.d.ts +1881 -210
  981. package/dist/types/global/ionic-global.d.ts +28 -2
  982. package/dist/types/interface.d.ts +3 -0
  983. package/dist/types/utils/config.d.ts +106 -2
  984. package/dist/types/utils/content/index.d.ts +0 -12
  985. package/dist/types/utils/css-value-validation.d.ts +21 -0
  986. package/dist/types/utils/focus-trap.d.ts +1 -1
  987. package/dist/types/utils/focus-visible.d.ts +13 -0
  988. package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
  989. package/dist/types/utils/forms/index.d.ts +1 -0
  990. package/dist/types/utils/forms/validity.d.ts +7 -0
  991. package/dist/types/utils/helpers.d.ts +22 -0
  992. package/dist/types/utils/overlay-control-label.d.ts +34 -0
  993. package/dist/types/utils/overlays-interface.d.ts +31 -1
  994. package/dist/types/utils/overlays.d.ts +1 -1
  995. package/dist/types/utils/sanitization/index.d.ts +58 -2
  996. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  997. package/dist/types/utils/select-option-render.d.ts +53 -0
  998. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  999. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  1000. package/dist/types/utils/theme.d.ts +9 -0
  1001. package/hydrate/index.js +6457 -1481
  1002. package/hydrate/index.mjs +6457 -1481
  1003. package/package.json +9 -5
  1004. package/components/p--JUspHvy.js +0 -4
  1005. package/components/p-A3O24YmY.js +0 -4
  1006. package/components/p-ABkNVeU9.js +0 -4
  1007. package/components/p-B-JJgYSG.js +0 -4
  1008. package/components/p-B9jFTlwE.js +0 -4
  1009. package/components/p-BLmJ0zRm.js +0 -4
  1010. package/components/p-BMI53wYL.js +0 -4
  1011. package/components/p-BMaKgJFV.js +0 -4
  1012. package/components/p-BSEgsdFI.js +0 -4
  1013. package/components/p-BlIAuGv2.js +0 -4
  1014. package/components/p-BmVRXR1y.js +0 -4
  1015. package/components/p-Bnsn6KaP.js +0 -4
  1016. package/components/p-BsBCoGa-.js +0 -4
  1017. package/components/p-BvmB20aD.js +0 -4
  1018. package/components/p-Bz0dSlXZ.js +0 -4
  1019. package/components/p-CHqRYvYm.js +0 -4
  1020. package/components/p-CIGNaXM1.js +0 -4
  1021. package/components/p-CO7fmmxt.js +0 -4
  1022. package/components/p-CQGnMY3n.js +0 -4
  1023. package/components/p-CSZf8_j0.js +0 -4
  1024. package/components/p-C_xFdyXe.js +0 -4
  1025. package/components/p-Cfx4M1Bn.js +0 -4
  1026. package/components/p-CkMSOsFF.js +0 -4
  1027. package/components/p-CmR5uXej.js +0 -4
  1028. package/components/p-Cp4GRDqq.js +0 -4
  1029. package/components/p-CsNJ1ULL.js +0 -4
  1030. package/components/p-CtWGkNnJ.js +0 -4
  1031. package/components/p-CzCbeKys.js +0 -4
  1032. package/components/p-D-aHdMxW.js +0 -4
  1033. package/components/p-D0d8qTwj.js +0 -4
  1034. package/components/p-D3xo7hqU.js +0 -4
  1035. package/components/p-D6Ynv7Xh.js +0 -4
  1036. package/components/p-D7uN07a3.js +0 -4
  1037. package/components/p-DCnGU1fF.js +0 -4
  1038. package/components/p-DGvrK8dD.js +0 -4
  1039. package/components/p-DJztqcrH.js +0 -4
  1040. package/components/p-DOFCbuQR.js +0 -4
  1041. package/components/p-DV5mPYQS.js +0 -4
  1042. package/components/p-DWkAgceV.js +0 -4
  1043. package/components/p-DiVJyqlX.js +0 -4
  1044. package/components/p-DqZAXv2t.js +0 -4
  1045. package/components/p-R8zmRi4c.js +0 -4
  1046. package/components/p-SLS1rDZM.js +0 -4
  1047. package/components/p-ZjP4CjeZ.js +0 -4
  1048. package/components/p-aJ6PBUvj.js +0 -4
  1049. package/components/p-gAg0kXZp.js +0 -4
  1050. package/components/p-j5IxBIan.js +0 -4
  1051. package/components/p-k_E4tX5Z.js +0 -4
  1052. package/components/p-oD4kcBRX.js +0 -4
  1053. package/components/p-rCa2eL0j.js +0 -4
  1054. package/components/p-scxfI1Dd.js +0 -4
  1055. package/components/p-vRBNsYbs.js +0 -4
  1056. package/components/p-yzCsOZE2.js +0 -4
  1057. package/dist/cjs/config-xninhj0J.js +0 -201
  1058. package/dist/cjs/hardware-back-button-iUuF_76h.js +0 -121
  1059. package/dist/cjs/index-DkNv4J_i.js +0 -10
  1060. package/dist/cjs/ionic-global-B-cA6LkY.js +0 -151
  1061. package/dist/cjs/keyboard-controller-GXBiBRKS.js +0 -167
  1062. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1063. package/dist/esm/config-DQCONYYp.js +0 -195
  1064. package/dist/esm/hardware-back-button-B93Gru0Y.js +0 -115
  1065. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  1066. package/dist/esm/ionic-global-Cp_eT4sZ.js +0 -146
  1067. package/dist/esm/keyboard-controller-BaaVITYt.js +0 -165
  1068. package/dist/esm/validity-DJztqcrH.js +0 -17
  1069. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  1070. package/dist/ionic/p-06c232a4.entry.js +0 -4
  1071. package/dist/ionic/p-0caa922c.entry.js +0 -4
  1072. package/dist/ionic/p-0dc33652.entry.js +0 -4
  1073. package/dist/ionic/p-0fa9c382.entry.js +0 -4
  1074. package/dist/ionic/p-10e833ef.entry.js +0 -4
  1075. package/dist/ionic/p-15c9319c.entry.js +0 -4
  1076. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  1077. package/dist/ionic/p-27d30585.entry.js +0 -4
  1078. package/dist/ionic/p-2a05aa64.entry.js +0 -4
  1079. package/dist/ionic/p-2b204c59.entry.js +0 -4
  1080. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  1081. package/dist/ionic/p-2fa58e80.entry.js +0 -4
  1082. package/dist/ionic/p-3353c229.entry.js +0 -4
  1083. package/dist/ionic/p-34586ead.entry.js +0 -4
  1084. package/dist/ionic/p-37e720da.entry.js +0 -4
  1085. package/dist/ionic/p-390ca786.entry.js +0 -4
  1086. package/dist/ionic/p-3ae5f277.entry.js +0 -4
  1087. package/dist/ionic/p-4654ae1c.entry.js +0 -4
  1088. package/dist/ionic/p-4745f534.entry.js +0 -4
  1089. package/dist/ionic/p-4858af1f.entry.js +0 -4
  1090. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  1091. package/dist/ionic/p-4e92a11f.entry.js +0 -4
  1092. package/dist/ionic/p-5018dfc8.entry.js +0 -4
  1093. package/dist/ionic/p-50e1194a.entry.js +0 -4
  1094. package/dist/ionic/p-5334df12.entry.js +0 -4
  1095. package/dist/ionic/p-5d1da0a2.entry.js +0 -4
  1096. package/dist/ionic/p-5eb8e86d.entry.js +0 -4
  1097. package/dist/ionic/p-65ebdf1b.entry.js +0 -4
  1098. package/dist/ionic/p-746fa988.entry.js +0 -4
  1099. package/dist/ionic/p-75dc25ba.entry.js +0 -4
  1100. package/dist/ionic/p-7c319341.entry.js +0 -4
  1101. package/dist/ionic/p-829367ed.entry.js +0 -4
  1102. package/dist/ionic/p-84d5ce05.entry.js +0 -4
  1103. package/dist/ionic/p-874b4bd8.entry.js +0 -4
  1104. package/dist/ionic/p-8eb8ee76.entry.js +0 -4
  1105. package/dist/ionic/p-9eeaBrnk.js +0 -4
  1106. package/dist/ionic/p-9f9db3a2.entry.js +0 -4
  1107. package/dist/ionic/p-BGqMS-oh.js +0 -4
  1108. package/dist/ionic/p-BUFIpxKM.js +0 -4
  1109. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1110. package/dist/ionic/p-CFlfIb2g.js +0 -4
  1111. package/dist/ionic/p-CIGNaXM1.js +0 -4
  1112. package/dist/ionic/p-CmcFnK-B.js +0 -4
  1113. package/dist/ionic/p-CtWGkNnJ.js +0 -4
  1114. package/dist/ionic/p-Cx3IXROA.js +0 -4
  1115. package/dist/ionic/p-D-3ycHmd.js +0 -4
  1116. package/dist/ionic/p-D4uTWt4-.js +0 -4
  1117. package/dist/ionic/p-DIuEbVLu.js +0 -4
  1118. package/dist/ionic/p-DJztqcrH.js +0 -4
  1119. package/dist/ionic/p-DV3sJJW8.js +0 -4
  1120. package/dist/ionic/p-DiVJyqlX.js +0 -4
  1121. package/dist/ionic/p-DoJvtrbw.js +0 -4
  1122. package/dist/ionic/p-DqN5EA2O.js +0 -4
  1123. package/dist/ionic/p-DzWaWHGc.js +0 -4
  1124. package/dist/ionic/p-KjNvRoEp.js +0 -4
  1125. package/dist/ionic/p-Nqf6uvGh.js +0 -4
  1126. package/dist/ionic/p-SNAkTDfm.js +0 -4
  1127. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  1128. package/dist/ionic/p-a3bdcae6.entry.js +0 -4
  1129. package/dist/ionic/p-aaeedb6b.entry.js +0 -4
  1130. package/dist/ionic/p-af55a72f.entry.js +0 -4
  1131. package/dist/ionic/p-b2020591.entry.js +0 -4
  1132. package/dist/ionic/p-b9fadbfe.entry.js +0 -4
  1133. package/dist/ionic/p-biz8zWmJ.js +0 -4
  1134. package/dist/ionic/p-c0fb8edd.entry.js +0 -4
  1135. package/dist/ionic/p-c38b648e.entry.js +0 -4
  1136. package/dist/ionic/p-c4d8641b.entry.js +0 -4
  1137. package/dist/ionic/p-c6e49f3f.entry.js +0 -4
  1138. package/dist/ionic/p-ca2ab74d.entry.js +0 -4
  1139. package/dist/ionic/p-d1aac015.entry.js +0 -4
  1140. package/dist/ionic/p-d889ff6d.entry.js +0 -4
  1141. package/dist/ionic/p-dfa8d673.entry.js +0 -4
  1142. package/dist/ionic/p-ef4c3bee.entry.js +0 -4
  1143. package/dist/ionic/p-f386f6ae.entry.js +0 -4
  1144. package/dist/ionic/p-mjKAFv89.js +0 -4
  1145. package/dist/ionic/p-tcQvqkiX.js +0 -5
  1146. package/dist/ionic/p-uWtqTrG8.js +0 -4
  1147. package/dist/ionic/p-viFHDgRs.js +0 -4
  1148. package/dist/ionic/p-xWb6fgfq.js +0 -4
  1149. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -1,24 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-tcQvqkiX.js';
5
- import { i as isIonContent, f as findRefresherInContent, a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY, b as findIonContent, p as printIonContentErrorMsg } from './index-Dw-wN0Ja.js';
6
- import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-FnPGymXL.js';
7
- import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-HEqiOzXb.js';
4
+ import { r as registerInstance, c as createEvent, f as printIonWarning, w as writeTask, e as config, h, d as Host, g as getElement } from './index-C0EQceqV.js';
5
+ import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-KxK0gcRp.js';
6
+ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-DO2QXccA.js';
7
+ import { g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-DfF5_wJc.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
- import { g as getCapacitor } from './capacitor-CFERIeaU.js';
10
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-Dg0q2_tJ.js';
11
- import { g as getClassMap } from './theme-DiVJyqlX.js';
12
- import { e as deepReady, w as waitForMount } from './index-B_dQk_WE.js';
13
- import { b as getIonMode } from './ionic-global-Cp_eT4sZ.js';
14
- import { KEYBOARD_DID_OPEN } from './keyboard-ywgs5efA.js';
15
- import { c as createAnimation } from './animation-DLJpuoEz.js';
9
+ import { g as getCapacitor } from './capacitor-CtQSWUU0.js';
10
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-tv6nLsmk.js';
11
+ import { g as getClassMap } from './theme-DaJxRxSQ.js';
12
+ import { e as deepReady, w as waitForMount } from './index-BIUWGRUl.js';
13
+ import { w as win, b as getIonMode, c as getIonTheme } from './ionic-global-BpkTponr.js';
14
+ import { KEYBOARD_DID_OPEN } from './keyboard-WJix-wcz.js';
15
+ import { c as createAnimation } from './animation-B2qdQ_ou.js';
16
16
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
17
17
  import { createGesture } from './index-CfgBF1SE.js';
18
- import { w as win } from './index-ZjP4CjeZ.js';
19
- import './hardware-back-button-B93Gru0Y.js';
18
+ import './focus-visible-vXpMhGrs.js';
20
19
  import './gesture-controller-BTEOs1at.js';
21
- import './keyboard-CUw4ekVy.js';
20
+ import './keyboard-CyyguLDw.js';
22
21
 
23
22
  var Style;
24
23
  (function (Style) {
@@ -127,21 +126,104 @@ const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
127
126
  StatusBar.setStyle({ style: defaultStyle });
128
127
  };
129
128
 
129
+ const createSheetEnterAnimation = (opts) => {
130
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
131
+ /**
132
+ * If the backdropBreakpoint is undefined, then the backdrop
133
+ * should always fade in. If the backdropBreakpoint came before the
134
+ * current breakpoint, then the backdrop should be fading in.
135
+ */
136
+ const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
137
+ let initialBackdrop = '0';
138
+ if (staticBackdropOpacity) {
139
+ initialBackdrop = 'calc(var(--backdrop-opacity)';
140
+ }
141
+ else if (shouldShowBackdrop) {
142
+ initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
143
+ }
144
+ const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
145
+ if (shouldShowBackdrop) {
146
+ backdropAnimation
147
+ .beforeStyles({
148
+ 'pointer-events': 'none',
149
+ })
150
+ .afterClearStyles(['pointer-events']);
151
+ }
152
+ const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
153
+ { offset: 0, opacity: 1, transform: 'translateY(100%)' },
154
+ { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
155
+ ]);
156
+ /**
157
+ * This allows the content to be scrollable at any breakpoint.
158
+ */
159
+ const contentAnimation = !expandToScroll
160
+ ? createAnimation('contentAnimation').keyframes([
161
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
162
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
163
+ ])
164
+ : undefined;
165
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
166
+ };
167
+ const createSheetLeaveAnimation = (opts) => {
168
+ const { currentBreakpoint, backdropBreakpoint } = opts;
169
+ /**
170
+ * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
171
+ * is defined, so we need to account for that offset by figuring out
172
+ * what the current backdrop value should be.
173
+ */
174
+ const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
175
+ const defaultBackdrop = [
176
+ { offset: 0, opacity: backdropValue },
177
+ { offset: 1, opacity: 0 },
178
+ ];
179
+ const customBackdrop = [
180
+ { offset: 0, opacity: backdropValue },
181
+ { offset: backdropBreakpoint, opacity: 0 },
182
+ { offset: 1, opacity: 0 },
183
+ ];
184
+ const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
185
+ const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
186
+ { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
187
+ { offset: 1, opacity: 1, transform: `translateY(100%)` },
188
+ ]);
189
+ return { wrapperAnimation, backdropAnimation };
190
+ };
191
+
192
+ const createEnterAnimation$2 = () => {
193
+ const backdropAnimation = createAnimation()
194
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
195
+ .beforeStyles({
196
+ 'pointer-events': 'none',
197
+ })
198
+ .afterClearStyles(['pointer-events']);
199
+ const wrapperAnimation = createAnimation().keyframes([
200
+ { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
201
+ { offset: 1, opacity: 1, transform: `translateY(0px)` },
202
+ ]);
203
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
204
+ };
130
205
  /**
131
- * Swiping is only possible when the content is scrolled to the top, so that we
132
- * do not interfere with scrolling, and never on content with a refresher.
133
- *
134
- * Note: We cannot solve the refresher case with gesture priority as the iOS
135
- * native refresh gesture uses a scroll listener in addition to a gesture.
136
- *
137
- * Note: Do not use `getScrollElement` here because we need this to be a
138
- * synchronous operation, and `getScrollElement` is asynchronous.
206
+ * Ionic Modal Enter Animation
139
207
  */
140
- const canSwipeOnContent = (contentEl) => {
141
- const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
142
- const hasRefresherInContent = !!findRefresherInContent(contentEl);
143
- return !hasRefresherInContent && scrollEl.scrollTop === 0;
208
+ const ionicEnterAnimation = (baseEl, opts) => {
209
+ const { currentBreakpoint, expandToScroll } = opts;
210
+ const root = getElementRoot(baseEl);
211
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
212
+ backdropAnimation.addElement(root.querySelector('ion-backdrop'));
213
+ wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
214
+ // The content animation is only added if scrolling is enabled for
215
+ // all the breakpoints.
216
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
217
+ backdropAnimation.duration(300).easing('ease-out');
218
+ wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
219
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
220
+ const baseAnimation = createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
221
+ if (contentAnimation) {
222
+ baseAnimation.addAnimation(contentAnimation);
223
+ }
224
+ return baseAnimation;
144
225
  };
226
+
145
227
  const handleCanDismiss = async (el, animation) => {
146
228
  /**
147
229
  * If canDismiss is not a function
@@ -272,6 +354,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
272
354
  let isOpen = false;
273
355
  let canDismissBlocksGesture = false;
274
356
  let contentEl = null;
357
+ let scrollEl = null;
275
358
  const canDismissMaxStep = 0.2;
276
359
  let initialScrollY = true;
277
360
  let lastStep = 0;
@@ -294,6 +377,12 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
294
377
  return true;
295
378
  }
296
379
  /**
380
+ * If we are swiping on the content,
381
+ * swiping should only be possible if
382
+ * the content is scrolled all the way
383
+ * to the top so that we do not interfere
384
+ * with scrolling.
385
+ *
297
386
  * We cannot assume that the `ion-content`
298
387
  * target will remain consistent between
299
388
  * swipes. For example, when using
@@ -304,7 +393,29 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
304
393
  */
305
394
  contentEl = findClosestIonContent(target);
306
395
  if (contentEl) {
307
- return canSwipeOnContent(contentEl);
396
+ /**
397
+ * The card should never swipe to close
398
+ * on the content with a refresher.
399
+ * Note: We cannot solve this by making the
400
+ * swipeToClose gesture have a higher priority
401
+ * than the refresher gesture as the iOS native
402
+ * refresh gesture uses a scroll listener in
403
+ * addition to a gesture.
404
+ *
405
+ * Note: Do not use getScrollElement here
406
+ * because we need this to be a synchronous
407
+ * operation, and getScrollElement is
408
+ * asynchronous.
409
+ */
410
+ if (isIonContent(contentEl)) {
411
+ const root = getElementRoot(contentEl);
412
+ scrollEl = root.querySelector('.inner-scroll');
413
+ }
414
+ else {
415
+ scrollEl = contentEl;
416
+ }
417
+ const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
418
+ return !hasRefresherInContent && scrollEl.scrollTop === 0;
308
419
  }
309
420
  /**
310
421
  * Card should be swipeable on all
@@ -546,63 +657,6 @@ const calculateProgress = (el, deltaY) => {
546
657
  return Math.max(0, Math.min(1, roundedProgress));
547
658
  };
548
659
 
549
- const createSheetEnterAnimation = (opts) => {
550
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
551
- /**
552
- * If the backdropBreakpoint is undefined, then the backdrop
553
- * should always fade in. If the backdropBreakpoint came before the
554
- * current breakpoint, then the backdrop should be fading in.
555
- */
556
- const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
557
- const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
558
- const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
559
- if (shouldShowBackdrop) {
560
- backdropAnimation
561
- .beforeStyles({
562
- 'pointer-events': 'none',
563
- })
564
- .afterClearStyles(['pointer-events']);
565
- }
566
- const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
567
- { offset: 0, opacity: 1, transform: 'translateY(100%)' },
568
- { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
569
- ]);
570
- /**
571
- * This allows the content to be scrollable at any breakpoint.
572
- */
573
- const contentAnimation = !expandToScroll
574
- ? createAnimation('contentAnimation').keyframes([
575
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
576
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
577
- ])
578
- : undefined;
579
- return { wrapperAnimation, backdropAnimation, contentAnimation };
580
- };
581
- const createSheetLeaveAnimation = (opts) => {
582
- const { currentBreakpoint, backdropBreakpoint } = opts;
583
- /**
584
- * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
585
- * is defined, so we need to account for that offset by figuring out
586
- * what the current backdrop value should be.
587
- */
588
- const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
589
- const defaultBackdrop = [
590
- { offset: 0, opacity: backdropValue },
591
- { offset: 1, opacity: 0 },
592
- ];
593
- const customBackdrop = [
594
- { offset: 0, opacity: backdropValue },
595
- { offset: backdropBreakpoint, opacity: 0 },
596
- { offset: 1, opacity: 0 },
597
- ];
598
- const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
599
- const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([
600
- { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
601
- { offset: 1, opacity: 1, transform: `translateY(100%)` },
602
- ]);
603
- return { wrapperAnimation, backdropAnimation };
604
- };
605
-
606
660
  const createEnterAnimation$1 = () => {
607
661
  const backdropAnimation = createAnimation()
608
662
  .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
@@ -993,17 +1047,16 @@ const mdLeaveAnimation = (baseEl, opts) => {
993
1047
  return baseAnimation;
994
1048
  };
995
1049
 
996
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, onDragStart, onDragMove, onDragEnd) => {
997
- var _a;
1050
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, usePhysicsBasedGesture, onDragStart, onDragMove, onDragEnd) => {
998
1051
  // Defaults for the sheet swipe animation
999
1052
  const defaultBackdrop = [
1000
1053
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1001
- { offset: 1, opacity: 0.01 },
1054
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0.01 },
1002
1055
  ];
1003
1056
  const customBackdrop = [
1004
1057
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1005
- { offset: 1 - backdropBreakpoint, opacity: 0 },
1006
- { offset: 1, opacity: 0 },
1058
+ { offset: 1 - backdropBreakpoint, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1059
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1007
1060
  ];
1008
1061
  const SheetDefaults = {
1009
1062
  WRAPPER_KEYFRAMES: [
@@ -1017,8 +1070,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1017
1070
  ],
1018
1071
  };
1019
1072
  const contentEl = baseEl.querySelector('ion-content');
1020
- // Cache the initial value so the gesture restores it instead of forcing scrolling on.
1021
- const initialContentScrollY = (_a = contentEl === null || contentEl === void 0 ? void 0 : contentEl.scrollY) !== null && _a !== void 0 ? _a : true;
1022
1073
  const height = wrapperEl.clientHeight;
1023
1074
  let currentBreakpoint = initialBreakpoint;
1024
1075
  let offset = 0;
@@ -1179,6 +1230,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1179
1230
  }
1180
1231
  const canStart = (detail) => {
1181
1232
  /**
1233
+ * If we are swiping on the content, swiping should only be possible if the content
1234
+ * is scrolled all the way to the top so that we do not interfere with scrolling.
1235
+ *
1182
1236
  * We cannot assume that the `ion-content` target will remain consistent between swipes.
1183
1237
  * For example, when using ion-nav within a modal it is possible to swipe, push a view,
1184
1238
  * and then swipe again. The target content will not be the same between swipes.
@@ -1186,11 +1240,26 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1186
1240
  const contentEl = findClosestIonContent(detail.event.target);
1187
1241
  currentBreakpoint = getCurrentBreakpoint();
1188
1242
  /**
1189
- * Upwards swipes on the content cannot move the sheet anyway, so this only
1190
- * blocks swiping the sheet down from the content.
1243
+ * If `expandToScroll` is disabled, we should not allow the swipe gesture
1244
+ * to start if the content is not scrolled to the top.
1191
1245
  */
1192
- if (contentEl && (!expandToScroll || currentBreakpoint === 1)) {
1193
- return canSwipeOnContent(contentEl);
1246
+ if (!expandToScroll && contentEl) {
1247
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1248
+ return scrollEl.scrollTop === 0;
1249
+ }
1250
+ if (currentBreakpoint === 1 && contentEl) {
1251
+ /**
1252
+ * The modal should never swipe to close on the content with a refresher.
1253
+ * Note 1: We cannot solve this by making this gesture have a higher priority than
1254
+ * the refresher gesture as the iOS native refresh gesture uses a scroll listener in
1255
+ * addition to a gesture.
1256
+ *
1257
+ * Note 2: Do not use getScrollElement here because we need this to be a synchronous
1258
+ * operation, and getScrollElement is asynchronous.
1259
+ */
1260
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1261
+ const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
1262
+ return !hasRefresherInContent && scrollEl.scrollTop === 0;
1194
1263
  }
1195
1264
  return true;
1196
1265
  };
@@ -1317,7 +1386,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1317
1386
  : step;
1318
1387
  offset = clamp(0.0001, processedStep, maxStep);
1319
1388
  animation.progressStep(offset);
1320
- const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1389
+ const snapBreakpoint = usePhysicsBasedGesture
1390
+ ? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1391
+ : calculatePositionSnapBreakpoint(detail.deltaY);
1321
1392
  const eventDetail = {
1322
1393
  currentY: detail.currentY,
1323
1394
  deltaY: detail.deltaY,
@@ -1328,7 +1399,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1328
1399
  onDragMove(eventDetail);
1329
1400
  };
1330
1401
  const onEnd = (detail) => {
1331
- const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
1402
+ const snapBreakpoint = usePhysicsBasedGesture
1403
+ ? calculateVelocitySnapBreakpoint(detail.deltaY, detail.velocityY, detail.currentY)
1404
+ : calculatePositionSnapBreakpoint(detail.deltaY);
1332
1405
  const eventDetail = {
1333
1406
  currentY: detail.currentY,
1334
1407
  deltaY: detail.deltaY,
@@ -1375,6 +1448,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1375
1448
  */
1376
1449
  const shouldPreventDismiss = canDismiss && breakpoint === 0;
1377
1450
  const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
1451
+ /**
1452
+ * Detect snap-back behavior: when the snap target is the same as the current breakpoint,
1453
+ * the user released before crossing the threshold to a new breakpoint.
1454
+ * Apply different timing and easing for snap-back vs. snap-to-new.
1455
+ */
1456
+ const isSnapBack = snapToBreakpoint === currentBreakpoint;
1457
+ const duration = usePhysicsBasedGesture ? (isSnapBack ? 300 : 400) : 500;
1458
+ const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
1378
1459
  const shouldRemainOpen = snapToBreakpoint !== 0;
1379
1460
  currentBreakpoint = 0;
1380
1461
  /**
@@ -1389,11 +1470,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1389
1470
  backdropAnimation.keyframes([
1390
1471
  {
1391
1472
  offset: 0,
1392
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1473
+ opacity: usePhysicsBasedGesture
1474
+ ? 'var(--backdrop-opacity)'
1475
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1393
1476
  },
1394
1477
  {
1395
1478
  offset: 1,
1396
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1479
+ opacity: usePhysicsBasedGesture
1480
+ ? 'var(--backdrop-opacity)'
1481
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1397
1482
  },
1398
1483
  ]);
1399
1484
  if (contentAnimation) {
@@ -1411,6 +1496,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1411
1496
  }
1412
1497
  animation.progressStep(0);
1413
1498
  }
1499
+ /**
1500
+ * Apply the appropriate easing curve for this snap behavior.
1501
+ */
1502
+ if (usePhysicsBasedGesture) {
1503
+ animation.easing(easing);
1504
+ }
1414
1505
  /**
1415
1506
  * Gesture should remain disabled until the
1416
1507
  * snapping animation completes.
@@ -1423,14 +1514,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1423
1514
  onDismiss();
1424
1515
  }
1425
1516
  /**
1426
- * Restores the content's scroll setting immediately if the sheet is about to
1427
- * fully expand or if it allows scrolling at any breakpoint. Without this, there would
1517
+ * Enables scrolling immediately if the sheet is about to fully expand
1518
+ * or if it allows scrolling at any breakpoint. Without this, there would
1428
1519
  * be a ~500ms delay while the modal animation completes, causing a
1429
1520
  * noticeable lag. Native iOS allows scrolling as soon as the gesture is
1430
1521
  * released, so we align with that behavior.
1431
1522
  */
1432
1523
  if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
1433
- contentEl.scrollY = initialContentScrollY;
1524
+ contentEl.scrollY = true;
1434
1525
  }
1435
1526
  /**
1436
1527
  * If expandToScroll is disabled and we're animating
@@ -1500,7 +1591,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1500
1591
  * be added every time onEnd runs.
1501
1592
  */
1502
1593
  }, { oneTimeCallback: true })
1503
- .progressEnd(1, 0, animated ? 500 : 0);
1594
+ .progressEnd(1, 0, animated ? duration : 0);
1504
1595
  });
1505
1596
  };
1506
1597
  /**
@@ -1511,7 +1602,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1511
1602
  * @param deltaY The change in Y position since the gesture started.
1512
1603
  * @returns The snap breakpoint value.
1513
1604
  */
1514
- const calculateSnapBreakpoint = (deltaY) => {
1605
+ const calculatePositionSnapBreakpoint = (deltaY) => {
1515
1606
  /**
1516
1607
  * Calculates the real-time vertical position of the modal.
1517
1608
  * We combine the wrapper's current bounding box position with the
@@ -1531,6 +1622,50 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1531
1622
  });
1532
1623
  return snapBreakpoint;
1533
1624
  };
1625
+ /**
1626
+ * Calculates the snap breakpoint using velocity-based logic.
1627
+ * This provides a more intuitive and responsive sheet behavior for the Ionic theme.
1628
+ *
1629
+ * Rules:
1630
+ * 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
1631
+ * 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
1632
+ * 3. If dragged 40% below current snap point without fast upward flick, dismisses
1633
+ * 4. Otherwise, falls back to position-based snap (closest breakpoint)
1634
+ *
1635
+ * @param deltaY The change in Y position since gesture started
1636
+ * @param velocityY The velocity in pixels per millisecond
1637
+ * @param currentY The current Y position of the gesture
1638
+ * @returns The snap breakpoint value
1639
+ */
1640
+ const calculateVelocitySnapBreakpoint = (deltaY, velocityY, currentY) => {
1641
+ // Convert velocity from px/ms to px/s for easier threshold comparison
1642
+ const velocityYPerSecond = velocityY * 1000;
1643
+ // Calculate current progress (0 = fully closed, 1 = fully expanded)
1644
+ const currentProgress = calculateProgress(currentY);
1645
+ // Rule 1: Fast downward flick always dismisses
1646
+ if (velocityYPerSecond > 500) {
1647
+ return minBreakpoint;
1648
+ }
1649
+ // Rule 2: Fast upward flick moves to next breakpoint above
1650
+ if (velocityYPerSecond < -400) {
1651
+ // Find next breakpoint above current position
1652
+ const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
1653
+ // If no breakpoint above, stay at max breakpoint
1654
+ return nextBreakpoint !== null && nextBreakpoint !== void 0 ? nextBreakpoint : maxBreakpoint;
1655
+ }
1656
+ // Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
1657
+ if (minBreakpoint === 0 && currentBreakpoint > 0) {
1658
+ // Calculate how far we've moved below the current snap point
1659
+ const distanceBelowSnap = currentBreakpoint - currentProgress;
1660
+ const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
1661
+ // If dragged more than 40% below and not flicking up, dismiss
1662
+ if (percentageBelowSnap > 0.4 && velocityYPerSecond <= 400) {
1663
+ return 0;
1664
+ }
1665
+ }
1666
+ // Rule 4: Fallback to position-based snap (existing logic)
1667
+ return calculatePositionSnapBreakpoint(deltaY);
1668
+ };
1534
1669
  /**
1535
1670
  * Calculates the progress of the swipe gesture.
1536
1671
  *
@@ -1612,20 +1747,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1612
1747
  onMove,
1613
1748
  onEnd,
1614
1749
  });
1615
- /**
1616
- * Puts the content back the way the app declared it. A sheet can dismiss
1617
- * without going through moveSheetToBreakpoint, and an inline modal reuses
1618
- * the same element on the next present.
1619
- */
1620
- const resetContentScroll = () => {
1621
- if (contentEl) {
1622
- contentEl.scrollY = initialContentScrollY;
1623
- }
1624
- };
1625
1750
  return {
1626
1751
  gesture,
1627
1752
  moveSheetToBreakpoint,
1628
- resetContentScroll,
1629
1753
  };
1630
1754
  };
1631
1755
 
@@ -1815,9 +1939,11 @@ const clearSafeAreaOverrides = (hostEl) => {
1815
1939
  hostEl.style.removeProperty('--ion-safe-area-right');
1816
1940
  };
1817
1941
 
1818
- 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}`;
1942
+ 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)))}`;
1819
1943
 
1820
- 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}`;
1944
+ 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}`;
1945
+
1946
+ 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}`;
1821
1947
 
1822
1948
  const Modal = class {
1823
1949
  constructor(hostRef) {
@@ -2257,11 +2383,12 @@ const Modal = class {
2257
2383
  this.statusBarStyle = await StatusBar.getStyle();
2258
2384
  setCardStatusBarDark();
2259
2385
  }
2260
- await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
2386
+ await present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
2261
2387
  presentingEl: presentingElement,
2262
2388
  currentBreakpoint: this.initialBreakpoint,
2263
2389
  backdropBreakpoint: this.backdropBreakpoint,
2264
2390
  expandToScroll: this.expandToScroll,
2391
+ staticBackdropOpacity: getIonTheme(this) === 'ionic',
2265
2392
  });
2266
2393
  // Update safe-area based on actual position after animation
2267
2394
  this.updateSafeAreaOverrides();
@@ -2344,17 +2471,17 @@ const Modal = class {
2344
2471
  currentBreakpoint: initialBreakpoint,
2345
2472
  backdropBreakpoint,
2346
2473
  expandToScroll: this.expandToScroll,
2474
+ staticBackdropOpacity: getIonTheme(this) === 'ionic',
2347
2475
  }));
2348
2476
  ani.progressStart(true, 1);
2349
- 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) => {
2477
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
2350
2478
  if (this.currentBreakpoint !== breakpoint) {
2351
2479
  this.currentBreakpoint = breakpoint;
2352
2480
  this.ionBreakpointDidChange.emit({ breakpoint });
2353
2481
  }
2354
- }, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2482
+ }, getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2355
2483
  this.gesture = gesture;
2356
2484
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
2357
- this.resetSheetContentScroll = resetContentScroll;
2358
2485
  this.gesture.enable(true);
2359
2486
  /**
2360
2487
  * When backdrop interaction is allowed, nested router outlets from child routes
@@ -2486,7 +2613,7 @@ const Modal = class {
2486
2613
  * For example, `cancel` or `backdrop`.
2487
2614
  */
2488
2615
  async dismiss(data, role) {
2489
- var _a, _b;
2616
+ var _a;
2490
2617
  if (this.gestureAnimationDismissing && role !== GESTURE) {
2491
2618
  return false;
2492
2619
  }
@@ -2545,13 +2672,6 @@ const Modal = class {
2545
2672
  if (this.gesture) {
2546
2673
  this.gesture.destroy();
2547
2674
  }
2548
- /**
2549
- * The sheet gesture turns content scrolling off while the sheet sits below
2550
- * the top breakpoint. Inline modals reuse the same content on the next
2551
- * present, so hand it back before the gesture goes away.
2552
- */
2553
- (_b = this.resetSheetContentScroll) === null || _b === void 0 ? void 0 : _b.call(this);
2554
- this.resetSheetContentScroll = undefined;
2555
2675
  this.cleanupViewTransitionListener();
2556
2676
  this.cleanupParentRemovalObserver();
2557
2677
  this.cleanupSafeAreaOverrides();
@@ -2631,6 +2751,18 @@ const Modal = class {
2631
2751
  await this.setCurrentBreakpoint(nextBreakpoint);
2632
2752
  return true;
2633
2753
  }
2754
+ getShape() {
2755
+ const theme = getIonTheme(this);
2756
+ const { shape } = this;
2757
+ // TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
2758
+ if (theme !== 'ionic') {
2759
+ return undefined;
2760
+ }
2761
+ if (shape === undefined) {
2762
+ return 'round';
2763
+ }
2764
+ return shape;
2765
+ }
2634
2766
  initViewTransitionListener() {
2635
2767
  // Only enable for iOS card modals when no custom animations are provided
2636
2768
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -2964,15 +3096,16 @@ const Modal = class {
2964
3096
  render() {
2965
3097
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
2966
3098
  const showHandle = handle !== false && isSheetModal;
2967
- const mode = getIonMode(this);
2968
- const isCardModal = presentingElement !== undefined && mode === 'ios';
3099
+ const theme = getIonTheme(this);
3100
+ const isCardModal = presentingElement !== undefined && theme === 'ios';
2969
3101
  const isHandleCycle = handleBehavior === 'cycle';
3102
+ const shape = this.getShape();
2970
3103
  const isSheetModalWithHandle = isSheetModal && showHandle;
2971
- return (h(Host, Object.assign({ key: '09f09a10d858e976bc2a989f30db925348a7784c', "no-router": true,
3104
+ return (h(Host, Object.assign({ key: 'aa0c8c6926534d17df0b76ba0c3bad143f22f577', "no-router": true,
2972
3105
  // Allow the modal to be navigable when the handle is focusable
2973
3106
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2974
3107
  zIndex: `${20000 + this.overlayIndex}`,
2975
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'b197319bdddf0b979ccacdb63dbceccfd9bf2560', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'c848ff6a10e9092cdb10a6f21c9a299a72b17ca9', class: "modal-shadow" }), h("div", Object.assign({ key: 'e7c8e67807d49098aba63dce69a1bbf9647bbab6',
3108
+ }, class: Object.assign({ [theme]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-${shape}`]: shape !== undefined, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: '9d9421370a86dbe4bb4ff27681f22bea168d7297', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme === 'ios' && h("div", { key: '9a4e349ed6234bf18c07995fcd97dd0e1d65a2bd', class: "modal-shadow" }), h("div", Object.assign({ key: '3649cb4a4b63f4335f607b7fe7b6048a6742c9c4',
2976
3109
  /*
2977
3110
  role and aria-modal must be used on the
2978
3111
  same element. They must also be set inside the
@@ -2985,9 +3118,9 @@ const Modal = class {
2985
3118
  without the tabindex focus() would be a no-op and screen readers
2986
3119
  may not properly announce the dialog and its content when it opens.
2987
3120
  */
2988
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '0851cc75ee7367e13d1993a9c4d8b1b4de1d3bf0', class: "modal-handle",
3121
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e12aa8cdea0657254dec4534a52d79bd00fa7351', class: "modal-handle",
2989
3122
  // Prevents the handle from receiving keyboard focus when it does not cycle
2990
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: 'b4d9bc13dc0867e858db8e1c7277bd09b7fce44c', onSlotchange: this.onSlotChange }))));
3123
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", "data-focus-order": "1", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '744f526d2a1111a936a517dfad4ae0b2551cf834', onSlotchange: this.onSlotChange }))));
2991
3124
  }
2992
3125
  get el() { return getElement(this); }
2993
3126
  static get watchers() { return {
@@ -3009,6 +3142,7 @@ const LIFECYCLE_MAP = {
3009
3142
  ionModalDidDismiss: 'ionViewDidLeave',
3010
3143
  };
3011
3144
  Modal.style = {
3145
+ ionic: modalIonicCss(),
3012
3146
  ios: modalIosCss(),
3013
3147
  md: modalMdCss()
3014
3148
  };