@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
@@ -1,23 +1,21 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, i as config, f as Host, g as getElement, d as createEvent, e as readTask, j as forceUpdate, w as writeTask, a as printIonWarning, c as printIonError } from './index-hR6kxzTq.js';
5
- import { focusElements } from './focus-visible-BYk20Mf5.js';
6
- import { c as getIonTheme, a as isPlatform, b as getIonMode } from './ionic-global-DSbFWXp3.js';
7
- import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, w as shallowEqualStringMap } from './helpers-B_F2b1gy.js';
8
- import { n as getOverlaySizeType } from './overlays-C8sf7PId.js';
4
+ import { r as registerInstance, i as config, a as printIonWarning, h, f as Host, g as getElement, d as createEvent, e as readTask, j as forceUpdate, w as writeTask, c as printIonError } from './index-BpRUsN_W.js';
5
+ import { w as shouldUseCloseWatcher, n as getOverlaySizeType } from './overlays-BBgMM61s.js';
6
+ import { a as isPlatform, b as getIonMode } from './ionic-global-Cep6oYzK.js';
7
+ import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, v as shallowEqualStringMap } from './helpers-p94IkmEA.js';
9
8
  import { i as isRTL } from './dir-Dj4J3LkD.js';
10
- import { h as hostContext, c as createColorClasses } from './theme-BUF_V-Kg.js';
11
- import { b as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-BeR_5uou.js';
12
- import { c as createScrollHideController, a as createKeyboardController } from './scroll-hide-controller-Chts2wJU.js';
9
+ import { h as hostContext, c as createColorClasses } from './theme-byZM6qHV.js';
10
+ import { b as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-CBkVO5D0.js';
11
+ import { c as createKeyboardController } from './keyboard-controller-DqohyEsZ.js';
13
12
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
14
- import { a as attachComponent, d as detachComponent } from './framework-delegate-99Ms_INy.js';
13
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-CW5_kWfc.js';
15
14
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
16
- import { t as transition, f as blockSwipeClicks } from './index-D5lNz-tr.js';
17
- import './index-ZjP4CjeZ.js';
15
+ import { t as transition, f as blockSwipeClicks } from './index-vgPixHgF.js';
18
16
  import './gesture-controller-B_gJaBk0.js';
19
- import './keyboard-DAF8GNJ9.js';
20
- import './capacitor-CFERIeaU.js';
17
+ import './keyboard-CutS8BPd.js';
18
+ import './capacitor-BY7l8HgR.js';
21
19
 
22
20
  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}`;
23
21
 
@@ -25,6 +23,51 @@ const App = class {
25
23
  constructor(hostRef) {
26
24
  registerInstance(this, hostRef);
27
25
  }
26
+ componentDidLoad() {
27
+ {
28
+ this.rIC(async () => {
29
+ const isHybrid = isPlatform(window, 'hybrid');
30
+ if (!config.getBoolean('_testing')) {
31
+ import('./index-DLDbwWW7.js').then((module) => module.startTapClick(config));
32
+ }
33
+ if (config.getBoolean('statusTap', isHybrid)) {
34
+ import('./status-tap-BskkGI4e.js').then((module) => module.startStatusTap());
35
+ }
36
+ if (config.getBoolean('inputShims', needInputShims())) {
37
+ /**
38
+ * needInputShims() ensures that only iOS and Android
39
+ * platforms proceed into this block.
40
+ */
41
+ const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
42
+ import('./input-shims-KNXj3DAv.js').then((module) => module.startInputShims(config, platform));
43
+ }
44
+ const hardwareBackButtonModule = await import('./overlays-BBgMM61s.js').then(function (n) { return n.y; });
45
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
46
+ if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
47
+ hardwareBackButtonModule.startHardwareBackButton();
48
+ }
49
+ else {
50
+ /**
51
+ * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
52
+ * then the close watcher will not be used.
53
+ */
54
+ if (shouldUseCloseWatcher()) {
55
+ 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.');
56
+ }
57
+ hardwareBackButtonModule.blockHardwareBackButton();
58
+ }
59
+ if (typeof window !== 'undefined') {
60
+ import('./keyboard-BumguZrM.js').then((module) => module.startKeyboardAssist(window));
61
+ }
62
+ import('./focus-visible-BmVRXR1y.js').then((module) => (this.focusVisible = module.startFocusVisible()));
63
+ });
64
+ }
65
+ }
66
+ disconnectedCallback() {
67
+ if (this.loadTimeout) {
68
+ clearTimeout(this.loadTimeout);
69
+ }
70
+ }
28
71
  /**
29
72
  * Used to set focus on an element that uses `ion-focusable`.
30
73
  * Do not use this if focusing the element as a result of a keyboard
@@ -37,29 +80,52 @@ const App = class {
37
80
  * @param elements An array of HTML elements to set focus on.
38
81
  */
39
82
  async setFocus(elements) {
40
- /**
41
- * The focus-visible utility is used to set focus on an
42
- * element that uses `ion-focusable`.
43
- */
44
- focusElements(elements);
83
+ if (this.focusVisible) {
84
+ this.focusVisible.setFocus(elements);
85
+ }
86
+ }
87
+ rIC(callback) {
88
+ if ('requestIdleCallback' in window) {
89
+ window.requestIdleCallback(callback);
90
+ }
91
+ else {
92
+ this.loadTimeout = setTimeout(callback, 32);
93
+ }
45
94
  }
46
95
  render() {
47
- const theme = getIonTheme(this);
48
- return (h(Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
49
- [theme]: true,
96
+ const mode = getIonMode(this);
97
+ return (h(Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
98
+ [mode]: true,
50
99
  'ion-page': true,
51
100
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
52
101
  } }));
53
102
  }
54
103
  get el() { return getElement(this); }
55
104
  };
105
+ const needInputShims = () => {
106
+ /**
107
+ * iOS always needs input shims
108
+ */
109
+ const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');
110
+ if (needsShimsIOS) {
111
+ return true;
112
+ }
113
+ /**
114
+ * Android only needs input shims when running
115
+ * in the browser and only if the browser is using the
116
+ * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
117
+ */
118
+ const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');
119
+ if (isAndroidMobileWeb) {
120
+ return true;
121
+ }
122
+ return false;
123
+ };
56
124
  App.style = appCss();
57
125
 
58
- 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)}`;
59
-
60
- 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}`;
126
+ 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}`;
61
127
 
62
- 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}`;
128
+ 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}`;
63
129
 
64
130
  const Buttons = class {
65
131
  constructor(hostRef) {
@@ -71,7 +137,7 @@ const Buttons = class {
71
137
  * first toolbar, the buttons will be hidden and will
72
138
  * only be shown once all toolbars have fully collapsed.
73
139
  *
74
- * Only applies in the `ios` theme with `collapse` set to
140
+ * Only applies in `ios` mode with `collapse` set to
75
141
  * `true` on `ion-header`.
76
142
  *
77
143
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -79,24 +145,19 @@ const Buttons = class {
79
145
  this.collapse = false;
80
146
  }
81
147
  render() {
82
- const theme = getIonTheme(this);
83
- return (h(Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
84
- [theme]: true,
148
+ const mode = getIonMode(this);
149
+ return (h(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
150
+ [mode]: true,
85
151
  ['buttons-collapse']: this.collapse,
86
- } }, h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
152
+ } }, h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
87
153
  }
88
154
  };
89
155
  Buttons.style = {
90
- ionic: buttonsIonicCss(),
91
156
  ios: buttonsIosCss(),
92
157
  md: buttonsMdCss()
93
158
  };
94
159
 
95
- 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}`;
96
-
97
- 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)}`;
98
-
99
- 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)}`;
160
+ 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)}`;
100
161
 
101
162
  const Content = class {
102
163
  constructor(hostRef) {
@@ -320,8 +381,9 @@ const Content = class {
320
381
  this.resize();
321
382
  }, 100);
322
383
  }
323
- shouldForceOverscroll(mode) {
384
+ shouldForceOverscroll() {
324
385
  const { forceOverscroll } = this;
386
+ const mode = getIonMode(this);
325
387
  return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
326
388
  }
327
389
  /**
@@ -549,13 +611,12 @@ const Content = class {
549
611
  render() {
550
612
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
551
613
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
552
- const theme = getIonTheme(this);
553
- const mode = getIonMode(this, theme);
554
- const forceOverscroll = this.shouldForceOverscroll(mode);
555
- const transitionShadow = theme === 'ios';
614
+ const mode = getIonMode(this);
615
+ const forceOverscroll = this.shouldForceOverscroll();
616
+ const transitionShadow = mode === 'ios';
556
617
  this.resize();
557
- return (h(Host, { key: '6cdef99e2396f9b451240ee739800b6d4a0df9fa', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
558
- [theme]: true,
618
+ return (h(Host, { key: 'e1013621096729354ef92915af52dd823e69fdff', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
619
+ [mode]: true,
559
620
  'content-fullscreen': this.fullscreen,
560
621
  'content-sizing': this.sizeToContent,
561
622
  overscroll: forceOverscroll,
@@ -563,12 +624,12 @@ const Content = class {
563
624
  }), style: {
564
625
  '--offset-top': `${this.cTop}px`,
565
626
  '--offset-bottom': `${this.cBottom}px`,
566
- }, ...inheritedAttributes }, h("div", { key: 'bbd9b4bf3fc97404cd42bb7824fc20e031f77922', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '4d4747e2495645da20a0718275a77f44fdbdd82d', class: {
627
+ }, ...inheritedAttributes }, h("div", { key: '3d8649b164d6324beaa1bc50e1d204ad06c2ec1a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: 'dd2d3bed8690b4f5027a43f5ec60e7e7df18106d', class: {
567
628
  'inner-scroll': true,
568
629
  'scroll-x': scrollX,
569
630
  'scroll-y': scrollY,
570
631
  overscroll: (scrollX || scrollY) && forceOverscroll,
571
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: 'fbafdcfd579732945a3f375fb6cc9777651f41f5' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
632
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: 'dc3d4584d9e9afd43699525a619b8e873078fbbf' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
572
633
  }
573
634
  get el() { return getElement(this); }
574
635
  static get watchers() { return {
@@ -598,8 +659,7 @@ const getPageElement = (el) => {
598
659
  * between the popover and the edges of the screen. But if the popover contains
599
660
  * its own page element, we should use that instead.
600
661
  */
601
- const appRootSelector = config.get('appRootSelector', 'ion-app');
602
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
662
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
603
663
  if (page) {
604
664
  return page;
605
665
  }
@@ -632,11 +692,7 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
632
692
  detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
633
693
  }
634
694
  };
635
- Content.style = {
636
- ionic: contentIonicCss(),
637
- ios: contentIosCss(),
638
- md: contentMdCss()
639
- };
695
+ Content.style = contentCss();
640
696
 
641
697
  const handleFooterFade = (scrollEl, baseEl) => {
642
698
  readTask(() => {
@@ -667,90 +723,45 @@ const handleFooterFade = (scrollEl, baseEl) => {
667
723
  });
668
724
  };
669
725
 
670
- 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}`;
671
-
672
- 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}`;
726
+ 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}`;
673
727
 
674
- 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}`;
728
+ 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}`;
675
729
 
676
730
  const Footer = class {
677
731
  constructor(hostRef) {
678
732
  registerInstance(this, hostRef);
679
733
  this.keyboardCtrl = null;
680
734
  this.keyboardCtrlPromise = null;
681
- this.scrollHideCtrlPromise = null;
682
- this.hasWarnedCollapse = false;
683
- this.fadeSetupId = 0;
684
735
  this.keyboardVisible = false;
685
736
  /**
686
737
  * If `true`, the footer will be translucent.
687
- * Only applies when the theme is `"ios"` and the device supports
738
+ * Only applies when the mode is `"ios"` and the device supports
688
739
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
689
740
  *
690
741
  * Note: In order to scroll content behind the footer, the `fullscreen`
691
742
  * attribute needs to be set on the content.
692
743
  */
693
744
  this.translucent = false;
694
- this.checkCollapsibleFooter = async () => {
695
- const { scrollEffect, collapse } = this;
696
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
697
- this.hasWarnedCollapse = true;
698
- printIonWarning(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${collapse}">`, this.el);
699
- }
700
- const effect = scrollEffect ?? collapse;
701
- // Skip teardown/rebuild if the effect hasn't changed.
702
- // This prevents keyboard toggles (which trigger re-renders via
703
- // @State keyboardVisible) from destroying the scroll controller
704
- // and resetting isHidden.
705
- if (effect === this.activeEffect) {
745
+ this.checkCollapsibleFooter = () => {
746
+ const mode = getIonMode(this);
747
+ if (mode !== 'ios') {
706
748
  return;
707
749
  }
708
- const hasHide = effect === 'hide';
709
- const hasFade = effect === 'fade';
750
+ const { collapse } = this;
751
+ const hasFade = collapse === 'fade';
710
752
  this.destroyCollapsibleFooter();
711
- const appRootSelector = config.get('appRootSelector', 'ion-app');
712
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
713
- const contentEl = pageEl ? findIonContent(pageEl) : null;
714
- if (hasHide && contentEl) {
715
- this.activeEffect = effect;
716
- await this.setupScrollEffectHide(contentEl);
717
- return;
718
- }
719
- // fade via the deprecated `collapse` prop is iOS-only.
720
- // fade via the new `scrollEffect` prop works in all themes.
721
- const isModeRestricted = scrollEffect === undefined && getIonTheme(this) !== 'ios';
722
- if (hasFade && !isModeRestricted) {
753
+ if (hasFade) {
754
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
755
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
723
756
  if (!contentEl) {
724
757
  printIonContentErrorMsg(this.el);
725
758
  return;
726
759
  }
727
760
  this.setupFadeFooter(contentEl);
728
- this.activeEffect = effect;
729
- }
730
- };
731
- this.setupScrollEffectHide = async (contentEl) => {
732
- const setupPromise = createScrollHideController(contentEl, {
733
- el: this.el,
734
- cssVar: '--internal-footer-hide-height',
735
- hiddenClass: 'footer-scroll-hidden',
736
- contentPartnerClass: 'content-footer-hide-scroll-partner',
737
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
738
- });
739
- this.scrollHideCtrlPromise = setupPromise;
740
- const controller = await setupPromise;
741
- if (this.scrollHideCtrlPromise === setupPromise) {
742
- this.scrollHideCtrlPromise = null;
743
- controller.init();
744
- this.scrollHideCtrl = controller;
745
761
  }
746
762
  };
747
763
  this.setupFadeFooter = async (contentEl) => {
748
- const setupId = ++this.fadeSetupId;
749
- const scrollEl = await getScrollElement(contentEl);
750
- if (this.fadeSetupId !== setupId) {
751
- return;
752
- }
753
- this.scrollEl = scrollEl;
764
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
754
765
  /**
755
766
  * Handle fading of toolbars on scroll
756
767
  */
@@ -795,7 +806,6 @@ const Footer = class {
795
806
  }
796
807
  }
797
808
  disconnectedCallback() {
798
- this.destroyCollapsibleFooter();
799
809
  if (this.keyboardCtrlPromise) {
800
810
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
801
811
  this.keyboardCtrlPromise = null;
@@ -806,43 +816,29 @@ const Footer = class {
806
816
  }
807
817
  }
808
818
  destroyCollapsibleFooter() {
809
- this.activeEffect = undefined;
810
- this.fadeSetupId++;
811
- this.scrollHideCtrlPromise = null;
812
- if (this.scrollHideCtrl) {
813
- this.scrollHideCtrl.destroy();
814
- this.scrollHideCtrl = undefined;
815
- }
816
819
  if (this.scrollEl && this.contentScrollCallback) {
817
820
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
818
821
  this.contentScrollCallback = undefined;
819
822
  }
820
823
  }
821
824
  render() {
822
- const { translucent, scrollEffect, collapse } = this;
823
- const theme = getIonTheme(this);
824
- const effect = scrollEffect ?? collapse;
825
- // fade via the deprecated `collapse` prop is iOS-only.
826
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
827
- const hasHide = effect === 'hide';
828
- const hasFade = effect === 'fade' && !isModeRestricted;
825
+ const { translucent, collapse } = this;
826
+ const mode = getIonMode(this);
829
827
  const tabs = this.el.closest('ion-tabs');
830
828
  const tabBar = tabs?.querySelector(':scope > ion-tab-bar');
831
- return (h(Host, { key: 'a0777b4a639d22e15374879f018efcf589e756f8', role: "contentinfo", class: {
832
- [theme]: true,
829
+ return (h(Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
830
+ [mode]: true,
833
831
  // Used internally for styling
834
- [`footer-${theme}`]: true,
832
+ [`footer-${mode}`]: true,
835
833
  [`footer-translucent`]: translucent,
836
- [`footer-translucent-${theme}`]: translucent,
834
+ [`footer-translucent-${mode}`]: translucent,
837
835
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
838
- 'footer-collapse-fade': hasFade,
839
- 'footer-scroll-effect-hide': hasHide,
840
- } }, theme === 'ios' && translucent && h("div", { key: 'd78b46870cbf11c95b066d649c04ec398b66e614', class: "footer-background" }), h("slot", { key: '9dc34787cd29597fe1b1198db317602014ac1483' })));
836
+ [`footer-collapse-${collapse}`]: collapse !== undefined,
837
+ } }, mode === 'ios' && translucent && h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
841
838
  }
842
839
  get el() { return getElement(this); }
843
840
  };
844
841
  Footer.style = {
845
- ionic: ionicFooterMdCss(),
846
842
  ios: footerIosCss(),
847
843
  md: footerMdCss()
848
844
  };
@@ -900,7 +896,7 @@ const setToolbarBackgroundOpacity = (headerEl, opacity) => {
900
896
  * has collapsed, so it is handled
901
897
  * by handleHeaderFade()
902
898
  */
903
- if ((headerEl.scrollEffect ?? headerEl.collapse) === 'fade') {
899
+ if (headerEl.collapse === 'fade') {
904
900
  return;
905
901
  }
906
902
  if (opacity === undefined) {
@@ -1058,69 +1054,46 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1058
1054
  * Get the role type for the ion-header.
1059
1055
  *
1060
1056
  * @param isInsideMenu If ion-header is inside ion-menu.
1061
- * @returns 'none' if inside ion-menu, otherwise 'banner'.
1062
- * Condensed headers start as 'banner' and have their role
1063
- * toggled dynamically by setHeaderActive() on scroll.
1057
+ * @param isCondensed If ion-header has collapse="condense".
1058
+ * @param mode The current mode.
1059
+ * @returns 'none' if inside ion-menu or if condensed in md
1060
+ * mode, otherwise 'banner'.
1064
1061
  */
1065
- const getRoleType = (isInsideMenu) => {
1062
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
1066
1063
  // If the header is inside a menu, it should not have the banner role.
1067
1064
  if (isInsideMenu) {
1068
1065
  return ROLE_NONE;
1069
1066
  }
1067
+ /**
1068
+ * Only apply role="none" to `md` mode condensed headers
1069
+ * since the large header is never shown.
1070
+ */
1071
+ if (isCondensed && mode === 'md') {
1072
+ return ROLE_NONE;
1073
+ }
1070
1074
  // Default to banner role.
1071
1075
  return ROLE_BANNER;
1072
1076
  };
1073
1077
 
1074
- 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))}}`;
1078
+ 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}`;
1075
1079
 
1076
- 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}`;
1077
-
1078
- 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}`;
1080
+ 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}`;
1079
1081
 
1080
1082
  const Header = class {
1081
1083
  constructor(hostRef) {
1082
1084
  registerInstance(this, hostRef);
1083
1085
  this.inheritedAttributes = {};
1084
- this.scrollHideCtrlPromise = null;
1085
- this.hasWarnedCollapse = false;
1086
- this.fadeCondenseSetupId = 0;
1087
- /**
1088
- * If `true`, the header will have a line at the bottom.
1089
- * TODO(ROU-10855): add support for this prop on ios/md themes
1090
- */
1091
- this.divider = false;
1092
1086
  /**
1093
1087
  * If `true`, the header will be translucent.
1094
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
1088
+ * Only applies when the mode is `"ios"` and the device supports
1095
1089
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
1096
1090
  *
1097
1091
  * Note: In order to scroll content behind the header, the `fullscreen`
1098
1092
  * attribute needs to be set on the content.
1099
1093
  */
1100
1094
  this.translucent = false;
1101
- this.setupScrollEffectHide = async (contentEl) => {
1102
- const setupPromise = createScrollHideController(contentEl, {
1103
- el: this.el,
1104
- cssVar: '--internal-header-hide-height',
1105
- hiddenClass: 'header-scroll-hidden',
1106
- contentPartnerClass: 'content-header-hide-scroll-partner',
1107
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1108
- });
1109
- this.scrollHideCtrlPromise = setupPromise;
1110
- const controller = await setupPromise;
1111
- if (this.scrollHideCtrlPromise === setupPromise) {
1112
- this.scrollHideCtrlPromise = null;
1113
- controller.init();
1114
- this.scrollHideCtrl = controller;
1115
- }
1116
- };
1117
1095
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
1118
- const setupId = ++this.fadeCondenseSetupId;
1119
- const scrollEl = await getScrollElement(contentEl);
1120
- if (this.fadeCondenseSetupId !== setupId) {
1121
- return;
1122
- }
1123
- this.scrollEl = scrollEl;
1096
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
1124
1097
  /**
1125
1098
  * Handle fading of toolbars on scroll
1126
1099
  */
@@ -1144,63 +1117,37 @@ const Header = class {
1144
1117
  this.destroyCollapsibleHeader();
1145
1118
  }
1146
1119
  async checkCollapsibleHeader() {
1147
- const { scrollEffect, collapse } = this;
1148
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
1149
- this.hasWarnedCollapse = true;
1150
- printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
1151
- }
1152
- const effect = scrollEffect ?? collapse;
1153
- // Skip teardown/rebuild if the effect hasn't changed.
1154
- // This prevents re-renders from destroying the scroll controller
1155
- // and resetting isHidden.
1156
- if (effect === this.activeEffect) {
1120
+ const mode = getIonMode(this);
1121
+ if (mode !== 'ios') {
1157
1122
  return;
1158
1123
  }
1159
- const hasHide = effect === 'hide';
1160
- const hasCondense = effect === 'condense';
1161
- const hasFade = effect === 'fade';
1124
+ const { collapse } = this;
1125
+ const hasCondense = collapse === 'condense';
1126
+ const hasFade = collapse === 'fade';
1162
1127
  this.destroyCollapsibleHeader();
1163
- const appRootSelector = config.get('appRootSelector', 'ion-app');
1164
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
1165
- const contentEl = pageEl ? findIonContent(pageEl) : null;
1166
- if (hasHide && contentEl) {
1167
- this.activeEffect = effect;
1168
- await this.setupScrollEffectHide(contentEl);
1169
- return;
1170
- }
1171
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1172
- // condense/fade via the new `scrollEffect` prop work in all themes.
1173
- const isModeRestricted = scrollEffect === undefined && getIonTheme(this) !== 'ios';
1174
- if (hasCondense && !isModeRestricted) {
1128
+ if (hasCondense) {
1129
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1130
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
1175
1131
  // Cloned elements are always needed in iOS transition
1176
1132
  writeTask(() => {
1177
1133
  const title = cloneElement('ion-title');
1178
1134
  title.size = 'large';
1179
1135
  cloneElement('ion-back-button');
1180
1136
  });
1181
- const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
1182
- if (didSetup) {
1183
- this.activeEffect = effect;
1184
- }
1137
+ await this.setupCondenseHeader(contentEl, pageEl);
1185
1138
  }
1186
- else if (hasFade && !isModeRestricted) {
1139
+ else if (hasFade) {
1140
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1141
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
1187
1142
  if (!contentEl) {
1188
1143
  printIonContentErrorMsg(this.el);
1189
1144
  return;
1190
1145
  }
1191
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
1192
- this.activeEffect = effect;
1146
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1193
1147
  await this.setupFadeHeader(contentEl, condenseHeader);
1194
1148
  }
1195
1149
  }
1196
1150
  destroyCollapsibleHeader() {
1197
- this.activeEffect = undefined;
1198
- this.fadeCondenseSetupId++;
1199
- this.scrollHideCtrlPromise = null;
1200
- if (this.scrollHideCtrl) {
1201
- this.scrollHideCtrl.destroy();
1202
- this.scrollHideCtrl = undefined;
1203
- }
1204
1151
  if (this.intersectionObserver) {
1205
1152
  this.intersectionObserver.disconnect();
1206
1153
  this.intersectionObserver = undefined;
@@ -1217,39 +1164,21 @@ const Header = class {
1217
1164
  async setupCondenseHeader(contentEl, pageEl) {
1218
1165
  if (!contentEl || !pageEl) {
1219
1166
  printIonContentErrorMsg(this.el);
1220
- return false;
1167
+ return;
1221
1168
  }
1222
1169
  if (typeof IntersectionObserver === 'undefined') {
1223
- return false;
1224
- }
1225
- const setupId = ++this.fadeCondenseSetupId;
1226
- const scrollEl = await getScrollElement(contentEl);
1227
- if (this.fadeCondenseSetupId !== setupId) {
1228
- return false;
1229
- }
1230
- this.scrollEl = scrollEl;
1231
- /**
1232
- * The condense effect requires an ion-title with size="large"
1233
- * in the condense header. Without it, there is nothing to
1234
- * collapse into the main header toolbar.
1235
- */
1236
- const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
1237
- if (!hasLargeTitle) {
1238
- printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
1239
- return false;
1170
+ return;
1240
1171
  }
1172
+ this.scrollEl = await getScrollElement(contentEl);
1241
1173
  const headers = pageEl.querySelectorAll('ion-header');
1242
- this.collapsibleMainHeader = Array.from(headers).find((header) => {
1243
- const effect = header.scrollEffect ?? header.collapse;
1244
- return effect !== 'condense';
1245
- });
1174
+ this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1246
1175
  if (!this.collapsibleMainHeader) {
1247
- return false;
1176
+ return;
1248
1177
  }
1249
1178
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1250
1179
  const scrollHeaderIndex = createHeaderIndex(this.el);
1251
1180
  if (!mainHeaderIndex || !scrollHeaderIndex) {
1252
- return false;
1181
+ return;
1253
1182
  }
1254
1183
  setHeaderActive(mainHeaderIndex, false);
1255
1184
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -1281,45 +1210,31 @@ const Header = class {
1281
1210
  this.collapsibleMainHeader.classList.add('header-collapse-main');
1282
1211
  }
1283
1212
  });
1284
- return true;
1285
1213
  }
1286
1214
  render() {
1287
- const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
1288
- const theme = getIonTheme(this);
1289
- const effect = scrollEffect ?? collapse;
1290
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1291
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
1292
- const hasHide = effect === 'hide';
1293
- const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
1294
- const hasFade = effect === 'fade' && !isModeRestricted;
1295
- // The condense header should be hidden when
1296
- // - deprecated collapse prop is used on non-iOS (mode restricted), or
1297
- // - scrollEffect="condense" is set but no ion-title[size="large"] is present
1298
- const isHiddenCondense = effect === 'condense' && !hasCondense;
1215
+ const { translucent, inheritedAttributes } = this;
1216
+ const mode = getIonMode(this);
1217
+ const collapse = this.collapse || 'none';
1218
+ const isCondensed = collapse === 'condense';
1299
1219
  // banner role must be at top level, so remove role if inside a menu
1300
- const roleType = isHiddenCondense ? 'none' : getRoleType(hostContext('ion-menu', this.el));
1301
- return (h(Host, { key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
1302
- [theme]: true,
1220
+ const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, mode);
1221
+ return (h(Host, { key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1222
+ [mode]: true,
1303
1223
  // Used internally for styling
1304
- [`header-${theme}`]: true,
1224
+ [`header-${mode}`]: true,
1305
1225
  [`header-translucent`]: this.translucent,
1306
- ['header-collapse-condense']: hasCondense,
1307
- ['header-collapse-condense-hidden']: isHiddenCondense,
1308
- ['header-collapse-fade']: hasFade,
1309
- [`header-translucent-${theme}`]: this.translucent,
1310
- ['header-divider']: divider,
1311
- 'header-scroll-effect-hide': hasHide,
1312
- }, ...inheritedAttributes }, theme !== 'md' && translucent && (h("div", { key: '5179b806abb6f04ed294dc50166c4f014028a4e3', class: "header-background" }, theme === 'ionic' && (h("div", { key: '4c9d23456672b5bd4ce55280ec6f3e6c39f162cc', class: "header-background-blur", "aria-hidden": "true" }, h("div", { key: '9b9da46049e24390491b2b97ab20863f6fefc079', class: "header-background-blur-layer" }), h("div", { key: 'fc2899267eea7fdd415cc4f394fb469188bfae50', class: "header-background-blur-layer" }), h("div", { key: '8a9747c21d2bd92670deeec8022a37409fd349c4', class: "header-background-blur-layer" }), h("div", { key: '03abc8d5e1e8554963a7f652349ab65430d14db9', class: "header-background-blur-layer" }), h("div", { key: '6a481b7894c44b37d8e3569784a3b6a1191fba09', class: "header-background-blur-layer" }), h("div", { key: '8e4cf985b7c58a836316baa47c35dbaac765f658', class: "header-background-blur-layer" }), h("div", { key: '4ce7402a8ea8aa8253fc2e69e614c50c22ae2c9d', class: "header-background-blur-layer" }))))), h("slot", { key: '1e5ae6dddd080197c7801ed58fb22b9f237b6099' })));
1226
+ [`header-collapse-${collapse}`]: true,
1227
+ [`header-translucent-${mode}`]: this.translucent,
1228
+ }, ...inheritedAttributes }, mode === 'ios' && translucent && h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1313
1229
  }
1314
1230
  get el() { return getElement(this); }
1315
1231
  };
1316
1232
  Header.style = {
1317
- ionic: headerIonicCss(),
1318
1233
  ios: headerIosCss(),
1319
1234
  md: headerMdCss()
1320
1235
  };
1321
1236
 
1322
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1237
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1323
1238
 
1324
1239
  const RouterOutlet = class {
1325
1240
  constructor(hostRef) {
@@ -1330,7 +1245,7 @@ const RouterOutlet = class {
1330
1245
  this.lockController = createLockController();
1331
1246
  this.gestureOrAnimationInProgress = false;
1332
1247
  /**
1333
- * The mode determines the platform behaviors of the component.
1248
+ * The mode determines which platform styles to use.
1334
1249
  */
1335
1250
  this.mode = getIonMode(this);
1336
1251
  /**
@@ -1359,7 +1274,7 @@ const RouterOutlet = class {
1359
1274
  this.swipeHandler.onStart();
1360
1275
  }
1361
1276
  };
1362
- this.gesture = (await import('./swipe-back-Bgftkxen.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => this.ani?.progressStep(step), (shouldComplete, step, dur) => {
1277
+ this.gesture = (await import('./swipe-back-BZdyM2Q-.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => this.ani?.progressStep(step), (shouldComplete, step, dur) => {
1363
1278
  if (this.ani) {
1364
1279
  this.ani.onFinish(() => {
1365
1280
  this.gestureOrAnimationInProgress = false;
@@ -1541,7 +1456,7 @@ const RouterOutlet = class {
1541
1456
  return true;
1542
1457
  }
1543
1458
  render() {
1544
- return h("slot", { key: 'f558387bf490206aaa6f58132995c5080354ec02' });
1459
+ return h("slot", { key: '078cdc7a63b98570746409fc08c4af80f8d7da4d' });
1545
1460
  }
1546
1461
  get el() { return getElement(this); }
1547
1462
  static get watchers() { return {
@@ -1555,11 +1470,9 @@ const RouterOutlet = class {
1555
1470
  };
1556
1471
  RouterOutlet.style = routerOutletCss();
1557
1472
 
1558
- 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}`;
1559
-
1560
- 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)}}`;
1473
+ 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)}}`;
1561
1474
 
1562
- 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}`;
1475
+ 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}`;
1563
1476
 
1564
1477
  const ToolbarTitle = class {
1565
1478
  constructor(hostRef) {
@@ -1582,13 +1495,13 @@ const ToolbarTitle = class {
1582
1495
  return this.size !== undefined ? this.size : 'default';
1583
1496
  }
1584
1497
  render() {
1585
- const theme = getIonTheme(this);
1498
+ const mode = getIonMode(this);
1586
1499
  const size = this.getSize();
1587
- return (h(Host, { key: '8dada0c1d43ccbc7f4011caee41eebbf8796b4bf', class: createColorClasses(this.color, {
1588
- [theme]: true,
1500
+ return (h(Host, { key: '8d17feb9f9dcb9eb8e3b8ae6e831bdedb890771c', class: createColorClasses(this.color, {
1501
+ [mode]: true,
1589
1502
  [`title-${size}`]: true,
1590
1503
  'title-rtl': isRTL(this.el),
1591
- }) }, h("div", { key: 'c4686ed4e9ff56eafec66d4c008f858b0310854d', class: "toolbar-title" }, h("slot", { key: 'b679584fcaed7c57cbae585502c3e48eb98ee63d' }))));
1504
+ }) }, h("div", { key: '0346aae3fca1e3ae443b1b511c44ab1f803cb103', class: "toolbar-title" }, h("slot", { key: 'e1945845df471d5eb8c3cdeb568c478abf5ad70e' }))));
1592
1505
  }
1593
1506
  get el() { return getElement(this); }
1594
1507
  static get watchers() { return {
@@ -1598,29 +1511,18 @@ const ToolbarTitle = class {
1598
1511
  }; }
1599
1512
  };
1600
1513
  ToolbarTitle.style = {
1601
- ionic: titleIonicCss(),
1602
1514
  ios: titleIosCss(),
1603
1515
  md: titleMdCss()
1604
1516
  };
1605
1517
 
1606
- 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}`;
1518
+ 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%}`;
1607
1519
 
1608
- 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%}`;
1609
-
1610
- 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}`;
1520
+ 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}`;
1611
1521
 
1612
1522
  const Toolbar = class {
1613
1523
  constructor(hostRef) {
1614
1524
  registerInstance(this, hostRef);
1615
1525
  this.childrenStyles = new Map();
1616
- this.slotClasses = [
1617
- 'has-start-content',
1618
- 'has-end-content',
1619
- 'has-primary-content',
1620
- 'has-secondary-content',
1621
- ];
1622
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1623
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1624
1526
  }
1625
1527
  componentWillLoad() {
1626
1528
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1637,170 +1539,6 @@ const Toolbar = class {
1637
1539
  if (lastButtons) {
1638
1540
  lastButtons.classList.add('buttons-last-slot');
1639
1541
  }
1640
- this.updateSlotClasses();
1641
- }
1642
- componentDidLoad() {
1643
- this.updateSlotClasses();
1644
- this.updateSlotWidths();
1645
- }
1646
- titlePlacementChanged() {
1647
- this.updateSlotClasses();
1648
- }
1649
- /**
1650
- * Gets the title placement.
1651
- * Returns the title placement if it is set, otherwise returns `"center"`
1652
- * for `ionic` and `ios`, and `"start"` for `md`.
1653
- */
1654
- getTitlePlacement() {
1655
- if (this.titlePlacement !== undefined) {
1656
- return this.titlePlacement;
1657
- }
1658
- return getIonTheme(this) === 'ionic' || getIonTheme(this) === 'ios' ? 'center' : 'start';
1659
- }
1660
- /**
1661
- * Updates the CSS custom properties for slot widths
1662
- * This ensures that slots shown by their met conditions
1663
- * have a minimum width matching their required slot
1664
- */
1665
- updateSlotWidths(tries = 0) {
1666
- // Set timeout to try to execute after everything is rendered
1667
- setTimeout(() => {
1668
- // Attempt to measure and update
1669
- const success = this.measureAndUpdateSlots();
1670
- // If not all measurements were successful, try again in 100 ms
1671
- // cap recursion at 5 tries for safety
1672
- if (!success && tries < 5) {
1673
- setTimeout(() => {
1674
- this.updateSlotWidths(tries + 1);
1675
- }, 100);
1676
- }
1677
- });
1678
- }
1679
- /**
1680
- * Measure the widths of the slots and update the CSS custom properties
1681
- * for the minimum width of each pair of slots based on the largest width in each pair.
1682
- * Returns whether we successfully measured all of the slots we expect to have content.
1683
- * If not, the content probably hasn't rendered yet and we need to try again.
1684
- */
1685
- measureAndUpdateSlots() {
1686
- // Define the relationship between slots based on the conditions array
1687
- // Group slots that should have the same width
1688
- const slotPairs = [
1689
- { name: 'start-end', slots: ['start', 'end'] },
1690
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1691
- ];
1692
- // First, measure all slot widths
1693
- const slotWidths = new Map();
1694
- let allMeasurementsSuccessful = true;
1695
- // Measure all slots with content
1696
- const slots = ['start', 'end', 'primary', 'secondary'];
1697
- slots.forEach((slot) => {
1698
- if (this.el.classList.contains(`has-${slot}-content`)) {
1699
- const slotElement = this.el.shadowRoot?.querySelector(`slot[name="${slot}"]`);
1700
- if (slotElement) {
1701
- // Check if the slot contains an img or ion-img
1702
- const assignedElements = slotElement.assignedElements({ flatten: true });
1703
- const hasImg = assignedElements.some((el) => {
1704
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1705
- return true;
1706
- }
1707
- // Check for nested images
1708
- return el.querySelector('img, ion-img') !== null;
1709
- });
1710
- // Temporarily allow slot to size to content by setting flex-basis
1711
- // to 'auto'. This ensures that slotted images can render at their
1712
- // intrinsic width for measurement.
1713
- if (hasImg) {
1714
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1715
- this.el.style.setProperty(`--${name}-size`, 'auto');
1716
- }
1717
- const width = slotElement.offsetWidth;
1718
- if (width > 0) {
1719
- slotWidths.set(slot, width);
1720
- }
1721
- else {
1722
- allMeasurementsSuccessful = false;
1723
- }
1724
- }
1725
- }
1726
- });
1727
- // Then set the CSS custom properties based on the largest width in each pair
1728
- slotPairs.forEach(({ name, slots }) => {
1729
- // Find the maximum width among the slots in this pair
1730
- let maxWidth = 0;
1731
- let hasAnyContent = false;
1732
- slots.forEach((slot) => {
1733
- if (slotWidths.has(slot)) {
1734
- hasAnyContent = true;
1735
- maxWidth = Math.max(maxWidth, slotWidths.get(slot) ?? 0);
1736
- }
1737
- });
1738
- // If at least one slot in the pair has content, set the min-width for the pair
1739
- if (hasAnyContent && maxWidth > 0) {
1740
- // Set a single CSS variable for the pair
1741
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1742
- }
1743
- });
1744
- return allMeasurementsSuccessful;
1745
- }
1746
- /**
1747
- * Removes all slot visibility classes and slot width CSS variables.
1748
- */
1749
- removeSlotClasses() {
1750
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1751
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1752
- }
1753
- updateSlotClasses() {
1754
- const titlePlacement = this.getTitlePlacement();
1755
- if (titlePlacement !== 'center') {
1756
- this.removeSlotClasses();
1757
- return;
1758
- }
1759
- // Check if slots have content
1760
- const slots = ['start', 'end', 'primary', 'secondary'];
1761
- const classesToAdd = [];
1762
- const classesToRemove = [];
1763
- slots.forEach((slot) => {
1764
- const slotHasContent = this.hasSlotContent(slot);
1765
- const slotClass = `has-${slot}-content`;
1766
- if (slotHasContent) {
1767
- classesToAdd.push(slotClass);
1768
- }
1769
- else {
1770
- classesToRemove.push(slotClass);
1771
- }
1772
- });
1773
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1774
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1775
- // and does not have any of the excluded slots, otherwise it will be removed.
1776
- // This is useful to enforce centering of the toolbar content when there are different amounts
1777
- // of slots on either side of the toolbar.
1778
- const conditions = [
1779
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1780
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1781
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1782
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1783
- ];
1784
- conditions.forEach((condition) => {
1785
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1786
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1787
- const className = `show-${condition.name}`;
1788
- if (hasRequiredSlots && !hasExcludedSlots) {
1789
- classesToAdd.push(className);
1790
- }
1791
- else {
1792
- classesToRemove.push(className);
1793
- }
1794
- });
1795
- // Add classes to the toolbar element
1796
- this.el.classList.add(...classesToAdd);
1797
- this.el.classList.remove(...classesToRemove);
1798
- // Update slot widths after classes have been updated
1799
- this.updateSlotWidths();
1800
- }
1801
- hasSlotContent(slotName) {
1802
- const slotNode = this.el.shadowRoot?.querySelector(`slot[name="${slotName}"]`);
1803
- return !!slotNode && slotNode.assignedNodes().length > 0;
1804
1542
  }
1805
1543
  childrenStyle(ev) {
1806
1544
  ev.stopPropagation();
@@ -1825,30 +1563,22 @@ const Toolbar = class {
1825
1563
  }
1826
1564
  }
1827
1565
  render() {
1828
- const theme = getIonTheme(this);
1566
+ const mode = getIonMode(this);
1829
1567
  const childStyles = {};
1830
- this.childrenStyles.forEach((style) => {
1831
- Object.assign(childStyles, style);
1568
+ this.childrenStyles.forEach((value) => {
1569
+ Object.assign(childStyles, value);
1832
1570
  });
1833
- const titlePlacement = this.getTitlePlacement();
1834
- return (h(Host, { key: '3b97d3de5b1910257170355995eb7a50a2b6dcc4', class: {
1571
+ return (h(Host, { key: 'c16803dc4eae9972ef19bf43aa74b94feb4fd4c1', class: {
1572
+ ...childStyles,
1835
1573
  ...createColorClasses(this.color, {
1836
- [theme]: true,
1574
+ [mode]: true,
1837
1575
  'in-toolbar': hostContext('ion-toolbar', this.el),
1838
- [`toolbar-title-placement-${titlePlacement}`]: true,
1839
1576
  }),
1840
- ...childStyles,
1841
- } }, h("div", { key: '26f85390aa62f118e585fd8560fba0620b30fd51', class: "toolbar-background", part: "background" }), h("div", { key: '57e32773d5642dde7f5d7cca9aaceb41b4d800bd', class: "toolbar-container", part: "container" }, h("slot", { key: '5429b3f898703339749a55af6bb28d7e4d969679', name: "start", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: 'c5565f7020f52a1f075d9c6908ace042d488642f', name: "secondary", onSlotchange: () => this.updateSlotClasses }), h("div", { key: '2d083bcd57512041321a68b43d6b90144eb20166', class: "toolbar-content", part: "content" }, h("slot", { key: 'eb8abc0b9b96c699355891fbd0d284094cde7632' })), h("slot", { key: 'ca66f2dcce1f5382ed40a120cf32f759597a11ad', name: "primary", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: '19e3eb792d45c21404fe48f119d68248b5d7dca7', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1577
+ } }, h("div", { key: '20e3f85844c94b8399c245d2df125e6ab678d681', class: "toolbar-background", part: "background" }), h("div", { key: '12f09e324e8d9130b9d30c493106b500233fb016', class: "toolbar-container", part: "container" }, h("slot", { key: '6da0fe99ee0c4d7c969712e2908a4e7e6be5ed2c', name: "start" }), h("slot", { key: '177c346d6dcabb7857d810cda7d25c6dde32e6e2', name: "secondary" }), h("div", { key: '8c921b415940c71bf4c1a2c5c6887f36ad1afd16', class: "toolbar-content", part: "content" }, h("slot", { key: '1f2976b80d967bd51e86ed1357b363271d655df2' })), h("slot", { key: '0f7618044a7e8b0d9b715a8e208070f7ef2ee4c8', name: "primary" }), h("slot", { key: '125c393197e0660a3c2638dd4628c41ef7e05f19', name: "end" }))));
1842
1578
  }
1843
1579
  get el() { return getElement(this); }
1844
- static get watchers() { return {
1845
- "titlePlacement": [{
1846
- "titlePlacementChanged": 0
1847
- }]
1848
- }; }
1849
1580
  };
1850
1581
  Toolbar.style = {
1851
- ionic: toolbarIonicCss(),
1852
1582
  ios: toolbarIosCss(),
1853
1583
  md: toolbarMdCss()
1854
1584
  };