@ionic/core 8.8.16-dev.11784914346.10d0804c → 8.8.16-dev.11785274070.1b3387c9

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 (1135) 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-8cRBED2y.js +4 -0
  99. package/components/p-B--DzMaF.js +4 -0
  100. package/components/p-B-XasJcm.js +4 -0
  101. package/components/p-B4i0QYxB.js +4 -0
  102. package/components/p-B5Ia5kbJ.js +4 -0
  103. package/components/p-BRF87FDL.js +4 -0
  104. package/components/p-BSQPZ79H.js +4 -0
  105. package/components/p-BTPfOxsU.js +4 -0
  106. package/{dist/ionic/p-Cm20lBQw.js → components/p-BT_5jSqG.js} +1 -1
  107. package/components/p-Baq1XyAy.js +4 -0
  108. package/components/p-BmVRXR1y.js +4 -0
  109. package/components/p-BnTB62Lu.js +4 -0
  110. package/components/p-Bz0dSlXZ.js +4 -0
  111. package/components/p-C1aScSTo.js +4 -0
  112. package/components/{p-BKSylJVh.js → p-C4t5ymfq.js} +1 -1
  113. package/components/p-CHqRYvYm.js +4 -0
  114. package/components/p-CIGNaXM1.js +4 -0
  115. package/components/p-CPa2WmW7.js +4 -0
  116. package/components/p-CYdwJYjZ.js +4 -0
  117. package/components/p-CYhGN6l4.js +4 -0
  118. package/components/p-C_xFdyXe.js +4 -0
  119. package/components/p-CbJDPICP.js +4 -0
  120. package/components/{p-BE21dB_a.js → p-Cf2jSDS8.js} +1 -1
  121. package/components/p-Ciz1-FuE.js +4 -0
  122. package/components/p-CmR5uXej.js +4 -0
  123. package/components/p-CtQ-1ZRt.js +4 -0
  124. package/components/p-CtWGkNnJ.js +4 -0
  125. package/{dist/ionic/p-BlZo7Gy-.js → components/p-CtukzcyX.js} +1 -1
  126. package/components/p-CwcD5kE9.js +4 -0
  127. package/components/p-CyFtf1Mm.js +4 -0
  128. package/components/p-CzuRCorP.js +4 -0
  129. package/components/p-D-lHU3L1.js +4 -0
  130. package/components/p-D1-tlI3U.js +4 -0
  131. package/components/{p-DP96lPOT.js → p-D13Eaw-8.js} +1 -1
  132. package/components/p-D355UF9s.js +4 -0
  133. package/components/{p-Dqgyr3aJ.js → p-D5Ubpm7D.js} +1 -1
  134. package/components/p-D6Ynv7Xh.js +4 -0
  135. package/components/p-D7bSXQD3.js +4 -0
  136. package/components/p-DDuPXV-I.js +4 -0
  137. package/components/p-DEI720fP.js +4 -0
  138. package/components/p-DIE4pXMl.js +4 -0
  139. package/components/p-DJztqcrH.js +4 -0
  140. package/components/p-DK0D_QD_.js +4 -0
  141. package/components/p-DNQI6d-L.js +4 -0
  142. package/components/p-DZvgPU3M.js +4 -0
  143. package/components/p-DfjhtfFw.js +4 -0
  144. package/components/p-Dg1a5T1q.js +4 -0
  145. package/components/p-DiVJyqlX.js +4 -0
  146. package/components/p-DnL1c9_X.js +4 -0
  147. package/components/p-Ds1Brlka.js +4 -0
  148. package/components/p-DvTinP2Q.js +4 -0
  149. package/components/p-Dy5czMtc.js +4 -0
  150. package/components/{p-CVYFPBs-.js → p-LMGfIvTf.js} +1 -1
  151. package/components/p-LpMHEu3v.js +4 -0
  152. package/components/p-Sh0ICmPV.js +4 -0
  153. package/components/p-XX59Wsi5.js +4 -0
  154. package/components/p-ZjP4CjeZ.js +4 -0
  155. package/components/{p-Fagxa-Vi.js → p-cyNmxje6.js} +1 -1
  156. package/components/p-ijF0iCrA.js +4 -0
  157. package/components/{p-DylrHLJF.js → p-jOtMJMv8.js} +1 -1
  158. package/components/p-oqjkU_Qx.js +4 -0
  159. package/css/core.css +1 -1
  160. package/css/core.css.map +1 -1
  161. package/css/display.css +1 -1
  162. package/css/display.css.map +1 -1
  163. package/css/flex-utils.css +1 -1
  164. package/css/flex-utils.css.map +1 -1
  165. package/css/float-elements.css.map +1 -1
  166. package/css/global.bundle.css.map +1 -1
  167. package/css/ionic-swiper.css +1 -1
  168. package/css/ionic-swiper.css.map +1 -1
  169. package/css/ionic.bundle.css +1 -1
  170. package/css/ionic.bundle.css.map +1 -1
  171. package/css/normalize.css.map +1 -1
  172. package/css/padding.css.map +1 -1
  173. package/css/palettes/dark.always.css.map +1 -1
  174. package/css/palettes/dark.class.css.map +1 -1
  175. package/css/palettes/dark.system.css.map +1 -1
  176. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  177. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  178. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  179. package/css/palettes/high-contrast.always.css.map +1 -1
  180. package/css/palettes/high-contrast.class.css.map +1 -1
  181. package/css/palettes/high-contrast.system.css.map +1 -1
  182. package/css/structure.css.map +1 -1
  183. package/css/text-alignment.css.map +1 -1
  184. package/css/text-transformation.css.map +1 -1
  185. package/css/typography.css.map +1 -1
  186. package/css/utils.bundle.css +1 -1
  187. package/css/utils.bundle.css.map +1 -1
  188. package/dist/cjs/{animation-B3xfVcDO.js → animation-BJq0kcy2.js} +3 -3
  189. package/dist/cjs/{app-globals-3ZoCVkn-.js → app-globals-7VMuu6PT.js} +1 -1
  190. package/dist/cjs/{button-active-3tZKuPbT.js → button-active-0mPOKmV2.js} +2 -2
  191. package/dist/cjs/{capacitor-CQSg1uCo.js → capacitor-DmA66EwP.js} +3 -3
  192. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  193. package/dist/cjs/{format-BCIkDef_.js → format-PxvGiOik.js} +1 -1
  194. package/dist/cjs/{framework-delegate-DC5nq_NN.js → framework-delegate-BtICZDHr.js} +2 -4
  195. package/dist/cjs/{haptic-eix26ESE.js → haptic-ClPPQ_PS.js} +1 -1
  196. package/dist/cjs/hardware-back-button-iUuF_76h.js +121 -0
  197. package/dist/cjs/{helpers-DiOgV5hw.js → helpers-Cv23MFHM.js} +4 -71
  198. package/dist/cjs/{index-BaJ7_YbC.js → index-BERfRao3.js} +4 -4
  199. package/dist/cjs/{index-BxEZd5IE.js → index-CIrkNXqJ.js} +2 -2
  200. package/dist/cjs/{index-GZU9YrFc.js → index-Ct7gcRif.js} +4 -41
  201. package/dist/cjs/{index-Bj07IRTB.js → index-Cueg3U4w.js} +1 -1
  202. package/dist/cjs/{index-bX3nz2vw.js → index-D81eLYUM.js} +8 -9
  203. package/dist/cjs/index-DkNv4J_i.js +10 -0
  204. package/dist/cjs/{index-DYRcC3bw.js → index-IPWmFzOn.js} +15 -15
  205. package/dist/cjs/{index-CgAbCW6L.js → index-wOmugbdg.js} +1 -3
  206. package/dist/cjs/index.cjs.js +14 -14
  207. package/dist/cjs/{input-shims-BSEBw22J.js → input-shims-CFLg7uzj.js} +17 -18
  208. package/dist/cjs/{input.utils-D68wgI2Y.js → input.utils-DetjmtH2.js} +5 -5
  209. package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
  210. package/dist/cjs/ion-action-sheet.cjs.entry.js +28 -27
  211. package/dist/cjs/ion-alert.cjs.entry.js +34 -32
  212. package/dist/cjs/ion-app_8.cjs.entry.js +212 -462
  213. package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
  214. package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
  215. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
  216. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
  217. package/dist/cjs/ion-button_2.cjs.entry.js +24 -61
  218. package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
  219. package/dist/cjs/ion-checkbox.cjs.entry.js +17 -37
  220. package/dist/cjs/ion-chip.cjs.entry.js +9 -50
  221. package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
  222. package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -21
  223. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +41 -760
  224. package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
  225. package/dist/cjs/ion-img.cjs.entry.js +6 -8
  226. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +16 -91
  227. package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
  228. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
  229. package/dist/cjs/ion-input.cjs.entry.js +35 -125
  230. package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
  231. package/dist/cjs/ion-item_8.cjs.entry.js +50 -121
  232. package/dist/cjs/ion-loading.cjs.entry.js +22 -20
  233. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
  234. package/dist/cjs/ion-modal.cjs.entry.js +165 -269
  235. package/dist/cjs/ion-nav_2.cjs.entry.js +12 -128
  236. package/dist/cjs/ion-picker-column-option.cjs.entry.js +9 -19
  237. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -20
  238. package/dist/cjs/ion-picker.cjs.entry.js +6 -10
  239. package/dist/cjs/ion-popover.cjs.entry.js +23 -21
  240. package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
  241. package/dist/cjs/ion-radio_2.cjs.entry.js +17 -35
  242. package/dist/cjs/ion-range.cjs.entry.js +13 -20
  243. package/dist/cjs/ion-refresher_2.cjs.entry.js +21 -39
  244. package/dist/cjs/ion-reorder_2.cjs.entry.js +14 -38
  245. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
  246. package/dist/cjs/ion-route_4.cjs.entry.js +26 -13
  247. package/dist/cjs/ion-searchbar.cjs.entry.js +25 -138
  248. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  249. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
  250. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
  251. package/dist/cjs/ion-select-modal.cjs.entry.js +26 -48
  252. package/dist/cjs/ion-select_3.cjs.entry.js +108 -199
  253. package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
  254. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
  255. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +28 -150
  256. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
  257. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  258. package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
  259. package/dist/cjs/ion-toast.cjs.entry.js +46 -69
  260. package/dist/cjs/ion-toggle.cjs.entry.js +25 -82
  261. package/dist/cjs/ionic-global-CbxQmwkf.js +151 -0
  262. package/dist/cjs/ionic.cjs.js +4 -4
  263. package/dist/cjs/{ios.transition-DpFQfFfT.js → ios.transition-BOSWOaiK.js} +5 -7
  264. package/dist/cjs/{keyboard-Bn0Ppim6.js → keyboard-UuAS4D_9.js} +1 -1
  265. package/dist/cjs/keyboard-controller-GXBiBRKS.js +167 -0
  266. package/dist/cjs/{keyboard-faZBQysj.js → keyboard-hHzlEQpk.js} +3 -4
  267. package/dist/cjs/loader.cjs.js +4 -4
  268. package/dist/cjs/{md.transition-ChJcoZUH.js → md.transition-B8-wBZqt.js} +5 -6
  269. package/dist/cjs/{notch-controller-BO0UGB4F.js → notch-controller-18PzRGXd.js} +4 -4
  270. package/dist/cjs/{overlay-control-label-DnRLQR1t.js → overlay-control-label-D2sdL2O8.js} +11 -13
  271. package/dist/cjs/{overlays-CFGbPUmE.js → overlays-DJVbo1cW.js} +43 -315
  272. package/dist/cjs/{select-option-render-DqBHEjDn.js → select-option-render-DTF50t5r.js} +2 -2
  273. package/dist/cjs/{status-tap-x2qDo5QR.js → status-tap-BXX8H8_Y.js} +3 -4
  274. package/dist/cjs/{swipe-back-CvZt_4YX.js → swipe-back-C0GCB18x.js} +2 -3
  275. package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
  276. package/dist/cjs/validity-BpS37YFM.js +19 -0
  277. package/dist/collection/collection-manifest.json +1 -13
  278. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  279. package/dist/collection/components/accordion/accordion.js +27 -41
  280. package/dist/collection/components/accordion/accordion.md.css +59 -67
  281. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  282. package/dist/collection/components/accordion-group/accordion-group.js +8 -44
  283. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  284. package/dist/collection/components/action-sheet/action-sheet.ios.css +55 -186
  285. package/dist/collection/components/action-sheet/action-sheet.js +18 -18
  286. package/dist/collection/components/action-sheet/action-sheet.md.css +56 -181
  287. package/dist/collection/components/alert/alert.ios.css +55 -249
  288. package/dist/collection/components/alert/alert.js +23 -22
  289. package/dist/collection/components/alert/alert.md.css +57 -245
  290. package/dist/collection/components/app/app.js +83 -15
  291. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  292. package/dist/collection/components/avatar/avatar.js +4 -120
  293. package/dist/collection/components/avatar/avatar.md.css +0 -51
  294. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  295. package/dist/collection/components/back-button/back-button.js +19 -27
  296. package/dist/collection/components/back-button/back-button.md.css +48 -60
  297. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  298. package/dist/collection/components/backdrop/backdrop.js +6 -12
  299. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  300. package/dist/collection/components/badge/badge.ios.css +12 -139
  301. package/dist/collection/components/badge/badge.js +9 -145
  302. package/dist/collection/components/badge/badge.md.css +12 -123
  303. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  304. package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
  305. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  306. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  307. package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
  308. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  309. package/dist/collection/components/button/button.ios.css +46 -154
  310. package/dist/collection/components/button/button.js +27 -63
  311. package/dist/collection/components/button/button.md.css +50 -150
  312. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  313. package/dist/collection/components/buttons/buttons.js +9 -15
  314. package/dist/collection/components/buttons/buttons.md.css +3 -55
  315. package/dist/collection/components/card/card.ios.css +14 -65
  316. package/dist/collection/components/card/card.js +10 -41
  317. package/dist/collection/components/card/card.md.css +14 -65
  318. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  319. package/dist/collection/components/card-content/card-content.js +10 -12
  320. package/dist/collection/components/card-content/card-content.md.css +35 -20
  321. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  322. package/dist/collection/components/card-header/card-header.js +10 -13
  323. package/dist/collection/components/card-header/card-header.md.css +15 -27
  324. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  325. package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
  326. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  327. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  328. package/dist/collection/components/card-title/card-title.js +8 -11
  329. package/dist/collection/components/card-title/card-title.md.css +0 -73
  330. package/dist/collection/components/checkbox/checkbox.ios.css +99 -163
  331. package/dist/collection/components/checkbox/checkbox.js +15 -73
  332. package/dist/collection/components/checkbox/checkbox.md.css +100 -164
  333. package/dist/collection/components/chip/chip.ios.css +14 -67
  334. package/dist/collection/components/chip/chip.js +8 -108
  335. package/dist/collection/components/chip/chip.md.css +14 -67
  336. package/dist/collection/components/col/col.css +4 -192
  337. package/dist/collection/components/col/col.js +61 -211
  338. package/dist/collection/components/content/content.css +2 -47
  339. package/dist/collection/components/content/content.js +11 -16
  340. package/dist/collection/components/datetime/datetime.ios.css +148 -304
  341. package/dist/collection/components/datetime/datetime.js +28 -112
  342. package/dist/collection/components/datetime/datetime.md.css +138 -294
  343. package/dist/collection/components/datetime/utils/data.js +5 -5
  344. package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -6
  345. package/dist/collection/components/datetime-button/datetime-button.js +9 -19
  346. package/dist/collection/components/datetime-button/datetime-button.md.css +5 -6
  347. package/dist/collection/components/fab/fab.css +1 -25
  348. package/dist/collection/components/fab/fab.js +5 -9
  349. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  350. package/dist/collection/components/fab-button/fab-button.js +21 -36
  351. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  352. package/dist/collection/components/fab-list/fab-list.css +0 -12
  353. package/dist/collection/components/fab-list/fab-list.js +5 -9
  354. package/dist/collection/components/footer/footer.ios.css +6 -33
  355. package/dist/collection/components/footer/footer.js +25 -117
  356. package/dist/collection/components/footer/footer.md.css +0 -40
  357. package/dist/collection/components/grid/grid.css +0 -12
  358. package/dist/collection/components/grid/grid.js +5 -9
  359. package/dist/collection/components/header/header.ios.css +133 -178
  360. package/dist/collection/components/header/header.js +39 -181
  361. package/dist/collection/components/header/header.md.css +9 -199
  362. package/dist/collection/components/header/header.utils.js +13 -6
  363. package/dist/collection/components/img/img.js +6 -7
  364. package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
  365. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  366. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
  367. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  368. package/dist/collection/components/input/input.ios.css +136 -225
  369. package/dist/collection/components/input/input.js +42 -153
  370. package/dist/collection/components/input/input.md.css +208 -195
  371. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  372. package/dist/collection/components/input-otp/input-otp.js +7 -74
  373. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  374. package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
  375. package/dist/collection/components/item/item.ios.css +69 -109
  376. package/dist/collection/components/item/item.js +21 -56
  377. package/dist/collection/components/item/item.md.css +68 -120
  378. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  379. package/dist/collection/components/item-divider/item-divider.js +8 -11
  380. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  381. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  382. package/dist/collection/components/item-group/item-group.js +7 -13
  383. package/dist/collection/components/item-group/item-group.md.css +0 -12
  384. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  385. package/dist/collection/components/item-option/item-option.js +9 -73
  386. package/dist/collection/components/item-option/item-option.md.css +29 -136
  387. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  388. package/dist/collection/components/item-options/item-options.js +7 -13
  389. package/dist/collection/components/item-options/item-options.md.css +34 -77
  390. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  391. package/dist/collection/components/item-sliding/item-sliding.js +35 -421
  392. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  393. package/dist/collection/components/label/label.ios.css +0 -18
  394. package/dist/collection/components/label/label.js +8 -11
  395. package/dist/collection/components/label/label.md.css +0 -18
  396. package/dist/collection/components/list/list.ios.css +14 -54
  397. package/dist/collection/components/list/list.js +9 -48
  398. package/dist/collection/components/list/list.md.css +16 -56
  399. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  400. package/dist/collection/components/list-header/list-header.js +8 -11
  401. package/dist/collection/components/list-header/list-header.md.css +38 -82
  402. package/dist/collection/components/loading/loading.ios.css +1 -13
  403. package/dist/collection/components/loading/loading.js +16 -15
  404. package/dist/collection/components/loading/loading.md.css +1 -13
  405. package/dist/collection/components/menu/menu.ios.css +3 -15
  406. package/dist/collection/components/menu/menu.js +7 -12
  407. package/dist/collection/components/menu/menu.md.css +3 -15
  408. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  409. package/dist/collection/components/menu-button/menu-button.js +10 -26
  410. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  411. package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
  412. package/dist/collection/components/modal/animations/sheet.js +2 -8
  413. package/dist/collection/components/modal/gestures/sheet.js +10 -76
  414. package/dist/collection/components/modal/modal.ios.css +70 -178
  415. package/dist/collection/components/modal/modal.js +42 -60
  416. package/dist/collection/components/modal/modal.md.css +70 -178
  417. package/dist/collection/components/nav/nav.css +1 -7
  418. package/dist/collection/components/nav/nav.js +8 -229
  419. package/dist/collection/components/nav-link/nav-link.js +1 -5
  420. package/dist/collection/components/note/note.ios.css +0 -12
  421. package/dist/collection/components/note/note.js +8 -11
  422. package/dist/collection/components/note/note.md.css +0 -12
  423. package/dist/collection/components/picker/picker.ios.css +3 -15
  424. package/dist/collection/components/picker/picker.js +5 -8
  425. package/dist/collection/components/picker/picker.md.css +3 -15
  426. package/dist/collection/components/picker-column/picker-column.css +5 -9
  427. package/dist/collection/components/picker-column/picker-column.js +8 -16
  428. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  429. package/dist/collection/components/picker-column-option/picker-column-option.js +8 -21
  430. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -7
  431. package/dist/collection/components/popover/popover.ios.css +2 -15
  432. package/dist/collection/components/popover/popover.js +20 -19
  433. package/dist/collection/components/popover/popover.md.css +2 -15
  434. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  435. package/dist/collection/components/progress-bar/progress-bar.js +7 -43
  436. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  437. package/dist/collection/components/radio/radio.ios.css +91 -134
  438. package/dist/collection/components/radio/radio.js +10 -15
  439. package/dist/collection/components/radio/radio.md.css +91 -134
  440. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  441. package/dist/collection/components/radio-group/radio-group.js +7 -48
  442. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  443. package/dist/collection/components/range/range.ios.css +85 -128
  444. package/dist/collection/components/range/range.js +10 -16
  445. package/dist/collection/components/range/range.md.css +85 -128
  446. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  447. package/dist/collection/components/refresher/refresher.js +8 -11
  448. package/dist/collection/components/refresher/refresher.md.css +2 -15
  449. package/dist/collection/components/refresher-content/refresher-content.js +7 -28
  450. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  451. package/dist/collection/components/reorder/reorder.js +6 -33
  452. package/dist/collection/components/reorder/reorder.md.css +0 -6
  453. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  454. package/dist/collection/components/reorder-group/reorder-group.js +4 -8
  455. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  456. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
  457. package/dist/collection/components/route/route.js +1 -5
  458. package/dist/collection/components/router/router.js +0 -4
  459. package/dist/collection/components/router/utils/dom.js +22 -3
  460. package/dist/collection/components/router-link/router-link.css +2 -8
  461. package/dist/collection/components/router-link/router-link.js +5 -9
  462. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  463. package/dist/collection/components/router-outlet/router-outlet.js +40 -10
  464. package/dist/collection/components/row/row.css +0 -16
  465. package/dist/collection/components/row/row.js +2 -9
  466. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  467. package/dist/collection/components/searchbar/searchbar.js +38 -185
  468. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  469. package/dist/collection/components/segment/segment.ios.css +2 -45
  470. package/dist/collection/components/segment/segment.js +8 -11
  471. package/dist/collection/components/segment/segment.md.css +2 -45
  472. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  473. package/dist/collection/components/segment-button/segment-button.js +8 -11
  474. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  475. package/dist/collection/components/segment-content/segment-content.js +1 -1
  476. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  477. package/dist/collection/components/segment-view/segment-view.js +4 -13
  478. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  479. package/dist/collection/components/select/select.ios.css +177 -316
  480. package/dist/collection/components/select/select.js +110 -232
  481. package/dist/collection/components/select/select.md.css +179 -332
  482. package/dist/collection/components/select-modal/select-modal.ios.css +46 -295
  483. package/dist/collection/components/select-modal/select-modal.js +15 -58
  484. package/dist/collection/components/select-modal/select-modal.md.css +43 -274
  485. package/dist/collection/components/select-option/select-option.js +4 -8
  486. package/dist/collection/components/select-popover/select-popover.ios.css +125 -190
  487. package/dist/collection/components/select-popover/select-popover.js +9 -17
  488. package/dist/collection/components/select-popover/select-popover.md.css +48 -230
  489. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  490. package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
  491. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  492. package/dist/collection/components/spinner/spinner.js +6 -47
  493. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  494. package/dist/collection/components/split-pane/split-pane.js +8 -15
  495. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  496. package/dist/collection/components/tab/tab.js +2 -6
  497. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -86
  498. package/dist/collection/components/tab-bar/tab-bar.js +15 -179
  499. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -86
  500. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  501. package/dist/collection/components/tab-button/tab-button.js +9 -54
  502. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  503. package/dist/collection/components/tabs/tabs.css +1 -7
  504. package/dist/collection/components/tabs/tabs.js +1 -4
  505. package/dist/collection/components/text/text.css +0 -6
  506. package/dist/collection/components/text/text.js +6 -7
  507. package/dist/collection/components/textarea/textarea.ios.css +158 -298
  508. package/dist/collection/components/textarea/textarea.js +24 -162
  509. package/dist/collection/components/textarea/textarea.md.css +159 -312
  510. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  511. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  512. package/dist/collection/components/title/title.ios.css +4 -32
  513. package/dist/collection/components/title/title.js +7 -13
  514. package/dist/collection/components/title/title.md.css +4 -39
  515. package/dist/collection/components/toast/animations/utils.js +1 -1
  516. package/dist/collection/components/toast/toast.ios.css +45 -84
  517. package/dist/collection/components/toast/toast.js +13 -76
  518. package/dist/collection/components/toast/toast.md.css +45 -84
  519. package/dist/collection/components/toggle/toggle.ios.css +131 -247
  520. package/dist/collection/components/toggle/toggle.js +18 -73
  521. package/dist/collection/components/toggle/toggle.md.css +131 -244
  522. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  523. package/dist/collection/components/toolbar/toolbar.js +13 -218
  524. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  525. package/dist/collection/global/ionic-global.js +13 -241
  526. package/dist/collection/index.js +1 -1
  527. package/dist/collection/utils/focus-trap.js +2 -13
  528. package/dist/collection/utils/focus-visible.js +0 -22
  529. package/dist/collection/utils/forms/validity.js +0 -31
  530. package/dist/collection/utils/framework-delegate.js +1 -3
  531. package/dist/collection/utils/hardware-back-button.js +0 -15
  532. package/dist/collection/utils/helpers.js +3 -70
  533. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
  534. package/dist/collection/utils/media.js +0 -1
  535. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  536. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  537. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  538. package/dist/collection/utils/overlay-control-label.js +11 -13
  539. package/dist/collection/utils/overlays.js +32 -295
  540. package/dist/collection/utils/platform.js +2 -2
  541. package/dist/collection/utils/test/playwright/drag-element.js +9 -32
  542. package/dist/collection/utils/test/playwright/generator.js +23 -48
  543. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
  544. package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
  545. package/dist/collection/utils/theme.js +1 -25
  546. package/dist/collection/utils/transition/ios.transition.js +0 -1
  547. package/dist/docs.json +502 -10022
  548. package/dist/esm/{animation-B2qdQ_ou.js → animation-DLJpuoEz.js} +2 -2
  549. package/dist/esm/{app-globals-DZ-iIjxA.js → app-globals-DNgPBV1i.js} +1 -1
  550. package/dist/esm/{button-active-BmajAby6.js → button-active-BSpTQmS9.js} +2 -2
  551. package/dist/esm/{capacitor-CtQSWUU0.js → capacitor-CFERIeaU.js} +1 -1
  552. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  553. package/dist/esm/{format-2WlZcMvG.js → format-CAmvpAez.js} +1 -1
  554. package/dist/esm/{framework-delegate-DO2QXccA.js → framework-delegate-FnPGymXL.js} +2 -4
  555. package/dist/esm/{haptic-DFgKNCce.js → haptic-DzAMWJuk.js} +1 -1
  556. package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
  557. package/dist/esm/{helpers-DfF5_wJc.js → helpers-HEqiOzXb.js} +5 -71
  558. package/dist/esm/{index-Di034G4O.js → index-0f4UTH6Z.js} +11 -11
  559. package/dist/esm/{index-BjaaZqVY.js → index-BRHzoo00.js} +3 -4
  560. package/dist/esm/{index-BIUWGRUl.js → index-B_dQk_WE.js} +4 -4
  561. package/dist/esm/{index-D2tu5BUg.js → index-BvabGprD.js} +2 -3
  562. package/dist/esm/{index-Mq5pCWmZ.js → index-DQSkZyOJ.js} +1 -1
  563. package/dist/esm/{index-KxK0gcRp.js → index-MEDq2S8l.js} +2 -2
  564. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  565. package/dist/esm/{index-C0EQceqV.js → index-tcQvqkiX.js} +4 -41
  566. package/dist/esm/index.js +14 -13
  567. package/dist/esm/{input-shims-DvNNw70a.js → input-shims-D10mwcw1.js} +6 -7
  568. package/dist/esm/{input.utils-_LkBfBWt.js → input.utils-Y6NgW8bw.js} +3 -3
  569. package/dist/esm/ion-accordion_2.entry.js +29 -61
  570. package/dist/esm/ion-action-sheet.entry.js +28 -27
  571. package/dist/esm/ion-alert.entry.js +34 -32
  572. package/dist/esm/ion-app_8.entry.js +211 -461
  573. package/dist/esm/ion-avatar_3.entry.js +13 -125
  574. package/dist/esm/ion-back-button.entry.js +22 -31
  575. package/dist/esm/ion-backdrop.entry.js +7 -10
  576. package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
  577. package/dist/esm/ion-button_2.entry.js +24 -61
  578. package/dist/esm/ion-card_5.entry.js +33 -55
  579. package/dist/esm/ion-checkbox.entry.js +17 -37
  580. package/dist/esm/ion-chip.entry.js +9 -50
  581. package/dist/esm/ion-col_3.entry.js +57 -56
  582. package/dist/esm/ion-datetime-button.entry.js +11 -21
  583. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +42 -759
  584. package/dist/esm/ion-fab_3.entry.js +28 -44
  585. package/dist/esm/ion-img.entry.js +6 -8
  586. package/dist/esm/ion-infinite-scroll_2.entry.js +16 -91
  587. package/dist/esm/ion-input-otp.entry.js +9 -74
  588. package/dist/esm/ion-input-password-toggle.entry.js +15 -53
  589. package/dist/esm/ion-input.entry.js +35 -125
  590. package/dist/esm/ion-item-option_3.entry.js +52 -467
  591. package/dist/esm/ion-item_8.entry.js +50 -121
  592. package/dist/esm/ion-loading.entry.js +22 -20
  593. package/dist/esm/ion-menu_3.entry.js +29 -47
  594. package/dist/esm/ion-modal.entry.js +118 -222
  595. package/dist/esm/ion-nav_2.entry.js +12 -128
  596. package/dist/esm/ion-picker-column-option.entry.js +9 -19
  597. package/dist/esm/ion-picker-column.entry.js +13 -19
  598. package/dist/esm/ion-picker.entry.js +6 -10
  599. package/dist/esm/ion-popover.entry.js +23 -21
  600. package/dist/esm/ion-progress-bar.entry.js +9 -27
  601. package/dist/esm/ion-radio_2.entry.js +17 -35
  602. package/dist/esm/ion-range.entry.js +13 -20
  603. package/dist/esm/ion-refresher_2.entry.js +21 -39
  604. package/dist/esm/ion-reorder_2.entry.js +14 -38
  605. package/dist/esm/ion-ripple-effect.entry.js +7 -15
  606. package/dist/esm/ion-route_4.entry.js +26 -13
  607. package/dist/esm/ion-searchbar.entry.js +25 -138
  608. package/dist/esm/ion-segment-content.entry.js +2 -2
  609. package/dist/esm/ion-segment-view.entry.js +3 -13
  610. package/dist/esm/ion-segment_2.entry.js +16 -23
  611. package/dist/esm/ion-select-modal.entry.js +26 -48
  612. package/dist/esm/ion-select_3.entry.js +109 -200
  613. package/dist/esm/ion-spinner.entry.js +8 -30
  614. package/dist/esm/ion-split-pane.entry.js +9 -13
  615. package/dist/esm/ion-tab-bar_2.entry.js +27 -149
  616. package/dist/esm/ion-tab_2.entry.js +7 -8
  617. package/dist/esm/ion-text.entry.js +7 -7
  618. package/dist/esm/ion-textarea.entry.js +23 -137
  619. package/dist/esm/ion-toast.entry.js +21 -44
  620. package/dist/esm/ion-toggle.entry.js +25 -82
  621. package/dist/esm/ionic-global-pMW1XhFZ.js +146 -0
  622. package/dist/esm/ionic.js +5 -5
  623. package/dist/esm/{ios.transition-CgScDbsb.js → ios.transition-ClFrsIrS.js} +5 -7
  624. package/dist/esm/{keyboard-CyyguLDw.js → keyboard-CUw4ekVy.js} +1 -1
  625. package/dist/esm/keyboard-controller-BaaVITYt.js +165 -0
  626. package/dist/esm/{keyboard-WJix-wcz.js → keyboard-ywgs5efA.js} +3 -4
  627. package/dist/esm/loader.js +5 -5
  628. package/dist/esm/{md.transition-DThqYazt.js → md.transition-D0msQmzI.js} +5 -6
  629. package/dist/esm/{notch-controller-MTblRxjD.js → notch-controller-DKDjU_O7.js} +2 -2
  630. package/dist/esm/{overlay-control-label-CODBQrPj.js → overlay-control-label-BSQPZ79H.js} +11 -13
  631. package/dist/esm/{overlays-tv6nLsmk.js → overlays-Cx65ihix.js} +40 -312
  632. package/dist/esm/{select-option-render-BlKZ2H83.js → select-option-render-B8nWZRnd.js} +2 -2
  633. package/dist/esm/{status-tap-CoPI1M2q.js → status-tap-Kan2W7sh.js} +3 -4
  634. package/dist/esm/{swipe-back-qmvTRnSq.js → swipe-back-DQ1q5MgD.js} +2 -3
  635. package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
  636. package/dist/esm/validity-DJztqcrH.js +17 -0
  637. package/dist/html.html-data.json +146 -2713
  638. package/dist/ionic/index.esm.js +1 -1
  639. package/dist/ionic/ionic.esm.js +1 -1
  640. package/dist/ionic/p-0baa0557.entry.js +4 -0
  641. package/dist/ionic/p-0bb0c363.entry.js +4 -0
  642. package/dist/ionic/p-0be097d7.entry.js +4 -0
  643. package/dist/ionic/p-0e7de053.entry.js +4 -0
  644. package/dist/ionic/p-2967f939.entry.js +4 -0
  645. package/dist/ionic/p-306b2e91.entry.js +4 -0
  646. package/dist/ionic/p-341032b3.entry.js +4 -0
  647. package/dist/ionic/p-345e3384.entry.js +4 -0
  648. package/dist/ionic/p-34c8f2dc.entry.js +4 -0
  649. package/dist/ionic/p-3ce3a59d.entry.js +4 -0
  650. package/dist/ionic/p-426130ad.entry.js +4 -0
  651. package/dist/ionic/p-4cad6a3e.entry.js +4 -0
  652. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  653. package/dist/ionic/p-5520a019.entry.js +4 -0
  654. package/dist/ionic/p-5599e1e1.entry.js +4 -0
  655. package/dist/ionic/p-63c71314.entry.js +4 -0
  656. package/dist/ionic/p-656e8181.entry.js +4 -0
  657. package/dist/ionic/p-694aa5fc.entry.js +4 -0
  658. package/dist/ionic/p-73d06afe.entry.js +4 -0
  659. package/dist/ionic/p-7cb5cf53.entry.js +4 -0
  660. package/dist/ionic/p-7d8a1978.entry.js +4 -0
  661. package/dist/ionic/p-80b44b3c.entry.js +4 -0
  662. package/dist/ionic/p-89c9c057.entry.js +4 -0
  663. package/dist/ionic/p-8c898f59.entry.js +4 -0
  664. package/dist/ionic/p-8d6cca7b.entry.js +4 -0
  665. package/dist/ionic/p-8f6862d1.entry.js +4 -0
  666. package/dist/ionic/p-907d4f18.entry.js +4 -0
  667. package/dist/ionic/p-9366f06d.entry.js +4 -0
  668. package/dist/ionic/p-99aac476.entry.js +4 -0
  669. package/dist/ionic/p-9a29ba8c.entry.js +4 -0
  670. package/dist/ionic/p-9eeaBrnk.js +4 -0
  671. package/dist/ionic/{p--sroV-k-.js → p-BDtODLZ4.js} +1 -1
  672. package/dist/ionic/p-BGqMS-oh.js +4 -0
  673. package/dist/ionic/p-BSQPZ79H.js +4 -0
  674. package/dist/ionic/p-BUFIpxKM.js +4 -0
  675. package/dist/ionic/p-BmVRXR1y.js +4 -0
  676. package/dist/ionic/p-BvabGprD.js +4 -0
  677. package/dist/ionic/{p-7k7Q1A38.js → p-C0eMdTCW.js} +1 -1
  678. package/dist/ionic/p-CFlfIb2g.js +4 -0
  679. package/dist/ionic/p-CGqbOURp.js +4 -0
  680. package/dist/ionic/p-CIGNaXM1.js +4 -0
  681. package/dist/ionic/{p-OkgYzj-7.js → p-CKvCXMs9.js} +1 -1
  682. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  683. package/dist/ionic/p-Cx3IXROA.js +4 -0
  684. package/dist/ionic/{p-DQDmksdT.js → p-D13Eaw-8.js} +1 -1
  685. package/dist/ionic/p-D4uTWt4-.js +4 -0
  686. package/dist/ionic/p-D9iu80E_.js +4 -0
  687. package/dist/ionic/p-DC3RagnA.js +4 -0
  688. package/dist/ionic/p-DCOvXkOm.js +4 -0
  689. package/dist/ionic/p-DIuEbVLu.js +4 -0
  690. package/dist/ionic/p-DJztqcrH.js +4 -0
  691. package/dist/ionic/p-DSG2s2Eb.js +4 -0
  692. package/dist/ionic/p-DeSfrUWZ.js +4 -0
  693. package/dist/ionic/p-Dfbt-q2k.js +4 -0
  694. package/dist/ionic/p-DiVJyqlX.js +4 -0
  695. package/dist/ionic/p-DoJvtrbw.js +4 -0
  696. package/dist/ionic/p-DzTgLDb_.js +4 -0
  697. package/{components/p-DmVUl5t4.js → dist/ionic/p-VAemlbDS.js} +1 -1
  698. package/dist/ionic/{p-oUgyLDGL.js → p-Wk5HzclC.js} +1 -1
  699. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  700. package/dist/ionic/p-a1448991.entry.js +4 -0
  701. package/dist/ionic/p-a256aeb6.entry.js +4 -0
  702. package/dist/ionic/p-aeff523a.entry.js +4 -0
  703. package/dist/ionic/p-b758be3c.entry.js +4 -0
  704. package/dist/ionic/p-b7737b44.entry.js +4 -0
  705. package/dist/ionic/p-ba99d16b.entry.js +4 -0
  706. package/dist/ionic/p-c3563965.entry.js +4 -0
  707. package/dist/ionic/p-cdfe2531.entry.js +4 -0
  708. package/dist/ionic/p-cf1fb54f.entry.js +4 -0
  709. package/dist/ionic/p-d183a4ba.entry.js +4 -0
  710. package/dist/ionic/p-d3089de6.entry.js +4 -0
  711. package/dist/ionic/p-d4844d9e.entry.js +4 -0
  712. package/dist/ionic/p-dc46ac10.entry.js +4 -0
  713. package/dist/ionic/p-e3842b54.entry.js +4 -0
  714. package/dist/ionic/p-e56b1836.entry.js +4 -0
  715. package/dist/ionic/p-f09f9642.entry.js +4 -0
  716. package/dist/ionic/p-f44a99c8.entry.js +4 -0
  717. package/dist/ionic/p-f49558ca.entry.js +4 -0
  718. package/dist/ionic/p-f5b1f739.entry.js +4 -0
  719. package/dist/ionic/p-f88310b9.entry.js +4 -0
  720. package/dist/ionic/p-fd1438bf.entry.js +4 -0
  721. package/dist/ionic/p-fd4e56cd.entry.js +4 -0
  722. package/dist/ionic/p-mjKAFv89.js +4 -0
  723. package/dist/ionic/p-tcQvqkiX.js +5 -0
  724. package/dist/ionic/p-viFHDgRs.js +4 -0
  725. package/dist/ionic/p-xWb6fgfq.js +4 -0
  726. package/dist/types/components/accordion/accordion.d.ts +3 -6
  727. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  728. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  729. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  730. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  731. package/dist/types/components/alert/alert.d.ts +2 -3
  732. package/dist/types/components/app/app.d.ts +5 -4
  733. package/dist/types/components/avatar/avatar.d.ts +0 -32
  734. package/dist/types/components/back-button/back-button.d.ts +1 -2
  735. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  736. package/dist/types/components/badge/badge.d.ts +1 -34
  737. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  738. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  739. package/dist/types/components/button/button.d.ts +8 -23
  740. package/dist/types/components/buttons/buttons.d.ts +1 -5
  741. package/dist/types/components/card/card.d.ts +1 -8
  742. package/dist/types/components/card-content/card-content.d.ts +1 -2
  743. package/dist/types/components/card-header/card-header.d.ts +2 -3
  744. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  745. package/dist/types/components/card-title/card-title.d.ts +1 -2
  746. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  747. package/dist/types/components/chip/chip.d.ts +1 -26
  748. package/dist/types/components/col/col.d.ts +5 -52
  749. package/dist/types/components/content/content.d.ts +0 -3
  750. package/dist/types/components/datetime/datetime.d.ts +1 -26
  751. package/dist/types/components/datetime/utils/data.d.ts +5 -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 -5
  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 +1 -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 +6 -32
  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 -2
  766. package/dist/types/components/item/item.d.ts +4 -11
  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 -3
  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 +12 -15
  784. package/dist/types/components/nav/nav-interface.d.ts +1 -10
  785. package/dist/types/components/nav/nav.d.ts +3 -27
  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 -4
  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 +1 -5
  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 +8 -4
  806. package/dist/types/components/row/row.d.ts +0 -4
  807. package/dist/types/components/searchbar/searchbar.d.ts +10 -52
  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 +14 -49
  811. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  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 +4 -53
  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 -15
  830. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  831. package/dist/types/components.d.ts +263 -2171
  832. package/dist/types/global/ionic-global.d.ts +2 -28
  833. package/dist/types/index.d.ts +1 -1
  834. package/dist/types/interface.d.ts +0 -4
  835. package/dist/types/utils/config.d.ts +2 -114
  836. package/dist/types/utils/focus-trap.d.ts +1 -1
  837. package/dist/types/utils/focus-visible.d.ts +0 -13
  838. package/dist/types/utils/forms/validity.d.ts +0 -7
  839. package/dist/types/utils/helpers.d.ts +0 -22
  840. package/dist/types/utils/overlay-control-label.d.ts +9 -11
  841. package/dist/types/utils/overlays-interface.d.ts +1 -31
  842. package/dist/types/utils/overlays.d.ts +12 -10
  843. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  844. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  845. package/dist/types/utils/theme.d.ts +0 -9
  846. package/hydrate/index.js +1373 -6187
  847. package/hydrate/index.mjs +1373 -6187
  848. package/package.json +41 -13
  849. package/components/ion-divider.d.ts +0 -11
  850. package/components/ion-divider.js +0 -4
  851. package/components/ion-gallery-item.d.ts +0 -11
  852. package/components/ion-gallery-item.js +0 -4
  853. package/components/ion-gallery.d.ts +0 -11
  854. package/components/ion-gallery.js +0 -4
  855. package/components/ion-picker-legacy-column.d.ts +0 -11
  856. package/components/ion-picker-legacy-column.js +0 -4
  857. package/components/ion-picker-legacy.d.ts +0 -11
  858. package/components/ion-picker-legacy.js +0 -4
  859. package/components/p-0RwSa3tV.js +0 -4
  860. package/components/p-4u9RNymb.js +0 -4
  861. package/components/p-B8xhFBOE.js +0 -4
  862. package/components/p-BAnNwWMA.js +0 -4
  863. package/components/p-BDqjX7Z_.js +0 -4
  864. package/components/p-BI03N_8J.js +0 -4
  865. package/components/p-BISCDmUD.js +0 -4
  866. package/components/p-BLlJA2Q9.js +0 -4
  867. package/components/p-BYSs-jZz.js +0 -4
  868. package/components/p-BYZR_5L4.js +0 -4
  869. package/components/p-B_zaqq5F.js +0 -4
  870. package/components/p-BaPtaYEC.js +0 -4
  871. package/components/p-BiG3Zevl.js +0 -4
  872. package/components/p-BjW8SOqw.js +0 -4
  873. package/components/p-BoWc8hp0.js +0 -4
  874. package/components/p-BqRIq3ti.js +0 -4
  875. package/components/p-BskJOMNV.js +0 -4
  876. package/components/p-C4q_m_U_.js +0 -4
  877. package/components/p-C9QYu-sR.js +0 -4
  878. package/components/p-CEbQglhY.js +0 -4
  879. package/components/p-CGwI_XL6.js +0 -4
  880. package/components/p-CIdlZzoM.js +0 -4
  881. package/components/p-CO9VfZyc.js +0 -4
  882. package/components/p-CODBQrPj.js +0 -4
  883. package/components/p-CWq1hA4y.js +0 -4
  884. package/components/p-CeL9Glto.js +0 -4
  885. package/components/p-Cjx0xPoU.js +0 -4
  886. package/components/p-Cl94E1nn.js +0 -4
  887. package/components/p-Cog60JgJ.js +0 -4
  888. package/components/p-CyGaZ-Qb.js +0 -4
  889. package/components/p-CyWeCU8e.js +0 -4
  890. package/components/p-CzFNvOq3.js +0 -4
  891. package/components/p-Czw29-II.js +0 -4
  892. package/components/p-D0Iqw6OZ.js +0 -4
  893. package/components/p-D1t981Ih.js +0 -4
  894. package/components/p-D4UIY4kz.js +0 -4
  895. package/components/p-D6un2jDV.js +0 -4
  896. package/components/p-D9583Eo8.js +0 -4
  897. package/components/p-DABI8XVx.js +0 -4
  898. package/components/p-DEZQwbtZ.js +0 -4
  899. package/components/p-DEnOtJ3m.js +0 -4
  900. package/components/p-DJw3WM2A.js +0 -4
  901. package/components/p-DRnK3A-V.js +0 -4
  902. package/components/p-DS1w_1X1.js +0 -4
  903. package/components/p-DaJxRxSQ.js +0 -4
  904. package/components/p-Daj5LWIm.js +0 -4
  905. package/components/p-DcVqGRkT.js +0 -4
  906. package/components/p-Dg8OSVcP.js +0 -4
  907. package/components/p-Dght1fh7.js +0 -4
  908. package/components/p-Dhi5xtNS.js +0 -4
  909. package/components/p-Dn77l_LX.js +0 -4
  910. package/components/p-GpxJMpJu.js +0 -4
  911. package/components/p-I0lsm6wZ.js +0 -4
  912. package/components/p-TaMIMwf5.js +0 -4
  913. package/components/p-ZWbVyMi6.js +0 -4
  914. package/components/p-_rgGxkzx.js +0 -4
  915. package/components/p-fIOYmaqA.js +0 -4
  916. package/components/p-vXpMhGrs.js +0 -4
  917. package/css/ionic/bundle.ionic.css +0 -1
  918. package/css/ionic/bundle.ionic.css.map +0 -1
  919. package/css/ionic/core.ionic.css +0 -1
  920. package/css/ionic/core.ionic.css.map +0 -1
  921. package/css/ionic/global.bundle.ionic.css +0 -1
  922. package/css/ionic/global.bundle.ionic.css.map +0 -1
  923. package/css/ionic/ionic-swiper.ionic.css +0 -1
  924. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  925. package/css/ionic/link.ionic.css +0 -1
  926. package/css/ionic/link.ionic.css.map +0 -1
  927. package/css/ionic/structure.ionic.css +0 -1
  928. package/css/ionic/structure.ionic.css.map +0 -1
  929. package/css/ionic/typography.ionic.css +0 -1
  930. package/css/ionic/typography.ionic.css.map +0 -1
  931. package/css/ionic/utils.bundle.ionic.css +0 -1
  932. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  933. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  934. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  935. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  936. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  937. package/dist/cjs/ion-gallery-item.cjs.entry.js +0 -59
  938. package/dist/cjs/ion-gallery.cjs.entry.js +0 -607
  939. package/dist/cjs/ionic-global-QoUqobrQ.js +0 -519
  940. package/dist/cjs/list-a-7GSA6K.js +0 -8
  941. package/dist/cjs/scroll-hide-controller-G9HOmmhN.js +0 -345
  942. package/dist/cjs/validity-QmuwEptc.js +0 -51
  943. package/dist/cjs/x-BTF99yFH.js +0 -8
  944. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  945. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  946. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -491
  947. package/dist/collection/components/alert/alert.ionic.css +0 -784
  948. package/dist/collection/components/avatar/avatar.ionic.css +0 -391
  949. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  950. package/dist/collection/components/badge/badge.ionic.css +0 -275
  951. package/dist/collection/components/button/button.ionic.css +0 -646
  952. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  953. package/dist/collection/components/card/card.ionic.css +0 -144
  954. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  955. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  956. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  957. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -543
  958. package/dist/collection/components/chip/chip.ionic.css +0 -217
  959. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  960. package/dist/collection/components/divider/divider.ionic.css +0 -148
  961. package/dist/collection/components/divider/divider.ios.css +0 -87
  962. package/dist/collection/components/divider/divider.js +0 -94
  963. package/dist/collection/components/divider/divider.md.css +0 -87
  964. package/dist/collection/components/footer/footer-interface.js +0 -1
  965. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  966. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  967. package/dist/collection/components/gallery/gallery.css +0 -15
  968. package/dist/collection/components/gallery/gallery.js +0 -679
  969. package/dist/collection/components/gallery/test/utils.js +0 -100
  970. package/dist/collection/components/gallery-item/gallery-item.css +0 -49
  971. package/dist/collection/components/gallery-item/gallery-item.js +0 -99
  972. package/dist/collection/components/header/header-interface.js +0 -1
  973. package/dist/collection/components/header/header.ionic.css +0 -250
  974. package/dist/collection/components/input/input.ionic.css +0 -889
  975. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  976. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  977. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  978. package/dist/collection/components/item/item.ionic.css +0 -496
  979. package/dist/collection/components/item-option/item-option.ionic.css +0 -278
  980. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  981. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  982. package/dist/collection/components/list/list.ionic.css +0 -212
  983. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  984. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  985. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  986. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  987. package/dist/collection/components/modal/modal.ionic.css +0 -255
  988. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  989. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  990. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  991. package/dist/collection/components/picker-legacy/picker.ios.css +0 -312
  992. package/dist/collection/components/picker-legacy/picker.js +0 -891
  993. package/dist/collection/components/picker-legacy/picker.md.css +0 -299
  994. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
  995. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  996. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
  997. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  998. package/dist/collection/components/popover/popover.ionic.css +0 -290
  999. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  1000. package/dist/collection/components/radio/radio.ionic.css +0 -422
  1001. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  1002. package/dist/collection/components/range/range.ionic.css +0 -567
  1003. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  1004. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -626
  1005. package/dist/collection/components/segment/segment.ionic.css +0 -115
  1006. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -353
  1007. package/dist/collection/components/select/select.ionic.css +0 -810
  1008. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -254
  1009. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -252
  1010. package/dist/collection/components/spinner/spinner.native.css +0 -199
  1011. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -249
  1012. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -374
  1013. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  1014. package/dist/collection/components/title/title.ionic.css +0 -127
  1015. package/dist/collection/components/toast/toast.ionic.css +0 -394
  1016. package/dist/collection/components/toggle/toggle.ionic.css +0 -508
  1017. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1018. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1019. package/dist/collection/utils/css-value-validation.js +0 -39
  1020. package/dist/collection/utils/scroll-hide-controller.js +0 -178
  1021. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1022. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1023. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1024. package/dist/esm/ion-divider.entry.js +0 -49
  1025. package/dist/esm/ion-gallery-item.entry.js +0 -57
  1026. package/dist/esm/ion-gallery.entry.js +0 -605
  1027. package/dist/esm/ionic-global-BpkTponr.js +0 -508
  1028. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1029. package/dist/esm/scroll-hide-controller-CUNW7EpD.js +0 -342
  1030. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1031. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1032. package/dist/ionic/p-05ce9821.entry.js +0 -4
  1033. package/dist/ionic/p-07bd8446.entry.js +0 -4
  1034. package/dist/ionic/p-085b8cdf.entry.js +0 -4
  1035. package/dist/ionic/p-0ef6bfc4.entry.js +0 -4
  1036. package/dist/ionic/p-103e1d9f.entry.js +0 -4
  1037. package/dist/ionic/p-18bc4f2d.entry.js +0 -4
  1038. package/dist/ionic/p-1b6e3914.entry.js +0 -4
  1039. package/dist/ionic/p-248265c2.entry.js +0 -4
  1040. package/dist/ionic/p-25b51635.entry.js +0 -4
  1041. package/dist/ionic/p-2740db6e.entry.js +0 -4
  1042. package/dist/ionic/p-274a829d.entry.js +0 -4
  1043. package/dist/ionic/p-2a1abbb1.entry.js +0 -4
  1044. package/dist/ionic/p-3b4c5cb5.entry.js +0 -4
  1045. package/dist/ionic/p-3bc5b5e9.entry.js +0 -4
  1046. package/dist/ionic/p-3cfb4ff2.entry.js +0 -4
  1047. package/dist/ionic/p-41afaf15.entry.js +0 -4
  1048. package/dist/ionic/p-43b00c5b.entry.js +0 -4
  1049. package/dist/ionic/p-507dbb1c.entry.js +0 -4
  1050. package/dist/ionic/p-56224b93.entry.js +0 -4
  1051. package/dist/ionic/p-5732396e.entry.js +0 -4
  1052. package/dist/ionic/p-58d8877d.entry.js +0 -4
  1053. package/dist/ionic/p-5d079dc1.entry.js +0 -4
  1054. package/dist/ionic/p-5e9665dd.entry.js +0 -4
  1055. package/dist/ionic/p-5fee5cc1.entry.js +0 -4
  1056. package/dist/ionic/p-602cf876.entry.js +0 -4
  1057. package/dist/ionic/p-64734604.entry.js +0 -4
  1058. package/dist/ionic/p-678ee14a.entry.js +0 -4
  1059. package/dist/ionic/p-68ea8ed1.entry.js +0 -4
  1060. package/dist/ionic/p-69feeff9.entry.js +0 -4
  1061. package/dist/ionic/p-6e1ec775.entry.js +0 -4
  1062. package/dist/ionic/p-745d6b2b.entry.js +0 -4
  1063. package/dist/ionic/p-83acfa2d.entry.js +0 -4
  1064. package/dist/ionic/p-849b1759.entry.js +0 -4
  1065. package/dist/ionic/p-86f040e0.entry.js +0 -4
  1066. package/dist/ionic/p-89fedfda.entry.js +0 -4
  1067. package/dist/ionic/p-8cb23f27.entry.js +0 -4
  1068. package/dist/ionic/p-8d5fd199.entry.js +0 -4
  1069. package/dist/ionic/p-BDSH5ckF.js +0 -4
  1070. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1071. package/dist/ionic/p-BFy_BK46.js +0 -4
  1072. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1073. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1074. package/dist/ionic/p-Bq8S4vhI.js +0 -4
  1075. package/dist/ionic/p-C0EQceqV.js +0 -5
  1076. package/dist/ionic/p-C1I_d964.js +0 -4
  1077. package/dist/ionic/p-CB91Gr9M.js +0 -4
  1078. package/dist/ionic/p-CEkwLb3L.js +0 -4
  1079. package/dist/ionic/p-CJsJQPQD.js +0 -4
  1080. package/dist/ionic/p-CODBQrPj.js +0 -4
  1081. package/dist/ionic/p-Ch7MBNn_.js +0 -4
  1082. package/dist/ionic/p-CnAWnbNK.js +0 -4
  1083. package/dist/ionic/p-D1t981Ih.js +0 -4
  1084. package/dist/ionic/p-D2tu5BUg.js +0 -4
  1085. package/dist/ionic/p-D4MT1z4_.js +0 -4
  1086. package/dist/ionic/p-D4veLKCq.js +0 -4
  1087. package/dist/ionic/p-DF7ubVci.js +0 -4
  1088. package/dist/ionic/p-DMaSfupH.js +0 -4
  1089. package/dist/ionic/p-DTsDGZPd.js +0 -4
  1090. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1091. package/dist/ionic/p-DdCaKRle.js +0 -4
  1092. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1093. package/dist/ionic/p-Dy243NXW.js +0 -4
  1094. package/dist/ionic/p-YIsE5bNG.js +0 -4
  1095. package/dist/ionic/p-b97778f5.entry.js +0 -4
  1096. package/dist/ionic/p-be9db7e8.entry.js +0 -4
  1097. package/dist/ionic/p-c04429f2.entry.js +0 -4
  1098. package/dist/ionic/p-c25a2a9b.entry.js +0 -4
  1099. package/dist/ionic/p-c76d57fb.entry.js +0 -4
  1100. package/dist/ionic/p-ca3a07b5.entry.js +0 -4
  1101. package/dist/ionic/p-ced3cda1.entry.js +0 -4
  1102. package/dist/ionic/p-cf22e991.entry.js +0 -4
  1103. package/dist/ionic/p-d0c1d21d.entry.js +0 -4
  1104. package/dist/ionic/p-d0d42da6.entry.js +0 -4
  1105. package/dist/ionic/p-d272ff4f.entry.js +0 -4
  1106. package/dist/ionic/p-d33dfc12.entry.js +0 -4
  1107. package/dist/ionic/p-d34bfb61.entry.js +0 -4
  1108. package/dist/ionic/p-ddde8df3.entry.js +0 -4
  1109. package/dist/ionic/p-df642ef5.entry.js +0 -4
  1110. package/dist/ionic/p-e04d63e1.entry.js +0 -4
  1111. package/dist/ionic/p-f8001f8f.entry.js +0 -4
  1112. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1113. package/dist/ionic/p-fc6d26ff.entry.js +0 -4
  1114. package/dist/ionic/p-im8OkZlj.js +0 -4
  1115. package/dist/ionic/p-lMb_45ax.js +0 -4
  1116. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1117. package/dist/types/components/divider/divider.d.ts +0 -20
  1118. package/dist/types/components/footer/footer-interface.d.ts +0 -1
  1119. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1120. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1121. package/dist/types/components/gallery/gallery.d.ts +0 -218
  1122. package/dist/types/components/gallery/test/utils.d.ts +0 -3
  1123. package/dist/types/components/gallery-item/gallery-item.d.ts +0 -33
  1124. package/dist/types/components/header/header-interface.d.ts +0 -1
  1125. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1126. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1127. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  1128. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  1129. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  1130. package/dist/types/components/picker-legacy/picker.d.ts +0 -159
  1131. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  1132. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  1133. package/dist/types/utils/css-value-validation.d.ts +0 -21
  1134. package/dist/types/utils/scroll-hide-controller.d.ts +0 -56
  1135. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -1,20 +1,21 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, e as config, d as Host, g as getElement, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, f as printIonWarning, j as printIonError } from './index-C0EQceqV.js';
5
- import { focusElements } from './focus-visible-vXpMhGrs.js';
6
- import { c as getIonTheme, a as isPlatform, b as getIonMode } from './ionic-global-BpkTponr.js';
7
- import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-DfF5_wJc.js';
4
+ import { r as registerInstance, e as config, f as printIonWarning, h, d as Host, g as getElement, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, j as printIonError } from './index-tcQvqkiX.js';
5
+ import { shouldUseCloseWatcher } from './hardware-back-button-B93Gru0Y.js';
6
+ import { a as isPlatform, b as getIonMode } from './ionic-global-pMW1XhFZ.js';
7
+ import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-HEqiOzXb.js';
8
8
  import { i as isRTL } from './dir-C53feagD.js';
9
- import { c as createColorClasses, h as hostContext } from './theme-DaJxRxSQ.js';
10
- import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-KxK0gcRp.js';
11
- import { c as createScrollHideController, a as createKeyboardController } from './scroll-hide-controller-CUNW7EpD.js';
9
+ import { c as createColorClasses, h as hostContext } from './theme-DiVJyqlX.js';
10
+ import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-MEDq2S8l.js';
11
+ import { c as createKeyboardController } from './keyboard-controller-BaaVITYt.js';
12
12
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
13
- import { a as attachComponent, d as detachComponent } from './framework-delegate-DO2QXccA.js';
13
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-FnPGymXL.js';
14
14
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
15
- import { t as transition } from './index-BIUWGRUl.js';
16
- import './keyboard-CyyguLDw.js';
17
- import './capacitor-CtQSWUU0.js';
15
+ import { t as transition } from './index-B_dQk_WE.js';
16
+ import './index-ZjP4CjeZ.js';
17
+ import './keyboard-CUw4ekVy.js';
18
+ import './capacitor-CFERIeaU.js';
18
19
 
19
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}`;
20
21
 
@@ -22,6 +23,51 @@ const App = class {
22
23
  constructor(hostRef) {
23
24
  registerInstance(this, hostRef);
24
25
  }
26
+ componentDidLoad() {
27
+ {
28
+ this.rIC(async () => {
29
+ const isHybrid = isPlatform(window, 'hybrid');
30
+ if (!config.getBoolean('_testing')) {
31
+ import('./index-BRHzoo00.js').then((module) => module.startTapClick(config));
32
+ }
33
+ if (config.getBoolean('statusTap', isHybrid)) {
34
+ import('./status-tap-Kan2W7sh.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-D10mwcw1.js').then((module) => module.startInputShims(config, platform));
43
+ }
44
+ const hardwareBackButtonModule = await import('./hardware-back-button-B93Gru0Y.js');
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-ywgs5efA.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
+ }
25
71
  /**
26
72
  * Used to set focus on an element that uses `ion-focusable`.
27
73
  * Do not use this if focusing the element as a result of a keyboard
@@ -34,29 +80,52 @@ const App = class {
34
80
  * @param elements An array of HTML elements to set focus on.
35
81
  */
36
82
  async setFocus(elements) {
37
- /**
38
- * The focus-visible utility is used to set focus on an
39
- * element that uses `ion-focusable`.
40
- */
41
- 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
+ }
42
94
  }
43
95
  render() {
44
- const theme = getIonTheme(this);
45
- return (h(Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
46
- [theme]: true,
96
+ const mode = getIonMode(this);
97
+ return (h(Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
98
+ [mode]: true,
47
99
  'ion-page': true,
48
100
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
49
101
  } }));
50
102
  }
51
103
  get el() { return getElement(this); }
52
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
+ };
53
124
  App.style = appCss();
54
125
 
55
- const buttonsIonicCss = () => `.sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-600, 1.5rem)}`;
56
-
57
- 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}`;
58
127
 
59
- 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}`;
60
129
 
61
130
  const Buttons = class {
62
131
  constructor(hostRef) {
@@ -68,7 +137,7 @@ const Buttons = class {
68
137
  * first toolbar, the buttons will be hidden and will
69
138
  * only be shown once all toolbars have fully collapsed.
70
139
  *
71
- * Only applies in the `ios` theme with `collapse` set to
140
+ * Only applies in `ios` mode with `collapse` set to
72
141
  * `true` on `ion-header`.
73
142
  *
74
143
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -76,20 +145,19 @@ const Buttons = class {
76
145
  this.collapse = false;
77
146
  }
78
147
  render() {
79
- const theme = getIonTheme(this);
80
- return (h(Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
81
- [theme]: true,
148
+ const mode = getIonMode(this);
149
+ return (h(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
150
+ [mode]: true,
82
151
  ['buttons-collapse']: this.collapse,
83
- } }, h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
152
+ } }, h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
84
153
  }
85
154
  };
86
155
  Buttons.style = {
87
- ionic: buttonsIonicCss(),
88
156
  ios: buttonsIosCss(),
89
157
  md: buttonsMdCss()
90
158
  };
91
159
 
92
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-header-hide-height, 0px));-webkit-transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-footer-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-tab-bar-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{-webkit-transition:none;transition:none}}`;
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)}`;
93
161
 
94
162
  const Content = class {
95
163
  constructor(hostRef) {
@@ -252,8 +320,9 @@ const Content = class {
252
320
  this.resize();
253
321
  }, 100);
254
322
  }
255
- shouldForceOverscroll(mode) {
323
+ shouldForceOverscroll() {
256
324
  const { forceOverscroll } = this;
325
+ const mode = getIonMode(this);
257
326
  return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
258
327
  }
259
328
  resize() {
@@ -449,13 +518,12 @@ const Content = class {
449
518
  render() {
450
519
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
451
520
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
452
- const theme = getIonTheme(this);
453
- const mode = getIonMode(this, theme);
454
- const forceOverscroll = this.shouldForceOverscroll(mode);
455
- const transitionShadow = theme === 'ios';
521
+ const mode = getIonMode(this);
522
+ const forceOverscroll = this.shouldForceOverscroll();
523
+ const transitionShadow = mode === 'ios';
456
524
  this.resize();
457
- return (h(Host, Object.assign({ key: 'd7f325c30b698dc42ec5e8c45b29e82749743cf4', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
458
- [theme]: true,
525
+ return (h(Host, Object.assign({ key: '8c1bc4a4df8698d3884741eb38512dc059210c50', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
526
+ [mode]: true,
459
527
  'content-fullscreen': this.fullscreen,
460
528
  'content-sizing': hostContext('ion-popover', this.el),
461
529
  overscroll: forceOverscroll,
@@ -463,12 +531,12 @@ const Content = class {
463
531
  }), style: {
464
532
  '--offset-top': `${this.cTop}px`,
465
533
  '--offset-bottom': `${this.cBottom}px`,
466
- } }, inheritedAttributes), h("div", { key: 'c93b2c622a69c7fd153bbe9b0c6f8c24d85ed969', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '1700cc94e464ad1ab1c6672270f9649e90be3a5e', class: {
534
+ } }, inheritedAttributes), h("div", { key: '5e7412549b51ef7543d9378ecab9aac6bc461588', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '33f6fbf7e1e027c7cbd2dda95b487f18dc648cef', class: {
467
535
  'inner-scroll': true,
468
536
  'scroll-x': scrollX,
469
537
  'scroll-y': scrollY,
470
538
  overscroll: (scrollX || scrollY) && forceOverscroll,
471
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: 'bff713ead4f61730e3f36b5af4b771ae62bde6cd' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
539
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '00c8fe7b9e73533c702273c9457d274195d54e98' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
472
540
  }
473
541
  get el() { return getElement(this); }
474
542
  };
@@ -494,8 +562,7 @@ const getPageElement = (el) => {
494
562
  * between the popover and the edges of the screen. But if the popover contains
495
563
  * its own page element, we should use that instead.
496
564
  */
497
- const appRootSelector = config.get('appRootSelector', 'ion-app');
498
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
565
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
499
566
  if (page) {
500
567
  return page;
501
568
  }
@@ -559,90 +626,45 @@ const handleFooterFade = (scrollEl, baseEl) => {
559
626
  });
560
627
  };
561
628
 
562
- 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}`;
563
-
564
- 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}`;
629
+ 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}`;
565
630
 
566
- 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}`;
631
+ 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}`;
567
632
 
568
633
  const Footer = class {
569
634
  constructor(hostRef) {
570
635
  registerInstance(this, hostRef);
571
636
  this.keyboardCtrl = null;
572
637
  this.keyboardCtrlPromise = null;
573
- this.scrollHideCtrlPromise = null;
574
- this.hasWarnedCollapse = false;
575
- this.fadeSetupId = 0;
576
638
  this.keyboardVisible = false;
577
639
  /**
578
640
  * If `true`, the footer will be translucent.
579
- * Only applies when the theme is `"ios"` and the device supports
641
+ * Only applies when the mode is `"ios"` and the device supports
580
642
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
581
643
  *
582
644
  * Note: In order to scroll content behind the footer, the `fullscreen`
583
645
  * attribute needs to be set on the content.
584
646
  */
585
647
  this.translucent = false;
586
- this.checkCollapsibleFooter = async () => {
587
- const { scrollEffect, collapse } = this;
588
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
589
- this.hasWarnedCollapse = true;
590
- printIonWarning(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${collapse}">`, this.el);
591
- }
592
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
593
- // Skip teardown/rebuild if the effect hasn't changed.
594
- // This prevents keyboard toggles (which trigger re-renders via
595
- // @State keyboardVisible) from destroying the scroll controller
596
- // and resetting isHidden.
597
- if (effect === this.activeEffect) {
648
+ this.checkCollapsibleFooter = () => {
649
+ const mode = getIonMode(this);
650
+ if (mode !== 'ios') {
598
651
  return;
599
652
  }
600
- const hasHide = effect === 'hide';
601
- const hasFade = effect === 'fade';
653
+ const { collapse } = this;
654
+ const hasFade = collapse === 'fade';
602
655
  this.destroyCollapsibleFooter();
603
- const appRootSelector = config.get('appRootSelector', 'ion-app');
604
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
605
- const contentEl = pageEl ? findIonContent(pageEl) : null;
606
- if (hasHide && contentEl) {
607
- this.activeEffect = effect;
608
- await this.setupScrollEffectHide(contentEl);
609
- return;
610
- }
611
- // fade via the deprecated `collapse` prop is iOS-only.
612
- // fade via the new `scrollEffect` prop works in all themes.
613
- const isModeRestricted = scrollEffect === undefined && getIonTheme(this) !== 'ios';
614
- if (hasFade && !isModeRestricted) {
656
+ if (hasFade) {
657
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
658
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
615
659
  if (!contentEl) {
616
660
  printIonContentErrorMsg(this.el);
617
661
  return;
618
662
  }
619
663
  this.setupFadeFooter(contentEl);
620
- this.activeEffect = effect;
621
- }
622
- };
623
- this.setupScrollEffectHide = async (contentEl) => {
624
- const setupPromise = createScrollHideController(contentEl, {
625
- el: this.el,
626
- cssVar: '--internal-footer-hide-height',
627
- hiddenClass: 'footer-scroll-hidden',
628
- contentPartnerClass: 'content-footer-hide-scroll-partner',
629
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
630
- });
631
- this.scrollHideCtrlPromise = setupPromise;
632
- const controller = await setupPromise;
633
- if (this.scrollHideCtrlPromise === setupPromise) {
634
- this.scrollHideCtrlPromise = null;
635
- controller.init();
636
- this.scrollHideCtrl = controller;
637
664
  }
638
665
  };
639
666
  this.setupFadeFooter = async (contentEl) => {
640
- const setupId = ++this.fadeSetupId;
641
- const scrollEl = await getScrollElement(contentEl);
642
- if (this.fadeSetupId !== setupId) {
643
- return;
644
- }
645
- this.scrollEl = scrollEl;
667
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
646
668
  /**
647
669
  * Handle fading of toolbars on scroll
648
670
  */
@@ -687,7 +709,6 @@ const Footer = class {
687
709
  }
688
710
  }
689
711
  disconnectedCallback() {
690
- this.destroyCollapsibleFooter();
691
712
  if (this.keyboardCtrlPromise) {
692
713
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
693
714
  this.keyboardCtrlPromise = null;
@@ -698,43 +719,29 @@ const Footer = class {
698
719
  }
699
720
  }
700
721
  destroyCollapsibleFooter() {
701
- this.activeEffect = undefined;
702
- this.fadeSetupId++;
703
- this.scrollHideCtrlPromise = null;
704
- if (this.scrollHideCtrl) {
705
- this.scrollHideCtrl.destroy();
706
- this.scrollHideCtrl = undefined;
707
- }
708
722
  if (this.scrollEl && this.contentScrollCallback) {
709
723
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
710
724
  this.contentScrollCallback = undefined;
711
725
  }
712
726
  }
713
727
  render() {
714
- const { translucent, scrollEffect, collapse } = this;
715
- const theme = getIonTheme(this);
716
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
717
- // fade via the deprecated `collapse` prop is iOS-only.
718
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
719
- const hasHide = effect === 'hide';
720
- const hasFade = effect === 'fade' && !isModeRestricted;
728
+ const { translucent, collapse } = this;
729
+ const mode = getIonMode(this);
721
730
  const tabs = this.el.closest('ion-tabs');
722
731
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
723
- return (h(Host, { key: 'a0777b4a639d22e15374879f018efcf589e756f8', role: "contentinfo", class: {
724
- [theme]: true,
732
+ return (h(Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
733
+ [mode]: true,
725
734
  // Used internally for styling
726
- [`footer-${theme}`]: true,
735
+ [`footer-${mode}`]: true,
727
736
  [`footer-translucent`]: translucent,
728
- [`footer-translucent-${theme}`]: translucent,
737
+ [`footer-translucent-${mode}`]: translucent,
729
738
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
730
- 'footer-collapse-fade': hasFade,
731
- 'footer-scroll-effect-hide': hasHide,
732
- } }, theme === 'ios' && translucent && h("div", { key: 'd78b46870cbf11c95b066d649c04ec398b66e614', class: "footer-background" }), h("slot", { key: '9dc34787cd29597fe1b1198db317602014ac1483' })));
739
+ [`footer-collapse-${collapse}`]: collapse !== undefined,
740
+ } }, mode === 'ios' && translucent && h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
733
741
  }
734
742
  get el() { return getElement(this); }
735
743
  };
736
744
  Footer.style = {
737
- ionic: ionicFooterMdCss(),
738
745
  ios: footerIosCss(),
739
746
  md: footerMdCss()
740
747
  };
@@ -786,14 +793,13 @@ const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
786
793
  });
787
794
  };
788
795
  const setToolbarBackgroundOpacity = (headerEl, opacity) => {
789
- var _a;
790
796
  /**
791
797
  * Fading in the backdrop opacity
792
798
  * should happen after the large title
793
799
  * has collapsed, so it is handled
794
800
  * by handleHeaderFade()
795
801
  */
796
- if (((_a = headerEl.scrollEffect) !== null && _a !== void 0 ? _a : headerEl.collapse) === 'fade') {
802
+ if (headerEl.collapse === 'fade') {
797
803
  return;
798
804
  }
799
805
  if (opacity === undefined) {
@@ -951,69 +957,46 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
951
957
  * Get the role type for the ion-header.
952
958
  *
953
959
  * @param isInsideMenu If ion-header is inside ion-menu.
954
- * @returns 'none' if inside ion-menu, otherwise 'banner'.
955
- * Condensed headers start as 'banner' and have their role
956
- * toggled dynamically by setHeaderActive() on scroll.
960
+ * @param isCondensed If ion-header has collapse="condense".
961
+ * @param mode The current mode.
962
+ * @returns 'none' if inside ion-menu or if condensed in md
963
+ * mode, otherwise 'banner'.
957
964
  */
958
- const getRoleType = (isInsideMenu) => {
965
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
959
966
  // If the header is inside a menu, it should not have the banner role.
960
967
  if (isInsideMenu) {
961
968
  return ROLE_NONE;
962
969
  }
970
+ /**
971
+ * Only apply role="none" to `md` mode condensed headers
972
+ * since the large header is never shown.
973
+ */
974
+ if (isCondensed && mode === 'md') {
975
+ return ROLE_NONE;
976
+ }
963
977
  // Default to banner role.
964
978
  return ROLE_BANNER;
965
979
  };
966
980
 
967
- const headerIonicCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}ion-header.header-divider{border-bottom:var(--token-border-size-025, var(--token-scale-025, 1px)) var(--token-border-style-solid, solid) var(--token-border-default, var(--token-primitives-neutral-400, #d5d5d5))}ion-toolbar+ion-toolbar{--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px));backdrop-filter:saturate(180%) blur(var(--token-scale-100, 4px))}.header-translucent-ionic ion-toolbar{--opacity:0.7}}`;
968
-
969
- 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}`;
981
+ 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}`;
970
982
 
971
- 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}`;
983
+ 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}`;
972
984
 
973
985
  const Header = class {
974
986
  constructor(hostRef) {
975
987
  registerInstance(this, hostRef);
976
988
  this.inheritedAttributes = {};
977
- this.scrollHideCtrlPromise = null;
978
- this.hasWarnedCollapse = false;
979
- this.fadeCondenseSetupId = 0;
980
- /**
981
- * If `true`, the header will have a line at the bottom.
982
- * TODO(ROU-10855): add support for this prop on ios/md themes
983
- */
984
- this.divider = false;
985
989
  /**
986
990
  * If `true`, the header will be translucent.
987
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
991
+ * Only applies when the mode is `"ios"` and the device supports
988
992
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
989
993
  *
990
994
  * Note: In order to scroll content behind the header, the `fullscreen`
991
995
  * attribute needs to be set on the content.
992
996
  */
993
997
  this.translucent = false;
994
- this.setupScrollEffectHide = async (contentEl) => {
995
- const setupPromise = createScrollHideController(contentEl, {
996
- el: this.el,
997
- cssVar: '--internal-header-hide-height',
998
- hiddenClass: 'header-scroll-hidden',
999
- contentPartnerClass: 'content-header-hide-scroll-partner',
1000
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1001
- });
1002
- this.scrollHideCtrlPromise = setupPromise;
1003
- const controller = await setupPromise;
1004
- if (this.scrollHideCtrlPromise === setupPromise) {
1005
- this.scrollHideCtrlPromise = null;
1006
- controller.init();
1007
- this.scrollHideCtrl = controller;
1008
- }
1009
- };
1010
998
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
1011
- const setupId = ++this.fadeCondenseSetupId;
1012
- const scrollEl = await getScrollElement(contentEl);
1013
- if (this.fadeCondenseSetupId !== setupId) {
1014
- return;
1015
- }
1016
- this.scrollEl = scrollEl;
999
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
1017
1000
  /**
1018
1001
  * Handle fading of toolbars on scroll
1019
1002
  */
@@ -1037,63 +1020,37 @@ const Header = class {
1037
1020
  this.destroyCollapsibleHeader();
1038
1021
  }
1039
1022
  async checkCollapsibleHeader() {
1040
- const { scrollEffect, collapse } = this;
1041
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
1042
- this.hasWarnedCollapse = true;
1043
- printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
1044
- }
1045
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1046
- // Skip teardown/rebuild if the effect hasn't changed.
1047
- // This prevents re-renders from destroying the scroll controller
1048
- // and resetting isHidden.
1049
- if (effect === this.activeEffect) {
1023
+ const mode = getIonMode(this);
1024
+ if (mode !== 'ios') {
1050
1025
  return;
1051
1026
  }
1052
- const hasHide = effect === 'hide';
1053
- const hasCondense = effect === 'condense';
1054
- const hasFade = effect === 'fade';
1027
+ const { collapse } = this;
1028
+ const hasCondense = collapse === 'condense';
1029
+ const hasFade = collapse === 'fade';
1055
1030
  this.destroyCollapsibleHeader();
1056
- const appRootSelector = config.get('appRootSelector', 'ion-app');
1057
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
1058
- const contentEl = pageEl ? findIonContent(pageEl) : null;
1059
- if (hasHide && contentEl) {
1060
- this.activeEffect = effect;
1061
- await this.setupScrollEffectHide(contentEl);
1062
- return;
1063
- }
1064
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1065
- // condense/fade via the new `scrollEffect` prop work in all themes.
1066
- const isModeRestricted = scrollEffect === undefined && getIonTheme(this) !== 'ios';
1067
- if (hasCondense && !isModeRestricted) {
1031
+ if (hasCondense) {
1032
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1033
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
1068
1034
  // Cloned elements are always needed in iOS transition
1069
1035
  writeTask(() => {
1070
1036
  const title = cloneElement('ion-title');
1071
1037
  title.size = 'large';
1072
1038
  cloneElement('ion-back-button');
1073
1039
  });
1074
- const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
1075
- if (didSetup) {
1076
- this.activeEffect = effect;
1077
- }
1040
+ await this.setupCondenseHeader(contentEl, pageEl);
1078
1041
  }
1079
- else if (hasFade && !isModeRestricted) {
1042
+ else if (hasFade) {
1043
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1044
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
1080
1045
  if (!contentEl) {
1081
1046
  printIonContentErrorMsg(this.el);
1082
1047
  return;
1083
1048
  }
1084
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
1085
- this.activeEffect = effect;
1049
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1086
1050
  await this.setupFadeHeader(contentEl, condenseHeader);
1087
1051
  }
1088
1052
  }
1089
1053
  destroyCollapsibleHeader() {
1090
- this.activeEffect = undefined;
1091
- this.fadeCondenseSetupId++;
1092
- this.scrollHideCtrlPromise = null;
1093
- if (this.scrollHideCtrl) {
1094
- this.scrollHideCtrl.destroy();
1095
- this.scrollHideCtrl = undefined;
1096
- }
1097
1054
  if (this.intersectionObserver) {
1098
1055
  this.intersectionObserver.disconnect();
1099
1056
  this.intersectionObserver = undefined;
@@ -1110,40 +1067,21 @@ const Header = class {
1110
1067
  async setupCondenseHeader(contentEl, pageEl) {
1111
1068
  if (!contentEl || !pageEl) {
1112
1069
  printIonContentErrorMsg(this.el);
1113
- return false;
1070
+ return;
1114
1071
  }
1115
1072
  if (typeof IntersectionObserver === 'undefined') {
1116
- return false;
1117
- }
1118
- const setupId = ++this.fadeCondenseSetupId;
1119
- const scrollEl = await getScrollElement(contentEl);
1120
- if (this.fadeCondenseSetupId !== setupId) {
1121
- return false;
1122
- }
1123
- this.scrollEl = scrollEl;
1124
- /**
1125
- * The condense effect requires an ion-title with size="large"
1126
- * in the condense header. Without it, there is nothing to
1127
- * collapse into the main header toolbar.
1128
- */
1129
- const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
1130
- if (!hasLargeTitle) {
1131
- printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
1132
- return false;
1073
+ return;
1133
1074
  }
1075
+ this.scrollEl = await getScrollElement(contentEl);
1134
1076
  const headers = pageEl.querySelectorAll('ion-header');
1135
- this.collapsibleMainHeader = Array.from(headers).find((header) => {
1136
- var _a;
1137
- const effect = (_a = header.scrollEffect) !== null && _a !== void 0 ? _a : header.collapse;
1138
- return effect !== 'condense';
1139
- });
1077
+ this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1140
1078
  if (!this.collapsibleMainHeader) {
1141
- return false;
1079
+ return;
1142
1080
  }
1143
1081
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1144
1082
  const scrollHeaderIndex = createHeaderIndex(this.el);
1145
1083
  if (!mainHeaderIndex || !scrollHeaderIndex) {
1146
- return false;
1084
+ return;
1147
1085
  }
1148
1086
  setHeaderActive(mainHeaderIndex, false);
1149
1087
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -1175,45 +1113,31 @@ const Header = class {
1175
1113
  this.collapsibleMainHeader.classList.add('header-collapse-main');
1176
1114
  }
1177
1115
  });
1178
- return true;
1179
1116
  }
1180
1117
  render() {
1181
- const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
1182
- const theme = getIonTheme(this);
1183
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1184
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1185
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
1186
- const hasHide = effect === 'hide';
1187
- const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
1188
- const hasFade = effect === 'fade' && !isModeRestricted;
1189
- // The condense header should be hidden when
1190
- // - deprecated collapse prop is used on non-iOS (mode restricted), or
1191
- // - scrollEffect="condense" is set but no ion-title[size="large"] is present
1192
- const isHiddenCondense = effect === 'condense' && !hasCondense;
1118
+ const { translucent, inheritedAttributes } = this;
1119
+ const mode = getIonMode(this);
1120
+ const collapse = this.collapse || 'none';
1121
+ const isCondensed = collapse === 'condense';
1193
1122
  // banner role must be at top level, so remove role if inside a menu
1194
- const roleType = isHiddenCondense ? 'none' : getRoleType(hostContext('ion-menu', this.el));
1195
- return (h(Host, Object.assign({ key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
1196
- [theme]: true,
1123
+ const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, mode);
1124
+ return (h(Host, Object.assign({ key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1125
+ [mode]: true,
1197
1126
  // Used internally for styling
1198
- [`header-${theme}`]: true,
1127
+ [`header-${mode}`]: true,
1199
1128
  [`header-translucent`]: this.translucent,
1200
- ['header-collapse-condense']: hasCondense,
1201
- ['header-collapse-condense-hidden']: isHiddenCondense,
1202
- ['header-collapse-fade']: hasFade,
1203
- [`header-translucent-${theme}`]: this.translucent,
1204
- ['header-divider']: divider,
1205
- 'header-scroll-effect-hide': hasHide,
1206
- } }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: 'fd5ff245ae0166e5e1d50936cacc98c90625db48', class: "header-background" }), h("slot", { key: '1baa31af87b9eb6406a21073ec65afa191dfbb3d' })));
1129
+ [`header-collapse-${collapse}`]: true,
1130
+ [`header-translucent-${mode}`]: this.translucent,
1131
+ } }, inheritedAttributes), mode === 'ios' && translucent && h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1207
1132
  }
1208
1133
  get el() { return getElement(this); }
1209
1134
  };
1210
1135
  Header.style = {
1211
- ionic: headerIonicCss(),
1212
1136
  ios: headerIosCss(),
1213
1137
  md: headerMdCss()
1214
1138
  };
1215
1139
 
1216
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1140
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1217
1141
 
1218
1142
  const RouterOutlet = class {
1219
1143
  constructor(hostRef) {
@@ -1224,7 +1148,7 @@ const RouterOutlet = class {
1224
1148
  this.lockController = createLockController();
1225
1149
  this.gestureOrAnimationInProgress = false;
1226
1150
  /**
1227
- * The mode determines the platform behaviors of the component.
1151
+ * The mode determines which platform styles to use.
1228
1152
  */
1229
1153
  this.mode = getIonMode(this);
1230
1154
  /**
@@ -1232,10 +1156,11 @@ const RouterOutlet = class {
1232
1156
  */
1233
1157
  this.animated = true;
1234
1158
  }
1159
+ swipeGestureChanged() {
1160
+ this.updateGestureEnabled();
1161
+ }
1235
1162
  swipeHandlerChanged() {
1236
- if (this.gesture) {
1237
- this.gesture.enable(this.swipeHandler !== undefined);
1238
- }
1163
+ this.updateGestureEnabled();
1239
1164
  }
1240
1165
  async connectedCallback() {
1241
1166
  const onStart = () => {
@@ -1244,7 +1169,7 @@ const RouterOutlet = class {
1244
1169
  this.swipeHandler.onStart();
1245
1170
  }
1246
1171
  };
1247
- this.gesture = (await import('./swipe-back-qmvTRnSq.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1172
+ this.gesture = (await import('./swipe-back-DQ1q5MgD.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1248
1173
  if (this.ani) {
1249
1174
  this.ani.onFinish(() => {
1250
1175
  this.gestureOrAnimationInProgress = false;
@@ -1275,11 +1200,21 @@ const RouterOutlet = class {
1275
1200
  this.gestureOrAnimationInProgress = false;
1276
1201
  }
1277
1202
  });
1278
- this.swipeHandlerChanged();
1203
+ if (this.swipeGesture === undefined) {
1204
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
1205
+ }
1206
+ else {
1207
+ this.updateGestureEnabled();
1208
+ }
1279
1209
  }
1280
1210
  componentWillLoad() {
1281
1211
  this.ionNavWillLoad.emit();
1282
1212
  }
1213
+ updateGestureEnabled() {
1214
+ if (this.gesture) {
1215
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
1216
+ }
1217
+ }
1283
1218
  disconnectedCallback() {
1284
1219
  if (this.gesture) {
1285
1220
  this.gesture.destroy();
@@ -1390,10 +1325,13 @@ const RouterOutlet = class {
1390
1325
  return true;
1391
1326
  }
1392
1327
  render() {
1393
- return h("slot", { key: '56e3d06ed939755796058e30ef19fbc7f7cb490d' });
1328
+ return h("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
1394
1329
  }
1395
1330
  get el() { return getElement(this); }
1396
1331
  static get watchers() { return {
1332
+ "swipeGesture": [{
1333
+ "swipeGestureChanged": 0
1334
+ }],
1397
1335
  "swipeHandler": [{
1398
1336
  "swipeHandlerChanged": 0
1399
1337
  }]
@@ -1401,11 +1339,9 @@ const RouterOutlet = class {
1401
1339
  };
1402
1340
  RouterOutlet.style = routerOutletCss();
1403
1341
 
1404
- const titleIonicCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.title-large){font-size:var(--token-font-size-700, 1.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-900, var(--token-scale-900, 36px));text-decoration:none;text-transform:none}`;
1405
-
1406
- 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)}}`;
1342
+ 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)}}`;
1407
1343
 
1408
- 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}`;
1344
+ 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}`;
1409
1345
 
1410
1346
  const ToolbarTitle = class {
1411
1347
  constructor(hostRef) {
@@ -1428,13 +1364,13 @@ const ToolbarTitle = class {
1428
1364
  return this.size !== undefined ? this.size : 'default';
1429
1365
  }
1430
1366
  render() {
1431
- const theme = getIonTheme(this);
1367
+ const mode = getIonMode(this);
1432
1368
  const size = this.getSize();
1433
- return (h(Host, { key: 'd64e86bed418cba707d4a26c9274f18ed06c0e9e', class: createColorClasses(this.color, {
1434
- [theme]: true,
1369
+ return (h(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses(this.color, {
1370
+ [mode]: true,
1435
1371
  [`title-${size}`]: true,
1436
1372
  'title-rtl': document.dir === 'rtl',
1437
- }) }, h("div", { key: '386a71e974cde0bfbf5b655d69ed5f718de8ce48', class: "toolbar-title" }, h("slot", { key: '8aa804c9e1b11574a42268805d3117a085e699b4' }))));
1373
+ }) }, h("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, h("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
1438
1374
  }
1439
1375
  get el() { return getElement(this); }
1440
1376
  static get watchers() { return {
@@ -1444,29 +1380,18 @@ const ToolbarTitle = class {
1444
1380
  }; }
1445
1381
  };
1446
1382
  ToolbarTitle.style = {
1447
- ionic: titleIonicCss(),
1448
1383
  ios: titleIosCss(),
1449
1384
  md: titleMdCss()
1450
1385
  };
1451
1386
 
1452
- const toolbarIonicCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--border-color:currentColor;--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--min-height:var(--token-scale-1400, 56px)}.toolbar-container{gap:var(--token-space-400, var(--token-scale-400, 16px));z-index:10}.toolbar-background{z-index:-1}.toolbar-content{-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}:host(.toolbar-searchbar) ::slotted(ion-searchbar){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}::slotted(ion-buttons){gap:var(--token-space-200, var(--token-scale-200, 8px))}::slotted(ion-title){-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px))}:host(.toolbar-title-large) ::slotted(ion-title){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}:host(.has-end-content) slot[name=end],:host(.show-end) slot[name=end]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-start-content) slot[name=start],:host(.show-start) slot[name=start]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0)}:host(.has-primary-content) slot[name=primary],:host(.show-primary) slot[name=primary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-secondary-content) slot[name=secondary],:host(.show-secondary) slot[name=secondary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0)}:host(.toolbar-title-placement-start) ::slotted(ion-title){text-align:start}:host(.toolbar-title-placement-center) ::slotted(ion-title){text-align:center}:host(.toolbar-title-placement-end) ::slotted(ion-title){text-align:end}`;
1387
+ 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%}`;
1453
1388
 
1454
- 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%}`;
1455
-
1456
- 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}`;
1389
+ 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}`;
1457
1390
 
1458
1391
  const Toolbar = class {
1459
1392
  constructor(hostRef) {
1460
1393
  registerInstance(this, hostRef);
1461
1394
  this.childrenStyles = new Map();
1462
- this.slotClasses = [
1463
- 'has-start-content',
1464
- 'has-end-content',
1465
- 'has-primary-content',
1466
- 'has-secondary-content',
1467
- ];
1468
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1469
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1470
1395
  }
1471
1396
  componentWillLoad() {
1472
1397
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1483,173 +1408,6 @@ const Toolbar = class {
1483
1408
  if (lastButtons) {
1484
1409
  lastButtons.classList.add('buttons-last-slot');
1485
1410
  }
1486
- this.updateSlotClasses();
1487
- }
1488
- componentDidLoad() {
1489
- this.updateSlotClasses();
1490
- this.updateSlotWidths();
1491
- }
1492
- titlePlacementChanged() {
1493
- this.updateSlotClasses();
1494
- }
1495
- /**
1496
- * Gets the title placement.
1497
- * Returns the title placement if it is set, otherwise returns `"center"`
1498
- * for `ionic` and `ios`, and `"start"` for `md`.
1499
- */
1500
- getTitlePlacement() {
1501
- if (this.titlePlacement !== undefined) {
1502
- return this.titlePlacement;
1503
- }
1504
- return getIonTheme(this) === 'ionic' || getIonTheme(this) === 'ios' ? 'center' : 'start';
1505
- }
1506
- /**
1507
- * Updates the CSS custom properties for slot widths
1508
- * This ensures that slots shown by their met conditions
1509
- * have a minimum width matching their required slot
1510
- */
1511
- updateSlotWidths(tries = 0) {
1512
- // Set timeout to try to execute after everything is rendered
1513
- setTimeout(() => {
1514
- // Attempt to measure and update
1515
- const success = this.measureAndUpdateSlots();
1516
- // If not all measurements were successful, try again in 100 ms
1517
- // cap recursion at 5 tries for safety
1518
- if (!success && tries < 5) {
1519
- setTimeout(() => {
1520
- this.updateSlotWidths(tries + 1);
1521
- }, 100);
1522
- }
1523
- });
1524
- }
1525
- /**
1526
- * Measure the widths of the slots and update the CSS custom properties
1527
- * for the minimum width of each pair of slots based on the largest width in each pair.
1528
- * Returns whether we successfully measured all of the slots we expect to have content.
1529
- * If not, the content probably hasn't rendered yet and we need to try again.
1530
- */
1531
- measureAndUpdateSlots() {
1532
- // Define the relationship between slots based on the conditions array
1533
- // Group slots that should have the same width
1534
- const slotPairs = [
1535
- { name: 'start-end', slots: ['start', 'end'] },
1536
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1537
- ];
1538
- // First, measure all slot widths
1539
- const slotWidths = new Map();
1540
- let allMeasurementsSuccessful = true;
1541
- // Measure all slots with content
1542
- const slots = ['start', 'end', 'primary', 'secondary'];
1543
- slots.forEach((slot) => {
1544
- var _a;
1545
- if (this.el.classList.contains(`has-${slot}-content`)) {
1546
- const slotElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slot}"]`);
1547
- if (slotElement) {
1548
- // Check if the slot contains an img or ion-img
1549
- const assignedElements = slotElement.assignedElements({ flatten: true });
1550
- const hasImg = assignedElements.some((el) => {
1551
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1552
- return true;
1553
- }
1554
- // Check for nested images
1555
- return el.querySelector('img, ion-img');
1556
- });
1557
- // Temporarily allow slot to size to content by setting flex-basis
1558
- // to 'auto'. This ensures that slotted images can render at their
1559
- // intrinsic width for measurement.
1560
- if (hasImg) {
1561
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1562
- this.el.style.setProperty(`--${name}-size`, 'auto');
1563
- }
1564
- const width = slotElement.offsetWidth;
1565
- if (width > 0) {
1566
- slotWidths.set(slot, width);
1567
- }
1568
- else {
1569
- allMeasurementsSuccessful = false;
1570
- }
1571
- }
1572
- }
1573
- });
1574
- // Then set the CSS custom properties based on the largest width in each pair
1575
- slotPairs.forEach(({ name, slots }) => {
1576
- // Find the maximum width among the slots in this pair
1577
- let maxWidth = 0;
1578
- let hasAnyContent = false;
1579
- slots.forEach((slot) => {
1580
- var _a;
1581
- if (slotWidths.has(slot)) {
1582
- hasAnyContent = true;
1583
- maxWidth = Math.max(maxWidth, (_a = slotWidths.get(slot)) !== null && _a !== void 0 ? _a : 0);
1584
- }
1585
- });
1586
- // If at least one slot in the pair has content, set the min-width for the pair
1587
- if (hasAnyContent && maxWidth > 0) {
1588
- // Set a single CSS variable for the pair
1589
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1590
- }
1591
- });
1592
- return allMeasurementsSuccessful;
1593
- }
1594
- /**
1595
- * Removes all slot visibility classes and slot width CSS variables.
1596
- */
1597
- removeSlotClasses() {
1598
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1599
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1600
- }
1601
- updateSlotClasses() {
1602
- const titlePlacement = this.getTitlePlacement();
1603
- if (titlePlacement !== 'center') {
1604
- this.removeSlotClasses();
1605
- return;
1606
- }
1607
- // Check if slots have content
1608
- const slots = ['start', 'end', 'primary', 'secondary'];
1609
- const classesToAdd = [];
1610
- const classesToRemove = [];
1611
- slots.forEach((slot) => {
1612
- const slotHasContent = this.hasSlotContent(slot);
1613
- const slotClass = `has-${slot}-content`;
1614
- if (slotHasContent) {
1615
- classesToAdd.push(slotClass);
1616
- }
1617
- else {
1618
- classesToRemove.push(slotClass);
1619
- }
1620
- });
1621
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1622
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1623
- // and does not have any of the excluded slots, otherwise it will be removed.
1624
- // This is useful to enforce centering of the toolbar content when there are different amounts
1625
- // of slots on either side of the toolbar.
1626
- const conditions = [
1627
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1628
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1629
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1630
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1631
- ];
1632
- conditions.forEach((condition) => {
1633
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1634
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1635
- const className = `show-${condition.name}`;
1636
- if (hasRequiredSlots && !hasExcludedSlots) {
1637
- classesToAdd.push(className);
1638
- }
1639
- else {
1640
- classesToRemove.push(className);
1641
- }
1642
- });
1643
- // Add classes to the toolbar element
1644
- this.el.classList.add(...classesToAdd);
1645
- this.el.classList.remove(...classesToRemove);
1646
- // Update slot widths after classes have been updated
1647
- this.updateSlotWidths();
1648
- }
1649
- hasSlotContent(slotName) {
1650
- var _a;
1651
- const slotNode = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slotName}"]`);
1652
- return !!slotNode && slotNode.assignedNodes().length > 0;
1653
1411
  }
1654
1412
  childrenStyle(ev) {
1655
1413
  ev.stopPropagation();
@@ -1674,27 +1432,19 @@ const Toolbar = class {
1674
1432
  }
1675
1433
  }
1676
1434
  render() {
1677
- const theme = getIonTheme(this);
1435
+ const mode = getIonMode(this);
1678
1436
  const childStyles = {};
1679
- this.childrenStyles.forEach((style) => {
1680
- Object.assign(childStyles, style);
1437
+ this.childrenStyles.forEach((value) => {
1438
+ Object.assign(childStyles, value);
1681
1439
  });
1682
- const titlePlacement = this.getTitlePlacement();
1683
- return (h(Host, { key: 'bcb621674157410d7eaeb006779bdd677346587e', class: Object.assign(Object.assign({}, createColorClasses(this.color, {
1684
- [theme]: true,
1440
+ return (h(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
1441
+ [mode]: true,
1685
1442
  'in-toolbar': hostContext('ion-toolbar', this.el),
1686
- [`toolbar-title-placement-${titlePlacement}`]: true,
1687
- })), childStyles) }, h("div", { key: '0d31a98b2571b9a0ae142fbdfd83e2ebdcd8e069', class: "toolbar-background", part: "background" }), h("div", { key: 'de938534c487c6cb4060dac44b40c2d872130f50', class: "toolbar-container", part: "container" }, h("slot", { key: 'a337150d353e439eae67c31ff86e383ed51f3d8f', name: "start", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: '02effd3ce0cdad5ec5645fa58ccb329321449190', name: "secondary", onSlotchange: () => this.updateSlotClasses }), h("div", { key: '3e22f5feda2aea02117bdea2fe8a4b8905ba82f6', class: "toolbar-content", part: "content" }, h("slot", { key: 'ebf828643ff05a8bf662a54715d21d0859168d31' })), h("slot", { key: 'a6940648dfe25a7aa8792a1bd9267437274f333c', name: "primary", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: 'afb1d61aa0e430fcf483ba482af64762474e06fe', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1443
+ })) }, h("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), h("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, h("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), h("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), h("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, h("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), h("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), h("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
1688
1444
  }
1689
1445
  get el() { return getElement(this); }
1690
- static get watchers() { return {
1691
- "titlePlacement": [{
1692
- "titlePlacementChanged": 0
1693
- }]
1694
- }; }
1695
1446
  };
1696
1447
  Toolbar.style = {
1697
- ionic: toolbarIonicCss(),
1698
1448
  ios: toolbarIosCss(),
1699
1449
  md: toolbarMdCss()
1700
1450
  };