@ionic/core 9.0.11-dev.11793890855.1bf6a6e5 → 9.0.11-dev.11793906456.1ea7a0a7

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 (1105) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/{p-Dce65ayP.js → p-07wRJfkt.js} +1 -1
  99. package/components/p-3avHDbEF.js +4 -0
  100. package/components/p-7KepMw9O.js +4 -0
  101. package/components/p-7NbIvzb4.js +4 -0
  102. package/components/p-B3dSuofL.js +4 -0
  103. package/components/p-BBsseItU.js +4 -0
  104. package/components/p-BMHdI-wb.js +4 -0
  105. package/components/p-BSQPZ79H.js +4 -0
  106. package/components/p-BT2InaHz.js +4 -0
  107. package/components/{p-BmnPbSf3.js → p-BWbz71uB.js} +1 -1
  108. package/components/p-BZ1k9WL7.js +4 -0
  109. package/components/p-BhamHSw3.js +4 -0
  110. package/components/p-BmVRXR1y.js +4 -0
  111. package/components/p-BrrMFd9K.js +4 -0
  112. package/components/p-C-SO5kIs.js +4 -0
  113. package/components/p-C0TdbIVo.js +4 -0
  114. package/components/p-C6Y0cCH_.js +4 -0
  115. package/components/p-C8BAigo3.js +4 -0
  116. package/components/{p-i08Rz__6.js → p-CCFj0kgH.js} +1 -1
  117. package/components/p-CRb2xRCz.js +4 -0
  118. package/components/p-CUQjkOdi.js +4 -0
  119. package/components/p-CW84OFQa.js +4 -0
  120. package/{dist/ionic/p-CaOPF8Xt.js → components/p-CdrNHfZl.js} +1 -1
  121. package/components/{p-B8TMb1l1.js → p-ChkSQqfP.js} +1 -1
  122. package/components/{p-CXzJ234J.js → p-ChsJlFCQ.js} +1 -1
  123. package/components/p-CjPRDxby.js +4 -0
  124. package/components/p-CohRJRIu.js +4 -0
  125. package/components/{p-YAWKbhjV.js → p-CqvARtmt.js} +1 -1
  126. package/components/p-Ct2aBEue.js +4 -0
  127. package/components/p-CvyvLbPe.js +4 -0
  128. package/components/{p-CiEBXUnh.js → p-CwEis84J.js} +1 -1
  129. package/{dist/ionic/p-BPA4-c6T.js → components/p-D5_mEbGJ.js} +1 -1
  130. package/components/p-D8FyR2IB.js +4 -0
  131. package/components/{p-cm7z1a2E.js → p-DHo45oj7.js} +1 -1
  132. package/components/p-DJztqcrH.js +4 -0
  133. package/components/p-DLEJ61lJ.js +4 -0
  134. package/components/p-DRm4t-by.js +4 -0
  135. package/components/p-DTGCMApY.js +4 -0
  136. package/components/p-D_U0pDe5.js +4 -0
  137. package/components/p-DaW9OZ6S.js +4 -0
  138. package/components/p-Dah8BCNg.js +4 -0
  139. package/components/p-DaojW_d_.js +4 -0
  140. package/components/{p-CSSj6cqb.js → p-Dbi3KqKm.js} +1 -1
  141. package/components/p-DnBabjgY.js +4 -0
  142. package/components/p-Ds5vN3iu.js +4 -0
  143. package/components/p-DwTzX8Vi.js +4 -0
  144. package/components/p-Dy7x-KDF.js +4 -0
  145. package/components/p-HthJZjZ6.js +4 -0
  146. package/components/p-KbMCbGRA.js +4 -0
  147. package/{dist/ionic/p-B7XMQegr.js → components/p-LkEGRiq0.js} +1 -1
  148. package/components/p-LpMHEu3v.js +4 -0
  149. package/components/p-PkD1iLNN.js +4 -0
  150. package/components/p-R4UxBukQ.js +4 -0
  151. package/components/p-RhI78AKb.js +4 -0
  152. package/components/p-byZM6qHV.js +4 -0
  153. package/components/p-hLu-eIbb.js +4 -0
  154. package/components/p-kKGBuIkf.js +4 -0
  155. package/components/p-z-EWo6r-.js +4 -0
  156. package/css/core.css +1 -1
  157. package/css/core.css.map +1 -1
  158. package/css/display.css +1 -1
  159. package/css/display.css.map +1 -1
  160. package/css/flex-utils.css +1 -1
  161. package/css/flex-utils.css.map +1 -1
  162. package/css/float-elements.css.map +1 -1
  163. package/css/global.bundle.css.map +1 -1
  164. package/css/ionic-swiper.css +1 -1
  165. package/css/ionic-swiper.css.map +1 -1
  166. package/css/ionic.bundle.css +1 -1
  167. package/css/ionic.bundle.css.map +1 -1
  168. package/css/normalize.css.map +1 -1
  169. package/css/padding.css.map +1 -1
  170. package/css/palettes/dark.always.css.map +1 -1
  171. package/css/palettes/dark.class.css.map +1 -1
  172. package/css/palettes/dark.system.css.map +1 -1
  173. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  174. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  175. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  176. package/css/palettes/high-contrast.always.css.map +1 -1
  177. package/css/palettes/high-contrast.class.css.map +1 -1
  178. package/css/palettes/high-contrast.system.css.map +1 -1
  179. package/css/structure.css.map +1 -1
  180. package/css/text-alignment.css.map +1 -1
  181. package/css/text-transformation.css.map +1 -1
  182. package/css/typography.css.map +1 -1
  183. package/css/utils.bundle.css +1 -1
  184. package/css/utils.bundle.css.map +1 -1
  185. package/dist/cjs/{animation-zKIdNEmG.js → animation-UiXhXV49.js} +3 -3
  186. package/dist/cjs/{app-globals-BDrxn8eR.js → app-globals-BoFCZq0K.js} +1 -1
  187. package/dist/cjs/{attribute-controller-D7O2snOZ.js → attribute-controller-0-lwbVEj.js} +2 -3
  188. package/dist/cjs/{button-active-CY7cZvH5.js → button-active-DzN1aPt-.js} +2 -2
  189. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-BTjfXFlK.js} +3 -3
  190. package/dist/cjs/focus-visible-CCvKiLh3.js +77 -0
  191. package/dist/cjs/{format-C6r4Asi4.js → format-CVjpvAl1.js} +1 -1
  192. package/dist/cjs/{framework-delegate-CAdDEnFS.js → framework-delegate-hNMKEiQC.js} +2 -4
  193. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-BD5qPgy8.js} +1 -1
  194. package/dist/cjs/{helpers-DHNLF4fD.js → helpers-BrETKUUX.js} +10 -88
  195. package/dist/cjs/{index-B3s1jjBU.js → index-B4ONUQRp.js} +1 -1
  196. package/dist/cjs/{index-C3pmpKlo.js → index-BTc0Jnhx.js} +15 -17
  197. package/dist/cjs/{index-CB1PuDlX.js → index-BiQyIvoc.js} +5 -55
  198. package/dist/cjs/{index-DhGCo_n8.js → index-DMz2Eyis.js} +2 -2
  199. package/dist/cjs/{index-lD5wTj_b.js → index-DNBYnlrc.js} +4 -4
  200. package/dist/cjs/{index-C6QFfpm5.js → index-bwclzjks.js} +7 -9
  201. package/dist/cjs/{index-CxDnX7hd.js → index-wOmugbdg.js} +0 -2
  202. package/dist/cjs/index.cjs.js +18 -20
  203. package/dist/cjs/{input-shims-CjkWx7ae.js → input-shims-CRmdShL9.js} +16 -18
  204. package/dist/cjs/{input.utils-CD4DNiim.js → input.utils-Becpo0ax.js} +1 -1
  205. package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -57
  206. package/dist/cjs/ion-action-sheet.cjs.entry.js +37 -42
  207. package/dist/cjs/ion-alert.cjs.entry.js +45 -50
  208. package/dist/cjs/ion-app_8.cjs.entry.js +196 -466
  209. package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -124
  210. package/dist/cjs/ion-back-button.cjs.entry.js +23 -31
  211. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -11
  212. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -42
  213. package/dist/cjs/ion-button_2.cjs.entry.js +23 -61
  214. package/dist/cjs/ion-card_5.cjs.entry.js +34 -57
  215. package/dist/cjs/ion-checkbox.cjs.entry.js +17 -43
  216. package/dist/cjs/ion-chip.cjs.entry.js +9 -51
  217. package/dist/cjs/ion-col_3.cjs.entry.js +63 -56
  218. package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -45
  219. package/dist/cjs/ion-datetime.cjs.entry.js +63 -407
  220. package/dist/cjs/ion-fab_3.cjs.entry.js +28 -40
  221. package/dist/cjs/ion-img.cjs.entry.js +4 -9
  222. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +16 -91
  223. package/dist/cjs/ion-input-otp.cjs.entry.js +10 -75
  224. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -42
  225. package/dist/cjs/ion-input.cjs.entry.js +38 -147
  226. package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -466
  227. package/dist/cjs/ion-item_8.cjs.entry.js +51 -118
  228. package/dist/cjs/ion-loading.cjs.entry.js +28 -33
  229. package/dist/cjs/ion-menu_3.cjs.entry.js +36 -54
  230. package/dist/cjs/ion-modal.cjs.entry.js +155 -304
  231. package/dist/cjs/ion-nav_2.cjs.entry.js +10 -14
  232. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -13
  233. package/dist/cjs/ion-picker-column.cjs.entry.js +15 -17
  234. package/dist/cjs/ion-picker.cjs.entry.js +6 -11
  235. package/dist/cjs/ion-popover.cjs.entry.js +28 -33
  236. package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -28
  237. package/dist/cjs/ion-radio_2.cjs.entry.js +18 -37
  238. package/dist/cjs/ion-range.cjs.entry.js +13 -21
  239. package/dist/cjs/ion-refresher_2.cjs.entry.js +20 -45
  240. package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -31
  241. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -16
  242. package/dist/cjs/ion-route_4.cjs.entry.js +10 -12
  243. package/dist/cjs/ion-searchbar.cjs.entry.js +32 -118
  244. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  245. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
  246. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -24
  247. package/dist/cjs/ion-select-modal.cjs.entry.js +25 -54
  248. package/dist/cjs/ion-select_3.cjs.entry.js +81 -203
  249. package/dist/cjs/ion-spinner.cjs.entry.js +8 -31
  250. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -14
  251. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +27 -150
  252. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -9
  253. package/dist/cjs/ion-text.cjs.entry.js +7 -8
  254. package/dist/cjs/ion-textarea.cjs.entry.js +41 -178
  255. package/dist/cjs/ion-toast.cjs.entry.js +57 -86
  256. package/dist/cjs/ion-toggle.cjs.entry.js +25 -67
  257. package/dist/cjs/ionic-global-48ceLiJ6.js +156 -0
  258. package/dist/cjs/ionic.cjs.js +4 -5
  259. package/dist/cjs/{ios.transition-BjOYqzH0.js → ios.transition-CN092Fh6.js} +4 -7
  260. package/dist/cjs/{item-multiple-inputs-D0lzjl68.js → item-multiple-inputs-C-hz7xrh.js} +1 -1
  261. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-4OBzkjOG.js} +5 -3
  262. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-BMpscicm.js} +1 -1
  263. package/dist/cjs/keyboard-controller-DZE97OtR.js +167 -0
  264. package/dist/cjs/loader.cjs.js +4 -5
  265. package/dist/cjs/{md.transition-C4i7l6ui.js → md.transition-B6961Ny9.js} +4 -6
  266. package/dist/cjs/{overlay-control-label-DnRLQR1t.js → overlay-control-label-D2sdL2O8.js} +11 -13
  267. package/dist/cjs/{overlays-DziOxcCT.js → overlays-BbVQG3UT.js} +176 -314
  268. package/dist/cjs/{select-option-render-X_iZ-xeh.js → select-option-render-CzyhrkOu.js} +2 -2
  269. package/dist/cjs/{slot-mutation-controller-BS-L1szN.js → slot-mutation-controller-CRa_cKOh.js} +13 -100
  270. package/dist/cjs/{status-tap-D5yiKwdj.js → status-tap-hRIvObiJ.js} +3 -5
  271. package/dist/cjs/{swipe-back-xM_5R5s-.js → swipe-back-C-aigThB.js} +2 -4
  272. package/dist/cjs/{theme-Cy4joHPt.js → theme-Bw0rpaNN.js} +1 -25
  273. package/dist/cjs/validity-BpS37YFM.js +19 -0
  274. package/dist/collection/collection-manifest.json +0 -8
  275. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  276. package/dist/collection/components/accordion/accordion.js +27 -36
  277. package/dist/collection/components/accordion/accordion.md.css +59 -67
  278. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  279. package/dist/collection/components/accordion-group/accordion-group.js +8 -44
  280. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  281. package/dist/collection/components/action-sheet/action-sheet.ios.css +54 -184
  282. package/dist/collection/components/action-sheet/action-sheet.js +13 -16
  283. package/dist/collection/components/action-sheet/action-sheet.md.css +55 -179
  284. package/dist/collection/components/alert/alert.ios.css +54 -247
  285. package/dist/collection/components/alert/alert.js +19 -22
  286. package/dist/collection/components/alert/alert.md.css +56 -243
  287. package/dist/collection/components/app/app.js +83 -15
  288. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  289. package/dist/collection/components/avatar/avatar.js +4 -120
  290. package/dist/collection/components/avatar/avatar.md.css +0 -51
  291. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  292. package/dist/collection/components/back-button/back-button.js +20 -26
  293. package/dist/collection/components/back-button/back-button.md.css +48 -60
  294. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  295. package/dist/collection/components/backdrop/backdrop.js +6 -12
  296. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  297. package/dist/collection/components/badge/badge.ios.css +12 -137
  298. package/dist/collection/components/badge/badge.js +9 -143
  299. package/dist/collection/components/badge/badge.md.css +12 -122
  300. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  301. package/dist/collection/components/breadcrumb/breadcrumb.js +11 -31
  302. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  303. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  304. package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
  305. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  306. package/dist/collection/components/button/button.ios.css +46 -154
  307. package/dist/collection/components/button/button.js +27 -63
  308. package/dist/collection/components/button/button.md.css +50 -150
  309. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  310. package/dist/collection/components/buttons/buttons.js +9 -15
  311. package/dist/collection/components/buttons/buttons.md.css +3 -55
  312. package/dist/collection/components/card/card.ios.css +14 -65
  313. package/dist/collection/components/card/card.js +10 -41
  314. package/dist/collection/components/card/card.md.css +14 -65
  315. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  316. package/dist/collection/components/card-content/card-content.js +10 -12
  317. package/dist/collection/components/card-content/card-content.md.css +35 -20
  318. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  319. package/dist/collection/components/card-header/card-header.js +10 -13
  320. package/dist/collection/components/card-header/card-header.md.css +15 -27
  321. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  322. package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
  323. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  324. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  325. package/dist/collection/components/card-title/card-title.js +8 -11
  326. package/dist/collection/components/card-title/card-title.md.css +0 -73
  327. package/dist/collection/components/checkbox/checkbox.ios.css +115 -244
  328. package/dist/collection/components/checkbox/checkbox.js +15 -80
  329. package/dist/collection/components/checkbox/checkbox.md.css +116 -245
  330. package/dist/collection/components/chip/chip.ios.css +14 -67
  331. package/dist/collection/components/chip/chip.js +8 -108
  332. package/dist/collection/components/chip/chip.md.css +14 -67
  333. package/dist/collection/components/col/col.css +4 -192
  334. package/dist/collection/components/col/col.js +67 -210
  335. package/dist/collection/components/content/{content.ios.css → content.css} +37 -106
  336. package/dist/collection/components/content/content.js +13 -22
  337. package/dist/collection/components/datetime/datetime.ios.css +114 -469
  338. package/dist/collection/components/datetime/datetime.js +52 -451
  339. package/dist/collection/components/datetime/datetime.md.css +103 -447
  340. package/dist/collection/components/datetime/utils/data.js +5 -5
  341. package/dist/collection/components/datetime/utils/state.js +1 -18
  342. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
  343. package/dist/collection/components/datetime-button/datetime-button.js +12 -43
  344. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
  345. package/dist/collection/components/fab/fab.css +1 -25
  346. package/dist/collection/components/fab/fab.js +5 -9
  347. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  348. package/dist/collection/components/fab-button/fab-button.js +21 -31
  349. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  350. package/dist/collection/components/fab-list/fab-list.css +0 -12
  351. package/dist/collection/components/fab-list/fab-list.js +5 -9
  352. package/dist/collection/components/footer/footer.ios.css +6 -33
  353. package/dist/collection/components/footer/footer.js +25 -117
  354. package/dist/collection/components/footer/footer.md.css +0 -40
  355. package/dist/collection/components/grid/grid.css +0 -12
  356. package/dist/collection/components/grid/grid.js +5 -9
  357. package/dist/collection/components/header/header.ios.css +133 -178
  358. package/dist/collection/components/header/header.js +39 -180
  359. package/dist/collection/components/header/header.md.css +9 -199
  360. package/dist/collection/components/header/header.utils.js +13 -5
  361. package/dist/collection/components/img/img.js +2 -7
  362. package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -99
  363. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  364. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
  365. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  366. package/dist/collection/components/input/input.ios.css +160 -254
  367. package/dist/collection/components/input/input.js +44 -172
  368. package/dist/collection/components/input/input.md.css +232 -224
  369. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  370. package/dist/collection/components/input-otp/input-otp.js +8 -74
  371. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  372. package/dist/collection/components/input-password-toggle/input-password-toggle.js +10 -37
  373. package/dist/collection/components/item/item.ios.css +80 -120
  374. package/dist/collection/components/item/item.js +21 -51
  375. package/dist/collection/components/item/item.md.css +79 -131
  376. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  377. package/dist/collection/components/item-divider/item-divider.js +8 -11
  378. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  379. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  380. package/dist/collection/components/item-group/item-group.js +7 -13
  381. package/dist/collection/components/item-group/item-group.md.css +0 -12
  382. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  383. package/dist/collection/components/item-option/item-option.js +9 -73
  384. package/dist/collection/components/item-option/item-option.md.css +29 -136
  385. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  386. package/dist/collection/components/item-options/item-options.js +7 -13
  387. package/dist/collection/components/item-options/item-options.md.css +34 -77
  388. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  389. package/dist/collection/components/item-sliding/item-sliding.js +35 -419
  390. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  391. package/dist/collection/components/label/label.ios.css +0 -18
  392. package/dist/collection/components/label/label.js +8 -11
  393. package/dist/collection/components/label/label.md.css +0 -18
  394. package/dist/collection/components/list/list.ios.css +14 -54
  395. package/dist/collection/components/list/list.js +9 -48
  396. package/dist/collection/components/list/list.md.css +16 -56
  397. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  398. package/dist/collection/components/list-header/list-header.js +8 -11
  399. package/dist/collection/components/list-header/list-header.md.css +38 -82
  400. package/dist/collection/components/loading/loading.ios.css +1 -13
  401. package/dist/collection/components/loading/loading.js +12 -15
  402. package/dist/collection/components/loading/loading.md.css +1 -13
  403. package/dist/collection/components/menu/menu.ios.css +3 -15
  404. package/dist/collection/components/menu/menu.js +7 -12
  405. package/dist/collection/components/menu/menu.md.css +3 -15
  406. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  407. package/dist/collection/components/menu-button/menu-button.js +10 -23
  408. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  409. package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
  410. package/dist/collection/components/modal/animations/sheet.js +2 -8
  411. package/dist/collection/components/modal/gestures/sheet.js +8 -96
  412. package/dist/collection/components/modal/modal.ios.css +70 -178
  413. package/dist/collection/components/modal/modal.js +13 -52
  414. package/dist/collection/components/modal/modal.md.css +70 -178
  415. package/dist/collection/components/nav/nav.css +1 -7
  416. package/dist/collection/components/nav/nav.js +4 -10
  417. package/dist/collection/components/nav-link/nav-link.js +1 -5
  418. package/dist/collection/components/note/note.ios.css +0 -12
  419. package/dist/collection/components/note/note.js +8 -11
  420. package/dist/collection/components/note/note.md.css +0 -12
  421. package/dist/collection/components/picker/picker.ios.css +3 -15
  422. package/dist/collection/components/picker/picker.js +5 -8
  423. package/dist/collection/components/picker/picker.md.css +3 -15
  424. package/dist/collection/components/picker-column/picker-column.css +2 -9
  425. package/dist/collection/components/picker-column/picker-column.js +7 -8
  426. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  427. package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
  428. package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
  429. package/dist/collection/components/popover/popover.ios.css +1 -13
  430. package/dist/collection/components/popover/popover.js +16 -19
  431. package/dist/collection/components/popover/popover.md.css +1 -13
  432. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  433. package/dist/collection/components/progress-bar/progress-bar.js +7 -43
  434. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  435. package/dist/collection/components/radio/radio.ios.css +102 -207
  436. package/dist/collection/components/radio/radio.js +9 -14
  437. package/dist/collection/components/radio/radio.md.css +102 -207
  438. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  439. package/dist/collection/components/radio-group/radio-group.js +7 -48
  440. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  441. package/dist/collection/components/range/range.ios.css +85 -128
  442. package/dist/collection/components/range/range.js +10 -16
  443. package/dist/collection/components/range/range.md.css +85 -128
  444. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  445. package/dist/collection/components/refresher/refresher.js +8 -11
  446. package/dist/collection/components/refresher/refresher.md.css +2 -15
  447. package/dist/collection/components/refresher-content/refresher-content.js +7 -34
  448. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  449. package/dist/collection/components/reorder/reorder.js +6 -25
  450. package/dist/collection/components/reorder/reorder.md.css +0 -6
  451. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  452. package/dist/collection/components/reorder-group/reorder-group.js +4 -8
  453. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  454. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
  455. package/dist/collection/components/route/route.js +0 -4
  456. package/dist/collection/components/router/router.js +0 -4
  457. package/dist/collection/components/router-link/router-link.css +2 -8
  458. package/dist/collection/components/router-link/router-link.js +5 -9
  459. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  460. package/dist/collection/components/router-outlet/router-outlet.js +3 -6
  461. package/dist/collection/components/row/row.css +0 -16
  462. package/dist/collection/components/row/row.js +2 -9
  463. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  464. package/dist/collection/components/searchbar/searchbar.js +42 -164
  465. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  466. package/dist/collection/components/segment/segment.ios.css +2 -45
  467. package/dist/collection/components/segment/segment.js +8 -11
  468. package/dist/collection/components/segment/segment.md.css +2 -45
  469. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  470. package/dist/collection/components/segment-button/segment-button.js +8 -11
  471. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  472. package/dist/collection/components/segment-content/segment-content.js +1 -1
  473. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  474. package/dist/collection/components/segment-view/segment-view.js +4 -13
  475. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  476. package/dist/collection/components/select/select.ios.css +148 -304
  477. package/dist/collection/components/select/select.js +82 -232
  478. package/dist/collection/components/select/select.md.css +150 -320
  479. package/dist/collection/components/select-modal/select-modal.ios.css +45 -293
  480. package/dist/collection/components/select-modal/select-modal.js +15 -63
  481. package/dist/collection/components/select-modal/select-modal.md.css +43 -273
  482. package/dist/collection/components/select-option/select-option.js +4 -8
  483. package/dist/collection/components/select-popover/select-popover.ios.css +124 -188
  484. package/dist/collection/components/select-popover/select-popover.js +9 -17
  485. package/dist/collection/components/select-popover/select-popover.md.css +47 -228
  486. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  487. package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
  488. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  489. package/dist/collection/components/spinner/spinner.js +6 -47
  490. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  491. package/dist/collection/components/split-pane/split-pane.js +8 -15
  492. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  493. package/dist/collection/components/tab/tab.js +2 -6
  494. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  495. package/dist/collection/components/tab-bar/tab-bar.js +15 -178
  496. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  497. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  498. package/dist/collection/components/tab-button/tab-button.js +9 -54
  499. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  500. package/dist/collection/components/tabs/tabs.css +1 -7
  501. package/dist/collection/components/tabs/tabs.js +1 -4
  502. package/dist/collection/components/text/text.css +0 -6
  503. package/dist/collection/components/text/text.js +6 -7
  504. package/dist/collection/components/textarea/textarea.ios.css +174 -322
  505. package/dist/collection/components/textarea/textarea.js +43 -205
  506. package/dist/collection/components/textarea/textarea.md.css +176 -339
  507. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  508. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  509. package/dist/collection/components/title/title.ios.css +4 -32
  510. package/dist/collection/components/title/title.js +7 -13
  511. package/dist/collection/components/title/title.md.css +4 -39
  512. package/dist/collection/components/toast/animations/utils.js +1 -1
  513. package/dist/collection/components/toast/toast.ios.css +45 -84
  514. package/dist/collection/components/toast/toast.js +13 -79
  515. package/dist/collection/components/toast/toast.md.css +45 -84
  516. package/dist/collection/components/toggle/toggle.ios.css +127 -247
  517. package/dist/collection/components/toggle/toggle.js +18 -58
  518. package/dist/collection/components/toggle/toggle.md.css +127 -245
  519. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  520. package/dist/collection/components/toolbar/toolbar.js +14 -216
  521. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  522. package/dist/collection/global/ionic-global.js +13 -239
  523. package/dist/collection/utils/focus-trap.js +4 -15
  524. package/dist/collection/utils/focus-visible.js +2 -73
  525. package/dist/collection/utils/forms/click-controller.js +9 -95
  526. package/dist/collection/utils/forms/index.js +0 -1
  527. package/dist/collection/utils/forms/validity.js +0 -31
  528. package/dist/collection/utils/framework-delegate.js +1 -3
  529. package/dist/collection/utils/hardware-back-button.js +0 -15
  530. package/dist/collection/utils/helpers.js +3 -84
  531. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
  532. package/dist/collection/utils/media.js +0 -1
  533. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  534. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  535. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  536. package/dist/collection/utils/overlay-control-label.js +11 -13
  537. package/dist/collection/utils/overlays.js +10 -289
  538. package/dist/collection/utils/test/playwright/drag-element.js +9 -32
  539. package/dist/collection/utils/test/playwright/generator.js +23 -48
  540. package/dist/collection/utils/test/playwright/index.js +0 -1
  541. package/dist/collection/utils/test/playwright/page/utils/goto.js +1 -10
  542. package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
  543. package/dist/collection/utils/theme.js +1 -25
  544. package/dist/collection/utils/transition/ios.transition.js +0 -1
  545. package/dist/docs.json +304 -9167
  546. package/dist/esm/{animation-GasMiLY0.js → animation-C_V9lXzL.js} +2 -2
  547. package/dist/esm/{app-globals-DbCTe1Vv.js → app-globals-CNfpAPW6.js} +1 -1
  548. package/dist/esm/{attribute-controller-CbJaN4Zr.js → attribute-controller-ItNOXNp9.js} +1 -2
  549. package/dist/esm/{button-active-DLOYzeXl.js → button-active-rB-Ct9KZ.js} +2 -2
  550. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-BY7l8HgR.js} +1 -1
  551. package/dist/esm/focus-visible-BmVRXR1y.js +75 -0
  552. package/dist/esm/{format-DUHrIiJq.js → format-Ck1cw5z7.js} +2 -2
  553. package/dist/esm/{framework-delegate-99Ms_INy.js → framework-delegate-CW5_kWfc.js} +2 -4
  554. package/dist/esm/{haptic-Cq4UAeka.js → haptic-ES_sSPLn.js} +1 -1
  555. package/dist/esm/{helpers-B_F2b1gy.js → helpers-p94IkmEA.js} +8 -86
  556. package/dist/esm/{index-hR6kxzTq.js → index-BpRUsN_W.js} +5 -55
  557. package/dist/esm/{index-BkJpfpXI.js → index-BvabGprD.js} +1 -2
  558. package/dist/esm/{index-BeR_5uou.js → index-CBkVO5D0.js} +2 -2
  559. package/dist/esm/{index-BRYliuA-.js → index-CK8uF0iB.js} +1 -1
  560. package/dist/esm/{index-BoEdvSPU.js → index-DLDbwWW7.js} +2 -4
  561. package/dist/esm/{index-D86Q8ZLS.js → index-txcXIB3P.js} +10 -12
  562. package/dist/esm/{index-D5lNz-tr.js → index-vgPixHgF.js} +4 -4
  563. package/dist/esm/index.js +12 -14
  564. package/dist/esm/{input-shims-CJVi9djP.js → input-shims-KNXj3DAv.js} +5 -7
  565. package/dist/esm/{input.utils-gPgFKve4.js → input.utils-DZY_K8Po.js} +1 -1
  566. package/dist/esm/ion-accordion_2.entry.js +29 -57
  567. package/dist/esm/ion-action-sheet.entry.js +22 -27
  568. package/dist/esm/ion-alert.entry.js +29 -34
  569. package/dist/esm/ion-app_8.entry.js +194 -464
  570. package/dist/esm/ion-avatar_3.entry.js +13 -124
  571. package/dist/esm/ion-back-button.entry.js +23 -31
  572. package/dist/esm/ion-backdrop.entry.js +7 -11
  573. package/dist/esm/ion-breadcrumb_2.entry.js +18 -42
  574. package/dist/esm/ion-button_2.entry.js +23 -61
  575. package/dist/esm/ion-card_5.entry.js +34 -57
  576. package/dist/esm/ion-checkbox.entry.js +17 -43
  577. package/dist/esm/ion-chip.entry.js +9 -51
  578. package/dist/esm/ion-col_3.entry.js +63 -56
  579. package/dist/esm/ion-datetime-button.entry.js +13 -45
  580. package/dist/esm/ion-datetime.entry.js +62 -406
  581. package/dist/esm/ion-fab_3.entry.js +28 -40
  582. package/dist/esm/ion-img.entry.js +4 -9
  583. package/dist/esm/ion-infinite-scroll_2.entry.js +16 -91
  584. package/dist/esm/ion-input-otp.entry.js +10 -75
  585. package/dist/esm/ion-input-password-toggle.entry.js +14 -42
  586. package/dist/esm/ion-input.entry.js +38 -147
  587. package/dist/esm/ion-item-option_3.entry.js +52 -466
  588. package/dist/esm/ion-item_8.entry.js +51 -118
  589. package/dist/esm/ion-loading.entry.js +17 -22
  590. package/dist/esm/ion-menu_3.entry.js +27 -45
  591. package/dist/esm/ion-modal.entry.js +88 -237
  592. package/dist/esm/ion-nav_2.entry.js +10 -14
  593. package/dist/esm/ion-picker-column-option.entry.js +8 -13
  594. package/dist/esm/ion-picker-column.entry.js +12 -14
  595. package/dist/esm/ion-picker.entry.js +6 -11
  596. package/dist/esm/ion-popover.entry.js +18 -23
  597. package/dist/esm/ion-progress-bar.entry.js +9 -28
  598. package/dist/esm/ion-radio_2.entry.js +18 -37
  599. package/dist/esm/ion-range.entry.js +13 -21
  600. package/dist/esm/ion-refresher_2.entry.js +20 -45
  601. package/dist/esm/ion-reorder_2.entry.js +13 -31
  602. package/dist/esm/ion-ripple-effect.entry.js +7 -16
  603. package/dist/esm/ion-route_4.entry.js +10 -12
  604. package/dist/esm/ion-searchbar.entry.js +32 -118
  605. package/dist/esm/ion-segment-content.entry.js +2 -2
  606. package/dist/esm/ion-segment-view.entry.js +3 -13
  607. package/dist/esm/ion-segment_2.entry.js +16 -24
  608. package/dist/esm/ion-select-modal.entry.js +24 -53
  609. package/dist/esm/ion-select_3.entry.js +76 -198
  610. package/dist/esm/ion-spinner.entry.js +8 -31
  611. package/dist/esm/ion-split-pane.entry.js +9 -14
  612. package/dist/esm/ion-tab-bar_2.entry.js +26 -149
  613. package/dist/esm/ion-tab_2.entry.js +7 -9
  614. package/dist/esm/ion-text.entry.js +7 -8
  615. package/dist/esm/ion-textarea.entry.js +41 -178
  616. package/dist/esm/ion-toast.entry.js +19 -48
  617. package/dist/esm/ion-toggle.entry.js +25 -67
  618. package/dist/esm/ionic-global-Cep6oYzK.js +151 -0
  619. package/dist/esm/ionic.js +5 -6
  620. package/dist/esm/{ios.transition-C9thfQYf.js → ios.transition-CW92wRDL.js} +4 -7
  621. package/dist/esm/{item-multiple-inputs-CSJsB7-I.js → item-multiple-inputs-Bd2LO7qK.js} +1 -1
  622. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-BumguZrM.js} +5 -3
  623. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CutS8BPd.js} +1 -1
  624. package/dist/esm/keyboard-controller-DqohyEsZ.js +165 -0
  625. package/dist/esm/loader.js +5 -6
  626. package/dist/esm/{md.transition-BEhPsy_z.js → md.transition-yhfkYX1P.js} +4 -6
  627. package/dist/esm/{overlay-control-label-CODBQrPj.js → overlay-control-label-BSQPZ79H.js} +11 -13
  628. package/dist/esm/{overlays-C8sf7PId.js → overlays-BBgMM61s.js} +164 -307
  629. package/dist/esm/{select-option-render-D5kt0cO9.js → select-option-render-BSDT9oSA.js} +2 -2
  630. package/dist/esm/{slot-mutation-controller-DanfZTCH.js → slot-mutation-controller-uKdPbY9K.js} +10 -97
  631. package/dist/esm/{status-tap-B8UQS38n.js → status-tap-BskkGI4e.js} +3 -5
  632. package/dist/esm/{swipe-back-Bgftkxen.js → swipe-back-BZdyM2Q-.js} +2 -4
  633. package/dist/esm/{theme-BUF_V-Kg.js → theme-byZM6qHV.js} +1 -25
  634. package/dist/esm/validity-DJztqcrH.js +17 -0
  635. package/dist/html.html-data.json +156 -2657
  636. package/dist/ionic/index.esm.js +1 -1
  637. package/dist/ionic/ionic.esm.js +1 -1
  638. package/dist/ionic/p-00cd107d.entry.js +4 -0
  639. package/dist/ionic/p-013b9aba.entry.js +4 -0
  640. package/dist/ionic/p-014c3633.entry.js +4 -0
  641. package/dist/ionic/p-0562139b.entry.js +4 -0
  642. package/dist/ionic/p-0a789930.entry.js +4 -0
  643. package/dist/ionic/p-0f1613f2.entry.js +4 -0
  644. package/dist/ionic/p-1252621e.entry.js +4 -0
  645. package/dist/ionic/p-129f7b95.entry.js +4 -0
  646. package/dist/ionic/p-16de8fd9.entry.js +4 -0
  647. package/dist/ionic/p-1bb1be7e.entry.js +4 -0
  648. package/dist/ionic/p-1f342c2d.entry.js +4 -0
  649. package/dist/ionic/p-1ffa5577.entry.js +4 -0
  650. package/dist/ionic/p-210f906e.entry.js +4 -0
  651. package/dist/ionic/p-27960f65.entry.js +4 -0
  652. package/dist/ionic/p-3c6fc2e8.entry.js +4 -0
  653. package/dist/ionic/p-436d4ac8.entry.js +4 -0
  654. package/dist/ionic/p-43729675.entry.js +4 -0
  655. package/dist/ionic/p-4468e439.entry.js +4 -0
  656. package/dist/ionic/p-4e4e5919.entry.js +4 -0
  657. package/dist/ionic/p-51af4728.entry.js +4 -0
  658. package/dist/ionic/p-59e4b521.entry.js +4 -0
  659. package/dist/ionic/{p-BMPN55of.js → p-5a3UxQAh.js} +1 -1
  660. package/dist/ionic/p-5b47b8d5.entry.js +4 -0
  661. package/dist/ionic/p-5dcddfd5.entry.js +4 -0
  662. package/dist/ionic/p-694f3e78.entry.js +4 -0
  663. package/dist/ionic/p-76c189e7.entry.js +4 -0
  664. package/dist/ionic/p-77252596.entry.js +4 -0
  665. package/dist/ionic/p-77540bcb.entry.js +4 -0
  666. package/dist/ionic/p-77e7b612.entry.js +4 -0
  667. package/dist/ionic/p-7868eb92.entry.js +4 -0
  668. package/dist/ionic/p-800ce1e0.entry.js +4 -0
  669. package/dist/ionic/p-84470714.entry.js +4 -0
  670. package/dist/ionic/p-87fb6d59.entry.js +4 -0
  671. package/dist/ionic/p-8B39TMv-.js +4 -0
  672. package/dist/ionic/p-8af85fa8.entry.js +4 -0
  673. package/dist/ionic/p-8c85e250.entry.js +4 -0
  674. package/dist/ionic/p-8dQB1sG_.js +4 -0
  675. package/dist/ionic/p-9515f840.entry.js +4 -0
  676. package/dist/ionic/p-96d040b0.entry.js +4 -0
  677. package/dist/ionic/p-9d7e5a0b.entry.js +4 -0
  678. package/dist/ionic/p-B0afqOUt.js +4 -0
  679. package/dist/ionic/p-B2JD8_LP.js +4 -0
  680. package/dist/ionic/p-B2y1T0dN.js +4 -0
  681. package/dist/ionic/{p-T71k3C35.js → p-BBZQUbCq.js} +1 -1
  682. package/dist/ionic/p-BHBb21Hp.js +4 -0
  683. package/{components/p-B7ExaLVL.js → dist/ionic/p-BO10QT9r.js} +1 -1
  684. package/dist/ionic/p-BSQPZ79H.js +4 -0
  685. package/{components/p-BmfO2-NE.js → dist/ionic/p-BWKtcudz.js} +1 -1
  686. package/dist/ionic/p-BexAj0yw.js +4 -0
  687. package/dist/ionic/p-BgkRGRO3.js +4 -0
  688. package/dist/ionic/p-BmVRXR1y.js +4 -0
  689. package/dist/ionic/p-BpRUsN_W.js +6 -0
  690. package/dist/ionic/p-BvabGprD.js +4 -0
  691. package/dist/ionic/p-C4SpVvhx.js +4 -0
  692. package/{components/p-o89R3aqe.js → dist/ionic/p-CJmyfI8x.js} +1 -1
  693. package/dist/ionic/p-CNdt1FPc.js +4 -0
  694. package/dist/ionic/{p-DuxayXEj.js → p-Cf6KtUnA.js} +1 -1
  695. package/dist/ionic/p-CfccUand.js +4 -0
  696. package/dist/ionic/p-DArnNWiu.js +4 -0
  697. package/dist/ionic/p-DBFcFCH5.js +4 -0
  698. package/dist/ionic/{p-Bjt84heL.js → p-DCmOKz8e.js} +1 -1
  699. package/dist/ionic/p-DFPZa_No.js +4 -0
  700. package/dist/ionic/p-DJztqcrH.js +4 -0
  701. package/dist/ionic/p-DYKDWM2f.js +4 -0
  702. package/dist/ionic/{p-rwBGNQHN.js → p-DfvWlTdB.js} +1 -1
  703. package/dist/ionic/p-DriE1ZAo.js +4 -0
  704. package/dist/ionic/{p-CeHcVwSj.js → p-DxftXYZp.js} +1 -1
  705. package/dist/ionic/p-DzQk7Lu8.js +4 -0
  706. package/dist/ionic/p-SEecsUh7.js +4 -0
  707. package/dist/ionic/p-a45caa30.entry.js +4 -0
  708. package/dist/ionic/p-af15fc5d.entry.js +4 -0
  709. package/dist/ionic/p-af4b4719.entry.js +4 -0
  710. package/dist/ionic/p-b0faaae2.entry.js +4 -0
  711. package/dist/ionic/p-b3aadfe8.entry.js +4 -0
  712. package/dist/ionic/p-b5bcbbc1.entry.js +4 -0
  713. package/dist/ionic/p-byZM6qHV.js +4 -0
  714. package/dist/ionic/p-c293f854.entry.js +4 -0
  715. package/dist/ionic/p-c56c23b6.entry.js +4 -0
  716. package/dist/ionic/p-c7ea2647.entry.js +4 -0
  717. package/dist/ionic/p-c8c77f7b.entry.js +4 -0
  718. package/dist/ionic/p-cbc73380.entry.js +4 -0
  719. package/dist/ionic/p-d58e9da3.entry.js +4 -0
  720. package/dist/ionic/p-e1haAYzm.js +4 -0
  721. package/dist/ionic/p-ec08a7e6.entry.js +4 -0
  722. package/dist/ionic/p-f37e6ed2.entry.js +4 -0
  723. package/dist/ionic/p-f6a1ab48.entry.js +4 -0
  724. package/dist/types/components/accordion/accordion.d.ts +3 -12
  725. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  726. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  727. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  728. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  729. package/dist/types/components/alert/alert.d.ts +2 -3
  730. package/dist/types/components/app/app.d.ts +5 -4
  731. package/dist/types/components/avatar/avatar.d.ts +0 -32
  732. package/dist/types/components/back-button/back-button.d.ts +3 -10
  733. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  734. package/dist/types/components/badge/badge.d.ts +1 -34
  735. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -14
  736. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  737. package/dist/types/components/button/button.d.ts +8 -23
  738. package/dist/types/components/buttons/buttons.d.ts +1 -5
  739. package/dist/types/components/card/card.d.ts +1 -8
  740. package/dist/types/components/card-content/card-content.d.ts +1 -2
  741. package/dist/types/components/card-header/card-header.d.ts +2 -3
  742. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  743. package/dist/types/components/card-title/card-title.d.ts +1 -2
  744. package/dist/types/components/checkbox/checkbox.d.ts +5 -26
  745. package/dist/types/components/chip/chip.d.ts +1 -26
  746. package/dist/types/components/col/col.d.ts +6 -52
  747. package/dist/types/components/content/content.d.ts +0 -3
  748. package/dist/types/components/datetime/datetime-interface.d.ts +0 -4
  749. package/dist/types/components/datetime/datetime.d.ts +7 -99
  750. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  751. package/dist/types/components/datetime/utils/state.d.ts +2 -5
  752. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  753. package/dist/types/components/fab/fab.d.ts +0 -4
  754. package/dist/types/components/fab-button/fab-button.d.ts +3 -11
  755. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  756. package/dist/types/components/footer/footer.d.ts +3 -20
  757. package/dist/types/components/grid/grid.d.ts +0 -4
  758. package/dist/types/components/header/header.d.ts +3 -26
  759. package/dist/types/components/header/header.utils.d.ts +5 -4
  760. package/dist/types/components/img/img.d.ts +0 -2
  761. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  762. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  763. package/dist/types/components/input/input.d.ts +5 -45
  764. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  765. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -14
  766. package/dist/types/components/item/item.d.ts +4 -17
  767. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  768. package/dist/types/components/item-group/item-group.d.ts +0 -4
  769. package/dist/types/components/item-option/item-option.d.ts +1 -18
  770. package/dist/types/components/item-options/item-options.d.ts +0 -4
  771. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  772. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  773. package/dist/types/components/label/label.d.ts +1 -2
  774. package/dist/types/components/list/list.d.ts +1 -15
  775. package/dist/types/components/list-header/list-header.d.ts +1 -2
  776. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  777. package/dist/types/components/loading/loading.d.ts +2 -3
  778. package/dist/types/components/menu/menu.d.ts +0 -3
  779. package/dist/types/components/menu-button/menu-button.d.ts +1 -8
  780. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  781. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  782. package/dist/types/components/modal/modal-interface.d.ts +7 -4
  783. package/dist/types/components/modal/modal.d.ts +1 -11
  784. package/dist/types/components/nav/nav-interface.d.ts +1 -9
  785. package/dist/types/components/nav/nav.d.ts +1 -5
  786. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  787. package/dist/types/components/note/note.d.ts +1 -2
  788. package/dist/types/components/picker/picker.d.ts +1 -2
  789. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  790. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  791. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  792. package/dist/types/components/popover/popover.d.ts +5 -6
  793. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  794. package/dist/types/components/radio/radio.d.ts +1 -2
  795. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  796. package/dist/types/components/range/range.d.ts +1 -2
  797. package/dist/types/components/refresher/refresher.d.ts +1 -2
  798. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -10
  799. package/dist/types/components/reorder/reorder.d.ts +0 -9
  800. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  801. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  802. package/dist/types/components/route/route.d.ts +0 -4
  803. package/dist/types/components/router/router.d.ts +0 -4
  804. package/dist/types/components/router-link/router-link.d.ts +0 -4
  805. package/dist/types/components/router-outlet/router-outlet.d.ts +1 -4
  806. package/dist/types/components/row/row.d.ts +0 -4
  807. package/dist/types/components/searchbar/searchbar.d.ts +10 -56
  808. package/dist/types/components/segment/segment.d.ts +1 -2
  809. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  810. package/dist/types/components/select/select.d.ts +15 -59
  811. package/dist/types/components/select-modal/select-modal.d.ts +0 -13
  812. package/dist/types/components/select-option/select-option.d.ts +4 -7
  813. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  814. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  815. package/dist/types/components/spinner/spinner.d.ts +0 -15
  816. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  817. package/dist/types/components/tab/tab.d.ts +0 -4
  818. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +0 -1
  819. package/dist/types/components/tab-bar/tab-bar.d.ts +3 -41
  820. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  821. package/dist/types/components/tabs/tabs.d.ts +0 -3
  822. package/dist/types/components/text/text.d.ts +1 -2
  823. package/dist/types/components/textarea/textarea.d.ts +17 -75
  824. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  825. package/dist/types/components/title/title.d.ts +0 -4
  826. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  827. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  828. package/dist/types/components/toast/toast.d.ts +2 -19
  829. package/dist/types/components/toggle/toggle.d.ts +1 -18
  830. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  831. package/dist/types/components.d.ts +213 -1874
  832. package/dist/types/global/ionic-global.d.ts +2 -28
  833. package/dist/types/interface.d.ts +0 -3
  834. package/dist/types/utils/config.d.ts +4 -128
  835. package/dist/types/utils/focus-trap.d.ts +1 -1
  836. package/dist/types/utils/focus-visible.d.ts +0 -33
  837. package/dist/types/utils/forms/click-controller.d.ts +5 -16
  838. package/dist/types/utils/forms/index.d.ts +0 -1
  839. package/dist/types/utils/forms/validity.d.ts +0 -7
  840. package/dist/types/utils/helpers.d.ts +0 -29
  841. package/dist/types/utils/overlay-control-label.d.ts +9 -11
  842. package/dist/types/utils/overlays-interface.d.ts +1 -31
  843. package/dist/types/utils/overlays.d.ts +1 -1
  844. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  845. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  846. package/dist/types/utils/test/playwright/index.d.ts +0 -1
  847. package/dist/types/utils/theme.d.ts +0 -9
  848. package/hydrate/index.js +1284 -5846
  849. package/hydrate/index.mjs +1284 -5846
  850. package/package.json +4 -7
  851. package/components/ion-divider.d.ts +0 -11
  852. package/components/ion-divider.js +0 -4
  853. package/components/ion-gallery-item.d.ts +0 -11
  854. package/components/ion-gallery-item.js +0 -4
  855. package/components/ion-gallery.d.ts +0 -11
  856. package/components/ion-gallery.js +0 -4
  857. package/components/p-0rXxxCTt.js +0 -4
  858. package/components/p-3Qs1sQxU.js +0 -4
  859. package/components/p-3SVb97od.js +0 -4
  860. package/components/p-7-zF1amS.js +0 -4
  861. package/components/p-AgF3xGwz.js +0 -4
  862. package/components/p-BHiggB_l.js +0 -4
  863. package/components/p-BNBa8_Ls.js +0 -4
  864. package/components/p-BNV7BMZo.js +0 -4
  865. package/components/p-BUF_V-Kg.js +0 -4
  866. package/components/p-BYk20Mf5.js +0 -4
  867. package/components/p-B_o50gvn.js +0 -4
  868. package/components/p-BfDzKnZ-.js +0 -4
  869. package/components/p-C0H1LYQ5.js +0 -4
  870. package/components/p-C7BPrXxF.js +0 -4
  871. package/components/p-C93i7QCU.js +0 -4
  872. package/components/p-C9qQ2zBV.js +0 -4
  873. package/components/p-CAekGbOf.js +0 -4
  874. package/components/p-CE7N7-7s.js +0 -4
  875. package/components/p-CL3vSQL7.js +0 -4
  876. package/components/p-CODBQrPj.js +0 -4
  877. package/components/p-CehdCO1m.js +0 -4
  878. package/components/p-CvxND1-3.js +0 -4
  879. package/components/p-CyvtM0H1.js +0 -4
  880. package/components/p-CzDkZh7h.js +0 -4
  881. package/components/p-DEh2reav.js +0 -4
  882. package/components/p-DFBWAYvo.js +0 -4
  883. package/components/p-DFjX2uxL.js +0 -4
  884. package/components/p-DLXAGW46.js +0 -4
  885. package/components/p-DQwGbYN_.js +0 -4
  886. package/components/p-DRpeTf7R.js +0 -4
  887. package/components/p-Da8LCPwo.js +0 -4
  888. package/components/p-DbKRl9BQ.js +0 -4
  889. package/components/p-DdOVnjsY.js +0 -4
  890. package/components/p-DibGn4gb.js +0 -4
  891. package/components/p-DirxxGzo.js +0 -4
  892. package/components/p-DmdTkb5k.js +0 -4
  893. package/components/p-DmhWSY74.js +0 -4
  894. package/components/p-DtZimz8H.js +0 -4
  895. package/components/p-ET0FZop5.js +0 -4
  896. package/components/p-LoXpKVmq.js +0 -4
  897. package/components/p-NZGZhPF5.js +0 -4
  898. package/components/p-NcQUGze-.js +0 -4
  899. package/components/p-PFwuhbqg.js +0 -4
  900. package/components/p-fU4OdAZ9.js +0 -4
  901. package/components/p-iNIvlAGo.js +0 -4
  902. package/components/p-py1vB-7U.js +0 -4
  903. package/components/p-qbig9BW8.js +0 -4
  904. package/css/ionic/bundle.ionic.css +0 -1
  905. package/css/ionic/bundle.ionic.css.map +0 -1
  906. package/css/ionic/core.ionic.css +0 -1
  907. package/css/ionic/core.ionic.css.map +0 -1
  908. package/css/ionic/global.bundle.ionic.css +0 -1
  909. package/css/ionic/global.bundle.ionic.css.map +0 -1
  910. package/css/ionic/ionic-swiper.ionic.css +0 -1
  911. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  912. package/css/ionic/link.ionic.css +0 -1
  913. package/css/ionic/link.ionic.css.map +0 -1
  914. package/css/ionic/structure.ionic.css +0 -1
  915. package/css/ionic/structure.ionic.css.map +0 -1
  916. package/css/ionic/typography.ionic.css +0 -1
  917. package/css/ionic/typography.ionic.css.map +0 -1
  918. package/css/ionic/utils.bundle.ionic.css +0 -1
  919. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  920. package/dist/cjs/clear-button-press-controller-C6PTS3jC.js +0 -45
  921. package/dist/cjs/focus-visible-DGPRKkcx.js +0 -151
  922. package/dist/cjs/index-DkNv4J_i.js +0 -10
  923. package/dist/cjs/ion-divider.cjs.entry.js +0 -52
  924. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  925. package/dist/cjs/ion-gallery.cjs.entry.js +0 -608
  926. package/dist/cjs/ionic-global-CZX42KL4.js +0 -551
  927. package/dist/cjs/scroll-hide-controller-BSVBCkbw.js +0 -345
  928. package/dist/cjs/validity-CoPMWggj.js +0 -51
  929. package/dist/collection/components/accordion/accordion.ionic.css +0 -199
  930. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  931. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -490
  932. package/dist/collection/components/alert/alert.ionic.css +0 -779
  933. package/dist/collection/components/avatar/avatar.ionic.css +0 -379
  934. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  935. package/dist/collection/components/badge/badge.ionic.css +0 -269
  936. package/dist/collection/components/button/button.ionic.css +0 -640
  937. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  938. package/dist/collection/components/card/card.ionic.css +0 -144
  939. package/dist/collection/components/card-content/card-content.ionic.css +0 -88
  940. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  941. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -143
  942. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -535
  943. package/dist/collection/components/chip/chip.ionic.css +0 -216
  944. package/dist/collection/components/content/content.ionic.css +0 -352
  945. package/dist/collection/components/content/content.md.css +0 -347
  946. package/dist/collection/components/datetime/datetime.ionic.css +0 -903
  947. package/dist/collection/components/divider/divider.ionic.css +0 -148
  948. package/dist/collection/components/divider/divider.ios.css +0 -87
  949. package/dist/collection/components/divider/divider.js +0 -94
  950. package/dist/collection/components/divider/divider.md.css +0 -87
  951. package/dist/collection/components/footer/footer-interface.js +0 -1
  952. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  953. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  954. package/dist/collection/components/gallery/gallery.css +0 -15
  955. package/dist/collection/components/gallery/gallery.js +0 -678
  956. package/dist/collection/components/gallery/test/utils.js +0 -100
  957. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  958. package/dist/collection/components/gallery-item/gallery-item.js +0 -98
  959. package/dist/collection/components/header/header-interface.js +0 -1
  960. package/dist/collection/components/header/header.ionic.css +0 -286
  961. package/dist/collection/components/input/input.ionic.css +0 -961
  962. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -369
  963. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  964. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  965. package/dist/collection/components/item/item.ionic.css +0 -495
  966. package/dist/collection/components/item-option/item-option.ionic.css +0 -276
  967. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  968. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  969. package/dist/collection/components/list/list.ionic.css +0 -212
  970. package/dist/collection/components/list-header/list-header.ionic.css +0 -189
  971. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  972. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  973. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  974. package/dist/collection/components/modal/modal.ionic.css +0 -266
  975. package/dist/collection/components/popover/popover.ionic.css +0 -290
  976. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  977. package/dist/collection/components/radio/radio.ionic.css +0 -421
  978. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -118
  979. package/dist/collection/components/range/range.ionic.css +0 -566
  980. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  981. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -621
  982. package/dist/collection/components/segment/segment.ionic.css +0 -115
  983. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -351
  984. package/dist/collection/components/select/select.ionic.css +0 -976
  985. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -254
  986. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -253
  987. package/dist/collection/components/spinner/spinner.native.css +0 -199
  988. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  989. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -372
  990. package/dist/collection/components/textarea/textarea.ionic.css +0 -989
  991. package/dist/collection/components/title/title.ionic.css +0 -125
  992. package/dist/collection/components/toast/toast.ionic.css +0 -391
  993. package/dist/collection/components/toggle/toggle.ionic.css +0 -510
  994. package/dist/collection/components/toolbar/test/image.svg +0 -1
  995. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  996. package/dist/collection/utils/css-value-validation.js +0 -39
  997. package/dist/collection/utils/forms/clear-button-press-controller.js +0 -40
  998. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  999. package/dist/collection/utils/test/playwright/field-geometry.js +0 -34
  1000. package/dist/esm/clear-button-press-controller-6ph4kKYn.js +0 -43
  1001. package/dist/esm/focus-visible-BYk20Mf5.js +0 -146
  1002. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  1003. package/dist/esm/ion-divider.entry.js +0 -50
  1004. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1005. package/dist/esm/ion-gallery.entry.js +0 -606
  1006. package/dist/esm/ionic-global-DSbFWXp3.js +0 -540
  1007. package/dist/esm/scroll-hide-controller-Chts2wJU.js +0 -342
  1008. package/dist/esm/validity-NcQUGze-.js +0 -48
  1009. package/dist/ionic/p-038465e3.entry.js +0 -4
  1010. package/dist/ionic/p-0b453760.entry.js +0 -4
  1011. package/dist/ionic/p-0bd5a7c9.entry.js +0 -4
  1012. package/dist/ionic/p-188a2e35.entry.js +0 -4
  1013. package/dist/ionic/p-1b045882.entry.js +0 -4
  1014. package/dist/ionic/p-1b769779.entry.js +0 -4
  1015. package/dist/ionic/p-1d709b26.entry.js +0 -4
  1016. package/dist/ionic/p-1d735170.entry.js +0 -4
  1017. package/dist/ionic/p-1d87b153.entry.js +0 -4
  1018. package/dist/ionic/p-2b1e9500.entry.js +0 -4
  1019. package/dist/ionic/p-2gcJ-f11.js +0 -4
  1020. package/dist/ionic/p-308f9b89.entry.js +0 -4
  1021. package/dist/ionic/p-338cb1e7.entry.js +0 -4
  1022. package/dist/ionic/p-39e3be74.entry.js +0 -4
  1023. package/dist/ionic/p-3a03d05e.entry.js +0 -4
  1024. package/dist/ionic/p-3a54495e.entry.js +0 -4
  1025. package/dist/ionic/p-3b47fdc7.entry.js +0 -4
  1026. package/dist/ionic/p-3be131ed.entry.js +0 -4
  1027. package/dist/ionic/p-3ddd32cc.entry.js +0 -4
  1028. package/dist/ionic/p-3f15086f.entry.js +0 -4
  1029. package/dist/ionic/p-4152cb6a.entry.js +0 -4
  1030. package/dist/ionic/p-49edfb46.entry.js +0 -4
  1031. package/dist/ionic/p-522663a4.entry.js +0 -4
  1032. package/dist/ionic/p-561cfcc1.entry.js +0 -4
  1033. package/dist/ionic/p-6dc9331b.entry.js +0 -4
  1034. package/dist/ionic/p-6e4ee264.entry.js +0 -4
  1035. package/dist/ionic/p-7df4dcb4.entry.js +0 -4
  1036. package/dist/ionic/p-8183df6b.entry.js +0 -4
  1037. package/dist/ionic/p-82efbf09.entry.js +0 -4
  1038. package/dist/ionic/p-86bf24f4.entry.js +0 -4
  1039. package/dist/ionic/p-8b107444.entry.js +0 -4
  1040. package/dist/ionic/p-8ecb459a.entry.js +0 -4
  1041. package/dist/ionic/p-8ff4bf6c.entry.js +0 -4
  1042. package/dist/ionic/p-905c8b38.entry.js +0 -4
  1043. package/dist/ionic/p-9613f2c3.entry.js +0 -4
  1044. package/dist/ionic/p-973f8069.entry.js +0 -4
  1045. package/dist/ionic/p-9b41acf3.entry.js +0 -4
  1046. package/dist/ionic/p-B36ii-hs.js +0 -4
  1047. package/dist/ionic/p-BKwe4f9b.js +0 -4
  1048. package/dist/ionic/p-BUF_V-Kg.js +0 -4
  1049. package/dist/ionic/p-BXRdzJMJ.js +0 -4
  1050. package/dist/ionic/p-BYk20Mf5.js +0 -4
  1051. package/dist/ionic/p-BfDzKnZ-.js +0 -4
  1052. package/dist/ionic/p-BfUzA1cP.js +0 -4
  1053. package/dist/ionic/p-BkJpfpXI.js +0 -4
  1054. package/dist/ionic/p-C3TLUO-J.js +0 -4
  1055. package/dist/ionic/p-C4WiowQL.js +0 -4
  1056. package/dist/ionic/p-CIGNaXM1.js +0 -4
  1057. package/dist/ionic/p-CODBQrPj.js +0 -4
  1058. package/dist/ionic/p-CXkgZKSx.js +0 -4
  1059. package/dist/ionic/p-Co3ilg7B.js +0 -4
  1060. package/dist/ionic/p-D5t_-oMk.js +0 -4
  1061. package/dist/ionic/p-D7LiFzrm.js +0 -4
  1062. package/dist/ionic/p-DOdxt_P_.js +0 -4
  1063. package/dist/ionic/p-DRbid4Vh.js +0 -4
  1064. package/dist/ionic/p-DsBidY1y.js +0 -4
  1065. package/dist/ionic/p-DxPRC9Jk.js +0 -4
  1066. package/dist/ionic/p-Hb0L-KUN.js +0 -4
  1067. package/dist/ionic/p-NcQUGze-.js +0 -4
  1068. package/dist/ionic/p-WdouEyt8.js +0 -4
  1069. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  1070. package/dist/ionic/p-a1555032.entry.js +0 -4
  1071. package/dist/ionic/p-a4299509.entry.js +0 -4
  1072. package/dist/ionic/p-b076511a.entry.js +0 -4
  1073. package/dist/ionic/p-b1cd18f0.entry.js +0 -4
  1074. package/dist/ionic/p-b4de840a.entry.js +0 -4
  1075. package/dist/ionic/p-b51eb274.entry.js +0 -4
  1076. package/dist/ionic/p-b6e633f5.entry.js +0 -4
  1077. package/dist/ionic/p-bf40b9eb.entry.js +0 -4
  1078. package/dist/ionic/p-c1fc48c7.entry.js +0 -4
  1079. package/dist/ionic/p-ce8bea16.entry.js +0 -4
  1080. package/dist/ionic/p-ceca04fb.entry.js +0 -4
  1081. package/dist/ionic/p-dbf53341.entry.js +0 -4
  1082. package/dist/ionic/p-de0de6a6.entry.js +0 -4
  1083. package/dist/ionic/p-e715a580.entry.js +0 -4
  1084. package/dist/ionic/p-ec99dc1f.entry.js +0 -4
  1085. package/dist/ionic/p-f10a94a8.entry.js +0 -4
  1086. package/dist/ionic/p-f3057b31.entry.js +0 -4
  1087. package/dist/ionic/p-fa74dd94.entry.js +0 -4
  1088. package/dist/ionic/p-fd00e28d.entry.js +0 -4
  1089. package/dist/ionic/p-hR6kxzTq.js +0 -6
  1090. package/dist/ionic/p-pVSZ4TVa.js +0 -4
  1091. package/dist/types/components/divider/divider.d.ts +0 -20
  1092. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1093. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1094. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1095. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1096. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1097. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1098. package/dist/types/components/header/header-interface.d.ts +0 -1
  1099. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1100. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1101. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1102. package/dist/types/utils/forms/clear-button-press-controller.d.ts +0 -20
  1103. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1104. package/dist/types/utils/test/playwright/field-geometry.d.ts +0 -13
  1105. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -3,23 +3,21 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CB1PuDlX.js');
7
- var focusVisible = require('./focus-visible-DGPRKkcx.js');
8
- var ionicGlobal = require('./ionic-global-CZX42KL4.js');
9
- var helpers = require('./helpers-DHNLF4fD.js');
10
- var overlays = require('./overlays-DziOxcCT.js');
6
+ var index = require('./index-BiQyIvoc.js');
7
+ var hardwareBackButton = require('./overlays-BbVQG3UT.js');
8
+ var ionicGlobal = require('./ionic-global-48ceLiJ6.js');
9
+ var helpers = require('./helpers-BrETKUUX.js');
11
10
  var dir = require('./dir-Bma_9Lqh.js');
12
- var theme = require('./theme-Cy4joHPt.js');
13
- var index$1 = require('./index-DhGCo_n8.js');
14
- var scrollHideController = require('./scroll-hide-controller-BSVBCkbw.js');
11
+ var theme = require('./theme-Bw0rpaNN.js');
12
+ var index$1 = require('./index-DMz2Eyis.js');
13
+ var keyboardController = require('./keyboard-controller-DZE97OtR.js');
15
14
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
16
- var frameworkDelegate = require('./framework-delegate-CAdDEnFS.js');
15
+ var frameworkDelegate = require('./framework-delegate-hNMKEiQC.js');
17
16
  var lockController = require('./lock-controller-aDB9wrEf.js');
18
- var index$2 = require('./index-lD5wTj_b.js');
19
- require('./index-DkNv4J_i.js');
17
+ var index$2 = require('./index-DNBYnlrc.js');
20
18
  require('./gesture-controller-CeJslptU.js');
21
- require('./keyboard-cHxZlTyz.js');
22
- require('./capacitor-DmA66EwP.js');
19
+ require('./keyboard-BMpscicm.js');
20
+ require('./capacitor-BTjfXFlK.js');
23
21
 
24
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}`;
25
23
 
@@ -27,6 +25,51 @@ const App = class {
27
25
  constructor(hostRef) {
28
26
  index.registerInstance(this, hostRef);
29
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-bwclzjks.js'); }).then((module) => module.startTapClick(index.config));
34
+ }
35
+ if (index.config.getBoolean('statusTap', isHybrid)) {
36
+ Promise.resolve().then(function () { return require('./status-tap-hRIvObiJ.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-CRmdShL9.js'); }).then((module) => module.startInputShims(index.config, platform));
45
+ }
46
+ const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./overlays-BbVQG3UT.js'); }).then(function (n) { return n.hardwareBackButton; });
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-4OBzkjOG.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
+ }
30
73
  /**
31
74
  * Used to set focus on an element that uses `ion-focusable`.
32
75
  * Do not use this if focusing the element as a result of a keyboard
@@ -39,29 +82,52 @@ const App = class {
39
82
  * @param elements An array of HTML elements to set focus on.
40
83
  */
41
84
  async setFocus(elements) {
42
- /**
43
- * The focus-visible utility is used to set focus on an
44
- * element that uses `ion-focusable`.
45
- */
46
- 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
+ }
47
96
  }
48
97
  render() {
49
- const theme = ionicGlobal.getIonTheme(this);
50
- return (index.h(index.Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
51
- [theme]: true,
98
+ const mode = ionicGlobal.getIonMode(this);
99
+ return (index.h(index.Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
100
+ [mode]: true,
52
101
  'ion-page': true,
53
102
  'force-statusbar-padding': index.config.getBoolean('_forceStatusbarPadding'),
54
103
  } }));
55
104
  }
56
105
  get el() { return index.getElement(this); }
57
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
+ };
58
126
  App.style = appCss();
59
127
 
60
- 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, #242528));--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)}`;
61
-
62
- 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}`;
63
129
 
64
- 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}`;
65
131
 
66
132
  const Buttons = class {
67
133
  constructor(hostRef) {
@@ -73,7 +139,7 @@ const Buttons = class {
73
139
  * first toolbar, the buttons will be hidden and will
74
140
  * only be shown once all toolbars have fully collapsed.
75
141
  *
76
- * Only applies in the `ios` theme with `collapse` set to
142
+ * Only applies in `ios` mode with `collapse` set to
77
143
  * `true` on `ion-header`.
78
144
  *
79
145
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -81,24 +147,19 @@ const Buttons = class {
81
147
  this.collapse = false;
82
148
  }
83
149
  render() {
84
- const theme = ionicGlobal.getIonTheme(this);
85
- return (index.h(index.Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
86
- [theme]: true,
150
+ const mode = ionicGlobal.getIonMode(this);
151
+ return (index.h(index.Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
152
+ [mode]: true,
87
153
  ['buttons-collapse']: this.collapse,
88
- } }, index.h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
154
+ } }, index.h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
89
155
  }
90
156
  };
91
157
  Buttons.style = {
92
- ionic: buttonsIonicCss(),
93
158
  ios: buttonsIosCss(),
94
159
  md: buttonsMdCss()
95
160
  };
96
161
 
97
- const contentIonicCss = () => `:host{--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}}:host{--background:var(--ion-background-color, var(--token-bg-body, var(--token-primitives-base-white, #ffffff)));--color:currentColor}`;
98
-
99
- const contentIosCss = () => `:host{--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}}:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000)}`;
100
-
101
- const contentMdCss = () => `:host{--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}}:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000)}`;
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)}`;
102
163
 
103
164
  const Content = class {
104
165
  constructor(hostRef) {
@@ -322,8 +383,9 @@ const Content = class {
322
383
  this.resize();
323
384
  }, 100);
324
385
  }
325
- shouldForceOverscroll(mode) {
386
+ shouldForceOverscroll() {
326
387
  const { forceOverscroll } = this;
388
+ const mode = ionicGlobal.getIonMode(this);
327
389
  return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
328
390
  }
329
391
  /**
@@ -348,7 +410,7 @@ const Content = class {
348
410
  return false;
349
411
  }
350
412
  const height = getComputedStyle(modal).getPropertyValue('--height');
351
- return overlays.getOverlaySizeType(height) === 'content';
413
+ return hardwareBackButton.getOverlaySizeType(height) === 'content';
352
414
  }
353
415
  resize() {
354
416
  /**
@@ -551,13 +613,12 @@ const Content = class {
551
613
  render() {
552
614
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
553
615
  const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
554
- const theme$1 = ionicGlobal.getIonTheme(this);
555
- const mode = ionicGlobal.getIonMode(this, theme$1);
556
- const forceOverscroll = this.shouldForceOverscroll(mode);
557
- const transitionShadow = theme$1 === 'ios';
616
+ const mode = ionicGlobal.getIonMode(this);
617
+ const forceOverscroll = this.shouldForceOverscroll();
618
+ const transitionShadow = mode === 'ios';
558
619
  this.resize();
559
- return (index.h(index.Host, { key: '6cdef99e2396f9b451240ee739800b6d4a0df9fa', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
560
- [theme$1]: true,
620
+ return (index.h(index.Host, { key: 'e1013621096729354ef92915af52dd823e69fdff', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
621
+ [mode]: true,
561
622
  'content-fullscreen': this.fullscreen,
562
623
  'content-sizing': this.sizeToContent,
563
624
  overscroll: forceOverscroll,
@@ -565,12 +626,12 @@ const Content = class {
565
626
  }), style: {
566
627
  '--offset-top': `${this.cTop}px`,
567
628
  '--offset-bottom': `${this.cBottom}px`,
568
- }, ...inheritedAttributes }, index.h("div", { key: 'bbd9b4bf3fc97404cd42bb7824fc20e031f77922', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '4d4747e2495645da20a0718275a77f44fdbdd82d', class: {
629
+ }, ...inheritedAttributes }, index.h("div", { key: '3d8649b164d6324beaa1bc50e1d204ad06c2ec1a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: 'dd2d3bed8690b4f5027a43f5ec60e7e7df18106d', class: {
569
630
  'inner-scroll': true,
570
631
  'scroll-x': scrollX,
571
632
  'scroll-y': scrollY,
572
633
  overscroll: (scrollX || scrollY) && forceOverscroll,
573
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: 'fbafdcfd579732945a3f375fb6cc9777651f41f5' })), 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));
634
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: 'dc3d4584d9e9afd43699525a619b8e873078fbbf' })), 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));
574
635
  }
575
636
  get el() { return index.getElement(this); }
576
637
  static get watchers() { return {
@@ -600,8 +661,7 @@ const getPageElement = (el) => {
600
661
  * between the popover and the edges of the screen. But if the popover contains
601
662
  * its own page element, we should use that instead.
602
663
  */
603
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
604
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
664
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
605
665
  if (page) {
606
666
  return page;
607
667
  }
@@ -634,11 +694,7 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
634
694
  detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
635
695
  }
636
696
  };
637
- Content.style = {
638
- ionic: contentIonicCss(),
639
- ios: contentIosCss(),
640
- md: contentMdCss()
641
- };
697
+ Content.style = contentCss();
642
698
 
643
699
  const handleFooterFade = (scrollEl, baseEl) => {
644
700
  index.readTask(() => {
@@ -669,90 +725,45 @@ const handleFooterFade = (scrollEl, baseEl) => {
669
725
  });
670
726
  };
671
727
 
672
- 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}`;
673
-
674
- 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}`;
728
+ 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}`;
675
729
 
676
- 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}`;
730
+ 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}`;
677
731
 
678
732
  const Footer = class {
679
733
  constructor(hostRef) {
680
734
  index.registerInstance(this, hostRef);
681
735
  this.keyboardCtrl = null;
682
736
  this.keyboardCtrlPromise = null;
683
- this.scrollHideCtrlPromise = null;
684
- this.hasWarnedCollapse = false;
685
- this.fadeSetupId = 0;
686
737
  this.keyboardVisible = false;
687
738
  /**
688
739
  * If `true`, the footer will be translucent.
689
- * Only applies when the theme is `"ios"` and the device supports
740
+ * Only applies when the mode is `"ios"` and the device supports
690
741
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
691
742
  *
692
743
  * Note: In order to scroll content behind the footer, the `fullscreen`
693
744
  * attribute needs to be set on the content.
694
745
  */
695
746
  this.translucent = false;
696
- this.checkCollapsibleFooter = async () => {
697
- const { scrollEffect, collapse } = this;
698
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
699
- this.hasWarnedCollapse = true;
700
- index.printIonWarning(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${collapse}">`, this.el);
701
- }
702
- const effect = scrollEffect ?? collapse;
703
- // Skip teardown/rebuild if the effect hasn't changed.
704
- // This prevents keyboard toggles (which trigger re-renders via
705
- // @State keyboardVisible) from destroying the scroll controller
706
- // and resetting isHidden.
707
- if (effect === this.activeEffect) {
747
+ this.checkCollapsibleFooter = () => {
748
+ const mode = ionicGlobal.getIonMode(this);
749
+ if (mode !== 'ios') {
708
750
  return;
709
751
  }
710
- const hasHide = effect === 'hide';
711
- const hasFade = effect === 'fade';
752
+ const { collapse } = this;
753
+ const hasFade = collapse === 'fade';
712
754
  this.destroyCollapsibleFooter();
713
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
714
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
715
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
716
- if (hasHide && contentEl) {
717
- this.activeEffect = effect;
718
- await this.setupScrollEffectHide(contentEl);
719
- return;
720
- }
721
- // fade via the deprecated `collapse` prop is iOS-only.
722
- // fade via the new `scrollEffect` prop works in all themes.
723
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
724
- if (hasFade && !isModeRestricted) {
755
+ if (hasFade) {
756
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
757
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
725
758
  if (!contentEl) {
726
759
  index$1.printIonContentErrorMsg(this.el);
727
760
  return;
728
761
  }
729
762
  this.setupFadeFooter(contentEl);
730
- this.activeEffect = effect;
731
- }
732
- };
733
- this.setupScrollEffectHide = async (contentEl) => {
734
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
735
- el: this.el,
736
- cssVar: '--internal-footer-hide-height',
737
- hiddenClass: 'footer-scroll-hidden',
738
- contentPartnerClass: 'content-footer-hide-scroll-partner',
739
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
740
- });
741
- this.scrollHideCtrlPromise = setupPromise;
742
- const controller = await setupPromise;
743
- if (this.scrollHideCtrlPromise === setupPromise) {
744
- this.scrollHideCtrlPromise = null;
745
- controller.init();
746
- this.scrollHideCtrl = controller;
747
763
  }
748
764
  };
749
765
  this.setupFadeFooter = async (contentEl) => {
750
- const setupId = ++this.fadeSetupId;
751
- const scrollEl = await index$1.getScrollElement(contentEl);
752
- if (this.fadeSetupId !== setupId) {
753
- return;
754
- }
755
- this.scrollEl = scrollEl;
766
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
756
767
  /**
757
768
  * Handle fading of toolbars on scroll
758
769
  */
@@ -770,7 +781,7 @@ const Footer = class {
770
781
  this.checkCollapsibleFooter();
771
782
  }
772
783
  async connectedCallback() {
773
- const promise = scrollHideController.createKeyboardController(async (keyboardOpen, waitForResize) => {
784
+ const promise = keyboardController.createKeyboardController(async (keyboardOpen, waitForResize) => {
774
785
  /**
775
786
  * If the keyboard is hiding, then we need to wait
776
787
  * for the webview to resize. Otherwise, the footer
@@ -797,7 +808,6 @@ const Footer = class {
797
808
  }
798
809
  }
799
810
  disconnectedCallback() {
800
- this.destroyCollapsibleFooter();
801
811
  if (this.keyboardCtrlPromise) {
802
812
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
803
813
  this.keyboardCtrlPromise = null;
@@ -808,43 +818,29 @@ const Footer = class {
808
818
  }
809
819
  }
810
820
  destroyCollapsibleFooter() {
811
- this.activeEffect = undefined;
812
- this.fadeSetupId++;
813
- this.scrollHideCtrlPromise = null;
814
- if (this.scrollHideCtrl) {
815
- this.scrollHideCtrl.destroy();
816
- this.scrollHideCtrl = undefined;
817
- }
818
821
  if (this.scrollEl && this.contentScrollCallback) {
819
822
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
820
823
  this.contentScrollCallback = undefined;
821
824
  }
822
825
  }
823
826
  render() {
824
- const { translucent, scrollEffect, collapse } = this;
825
- const theme = ionicGlobal.getIonTheme(this);
826
- const effect = scrollEffect ?? collapse;
827
- // fade via the deprecated `collapse` prop is iOS-only.
828
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
829
- const hasHide = effect === 'hide';
830
- const hasFade = effect === 'fade' && !isModeRestricted;
827
+ const { translucent, collapse } = this;
828
+ const mode = ionicGlobal.getIonMode(this);
831
829
  const tabs = this.el.closest('ion-tabs');
832
830
  const tabBar = tabs?.querySelector(':scope > ion-tab-bar');
833
- return (index.h(index.Host, { key: 'a0777b4a639d22e15374879f018efcf589e756f8', role: "contentinfo", class: {
834
- [theme]: true,
831
+ return (index.h(index.Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
832
+ [mode]: true,
835
833
  // Used internally for styling
836
- [`footer-${theme}`]: true,
834
+ [`footer-${mode}`]: true,
837
835
  [`footer-translucent`]: translucent,
838
- [`footer-translucent-${theme}`]: translucent,
836
+ [`footer-translucent-${mode}`]: translucent,
839
837
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
840
- 'footer-collapse-fade': hasFade,
841
- 'footer-scroll-effect-hide': hasHide,
842
- } }, theme === 'ios' && translucent && index.h("div", { key: 'd78b46870cbf11c95b066d649c04ec398b66e614', class: "footer-background" }), index.h("slot", { key: '9dc34787cd29597fe1b1198db317602014ac1483' })));
838
+ [`footer-collapse-${collapse}`]: collapse !== undefined,
839
+ } }, mode === 'ios' && translucent && index.h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), index.h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
843
840
  }
844
841
  get el() { return index.getElement(this); }
845
842
  };
846
843
  Footer.style = {
847
- ionic: ionicFooterMdCss(),
848
844
  ios: footerIosCss(),
849
845
  md: footerMdCss()
850
846
  };
@@ -902,7 +898,7 @@ const setToolbarBackgroundOpacity = (headerEl, opacity) => {
902
898
  * has collapsed, so it is handled
903
899
  * by handleHeaderFade()
904
900
  */
905
- if ((headerEl.scrollEffect ?? headerEl.collapse) === 'fade') {
901
+ if (headerEl.collapse === 'fade') {
906
902
  return;
907
903
  }
908
904
  if (opacity === undefined) {
@@ -1060,69 +1056,46 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1060
1056
  * Get the role type for the ion-header.
1061
1057
  *
1062
1058
  * @param isInsideMenu If ion-header is inside ion-menu.
1063
- * @returns 'none' if inside ion-menu, otherwise 'banner'.
1064
- * Condensed headers start as 'banner' and have their role
1065
- * toggled dynamically by setHeaderActive() on scroll.
1059
+ * @param isCondensed If ion-header has collapse="condense".
1060
+ * @param mode The current mode.
1061
+ * @returns 'none' if inside ion-menu or if condensed in md
1062
+ * mode, otherwise 'banner'.
1066
1063
  */
1067
- const getRoleType = (isInsideMenu) => {
1064
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
1068
1065
  // If the header is inside a menu, it should not have the banner role.
1069
1066
  if (isInsideMenu) {
1070
1067
  return ROLE_NONE;
1071
1068
  }
1069
+ /**
1070
+ * Only apply role="none" to `md` mode condensed headers
1071
+ * since the large header is never shown.
1072
+ */
1073
+ if (isCondensed && mode === 'md') {
1074
+ return ROLE_NONE;
1075
+ }
1072
1076
  // Default to banner role.
1073
1077
  return ROLE_BANNER;
1074
1078
  };
1075
1079
 
1076
- 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)) solid var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df))}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;pointer-events:none}.header-translucent-ionic .header-background-blur,.header-translucent-ionic .header-background-blur-layer{right:0;left:0;top:0;bottom:0;position:absolute}.header-translucent-ionic .header-background-blur-layer:nth-child(1){-webkit-backdrop-filter:blur(var(--token-scale-025, 1px));backdrop-filter:blur(var(--token-scale-025, 1px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(82.64%, #000), color-stop(91%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 82.64%, transparent 91%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(82.64%, #000), color-stop(91%, transparent));mask-image:linear-gradient(to bottom, #000 82.64%, transparent 91%)}.header-translucent-ionic .header-background-blur-layer:nth-child(2){-webkit-backdrop-filter:blur(var(--token-scale-050, 2px));backdrop-filter:blur(var(--token-scale-050, 2px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(74.29%, #000), color-stop(82.64%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 74.29%, transparent 82.64%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(74.29%, #000), color-stop(82.64%, transparent));mask-image:linear-gradient(to bottom, #000 74.29%, transparent 82.64%)}.header-translucent-ionic .header-background-blur-layer:nth-child(3){-webkit-backdrop-filter:blur(var(--token-scale-100, 4px));backdrop-filter:blur(var(--token-scale-100, 4px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(65.93%, #000), color-stop(74.29%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 65.93%, transparent 74.29%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(65.93%, #000), color-stop(74.29%, transparent));mask-image:linear-gradient(to bottom, #000 65.93%, transparent 74.29%)}.header-translucent-ionic .header-background-blur-layer:nth-child(4){-webkit-backdrop-filter:blur(var(--token-scale-200, 8px));backdrop-filter:blur(var(--token-scale-200, 8px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(57.57%, #000), color-stop(65.93%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 57.57%, transparent 65.93%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(57.57%, #000), color-stop(65.93%, transparent));mask-image:linear-gradient(to bottom, #000 57.57%, transparent 65.93%)}.header-translucent-ionic .header-background-blur-layer:nth-child(5){-webkit-backdrop-filter:blur(var(--token-scale-400, 16px));backdrop-filter:blur(var(--token-scale-400, 16px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(49.21%, #000), color-stop(57.57%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 49.21%, transparent 57.57%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(49.21%, #000), color-stop(57.57%, transparent));mask-image:linear-gradient(to bottom, #000 49.21%, transparent 57.57%)}.header-translucent-ionic .header-background-blur-layer:nth-child(6){-webkit-backdrop-filter:blur(var(--token-scale-800, 32px));backdrop-filter:blur(var(--token-scale-800, 32px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(40.86%, #000), color-stop(49.21%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 40.86%, transparent 49.21%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(40.86%, #000), color-stop(49.21%, transparent));mask-image:linear-gradient(to bottom, #000 40.86%, transparent 49.21%)}.header-translucent-ionic .header-background-blur-layer:nth-child(7){-webkit-backdrop-filter:blur(var(--token-scale-1600, 64px));backdrop-filter:blur(var(--token-scale-1600, 64px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(32.5%, #000), color-stop(40.86%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 32.5%, transparent 40.86%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(32.5%, #000), color-stop(40.86%, transparent));mask-image:linear-gradient(to bottom, #000 32.5%, transparent 40.86%)}.header-translucent-ionic ion-toolbar{--background:linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0))}}`;
1080
+ 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}`;
1077
1081
 
1078
- 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}`;
1079
-
1080
- 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}`;
1082
+ 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}`;
1081
1083
 
1082
1084
  const Header = class {
1083
1085
  constructor(hostRef) {
1084
1086
  index.registerInstance(this, hostRef);
1085
1087
  this.inheritedAttributes = {};
1086
- this.scrollHideCtrlPromise = null;
1087
- this.hasWarnedCollapse = false;
1088
- this.fadeCondenseSetupId = 0;
1089
- /**
1090
- * If `true`, the header will have a line at the bottom.
1091
- * TODO(ROU-10855): add support for this prop on ios/md themes
1092
- */
1093
- this.divider = false;
1094
1088
  /**
1095
1089
  * If `true`, the header will be translucent.
1096
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
1090
+ * Only applies when the mode is `"ios"` and the device supports
1097
1091
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
1098
1092
  *
1099
1093
  * Note: In order to scroll content behind the header, the `fullscreen`
1100
1094
  * attribute needs to be set on the content.
1101
1095
  */
1102
1096
  this.translucent = false;
1103
- this.setupScrollEffectHide = async (contentEl) => {
1104
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
1105
- el: this.el,
1106
- cssVar: '--internal-header-hide-height',
1107
- hiddenClass: 'header-scroll-hidden',
1108
- contentPartnerClass: 'content-header-hide-scroll-partner',
1109
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1110
- });
1111
- this.scrollHideCtrlPromise = setupPromise;
1112
- const controller = await setupPromise;
1113
- if (this.scrollHideCtrlPromise === setupPromise) {
1114
- this.scrollHideCtrlPromise = null;
1115
- controller.init();
1116
- this.scrollHideCtrl = controller;
1117
- }
1118
- };
1119
1097
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
1120
- const setupId = ++this.fadeCondenseSetupId;
1121
- const scrollEl = await index$1.getScrollElement(contentEl);
1122
- if (this.fadeCondenseSetupId !== setupId) {
1123
- return;
1124
- }
1125
- this.scrollEl = scrollEl;
1098
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
1126
1099
  /**
1127
1100
  * Handle fading of toolbars on scroll
1128
1101
  */
@@ -1146,63 +1119,37 @@ const Header = class {
1146
1119
  this.destroyCollapsibleHeader();
1147
1120
  }
1148
1121
  async checkCollapsibleHeader() {
1149
- const { scrollEffect, collapse } = this;
1150
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
1151
- this.hasWarnedCollapse = true;
1152
- index.printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
1153
- }
1154
- const effect = scrollEffect ?? collapse;
1155
- // Skip teardown/rebuild if the effect hasn't changed.
1156
- // This prevents re-renders from destroying the scroll controller
1157
- // and resetting isHidden.
1158
- if (effect === this.activeEffect) {
1122
+ const mode = ionicGlobal.getIonMode(this);
1123
+ if (mode !== 'ios') {
1159
1124
  return;
1160
1125
  }
1161
- const hasHide = effect === 'hide';
1162
- const hasCondense = effect === 'condense';
1163
- const hasFade = effect === 'fade';
1126
+ const { collapse } = this;
1127
+ const hasCondense = collapse === 'condense';
1128
+ const hasFade = collapse === 'fade';
1164
1129
  this.destroyCollapsibleHeader();
1165
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
1166
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
1167
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1168
- if (hasHide && contentEl) {
1169
- this.activeEffect = effect;
1170
- await this.setupScrollEffectHide(contentEl);
1171
- return;
1172
- }
1173
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1174
- // condense/fade via the new `scrollEffect` prop work in all themes.
1175
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
1176
- if (hasCondense && !isModeRestricted) {
1130
+ if (hasCondense) {
1131
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1132
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1177
1133
  // Cloned elements are always needed in iOS transition
1178
1134
  index.writeTask(() => {
1179
1135
  const title = cloneElement('ion-title');
1180
1136
  title.size = 'large';
1181
1137
  cloneElement('ion-back-button');
1182
1138
  });
1183
- const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
1184
- if (didSetup) {
1185
- this.activeEffect = effect;
1186
- }
1139
+ await this.setupCondenseHeader(contentEl, pageEl);
1187
1140
  }
1188
- else if (hasFade && !isModeRestricted) {
1141
+ else if (hasFade) {
1142
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1143
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1189
1144
  if (!contentEl) {
1190
1145
  index$1.printIonContentErrorMsg(this.el);
1191
1146
  return;
1192
1147
  }
1193
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
1194
- this.activeEffect = effect;
1148
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1195
1149
  await this.setupFadeHeader(contentEl, condenseHeader);
1196
1150
  }
1197
1151
  }
1198
1152
  destroyCollapsibleHeader() {
1199
- this.activeEffect = undefined;
1200
- this.fadeCondenseSetupId++;
1201
- this.scrollHideCtrlPromise = null;
1202
- if (this.scrollHideCtrl) {
1203
- this.scrollHideCtrl.destroy();
1204
- this.scrollHideCtrl = undefined;
1205
- }
1206
1153
  if (this.intersectionObserver) {
1207
1154
  this.intersectionObserver.disconnect();
1208
1155
  this.intersectionObserver = undefined;
@@ -1219,39 +1166,21 @@ const Header = class {
1219
1166
  async setupCondenseHeader(contentEl, pageEl) {
1220
1167
  if (!contentEl || !pageEl) {
1221
1168
  index$1.printIonContentErrorMsg(this.el);
1222
- return false;
1169
+ return;
1223
1170
  }
1224
1171
  if (typeof IntersectionObserver === 'undefined') {
1225
- return false;
1226
- }
1227
- const setupId = ++this.fadeCondenseSetupId;
1228
- const scrollEl = await index$1.getScrollElement(contentEl);
1229
- if (this.fadeCondenseSetupId !== setupId) {
1230
- return false;
1231
- }
1232
- this.scrollEl = scrollEl;
1233
- /**
1234
- * The condense effect requires an ion-title with size="large"
1235
- * in the condense header. Without it, there is nothing to
1236
- * collapse into the main header toolbar.
1237
- */
1238
- const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
1239
- if (!hasLargeTitle) {
1240
- index.printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
1241
- return false;
1172
+ return;
1242
1173
  }
1174
+ this.scrollEl = await index$1.getScrollElement(contentEl);
1243
1175
  const headers = pageEl.querySelectorAll('ion-header');
1244
- this.collapsibleMainHeader = Array.from(headers).find((header) => {
1245
- const effect = header.scrollEffect ?? header.collapse;
1246
- return effect !== 'condense';
1247
- });
1176
+ this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1248
1177
  if (!this.collapsibleMainHeader) {
1249
- return false;
1178
+ return;
1250
1179
  }
1251
1180
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1252
1181
  const scrollHeaderIndex = createHeaderIndex(this.el);
1253
1182
  if (!mainHeaderIndex || !scrollHeaderIndex) {
1254
- return false;
1183
+ return;
1255
1184
  }
1256
1185
  setHeaderActive(mainHeaderIndex, false);
1257
1186
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -1283,45 +1212,31 @@ const Header = class {
1283
1212
  this.collapsibleMainHeader.classList.add('header-collapse-main');
1284
1213
  }
1285
1214
  });
1286
- return true;
1287
1215
  }
1288
1216
  render() {
1289
- const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
1290
- const theme$1 = ionicGlobal.getIonTheme(this);
1291
- const effect = scrollEffect ?? collapse;
1292
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1293
- const isModeRestricted = scrollEffect === undefined && theme$1 !== 'ios';
1294
- const hasHide = effect === 'hide';
1295
- const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
1296
- const hasFade = effect === 'fade' && !isModeRestricted;
1297
- // The condense header should be hidden when
1298
- // - deprecated collapse prop is used on non-iOS (mode restricted), or
1299
- // - scrollEffect="condense" is set but no ion-title[size="large"] is present
1300
- const isHiddenCondense = effect === 'condense' && !hasCondense;
1217
+ const { translucent, inheritedAttributes } = this;
1218
+ const mode = ionicGlobal.getIonMode(this);
1219
+ const collapse = this.collapse || 'none';
1220
+ const isCondensed = collapse === 'condense';
1301
1221
  // banner role must be at top level, so remove role if inside a menu
1302
- const roleType = isHiddenCondense ? 'none' : getRoleType(theme.hostContext('ion-menu', this.el));
1303
- return (index.h(index.Host, { key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
1304
- [theme$1]: true,
1222
+ const roleType = getRoleType(theme.hostContext('ion-menu', this.el), isCondensed, mode);
1223
+ return (index.h(index.Host, { key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1224
+ [mode]: true,
1305
1225
  // Used internally for styling
1306
- [`header-${theme$1}`]: true,
1226
+ [`header-${mode}`]: true,
1307
1227
  [`header-translucent`]: this.translucent,
1308
- ['header-collapse-condense']: hasCondense,
1309
- ['header-collapse-condense-hidden']: isHiddenCondense,
1310
- ['header-collapse-fade']: hasFade,
1311
- [`header-translucent-${theme$1}`]: this.translucent,
1312
- ['header-divider']: divider,
1313
- 'header-scroll-effect-hide': hasHide,
1314
- }, ...inheritedAttributes }, theme$1 !== 'md' && translucent && (index.h("div", { key: '5179b806abb6f04ed294dc50166c4f014028a4e3', class: "header-background" }, theme$1 === 'ionic' && (index.h("div", { key: '4c9d23456672b5bd4ce55280ec6f3e6c39f162cc', class: "header-background-blur", "aria-hidden": "true" }, index.h("div", { key: '9b9da46049e24390491b2b97ab20863f6fefc079', class: "header-background-blur-layer" }), index.h("div", { key: 'fc2899267eea7fdd415cc4f394fb469188bfae50', class: "header-background-blur-layer" }), index.h("div", { key: '8a9747c21d2bd92670deeec8022a37409fd349c4', class: "header-background-blur-layer" }), index.h("div", { key: '03abc8d5e1e8554963a7f652349ab65430d14db9', class: "header-background-blur-layer" }), index.h("div", { key: '6a481b7894c44b37d8e3569784a3b6a1191fba09', class: "header-background-blur-layer" }), index.h("div", { key: '8e4cf985b7c58a836316baa47c35dbaac765f658', class: "header-background-blur-layer" }), index.h("div", { key: '4ce7402a8ea8aa8253fc2e69e614c50c22ae2c9d', class: "header-background-blur-layer" }))))), index.h("slot", { key: '1e5ae6dddd080197c7801ed58fb22b9f237b6099' })));
1228
+ [`header-collapse-${collapse}`]: true,
1229
+ [`header-translucent-${mode}`]: this.translucent,
1230
+ }, ...inheritedAttributes }, mode === 'ios' && translucent && index.h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), index.h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1315
1231
  }
1316
1232
  get el() { return index.getElement(this); }
1317
1233
  };
1318
1234
  Header.style = {
1319
- ionic: headerIonicCss(),
1320
1235
  ios: headerIosCss(),
1321
1236
  md: headerMdCss()
1322
1237
  };
1323
1238
 
1324
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1239
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1325
1240
 
1326
1241
  const RouterOutlet = class {
1327
1242
  constructor(hostRef) {
@@ -1332,7 +1247,7 @@ const RouterOutlet = class {
1332
1247
  this.lockController = lockController.createLockController();
1333
1248
  this.gestureOrAnimationInProgress = false;
1334
1249
  /**
1335
- * The mode determines the platform behaviors of the component.
1250
+ * The mode determines which platform styles to use.
1336
1251
  */
1337
1252
  this.mode = ionicGlobal.getIonMode(this);
1338
1253
  /**
@@ -1361,7 +1276,7 @@ const RouterOutlet = class {
1361
1276
  this.swipeHandler.onStart();
1362
1277
  }
1363
1278
  };
1364
- this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-xM_5R5s-.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => this.ani?.progressStep(step), (shouldComplete, step, dur) => {
1279
+ this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-C-aigThB.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => this.ani?.progressStep(step), (shouldComplete, step, dur) => {
1365
1280
  if (this.ani) {
1366
1281
  this.ani.onFinish(() => {
1367
1282
  this.gestureOrAnimationInProgress = false;
@@ -1543,7 +1458,7 @@ const RouterOutlet = class {
1543
1458
  return true;
1544
1459
  }
1545
1460
  render() {
1546
- return index.h("slot", { key: 'f558387bf490206aaa6f58132995c5080354ec02' });
1461
+ return index.h("slot", { key: '078cdc7a63b98570746409fc08c4af80f8d7da4d' });
1547
1462
  }
1548
1463
  get el() { return index.getElement(this); }
1549
1464
  static get watchers() { return {
@@ -1557,11 +1472,9 @@ const RouterOutlet = class {
1557
1472
  };
1558
1473
  RouterOutlet.style = routerOutletCss();
1559
1474
 
1560
- 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-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");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:1.555556;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.title-large){font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");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:1.285714}`;
1561
-
1562
- 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)}}`;
1475
+ 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)}}`;
1563
1476
 
1564
- 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}`;
1477
+ 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}`;
1565
1478
 
1566
1479
  const ToolbarTitle = class {
1567
1480
  constructor(hostRef) {
@@ -1584,13 +1497,13 @@ const ToolbarTitle = class {
1584
1497
  return this.size !== undefined ? this.size : 'default';
1585
1498
  }
1586
1499
  render() {
1587
- const theme$1 = ionicGlobal.getIonTheme(this);
1500
+ const mode = ionicGlobal.getIonMode(this);
1588
1501
  const size = this.getSize();
1589
- return (index.h(index.Host, { key: '8dada0c1d43ccbc7f4011caee41eebbf8796b4bf', class: theme.createColorClasses(this.color, {
1590
- [theme$1]: true,
1502
+ return (index.h(index.Host, { key: '8d17feb9f9dcb9eb8e3b8ae6e831bdedb890771c', class: theme.createColorClasses(this.color, {
1503
+ [mode]: true,
1591
1504
  [`title-${size}`]: true,
1592
1505
  'title-rtl': dir.isRTL(this.el),
1593
- }) }, index.h("div", { key: 'c4686ed4e9ff56eafec66d4c008f858b0310854d', class: "toolbar-title" }, index.h("slot", { key: 'b679584fcaed7c57cbae585502c3e48eb98ee63d' }))));
1506
+ }) }, index.h("div", { key: '0346aae3fca1e3ae443b1b511c44ab1f803cb103', class: "toolbar-title" }, index.h("slot", { key: 'e1945845df471d5eb8c3cdeb568c478abf5ad70e' }))));
1594
1507
  }
1595
1508
  get el() { return index.getElement(this); }
1596
1509
  static get watchers() { return {
@@ -1600,29 +1513,18 @@ const ToolbarTitle = class {
1600
1513
  }; }
1601
1514
  };
1602
1515
  ToolbarTitle.style = {
1603
- ionic: titleIonicCss(),
1604
1516
  ios: titleIosCss(),
1605
1517
  md: titleMdCss()
1606
1518
  };
1607
1519
 
1608
- 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, #242528));--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}`;
1520
+ 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%}`;
1609
1521
 
1610
- 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%}`;
1611
-
1612
- 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}`;
1522
+ 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}`;
1613
1523
 
1614
1524
  const Toolbar = class {
1615
1525
  constructor(hostRef) {
1616
1526
  index.registerInstance(this, hostRef);
1617
1527
  this.childrenStyles = new Map();
1618
- this.slotClasses = [
1619
- 'has-start-content',
1620
- 'has-end-content',
1621
- 'has-primary-content',
1622
- 'has-secondary-content',
1623
- ];
1624
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1625
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1626
1528
  }
1627
1529
  componentWillLoad() {
1628
1530
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1639,170 +1541,6 @@ const Toolbar = class {
1639
1541
  if (lastButtons) {
1640
1542
  lastButtons.classList.add('buttons-last-slot');
1641
1543
  }
1642
- this.updateSlotClasses();
1643
- }
1644
- componentDidLoad() {
1645
- this.updateSlotClasses();
1646
- this.updateSlotWidths();
1647
- }
1648
- titlePlacementChanged() {
1649
- this.updateSlotClasses();
1650
- }
1651
- /**
1652
- * Gets the title placement.
1653
- * Returns the title placement if it is set, otherwise returns `"center"`
1654
- * for `ionic` and `ios`, and `"start"` for `md`.
1655
- */
1656
- getTitlePlacement() {
1657
- if (this.titlePlacement !== undefined) {
1658
- return this.titlePlacement;
1659
- }
1660
- return ionicGlobal.getIonTheme(this) === 'ionic' || ionicGlobal.getIonTheme(this) === 'ios' ? 'center' : 'start';
1661
- }
1662
- /**
1663
- * Updates the CSS custom properties for slot widths
1664
- * This ensures that slots shown by their met conditions
1665
- * have a minimum width matching their required slot
1666
- */
1667
- updateSlotWidths(tries = 0) {
1668
- // Set timeout to try to execute after everything is rendered
1669
- setTimeout(() => {
1670
- // Attempt to measure and update
1671
- const success = this.measureAndUpdateSlots();
1672
- // If not all measurements were successful, try again in 100 ms
1673
- // cap recursion at 5 tries for safety
1674
- if (!success && tries < 5) {
1675
- setTimeout(() => {
1676
- this.updateSlotWidths(tries + 1);
1677
- }, 100);
1678
- }
1679
- });
1680
- }
1681
- /**
1682
- * Measure the widths of the slots and update the CSS custom properties
1683
- * for the minimum width of each pair of slots based on the largest width in each pair.
1684
- * Returns whether we successfully measured all of the slots we expect to have content.
1685
- * If not, the content probably hasn't rendered yet and we need to try again.
1686
- */
1687
- measureAndUpdateSlots() {
1688
- // Define the relationship between slots based on the conditions array
1689
- // Group slots that should have the same width
1690
- const slotPairs = [
1691
- { name: 'start-end', slots: ['start', 'end'] },
1692
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1693
- ];
1694
- // First, measure all slot widths
1695
- const slotWidths = new Map();
1696
- let allMeasurementsSuccessful = true;
1697
- // Measure all slots with content
1698
- const slots = ['start', 'end', 'primary', 'secondary'];
1699
- slots.forEach((slot) => {
1700
- if (this.el.classList.contains(`has-${slot}-content`)) {
1701
- const slotElement = this.el.shadowRoot?.querySelector(`slot[name="${slot}"]`);
1702
- if (slotElement) {
1703
- // Check if the slot contains an img or ion-img
1704
- const assignedElements = slotElement.assignedElements({ flatten: true });
1705
- const hasImg = assignedElements.some((el) => {
1706
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1707
- return true;
1708
- }
1709
- // Check for nested images
1710
- return el.querySelector('img, ion-img') !== null;
1711
- });
1712
- // Temporarily allow slot to size to content by setting flex-basis
1713
- // to 'auto'. This ensures that slotted images can render at their
1714
- // intrinsic width for measurement.
1715
- if (hasImg) {
1716
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1717
- this.el.style.setProperty(`--${name}-size`, 'auto');
1718
- }
1719
- const width = slotElement.offsetWidth;
1720
- if (width > 0) {
1721
- slotWidths.set(slot, width);
1722
- }
1723
- else {
1724
- allMeasurementsSuccessful = false;
1725
- }
1726
- }
1727
- }
1728
- });
1729
- // Then set the CSS custom properties based on the largest width in each pair
1730
- slotPairs.forEach(({ name, slots }) => {
1731
- // Find the maximum width among the slots in this pair
1732
- let maxWidth = 0;
1733
- let hasAnyContent = false;
1734
- slots.forEach((slot) => {
1735
- if (slotWidths.has(slot)) {
1736
- hasAnyContent = true;
1737
- maxWidth = Math.max(maxWidth, slotWidths.get(slot) ?? 0);
1738
- }
1739
- });
1740
- // If at least one slot in the pair has content, set the min-width for the pair
1741
- if (hasAnyContent && maxWidth > 0) {
1742
- // Set a single CSS variable for the pair
1743
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1744
- }
1745
- });
1746
- return allMeasurementsSuccessful;
1747
- }
1748
- /**
1749
- * Removes all slot visibility classes and slot width CSS variables.
1750
- */
1751
- removeSlotClasses() {
1752
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1753
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1754
- }
1755
- updateSlotClasses() {
1756
- const titlePlacement = this.getTitlePlacement();
1757
- if (titlePlacement !== 'center') {
1758
- this.removeSlotClasses();
1759
- return;
1760
- }
1761
- // Check if slots have content
1762
- const slots = ['start', 'end', 'primary', 'secondary'];
1763
- const classesToAdd = [];
1764
- const classesToRemove = [];
1765
- slots.forEach((slot) => {
1766
- const slotHasContent = this.hasSlotContent(slot);
1767
- const slotClass = `has-${slot}-content`;
1768
- if (slotHasContent) {
1769
- classesToAdd.push(slotClass);
1770
- }
1771
- else {
1772
- classesToRemove.push(slotClass);
1773
- }
1774
- });
1775
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1776
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1777
- // and does not have any of the excluded slots, otherwise it will be removed.
1778
- // This is useful to enforce centering of the toolbar content when there are different amounts
1779
- // of slots on either side of the toolbar.
1780
- const conditions = [
1781
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1782
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1783
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1784
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1785
- ];
1786
- conditions.forEach((condition) => {
1787
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1788
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1789
- const className = `show-${condition.name}`;
1790
- if (hasRequiredSlots && !hasExcludedSlots) {
1791
- classesToAdd.push(className);
1792
- }
1793
- else {
1794
- classesToRemove.push(className);
1795
- }
1796
- });
1797
- // Add classes to the toolbar element
1798
- this.el.classList.add(...classesToAdd);
1799
- this.el.classList.remove(...classesToRemove);
1800
- // Update slot widths after classes have been updated
1801
- this.updateSlotWidths();
1802
- }
1803
- hasSlotContent(slotName) {
1804
- const slotNode = this.el.shadowRoot?.querySelector(`slot[name="${slotName}"]`);
1805
- return !!slotNode && slotNode.assignedNodes().length > 0;
1806
1544
  }
1807
1545
  childrenStyle(ev) {
1808
1546
  ev.stopPropagation();
@@ -1827,30 +1565,22 @@ const Toolbar = class {
1827
1565
  }
1828
1566
  }
1829
1567
  render() {
1830
- const theme$1 = ionicGlobal.getIonTheme(this);
1568
+ const mode = ionicGlobal.getIonMode(this);
1831
1569
  const childStyles = {};
1832
- this.childrenStyles.forEach((style) => {
1833
- Object.assign(childStyles, style);
1570
+ this.childrenStyles.forEach((value) => {
1571
+ Object.assign(childStyles, value);
1834
1572
  });
1835
- const titlePlacement = this.getTitlePlacement();
1836
- return (index.h(index.Host, { key: '3b97d3de5b1910257170355995eb7a50a2b6dcc4', class: {
1573
+ return (index.h(index.Host, { key: 'c16803dc4eae9972ef19bf43aa74b94feb4fd4c1', class: {
1574
+ ...childStyles,
1837
1575
  ...theme.createColorClasses(this.color, {
1838
- [theme$1]: true,
1576
+ [mode]: true,
1839
1577
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
1840
- [`toolbar-title-placement-${titlePlacement}`]: true,
1841
1578
  }),
1842
- ...childStyles,
1843
- } }, index.h("div", { key: '26f85390aa62f118e585fd8560fba0620b30fd51', class: "toolbar-background", part: "background" }), index.h("div", { key: '57e32773d5642dde7f5d7cca9aaceb41b4d800bd', class: "toolbar-container", part: "container" }, index.h("slot", { key: '5429b3f898703339749a55af6bb28d7e4d969679', name: "start", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: 'c5565f7020f52a1f075d9c6908ace042d488642f', name: "secondary", onSlotchange: () => this.updateSlotClasses }), index.h("div", { key: '2d083bcd57512041321a68b43d6b90144eb20166', class: "toolbar-content", part: "content" }, index.h("slot", { key: 'eb8abc0b9b96c699355891fbd0d284094cde7632' })), index.h("slot", { key: 'ca66f2dcce1f5382ed40a120cf32f759597a11ad', name: "primary", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: '19e3eb792d45c21404fe48f119d68248b5d7dca7', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1579
+ } }, index.h("div", { key: '20e3f85844c94b8399c245d2df125e6ab678d681', class: "toolbar-background", part: "background" }), index.h("div", { key: '12f09e324e8d9130b9d30c493106b500233fb016', class: "toolbar-container", part: "container" }, index.h("slot", { key: '6da0fe99ee0c4d7c969712e2908a4e7e6be5ed2c', name: "start" }), index.h("slot", { key: '177c346d6dcabb7857d810cda7d25c6dde32e6e2', name: "secondary" }), index.h("div", { key: '8c921b415940c71bf4c1a2c5c6887f36ad1afd16', class: "toolbar-content", part: "content" }, index.h("slot", { key: '1f2976b80d967bd51e86ed1357b363271d655df2' })), index.h("slot", { key: '0f7618044a7e8b0d9b715a8e208070f7ef2ee4c8', name: "primary" }), index.h("slot", { key: '125c393197e0660a3c2638dd4628c41ef7e05f19', name: "end" }))));
1844
1580
  }
1845
1581
  get el() { return index.getElement(this); }
1846
- static get watchers() { return {
1847
- "titlePlacement": [{
1848
- "titlePlacementChanged": 0
1849
- }]
1850
- }; }
1851
1582
  };
1852
1583
  Toolbar.style = {
1853
- ionic: toolbarIonicCss(),
1854
1584
  ios: toolbarIosCss(),
1855
1585
  md: toolbarMdCss()
1856
1586
  };