@ionic/core 9.0.10 → 9.0.11-dev.11793705116.185a3203

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 (1100) 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.js +1 -1
  65. package/components/ion-popover.js +1 -1
  66. package/components/ion-progress-bar.js +1 -1
  67. package/components/ion-radio-group.js +1 -1
  68. package/components/ion-radio.js +1 -1
  69. package/components/ion-range.js +1 -1
  70. package/components/ion-refresher-content.js +1 -1
  71. package/components/ion-refresher.js +1 -1
  72. package/components/ion-reorder-group.js +1 -1
  73. package/components/ion-reorder.js +1 -1
  74. package/components/ion-ripple-effect.js +1 -1
  75. package/components/ion-route-redirect.js +1 -1
  76. package/components/ion-route.js +1 -1
  77. package/components/ion-router-link.js +1 -1
  78. package/components/ion-router-outlet.js +1 -1
  79. package/components/ion-router.js +1 -1
  80. package/components/ion-row.js +1 -1
  81. package/components/ion-searchbar.js +1 -1
  82. package/components/ion-segment-button.js +1 -1
  83. package/components/ion-segment-content.js +1 -1
  84. package/components/ion-segment-view.js +1 -1
  85. package/components/ion-segment.js +1 -1
  86. package/components/ion-select-modal.js +1 -1
  87. package/components/ion-select-option.js +1 -1
  88. package/components/ion-select-popover.js +1 -1
  89. package/components/ion-select.js +1 -1
  90. package/components/ion-skeleton-text.js +1 -1
  91. package/components/ion-spinner.js +1 -1
  92. package/components/ion-split-pane.js +1 -1
  93. package/components/ion-tab-bar.js +1 -1
  94. package/components/ion-tab-button.js +1 -1
  95. package/components/ion-tab.js +1 -1
  96. package/components/ion-tabs.js +1 -1
  97. package/components/ion-text.js +1 -1
  98. package/components/ion-textarea.js +1 -1
  99. package/components/ion-thumbnail.js +1 -1
  100. package/components/ion-title.js +1 -1
  101. package/components/ion-toast.js +1 -1
  102. package/components/ion-toggle.js +1 -1
  103. package/components/ion-toolbar.js +1 -1
  104. package/components/p-0rXxxCTt.js +4 -0
  105. package/components/p-3Qs1sQxU.js +4 -0
  106. package/components/p-3SVb97od.js +4 -0
  107. package/components/p-7-zF1amS.js +4 -0
  108. package/components/p-AgF3xGwz.js +4 -0
  109. package/components/{p-ChkSQqfP.js → p-B8TMb1l1.js} +1 -1
  110. package/{dist/ionic/p-BO10QT9r.js → components/p-BCQSEpww.js} +1 -1
  111. package/components/p-BCYVFy50.js +4 -0
  112. package/components/p-BHiggB_l.js +4 -0
  113. package/components/p-BNBa8_Ls.js +4 -0
  114. package/components/p-BNV7BMZo.js +4 -0
  115. package/components/p-BUF_V-Kg.js +4 -0
  116. package/components/p-BYk20Mf5.js +4 -0
  117. package/components/p-B_o50gvn.js +4 -0
  118. package/components/p-BfDzKnZ-.js +4 -0
  119. package/{dist/ionic/p-BWKtcudz.js → components/p-BmfO2-NE.js} +1 -1
  120. package/components/{p-BWbz71uB.js → p-BmnPbSf3.js} +1 -1
  121. package/components/p-ByE0slik.js +4 -0
  122. package/components/p-C0H1LYQ5.js +4 -0
  123. package/components/p-C7BPrXxF.js +4 -0
  124. package/components/p-C93i7QCU.js +4 -0
  125. package/components/p-C9qQ2zBV.js +4 -0
  126. package/components/p-CAekGbOf.js +4 -0
  127. package/components/p-CE7N7-7s.js +4 -0
  128. package/components/p-CL3vSQL7.js +4 -0
  129. package/components/p-CODBQrPj.js +4 -0
  130. package/components/{p-Dbi3KqKm.js → p-CSSj6cqb.js} +1 -1
  131. package/components/{p-ChsJlFCQ.js → p-CXzJ234J.js} +1 -1
  132. package/components/p-CehdCO1m.js +4 -0
  133. package/components/{p-CwEis84J.js → p-CiEBXUnh.js} +1 -1
  134. package/components/p-CvxND1-3.js +4 -0
  135. package/components/p-CyvtM0H1.js +4 -0
  136. package/components/p-CzDkZh7h.js +4 -0
  137. package/components/p-DEh2reav.js +4 -0
  138. package/components/p-DFBWAYvo.js +4 -0
  139. package/components/p-DFjX2uxL.js +4 -0
  140. package/components/p-DLXAGW46.js +4 -0
  141. package/components/p-DQwGbYN_.js +4 -0
  142. package/components/p-DRpeTf7R.js +4 -0
  143. package/components/p-DbKRl9BQ.js +4 -0
  144. package/components/{p-07wRJfkt.js → p-Dce65ayP.js} +1 -1
  145. package/components/p-DdOVnjsY.js +4 -0
  146. package/components/p-DibGn4gb.js +4 -0
  147. package/components/p-DktrWeJE.js +4 -0
  148. package/components/p-DmdTkb5k.js +4 -0
  149. package/components/p-DmhWSY74.js +4 -0
  150. package/components/p-DtZimz8H.js +4 -0
  151. package/components/p-ET0FZop5.js +4 -0
  152. package/components/p-LoXpKVmq.js +4 -0
  153. package/components/p-NZGZhPF5.js +4 -0
  154. package/components/p-NcQUGze-.js +4 -0
  155. package/components/p-PFwuhbqg.js +4 -0
  156. package/components/{p-CqvARtmt.js → p-YAWKbhjV.js} +1 -1
  157. package/components/{p-DHo45oj7.js → p-cm7z1a2E.js} +1 -1
  158. package/components/p-fU4OdAZ9.js +4 -0
  159. package/components/{p-CCFj0kgH.js → p-i08Rz__6.js} +1 -1
  160. package/components/p-iNIvlAGo.js +4 -0
  161. package/{dist/ionic/p-CJmyfI8x.js → components/p-o89R3aqe.js} +1 -1
  162. package/components/p-qbig9BW8.js +4 -0
  163. package/css/core.css +1 -1
  164. package/css/core.css.map +1 -1
  165. package/css/display.css +1 -1
  166. package/css/display.css.map +1 -1
  167. package/css/flex-utils.css +1 -1
  168. package/css/flex-utils.css.map +1 -1
  169. package/css/float-elements.css.map +1 -1
  170. package/css/global.bundle.css.map +1 -1
  171. package/css/ionic/bundle.ionic.css +1 -0
  172. package/css/ionic/bundle.ionic.css.map +1 -0
  173. package/css/ionic/core.ionic.css +1 -0
  174. package/css/ionic/core.ionic.css.map +1 -0
  175. package/css/ionic/global.bundle.ionic.css +1 -0
  176. package/css/ionic/global.bundle.ionic.css.map +1 -0
  177. package/css/ionic/ionic-swiper.ionic.css +1 -0
  178. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  179. package/css/ionic/link.ionic.css +1 -0
  180. package/css/ionic/link.ionic.css.map +1 -0
  181. package/css/ionic/structure.ionic.css +1 -0
  182. package/css/ionic/structure.ionic.css.map +1 -0
  183. package/css/ionic/typography.ionic.css +1 -0
  184. package/css/ionic/typography.ionic.css.map +1 -0
  185. package/css/ionic/utils.bundle.ionic.css +1 -0
  186. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  187. package/css/ionic-swiper.css +1 -1
  188. package/css/ionic-swiper.css.map +1 -1
  189. package/css/ionic.bundle.css +1 -1
  190. package/css/ionic.bundle.css.map +1 -1
  191. package/css/normalize.css.map +1 -1
  192. package/css/padding.css.map +1 -1
  193. package/css/palettes/dark.always.css.map +1 -1
  194. package/css/palettes/dark.class.css.map +1 -1
  195. package/css/palettes/dark.system.css.map +1 -1
  196. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  197. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  198. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  199. package/css/palettes/high-contrast.always.css.map +1 -1
  200. package/css/palettes/high-contrast.class.css.map +1 -1
  201. package/css/palettes/high-contrast.system.css.map +1 -1
  202. package/css/structure.css.map +1 -1
  203. package/css/text-alignment.css.map +1 -1
  204. package/css/text-transformation.css.map +1 -1
  205. package/css/typography.css.map +1 -1
  206. package/css/utils.bundle.css +1 -1
  207. package/css/utils.bundle.css.map +1 -1
  208. package/dist/cjs/{animation-UiXhXV49.js → animation-zKIdNEmG.js} +3 -3
  209. package/dist/cjs/{app-globals-BoFCZq0K.js → app-globals-BDrxn8eR.js} +1 -1
  210. package/dist/cjs/{attribute-controller-0-lwbVEj.js → attribute-controller-D7O2snOZ.js} +3 -2
  211. package/dist/cjs/{button-active-DzN1aPt-.js → button-active-CY7cZvH5.js} +2 -2
  212. package/dist/cjs/{capacitor-BTjfXFlK.js → capacitor-DmA66EwP.js} +3 -3
  213. package/dist/cjs/clear-button-press-controller-C6PTS3jC.js +45 -0
  214. package/dist/cjs/focus-visible-DGPRKkcx.js +151 -0
  215. package/dist/cjs/{format-CVjpvAl1.js → format-C6r4Asi4.js} +1 -1
  216. package/dist/cjs/{framework-delegate-hNMKEiQC.js → framework-delegate-CAdDEnFS.js} +4 -2
  217. package/dist/cjs/{haptic-BD5qPgy8.js → haptic-Ch-X4gRx.js} +1 -1
  218. package/dist/cjs/{helpers-BrETKUUX.js → helpers-DHNLF4fD.js} +88 -10
  219. package/dist/cjs/{index-B4ONUQRp.js → index-B3s1jjBU.js} +1 -1
  220. package/dist/cjs/{index-BTc0Jnhx.js → index-C3pmpKlo.js} +17 -15
  221. package/dist/cjs/{index-bwclzjks.js → index-C6QFfpm5.js} +9 -7
  222. package/dist/cjs/{index-BiQyIvoc.js → index-CB1PuDlX.js} +55 -5
  223. package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
  224. package/dist/cjs/{index-DMz2Eyis.js → index-DhGCo_n8.js} +2 -2
  225. package/dist/cjs/index-DkNv4J_i.js +10 -0
  226. package/dist/cjs/{index-DNBYnlrc.js → index-lD5wTj_b.js} +4 -4
  227. package/dist/cjs/index.cjs.js +20 -18
  228. package/dist/cjs/{input-shims-CRmdShL9.js → input-shims-CjkWx7ae.js} +18 -16
  229. package/dist/cjs/{input.utils-Becpo0ax.js → input.utils-CD4DNiim.js} +1 -1
  230. package/dist/cjs/ion-accordion_2.cjs.entry.js +57 -29
  231. package/dist/cjs/ion-action-sheet.cjs.entry.js +42 -37
  232. package/dist/cjs/ion-alert.cjs.entry.js +50 -45
  233. package/dist/cjs/ion-app_8.cjs.entry.js +457 -195
  234. package/dist/cjs/ion-avatar_3.cjs.entry.js +124 -13
  235. package/dist/cjs/ion-back-button.cjs.entry.js +31 -23
  236. package/dist/cjs/ion-backdrop.cjs.entry.js +11 -7
  237. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +42 -18
  238. package/dist/cjs/ion-button_2.cjs.entry.js +61 -23
  239. package/dist/cjs/ion-card_5.cjs.entry.js +57 -34
  240. package/dist/cjs/ion-checkbox.cjs.entry.js +43 -17
  241. package/dist/cjs/ion-chip.cjs.entry.js +51 -9
  242. package/dist/cjs/ion-col_3.cjs.entry.js +56 -63
  243. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -9
  244. package/dist/cjs/ion-datetime.cjs.entry.js +75 -33
  245. package/dist/cjs/ion-divider.cjs.entry.js +52 -0
  246. package/dist/cjs/ion-fab_3.cjs.entry.js +40 -28
  247. package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
  248. package/dist/cjs/ion-gallery.cjs.entry.js +608 -0
  249. package/dist/cjs/ion-img.cjs.entry.js +9 -4
  250. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +91 -16
  251. package/dist/cjs/ion-input-otp.cjs.entry.js +75 -10
  252. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +42 -14
  253. package/dist/cjs/ion-input.cjs.entry.js +147 -38
  254. package/dist/cjs/ion-item-option_3.cjs.entry.js +466 -52
  255. package/dist/cjs/ion-item_8.cjs.entry.js +118 -51
  256. package/dist/cjs/ion-loading.cjs.entry.js +33 -28
  257. package/dist/cjs/ion-menu_3.cjs.entry.js +54 -36
  258. package/dist/cjs/ion-modal.cjs.entry.js +304 -155
  259. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
  260. package/dist/cjs/ion-picker-column-option.cjs.entry.js +13 -8
  261. package/dist/cjs/ion-picker-column.cjs.entry.js +17 -15
  262. package/dist/cjs/ion-picker.cjs.entry.js +11 -6
  263. package/dist/cjs/ion-popover.cjs.entry.js +33 -28
  264. package/dist/cjs/ion-progress-bar.cjs.entry.js +28 -9
  265. package/dist/cjs/ion-radio_2.cjs.entry.js +37 -18
  266. package/dist/cjs/ion-range.cjs.entry.js +21 -13
  267. package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -20
  268. package/dist/cjs/ion-reorder_2.cjs.entry.js +31 -13
  269. package/dist/cjs/ion-ripple-effect.cjs.entry.js +16 -7
  270. package/dist/cjs/ion-route_4.cjs.entry.js +12 -10
  271. package/dist/cjs/ion-searchbar.cjs.entry.js +118 -32
  272. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  273. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
  274. package/dist/cjs/ion-segment_2.cjs.entry.js +24 -16
  275. package/dist/cjs/ion-select-modal.cjs.entry.js +54 -25
  276. package/dist/cjs/ion-select_3.cjs.entry.js +203 -81
  277. package/dist/cjs/ion-spinner.cjs.entry.js +31 -8
  278. package/dist/cjs/ion-split-pane.cjs.entry.js +14 -9
  279. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +150 -27
  280. package/dist/cjs/ion-tab_2.cjs.entry.js +9 -7
  281. package/dist/cjs/ion-text.cjs.entry.js +8 -7
  282. package/dist/cjs/ion-textarea.cjs.entry.js +178 -41
  283. package/dist/cjs/ion-toast.cjs.entry.js +86 -57
  284. package/dist/cjs/ion-toggle.cjs.entry.js +67 -25
  285. package/dist/cjs/ionic-global-CZX42KL4.js +551 -0
  286. package/dist/cjs/ionic.cjs.js +5 -4
  287. package/dist/cjs/{ios.transition-CN092Fh6.js → ios.transition-BjOYqzH0.js} +7 -4
  288. package/dist/cjs/{item-multiple-inputs-C-hz7xrh.js → item-multiple-inputs-D0lzjl68.js} +1 -1
  289. package/dist/cjs/{keyboard-4OBzkjOG.js → keyboard-Cix5TVkD.js} +3 -5
  290. package/dist/cjs/{keyboard-BMpscicm.js → keyboard-cHxZlTyz.js} +1 -1
  291. package/dist/cjs/loader.cjs.js +5 -4
  292. package/dist/cjs/{md.transition-B6961Ny9.js → md.transition-C4i7l6ui.js} +6 -4
  293. package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
  294. package/dist/cjs/{overlays-BbVQG3UT.js → overlays-DziOxcCT.js} +314 -176
  295. package/dist/cjs/scroll-hide-controller-BSVBCkbw.js +345 -0
  296. package/dist/cjs/{select-option-render-CzyhrkOu.js → select-option-render-X_iZ-xeh.js} +2 -2
  297. package/dist/cjs/{slot-mutation-controller-CRa_cKOh.js → slot-mutation-controller-BS-L1szN.js} +100 -13
  298. package/dist/cjs/{status-tap-hRIvObiJ.js → status-tap-D5yiKwdj.js} +5 -3
  299. package/dist/cjs/{swipe-back-C-aigThB.js → swipe-back-xM_5R5s-.js} +4 -2
  300. package/dist/cjs/{theme-Bw0rpaNN.js → theme-Cy4joHPt.js} +25 -1
  301. package/dist/cjs/validity-CoPMWggj.js +51 -0
  302. package/dist/collection/collection-manifest.json +8 -0
  303. package/dist/collection/components/accordion/accordion.ionic.css +199 -0
  304. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  305. package/dist/collection/components/accordion/accordion.js +36 -27
  306. package/dist/collection/components/accordion/accordion.md.css +67 -59
  307. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  308. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  309. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  310. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  311. package/dist/collection/components/action-sheet/action-sheet.ionic.css +490 -0
  312. package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
  313. package/dist/collection/components/action-sheet/action-sheet.js +16 -13
  314. package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
  315. package/dist/collection/components/alert/alert.ionic.css +779 -0
  316. package/dist/collection/components/alert/alert.ios.css +247 -54
  317. package/dist/collection/components/alert/alert.js +22 -19
  318. package/dist/collection/components/alert/alert.md.css +243 -56
  319. package/dist/collection/components/app/app.js +15 -83
  320. package/dist/collection/components/avatar/avatar.ionic.css +379 -0
  321. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  322. package/dist/collection/components/avatar/avatar.js +120 -4
  323. package/dist/collection/components/avatar/avatar.md.css +51 -0
  324. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  325. package/dist/collection/components/back-button/back-button.js +26 -20
  326. package/dist/collection/components/back-button/back-button.md.css +60 -48
  327. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  328. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  329. package/dist/collection/components/backdrop/backdrop.js +12 -6
  330. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  331. package/dist/collection/components/badge/badge.ionic.css +269 -0
  332. package/dist/collection/components/badge/badge.ios.css +137 -12
  333. package/dist/collection/components/badge/badge.js +143 -9
  334. package/dist/collection/components/badge/badge.md.css +122 -12
  335. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  336. package/dist/collection/components/breadcrumb/breadcrumb.js +31 -11
  337. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  338. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  339. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  340. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  341. package/dist/collection/components/button/button.ionic.css +640 -0
  342. package/dist/collection/components/button/button.ios.css +154 -46
  343. package/dist/collection/components/button/button.js +63 -27
  344. package/dist/collection/components/button/button.md.css +150 -50
  345. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  346. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  347. package/dist/collection/components/buttons/buttons.js +15 -9
  348. package/dist/collection/components/buttons/buttons.md.css +55 -3
  349. package/dist/collection/components/card/card.ionic.css +144 -0
  350. package/dist/collection/components/card/card.ios.css +65 -14
  351. package/dist/collection/components/card/card.js +41 -10
  352. package/dist/collection/components/card/card.md.css +65 -14
  353. package/dist/collection/components/card-content/card-content.ionic.css +88 -0
  354. package/dist/collection/components/card-content/card-content.ios.css +20 -35
  355. package/dist/collection/components/card-content/card-content.js +12 -10
  356. package/dist/collection/components/card-content/card-content.md.css +20 -35
  357. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  358. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  359. package/dist/collection/components/card-header/card-header.js +13 -10
  360. package/dist/collection/components/card-header/card-header.md.css +27 -15
  361. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +143 -0
  362. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  363. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  364. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  365. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  366. package/dist/collection/components/card-title/card-title.js +11 -8
  367. package/dist/collection/components/card-title/card-title.md.css +73 -0
  368. package/dist/collection/components/checkbox/checkbox.ionic.css +535 -0
  369. package/dist/collection/components/checkbox/checkbox.ios.css +244 -115
  370. package/dist/collection/components/checkbox/checkbox.js +80 -15
  371. package/dist/collection/components/checkbox/checkbox.md.css +245 -116
  372. package/dist/collection/components/chip/chip.ionic.css +216 -0
  373. package/dist/collection/components/chip/chip.ios.css +67 -14
  374. package/dist/collection/components/chip/chip.js +108 -8
  375. package/dist/collection/components/chip/chip.md.css +67 -14
  376. package/dist/collection/components/col/col.css +192 -4
  377. package/dist/collection/components/col/col.js +210 -67
  378. package/dist/collection/components/content/content.css +47 -2
  379. package/dist/collection/components/content/content.js +16 -11
  380. package/dist/collection/components/datetime/datetime.ionic.css +697 -0
  381. package/dist/collection/components/datetime/datetime.ios.css +305 -114
  382. package/dist/collection/components/datetime/datetime.js +61 -20
  383. package/dist/collection/components/datetime/datetime.md.css +295 -103
  384. package/dist/collection/components/datetime/utils/data.js +5 -5
  385. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
  386. package/dist/collection/components/datetime-button/datetime-button.js +11 -8
  387. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
  388. package/dist/collection/components/divider/divider.ionic.css +148 -0
  389. package/dist/collection/components/divider/divider.ios.css +87 -0
  390. package/dist/collection/components/divider/divider.js +94 -0
  391. package/dist/collection/components/divider/divider.md.css +87 -0
  392. package/dist/collection/components/fab/fab.css +25 -1
  393. package/dist/collection/components/fab/fab.js +9 -5
  394. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  395. package/dist/collection/components/fab-button/fab-button.js +31 -21
  396. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  397. package/dist/collection/components/fab-list/fab-list.css +12 -0
  398. package/dist/collection/components/fab-list/fab-list.js +9 -5
  399. package/dist/collection/components/footer/footer-interface.js +1 -0
  400. package/dist/collection/components/footer/footer.ios.css +33 -6
  401. package/dist/collection/components/footer/footer.js +117 -25
  402. package/dist/collection/components/footer/footer.md.css +40 -0
  403. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  404. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  405. package/dist/collection/components/gallery/gallery.css +15 -0
  406. package/dist/collection/components/gallery/gallery.js +678 -0
  407. package/dist/collection/components/gallery/test/utils.js +100 -0
  408. package/dist/collection/components/gallery-item/gallery-item.css +49 -0
  409. package/dist/collection/components/gallery-item/gallery-item.js +98 -0
  410. package/dist/collection/components/grid/grid.css +12 -0
  411. package/dist/collection/components/grid/grid.js +9 -5
  412. package/dist/collection/components/header/header-interface.js +1 -0
  413. package/dist/collection/components/header/header.ionic.css +286 -0
  414. package/dist/collection/components/header/header.ios.css +178 -133
  415. package/dist/collection/components/header/header.js +180 -39
  416. package/dist/collection/components/header/header.md.css +199 -9
  417. package/dist/collection/components/header/header.utils.js +5 -13
  418. package/dist/collection/components/img/img.js +7 -2
  419. package/dist/collection/components/infinite-scroll/infinite-scroll.js +99 -5
  420. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  421. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  422. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  423. package/dist/collection/components/input/input.ionic.css +961 -0
  424. package/dist/collection/components/input/input.ios.css +254 -160
  425. package/dist/collection/components/input/input.js +172 -44
  426. package/dist/collection/components/input/input.md.css +224 -232
  427. package/dist/collection/components/input-otp/input-otp.ionic.css +369 -0
  428. package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
  429. package/dist/collection/components/input-otp/input-otp.js +74 -8
  430. package/dist/collection/components/input-otp/input-otp.md.css +105 -60
  431. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  432. package/dist/collection/components/input-password-toggle/input-password-toggle.js +37 -10
  433. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  434. package/dist/collection/components/item/item.ionic.css +495 -0
  435. package/dist/collection/components/item/item.ios.css +120 -80
  436. package/dist/collection/components/item/item.js +51 -21
  437. package/dist/collection/components/item/item.md.css +131 -79
  438. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  439. package/dist/collection/components/item-divider/item-divider.js +11 -8
  440. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  441. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  442. package/dist/collection/components/item-group/item-group.js +13 -7
  443. package/dist/collection/components/item-group/item-group.md.css +12 -0
  444. package/dist/collection/components/item-option/item-option.ionic.css +276 -0
  445. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  446. package/dist/collection/components/item-option/item-option.js +73 -9
  447. package/dist/collection/components/item-option/item-option.md.css +136 -29
  448. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  449. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  450. package/dist/collection/components/item-options/item-options.js +13 -7
  451. package/dist/collection/components/item-options/item-options.md.css +77 -34
  452. package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
  453. package/dist/collection/components/item-sliding/item-sliding.js +419 -35
  454. package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
  455. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  456. package/dist/collection/components/label/label.ios.css +18 -0
  457. package/dist/collection/components/label/label.js +11 -8
  458. package/dist/collection/components/label/label.md.css +18 -0
  459. package/dist/collection/components/list/list.ionic.css +212 -0
  460. package/dist/collection/components/list/list.ios.css +54 -14
  461. package/dist/collection/components/list/list.js +48 -9
  462. package/dist/collection/components/list/list.md.css +56 -16
  463. package/dist/collection/components/list-header/list-header.ionic.css +189 -0
  464. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  465. package/dist/collection/components/list-header/list-header.js +11 -8
  466. package/dist/collection/components/list-header/list-header.md.css +82 -38
  467. package/dist/collection/components/loading/loading.ios.css +13 -1
  468. package/dist/collection/components/loading/loading.js +15 -12
  469. package/dist/collection/components/loading/loading.md.css +13 -1
  470. package/dist/collection/components/menu/menu.ios.css +15 -3
  471. package/dist/collection/components/menu/menu.js +12 -7
  472. package/dist/collection/components/menu/menu.md.css +15 -3
  473. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  474. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  475. package/dist/collection/components/menu-button/menu-button.js +23 -10
  476. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  477. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  478. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  479. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  480. package/dist/collection/components/modal/animations/sheet.js +8 -2
  481. package/dist/collection/components/modal/gestures/sheet.js +96 -8
  482. package/dist/collection/components/modal/modal.ionic.css +266 -0
  483. package/dist/collection/components/modal/modal.ios.css +178 -70
  484. package/dist/collection/components/modal/modal.js +52 -13
  485. package/dist/collection/components/modal/modal.md.css +178 -70
  486. package/dist/collection/components/nav/nav.css +7 -1
  487. package/dist/collection/components/nav/nav.js +10 -4
  488. package/dist/collection/components/nav-link/nav-link.js +5 -1
  489. package/dist/collection/components/note/note.ios.css +12 -0
  490. package/dist/collection/components/note/note.js +11 -8
  491. package/dist/collection/components/note/note.md.css +12 -0
  492. package/dist/collection/components/picker/picker.ios.css +15 -3
  493. package/dist/collection/components/picker/picker.js +8 -5
  494. package/dist/collection/components/picker/picker.md.css +15 -3
  495. package/dist/collection/components/picker-column/picker-column.css +9 -2
  496. package/dist/collection/components/picker-column/picker-column.js +8 -7
  497. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  498. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  499. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  500. package/dist/collection/components/popover/popover.ionic.css +290 -0
  501. package/dist/collection/components/popover/popover.ios.css +13 -1
  502. package/dist/collection/components/popover/popover.js +19 -16
  503. package/dist/collection/components/popover/popover.md.css +13 -1
  504. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  505. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  506. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  507. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  508. package/dist/collection/components/radio/radio.ionic.css +421 -0
  509. package/dist/collection/components/radio/radio.ios.css +207 -102
  510. package/dist/collection/components/radio/radio.js +14 -9
  511. package/dist/collection/components/radio/radio.md.css +207 -102
  512. package/dist/collection/components/radio-group/radio-group.ionic.css +118 -0
  513. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  514. package/dist/collection/components/radio-group/radio-group.js +48 -7
  515. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  516. package/dist/collection/components/range/range.ionic.css +566 -0
  517. package/dist/collection/components/range/range.ios.css +128 -85
  518. package/dist/collection/components/range/range.js +16 -10
  519. package/dist/collection/components/range/range.md.css +128 -85
  520. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  521. package/dist/collection/components/refresher/refresher.js +11 -8
  522. package/dist/collection/components/refresher/refresher.md.css +15 -2
  523. package/dist/collection/components/refresher-content/refresher-content.js +34 -7
  524. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  525. package/dist/collection/components/reorder/reorder.js +25 -6
  526. package/dist/collection/components/reorder/reorder.md.css +6 -0
  527. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  528. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  529. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  530. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  531. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  532. package/dist/collection/components/route/route.js +4 -0
  533. package/dist/collection/components/router/router.js +4 -0
  534. package/dist/collection/components/router-link/router-link.css +8 -2
  535. package/dist/collection/components/router-link/router-link.js +9 -5
  536. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  537. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  538. package/dist/collection/components/row/row.css +16 -0
  539. package/dist/collection/components/row/row.js +9 -2
  540. package/dist/collection/components/searchbar/searchbar.ionic.css +621 -0
  541. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  542. package/dist/collection/components/searchbar/searchbar.js +164 -42
  543. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  544. package/dist/collection/components/segment/segment.ionic.css +115 -0
  545. package/dist/collection/components/segment/segment.ios.css +45 -2
  546. package/dist/collection/components/segment/segment.js +11 -8
  547. package/dist/collection/components/segment/segment.md.css +45 -2
  548. package/dist/collection/components/segment-button/segment-button.ionic.css +351 -0
  549. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  550. package/dist/collection/components/segment-button/segment-button.js +11 -8
  551. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  552. package/dist/collection/components/segment-content/segment-content.js +1 -1
  553. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  554. package/dist/collection/components/segment-view/segment-view.js +13 -4
  555. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  556. package/dist/collection/components/select/select.ionic.css +976 -0
  557. package/dist/collection/components/select/select.ios.css +304 -148
  558. package/dist/collection/components/select/select.js +232 -82
  559. package/dist/collection/components/select/select.md.css +320 -150
  560. package/dist/collection/components/select-modal/select-modal.ionic.css +254 -0
  561. package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
  562. package/dist/collection/components/select-modal/select-modal.js +63 -15
  563. package/dist/collection/components/select-modal/select-modal.md.css +273 -43
  564. package/dist/collection/components/select-option/select-option.js +8 -4
  565. package/dist/collection/components/select-popover/select-popover.ionic.css +253 -0
  566. package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
  567. package/dist/collection/components/select-popover/select-popover.js +17 -9
  568. package/dist/collection/components/select-popover/select-popover.md.css +228 -47
  569. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  570. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  571. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  572. package/dist/collection/components/spinner/spinner.js +47 -6
  573. package/dist/collection/components/spinner/spinner.native.css +199 -0
  574. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  575. package/dist/collection/components/split-pane/split-pane.js +15 -8
  576. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  577. package/dist/collection/components/tab/tab.js +6 -2
  578. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  579. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  580. package/dist/collection/components/tab-bar/tab-bar.js +178 -15
  581. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  582. package/dist/collection/components/tab-button/tab-button.ionic.css +372 -0
  583. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  584. package/dist/collection/components/tab-button/tab-button.js +54 -9
  585. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  586. package/dist/collection/components/tabs/tabs.css +7 -1
  587. package/dist/collection/components/tabs/tabs.js +4 -1
  588. package/dist/collection/components/text/text.css +6 -0
  589. package/dist/collection/components/text/text.js +7 -6
  590. package/dist/collection/components/textarea/textarea.ionic.css +989 -0
  591. package/dist/collection/components/textarea/textarea.ios.css +322 -174
  592. package/dist/collection/components/textarea/textarea.js +205 -43
  593. package/dist/collection/components/textarea/textarea.md.css +339 -176
  594. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  595. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  596. package/dist/collection/components/title/title.ionic.css +125 -0
  597. package/dist/collection/components/title/title.ios.css +32 -4
  598. package/dist/collection/components/title/title.js +13 -7
  599. package/dist/collection/components/title/title.md.css +39 -4
  600. package/dist/collection/components/toast/animations/utils.js +1 -1
  601. package/dist/collection/components/toast/toast.ionic.css +391 -0
  602. package/dist/collection/components/toast/toast.ios.css +84 -45
  603. package/dist/collection/components/toast/toast.js +79 -13
  604. package/dist/collection/components/toast/toast.md.css +84 -45
  605. package/dist/collection/components/toggle/toggle.ionic.css +510 -0
  606. package/dist/collection/components/toggle/toggle.ios.css +247 -127
  607. package/dist/collection/components/toggle/toggle.js +58 -18
  608. package/dist/collection/components/toggle/toggle.md.css +245 -127
  609. package/dist/collection/components/toolbar/test/image.svg +1 -0
  610. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  611. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  612. package/dist/collection/components/toolbar/toolbar.js +216 -14
  613. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  614. package/dist/collection/global/ionic-global.js +239 -13
  615. package/dist/collection/utils/css-value-validation.js +39 -0
  616. package/dist/collection/utils/focus-trap.js +15 -4
  617. package/dist/collection/utils/focus-visible.js +73 -2
  618. package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
  619. package/dist/collection/utils/forms/click-controller.js +95 -9
  620. package/dist/collection/utils/forms/index.js +1 -0
  621. package/dist/collection/utils/forms/validity.js +31 -0
  622. package/dist/collection/utils/framework-delegate.js +3 -1
  623. package/dist/collection/utils/hardware-back-button.js +15 -0
  624. package/dist/collection/utils/helpers.js +84 -3
  625. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  626. package/dist/collection/utils/media.js +1 -0
  627. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  628. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  629. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  630. package/dist/collection/utils/overlay-control-label.js +13 -11
  631. package/dist/collection/utils/overlays.js +289 -10
  632. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  633. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  634. package/dist/collection/utils/test/playwright/field-geometry.js +34 -0
  635. package/dist/collection/utils/test/playwright/generator.js +48 -23
  636. package/dist/collection/utils/test/playwright/index.js +1 -0
  637. package/dist/collection/utils/test/playwright/page/utils/goto.js +10 -1
  638. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  639. package/dist/collection/utils/theme.js +25 -1
  640. package/dist/collection/utils/transition/ios.transition.js +1 -0
  641. package/dist/docs.json +8889 -293
  642. package/dist/esm/{animation-C_V9lXzL.js → animation-GasMiLY0.js} +2 -2
  643. package/dist/esm/{app-globals-CNfpAPW6.js → app-globals-DbCTe1Vv.js} +1 -1
  644. package/dist/esm/{attribute-controller-ItNOXNp9.js → attribute-controller-CbJaN4Zr.js} +2 -1
  645. package/dist/esm/{button-active-rB-Ct9KZ.js → button-active-DLOYzeXl.js} +2 -2
  646. package/dist/esm/{capacitor-BY7l8HgR.js → capacitor-CFERIeaU.js} +1 -1
  647. package/dist/esm/clear-button-press-controller-6ph4kKYn.js +43 -0
  648. package/dist/esm/focus-visible-BYk20Mf5.js +146 -0
  649. package/dist/esm/{format-Ck1cw5z7.js → format-NT7iHsbA.js} +1 -1
  650. package/dist/esm/{framework-delegate-CW5_kWfc.js → framework-delegate-99Ms_INy.js} +4 -2
  651. package/dist/esm/{haptic-ES_sSPLn.js → haptic-Cq4UAeka.js} +1 -1
  652. package/dist/esm/{helpers-p94IkmEA.js → helpers-B_F2b1gy.js} +86 -8
  653. package/dist/esm/{index-CK8uF0iB.js → index-BRYliuA-.js} +1 -1
  654. package/dist/esm/{index-CBkVO5D0.js → index-BeR_5uou.js} +2 -2
  655. package/dist/esm/{index-BvabGprD.js → index-BkJpfpXI.js} +2 -1
  656. package/dist/esm/{index-DLDbwWW7.js → index-BoEdvSPU.js} +4 -2
  657. package/dist/esm/{index-vgPixHgF.js → index-D5lNz-tr.js} +4 -4
  658. package/dist/esm/{index-txcXIB3P.js → index-D86Q8ZLS.js} +12 -10
  659. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  660. package/dist/esm/{index-BpRUsN_W.js → index-hR6kxzTq.js} +55 -5
  661. package/dist/esm/index.js +14 -12
  662. package/dist/esm/{input-shims-KNXj3DAv.js → input-shims-CJVi9djP.js} +7 -5
  663. package/dist/esm/{input.utils-DZY_K8Po.js → input.utils-gPgFKve4.js} +1 -1
  664. package/dist/esm/ion-accordion_2.entry.js +57 -29
  665. package/dist/esm/ion-action-sheet.entry.js +27 -22
  666. package/dist/esm/ion-alert.entry.js +34 -29
  667. package/dist/esm/ion-app_8.entry.js +455 -193
  668. package/dist/esm/ion-avatar_3.entry.js +124 -13
  669. package/dist/esm/ion-back-button.entry.js +31 -23
  670. package/dist/esm/ion-backdrop.entry.js +11 -7
  671. package/dist/esm/ion-breadcrumb_2.entry.js +42 -18
  672. package/dist/esm/ion-button_2.entry.js +61 -23
  673. package/dist/esm/ion-card_5.entry.js +57 -34
  674. package/dist/esm/ion-checkbox.entry.js +43 -17
  675. package/dist/esm/ion-chip.entry.js +51 -9
  676. package/dist/esm/ion-col_3.entry.js +56 -63
  677. package/dist/esm/ion-datetime-button.entry.js +14 -9
  678. package/dist/esm/ion-datetime.entry.js +74 -32
  679. package/dist/esm/ion-divider.entry.js +50 -0
  680. package/dist/esm/ion-fab_3.entry.js +40 -28
  681. package/dist/esm/ion-gallery-item.entry.js +57 -0
  682. package/dist/esm/ion-gallery.entry.js +606 -0
  683. package/dist/esm/ion-img.entry.js +9 -4
  684. package/dist/esm/ion-infinite-scroll_2.entry.js +91 -16
  685. package/dist/esm/ion-input-otp.entry.js +75 -10
  686. package/dist/esm/ion-input-password-toggle.entry.js +42 -14
  687. package/dist/esm/ion-input.entry.js +147 -38
  688. package/dist/esm/ion-item-option_3.entry.js +466 -52
  689. package/dist/esm/ion-item_8.entry.js +118 -51
  690. package/dist/esm/ion-loading.entry.js +22 -17
  691. package/dist/esm/ion-menu_3.entry.js +45 -27
  692. package/dist/esm/ion-modal.entry.js +237 -88
  693. package/dist/esm/ion-nav_2.entry.js +14 -10
  694. package/dist/esm/ion-picker-column-option.entry.js +13 -8
  695. package/dist/esm/ion-picker-column.entry.js +14 -12
  696. package/dist/esm/ion-picker.entry.js +11 -6
  697. package/dist/esm/ion-popover.entry.js +23 -18
  698. package/dist/esm/ion-progress-bar.entry.js +28 -9
  699. package/dist/esm/ion-radio_2.entry.js +37 -18
  700. package/dist/esm/ion-range.entry.js +21 -13
  701. package/dist/esm/ion-refresher_2.entry.js +45 -20
  702. package/dist/esm/ion-reorder_2.entry.js +31 -13
  703. package/dist/esm/ion-ripple-effect.entry.js +16 -7
  704. package/dist/esm/ion-route_4.entry.js +12 -10
  705. package/dist/esm/ion-searchbar.entry.js +118 -32
  706. package/dist/esm/ion-segment-content.entry.js +2 -2
  707. package/dist/esm/ion-segment-view.entry.js +13 -3
  708. package/dist/esm/ion-segment_2.entry.js +24 -16
  709. package/dist/esm/ion-select-modal.entry.js +53 -24
  710. package/dist/esm/ion-select_3.entry.js +198 -76
  711. package/dist/esm/ion-spinner.entry.js +31 -8
  712. package/dist/esm/ion-split-pane.entry.js +14 -9
  713. package/dist/esm/ion-tab-bar_2.entry.js +149 -26
  714. package/dist/esm/ion-tab_2.entry.js +9 -7
  715. package/dist/esm/ion-text.entry.js +8 -7
  716. package/dist/esm/ion-textarea.entry.js +178 -41
  717. package/dist/esm/ion-toast.entry.js +48 -19
  718. package/dist/esm/ion-toggle.entry.js +67 -25
  719. package/dist/esm/ionic-global-DSbFWXp3.js +540 -0
  720. package/dist/esm/ionic.js +6 -5
  721. package/dist/esm/{ios.transition-CW92wRDL.js → ios.transition-C9thfQYf.js} +7 -4
  722. package/dist/esm/{item-multiple-inputs-Bd2LO7qK.js → item-multiple-inputs-CSJsB7-I.js} +1 -1
  723. package/dist/esm/{keyboard-BumguZrM.js → keyboard-Cj8mLJeq.js} +3 -5
  724. package/dist/esm/{keyboard-CutS8BPd.js → keyboard-DAF8GNJ9.js} +1 -1
  725. package/dist/esm/loader.js +6 -5
  726. package/dist/esm/{md.transition-yhfkYX1P.js → md.transition-BEhPsy_z.js} +6 -4
  727. package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
  728. package/dist/esm/{overlays-BBgMM61s.js → overlays-C8sf7PId.js} +307 -164
  729. package/dist/esm/scroll-hide-controller-Chts2wJU.js +342 -0
  730. package/dist/esm/{select-option-render-BSDT9oSA.js → select-option-render-D5kt0cO9.js} +2 -2
  731. package/dist/esm/{slot-mutation-controller-uKdPbY9K.js → slot-mutation-controller-DanfZTCH.js} +97 -10
  732. package/dist/esm/{status-tap-BskkGI4e.js → status-tap-B8UQS38n.js} +5 -3
  733. package/dist/esm/{swipe-back-BZdyM2Q-.js → swipe-back-Bgftkxen.js} +4 -2
  734. package/dist/esm/{theme-byZM6qHV.js → theme-BUF_V-Kg.js} +25 -1
  735. package/dist/esm/validity-NcQUGze-.js +48 -0
  736. package/dist/html.html-data.json +2631 -150
  737. package/dist/ionic/index.esm.js +1 -1
  738. package/dist/ionic/ionic.esm.js +1 -1
  739. package/dist/ionic/p-038465e3.entry.js +4 -0
  740. package/dist/ionic/p-0743a26a.entry.js +4 -0
  741. package/dist/ionic/p-0b453760.entry.js +4 -0
  742. package/dist/ionic/p-0bd5a7c9.entry.js +4 -0
  743. package/dist/ionic/p-188a2e35.entry.js +4 -0
  744. package/dist/ionic/p-1b045882.entry.js +4 -0
  745. package/dist/ionic/p-1b769779.entry.js +4 -0
  746. package/dist/ionic/p-1d735170.entry.js +4 -0
  747. package/dist/ionic/p-1d87b153.entry.js +4 -0
  748. package/dist/ionic/p-2b1e9500.entry.js +4 -0
  749. package/dist/ionic/p-2gcJ-f11.js +4 -0
  750. package/dist/ionic/p-308f9b89.entry.js +4 -0
  751. package/dist/ionic/p-338cb1e7.entry.js +4 -0
  752. package/dist/ionic/p-3a03d05e.entry.js +4 -0
  753. package/dist/ionic/p-3a54495e.entry.js +4 -0
  754. package/dist/ionic/p-3b47fdc7.entry.js +4 -0
  755. package/dist/ionic/p-3be131ed.entry.js +4 -0
  756. package/dist/ionic/p-3ddd32cc.entry.js +4 -0
  757. package/dist/ionic/p-3f15086f.entry.js +4 -0
  758. package/dist/ionic/p-4152cb6a.entry.js +4 -0
  759. package/dist/ionic/p-41680415.entry.js +4 -0
  760. package/dist/ionic/p-49edfb46.entry.js +4 -0
  761. package/dist/ionic/p-522663a4.entry.js +4 -0
  762. package/dist/ionic/p-561cfcc1.entry.js +4 -0
  763. package/dist/ionic/p-6dc9331b.entry.js +4 -0
  764. package/dist/ionic/p-7df4dcb4.entry.js +4 -0
  765. package/dist/ionic/p-8183df6b.entry.js +4 -0
  766. package/dist/ionic/p-8231e914.entry.js +4 -0
  767. package/dist/ionic/p-82efbf09.entry.js +4 -0
  768. package/dist/ionic/p-86bf24f4.entry.js +4 -0
  769. package/dist/ionic/p-8b107444.entry.js +4 -0
  770. package/dist/ionic/p-8ecb459a.entry.js +4 -0
  771. package/dist/ionic/p-8ff4bf6c.entry.js +4 -0
  772. package/dist/ionic/p-905c8b38.entry.js +4 -0
  773. package/dist/ionic/p-9613f2c3.entry.js +4 -0
  774. package/dist/ionic/p-973f8069.entry.js +4 -0
  775. package/dist/ionic/p-9b41acf3.entry.js +4 -0
  776. package/dist/ionic/p-B36ii-hs.js +4 -0
  777. package/{components/p-LkEGRiq0.js → dist/ionic/p-B7XMQegr.js} +1 -1
  778. package/dist/ionic/p-BKwe4f9b.js +4 -0
  779. package/dist/ionic/{p-5a3UxQAh.js → p-BMPN55of.js} +1 -1
  780. package/{components/p-D5_mEbGJ.js → dist/ionic/p-BPA4-c6T.js} +1 -1
  781. package/dist/ionic/p-BUF_V-Kg.js +4 -0
  782. package/dist/ionic/p-BXRdzJMJ.js +4 -0
  783. package/dist/ionic/p-BYk20Mf5.js +4 -0
  784. package/dist/ionic/p-BfDzKnZ-.js +4 -0
  785. package/dist/ionic/p-BfUzA1cP.js +4 -0
  786. package/dist/ionic/{p-DCmOKz8e.js → p-Bjt84heL.js} +1 -1
  787. package/dist/ionic/p-BkJpfpXI.js +4 -0
  788. package/{components/p-CdrNHfZl.js → dist/ionic/p-BtccSO5J.js} +1 -1
  789. package/dist/ionic/p-C3TLUO-J.js +4 -0
  790. package/dist/ionic/p-C4WiowQL.js +4 -0
  791. package/dist/ionic/p-CIGNaXM1.js +4 -0
  792. package/dist/ionic/p-CODBQrPj.js +4 -0
  793. package/dist/ionic/p-CXkgZKSx.js +4 -0
  794. package/dist/ionic/{p-DxftXYZp.js → p-CeHcVwSj.js} +1 -1
  795. package/dist/ionic/p-Co3ilg7B.js +4 -0
  796. package/dist/ionic/p-D5t_-oMk.js +4 -0
  797. package/dist/ionic/p-D7LiFzrm.js +4 -0
  798. package/dist/ionic/p-DOdxt_P_.js +4 -0
  799. package/dist/ionic/p-DRbid4Vh.js +4 -0
  800. package/dist/ionic/p-DsBidY1y.js +4 -0
  801. package/dist/ionic/{p-Cf6KtUnA.js → p-DuxayXEj.js} +1 -1
  802. package/dist/ionic/p-DxPRC9Jk.js +4 -0
  803. package/dist/ionic/p-Hb0L-KUN.js +4 -0
  804. package/dist/ionic/p-NcQUGze-.js +4 -0
  805. package/dist/ionic/{p-BBZQUbCq.js → p-T71k3C35.js} +1 -1
  806. package/dist/ionic/p-WdouEyt8.js +4 -0
  807. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  808. package/dist/ionic/p-a1555032.entry.js +4 -0
  809. package/dist/ionic/p-a4299509.entry.js +4 -0
  810. package/dist/ionic/p-a52cba2f.entry.js +4 -0
  811. package/dist/ionic/p-ad46d2fd.entry.js +4 -0
  812. package/dist/ionic/p-b076511a.entry.js +4 -0
  813. package/dist/ionic/p-b1cd18f0.entry.js +4 -0
  814. package/dist/ionic/p-b30b468d.entry.js +4 -0
  815. package/dist/ionic/p-b4de840a.entry.js +4 -0
  816. package/dist/ionic/p-b6e633f5.entry.js +4 -0
  817. package/dist/ionic/p-bf40b9eb.entry.js +4 -0
  818. package/dist/ionic/p-c1fc48c7.entry.js +4 -0
  819. package/dist/ionic/p-ce8bea16.entry.js +4 -0
  820. package/dist/ionic/p-dbf53341.entry.js +4 -0
  821. package/dist/ionic/p-de0de6a6.entry.js +4 -0
  822. package/dist/ionic/p-e715a580.entry.js +4 -0
  823. package/dist/ionic/p-f10a94a8.entry.js +4 -0
  824. package/dist/ionic/p-f3057b31.entry.js +4 -0
  825. package/dist/ionic/p-fa74dd94.entry.js +4 -0
  826. package/dist/ionic/p-fd00e28d.entry.js +4 -0
  827. package/dist/ionic/p-hR6kxzTq.js +6 -0
  828. package/dist/ionic/p-pVSZ4TVa.js +4 -0
  829. package/dist/ionic/{p-DfvWlTdB.js → p-rwBGNQHN.js} +1 -1
  830. package/dist/types/components/accordion/accordion.d.ts +12 -3
  831. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  832. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  833. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  834. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  835. package/dist/types/components/alert/alert.d.ts +3 -2
  836. package/dist/types/components/app/app.d.ts +4 -5
  837. package/dist/types/components/avatar/avatar.d.ts +32 -0
  838. package/dist/types/components/back-button/back-button.d.ts +10 -3
  839. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  840. package/dist/types/components/badge/badge.d.ts +34 -1
  841. package/dist/types/components/breadcrumb/breadcrumb.d.ts +14 -1
  842. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  843. package/dist/types/components/button/button.d.ts +23 -8
  844. package/dist/types/components/buttons/buttons.d.ts +5 -1
  845. package/dist/types/components/card/card.d.ts +8 -1
  846. package/dist/types/components/card-content/card-content.d.ts +2 -1
  847. package/dist/types/components/card-header/card-header.d.ts +3 -2
  848. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  849. package/dist/types/components/card-title/card-title.d.ts +2 -1
  850. package/dist/types/components/checkbox/checkbox.d.ts +26 -5
  851. package/dist/types/components/chip/chip.d.ts +26 -1
  852. package/dist/types/components/col/col.d.ts +52 -6
  853. package/dist/types/components/content/content.d.ts +3 -0
  854. package/dist/types/components/datetime/datetime.d.ts +26 -1
  855. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  856. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  857. package/dist/types/components/divider/divider.d.ts +20 -0
  858. package/dist/types/components/fab/fab.d.ts +4 -0
  859. package/dist/types/components/fab-button/fab-button.d.ts +11 -3
  860. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  861. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  862. package/dist/types/components/footer/footer.d.ts +20 -3
  863. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  864. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  865. package/dist/types/components/gallery/gallery.d.ts +218 -0
  866. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  867. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  868. package/dist/types/components/grid/grid.d.ts +4 -0
  869. package/dist/types/components/header/header-interface.d.ts +1 -0
  870. package/dist/types/components/header/header.d.ts +26 -3
  871. package/dist/types/components/header/header.utils.d.ts +4 -5
  872. package/dist/types/components/img/img.d.ts +2 -0
  873. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  874. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  875. package/dist/types/components/input/input.d.ts +45 -5
  876. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  877. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -0
  878. package/dist/types/components/item/item.d.ts +17 -4
  879. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  880. package/dist/types/components/item-group/item-group.d.ts +4 -0
  881. package/dist/types/components/item-option/item-option.d.ts +18 -1
  882. package/dist/types/components/item-options/item-options.d.ts +4 -0
  883. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  884. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  885. package/dist/types/components/label/label.d.ts +2 -1
  886. package/dist/types/components/list/list.d.ts +15 -1
  887. package/dist/types/components/list-header/list-header.d.ts +2 -1
  888. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  889. package/dist/types/components/loading/loading.d.ts +3 -2
  890. package/dist/types/components/menu/menu.d.ts +3 -0
  891. package/dist/types/components/menu-button/menu-button.d.ts +8 -1
  892. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  893. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  894. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  895. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  896. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  897. package/dist/types/components/modal/modal.d.ts +11 -1
  898. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  899. package/dist/types/components/nav/nav.d.ts +5 -1
  900. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  901. package/dist/types/components/note/note.d.ts +2 -1
  902. package/dist/types/components/picker/picker.d.ts +2 -1
  903. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  904. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  905. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  906. package/dist/types/components/popover/popover.d.ts +6 -5
  907. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  908. package/dist/types/components/radio/radio.d.ts +2 -1
  909. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  910. package/dist/types/components/range/range.d.ts +2 -1
  911. package/dist/types/components/refresher/refresher.d.ts +2 -1
  912. package/dist/types/components/refresher-content/refresher-content.d.ts +10 -0
  913. package/dist/types/components/reorder/reorder.d.ts +9 -0
  914. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  915. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  916. package/dist/types/components/route/route.d.ts +4 -0
  917. package/dist/types/components/router/router.d.ts +4 -0
  918. package/dist/types/components/router-link/router-link.d.ts +4 -0
  919. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  920. package/dist/types/components/row/row.d.ts +4 -0
  921. package/dist/types/components/searchbar/searchbar.d.ts +56 -10
  922. package/dist/types/components/segment/segment.d.ts +2 -1
  923. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  924. package/dist/types/components/select/select.d.ts +59 -15
  925. package/dist/types/components/select-modal/select-modal.d.ts +13 -0
  926. package/dist/types/components/select-option/select-option.d.ts +7 -4
  927. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  928. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  929. package/dist/types/components/spinner/spinner.d.ts +15 -0
  930. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  931. package/dist/types/components/tab/tab.d.ts +4 -0
  932. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  933. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  934. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  935. package/dist/types/components/tabs/tabs.d.ts +3 -0
  936. package/dist/types/components/text/text.d.ts +2 -1
  937. package/dist/types/components/textarea/textarea.d.ts +75 -17
  938. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  939. package/dist/types/components/title/title.d.ts +4 -0
  940. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  941. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  942. package/dist/types/components/toast/toast.d.ts +19 -2
  943. package/dist/types/components/toggle/toggle.d.ts +18 -1
  944. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  945. package/dist/types/components.d.ts +1839 -211
  946. package/dist/types/global/ionic-global.d.ts +28 -2
  947. package/dist/types/interface.d.ts +3 -0
  948. package/dist/types/utils/config.d.ts +128 -4
  949. package/dist/types/utils/css-value-validation.d.ts +21 -0
  950. package/dist/types/utils/focus-trap.d.ts +1 -1
  951. package/dist/types/utils/focus-visible.d.ts +33 -0
  952. package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
  953. package/dist/types/utils/forms/click-controller.d.ts +16 -5
  954. package/dist/types/utils/forms/index.d.ts +1 -0
  955. package/dist/types/utils/forms/validity.d.ts +7 -0
  956. package/dist/types/utils/helpers.d.ts +29 -0
  957. package/dist/types/utils/overlay-control-label.d.ts +11 -9
  958. package/dist/types/utils/overlays-interface.d.ts +31 -1
  959. package/dist/types/utils/overlays.d.ts +1 -1
  960. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  961. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  962. package/dist/types/utils/test/playwright/field-geometry.d.ts +13 -0
  963. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  964. package/dist/types/utils/test/playwright/index.d.ts +1 -0
  965. package/dist/types/utils/theme.d.ts +9 -0
  966. package/hydrate/index.js +5465 -1248
  967. package/hydrate/index.mjs +5465 -1248
  968. package/package.json +10 -4
  969. package/components/p-3avHDbEF.js +0 -4
  970. package/components/p-7KepMw9O.js +0 -4
  971. package/components/p-7NbIvzb4.js +0 -4
  972. package/components/p-B3dSuofL.js +0 -4
  973. package/components/p-BBsseItU.js +0 -4
  974. package/components/p-BMHdI-wb.js +0 -4
  975. package/components/p-BSQPZ79H.js +0 -4
  976. package/components/p-BT2InaHz.js +0 -4
  977. package/components/p-BZ1k9WL7.js +0 -4
  978. package/components/p-BhamHSw3.js +0 -4
  979. package/components/p-BmVRXR1y.js +0 -4
  980. package/components/p-BrrMFd9K.js +0 -4
  981. package/components/p-C-SO5kIs.js +0 -4
  982. package/components/p-C0TdbIVo.js +0 -4
  983. package/components/p-C6Y0cCH_.js +0 -4
  984. package/components/p-C8BAigo3.js +0 -4
  985. package/components/p-CRb2xRCz.js +0 -4
  986. package/components/p-CUQjkOdi.js +0 -4
  987. package/components/p-CW84OFQa.js +0 -4
  988. package/components/p-CjPRDxby.js +0 -4
  989. package/components/p-CohRJRIu.js +0 -4
  990. package/components/p-Ct2aBEue.js +0 -4
  991. package/components/p-CvyvLbPe.js +0 -4
  992. package/components/p-D8FyR2IB.js +0 -4
  993. package/components/p-DJztqcrH.js +0 -4
  994. package/components/p-DLEJ61lJ.js +0 -4
  995. package/components/p-DRm4t-by.js +0 -4
  996. package/components/p-DTGCMApY.js +0 -4
  997. package/components/p-D_U0pDe5.js +0 -4
  998. package/components/p-DaW9OZ6S.js +0 -4
  999. package/components/p-Dah8BCNg.js +0 -4
  1000. package/components/p-DaojW_d_.js +0 -4
  1001. package/components/p-DnBabjgY.js +0 -4
  1002. package/components/p-Ds5vN3iu.js +0 -4
  1003. package/components/p-DwTzX8Vi.js +0 -4
  1004. package/components/p-Dy7x-KDF.js +0 -4
  1005. package/components/p-HthJZjZ6.js +0 -4
  1006. package/components/p-KbMCbGRA.js +0 -4
  1007. package/components/p-LpMHEu3v.js +0 -4
  1008. package/components/p-PkD1iLNN.js +0 -4
  1009. package/components/p-R4UxBukQ.js +0 -4
  1010. package/components/p-RhI78AKb.js +0 -4
  1011. package/components/p-byZM6qHV.js +0 -4
  1012. package/components/p-hLu-eIbb.js +0 -4
  1013. package/components/p-kKGBuIkf.js +0 -4
  1014. package/components/p-z-EWo6r-.js +0 -4
  1015. package/dist/cjs/focus-visible-CCvKiLh3.js +0 -77
  1016. package/dist/cjs/ionic-global-48ceLiJ6.js +0 -156
  1017. package/dist/cjs/keyboard-controller-DZE97OtR.js +0 -167
  1018. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1019. package/dist/esm/focus-visible-BmVRXR1y.js +0 -75
  1020. package/dist/esm/ionic-global-Cep6oYzK.js +0 -151
  1021. package/dist/esm/keyboard-controller-DqohyEsZ.js +0 -165
  1022. package/dist/esm/validity-DJztqcrH.js +0 -17
  1023. package/dist/ionic/p-00cd107d.entry.js +0 -4
  1024. package/dist/ionic/p-013b9aba.entry.js +0 -4
  1025. package/dist/ionic/p-014c3633.entry.js +0 -4
  1026. package/dist/ionic/p-0562139b.entry.js +0 -4
  1027. package/dist/ionic/p-0a789930.entry.js +0 -4
  1028. package/dist/ionic/p-0f1613f2.entry.js +0 -4
  1029. package/dist/ionic/p-1252621e.entry.js +0 -4
  1030. package/dist/ionic/p-129f7b95.entry.js +0 -4
  1031. package/dist/ionic/p-16de8fd9.entry.js +0 -4
  1032. package/dist/ionic/p-1bb1be7e.entry.js +0 -4
  1033. package/dist/ionic/p-1f342c2d.entry.js +0 -4
  1034. package/dist/ionic/p-1ffa5577.entry.js +0 -4
  1035. package/dist/ionic/p-210f906e.entry.js +0 -4
  1036. package/dist/ionic/p-27960f65.entry.js +0 -4
  1037. package/dist/ionic/p-3c6fc2e8.entry.js +0 -4
  1038. package/dist/ionic/p-436d4ac8.entry.js +0 -4
  1039. package/dist/ionic/p-43729675.entry.js +0 -4
  1040. package/dist/ionic/p-4468e439.entry.js +0 -4
  1041. package/dist/ionic/p-4e4e5919.entry.js +0 -4
  1042. package/dist/ionic/p-51af4728.entry.js +0 -4
  1043. package/dist/ionic/p-59e4b521.entry.js +0 -4
  1044. package/dist/ionic/p-5b47b8d5.entry.js +0 -4
  1045. package/dist/ionic/p-5dcddfd5.entry.js +0 -4
  1046. package/dist/ionic/p-694f3e78.entry.js +0 -4
  1047. package/dist/ionic/p-76c189e7.entry.js +0 -4
  1048. package/dist/ionic/p-77252596.entry.js +0 -4
  1049. package/dist/ionic/p-77540bcb.entry.js +0 -4
  1050. package/dist/ionic/p-77e7b612.entry.js +0 -4
  1051. package/dist/ionic/p-7868eb92.entry.js +0 -4
  1052. package/dist/ionic/p-800ce1e0.entry.js +0 -4
  1053. package/dist/ionic/p-84470714.entry.js +0 -4
  1054. package/dist/ionic/p-87fb6d59.entry.js +0 -4
  1055. package/dist/ionic/p-8B39TMv-.js +0 -4
  1056. package/dist/ionic/p-8af85fa8.entry.js +0 -4
  1057. package/dist/ionic/p-8c85e250.entry.js +0 -4
  1058. package/dist/ionic/p-8dQB1sG_.js +0 -4
  1059. package/dist/ionic/p-9515f840.entry.js +0 -4
  1060. package/dist/ionic/p-96d040b0.entry.js +0 -4
  1061. package/dist/ionic/p-9d7e5a0b.entry.js +0 -4
  1062. package/dist/ionic/p-B0afqOUt.js +0 -4
  1063. package/dist/ionic/p-B2JD8_LP.js +0 -4
  1064. package/dist/ionic/p-B2y1T0dN.js +0 -4
  1065. package/dist/ionic/p-BHBb21Hp.js +0 -4
  1066. package/dist/ionic/p-BSQPZ79H.js +0 -4
  1067. package/dist/ionic/p-BexAj0yw.js +0 -4
  1068. package/dist/ionic/p-BgkRGRO3.js +0 -4
  1069. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1070. package/dist/ionic/p-BpRUsN_W.js +0 -6
  1071. package/dist/ionic/p-BvabGprD.js +0 -4
  1072. package/dist/ionic/p-C4SpVvhx.js +0 -4
  1073. package/dist/ionic/p-CNdt1FPc.js +0 -4
  1074. package/dist/ionic/p-CfccUand.js +0 -4
  1075. package/dist/ionic/p-DArnNWiu.js +0 -4
  1076. package/dist/ionic/p-DBFcFCH5.js +0 -4
  1077. package/dist/ionic/p-DFPZa_No.js +0 -4
  1078. package/dist/ionic/p-DJztqcrH.js +0 -4
  1079. package/dist/ionic/p-DYKDWM2f.js +0 -4
  1080. package/dist/ionic/p-DriE1ZAo.js +0 -4
  1081. package/dist/ionic/p-DzQk7Lu8.js +0 -4
  1082. package/dist/ionic/p-SEecsUh7.js +0 -4
  1083. package/dist/ionic/p-a45caa30.entry.js +0 -4
  1084. package/dist/ionic/p-af15fc5d.entry.js +0 -4
  1085. package/dist/ionic/p-af4b4719.entry.js +0 -4
  1086. package/dist/ionic/p-b0faaae2.entry.js +0 -4
  1087. package/dist/ionic/p-b3aadfe8.entry.js +0 -4
  1088. package/dist/ionic/p-b5bcbbc1.entry.js +0 -4
  1089. package/dist/ionic/p-byZM6qHV.js +0 -4
  1090. package/dist/ionic/p-c293f854.entry.js +0 -4
  1091. package/dist/ionic/p-c56c23b6.entry.js +0 -4
  1092. package/dist/ionic/p-c7ea2647.entry.js +0 -4
  1093. package/dist/ionic/p-c8c77f7b.entry.js +0 -4
  1094. package/dist/ionic/p-cbc73380.entry.js +0 -4
  1095. package/dist/ionic/p-d58e9da3.entry.js +0 -4
  1096. package/dist/ionic/p-e1haAYzm.js +0 -4
  1097. package/dist/ionic/p-ec08a7e6.entry.js +0 -4
  1098. package/dist/ionic/p-f37e6ed2.entry.js +0 -4
  1099. package/dist/ionic/p-f6a1ab48.entry.js +0 -4
  1100. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -3,23 +3,25 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index$2 = require('./index-BiQyIvoc.js');
7
- var index = require('./index-DMz2Eyis.js');
8
- var frameworkDelegate = require('./framework-delegate-hNMKEiQC.js');
9
- var helpers = require('./helpers-BrETKUUX.js');
6
+ var index$3 = require('./index-CB1PuDlX.js');
7
+ var index$1 = require('./index-DhGCo_n8.js');
8
+ var frameworkDelegate = require('./framework-delegate-CAdDEnFS.js');
9
+ var helpers = require('./helpers-DHNLF4fD.js');
10
10
  var lockController = require('./lock-controller-aDB9wrEf.js');
11
- var capacitor = require('./capacitor-BTjfXFlK.js');
12
- var hardwareBackButton = require('./overlays-BbVQG3UT.js');
13
- var theme = require('./theme-Bw0rpaNN.js');
14
- var index$3 = require('./index-DNBYnlrc.js');
15
- var ionicGlobal = require('./ionic-global-48ceLiJ6.js');
16
- var keyboard = require('./keyboard-4OBzkjOG.js');
17
- var animation = require('./animation-UiXhXV49.js');
11
+ var capacitor = require('./capacitor-DmA66EwP.js');
12
+ var overlays = require('./overlays-DziOxcCT.js');
13
+ var theme = require('./theme-Cy4joHPt.js');
14
+ var index$4 = require('./index-lD5wTj_b.js');
15
+ var ionicGlobal = require('./ionic-global-CZX42KL4.js');
16
+ var keyboard = require('./keyboard-Cix5TVkD.js');
17
+ var animation = require('./animation-zKIdNEmG.js');
18
+ var index = require('./index-DkNv4J_i.js');
18
19
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
19
- var index$1 = require('./index-DRPqwSvU.js');
20
+ var index$2 = require('./index-DRPqwSvU.js');
21
+ require('./focus-visible-DGPRKkcx.js');
20
22
  require('./dir-Bma_9Lqh.js');
21
23
  require('./gesture-controller-CeJslptU.js');
22
- require('./keyboard-BMpscicm.js');
24
+ require('./keyboard-cHxZlTyz.js');
23
25
 
24
26
  var Style;
25
27
  (function (Style) {
@@ -116,13 +118,13 @@ const getBackdropValueForSheet = (x, backdropBreakpoint) => {
116
118
  *
117
119
  */
118
120
  const setCardStatusBarDark = () => {
119
- if (!helpers.win || helpers.win.innerWidth >= 768) {
121
+ if (!index.win || index.win.innerWidth >= 768) {
120
122
  return;
121
123
  }
122
124
  StatusBar.setStyle({ style: Style.Dark });
123
125
  };
124
126
  const setCardStatusBarDefault = (defaultStyle = Style.Default) => {
125
- if (!helpers.win || helpers.win.innerWidth >= 768) {
127
+ if (!index.win || index.win.innerWidth >= 768) {
126
128
  return;
127
129
  }
128
130
  StatusBar.setStyle({ style: defaultStyle });
@@ -134,6 +136,104 @@ const onModalHeightChange = (hostEl, callback) => {
134
136
  return helpers.onCustomPropertyChange(hostEl, '--height', () => callback());
135
137
  };
136
138
 
139
+ const createSheetEnterAnimation = (opts) => {
140
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll, staticBackdropOpacity } = opts;
141
+ /**
142
+ * If the backdropBreakpoint is undefined, then the backdrop
143
+ * should always fade in. If the backdropBreakpoint came before the
144
+ * current breakpoint, then the backdrop should be fading in.
145
+ */
146
+ const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
147
+ let initialBackdrop = '0';
148
+ if (staticBackdropOpacity) {
149
+ initialBackdrop = 'calc(var(--backdrop-opacity)';
150
+ }
151
+ else if (shouldShowBackdrop) {
152
+ initialBackdrop = `calc(var(--backdrop-opacity) * ${currentBreakpoint})`;
153
+ }
154
+ const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
155
+ if (shouldShowBackdrop) {
156
+ backdropAnimation
157
+ .beforeStyles({
158
+ 'pointer-events': 'none',
159
+ })
160
+ .afterClearStyles(['pointer-events']);
161
+ }
162
+ const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
163
+ { offset: 0, opacity: 1, transform: 'translateY(100%)' },
164
+ { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
165
+ ]);
166
+ /**
167
+ * This allows the content to be scrollable at any breakpoint.
168
+ */
169
+ const contentAnimation = !expandToScroll
170
+ ? animation.createAnimation('contentAnimation').keyframes([
171
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
172
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
173
+ ])
174
+ : undefined;
175
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
176
+ };
177
+ const createSheetLeaveAnimation = (opts) => {
178
+ const { currentBreakpoint, backdropBreakpoint } = opts;
179
+ /**
180
+ * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
181
+ * is defined, so we need to account for that offset by figuring out
182
+ * what the current backdrop value should be.
183
+ */
184
+ const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
185
+ const defaultBackdrop = [
186
+ { offset: 0, opacity: backdropValue },
187
+ { offset: 1, opacity: 0 },
188
+ ];
189
+ const customBackdrop = [
190
+ { offset: 0, opacity: backdropValue },
191
+ { offset: backdropBreakpoint, opacity: 0 },
192
+ { offset: 1, opacity: 0 },
193
+ ];
194
+ const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
195
+ const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
196
+ { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
197
+ { offset: 1, opacity: 1, transform: `translateY(100%)` },
198
+ ]);
199
+ return { wrapperAnimation, backdropAnimation };
200
+ };
201
+
202
+ const createEnterAnimation$2 = () => {
203
+ const backdropAnimation = animation.createAnimation()
204
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
205
+ .beforeStyles({
206
+ 'pointer-events': 'none',
207
+ })
208
+ .afterClearStyles(['pointer-events']);
209
+ const wrapperAnimation = animation.createAnimation().keyframes([
210
+ { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
211
+ { offset: 1, opacity: 1, transform: `translateY(0px)` },
212
+ ]);
213
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
214
+ };
215
+ /**
216
+ * Ionic Modal Enter Animation
217
+ */
218
+ const ionicEnterAnimation = (baseEl, opts) => {
219
+ const { currentBreakpoint, expandToScroll } = opts;
220
+ const root = helpers.getElementRoot(baseEl);
221
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$2();
222
+ backdropAnimation.addElement(root.querySelector('ion-backdrop'));
223
+ wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
224
+ // The content animation is only added if scrolling is enabled for
225
+ // all the breakpoints.
226
+ !expandToScroll && contentAnimation?.addElement(baseEl.querySelector('.ion-page'));
227
+ backdropAnimation.duration(300).easing('ease-out');
228
+ wrapperAnimation.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
229
+ contentAnimation?.duration(400).easing('cubic-bezier(0.32, 0.68, 0, 1)');
230
+ const baseAnimation = animation.createAnimation().addElement(baseEl).addAnimation([backdropAnimation, wrapperAnimation]);
231
+ if (contentAnimation) {
232
+ baseAnimation.addAnimation(contentAnimation);
233
+ }
234
+ return baseAnimation;
235
+ };
236
+
137
237
  /**
138
238
  * Swiping is only possible when the content is scrolled to the top, so that we
139
239
  * do not interfere with scrolling, and never on content with a refresher.
@@ -145,8 +245,8 @@ const onModalHeightChange = (hostEl, callback) => {
145
245
  * synchronous operation, and `getScrollElement` is asynchronous.
146
246
  */
147
247
  const canSwipeOnContent = (contentEl) => {
148
- const scrollEl = index.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
149
- const hasRefresherInContent = !!index.findRefresherInContent(contentEl);
248
+ const scrollEl = index$1.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
249
+ const hasRefresherInContent = !!index$1.findRefresherInContent(contentEl);
150
250
  return !hasRefresherInContent && scrollEl.scrollTop === 0;
151
251
  };
152
252
  const handleCanDismiss = async (el, animation) => {
@@ -166,7 +266,7 @@ const handleCanDismiss = async (el, animation) => {
166
266
  * If the function returns `true`,
167
267
  * then we can proceed with dismiss.
168
268
  */
169
- const shouldDismiss = await el.canDismiss(undefined, hardwareBackButton.GESTURE);
269
+ const shouldDismiss = await el.canDismiss(undefined, overlays.GESTURE);
170
270
  if (!shouldDismiss) {
171
271
  return;
172
272
  }
@@ -283,7 +383,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
283
383
  let initialScrollY = true;
284
384
  let lastStep = 0;
285
385
  const getScrollY = () => {
286
- if (contentEl && index.isIonContent(contentEl)) {
386
+ if (contentEl && index$1.isIonContent(contentEl)) {
287
387
  return contentEl.scrollY;
288
388
  /**
289
389
  * Custom scroll containers are intended to be
@@ -309,7 +409,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
309
409
  * swipe again. The target content will not
310
410
  * be the same between swipes.
311
411
  */
312
- contentEl = index.findClosestIonContent(target);
412
+ contentEl = index$1.findClosestIonContent(target);
313
413
  if (contentEl) {
314
414
  return canSwipeOnContent(contentEl);
315
415
  }
@@ -353,7 +453,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
353
453
  * happen at the same time as the gesture.
354
454
  */
355
455
  if (deltaY > 0 && contentEl) {
356
- index.disableContentScrollY(contentEl);
456
+ index$1.disableContentScrollY(contentEl);
357
457
  }
358
458
  animation.progressStart(true, isOpen ? 1 : 0);
359
459
  onDragStart();
@@ -367,7 +467,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
367
467
  * happen at the same time as the gesture.
368
468
  */
369
469
  if (deltaY > 0 && contentEl) {
370
- index.disableContentScrollY(contentEl);
470
+ index$1.disableContentScrollY(contentEl);
371
471
  }
372
472
  /**
373
473
  * If we are swiping on the content
@@ -462,7 +562,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
462
562
  isOpen = shouldComplete;
463
563
  gesture.enable(false);
464
564
  if (contentEl) {
465
- index.resetContentScrollY(contentEl, initialScrollY);
565
+ index$1.resetContentScrollY(contentEl, initialScrollY);
466
566
  }
467
567
  animation
468
568
  .onFinish(() => {
@@ -510,10 +610,10 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
510
610
  };
511
611
  onDragEnd(eventDetail);
512
612
  };
513
- const gesture = index$1.createGesture({
613
+ const gesture = index$2.createGesture({
514
614
  el,
515
615
  gestureName: 'modalSwipeToClose',
516
- gesturePriority: hardwareBackButton.OVERLAY_GESTURE_PRIORITY,
616
+ gesturePriority: overlays.OVERLAY_GESTURE_PRIORITY,
517
617
  direction: 'y',
518
618
  threshold: 10,
519
619
  canStart,
@@ -565,63 +665,6 @@ const calculateProgress = (el, deltaY) => {
565
665
  return Math.max(0, Math.min(1, roundedProgress));
566
666
  };
567
667
 
568
- const createSheetEnterAnimation = (opts) => {
569
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
570
- /**
571
- * If the backdropBreakpoint is undefined, then the backdrop
572
- * should always fade in. If the backdropBreakpoint came before the
573
- * current breakpoint, then the backdrop should be fading in.
574
- */
575
- const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;
576
- const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';
577
- const backdropAnimation = animation.createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);
578
- if (shouldShowBackdrop) {
579
- backdropAnimation
580
- .beforeStyles({
581
- 'pointer-events': 'none',
582
- })
583
- .afterClearStyles(['pointer-events']);
584
- }
585
- const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
586
- { offset: 0, opacity: 1, transform: 'translateY(100%)' },
587
- { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
588
- ]);
589
- /**
590
- * This allows the content to be scrollable at any breakpoint.
591
- */
592
- const contentAnimation = !expandToScroll
593
- ? animation.createAnimation('contentAnimation').keyframes([
594
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
595
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
596
- ])
597
- : undefined;
598
- return { wrapperAnimation, backdropAnimation, contentAnimation };
599
- };
600
- const createSheetLeaveAnimation = (opts) => {
601
- const { currentBreakpoint, backdropBreakpoint } = opts;
602
- /**
603
- * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint
604
- * is defined, so we need to account for that offset by figuring out
605
- * what the current backdrop value should be.
606
- */
607
- const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;
608
- const defaultBackdrop = [
609
- { offset: 0, opacity: backdropValue },
610
- { offset: 1, opacity: 0 },
611
- ];
612
- const customBackdrop = [
613
- { offset: 0, opacity: backdropValue },
614
- { offset: backdropBreakpoint, opacity: 0 },
615
- { offset: 1, opacity: 0 },
616
- ];
617
- const backdropAnimation = animation.createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);
618
- const wrapperAnimation = animation.createAnimation('wrapperAnimation').keyframes([
619
- { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
620
- { offset: 1, opacity: 1, transform: `translateY(100%)` },
621
- ]);
622
- return { wrapperAnimation, backdropAnimation };
623
- };
624
-
625
668
  const createEnterAnimation$1 = () => {
626
669
  const backdropAnimation = animation.createAnimation()
627
670
  .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
@@ -1012,18 +1055,31 @@ const mdLeaveAnimation = (baseEl, opts) => {
1012
1055
  return baseAnimation;
1013
1056
  };
1014
1057
 
1058
+ /** Gesture velocity arrives in pixels per millisecond; the thresholds below are per second. */
1059
+ const MILLISECONDS_PER_SECOND = 1000;
1060
+ /**
1061
+ * Flick speeds for the ionic theme's physics-based gesture, in pixels per
1062
+ * second. Both are magnitudes. Y grows downwards, so the upward threshold is
1063
+ * negated where it is compared.
1064
+ */
1065
+ const FLICK_DOWN_VELOCITY = 500;
1066
+ /**
1067
+ * How far below its starting breakpoint a slow drag has to end to dismiss the
1068
+ * sheet. 0.4 means the user dragged 40% of the way down from where they started.
1069
+ */
1070
+ const DISMISS_PROGRESS_RATIO = 0.4;
1015
1071
  /** How far ahead, in milliseconds, a drag's velocity is projected when snapping. */
1016
1072
  const FLICK_PROJECTION_MS = 350;
1017
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, onDragStart, onDragMove, onDragEnd) => {
1073
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange, usePhysicsBasedGesture, onDragStart, onDragMove, onDragEnd) => {
1018
1074
  // Defaults for the sheet swipe animation
1019
1075
  const defaultBackdrop = [
1020
1076
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1021
- { offset: 1, opacity: 0.01 },
1077
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0.01 },
1022
1078
  ];
1023
1079
  const customBackdrop = [
1024
1080
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
1025
- { offset: 1 - backdropBreakpoint, opacity: 0 },
1026
- { offset: 1, opacity: 0 },
1081
+ { offset: 1 - backdropBreakpoint, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1082
+ { offset: 1, opacity: usePhysicsBasedGesture ? 'var(--backdrop-opacity)' : 0 },
1027
1083
  ];
1028
1084
  const SheetDefaults = {
1029
1085
  WRAPPER_KEYFRAMES: [
@@ -1072,7 +1128,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1072
1128
  * as inputs should not be focusable outside
1073
1129
  * the sheet.
1074
1130
  */
1075
- baseEl.classList.remove(hardwareBackButton.FOCUS_TRAP_DISABLE_CLASS);
1131
+ baseEl.classList.remove(overlays.FOCUS_TRAP_DISABLE_CLASS);
1076
1132
  };
1077
1133
  const disableBackdrop = () => {
1078
1134
  baseEl.style.setProperty('pointer-events', 'none');
@@ -1084,7 +1140,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1084
1140
  * Adding this class disables focus trapping
1085
1141
  * for the sheet temporarily.
1086
1142
  */
1087
- baseEl.classList.add(hardwareBackButton.FOCUS_TRAP_DISABLE_CLASS);
1143
+ baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
1088
1144
  };
1089
1145
  /**
1090
1146
  * Toggles the footer to an absolute position while moving to prevent
@@ -1208,7 +1264,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1208
1264
  * For example, when using ion-nav within a modal it is possible to swipe, push a view,
1209
1265
  * and then swipe again. The target content will not be the same between swipes.
1210
1266
  */
1211
- const contentEl = index.findClosestIonContent(detail.event.target);
1267
+ const contentEl = index$1.findClosestIonContent(detail.event.target);
1212
1268
  currentBreakpoint = getCurrentBreakpoint();
1213
1269
  /**
1214
1270
  * Upwards swipes on the content cannot move the sheet anyway, so this only
@@ -1245,9 +1301,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1245
1301
  * which would impact performance significantly.
1246
1302
  */
1247
1303
  if (!expandToScroll) {
1248
- const targetEl = index.findClosestIonContent(detail.event.target);
1304
+ const targetEl = index$1.findClosestIonContent(detail.event.target);
1249
1305
  cachedScrollEl =
1250
- targetEl && index.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1306
+ targetEl && index$1.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1251
1307
  }
1252
1308
  /**
1253
1309
  * If expandToScroll is disabled, we need to swap
@@ -1413,6 +1469,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1413
1469
  */
1414
1470
  const shouldPreventDismiss = canDismiss && breakpoint === 0;
1415
1471
  const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;
1472
+ /**
1473
+ * Detect snap-back behavior: when the snap target is the same as the current breakpoint,
1474
+ * the user released before crossing the threshold to a new breakpoint.
1475
+ * Apply different timing and easing for snap-back vs. snap-to-new.
1476
+ */
1477
+ const isSnapBack = snapToBreakpoint === currentBreakpoint;
1478
+ const duration = usePhysicsBasedGesture ? (isSnapBack ? 300 : 400) : 500;
1479
+ const easing = isSnapBack ? 'cubic-bezier(0.34, 1.4, 0.64, 1)' : 'cubic-bezier(0.32, 0.68, 0, 1)';
1416
1480
  const shouldRemainOpen = snapToBreakpoint !== 0;
1417
1481
  currentBreakpoint = 0;
1418
1482
  /**
@@ -1427,11 +1491,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1427
1491
  backdropAnimation.keyframes([
1428
1492
  {
1429
1493
  offset: 0,
1430
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1494
+ opacity: usePhysicsBasedGesture
1495
+ ? 'var(--backdrop-opacity)'
1496
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,
1431
1497
  },
1432
1498
  {
1433
1499
  offset: 1,
1434
- opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1500
+ opacity: usePhysicsBasedGesture
1501
+ ? 'var(--backdrop-opacity)'
1502
+ : `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1435
1503
  },
1436
1504
  ]);
1437
1505
  if (contentAnimation) {
@@ -1449,6 +1517,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1449
1517
  }
1450
1518
  animation.progressStep(0);
1451
1519
  }
1520
+ /**
1521
+ * Apply the appropriate easing curve for this snap behavior.
1522
+ */
1523
+ if (usePhysicsBasedGesture) {
1524
+ animation.easing(easing);
1525
+ }
1452
1526
  /**
1453
1527
  * Gesture should remain disabled until the
1454
1528
  * snapping animation completes.
@@ -1538,7 +1612,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1538
1612
  * be added every time onEnd runs.
1539
1613
  */
1540
1614
  }, { oneTimeCallback: true })
1541
- .progressEnd(1, 0, animated ? 500 : 0);
1615
+ .progressEnd(1, 0, animated ? duration : 0);
1542
1616
  });
1543
1617
  };
1544
1618
  /**
@@ -1549,8 +1623,22 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1549
1623
  * @returns The snap breakpoint value
1550
1624
  */
1551
1625
  const calculateSnapBreakpoint = (deltaY, velocityY) => {
1626
+ if (usePhysicsBasedGesture) {
1627
+ return calculateVelocitySnapBreakpoint(deltaY, velocityY);
1628
+ }
1552
1629
  // Project the drag forward so a quick flick counts.
1553
- const currentProgress = calculateProgress(deltaY + velocityY * FLICK_PROJECTION_MS);
1630
+ return calculatePositionSnapBreakpoint(deltaY + velocityY * FLICK_PROJECTION_MS);
1631
+ };
1632
+ /**
1633
+ * Calculates the breakpoint based on the current deltaY.
1634
+ * This determines where the sheet should snap to when the user releases the
1635
+ * gesture.
1636
+ *
1637
+ * @param deltaY The change in Y position since the gesture started.
1638
+ * @returns The snap breakpoint value.
1639
+ */
1640
+ const calculatePositionSnapBreakpoint = (deltaY) => {
1641
+ const currentProgress = calculateProgress(deltaY);
1554
1642
  /**
1555
1643
  * Find and return the defined breakpoint that is closest to the
1556
1644
  * current progress.
@@ -1560,6 +1648,48 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1560
1648
  });
1561
1649
  return snapBreakpoint;
1562
1650
  };
1651
+ /**
1652
+ * Calculates the snap breakpoint using velocity-based logic.
1653
+ * This provides a more intuitive and responsive sheet behavior for the Ionic theme.
1654
+ *
1655
+ * Rules:
1656
+ * 1. Fast downward flick (> 500 px/s) always dismisses, regardless of position
1657
+ * 2. Fast upward flick (> 400 px/s) snaps to the next breakpoint above
1658
+ * 3. If dragged 40% below current snap point without fast upward flick, dismisses
1659
+ * 4. Otherwise, falls back to position-based snap (closest breakpoint)
1660
+ *
1661
+ * @param deltaY The change in Y position since gesture started
1662
+ * @param velocityY The velocity in pixels per millisecond
1663
+ * @returns The snap breakpoint value
1664
+ */
1665
+ const calculateVelocitySnapBreakpoint = (deltaY, velocityY) => {
1666
+ // Convert velocity from px/ms to px/s for easier threshold comparison
1667
+ const velocityYPerSecond = velocityY * MILLISECONDS_PER_SECOND;
1668
+ // Calculate current progress (0 = fully closed, 1 = fully expanded)
1669
+ const currentProgress = calculateProgress(deltaY);
1670
+ // Rule 1: Fast downward flick always dismisses
1671
+ if (velocityYPerSecond > FLICK_DOWN_VELOCITY) {
1672
+ return minBreakpoint;
1673
+ }
1674
+ // Rule 2: Fast upward flick moves to next breakpoint above
1675
+ if (velocityYPerSecond < -400) {
1676
+ // Find next breakpoint above current position
1677
+ const nextBreakpoint = breakpoints.find((bp) => bp > currentProgress);
1678
+ // If no breakpoint above, stay at max breakpoint
1679
+ return nextBreakpoint ?? maxBreakpoint;
1680
+ }
1681
+ // Rule 3: 40% dismissal rule (only if not flicking up and 0 breakpoint exists)
1682
+ if (minBreakpoint === 0 && currentBreakpoint > 0) {
1683
+ // Calculate how far we've moved below the current snap point
1684
+ const distanceBelowSnap = currentBreakpoint - currentProgress;
1685
+ const percentageBelowSnap = distanceBelowSnap / currentBreakpoint;
1686
+ if (percentageBelowSnap > DISMISS_PROGRESS_RATIO) {
1687
+ return 0;
1688
+ }
1689
+ }
1690
+ // Rule 4: Fallback to position-based snap (existing logic)
1691
+ return calculatePositionSnapBreakpoint(deltaY);
1692
+ };
1563
1693
  /**
1564
1694
  * Calculates how open the sheet is part way through a gesture, on the same
1565
1695
  * 0 to 1 scale as the breakpoints: 1 is fully open and 0 is fully closed.
@@ -1582,7 +1712,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1582
1712
  const progress = (calculateProgress(deltaY) - minBreakpoint) / (maxBreakpoint - minBreakpoint);
1583
1713
  return helpers.clamp(0, progress, 1);
1584
1714
  };
1585
- const gesture = index$1.createGesture({
1715
+ const gesture = index$2.createGesture({
1586
1716
  el: wrapperEl,
1587
1717
  gestureName: 'modalSheet',
1588
1718
  gesturePriority: 40,
@@ -1628,7 +1758,7 @@ const getRootSafeAreaTop = () => {
1628
1758
  if (cachedRootSafeAreaTop !== null) {
1629
1759
  return cachedRootSafeAreaTop;
1630
1760
  }
1631
- const doc = helpers.win?.document;
1761
+ const doc = index.win?.document;
1632
1762
  if (!doc?.body) {
1633
1763
  return 0;
1634
1764
  }
@@ -1654,7 +1784,7 @@ const getRootSafeAreaTop = () => {
1654
1784
  * that read and the observer starting is still reported.
1655
1785
  */
1656
1786
  const onRootSafeAreaTopChange = (callback) => {
1657
- return helpers.onCustomPropertyChange(helpers.win?.document?.body, '--ion-safe-area-top', callback, getRootSafeAreaTop());
1787
+ return helpers.onCustomPropertyChange(index.win?.document?.body, '--ion-safe-area-top', callback, getRootSafeAreaTop());
1658
1788
  };
1659
1789
  /**
1660
1790
  * Determines which viewport axes the modal spans so safe-area requirements
@@ -1671,8 +1801,8 @@ const onRootSafeAreaTopChange = (callback) => {
1671
1801
  */
1672
1802
  const getModalCoveredAxes = (hostEl) => {
1673
1803
  const styles = getComputedStyle(hostEl);
1674
- const width = hardwareBackButton.getOverlaySizeType(styles.getPropertyValue('--width'));
1675
- const height = hardwareBackButton.getOverlaySizeType(styles.getPropertyValue('--height'));
1804
+ const width = overlays.getOverlaySizeType(styles.getPropertyValue('--width'));
1805
+ const height = overlays.getOverlaySizeType(styles.getPropertyValue('--height'));
1676
1806
  if (width === 'fullscreen' && height === 'fullscreen') {
1677
1807
  return { vertical: true, horizontal: true };
1678
1808
  }
@@ -1692,7 +1822,7 @@ const getModalCoveredAxes = (hostEl) => {
1692
1822
  */
1693
1823
  const measureCoveredAxes = (hostEl) => {
1694
1824
  const wrapperEl = hostEl.shadowRoot?.querySelector('.modal-wrapper');
1695
- if (wrapperEl == null || helpers.win === undefined) {
1825
+ if (wrapperEl == null || index.win === undefined) {
1696
1826
  return { vertical: false, horizontal: false };
1697
1827
  }
1698
1828
  const wasHidden = hostEl.classList.contains('overlay-hidden');
@@ -1704,8 +1834,8 @@ const measureCoveredAxes = (hostEl) => {
1704
1834
  hostEl.classList.add('overlay-hidden');
1705
1835
  }
1706
1836
  return {
1707
- vertical: height >= helpers.win.innerHeight - EDGE_THRESHOLD,
1708
- horizontal: width >= helpers.win.innerWidth - EDGE_THRESHOLD,
1837
+ vertical: height >= index.win.innerHeight - EDGE_THRESHOLD,
1838
+ horizontal: width >= index.win.innerWidth - EDGE_THRESHOLD,
1709
1839
  };
1710
1840
  };
1711
1841
  /**
@@ -1774,8 +1904,8 @@ const getInitialSafeAreaConfig = (context) => {
1774
1904
  */
1775
1905
  const getPositionBasedSafeAreaConfig = (wrapperEl) => {
1776
1906
  const rect = wrapperEl.getBoundingClientRect();
1777
- const vh = helpers.win?.innerHeight ?? 0;
1778
- const vw = helpers.win?.innerWidth ?? 0;
1907
+ const vh = index.win?.innerHeight ?? 0;
1908
+ const vw = index.win?.innerWidth ?? 0;
1779
1909
  // Only apply safe-area to sides where modal overlaps with screen edge
1780
1910
  return {
1781
1911
  top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
@@ -1808,28 +1938,30 @@ const clearSafeAreaOverrides = (hostEl) => {
1808
1938
  hostEl.style.removeProperty('--ion-safe-area-right');
1809
1939
  };
1810
1940
 
1811
- const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
1941
+ const modalIonicCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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-elevation-3, var(--token-primitives-base-white, #ffffff));--box-shadow:var(--token-elevation-4, var(--token-shadow-offset-0, 0px) var(--token-shadow-offset-15, 15px) var(--token-shadow-blur-48, 48px) var(--token-shadow-spread-0, 0px) var(--token-shadow-7, rgba(0, 0, 0, 0.18)), var(--token-shadow-offset-0, 0px) var(--token-shadow-offset-3, 3px) var(--token-shadow-blur-12, 12px) var(--token-shadow-spread-0, 0px) var(--token-shadow-5, rgba(0, 0, 0, 0.12)));--backdrop-opacity:0.7;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}: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, #e6eaee)}.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)))}`;
1942
+
1943
+ const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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}`;
1812
1944
 
1813
- const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
1945
+ const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:100%;--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{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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}`;
1814
1946
 
1815
1947
  const Modal = class {
1816
1948
  constructor(hostRef) {
1817
- index$2.registerInstance(this, hostRef);
1818
- this.didPresent = index$2.createEvent(this, "ionModalDidPresent", 7);
1819
- this.willPresent = index$2.createEvent(this, "ionModalWillPresent", 7);
1820
- this.willDismiss = index$2.createEvent(this, "ionModalWillDismiss", 7);
1821
- this.didDismiss = index$2.createEvent(this, "ionModalDidDismiss", 7);
1822
- this.ionBreakpointDidChange = index$2.createEvent(this, "ionBreakpointDidChange", 7);
1823
- this.didPresentShorthand = index$2.createEvent(this, "didPresent", 7);
1824
- this.willPresentShorthand = index$2.createEvent(this, "willPresent", 7);
1825
- this.willDismissShorthand = index$2.createEvent(this, "willDismiss", 7);
1826
- this.didDismissShorthand = index$2.createEvent(this, "didDismiss", 7);
1827
- this.ionMount = index$2.createEvent(this, "ionMount", 7);
1828
- this.ionDragStart = index$2.createEvent(this, "ionDragStart", 7);
1829
- this.ionDragMove = index$2.createEvent(this, "ionDragMove", 7);
1830
- this.ionDragEnd = index$2.createEvent(this, "ionDragEnd", 7);
1949
+ index$3.registerInstance(this, hostRef);
1950
+ this.didPresent = index$3.createEvent(this, "ionModalDidPresent", 7);
1951
+ this.willPresent = index$3.createEvent(this, "ionModalWillPresent", 7);
1952
+ this.willDismiss = index$3.createEvent(this, "ionModalWillDismiss", 7);
1953
+ this.didDismiss = index$3.createEvent(this, "ionModalDidDismiss", 7);
1954
+ this.ionBreakpointDidChange = index$3.createEvent(this, "ionBreakpointDidChange", 7);
1955
+ this.didPresentShorthand = index$3.createEvent(this, "didPresent", 7);
1956
+ this.willPresentShorthand = index$3.createEvent(this, "willPresent", 7);
1957
+ this.willDismissShorthand = index$3.createEvent(this, "willDismiss", 7);
1958
+ this.didDismissShorthand = index$3.createEvent(this, "didDismiss", 7);
1959
+ this.ionMount = index$3.createEvent(this, "ionMount", 7);
1960
+ this.ionDragStart = index$3.createEvent(this, "ionDragStart", 7);
1961
+ this.ionDragMove = index$3.createEvent(this, "ionDragMove", 7);
1962
+ this.ionDragEnd = index$3.createEvent(this, "ionDragEnd", 7);
1831
1963
  this.lockController = lockController.createLockController();
1832
- this.triggerController = hardwareBackButton.createTriggerController();
1964
+ this.triggerController = overlays.createTriggerController();
1833
1965
  this.coreDelegate = frameworkDelegate.CoreDelegate();
1834
1966
  this.isSheetModal = false;
1835
1967
  this.inheritedAttributes = {};
@@ -1975,7 +2107,7 @@ const Modal = class {
1975
2107
  */
1976
2108
  return;
1977
2109
  }
1978
- this.dismiss(undefined, hardwareBackButton.BACKDROP);
2110
+ this.dismiss(undefined, overlays.BACKDROP);
1979
2111
  };
1980
2112
  this.onLifecycle = (modalEvent) => {
1981
2113
  const el = this.usersElement;
@@ -2073,7 +2205,7 @@ const Modal = class {
2073
2205
  }
2074
2206
  connectedCallback() {
2075
2207
  const { el } = this;
2076
- hardwareBackButton.prepareOverlay(el);
2208
+ overlays.prepareOverlay(el);
2077
2209
  this.triggerChanged();
2078
2210
  // A disconnect tears down state this presentation still needs and cannot
2079
2211
  // tell a re-insert from a removal, so put it back.
@@ -2083,7 +2215,7 @@ const Modal = class {
2083
2215
  // A relocation from `willPresent` reaches these before `present()` has
2084
2216
  // applied the lock, so they apply it instead. Both are idempotent.
2085
2217
  if (this.presented) {
2086
- hardwareBackButton.restoreRootFocusTrapAccessibility(el);
2218
+ overlays.restoreRootFocusTrapAccessibility(el);
2087
2219
  this.initParentRemovalObserver();
2088
2220
  }
2089
2221
  }
@@ -2096,7 +2228,7 @@ const Modal = class {
2096
2228
  this.cleanupSafeAreaOverrides();
2097
2229
  // Clean up aria-hidden if removed without dismiss() being called
2098
2230
  if (this.presented) {
2099
- hardwareBackButton.cleanupRootFocusTrapAccessibility();
2231
+ overlays.cleanupRootFocusTrapAccessibility();
2100
2232
  }
2101
2233
  }
2102
2234
  componentWillLoad() {
@@ -2146,10 +2278,10 @@ const Modal = class {
2146
2278
  this.currentBreakpoint = this.initialBreakpoint;
2147
2279
  }
2148
2280
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
2149
- index$2.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
2281
+ index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
2150
2282
  }
2151
2283
  if (!this.htmlAttributes?.id) {
2152
- hardwareBackButton.setOverlayId(this.el);
2284
+ overlays.setOverlayId(this.el);
2153
2285
  }
2154
2286
  }
2155
2287
  componentDidLoad() {
@@ -2246,7 +2378,7 @@ const Modal = class {
2246
2378
  * get the transition incorrect.
2247
2379
  */
2248
2380
  if (helpers.hasLazyBuild(el)) {
2249
- await index$3.deepReady(this.usersElement);
2381
+ await index$4.deepReady(this.usersElement);
2250
2382
  /**
2251
2383
  * If keepContentsMounted="true" then the
2252
2384
  * JS Framework has already mounted the inner
@@ -2257,9 +2389,9 @@ const Modal = class {
2257
2389
  */
2258
2390
  }
2259
2391
  else if (!this.keepContentsMounted) {
2260
- await index$3.waitForMount();
2392
+ await index$4.waitForMount();
2261
2393
  }
2262
- index$2.writeTask(() => this.el.classList.add('show-modal'));
2394
+ index$3.writeTask(() => this.el.classList.add('show-modal'));
2263
2395
  // Recalculate isSheetModal before safe-area setup because framework
2264
2396
  // bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
2265
2397
  this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
@@ -2280,11 +2412,12 @@ const Modal = class {
2280
2412
  this.statusBarStyle = await StatusBar.getStyle();
2281
2413
  setCardStatusBarDark();
2282
2414
  }
2283
- await hardwareBackButton.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
2415
+ await overlays.present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, ionicEnterAnimation, {
2284
2416
  presentingEl: presentingElement,
2285
2417
  currentBreakpoint: this.initialBreakpoint,
2286
2418
  backdropBreakpoint: this.backdropBreakpoint,
2287
2419
  expandToScroll: this.expandToScroll,
2420
+ staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
2288
2421
  });
2289
2422
  }
2290
2423
  finally {
@@ -2345,14 +2478,14 @@ const Modal = class {
2345
2478
  // All of the elements needed for the swipe gesture
2346
2479
  // should be in the DOM and referenced by now, except
2347
2480
  // for the presenting el
2348
- const animationBuilder = this.leaveAnimation || index$2.config.get('modalLeave', iosLeaveAnimation);
2481
+ const animationBuilder = this.leaveAnimation || index$3.config.get('modalLeave', iosLeaveAnimation);
2349
2482
  const ani = (this.animation = animationBuilder(el, {
2350
2483
  presentingEl: this.presentingElement,
2351
2484
  expandToScroll: this.expandToScroll,
2352
2485
  }));
2353
- const contentEl = index.findIonContent(el);
2486
+ const contentEl = index$1.findIonContent(el);
2354
2487
  if (!contentEl) {
2355
- index.printIonContentErrorMsg(el);
2488
+ index$1.printIonContentErrorMsg(el);
2356
2489
  return;
2357
2490
  }
2358
2491
  const statusBarStyle = this.statusBarStyle ?? Style.Default;
@@ -2364,12 +2497,13 @@ const Modal = class {
2364
2497
  if (!wrapperEl || initialBreakpoint === undefined) {
2365
2498
  return;
2366
2499
  }
2367
- const animationBuilder = this.enterAnimation || index$2.config.get('modalEnter', iosEnterAnimation);
2500
+ const animationBuilder = this.enterAnimation || index$3.config.get('modalEnter', iosEnterAnimation);
2368
2501
  const ani = (this.animation = animationBuilder(this.el, {
2369
2502
  presentingEl: this.presentingElement,
2370
2503
  currentBreakpoint: initialBreakpoint,
2371
2504
  backdropBreakpoint,
2372
2505
  expandToScroll: this.expandToScroll,
2506
+ staticBackdropOpacity: ionicGlobal.getIonTheme(this) === 'ionic',
2373
2507
  }));
2374
2508
  ani.progressStart(true, 1);
2375
2509
  const { gesture, moveSheetToBreakpoint, resetContentScroll } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => this.currentBreakpoint ?? 0, () => this.sheetOnDismiss(), (breakpoint) => {
@@ -2377,7 +2511,7 @@ const Modal = class {
2377
2511
  this.currentBreakpoint = breakpoint;
2378
2512
  this.ionBreakpointDidChange.emit({ breakpoint });
2379
2513
  }
2380
- }, () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2514
+ }, ionicGlobal.getIonTheme(this) === 'ionic', () => this.onDragStart(), (detail) => this.onDragMove(detail), (detail) => this.onDragEnd(detail));
2381
2515
  this.gesture = gesture;
2382
2516
  this.moveSheetToBreakpoint = moveSheetToBreakpoint;
2383
2517
  this.resetSheetContentScroll = resetContentScroll;
@@ -2467,7 +2601,7 @@ const Modal = class {
2467
2601
  this.animation.onFinish(async () => {
2468
2602
  this.currentBreakpoint = 0;
2469
2603
  this.ionBreakpointDidChange.emit({ breakpoint: this.currentBreakpoint });
2470
- await this.dismiss(undefined, hardwareBackButton.GESTURE);
2604
+ await this.dismiss(undefined, overlays.GESTURE);
2471
2605
  this.gestureAnimationDismissing = false;
2472
2606
  });
2473
2607
  }
@@ -2493,7 +2627,7 @@ const Modal = class {
2493
2627
  */
2494
2628
  setCardStatusBarDefault(this.statusBarStyle);
2495
2629
  this.animation.onFinish(async () => {
2496
- await this.dismiss(undefined, hardwareBackButton.GESTURE);
2630
+ await this.dismiss(undefined, overlays.GESTURE);
2497
2631
  this.gestureAnimationDismissing = false;
2498
2632
  });
2499
2633
  }
@@ -2508,7 +2642,7 @@ const Modal = class {
2508
2642
  * For example, `cancel` or `backdrop`.
2509
2643
  */
2510
2644
  async dismiss(data, role) {
2511
- if (this.gestureAnimationDismissing && role !== hardwareBackButton.GESTURE) {
2645
+ if (this.gestureAnimationDismissing && role !== overlays.GESTURE) {
2512
2646
  return false;
2513
2647
  }
2514
2648
  // Cancel any pending resize timeout to prevent stale updates during dismiss
@@ -2550,7 +2684,7 @@ const Modal = class {
2550
2684
  window.removeEventListener(keyboard.KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
2551
2685
  this.keyboardOpenCallback = undefined;
2552
2686
  }
2553
- const dismissed = await hardwareBackButton.dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
2687
+ const dismissed = await overlays.dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
2554
2688
  presentingEl: presentingElement,
2555
2689
  currentBreakpoint: this.currentBreakpoint ?? this.initialBreakpoint,
2556
2690
  backdropBreakpoint: this.backdropBreakpoint,
@@ -2559,7 +2693,7 @@ const Modal = class {
2559
2693
  if (dismissed) {
2560
2694
  const { delegate } = this.getDelegate();
2561
2695
  await frameworkDelegate.detachComponent(delegate, this.usersElement);
2562
- index$2.writeTask(() => this.el.classList.remove('show-modal'));
2696
+ index$3.writeTask(() => this.el.classList.remove('show-modal'));
2563
2697
  if (this.animation) {
2564
2698
  this.animation.destroy();
2565
2699
  }
@@ -2587,13 +2721,13 @@ const Modal = class {
2587
2721
  * Returns a promise that resolves when the modal did dismiss.
2588
2722
  */
2589
2723
  onDidDismiss() {
2590
- return hardwareBackButton.eventMethod(this.el, 'ionModalDidDismiss');
2724
+ return overlays.eventMethod(this.el, 'ionModalDidDismiss');
2591
2725
  }
2592
2726
  /**
2593
2727
  * Returns a promise that resolves when the modal will dismiss.
2594
2728
  */
2595
2729
  onWillDismiss() {
2596
- return hardwareBackButton.eventMethod(this.el, 'ionModalWillDismiss');
2730
+ return overlays.eventMethod(this.el, 'ionModalWillDismiss');
2597
2731
  }
2598
2732
  /**
2599
2733
  * Move a sheet style modal to a specific breakpoint.
@@ -2603,11 +2737,11 @@ const Modal = class {
2603
2737
  */
2604
2738
  async setCurrentBreakpoint(breakpoint) {
2605
2739
  if (!this.isSheetModal) {
2606
- index$2.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
2740
+ index$3.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
2607
2741
  return;
2608
2742
  }
2609
2743
  if (!this.breakpoints.includes(breakpoint)) {
2610
- index$2.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
2744
+ index$3.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
2611
2745
  return;
2612
2746
  }
2613
2747
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -2652,6 +2786,18 @@ const Modal = class {
2652
2786
  await this.setCurrentBreakpoint(nextBreakpoint);
2653
2787
  return true;
2654
2788
  }
2789
+ getShape() {
2790
+ const theme = ionicGlobal.getIonTheme(this);
2791
+ const { shape } = this;
2792
+ // TODO(ROU-11167): Remove theme check when shapes are defined for all themes.
2793
+ if (theme !== 'ionic') {
2794
+ return undefined;
2795
+ }
2796
+ if (shape === undefined) {
2797
+ return 'round';
2798
+ }
2799
+ return shape;
2800
+ }
2655
2801
  initViewTransitionListener() {
2656
2802
  // Only enable for iOS card modals when no custom animations are provided
2657
2803
  if (ionicGlobal.getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -3044,24 +3190,26 @@ const Modal = class {
3044
3190
  render() {
3045
3191
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
3046
3192
  const showHandle = handle !== false && isSheetModal;
3047
- const mode = ionicGlobal.getIonMode(this);
3048
- const isCardModal = presentingElement !== undefined && mode === 'ios';
3193
+ const theme$1 = ionicGlobal.getIonTheme(this);
3194
+ const isCardModal = presentingElement !== undefined && theme$1 === 'ios';
3049
3195
  const isHandleCycle = handleBehavior === 'cycle';
3196
+ const shape = this.getShape();
3050
3197
  const isSheetModalWithHandle = isSheetModal && showHandle;
3051
- return (index$2.h(index$2.Host, { key: '17a95bd7722bac2344bea041aff97db17f55c0cf', "no-router": true,
3198
+ return (index$3.h(index$3.Host, { key: 'd7d9e9f103fb1ac669da34819e6f460316cffa48', "no-router": true,
3052
3199
  // Allow the modal to be navigable when the handle is focusable
3053
3200
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
3054
3201
  zIndex: `${20000 + this.overlayIndex}`,
3055
3202
  }, class: {
3056
- [mode]: true,
3203
+ [theme$1]: true,
3057
3204
  ['modal-default']: !isCardModal && !isSheetModal,
3058
3205
  [`modal-card`]: isCardModal,
3059
3206
  [`modal-sheet`]: isSheetModal,
3207
+ [`modal-${shape}`]: shape !== undefined,
3060
3208
  [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll,
3061
3209
  'overlay-hidden': true,
3062
- [hardwareBackButton.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
3210
+ [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
3063
3211
  ...theme.getClassMap(this.cssClass),
3064
- }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, index$2.h("ion-backdrop", { key: '9dab1ef4771c0d847ba2be8672afbaa2748517f3', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$2.h("div", { key: '64af7ed1c5f552b61fc4b9387b926acc76c8a99a', class: "modal-shadow" }), index$2.h("div", { key: '7e76d77d5b2e8f0467bb793facf5aa86f8d01bbe',
3212
+ }, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, index$3.h("ion-backdrop", { key: '030d13dadaef45a24fd694478cf6583a637b9e9e', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), theme$1 === 'ios' && index$3.h("div", { key: '111f4df167615ee37f6db3f1000f6bd1a6b25fee', class: "modal-shadow" }), index$3.h("div", { key: '2720518be4e2701a5641f31e3f13336778f2fdbb',
3065
3213
  /*
3066
3214
  role and aria-modal must be used on the
3067
3215
  same element. They must also be set inside the
@@ -3074,11 +3222,11 @@ const Modal = class {
3074
3222
  without the tabindex focus() would be a no-op and screen readers
3075
3223
  may not properly announce the dialog and its content when it opens.
3076
3224
  */
3077
- role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (index$2.h("button", { key: '5efc0bb0a59adcc594ac48da9fd90e57908a7ffb', class: "modal-handle",
3225
+ role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (index$3.h("button", { key: '7b8d765349e94315383e15c59ae55bbf92b7834a', class: "modal-handle",
3078
3226
  // Prevents the handle from receiving keyboard focus when it does not cycle
3079
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), index$2.h("slot", { key: '6175fcd0b39c086b4e9eb9e96c4d631c2a86774b', onSlotchange: this.onSlotChange }))));
3227
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", "data-focus-order": "1", ref: (el) => (this.dragHandleEl = el) })), index$3.h("slot", { key: 'fb952f2216991352c002b796933d3dbee1397051', onSlotchange: this.onSlotChange }))));
3080
3228
  }
3081
- get el() { return index$2.getElement(this); }
3229
+ get el() { return index$3.getElement(this); }
3082
3230
  static get watchers() { return {
3083
3231
  "isOpen": [{
3084
3232
  "onIsOpenChange": 0
@@ -3098,6 +3246,7 @@ const LIFECYCLE_MAP = {
3098
3246
  ionModalDidDismiss: 'ionViewDidLeave',
3099
3247
  };
3100
3248
  Modal.style = {
3249
+ ionic: modalIonicCss(),
3101
3250
  ios: modalIosCss(),
3102
3251
  md: modalMdCss()
3103
3252
  };