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

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 (1139) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker-legacy-column.js +1 -1
  59. package/components/ion-picker-legacy.js +1 -1
  60. package/components/ion-picker.js +1 -1
  61. package/components/ion-popover.js +1 -1
  62. package/components/ion-progress-bar.js +1 -1
  63. package/components/ion-radio-group.js +1 -1
  64. package/components/ion-radio.js +1 -1
  65. package/components/ion-range.js +1 -1
  66. package/components/ion-refresher-content.js +1 -1
  67. package/components/ion-refresher.js +1 -1
  68. package/components/ion-reorder-group.js +1 -1
  69. package/components/ion-reorder.js +1 -1
  70. package/components/ion-ripple-effect.js +1 -1
  71. package/components/ion-route-redirect.js +1 -1
  72. package/components/ion-route.js +1 -1
  73. package/components/ion-router-link.js +1 -1
  74. package/components/ion-router-outlet.js +1 -1
  75. package/components/ion-router.js +1 -1
  76. package/components/ion-row.js +1 -1
  77. package/components/ion-searchbar.js +1 -1
  78. package/components/ion-segment-button.js +1 -1
  79. package/components/ion-segment-content.js +1 -1
  80. package/components/ion-segment-view.js +1 -1
  81. package/components/ion-segment.js +1 -1
  82. package/components/ion-select-modal.js +1 -1
  83. package/components/ion-select-option.js +1 -1
  84. package/components/ion-select-popover.js +1 -1
  85. package/components/ion-select.js +1 -1
  86. package/components/ion-skeleton-text.js +1 -1
  87. package/components/ion-spinner.js +1 -1
  88. package/components/ion-split-pane.js +1 -1
  89. package/components/ion-tab-bar.js +1 -1
  90. package/components/ion-tab-button.js +1 -1
  91. package/components/ion-tab.js +1 -1
  92. package/components/ion-tabs.js +1 -1
  93. package/components/ion-text.js +1 -1
  94. package/components/ion-textarea.js +1 -1
  95. package/components/ion-thumbnail.js +1 -1
  96. package/components/ion-title.js +1 -1
  97. package/components/ion-toast.js +1 -1
  98. package/components/ion-toggle.js +1 -1
  99. package/components/ion-toolbar.js +1 -1
  100. package/components/p--JUspHvy.js +4 -0
  101. package/components/{p-paDbTUL9.js → p-A3O24YmY.js} +1 -1
  102. package/components/p-ABkNVeU9.js +4 -0
  103. package/components/{p-CA4M5WkT.js → p-B-JJgYSG.js} +1 -1
  104. package/components/p-B9jFTlwE.js +4 -0
  105. package/components/p-BLmJ0zRm.js +4 -0
  106. package/components/p-BMI53wYL.js +4 -0
  107. package/components/p-BSEgsdFI.js +4 -0
  108. package/{dist/ionic/p-Cipl19Qe.js → components/p-BkKAANMJ.js} +1 -1
  109. package/components/p-BlIAuGv2.js +4 -0
  110. package/components/p-BmVRXR1y.js +4 -0
  111. package/components/p-Bnsn6KaP.js +4 -0
  112. package/components/p-BsBCoGa-.js +4 -0
  113. package/components/p-Bz0dSlXZ.js +4 -0
  114. package/components/p-CHqRYvYm.js +4 -0
  115. package/components/p-CIGNaXM1.js +4 -0
  116. package/components/p-CO7fmmxt.js +4 -0
  117. package/components/p-CQGnMY3n.js +4 -0
  118. package/components/p-CSZf8_j0.js +4 -0
  119. package/components/{p-CpHPq11n.js → p-C_hpsif8.js} +1 -1
  120. package/components/p-C_xFdyXe.js +4 -0
  121. package/components/{p-BE21dB_a.js → p-Cf2jSDS8.js} +1 -1
  122. package/components/p-Cfx4M1Bn.js +4 -0
  123. package/components/{p-Ch8jco3x.js → p-ChIZKXUu.js} +1 -1
  124. package/components/p-CkMSOsFF.js +4 -0
  125. package/components/p-CmR5uXej.js +4 -0
  126. package/components/p-Cp4GRDqq.js +4 -0
  127. package/components/p-CsNJ1ULL.js +4 -0
  128. package/components/p-CtWGkNnJ.js +4 -0
  129. package/components/p-CzCbeKys.js +4 -0
  130. package/components/p-D-aHdMxW.js +4 -0
  131. package/components/p-D0d8qTwj.js +4 -0
  132. package/components/{p-znZTPd7u.js → p-D13Eaw-8.js} +1 -1
  133. package/components/p-D3xo7hqU.js +4 -0
  134. package/components/p-D6Ynv7Xh.js +4 -0
  135. package/components/{p-CzlL9T_X.js → p-D7uN07a3.js} +1 -1
  136. package/components/p-DCnGU1fF.js +4 -0
  137. package/components/p-DGvrK8dD.js +4 -0
  138. package/components/p-DJztqcrH.js +4 -0
  139. package/components/p-DOFCbuQR.js +4 -0
  140. package/components/p-DRxvM2Ic.js +4 -0
  141. package/components/p-DV5mPYQS.js +4 -0
  142. package/components/p-DWkAgceV.js +4 -0
  143. package/components/p-DiVJyqlX.js +4 -0
  144. package/components/{p-BZwQa9ey.js → p-DqLB8yFQ.js} +1 -1
  145. package/components/p-DqZAXv2t.js +4 -0
  146. package/components/{p-miSYSxcc.js → p-Osve4qkc.js} +1 -1
  147. package/components/p-R8zmRi4c.js +4 -0
  148. package/components/p-SLS1rDZM.js +4 -0
  149. package/components/p-ZjP4CjeZ.js +4 -0
  150. package/components/p-aJ6PBUvj.js +4 -0
  151. package/{dist/ionic/p-C7urd_wE.js → components/p-cyNmxje6.js} +1 -1
  152. package/components/p-gAg0kXZp.js +4 -0
  153. package/components/p-gYiraiT_.js +4 -0
  154. package/components/p-j5IxBIan.js +4 -0
  155. package/components/p-k_E4tX5Z.js +4 -0
  156. package/components/p-oD4kcBRX.js +4 -0
  157. package/components/p-rCa2eL0j.js +4 -0
  158. package/components/p-vRBNsYbs.js +4 -0
  159. package/components/p-yEQxMl70.js +4 -0
  160. package/components/p-yzCsOZE2.js +4 -0
  161. package/css/core.css +1 -1
  162. package/css/core.css.map +1 -1
  163. package/css/display.css +1 -1
  164. package/css/display.css.map +1 -1
  165. package/css/flex-utils.css +1 -1
  166. package/css/flex-utils.css.map +1 -1
  167. package/css/float-elements.css.map +1 -1
  168. package/css/global.bundle.css.map +1 -1
  169. package/css/ionic-swiper.css +1 -1
  170. package/css/ionic-swiper.css.map +1 -1
  171. package/css/ionic.bundle.css +1 -1
  172. package/css/ionic.bundle.css.map +1 -1
  173. package/css/normalize.css.map +1 -1
  174. package/css/padding.css.map +1 -1
  175. package/css/palettes/dark.always.css.map +1 -1
  176. package/css/palettes/dark.class.css.map +1 -1
  177. package/css/palettes/dark.system.css.map +1 -1
  178. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  179. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  180. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  181. package/css/palettes/high-contrast.always.css.map +1 -1
  182. package/css/palettes/high-contrast.class.css.map +1 -1
  183. package/css/palettes/high-contrast.system.css.map +1 -1
  184. package/css/structure.css.map +1 -1
  185. package/css/text-alignment.css.map +1 -1
  186. package/css/text-transformation.css.map +1 -1
  187. package/css/typography.css.map +1 -1
  188. package/css/utils.bundle.css +1 -1
  189. package/css/utils.bundle.css.map +1 -1
  190. package/dist/cjs/{animation-qlGmEn5Y.js → animation-Ch16T-Nb.js} +3 -3
  191. package/dist/cjs/{app-globals-CtK-3pCu.js → app-globals-Dd89e0MR.js} +1 -1
  192. package/dist/cjs/{button-active-CugpWmFI.js → button-active-COnxOe4X.js} +2 -2
  193. package/dist/cjs/{capacitor-BixsAzyb.js → capacitor-DmA66EwP.js} +3 -3
  194. package/dist/cjs/config-D6C-KlA9.js +201 -0
  195. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  196. package/dist/cjs/{format-COAsdjOc.js → format-BUFWn4Bn.js} +1 -1
  197. package/dist/cjs/{framework-delegate-CJT_QJQI.js → framework-delegate-BgU6U9Ez.js} +2 -4
  198. package/dist/cjs/{haptic-BFgF-QCg.js → haptic-ClPPQ_PS.js} +1 -1
  199. package/dist/cjs/hardware-back-button-CXmUnTJC.js +121 -0
  200. package/dist/cjs/{helpers-Fh1iXsX9.js → helpers-gntk8bfm.js} +4 -71
  201. package/dist/cjs/{index-D94mERjz.js → index-BS2uhvhT.js} +4 -4
  202. package/dist/cjs/{index-C1knGA9x.js → index-BfaXsATC.js} +4 -53
  203. package/dist/cjs/{index-CNicxECl.js → index-BhhuJ1Yx.js} +8 -9
  204. package/dist/cjs/{index-DRFkZu3V.js → index-BiRrzGDi.js} +2 -2
  205. package/dist/cjs/index-DkNv4J_i.js +10 -0
  206. package/dist/cjs/{index-CxDnX7hd.js → index-DqmRDbxg.js} +1 -3
  207. package/dist/cjs/{index-CM8iGvyx.js → index-ooS8B4p9.js} +15 -15
  208. package/dist/cjs/index.cjs.js +16 -16
  209. package/dist/cjs/{input-shims-C8NCYfWv.js → input-shims-Bn1cXfCM.js} +17 -18
  210. package/dist/cjs/{input.utils-CYZZsbdf.js → input.utils-BwhxZooW.js} +5 -5
  211. package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
  212. package/dist/cjs/ion-action-sheet.cjs.entry.js +22 -41
  213. package/dist/cjs/ion-alert.cjs.entry.js +41 -78
  214. package/dist/cjs/ion-app_8.cjs.entry.js +194 -458
  215. package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
  216. package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
  217. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
  218. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
  219. package/dist/cjs/ion-button_2.cjs.entry.js +24 -61
  220. package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
  221. package/dist/cjs/ion-checkbox.cjs.entry.js +17 -34
  222. package/dist/cjs/ion-chip.cjs.entry.js +9 -50
  223. package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
  224. package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
  225. package/dist/cjs/ion-datetime_3.cjs.entry.js +46 -121
  226. package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
  227. package/dist/cjs/ion-img.cjs.entry.js +4 -8
  228. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -93
  229. package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
  230. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
  231. package/dist/cjs/ion-input.cjs.entry.js +40 -132
  232. package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
  233. package/dist/cjs/ion-item_8.cjs.entry.js +50 -121
  234. package/dist/cjs/ion-loading.cjs.entry.js +19 -22
  235. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
  236. package/dist/cjs/ion-modal.cjs.entry.js +138 -262
  237. package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
  238. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
  239. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
  240. package/dist/cjs/ion-picker.cjs.entry.js +6 -10
  241. package/dist/cjs/ion-popover.cjs.entry.js +19 -21
  242. package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
  243. package/dist/cjs/ion-radio_2.cjs.entry.js +18 -36
  244. package/dist/cjs/ion-range.cjs.entry.js +13 -20
  245. package/dist/cjs/ion-refresher_2.cjs.entry.js +23 -42
  246. package/dist/cjs/ion-reorder_2.cjs.entry.js +14 -38
  247. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
  248. package/dist/cjs/ion-route_4.cjs.entry.js +10 -11
  249. package/dist/cjs/ion-searchbar.cjs.entry.js +32 -146
  250. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  251. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
  252. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
  253. package/dist/cjs/ion-select-modal.cjs.entry.js +38 -114
  254. package/dist/cjs/ion-select_3.cjs.entry.js +108 -557
  255. package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
  256. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
  257. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +28 -150
  258. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
  259. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  260. package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
  261. package/dist/cjs/ion-toast.cjs.entry.js +46 -70
  262. package/dist/cjs/ion-toggle.cjs.entry.js +26 -82
  263. package/dist/cjs/ionic-global-BerQGEpE.js +151 -0
  264. package/dist/cjs/ionic.cjs.js +4 -4
  265. package/dist/cjs/{ios.transition-BgDCUY4Y.js → ios.transition-IMJRwn29.js} +5 -7
  266. package/dist/cjs/{item-multiple-inputs-DKn76MYO.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
  267. package/dist/cjs/{keyboard-BbZXOwZg.js → keyboard-UuAS4D_9.js} +1 -1
  268. package/dist/cjs/keyboard-controller-GXBiBRKS.js +167 -0
  269. package/dist/cjs/{keyboard-nne7rvBK.js → keyboard-hHzlEQpk.js} +3 -4
  270. package/dist/cjs/loader.cjs.js +4 -4
  271. package/dist/cjs/{md.transition-Debf4tYr.js → md.transition-CgQZxcoT.js} +5 -6
  272. package/dist/cjs/{notch-controller-CFlPw7ER.js → notch-controller-_SwR025y.js} +4 -4
  273. package/dist/cjs/{overlays-DYBUkNQu.js → overlays-DuSEMhIW.js} +18 -309
  274. package/dist/cjs/{status-tap-hwqc0yb_.js → status-tap-CSvBT7FV.js} +3 -4
  275. package/dist/cjs/{swipe-back-DqQx5QCp.js → swipe-back-CuIiziaa.js} +2 -3
  276. package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
  277. package/dist/cjs/validity-BpS37YFM.js +19 -0
  278. package/dist/collection/collection-manifest.json +1 -9
  279. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  280. package/dist/collection/components/accordion/accordion.js +27 -41
  281. package/dist/collection/components/accordion/accordion.md.css +59 -67
  282. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  283. package/dist/collection/components/accordion-group/accordion-group.js +8 -44
  284. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  285. package/dist/collection/components/action-sheet/action-sheet.ios.css +11 -367
  286. package/dist/collection/components/action-sheet/action-sheet.js +13 -32
  287. package/dist/collection/components/action-sheet/action-sheet.md.css +10 -306
  288. package/dist/collection/components/alert/alert.ios.css +19 -481
  289. package/dist/collection/components/alert/alert.js +30 -67
  290. package/dist/collection/components/alert/alert.md.css +29 -464
  291. package/dist/collection/components/app/app.js +83 -15
  292. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  293. package/dist/collection/components/avatar/avatar.js +4 -120
  294. package/dist/collection/components/avatar/avatar.md.css +0 -51
  295. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  296. package/dist/collection/components/back-button/back-button.js +19 -27
  297. package/dist/collection/components/back-button/back-button.md.css +48 -60
  298. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  299. package/dist/collection/components/backdrop/backdrop.js +6 -12
  300. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  301. package/dist/collection/components/badge/badge.ios.css +12 -137
  302. package/dist/collection/components/badge/badge.js +9 -145
  303. package/dist/collection/components/badge/badge.md.css +12 -122
  304. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  305. package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
  306. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  307. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  308. package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
  309. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  310. package/dist/collection/components/button/button.ios.css +46 -154
  311. package/dist/collection/components/button/button.js +27 -63
  312. package/dist/collection/components/button/button.md.css +50 -150
  313. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  314. package/dist/collection/components/buttons/buttons.js +9 -15
  315. package/dist/collection/components/buttons/buttons.md.css +3 -55
  316. package/dist/collection/components/card/card.ios.css +14 -65
  317. package/dist/collection/components/card/card.js +10 -41
  318. package/dist/collection/components/card/card.md.css +14 -65
  319. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  320. package/dist/collection/components/card-content/card-content.js +10 -12
  321. package/dist/collection/components/card-content/card-content.md.css +35 -20
  322. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  323. package/dist/collection/components/card-header/card-header.js +10 -13
  324. package/dist/collection/components/card-header/card-header.md.css +15 -27
  325. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  326. package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
  327. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  328. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  329. package/dist/collection/components/card-title/card-title.js +8 -11
  330. package/dist/collection/components/card-title/card-title.md.css +0 -73
  331. package/dist/collection/components/checkbox/checkbox.ios.css +117 -242
  332. package/dist/collection/components/checkbox/checkbox.js +14 -69
  333. package/dist/collection/components/checkbox/checkbox.md.css +118 -243
  334. package/dist/collection/components/chip/chip.ios.css +14 -67
  335. package/dist/collection/components/chip/chip.js +8 -108
  336. package/dist/collection/components/chip/chip.md.css +14 -67
  337. package/dist/collection/components/col/col.css +4 -192
  338. package/dist/collection/components/col/col.js +61 -211
  339. package/dist/collection/components/content/content.css +2 -47
  340. package/dist/collection/components/content/content.js +11 -16
  341. package/dist/collection/components/datetime/datetime.ios.css +106 -302
  342. package/dist/collection/components/datetime/datetime.js +20 -97
  343. package/dist/collection/components/datetime/datetime.md.css +96 -293
  344. package/dist/collection/components/datetime/utils/data.js +5 -5
  345. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
  346. package/dist/collection/components/datetime-button/datetime-button.js +8 -11
  347. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
  348. package/dist/collection/components/fab/fab.css +1 -25
  349. package/dist/collection/components/fab/fab.js +5 -9
  350. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  351. package/dist/collection/components/fab-button/fab-button.js +21 -36
  352. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  353. package/dist/collection/components/fab-list/fab-list.css +0 -12
  354. package/dist/collection/components/fab-list/fab-list.js +5 -9
  355. package/dist/collection/components/footer/footer.ios.css +6 -33
  356. package/dist/collection/components/footer/footer.js +25 -117
  357. package/dist/collection/components/footer/footer.md.css +0 -40
  358. package/dist/collection/components/grid/grid.css +0 -12
  359. package/dist/collection/components/grid/grid.js +5 -9
  360. package/dist/collection/components/header/header.ios.css +133 -178
  361. package/dist/collection/components/header/header.js +39 -181
  362. package/dist/collection/components/header/header.md.css +9 -199
  363. package/dist/collection/components/header/header.utils.js +13 -6
  364. package/dist/collection/components/img/img.js +2 -8
  365. package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
  366. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  367. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
  368. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  369. package/dist/collection/components/input/input.ios.css +137 -224
  370. package/dist/collection/components/input/input.js +45 -158
  371. package/dist/collection/components/input/input.md.css +209 -194
  372. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  373. package/dist/collection/components/input-otp/input-otp.js +7 -74
  374. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  375. package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
  376. package/dist/collection/components/item/item.ios.css +80 -120
  377. package/dist/collection/components/item/item.js +21 -56
  378. package/dist/collection/components/item/item.md.css +79 -131
  379. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  380. package/dist/collection/components/item-divider/item-divider.js +8 -11
  381. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  382. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  383. package/dist/collection/components/item-group/item-group.js +7 -13
  384. package/dist/collection/components/item-group/item-group.md.css +0 -12
  385. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  386. package/dist/collection/components/item-option/item-option.js +9 -73
  387. package/dist/collection/components/item-option/item-option.md.css +29 -136
  388. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  389. package/dist/collection/components/item-options/item-options.js +7 -13
  390. package/dist/collection/components/item-options/item-options.md.css +34 -77
  391. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  392. package/dist/collection/components/item-sliding/item-sliding.js +35 -421
  393. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  394. package/dist/collection/components/label/label.ios.css +0 -18
  395. package/dist/collection/components/label/label.js +8 -11
  396. package/dist/collection/components/label/label.md.css +0 -18
  397. package/dist/collection/components/list/list.ios.css +14 -54
  398. package/dist/collection/components/list/list.js +9 -48
  399. package/dist/collection/components/list/list.md.css +16 -56
  400. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  401. package/dist/collection/components/list-header/list-header.js +8 -11
  402. package/dist/collection/components/list-header/list-header.md.css +38 -82
  403. package/dist/collection/components/loading/loading.ios.css +1 -13
  404. package/dist/collection/components/loading/loading.js +11 -14
  405. package/dist/collection/components/loading/loading.md.css +1 -13
  406. package/dist/collection/components/menu/menu.ios.css +3 -15
  407. package/dist/collection/components/menu/menu.js +7 -12
  408. package/dist/collection/components/menu/menu.md.css +3 -15
  409. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  410. package/dist/collection/components/menu-button/menu-button.js +10 -26
  411. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  412. package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
  413. package/dist/collection/components/modal/animations/sheet.js +2 -8
  414. package/dist/collection/components/modal/gestures/sheet.js +10 -76
  415. package/dist/collection/components/modal/modal.ios.css +70 -178
  416. package/dist/collection/components/modal/modal.js +12 -50
  417. package/dist/collection/components/modal/modal.md.css +70 -178
  418. package/dist/collection/components/nav/nav.css +1 -7
  419. package/dist/collection/components/nav/nav.js +5 -11
  420. package/dist/collection/components/nav-link/nav-link.js +1 -5
  421. package/dist/collection/components/note/note.ios.css +0 -12
  422. package/dist/collection/components/note/note.js +8 -11
  423. package/dist/collection/components/note/note.md.css +0 -12
  424. package/dist/collection/components/picker/picker.ios.css +3 -15
  425. package/dist/collection/components/picker/picker.js +5 -8
  426. package/dist/collection/components/picker/picker.md.css +3 -15
  427. package/dist/collection/components/picker-column/picker-column.css +2 -9
  428. package/dist/collection/components/picker-column/picker-column.js +7 -8
  429. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  430. package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
  431. package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
  432. package/dist/collection/components/picker-legacy/picker.ios.css +1 -13
  433. package/dist/collection/components/picker-legacy/picker.js +6 -7
  434. package/dist/collection/components/picker-legacy/picker.md.css +1 -13
  435. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -12
  436. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -4
  437. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -12
  438. package/dist/collection/components/popover/popover.ios.css +1 -29
  439. package/dist/collection/components/popover/popover.js +15 -18
  440. package/dist/collection/components/popover/popover.md.css +1 -29
  441. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  442. package/dist/collection/components/progress-bar/progress-bar.js +7 -43
  443. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  444. package/dist/collection/components/radio/radio.ios.css +102 -207
  445. package/dist/collection/components/radio/radio.js +9 -14
  446. package/dist/collection/components/radio/radio.md.css +102 -207
  447. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  448. package/dist/collection/components/radio-group/radio-group.js +7 -48
  449. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  450. package/dist/collection/components/range/range.ios.css +85 -128
  451. package/dist/collection/components/range/range.js +10 -16
  452. package/dist/collection/components/range/range.md.css +85 -128
  453. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  454. package/dist/collection/components/refresher/refresher.js +8 -11
  455. package/dist/collection/components/refresher/refresher.md.css +2 -15
  456. package/dist/collection/components/refresher-content/refresher-content.js +7 -28
  457. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  458. package/dist/collection/components/reorder/reorder.js +6 -33
  459. package/dist/collection/components/reorder/reorder.md.css +0 -6
  460. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  461. package/dist/collection/components/reorder-group/reorder-group.js +4 -8
  462. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  463. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
  464. package/dist/collection/components/route/route.js +0 -4
  465. package/dist/collection/components/router/router.js +0 -4
  466. package/dist/collection/components/router-link/router-link.css +2 -8
  467. package/dist/collection/components/router-link/router-link.js +5 -9
  468. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  469. package/dist/collection/components/router-outlet/router-outlet.js +3 -6
  470. package/dist/collection/components/row/row.css +0 -16
  471. package/dist/collection/components/row/row.js +2 -9
  472. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  473. package/dist/collection/components/searchbar/searchbar.js +42 -191
  474. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  475. package/dist/collection/components/segment/segment.ios.css +2 -45
  476. package/dist/collection/components/segment/segment.js +8 -11
  477. package/dist/collection/components/segment/segment.md.css +2 -45
  478. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  479. package/dist/collection/components/segment-button/segment-button.js +8 -11
  480. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  481. package/dist/collection/components/segment-content/segment-content.js +1 -1
  482. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  483. package/dist/collection/components/segment-view/segment-view.js +4 -13
  484. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  485. package/dist/collection/components/select/select.ios.css +176 -348
  486. package/dist/collection/components/select/select.js +92 -521
  487. package/dist/collection/components/select/select.md.css +178 -364
  488. package/dist/collection/components/select-modal/select-modal.ios.css +0 -466
  489. package/dist/collection/components/select-modal/select-modal.js +30 -126
  490. package/dist/collection/components/select-modal/select-modal.md.css +0 -394
  491. package/dist/collection/components/select-option/select-option.js +4 -72
  492. package/dist/collection/components/select-popover/select-popover.ios.css +20 -302
  493. package/dist/collection/components/select-popover/select-popover.js +29 -89
  494. package/dist/collection/components/select-popover/select-popover.md.css +0 -345
  495. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  496. package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
  497. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  498. package/dist/collection/components/spinner/spinner.js +6 -47
  499. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  500. package/dist/collection/components/split-pane/split-pane.js +8 -15
  501. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  502. package/dist/collection/components/tab/tab.js +2 -6
  503. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  504. package/dist/collection/components/tab-bar/tab-bar.js +15 -179
  505. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  506. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  507. package/dist/collection/components/tab-button/tab-button.js +9 -54
  508. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  509. package/dist/collection/components/tabs/tabs.css +1 -7
  510. package/dist/collection/components/tabs/tabs.js +1 -4
  511. package/dist/collection/components/text/text.css +0 -6
  512. package/dist/collection/components/text/text.js +6 -7
  513. package/dist/collection/components/textarea/textarea.ios.css +158 -298
  514. package/dist/collection/components/textarea/textarea.js +24 -162
  515. package/dist/collection/components/textarea/textarea.md.css +159 -312
  516. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  517. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  518. package/dist/collection/components/title/title.ios.css +4 -32
  519. package/dist/collection/components/title/title.js +7 -13
  520. package/dist/collection/components/title/title.md.css +4 -39
  521. package/dist/collection/components/toast/animations/utils.js +1 -1
  522. package/dist/collection/components/toast/toast.ios.css +45 -84
  523. package/dist/collection/components/toast/toast.js +13 -76
  524. package/dist/collection/components/toast/toast.md.css +45 -84
  525. package/dist/collection/components/toggle/toggle.ios.css +127 -247
  526. package/dist/collection/components/toggle/toggle.js +18 -72
  527. package/dist/collection/components/toggle/toggle.md.css +127 -245
  528. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  529. package/dist/collection/components/toolbar/toolbar.js +13 -218
  530. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  531. package/dist/collection/global/ionic-global.js +13 -241
  532. package/dist/collection/utils/focus-trap.js +2 -13
  533. package/dist/collection/utils/focus-visible.js +0 -22
  534. package/dist/collection/utils/forms/index.js +0 -1
  535. package/dist/collection/utils/forms/validity.js +0 -31
  536. package/dist/collection/utils/framework-delegate.js +1 -3
  537. package/dist/collection/utils/hardware-back-button.js +0 -15
  538. package/dist/collection/utils/helpers.js +3 -70
  539. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
  540. package/dist/collection/utils/media.js +0 -1
  541. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  542. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  543. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  544. package/dist/collection/utils/overlays.js +8 -290
  545. package/dist/collection/utils/sanitization/index.js +18 -274
  546. package/dist/collection/utils/test/playwright/drag-element.js +9 -32
  547. package/dist/collection/utils/test/playwright/generator.js +23 -48
  548. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
  549. package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
  550. package/dist/collection/utils/theme.js +1 -25
  551. package/dist/collection/utils/transition/ios.transition.js +0 -1
  552. package/dist/docs.json +286 -9090
  553. package/dist/esm/{animation-ChfHU0RG.js → animation-DLJpuoEz.js} +2 -2
  554. package/dist/esm/{app-globals-D1OOQlqq.js → app-globals-D0C5S4hU.js} +1 -1
  555. package/dist/esm/{button-active-CPYK0dNo.js → button-active-BSpTQmS9.js} +2 -2
  556. package/dist/esm/{capacitor-DG_4yVXz.js → capacitor-CFERIeaU.js} +1 -1
  557. package/dist/esm/config-DQCONYYp.js +195 -0
  558. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  559. package/dist/esm/{format-2WlZcMvG.js → format-CAmvpAez.js} +1 -1
  560. package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate-FnPGymXL.js} +2 -4
  561. package/dist/esm/{haptic-BWlRCqa-.js → haptic-DzAMWJuk.js} +1 -1
  562. package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
  563. package/dist/esm/{helpers-DfF5_wJc.js → helpers-HEqiOzXb.js} +5 -71
  564. package/dist/esm/{index-DNY2GOUg.js → index-BRHzoo00.js} +3 -4
  565. package/dist/esm/{index-BSDDOljg.js → index-B_dQk_WE.js} +4 -4
  566. package/dist/esm/{index-B4Kq2YNk.js → index-DV3sJJW8.js} +2 -3
  567. package/dist/esm/{index-taYRjZGp.js → index-Dw-wN0Ja.js} +2 -2
  568. package/dist/esm/{index-7eS8XtuU.js → index-Q6UPU0Ay.js} +11 -11
  569. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  570. package/dist/esm/{index-C0EQceqV.js → index-tcQvqkiX.js} +4 -53
  571. package/dist/esm/index.js +14 -14
  572. package/dist/esm/{input-shims-tZfqB5a5.js → input-shims-LXhI7LEx.js} +6 -7
  573. package/dist/esm/{input.utils-fs4B7WL5.js → input.utils-Y6NgW8bw.js} +3 -3
  574. package/dist/esm/ion-accordion_2.entry.js +29 -61
  575. package/dist/esm/ion-action-sheet.entry.js +22 -41
  576. package/dist/esm/ion-alert.entry.js +40 -77
  577. package/dist/esm/ion-app_8.entry.js +193 -457
  578. package/dist/esm/ion-avatar_3.entry.js +13 -125
  579. package/dist/esm/ion-back-button.entry.js +22 -31
  580. package/dist/esm/ion-backdrop.entry.js +7 -10
  581. package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
  582. package/dist/esm/ion-button_2.entry.js +24 -61
  583. package/dist/esm/ion-card_5.entry.js +33 -55
  584. package/dist/esm/ion-checkbox.entry.js +17 -34
  585. package/dist/esm/ion-chip.entry.js +9 -50
  586. package/dist/esm/ion-col_3.entry.js +57 -56
  587. package/dist/esm/ion-datetime-button.entry.js +9 -13
  588. package/dist/esm/ion-datetime_3.entry.js +46 -121
  589. package/dist/esm/ion-fab_3.entry.js +28 -44
  590. package/dist/esm/ion-img.entry.js +4 -8
  591. package/dist/esm/ion-infinite-scroll_2.entry.js +16 -92
  592. package/dist/esm/ion-input-otp.entry.js +9 -74
  593. package/dist/esm/ion-input-password-toggle.entry.js +15 -53
  594. package/dist/esm/ion-input.entry.js +40 -132
  595. package/dist/esm/ion-item-option_3.entry.js +52 -467
  596. package/dist/esm/ion-item_8.entry.js +50 -121
  597. package/dist/esm/ion-loading.entry.js +18 -21
  598. package/dist/esm/ion-menu_3.entry.js +29 -47
  599. package/dist/esm/ion-modal.entry.js +91 -215
  600. package/dist/esm/ion-nav_2.entry.js +11 -14
  601. package/dist/esm/ion-picker-column-option.entry.js +8 -12
  602. package/dist/esm/ion-picker-column.entry.js +13 -13
  603. package/dist/esm/ion-picker.entry.js +6 -10
  604. package/dist/esm/ion-popover.entry.js +19 -21
  605. package/dist/esm/ion-progress-bar.entry.js +9 -27
  606. package/dist/esm/ion-radio_2.entry.js +18 -36
  607. package/dist/esm/ion-range.entry.js +13 -20
  608. package/dist/esm/ion-refresher_2.entry.js +21 -40
  609. package/dist/esm/ion-reorder_2.entry.js +14 -38
  610. package/dist/esm/ion-ripple-effect.entry.js +7 -15
  611. package/dist/esm/ion-route_4.entry.js +10 -11
  612. package/dist/esm/ion-searchbar.entry.js +32 -146
  613. package/dist/esm/ion-segment-content.entry.js +2 -2
  614. package/dist/esm/ion-segment-view.entry.js +3 -13
  615. package/dist/esm/ion-segment_2.entry.js +16 -23
  616. package/dist/esm/ion-select-modal.entry.js +38 -114
  617. package/dist/esm/ion-select_3.entry.js +108 -557
  618. package/dist/esm/ion-spinner.entry.js +8 -30
  619. package/dist/esm/ion-split-pane.entry.js +9 -13
  620. package/dist/esm/ion-tab-bar_2.entry.js +27 -149
  621. package/dist/esm/ion-tab_2.entry.js +7 -8
  622. package/dist/esm/ion-text.entry.js +7 -7
  623. package/dist/esm/ion-textarea.entry.js +23 -137
  624. package/dist/esm/ion-toast.entry.js +21 -45
  625. package/dist/esm/ion-toggle.entry.js +26 -82
  626. package/dist/esm/ionic-global-Cp_eT4sZ.js +146 -0
  627. package/dist/esm/ionic.js +5 -5
  628. package/dist/esm/{ios.transition-C3r-0w96.js → ios.transition-ClFrsIrS.js} +5 -7
  629. package/dist/esm/{item-multiple-inputs-C6onMFOo.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
  630. package/dist/esm/{keyboard-DYGmALa7.js → keyboard-CUw4ekVy.js} +1 -1
  631. package/dist/esm/keyboard-controller-BaaVITYt.js +165 -0
  632. package/dist/esm/{keyboard-BzbtCDwZ.js → keyboard-ywgs5efA.js} +3 -4
  633. package/dist/esm/loader.js +5 -5
  634. package/dist/esm/{md.transition-CPHOF5T9.js → md.transition-D0msQmzI.js} +5 -6
  635. package/dist/esm/{notch-controller-CsbpmbOz.js → notch-controller-DKDjU_O7.js} +2 -2
  636. package/dist/esm/{overlays-C1NQMs9y.js → overlays-Dg0q2_tJ.js} +15 -306
  637. package/dist/esm/{status-tap-BueE8Coq.js → status-tap-vO-6s4Yp.js} +3 -4
  638. package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-DQ1q5MgD.js} +2 -3
  639. package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
  640. package/dist/esm/validity-DJztqcrH.js +17 -0
  641. package/dist/html.html-data.json +160 -2699
  642. package/dist/ionic/index.esm.js +1 -1
  643. package/dist/ionic/ionic.esm.js +1 -1
  644. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  645. package/dist/ionic/p-06c232a4.entry.js +4 -0
  646. package/dist/ionic/p-0caa922c.entry.js +4 -0
  647. package/dist/ionic/p-0dc33652.entry.js +4 -0
  648. package/dist/ionic/p-0fa9c382.entry.js +4 -0
  649. package/dist/ionic/p-10e833ef.entry.js +4 -0
  650. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  651. package/dist/ionic/p-27d30585.entry.js +4 -0
  652. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  653. package/dist/ionic/p-2b204c59.entry.js +4 -0
  654. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  655. package/dist/ionic/p-2fa58e80.entry.js +4 -0
  656. package/dist/ionic/p-3353c229.entry.js +4 -0
  657. package/dist/ionic/p-34586ead.entry.js +4 -0
  658. package/dist/ionic/p-37e720da.entry.js +4 -0
  659. package/dist/ionic/p-390ca786.entry.js +4 -0
  660. package/dist/ionic/p-3ae5f277.entry.js +4 -0
  661. package/dist/ionic/p-4654ae1c.entry.js +4 -0
  662. package/dist/ionic/p-4745f534.entry.js +4 -0
  663. package/dist/ionic/p-4858af1f.entry.js +4 -0
  664. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  665. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  666. package/dist/ionic/p-50e1194a.entry.js +4 -0
  667. package/dist/ionic/p-5334df12.entry.js +4 -0
  668. package/dist/ionic/p-5d1da0a2.entry.js +4 -0
  669. package/dist/ionic/p-5e2f73ee.entry.js +4 -0
  670. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  671. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  672. package/dist/ionic/p-746fa988.entry.js +4 -0
  673. package/dist/ionic/p-75dc25ba.entry.js +4 -0
  674. package/dist/ionic/p-7c319341.entry.js +4 -0
  675. package/dist/ionic/p-829367ed.entry.js +4 -0
  676. package/dist/ionic/p-84d5ce05.entry.js +4 -0
  677. package/dist/ionic/p-874b4bd8.entry.js +4 -0
  678. package/dist/ionic/p-8eb8ee76.entry.js +4 -0
  679. package/dist/ionic/p-9eeaBrnk.js +4 -0
  680. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  681. package/dist/ionic/p-9fa3c405.entry.js +4 -0
  682. package/dist/ionic/p-BGqMS-oh.js +4 -0
  683. package/dist/ionic/p-BUFIpxKM.js +4 -0
  684. package/dist/ionic/p-BmVRXR1y.js +4 -0
  685. package/dist/ionic/{p-7k7Q1A38.js → p-C0eMdTCW.js} +1 -1
  686. package/dist/ionic/p-CFlfIb2g.js +4 -0
  687. package/dist/ionic/p-CIGNaXM1.js +4 -0
  688. package/{components/p-BUNIyvqe.js → dist/ionic/p-CKvCXMs9.js} +1 -1
  689. package/dist/ionic/p-CmcFnK-B.js +4 -0
  690. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  691. package/dist/ionic/p-Cx3IXROA.js +4 -0
  692. package/dist/ionic/p-D-3ycHmd.js +4 -0
  693. package/dist/ionic/{p-CCgRIJJv.js → p-D13Eaw-8.js} +1 -1
  694. package/dist/ionic/p-D4uTWt4-.js +4 -0
  695. package/dist/ionic/{p-CnIzWLAn.js → p-DC3RagnA.js} +1 -1
  696. package/dist/ionic/p-DIuEbVLu.js +4 -0
  697. package/dist/ionic/p-DJztqcrH.js +4 -0
  698. package/dist/ionic/p-DV3sJJW8.js +4 -0
  699. package/dist/ionic/p-DiVJyqlX.js +4 -0
  700. package/dist/ionic/p-DoJvtrbw.js +4 -0
  701. package/dist/ionic/p-DqN5EA2O.js +4 -0
  702. package/dist/ionic/p-DzWaWHGc.js +4 -0
  703. package/dist/ionic/p-KjNvRoEp.js +4 -0
  704. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  705. package/dist/ionic/p-SNAkTDfm.js +4 -0
  706. package/dist/ionic/{p-CYYo93al.js → p-VAemlbDS.js} +1 -1
  707. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  708. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  709. package/dist/ionic/p-aaeedb6b.entry.js +4 -0
  710. package/dist/ionic/p-af55a72f.entry.js +4 -0
  711. package/dist/ionic/p-b2020591.entry.js +4 -0
  712. package/dist/ionic/p-b9fadbfe.entry.js +4 -0
  713. package/dist/ionic/p-biz8zWmJ.js +4 -0
  714. package/dist/ionic/p-c0fb8edd.entry.js +4 -0
  715. package/dist/ionic/p-c38b648e.entry.js +4 -0
  716. package/dist/ionic/p-c4d8641b.entry.js +4 -0
  717. package/dist/ionic/p-c6e49f3f.entry.js +4 -0
  718. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  719. package/dist/ionic/p-d889ff6d.entry.js +4 -0
  720. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  721. package/dist/ionic/p-ea56626d.entry.js +4 -0
  722. package/dist/ionic/p-ef4c3bee.entry.js +4 -0
  723. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  724. package/{components/p-BYoGvMgh.js → dist/ionic/p-mjKAFv89.js} +1 -1
  725. package/dist/ionic/p-tcQvqkiX.js +5 -0
  726. package/dist/ionic/p-uWtqTrG8.js +4 -0
  727. package/dist/ionic/{p-DINFwXlp.js → p-viFHDgRs.js} +1 -1
  728. package/dist/ionic/p-xWb6fgfq.js +4 -0
  729. package/dist/types/components/accordion/accordion.d.ts +3 -6
  730. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  731. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  732. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  733. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  734. package/dist/types/components/alert/alert.d.ts +2 -3
  735. package/dist/types/components/app/app.d.ts +5 -4
  736. package/dist/types/components/avatar/avatar.d.ts +0 -32
  737. package/dist/types/components/back-button/back-button.d.ts +1 -2
  738. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  739. package/dist/types/components/badge/badge.d.ts +1 -34
  740. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  741. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  742. package/dist/types/components/button/button.d.ts +8 -23
  743. package/dist/types/components/buttons/buttons.d.ts +1 -5
  744. package/dist/types/components/card/card.d.ts +1 -8
  745. package/dist/types/components/card-content/card-content.d.ts +1 -2
  746. package/dist/types/components/card-header/card-header.d.ts +2 -3
  747. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  748. package/dist/types/components/card-title/card-title.d.ts +1 -2
  749. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  750. package/dist/types/components/chip/chip.d.ts +1 -26
  751. package/dist/types/components/col/col.d.ts +5 -52
  752. package/dist/types/components/content/content.d.ts +0 -3
  753. package/dist/types/components/datetime/datetime.d.ts +1 -26
  754. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  755. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  756. package/dist/types/components/fab/fab.d.ts +0 -4
  757. package/dist/types/components/fab-button/fab-button.d.ts +3 -5
  758. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  759. package/dist/types/components/footer/footer.d.ts +3 -20
  760. package/dist/types/components/grid/grid.d.ts +0 -4
  761. package/dist/types/components/header/header.d.ts +3 -26
  762. package/dist/types/components/header/header.utils.d.ts +5 -4
  763. package/dist/types/components/img/img.d.ts +0 -3
  764. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  765. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  766. package/dist/types/components/input/input.d.ts +5 -34
  767. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  768. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
  769. package/dist/types/components/item/item.d.ts +4 -11
  770. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  771. package/dist/types/components/item-group/item-group.d.ts +0 -4
  772. package/dist/types/components/item-option/item-option.d.ts +1 -18
  773. package/dist/types/components/item-options/item-options.d.ts +0 -4
  774. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  775. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  776. package/dist/types/components/label/label.d.ts +1 -2
  777. package/dist/types/components/list/list.d.ts +1 -15
  778. package/dist/types/components/list-header/list-header.d.ts +1 -2
  779. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  780. package/dist/types/components/loading/loading.d.ts +2 -3
  781. package/dist/types/components/menu/menu.d.ts +0 -3
  782. package/dist/types/components/menu-button/menu-button.d.ts +1 -3
  783. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  784. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  785. package/dist/types/components/modal/modal-interface.d.ts +7 -4
  786. package/dist/types/components/modal/modal.d.ts +1 -11
  787. package/dist/types/components/nav/nav-interface.d.ts +1 -9
  788. package/dist/types/components/nav/nav.d.ts +1 -5
  789. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  790. package/dist/types/components/note/note.d.ts +1 -2
  791. package/dist/types/components/picker/picker.d.ts +1 -2
  792. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  793. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  794. package/dist/types/components/picker-legacy/picker.d.ts +1 -2
  795. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  796. package/dist/types/components/popover/popover.d.ts +5 -6
  797. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  798. package/dist/types/components/radio/radio.d.ts +1 -2
  799. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  800. package/dist/types/components/range/range.d.ts +1 -2
  801. package/dist/types/components/refresher/refresher.d.ts +1 -2
  802. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
  803. package/dist/types/components/reorder/reorder.d.ts +0 -9
  804. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  805. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  806. package/dist/types/components/route/route.d.ts +0 -4
  807. package/dist/types/components/router/router.d.ts +0 -4
  808. package/dist/types/components/router-link/router-link.d.ts +0 -4
  809. package/dist/types/components/router-outlet/router-outlet.d.ts +1 -4
  810. package/dist/types/components/row/row.d.ts +0 -4
  811. package/dist/types/components/searchbar/searchbar.d.ts +10 -56
  812. package/dist/types/components/segment/segment.d.ts +1 -2
  813. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  814. package/dist/types/components/select/select-interface.d.ts +0 -31
  815. package/dist/types/components/select/select.d.ts +13 -66
  816. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  817. package/dist/types/components/select-option/select-option.d.ts +1 -45
  818. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  819. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  820. package/dist/types/components/spinner/spinner.d.ts +0 -15
  821. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  822. package/dist/types/components/tab/tab.d.ts +0 -4
  823. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +0 -1
  824. package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
  825. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  826. package/dist/types/components/tabs/tabs.d.ts +0 -3
  827. package/dist/types/components/text/text.d.ts +1 -2
  828. package/dist/types/components/textarea/textarea.d.ts +4 -53
  829. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  830. package/dist/types/components/title/title.d.ts +0 -4
  831. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  832. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  833. package/dist/types/components/toast/toast.d.ts +2 -19
  834. package/dist/types/components/toggle/toggle.d.ts +1 -15
  835. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  836. package/dist/types/components.d.ts +211 -1882
  837. package/dist/types/global/ionic-global.d.ts +2 -28
  838. package/dist/types/interface.d.ts +0 -3
  839. package/dist/types/utils/config.d.ts +2 -106
  840. package/dist/types/utils/focus-trap.d.ts +1 -1
  841. package/dist/types/utils/focus-visible.d.ts +0 -13
  842. package/dist/types/utils/forms/index.d.ts +0 -1
  843. package/dist/types/utils/forms/validity.d.ts +0 -7
  844. package/dist/types/utils/helpers.d.ts +0 -22
  845. package/dist/types/utils/overlays-interface.d.ts +1 -31
  846. package/dist/types/utils/overlays.d.ts +1 -1
  847. package/dist/types/utils/sanitization/index.d.ts +2 -58
  848. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  849. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  850. package/dist/types/utils/theme.d.ts +0 -9
  851. package/hydrate/index.js +1406 -6402
  852. package/hydrate/index.mjs +1406 -6402
  853. package/package.json +5 -9
  854. package/components/ion-divider.d.ts +0 -11
  855. package/components/ion-divider.js +0 -4
  856. package/components/ion-gallery-item.d.ts +0 -11
  857. package/components/ion-gallery-item.js +0 -4
  858. package/components/ion-gallery.d.ts +0 -11
  859. package/components/ion-gallery.js +0 -4
  860. package/components/p-6hUZIMBp.js +0 -4
  861. package/components/p-9mfpAwJh.js +0 -4
  862. package/components/p-B2SvA6NE.js +0 -4
  863. package/components/p-B2aAAEfp.js +0 -4
  864. package/components/p-B2lpqDWK.js +0 -4
  865. package/components/p-BDoEcs72.js +0 -4
  866. package/components/p-BDqjX7Z_.js +0 -4
  867. package/components/p-BFpXpzD-.js +0 -4
  868. package/components/p-BYSs-jZz.js +0 -4
  869. package/components/p-BYrCPOBM.js +0 -4
  870. package/components/p-BbVhJs-a.js +0 -4
  871. package/components/p-BhRXIcSN.js +0 -4
  872. package/components/p-BjW8SOqw.js +0 -4
  873. package/components/p-BsiHrVPa.js +0 -4
  874. package/components/p-BwKpO3Is.js +0 -4
  875. package/components/p-Bz8jnuiy.js +0 -4
  876. package/components/p-C-Ea1l5K.js +0 -4
  877. package/components/p-C3X10Pc6.js +0 -4
  878. package/components/p-CH6jbAEI.js +0 -4
  879. package/components/p-CJE5t2qs.js +0 -4
  880. package/components/p-CODBQrPj.js +0 -4
  881. package/components/p-CUbb1HkU.js +0 -4
  882. package/components/p-CVYFPBs-.js +0 -4
  883. package/components/p-CVoLDZ7z.js +0 -4
  884. package/components/p-CZrORZXS.js +0 -4
  885. package/components/p-Cc3oC60a.js +0 -4
  886. package/components/p-CmoUesXp.js +0 -4
  887. package/components/p-CyNW8ypn.js +0 -4
  888. package/components/p-CzxyxYID.js +0 -4
  889. package/components/p-D0Iqw6OZ.js +0 -4
  890. package/components/p-D0LT3Z3i.js +0 -4
  891. package/components/p-D1t981Ih.js +0 -4
  892. package/components/p-D6tqrIYY.js +0 -4
  893. package/components/p-D9C5yWpF.js +0 -4
  894. package/components/p-DCRXgAoM.js +0 -4
  895. package/components/p-DL5wyRub.js +0 -4
  896. package/components/p-DQlXUUDh.js +0 -4
  897. package/components/p-DRWN7QM2.js +0 -4
  898. package/components/p-DaJxRxSQ.js +0 -4
  899. package/components/p-DbmfFkd1.js +0 -4
  900. package/components/p-Dhi5xtNS.js +0 -4
  901. package/components/p-DnwLgh9U.js +0 -4
  902. package/components/p-DoZB3DcY.js +0 -4
  903. package/components/p-Dovs7FIs.js +0 -4
  904. package/components/p-DrrpZB81.js +0 -4
  905. package/components/p-DrzWRqnG.js +0 -4
  906. package/components/p-DylrHLJF.js +0 -4
  907. package/components/p-Dypq4kXE.js +0 -4
  908. package/components/p-DzeMJvWL.js +0 -4
  909. package/components/p-Dzk4Tr0X.js +0 -4
  910. package/components/p-Rkm2AOZ2.js +0 -4
  911. package/components/p-UYngqo1f.js +0 -4
  912. package/components/p-Va26YR7l.js +0 -4
  913. package/components/p-asUhrzOB.js +0 -4
  914. package/components/p-fIOYmaqA.js +0 -4
  915. package/components/p-jlwpz7Ms.js +0 -4
  916. package/components/p-kInyVu79.js +0 -4
  917. package/components/p-vXpMhGrs.js +0 -4
  918. package/css/ionic/bundle.ionic.css +0 -1
  919. package/css/ionic/bundle.ionic.css.map +0 -1
  920. package/css/ionic/core.ionic.css +0 -1
  921. package/css/ionic/core.ionic.css.map +0 -1
  922. package/css/ionic/global.bundle.ionic.css +0 -1
  923. package/css/ionic/global.bundle.ionic.css.map +0 -1
  924. package/css/ionic/ionic-swiper.ionic.css +0 -1
  925. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  926. package/css/ionic/link.ionic.css +0 -1
  927. package/css/ionic/link.ionic.css.map +0 -1
  928. package/css/ionic/structure.ionic.css +0 -1
  929. package/css/ionic/structure.ionic.css.map +0 -1
  930. package/css/ionic/typography.ionic.css +0 -1
  931. package/css/ionic/typography.ionic.css.map +0 -1
  932. package/css/ionic/utils.bundle.ionic.css +0 -1
  933. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  934. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  935. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  936. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  937. package/dist/cjs/clear-button-press-controller-2hAy_qdm.js +0 -45
  938. package/dist/cjs/config-DWdFbSNK.js +0 -35
  939. package/dist/cjs/index-YYUVCfP-.js +0 -429
  940. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  941. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  942. package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
  943. package/dist/cjs/ionic-global-DvEcO0tQ.js +0 -519
  944. package/dist/cjs/list-a-7GSA6K.js +0 -8
  945. package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
  946. package/dist/cjs/scroll-hide-controller-DAf_DwKc.js +0 -345
  947. package/dist/cjs/select-option-render-BqJEK1N1.js +0 -124
  948. package/dist/cjs/validity-QmuwEptc.js +0 -51
  949. package/dist/cjs/x-BTF99yFH.js +0 -8
  950. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  951. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  952. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -494
  953. package/dist/collection/components/alert/alert.ionic.css +0 -787
  954. package/dist/collection/components/avatar/avatar.ionic.css +0 -385
  955. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  956. package/dist/collection/components/badge/badge.ionic.css +0 -272
  957. package/dist/collection/components/button/button.ionic.css +0 -644
  958. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  959. package/dist/collection/components/card/card.ionic.css +0 -144
  960. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  961. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  962. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  963. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -543
  964. package/dist/collection/components/chip/chip.ionic.css +0 -217
  965. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  966. package/dist/collection/components/divider/divider.ionic.css +0 -148
  967. package/dist/collection/components/divider/divider.ios.css +0 -87
  968. package/dist/collection/components/divider/divider.js +0 -94
  969. package/dist/collection/components/divider/divider.md.css +0 -87
  970. package/dist/collection/components/footer/footer-interface.js +0 -1
  971. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  972. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  973. package/dist/collection/components/gallery/gallery.css +0 -15
  974. package/dist/collection/components/gallery/gallery.js +0 -679
  975. package/dist/collection/components/gallery/test/utils.js +0 -100
  976. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  977. package/dist/collection/components/gallery-item/gallery-item.js +0 -99
  978. package/dist/collection/components/header/header-interface.js +0 -1
  979. package/dist/collection/components/header/header.ionic.css +0 -250
  980. package/dist/collection/components/input/input.ionic.css +0 -891
  981. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  982. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  983. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  984. package/dist/collection/components/item/item.ionic.css +0 -496
  985. package/dist/collection/components/item-option/item-option.ionic.css +0 -277
  986. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  987. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  988. package/dist/collection/components/list/list.ionic.css +0 -212
  989. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  990. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  991. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  992. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  993. package/dist/collection/components/modal/modal.ionic.css +0 -255
  994. package/dist/collection/components/popover/popover.ionic.css +0 -290
  995. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  996. package/dist/collection/components/radio/radio.ionic.css +0 -422
  997. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  998. package/dist/collection/components/range/range.ionic.css +0 -567
  999. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  1000. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -622
  1001. package/dist/collection/components/segment/segment.ionic.css +0 -115
  1002. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -352
  1003. package/dist/collection/components/select/select.ionic.css +0 -809
  1004. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -257
  1005. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -255
  1006. package/dist/collection/components/spinner/spinner.native.css +0 -199
  1007. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  1008. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -373
  1009. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  1010. package/dist/collection/components/title/title.ionic.css +0 -127
  1011. package/dist/collection/components/toast/toast.ionic.css +0 -394
  1012. package/dist/collection/components/toggle/toggle.ionic.css +0 -512
  1013. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1014. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1015. package/dist/collection/utils/css-value-validation.js +0 -39
  1016. package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
  1017. package/dist/collection/utils/overlay-control-label.js +0 -47
  1018. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  1019. package/dist/collection/utils/select-option-render.js +0 -119
  1020. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1021. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1022. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1023. package/dist/esm/clear-button-press-controller-C79TPm5p.js +0 -43
  1024. package/dist/esm/config-BwKpO3Is.js +0 -31
  1025. package/dist/esm/index-Mq5pCWmZ.js +0 -424
  1026. package/dist/esm/ion-divider.entry.js +0 -49
  1027. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1028. package/dist/esm/ion-gallery.entry.js +0 -605
  1029. package/dist/esm/ionic-global-CEwbmRLz.js +0 -508
  1030. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1031. package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
  1032. package/dist/esm/scroll-hide-controller-CfbtPBWv.js +0 -342
  1033. package/dist/esm/select-option-render-BlKZ2H83.js +0 -122
  1034. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1035. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1036. package/dist/ionic/p--sroV-k-.js +0 -4
  1037. package/dist/ionic/p-00731d20.entry.js +0 -4
  1038. package/dist/ionic/p-03c20a50.entry.js +0 -4
  1039. package/dist/ionic/p-03ec6673.entry.js +0 -4
  1040. package/dist/ionic/p-0405ec57.entry.js +0 -4
  1041. package/dist/ionic/p-04f16322.entry.js +0 -4
  1042. package/dist/ionic/p-09123f89.entry.js +0 -4
  1043. package/dist/ionic/p-15028853.entry.js +0 -4
  1044. package/dist/ionic/p-16c5db90.entry.js +0 -4
  1045. package/dist/ionic/p-1d1dfb68.entry.js +0 -4
  1046. package/dist/ionic/p-231572a0.entry.js +0 -4
  1047. package/dist/ionic/p-2740db6e.entry.js +0 -4
  1048. package/dist/ionic/p-2a6d4601.entry.js +0 -4
  1049. package/dist/ionic/p-2d8fe33c.entry.js +0 -4
  1050. package/dist/ionic/p-2dbc50d9.entry.js +0 -4
  1051. package/dist/ionic/p-32d3095c.entry.js +0 -4
  1052. package/dist/ionic/p-356cd619.entry.js +0 -4
  1053. package/dist/ionic/p-391bdb60.entry.js +0 -4
  1054. package/dist/ionic/p-3b2ab5b4.entry.js +0 -4
  1055. package/dist/ionic/p-4e3e750a.entry.js +0 -4
  1056. package/dist/ionic/p-4fee0df6.entry.js +0 -4
  1057. package/dist/ionic/p-547d010c.entry.js +0 -4
  1058. package/dist/ionic/p-54895118.entry.js +0 -4
  1059. package/dist/ionic/p-6163d04d.entry.js +0 -4
  1060. package/dist/ionic/p-679c1448.entry.js +0 -4
  1061. package/dist/ionic/p-6de524e5.entry.js +0 -4
  1062. package/dist/ionic/p-764d7ea2.entry.js +0 -4
  1063. package/dist/ionic/p-81BMEE8Q.js +0 -4
  1064. package/dist/ionic/p-8d6d7acb.entry.js +0 -4
  1065. package/dist/ionic/p-96732fe2.entry.js +0 -4
  1066. package/dist/ionic/p-96c4c1b9.entry.js +0 -4
  1067. package/dist/ionic/p-9745f518.entry.js +0 -4
  1068. package/dist/ionic/p-9a40af3c.entry.js +0 -4
  1069. package/dist/ionic/p-9e725104.entry.js +0 -4
  1070. package/dist/ionic/p-B4Kq2YNk.js +0 -4
  1071. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1072. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1073. package/dist/ionic/p-BbWo-T8F.js +0 -4
  1074. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1075. package/dist/ionic/p-Bvz8PHo5.js +0 -4
  1076. package/dist/ionic/p-BwKpO3Is.js +0 -4
  1077. package/dist/ionic/p-C0EQceqV.js +0 -5
  1078. package/dist/ionic/p-C1_a9uRb.js +0 -4
  1079. package/dist/ionic/p-C6WD6qSF.js +0 -4
  1080. package/dist/ionic/p-CEkwLb3L.js +0 -4
  1081. package/dist/ionic/p-CGFf6My7.js +0 -4
  1082. package/dist/ionic/p-CLUwRxij.js +0 -4
  1083. package/dist/ionic/p-CODBQrPj.js +0 -4
  1084. package/dist/ionic/p-CP_sVwEm.js +0 -4
  1085. package/dist/ionic/p-CSMWpRc0.js +0 -4
  1086. package/dist/ionic/p-Cvvva6Z7.js +0 -4
  1087. package/dist/ionic/p-D1t981Ih.js +0 -4
  1088. package/dist/ionic/p-DIvCXVmD.js +0 -4
  1089. package/dist/ionic/p-DTsDGZPd.js +0 -4
  1090. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1091. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1092. package/dist/ionic/p-DtQgCTtW.js +0 -4
  1093. package/dist/ionic/p-DuRx6DeQ.js +0 -4
  1094. package/dist/ionic/p-YGLqXqFd.js +0 -4
  1095. package/dist/ionic/p-YIsE5bNG.js +0 -4
  1096. package/dist/ionic/p-a61c2ace.entry.js +0 -4
  1097. package/dist/ionic/p-abb516e3.entry.js +0 -4
  1098. package/dist/ionic/p-b54edee6.entry.js +0 -4
  1099. package/dist/ionic/p-c076ac5c.entry.js +0 -4
  1100. package/dist/ionic/p-c4ff25cb.entry.js +0 -4
  1101. package/dist/ionic/p-c7279756.entry.js +0 -4
  1102. package/dist/ionic/p-c7ebed50.entry.js +0 -4
  1103. package/dist/ionic/p-cd0037e4.entry.js +0 -4
  1104. package/dist/ionic/p-d261938d.entry.js +0 -4
  1105. package/dist/ionic/p-d33dfc12.entry.js +0 -4
  1106. package/dist/ionic/p-d7764330.entry.js +0 -4
  1107. package/dist/ionic/p-defb23a2.entry.js +0 -4
  1108. package/dist/ionic/p-df642ef5.entry.js +0 -4
  1109. package/dist/ionic/p-e2a35249.entry.js +0 -4
  1110. package/dist/ionic/p-e2b952ef.entry.js +0 -4
  1111. package/dist/ionic/p-e77cfd1e.entry.js +0 -4
  1112. package/dist/ionic/p-ecb9d3d3.entry.js +0 -4
  1113. package/dist/ionic/p-efd13adf.entry.js +0 -4
  1114. package/dist/ionic/p-f0904c1d.entry.js +0 -4
  1115. package/dist/ionic/p-f33689f7.entry.js +0 -4
  1116. package/dist/ionic/p-f693efe9.entry.js +0 -4
  1117. package/dist/ionic/p-f788396b.entry.js +0 -4
  1118. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1119. package/dist/ionic/p-fa16fad8.entry.js +0 -4
  1120. package/dist/ionic/p-lMb_45ax.js +0 -4
  1121. package/dist/ionic/p-oadJNPuo.js +0 -4
  1122. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1123. package/dist/ionic/p-wNjWCZVO.js +0 -4
  1124. package/dist/types/components/divider/divider.d.ts +0 -20
  1125. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1126. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1127. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1128. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1129. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1130. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1131. package/dist/types/components/header/header-interface.d.ts +0 -1
  1132. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1133. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1134. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1135. package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
  1136. package/dist/types/utils/overlay-control-label.d.ts +0 -34
  1137. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1138. package/dist/types/utils/select-option-render.d.ts +0 -53
  1139. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -3,20 +3,21 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-C1knGA9x.js');
7
- var focusVisible = require('./focus-visible-BIj-I3-C.js');
8
- var ionicGlobal = require('./ionic-global-DvEcO0tQ.js');
9
- var helpers = require('./helpers-Fh1iXsX9.js');
6
+ var index = require('./index-BfaXsATC.js');
7
+ var hardwareBackButton = require('./hardware-back-button-CXmUnTJC.js');
8
+ var ionicGlobal = require('./ionic-global-BerQGEpE.js');
9
+ var helpers = require('./helpers-gntk8bfm.js');
10
10
  var dir = require('./dir-Cn0z1rJH.js');
11
- var theme = require('./theme-IlOsGAz7.js');
12
- var index$1 = require('./index-DRFkZu3V.js');
13
- var scrollHideController = require('./scroll-hide-controller-DAf_DwKc.js');
11
+ var theme = require('./theme-CeDs6Hcv.js');
12
+ var index$1 = require('./index-BiRrzGDi.js');
13
+ var keyboardController = require('./keyboard-controller-GXBiBRKS.js');
14
14
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
15
- var frameworkDelegate = require('./framework-delegate-CJT_QJQI.js');
15
+ var frameworkDelegate = require('./framework-delegate-BgU6U9Ez.js');
16
16
  var lockController = require('./lock-controller-aDB9wrEf.js');
17
- var index$2 = require('./index-D94mERjz.js');
18
- require('./keyboard-BbZXOwZg.js');
19
- require('./capacitor-BixsAzyb.js');
17
+ var index$2 = require('./index-BS2uhvhT.js');
18
+ require('./index-DkNv4J_i.js');
19
+ require('./keyboard-UuAS4D_9.js');
20
+ require('./capacitor-DmA66EwP.js');
20
21
 
21
22
  const appCss = () => `html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}`;
22
23
 
@@ -24,6 +25,51 @@ const App = class {
24
25
  constructor(hostRef) {
25
26
  index.registerInstance(this, hostRef);
26
27
  }
28
+ componentDidLoad() {
29
+ {
30
+ this.rIC(async () => {
31
+ const isHybrid = ionicGlobal.isPlatform(window, 'hybrid');
32
+ if (!index.config.getBoolean('_testing')) {
33
+ Promise.resolve().then(function () { return require('./index-BhhuJ1Yx.js'); }).then((module) => module.startTapClick(index.config));
34
+ }
35
+ if (index.config.getBoolean('statusTap', isHybrid)) {
36
+ Promise.resolve().then(function () { return require('./status-tap-CSvBT7FV.js'); }).then((module) => module.startStatusTap());
37
+ }
38
+ if (index.config.getBoolean('inputShims', needInputShims())) {
39
+ /**
40
+ * needInputShims() ensures that only iOS and Android
41
+ * platforms proceed into this block.
42
+ */
43
+ const platform = ionicGlobal.isPlatform(window, 'ios') ? 'ios' : 'android';
44
+ Promise.resolve().then(function () { return require('./input-shims-Bn1cXfCM.js'); }).then((module) => module.startInputShims(index.config, platform));
45
+ }
46
+ const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./hardware-back-button-CXmUnTJC.js'); });
47
+ const supportsHardwareBackButtonEvents = isHybrid || hardwareBackButton.shouldUseCloseWatcher();
48
+ if (index.config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
49
+ hardwareBackButtonModule.startHardwareBackButton();
50
+ }
51
+ else {
52
+ /**
53
+ * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
54
+ * then the close watcher will not be used.
55
+ */
56
+ if (hardwareBackButton.shouldUseCloseWatcher()) {
57
+ index.printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
58
+ }
59
+ hardwareBackButtonModule.blockHardwareBackButton();
60
+ }
61
+ if (typeof window !== 'undefined') {
62
+ Promise.resolve().then(function () { return require('./keyboard-hHzlEQpk.js'); }).then((module) => module.startKeyboardAssist(window));
63
+ }
64
+ Promise.resolve().then(function () { return require('./focus-visible-CCvKiLh3.js'); }).then((module) => (this.focusVisible = module.startFocusVisible()));
65
+ });
66
+ }
67
+ }
68
+ disconnectedCallback() {
69
+ if (this.loadTimeout) {
70
+ clearTimeout(this.loadTimeout);
71
+ }
72
+ }
27
73
  /**
28
74
  * Used to set focus on an element that uses `ion-focusable`.
29
75
  * Do not use this if focusing the element as a result of a keyboard
@@ -36,29 +82,52 @@ const App = class {
36
82
  * @param elements An array of HTML elements to set focus on.
37
83
  */
38
84
  async setFocus(elements) {
39
- /**
40
- * The focus-visible utility is used to set focus on an
41
- * element that uses `ion-focusable`.
42
- */
43
- focusVisible.focusElements(elements);
85
+ if (this.focusVisible) {
86
+ this.focusVisible.setFocus(elements);
87
+ }
88
+ }
89
+ rIC(callback) {
90
+ if ('requestIdleCallback' in window) {
91
+ window.requestIdleCallback(callback);
92
+ }
93
+ else {
94
+ this.loadTimeout = setTimeout(callback, 32);
95
+ }
44
96
  }
45
97
  render() {
46
- const theme = ionicGlobal.getIonTheme(this);
47
- return (index.h(index.Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
48
- [theme]: true,
98
+ const mode = ionicGlobal.getIonMode(this);
99
+ return (index.h(index.Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
100
+ [mode]: true,
49
101
  'ion-page': true,
50
102
  'force-statusbar-padding': index.config.getBoolean('_forceStatusbarPadding'),
51
103
  } }));
52
104
  }
53
105
  get el() { return index.getElement(this); }
54
106
  };
107
+ const needInputShims = () => {
108
+ /**
109
+ * iOS always needs input shims
110
+ */
111
+ const needsShimsIOS = ionicGlobal.isPlatform(window, 'ios') && ionicGlobal.isPlatform(window, 'mobile');
112
+ if (needsShimsIOS) {
113
+ return true;
114
+ }
115
+ /**
116
+ * Android only needs input shims when running
117
+ * in the browser and only if the browser is using the
118
+ * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
119
+ */
120
+ const isAndroidMobileWeb = ionicGlobal.isPlatform(window, 'android') && ionicGlobal.isPlatform(window, 'mobileweb');
121
+ if (isAndroidMobileWeb) {
122
+ return true;
123
+ }
124
+ return false;
125
+ };
55
126
  App.style = appCss();
56
127
 
57
- const buttonsIonicCss = () => `.sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-500, 1.25rem)}`;
58
-
59
- const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-h{z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
128
+ const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
60
129
 
61
- const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-h{z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
130
+ const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
62
131
 
63
132
  const Buttons = class {
64
133
  constructor(hostRef) {
@@ -70,7 +139,7 @@ const Buttons = class {
70
139
  * first toolbar, the buttons will be hidden and will
71
140
  * only be shown once all toolbars have fully collapsed.
72
141
  *
73
- * Only applies in the `ios` theme with `collapse` set to
142
+ * Only applies in `ios` mode with `collapse` set to
74
143
  * `true` on `ion-header`.
75
144
  *
76
145
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -78,20 +147,19 @@ const Buttons = class {
78
147
  this.collapse = false;
79
148
  }
80
149
  render() {
81
- const theme = ionicGlobal.getIonTheme(this);
82
- return (index.h(index.Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
83
- [theme]: true,
150
+ const mode = ionicGlobal.getIonMode(this);
151
+ return (index.h(index.Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
152
+ [mode]: true,
84
153
  ['buttons-collapse']: this.collapse,
85
- } }, index.h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
154
+ } }, index.h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
86
155
  }
87
156
  };
88
157
  Buttons.style = {
89
- ionic: buttonsIonicCss(),
90
158
  ios: buttonsIosCss(),
91
159
  md: buttonsMdCss()
92
160
  };
93
161
 
94
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-header-hide-height, 0px));-webkit-transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-footer-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-tab-bar-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{-webkit-transition:none;transition:none}}`;
162
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
95
163
 
96
164
  const Content = class {
97
165
  constructor(hostRef) {
@@ -299,8 +367,9 @@ const Content = class {
299
367
  this.resize();
300
368
  }, 100);
301
369
  }
302
- shouldForceOverscroll(mode) {
370
+ shouldForceOverscroll() {
303
371
  const { forceOverscroll } = this;
372
+ const mode = ionicGlobal.getIonMode(this);
304
373
  return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
305
374
  }
306
375
  resize() {
@@ -496,13 +565,12 @@ const Content = class {
496
565
  render() {
497
566
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
498
567
  const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
499
- const theme$1 = ionicGlobal.getIonTheme(this);
500
- const mode = ionicGlobal.getIonMode(this, theme$1);
501
- const forceOverscroll = this.shouldForceOverscroll(mode);
502
- const transitionShadow = theme$1 === 'ios';
568
+ const mode = ionicGlobal.getIonMode(this);
569
+ const forceOverscroll = this.shouldForceOverscroll();
570
+ const transitionShadow = mode === 'ios';
503
571
  this.resize();
504
- return (index.h(index.Host, Object.assign({ key: '8c7f646f58e7c38fb6d8661b1629b847a16753fb', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
505
- [theme$1]: true,
572
+ return (index.h(index.Host, Object.assign({ key: '9551c759df407b10d809171641fc6e8f14d92219', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
573
+ [mode]: true,
506
574
  'content-fullscreen': this.fullscreen,
507
575
  'content-sizing': theme.hostContext('ion-popover', this.el),
508
576
  overscroll: forceOverscroll,
@@ -510,12 +578,12 @@ const Content = class {
510
578
  }), style: {
511
579
  '--offset-top': `${this.cTop}px`,
512
580
  '--offset-bottom': `${this.cBottom}px`,
513
- } }, inheritedAttributes), index.h("div", { key: '2b0505c3fdf5c92938b8419c0f57f8d999aec6b3', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '6b769596e491dea1d3618551497fde9364afdeda', class: {
581
+ } }, inheritedAttributes), index.h("div", { key: 'c6de8fd226f0d10a534eb107fe032ac155fbe68e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '082fc2936061360060b48221ecb1c864a3711fa0', class: {
514
582
  'inner-scroll': true,
515
583
  'scroll-x': scrollX,
516
584
  'scroll-y': scrollY,
517
585
  overscroll: (scrollX || scrollY) && forceOverscroll,
518
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: 'ba36c8468681d028352415039d2cb2a750f2638f' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
586
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: '0d2286206facb22696a9ca7e74a3f6b7d2397aab' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
519
587
  }
520
588
  get el() { return index.getElement(this); }
521
589
  static get watchers() { return {
@@ -546,8 +614,7 @@ const getPageElement = (el) => {
546
614
  * between the popover and the edges of the screen. But if the popover contains
547
615
  * its own page element, we should use that instead.
548
616
  */
549
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
550
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
617
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
551
618
  if (page) {
552
619
  return page;
553
620
  }
@@ -611,90 +678,45 @@ const handleFooterFade = (scrollEl, baseEl) => {
611
678
  });
612
679
  };
613
680
 
614
- const ionicFooterMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.footer-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
681
+ const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
615
682
 
616
- const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:0.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}`;
617
-
618
- const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.footer-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
683
+ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
619
684
 
620
685
  const Footer = class {
621
686
  constructor(hostRef) {
622
687
  index.registerInstance(this, hostRef);
623
688
  this.keyboardCtrl = null;
624
689
  this.keyboardCtrlPromise = null;
625
- this.scrollHideCtrlPromise = null;
626
- this.hasWarnedCollapse = false;
627
- this.fadeSetupId = 0;
628
690
  this.keyboardVisible = false;
629
691
  /**
630
692
  * If `true`, the footer will be translucent.
631
- * Only applies when the theme is `"ios"` and the device supports
693
+ * Only applies when the mode is `"ios"` and the device supports
632
694
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
633
695
  *
634
696
  * Note: In order to scroll content behind the footer, the `fullscreen`
635
697
  * attribute needs to be set on the content.
636
698
  */
637
699
  this.translucent = false;
638
- this.checkCollapsibleFooter = async () => {
639
- const { scrollEffect, collapse } = this;
640
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
641
- this.hasWarnedCollapse = true;
642
- index.printIonWarning(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${collapse}">`, this.el);
643
- }
644
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
645
- // Skip teardown/rebuild if the effect hasn't changed.
646
- // This prevents keyboard toggles (which trigger re-renders via
647
- // @State keyboardVisible) from destroying the scroll controller
648
- // and resetting isHidden.
649
- if (effect === this.activeEffect) {
700
+ this.checkCollapsibleFooter = () => {
701
+ const mode = ionicGlobal.getIonMode(this);
702
+ if (mode !== 'ios') {
650
703
  return;
651
704
  }
652
- const hasHide = effect === 'hide';
653
- const hasFade = effect === 'fade';
705
+ const { collapse } = this;
706
+ const hasFade = collapse === 'fade';
654
707
  this.destroyCollapsibleFooter();
655
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
656
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
657
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
658
- if (hasHide && contentEl) {
659
- this.activeEffect = effect;
660
- await this.setupScrollEffectHide(contentEl);
661
- return;
662
- }
663
- // fade via the deprecated `collapse` prop is iOS-only.
664
- // fade via the new `scrollEffect` prop works in all themes.
665
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
666
- if (hasFade && !isModeRestricted) {
708
+ if (hasFade) {
709
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
710
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
667
711
  if (!contentEl) {
668
712
  index$1.printIonContentErrorMsg(this.el);
669
713
  return;
670
714
  }
671
715
  this.setupFadeFooter(contentEl);
672
- this.activeEffect = effect;
673
- }
674
- };
675
- this.setupScrollEffectHide = async (contentEl) => {
676
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
677
- el: this.el,
678
- cssVar: '--internal-footer-hide-height',
679
- hiddenClass: 'footer-scroll-hidden',
680
- contentPartnerClass: 'content-footer-hide-scroll-partner',
681
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
682
- });
683
- this.scrollHideCtrlPromise = setupPromise;
684
- const controller = await setupPromise;
685
- if (this.scrollHideCtrlPromise === setupPromise) {
686
- this.scrollHideCtrlPromise = null;
687
- controller.init();
688
- this.scrollHideCtrl = controller;
689
716
  }
690
717
  };
691
718
  this.setupFadeFooter = async (contentEl) => {
692
- const setupId = ++this.fadeSetupId;
693
- const scrollEl = await index$1.getScrollElement(contentEl);
694
- if (this.fadeSetupId !== setupId) {
695
- return;
696
- }
697
- this.scrollEl = scrollEl;
719
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
698
720
  /**
699
721
  * Handle fading of toolbars on scroll
700
722
  */
@@ -712,7 +734,7 @@ const Footer = class {
712
734
  this.checkCollapsibleFooter();
713
735
  }
714
736
  async connectedCallback() {
715
- const promise = scrollHideController.createKeyboardController(async (keyboardOpen, waitForResize) => {
737
+ const promise = keyboardController.createKeyboardController(async (keyboardOpen, waitForResize) => {
716
738
  /**
717
739
  * If the keyboard is hiding, then we need to wait
718
740
  * for the webview to resize. Otherwise, the footer
@@ -739,7 +761,6 @@ const Footer = class {
739
761
  }
740
762
  }
741
763
  disconnectedCallback() {
742
- this.destroyCollapsibleFooter();
743
764
  if (this.keyboardCtrlPromise) {
744
765
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
745
766
  this.keyboardCtrlPromise = null;
@@ -750,43 +771,29 @@ const Footer = class {
750
771
  }
751
772
  }
752
773
  destroyCollapsibleFooter() {
753
- this.activeEffect = undefined;
754
- this.fadeSetupId++;
755
- this.scrollHideCtrlPromise = null;
756
- if (this.scrollHideCtrl) {
757
- this.scrollHideCtrl.destroy();
758
- this.scrollHideCtrl = undefined;
759
- }
760
774
  if (this.scrollEl && this.contentScrollCallback) {
761
775
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
762
776
  this.contentScrollCallback = undefined;
763
777
  }
764
778
  }
765
779
  render() {
766
- const { translucent, scrollEffect, collapse } = this;
767
- const theme = ionicGlobal.getIonTheme(this);
768
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
769
- // fade via the deprecated `collapse` prop is iOS-only.
770
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
771
- const hasHide = effect === 'hide';
772
- const hasFade = effect === 'fade' && !isModeRestricted;
780
+ const { translucent, collapse } = this;
781
+ const mode = ionicGlobal.getIonMode(this);
773
782
  const tabs = this.el.closest('ion-tabs');
774
783
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
775
- return (index.h(index.Host, { key: 'a0777b4a639d22e15374879f018efcf589e756f8', role: "contentinfo", class: {
776
- [theme]: true,
784
+ return (index.h(index.Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
785
+ [mode]: true,
777
786
  // Used internally for styling
778
- [`footer-${theme}`]: true,
787
+ [`footer-${mode}`]: true,
779
788
  [`footer-translucent`]: translucent,
780
- [`footer-translucent-${theme}`]: translucent,
789
+ [`footer-translucent-${mode}`]: translucent,
781
790
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
782
- 'footer-collapse-fade': hasFade,
783
- 'footer-scroll-effect-hide': hasHide,
784
- } }, theme === 'ios' && translucent && index.h("div", { key: 'd78b46870cbf11c95b066d649c04ec398b66e614', class: "footer-background" }), index.h("slot", { key: '9dc34787cd29597fe1b1198db317602014ac1483' })));
791
+ [`footer-collapse-${collapse}`]: collapse !== undefined,
792
+ } }, mode === 'ios' && translucent && index.h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), index.h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
785
793
  }
786
794
  get el() { return index.getElement(this); }
787
795
  };
788
796
  Footer.style = {
789
- ionic: ionicFooterMdCss(),
790
797
  ios: footerIosCss(),
791
798
  md: footerMdCss()
792
799
  };
@@ -838,14 +845,13 @@ const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
838
845
  });
839
846
  };
840
847
  const setToolbarBackgroundOpacity = (headerEl, opacity) => {
841
- var _a;
842
848
  /**
843
849
  * Fading in the backdrop opacity
844
850
  * should happen after the large title
845
851
  * has collapsed, so it is handled
846
852
  * by handleHeaderFade()
847
853
  */
848
- if (((_a = headerEl.scrollEffect) !== null && _a !== void 0 ? _a : headerEl.collapse) === 'fade') {
854
+ if (headerEl.collapse === 'fade') {
849
855
  return;
850
856
  }
851
857
  if (opacity === undefined) {
@@ -1003,69 +1009,46 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1003
1009
  * Get the role type for the ion-header.
1004
1010
  *
1005
1011
  * @param isInsideMenu If ion-header is inside ion-menu.
1006
- * @returns 'none' if inside ion-menu, otherwise 'banner'.
1007
- * Condensed headers start as 'banner' and have their role
1008
- * toggled dynamically by setHeaderActive() on scroll.
1012
+ * @param isCondensed If ion-header has collapse="condense".
1013
+ * @param mode The current mode.
1014
+ * @returns 'none' if inside ion-menu or if condensed in md
1015
+ * mode, otherwise 'banner'.
1009
1016
  */
1010
- const getRoleType = (isInsideMenu) => {
1017
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
1011
1018
  // If the header is inside a menu, it should not have the banner role.
1012
1019
  if (isInsideMenu) {
1013
1020
  return ROLE_NONE;
1014
1021
  }
1022
+ /**
1023
+ * Only apply role="none" to `md` mode condensed headers
1024
+ * since the large header is never shown.
1025
+ */
1026
+ if (isCondensed && mode === 'md') {
1027
+ return ROLE_NONE;
1028
+ }
1015
1029
  // Default to banner role.
1016
1030
  return ROLE_BANNER;
1017
1031
  };
1018
1032
 
1019
- const headerIonicCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}ion-header.header-divider{border-bottom:var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5))}ion-toolbar+ion-toolbar{--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px));backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px))}.header-translucent-ionic ion-toolbar{--opacity:0.7}}`;
1033
+ const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}`;
1020
1034
 
1021
- const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:0.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}`;
1022
-
1023
- const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{-webkit-box-shadow:none;box-shadow:none}.header-md.header-collapse-condense-inactive:not(.header-collapse-condense){-webkit-box-shadow:none;box-shadow:none}.header-md.header-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
1035
+ const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
1024
1036
 
1025
1037
  const Header = class {
1026
1038
  constructor(hostRef) {
1027
1039
  index.registerInstance(this, hostRef);
1028
1040
  this.inheritedAttributes = {};
1029
- this.scrollHideCtrlPromise = null;
1030
- this.hasWarnedCollapse = false;
1031
- this.fadeCondenseSetupId = 0;
1032
- /**
1033
- * If `true`, the header will have a line at the bottom.
1034
- * TODO(ROU-10855): add support for this prop on ios/md themes
1035
- */
1036
- this.divider = false;
1037
1041
  /**
1038
1042
  * If `true`, the header will be translucent.
1039
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
1043
+ * Only applies when the mode is `"ios"` and the device supports
1040
1044
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
1041
1045
  *
1042
1046
  * Note: In order to scroll content behind the header, the `fullscreen`
1043
1047
  * attribute needs to be set on the content.
1044
1048
  */
1045
1049
  this.translucent = false;
1046
- this.setupScrollEffectHide = async (contentEl) => {
1047
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
1048
- el: this.el,
1049
- cssVar: '--internal-header-hide-height',
1050
- hiddenClass: 'header-scroll-hidden',
1051
- contentPartnerClass: 'content-header-hide-scroll-partner',
1052
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1053
- });
1054
- this.scrollHideCtrlPromise = setupPromise;
1055
- const controller = await setupPromise;
1056
- if (this.scrollHideCtrlPromise === setupPromise) {
1057
- this.scrollHideCtrlPromise = null;
1058
- controller.init();
1059
- this.scrollHideCtrl = controller;
1060
- }
1061
- };
1062
1050
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
1063
- const setupId = ++this.fadeCondenseSetupId;
1064
- const scrollEl = await index$1.getScrollElement(contentEl);
1065
- if (this.fadeCondenseSetupId !== setupId) {
1066
- return;
1067
- }
1068
- this.scrollEl = scrollEl;
1051
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
1069
1052
  /**
1070
1053
  * Handle fading of toolbars on scroll
1071
1054
  */
@@ -1089,63 +1072,37 @@ const Header = class {
1089
1072
  this.destroyCollapsibleHeader();
1090
1073
  }
1091
1074
  async checkCollapsibleHeader() {
1092
- const { scrollEffect, collapse } = this;
1093
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
1094
- this.hasWarnedCollapse = true;
1095
- index.printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
1096
- }
1097
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1098
- // Skip teardown/rebuild if the effect hasn't changed.
1099
- // This prevents re-renders from destroying the scroll controller
1100
- // and resetting isHidden.
1101
- if (effect === this.activeEffect) {
1075
+ const mode = ionicGlobal.getIonMode(this);
1076
+ if (mode !== 'ios') {
1102
1077
  return;
1103
1078
  }
1104
- const hasHide = effect === 'hide';
1105
- const hasCondense = effect === 'condense';
1106
- const hasFade = effect === 'fade';
1079
+ const { collapse } = this;
1080
+ const hasCondense = collapse === 'condense';
1081
+ const hasFade = collapse === 'fade';
1107
1082
  this.destroyCollapsibleHeader();
1108
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
1109
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
1110
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1111
- if (hasHide && contentEl) {
1112
- this.activeEffect = effect;
1113
- await this.setupScrollEffectHide(contentEl);
1114
- return;
1115
- }
1116
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1117
- // condense/fade via the new `scrollEffect` prop work in all themes.
1118
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
1119
- if (hasCondense && !isModeRestricted) {
1083
+ if (hasCondense) {
1084
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1085
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1120
1086
  // Cloned elements are always needed in iOS transition
1121
1087
  index.writeTask(() => {
1122
1088
  const title = cloneElement('ion-title');
1123
1089
  title.size = 'large';
1124
1090
  cloneElement('ion-back-button');
1125
1091
  });
1126
- const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
1127
- if (didSetup) {
1128
- this.activeEffect = effect;
1129
- }
1092
+ await this.setupCondenseHeader(contentEl, pageEl);
1130
1093
  }
1131
- else if (hasFade && !isModeRestricted) {
1094
+ else if (hasFade) {
1095
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1096
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1132
1097
  if (!contentEl) {
1133
1098
  index$1.printIonContentErrorMsg(this.el);
1134
1099
  return;
1135
1100
  }
1136
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
1137
- this.activeEffect = effect;
1101
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1138
1102
  await this.setupFadeHeader(contentEl, condenseHeader);
1139
1103
  }
1140
1104
  }
1141
1105
  destroyCollapsibleHeader() {
1142
- this.activeEffect = undefined;
1143
- this.fadeCondenseSetupId++;
1144
- this.scrollHideCtrlPromise = null;
1145
- if (this.scrollHideCtrl) {
1146
- this.scrollHideCtrl.destroy();
1147
- this.scrollHideCtrl = undefined;
1148
- }
1149
1106
  if (this.intersectionObserver) {
1150
1107
  this.intersectionObserver.disconnect();
1151
1108
  this.intersectionObserver = undefined;
@@ -1162,40 +1119,21 @@ const Header = class {
1162
1119
  async setupCondenseHeader(contentEl, pageEl) {
1163
1120
  if (!contentEl || !pageEl) {
1164
1121
  index$1.printIonContentErrorMsg(this.el);
1165
- return false;
1122
+ return;
1166
1123
  }
1167
1124
  if (typeof IntersectionObserver === 'undefined') {
1168
- return false;
1169
- }
1170
- const setupId = ++this.fadeCondenseSetupId;
1171
- const scrollEl = await index$1.getScrollElement(contentEl);
1172
- if (this.fadeCondenseSetupId !== setupId) {
1173
- return false;
1174
- }
1175
- this.scrollEl = scrollEl;
1176
- /**
1177
- * The condense effect requires an ion-title with size="large"
1178
- * in the condense header. Without it, there is nothing to
1179
- * collapse into the main header toolbar.
1180
- */
1181
- const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
1182
- if (!hasLargeTitle) {
1183
- index.printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
1184
- return false;
1125
+ return;
1185
1126
  }
1127
+ this.scrollEl = await index$1.getScrollElement(contentEl);
1186
1128
  const headers = pageEl.querySelectorAll('ion-header');
1187
- this.collapsibleMainHeader = Array.from(headers).find((header) => {
1188
- var _a;
1189
- const effect = (_a = header.scrollEffect) !== null && _a !== void 0 ? _a : header.collapse;
1190
- return effect !== 'condense';
1191
- });
1129
+ this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1192
1130
  if (!this.collapsibleMainHeader) {
1193
- return false;
1131
+ return;
1194
1132
  }
1195
1133
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1196
1134
  const scrollHeaderIndex = createHeaderIndex(this.el);
1197
1135
  if (!mainHeaderIndex || !scrollHeaderIndex) {
1198
- return false;
1136
+ return;
1199
1137
  }
1200
1138
  setHeaderActive(mainHeaderIndex, false);
1201
1139
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -1227,45 +1165,31 @@ const Header = class {
1227
1165
  this.collapsibleMainHeader.classList.add('header-collapse-main');
1228
1166
  }
1229
1167
  });
1230
- return true;
1231
1168
  }
1232
1169
  render() {
1233
- const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
1234
- const theme$1 = ionicGlobal.getIonTheme(this);
1235
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1236
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1237
- const isModeRestricted = scrollEffect === undefined && theme$1 !== 'ios';
1238
- const hasHide = effect === 'hide';
1239
- const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
1240
- const hasFade = effect === 'fade' && !isModeRestricted;
1241
- // The condense header should be hidden when
1242
- // - deprecated collapse prop is used on non-iOS (mode restricted), or
1243
- // - scrollEffect="condense" is set but no ion-title[size="large"] is present
1244
- const isHiddenCondense = effect === 'condense' && !hasCondense;
1170
+ const { translucent, inheritedAttributes } = this;
1171
+ const mode = ionicGlobal.getIonMode(this);
1172
+ const collapse = this.collapse || 'none';
1173
+ const isCondensed = collapse === 'condense';
1245
1174
  // banner role must be at top level, so remove role if inside a menu
1246
- const roleType = isHiddenCondense ? 'none' : getRoleType(theme.hostContext('ion-menu', this.el));
1247
- return (index.h(index.Host, Object.assign({ key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
1248
- [theme$1]: true,
1175
+ const roleType = getRoleType(theme.hostContext('ion-menu', this.el), isCondensed, mode);
1176
+ return (index.h(index.Host, Object.assign({ key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1177
+ [mode]: true,
1249
1178
  // Used internally for styling
1250
- [`header-${theme$1}`]: true,
1179
+ [`header-${mode}`]: true,
1251
1180
  [`header-translucent`]: this.translucent,
1252
- ['header-collapse-condense']: hasCondense,
1253
- ['header-collapse-condense-hidden']: isHiddenCondense,
1254
- ['header-collapse-fade']: hasFade,
1255
- [`header-translucent-${theme$1}`]: this.translucent,
1256
- ['header-divider']: divider,
1257
- 'header-scroll-effect-hide': hasHide,
1258
- } }, inheritedAttributes), theme$1 !== 'md' && translucent && index.h("div", { key: 'fd5ff245ae0166e5e1d50936cacc98c90625db48', class: "header-background" }), index.h("slot", { key: '1baa31af87b9eb6406a21073ec65afa191dfbb3d' })));
1181
+ [`header-collapse-${collapse}`]: true,
1182
+ [`header-translucent-${mode}`]: this.translucent,
1183
+ } }, inheritedAttributes), mode === 'ios' && translucent && index.h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), index.h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1259
1184
  }
1260
1185
  get el() { return index.getElement(this); }
1261
1186
  };
1262
1187
  Header.style = {
1263
- ionic: headerIonicCss(),
1264
1188
  ios: headerIosCss(),
1265
1189
  md: headerMdCss()
1266
1190
  };
1267
1191
 
1268
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1192
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1269
1193
 
1270
1194
  const RouterOutlet = class {
1271
1195
  constructor(hostRef) {
@@ -1276,7 +1200,7 @@ const RouterOutlet = class {
1276
1200
  this.lockController = lockController.createLockController();
1277
1201
  this.gestureOrAnimationInProgress = false;
1278
1202
  /**
1279
- * The mode determines the platform behaviors of the component.
1203
+ * The mode determines which platform styles to use.
1280
1204
  */
1281
1205
  this.mode = ionicGlobal.getIonMode(this);
1282
1206
  /**
@@ -1296,7 +1220,7 @@ const RouterOutlet = class {
1296
1220
  this.swipeHandler.onStart();
1297
1221
  }
1298
1222
  };
1299
- this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-DqQx5QCp.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1223
+ this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-CuIiziaa.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1300
1224
  if (this.ani) {
1301
1225
  this.ani.onFinish(() => {
1302
1226
  this.gestureOrAnimationInProgress = false;
@@ -1442,7 +1366,7 @@ const RouterOutlet = class {
1442
1366
  return true;
1443
1367
  }
1444
1368
  render() {
1445
- return index.h("slot", { key: '56e3d06ed939755796058e30ef19fbc7f7cb490d' });
1369
+ return index.h("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
1446
1370
  }
1447
1371
  get el() { return index.getElement(this); }
1448
1372
  static get watchers() { return {
@@ -1453,11 +1377,9 @@ const RouterOutlet = class {
1453
1377
  };
1454
1378
  RouterOutlet.style = routerOutletCss();
1455
1379
 
1456
- const titleIonicCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.title-large){font-size:var(--token-font-size-700, 1.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-900, var(--token-scale-900, 36px));text-decoration:none;text-transform:none}`;
1457
-
1458
- const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host(.ion-color){color:var(--ion-color-base)}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1380
+ const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1459
1381
 
1460
- const titleMdCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host(.ion-color){color:var(--ion-color-base)}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}:host(.title-large){width:100%;height:100%;font-size:1.75rem;font-weight:400}`;
1382
+ const titleMdCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}`;
1461
1383
 
1462
1384
  const ToolbarTitle = class {
1463
1385
  constructor(hostRef) {
@@ -1480,13 +1402,13 @@ const ToolbarTitle = class {
1480
1402
  return this.size !== undefined ? this.size : 'default';
1481
1403
  }
1482
1404
  render() {
1483
- const theme$1 = ionicGlobal.getIonTheme(this);
1405
+ const mode = ionicGlobal.getIonMode(this);
1484
1406
  const size = this.getSize();
1485
- return (index.h(index.Host, { key: 'd64e86bed418cba707d4a26c9274f18ed06c0e9e', class: theme.createColorClasses(this.color, {
1486
- [theme$1]: true,
1407
+ return (index.h(index.Host, { key: '44e63f8439df64c470692904427b417e19406476', class: theme.createColorClasses(this.color, {
1408
+ [mode]: true,
1487
1409
  [`title-${size}`]: true,
1488
1410
  'title-rtl': document.dir === 'rtl',
1489
- }) }, index.h("div", { key: '386a71e974cde0bfbf5b655d69ed5f718de8ce48', class: "toolbar-title" }, index.h("slot", { key: '8aa804c9e1b11574a42268805d3117a085e699b4' }))));
1411
+ }) }, index.h("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, index.h("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
1490
1412
  }
1491
1413
  get el() { return index.getElement(this); }
1492
1414
  static get watchers() { return {
@@ -1496,29 +1418,18 @@ const ToolbarTitle = class {
1496
1418
  }; }
1497
1419
  };
1498
1420
  ToolbarTitle.style = {
1499
- ionic: titleIonicCss(),
1500
1421
  ios: titleIosCss(),
1501
1422
  md: titleMdCss()
1502
1423
  };
1503
1424
 
1504
- const toolbarIonicCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--border-color:currentColor;--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--min-height:var(--token-scale-1400, 56px)}.toolbar-container{gap:var(--token-space-400, var(--token-scale-400, 16px));z-index:10}.toolbar-background{z-index:-1}.toolbar-content{-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}:host(.toolbar-searchbar) ::slotted(ion-searchbar){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}::slotted(ion-buttons){gap:var(--token-space-200, var(--token-scale-200, 8px))}::slotted(ion-title){-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px))}:host(.toolbar-title-large) ::slotted(ion-title){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}:host(.has-end-content) slot[name=end],:host(.show-end) slot[name=end]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-start-content) slot[name=start],:host(.show-start) slot[name=start]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0)}:host(.has-primary-content) slot[name=primary],:host(.show-primary) slot[name=primary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-secondary-content) slot[name=secondary],:host(.show-secondary) slot[name=secondary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0)}:host(.toolbar-title-placement-start) ::slotted(ion-title){text-align:start}:host(.toolbar-title-placement-center) ::slotted(ion-title){text-align:center}:host(.toolbar-title-placement-end) ::slotted(ion-title){text-align:end}`;
1425
+ const toolbarIosCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}`;
1505
1426
 
1506
- const toolbarIosCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}`;
1507
-
1508
- const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1427
+ const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1509
1428
 
1510
1429
  const Toolbar = class {
1511
1430
  constructor(hostRef) {
1512
1431
  index.registerInstance(this, hostRef);
1513
1432
  this.childrenStyles = new Map();
1514
- this.slotClasses = [
1515
- 'has-start-content',
1516
- 'has-end-content',
1517
- 'has-primary-content',
1518
- 'has-secondary-content',
1519
- ];
1520
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1521
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1522
1433
  }
1523
1434
  componentWillLoad() {
1524
1435
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1535,173 +1446,6 @@ const Toolbar = class {
1535
1446
  if (lastButtons) {
1536
1447
  lastButtons.classList.add('buttons-last-slot');
1537
1448
  }
1538
- this.updateSlotClasses();
1539
- }
1540
- componentDidLoad() {
1541
- this.updateSlotClasses();
1542
- this.updateSlotWidths();
1543
- }
1544
- titlePlacementChanged() {
1545
- this.updateSlotClasses();
1546
- }
1547
- /**
1548
- * Gets the title placement.
1549
- * Returns the title placement if it is set, otherwise returns `"center"`
1550
- * for `ionic` and `ios`, and `"start"` for `md`.
1551
- */
1552
- getTitlePlacement() {
1553
- if (this.titlePlacement !== undefined) {
1554
- return this.titlePlacement;
1555
- }
1556
- return ionicGlobal.getIonTheme(this) === 'ionic' || ionicGlobal.getIonTheme(this) === 'ios' ? 'center' : 'start';
1557
- }
1558
- /**
1559
- * Updates the CSS custom properties for slot widths
1560
- * This ensures that slots shown by their met conditions
1561
- * have a minimum width matching their required slot
1562
- */
1563
- updateSlotWidths(tries = 0) {
1564
- // Set timeout to try to execute after everything is rendered
1565
- setTimeout(() => {
1566
- // Attempt to measure and update
1567
- const success = this.measureAndUpdateSlots();
1568
- // If not all measurements were successful, try again in 100 ms
1569
- // cap recursion at 5 tries for safety
1570
- if (!success && tries < 5) {
1571
- setTimeout(() => {
1572
- this.updateSlotWidths(tries + 1);
1573
- }, 100);
1574
- }
1575
- });
1576
- }
1577
- /**
1578
- * Measure the widths of the slots and update the CSS custom properties
1579
- * for the minimum width of each pair of slots based on the largest width in each pair.
1580
- * Returns whether we successfully measured all of the slots we expect to have content.
1581
- * If not, the content probably hasn't rendered yet and we need to try again.
1582
- */
1583
- measureAndUpdateSlots() {
1584
- // Define the relationship between slots based on the conditions array
1585
- // Group slots that should have the same width
1586
- const slotPairs = [
1587
- { name: 'start-end', slots: ['start', 'end'] },
1588
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1589
- ];
1590
- // First, measure all slot widths
1591
- const slotWidths = new Map();
1592
- let allMeasurementsSuccessful = true;
1593
- // Measure all slots with content
1594
- const slots = ['start', 'end', 'primary', 'secondary'];
1595
- slots.forEach((slot) => {
1596
- var _a;
1597
- if (this.el.classList.contains(`has-${slot}-content`)) {
1598
- const slotElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slot}"]`);
1599
- if (slotElement) {
1600
- // Check if the slot contains an img or ion-img
1601
- const assignedElements = slotElement.assignedElements({ flatten: true });
1602
- const hasImg = assignedElements.some((el) => {
1603
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1604
- return true;
1605
- }
1606
- // Check for nested images
1607
- return el.querySelector('img, ion-img');
1608
- });
1609
- // Temporarily allow slot to size to content by setting flex-basis
1610
- // to 'auto'. This ensures that slotted images can render at their
1611
- // intrinsic width for measurement.
1612
- if (hasImg) {
1613
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1614
- this.el.style.setProperty(`--${name}-size`, 'auto');
1615
- }
1616
- const width = slotElement.offsetWidth;
1617
- if (width > 0) {
1618
- slotWidths.set(slot, width);
1619
- }
1620
- else {
1621
- allMeasurementsSuccessful = false;
1622
- }
1623
- }
1624
- }
1625
- });
1626
- // Then set the CSS custom properties based on the largest width in each pair
1627
- slotPairs.forEach(({ name, slots }) => {
1628
- // Find the maximum width among the slots in this pair
1629
- let maxWidth = 0;
1630
- let hasAnyContent = false;
1631
- slots.forEach((slot) => {
1632
- var _a;
1633
- if (slotWidths.has(slot)) {
1634
- hasAnyContent = true;
1635
- maxWidth = Math.max(maxWidth, (_a = slotWidths.get(slot)) !== null && _a !== void 0 ? _a : 0);
1636
- }
1637
- });
1638
- // If at least one slot in the pair has content, set the min-width for the pair
1639
- if (hasAnyContent && maxWidth > 0) {
1640
- // Set a single CSS variable for the pair
1641
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1642
- }
1643
- });
1644
- return allMeasurementsSuccessful;
1645
- }
1646
- /**
1647
- * Removes all slot visibility classes and slot width CSS variables.
1648
- */
1649
- removeSlotClasses() {
1650
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1651
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1652
- }
1653
- updateSlotClasses() {
1654
- const titlePlacement = this.getTitlePlacement();
1655
- if (titlePlacement !== 'center') {
1656
- this.removeSlotClasses();
1657
- return;
1658
- }
1659
- // Check if slots have content
1660
- const slots = ['start', 'end', 'primary', 'secondary'];
1661
- const classesToAdd = [];
1662
- const classesToRemove = [];
1663
- slots.forEach((slot) => {
1664
- const slotHasContent = this.hasSlotContent(slot);
1665
- const slotClass = `has-${slot}-content`;
1666
- if (slotHasContent) {
1667
- classesToAdd.push(slotClass);
1668
- }
1669
- else {
1670
- classesToRemove.push(slotClass);
1671
- }
1672
- });
1673
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1674
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1675
- // and does not have any of the excluded slots, otherwise it will be removed.
1676
- // This is useful to enforce centering of the toolbar content when there are different amounts
1677
- // of slots on either side of the toolbar.
1678
- const conditions = [
1679
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1680
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1681
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1682
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1683
- ];
1684
- conditions.forEach((condition) => {
1685
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1686
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1687
- const className = `show-${condition.name}`;
1688
- if (hasRequiredSlots && !hasExcludedSlots) {
1689
- classesToAdd.push(className);
1690
- }
1691
- else {
1692
- classesToRemove.push(className);
1693
- }
1694
- });
1695
- // Add classes to the toolbar element
1696
- this.el.classList.add(...classesToAdd);
1697
- this.el.classList.remove(...classesToRemove);
1698
- // Update slot widths after classes have been updated
1699
- this.updateSlotWidths();
1700
- }
1701
- hasSlotContent(slotName) {
1702
- var _a;
1703
- const slotNode = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slotName}"]`);
1704
- return !!slotNode && slotNode.assignedNodes().length > 0;
1705
1449
  }
1706
1450
  childrenStyle(ev) {
1707
1451
  ev.stopPropagation();
@@ -1726,27 +1470,19 @@ const Toolbar = class {
1726
1470
  }
1727
1471
  }
1728
1472
  render() {
1729
- const theme$1 = ionicGlobal.getIonTheme(this);
1473
+ const mode = ionicGlobal.getIonMode(this);
1730
1474
  const childStyles = {};
1731
- this.childrenStyles.forEach((style) => {
1732
- Object.assign(childStyles, style);
1475
+ this.childrenStyles.forEach((value) => {
1476
+ Object.assign(childStyles, value);
1733
1477
  });
1734
- const titlePlacement = this.getTitlePlacement();
1735
- return (index.h(index.Host, { key: 'bcb621674157410d7eaeb006779bdd677346587e', class: Object.assign(Object.assign({}, theme.createColorClasses(this.color, {
1736
- [theme$1]: true,
1478
+ return (index.h(index.Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
1479
+ [mode]: true,
1737
1480
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
1738
- [`toolbar-title-placement-${titlePlacement}`]: true,
1739
- })), childStyles) }, index.h("div", { key: '0d31a98b2571b9a0ae142fbdfd83e2ebdcd8e069', class: "toolbar-background", part: "background" }), index.h("div", { key: 'de938534c487c6cb4060dac44b40c2d872130f50', class: "toolbar-container", part: "container" }, index.h("slot", { key: 'a337150d353e439eae67c31ff86e383ed51f3d8f', name: "start", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: '02effd3ce0cdad5ec5645fa58ccb329321449190', name: "secondary", onSlotchange: () => this.updateSlotClasses }), index.h("div", { key: '3e22f5feda2aea02117bdea2fe8a4b8905ba82f6', class: "toolbar-content", part: "content" }, index.h("slot", { key: 'ebf828643ff05a8bf662a54715d21d0859168d31' })), index.h("slot", { key: 'a6940648dfe25a7aa8792a1bd9267437274f333c', name: "primary", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: 'afb1d61aa0e430fcf483ba482af64762474e06fe', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1481
+ })) }, index.h("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), index.h("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, index.h("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), index.h("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), index.h("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, index.h("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), index.h("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), index.h("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
1740
1482
  }
1741
1483
  get el() { return index.getElement(this); }
1742
- static get watchers() { return {
1743
- "titlePlacement": [{
1744
- "titlePlacementChanged": 0
1745
- }]
1746
- }; }
1747
1484
  };
1748
1485
  Toolbar.style = {
1749
- ionic: toolbarIonicCss(),
1750
1486
  ios: toolbarIosCss(),
1751
1487
  md: toolbarMdCss()
1752
1488
  };