@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
@@ -3,20 +3,21 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-GZU9YrFc.js');
7
- var focusVisible = require('./focus-visible-BIj-I3-C.js');
8
- var ionicGlobal = require('./ionic-global-QoUqobrQ.js');
9
- var helpers = require('./helpers-DiOgV5hw.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var hardwareBackButton = require('./hardware-back-button-iUuF_76h.js');
8
+ var ionicGlobal = require('./ionic-global-CbxQmwkf.js');
9
+ var helpers = require('./helpers-Cv23MFHM.js');
10
10
  var dir = require('./dir-Cn0z1rJH.js');
11
- var theme = require('./theme-IlOsGAz7.js');
12
- var index$1 = require('./index-BxEZd5IE.js');
13
- var scrollHideController = require('./scroll-hide-controller-G9HOmmhN.js');
11
+ var theme = require('./theme-CeDs6Hcv.js');
12
+ var index$1 = require('./index-CIrkNXqJ.js');
13
+ var keyboardController = require('./keyboard-controller-GXBiBRKS.js');
14
14
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
15
- var frameworkDelegate = require('./framework-delegate-DC5nq_NN.js');
15
+ var frameworkDelegate = require('./framework-delegate-BtICZDHr.js');
16
16
  var lockController = require('./lock-controller-aDB9wrEf.js');
17
- var index$2 = require('./index-BaJ7_YbC.js');
18
- require('./keyboard-Bn0Ppim6.js');
19
- require('./capacitor-CQSg1uCo.js');
17
+ var index$2 = require('./index-BERfRao3.js');
18
+ require('./index-DkNv4J_i.js');
19
+ require('./keyboard-UuAS4D_9.js');
20
+ require('./capacitor-DmA66EwP.js');
20
21
 
21
22
  const appCss = () => `html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}`;
22
23
 
@@ -24,6 +25,51 @@ const App = class {
24
25
  constructor(hostRef) {
25
26
  index.registerInstance(this, hostRef);
26
27
  }
28
+ componentDidLoad() {
29
+ {
30
+ this.rIC(async () => {
31
+ const isHybrid = ionicGlobal.isPlatform(window, 'hybrid');
32
+ if (!index.config.getBoolean('_testing')) {
33
+ Promise.resolve().then(function () { return require('./index-D81eLYUM.js'); }).then((module) => module.startTapClick(index.config));
34
+ }
35
+ if (index.config.getBoolean('statusTap', isHybrid)) {
36
+ Promise.resolve().then(function () { return require('./status-tap-BXX8H8_Y.js'); }).then((module) => module.startStatusTap());
37
+ }
38
+ if (index.config.getBoolean('inputShims', needInputShims())) {
39
+ /**
40
+ * needInputShims() ensures that only iOS and Android
41
+ * platforms proceed into this block.
42
+ */
43
+ const platform = ionicGlobal.isPlatform(window, 'ios') ? 'ios' : 'android';
44
+ Promise.resolve().then(function () { return require('./input-shims-CFLg7uzj.js'); }).then((module) => module.startInputShims(index.config, platform));
45
+ }
46
+ const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./hardware-back-button-iUuF_76h.js'); });
47
+ const supportsHardwareBackButtonEvents = isHybrid || hardwareBackButton.shouldUseCloseWatcher();
48
+ if (index.config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
49
+ hardwareBackButtonModule.startHardwareBackButton();
50
+ }
51
+ else {
52
+ /**
53
+ * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
54
+ * then the close watcher will not be used.
55
+ */
56
+ if (hardwareBackButton.shouldUseCloseWatcher()) {
57
+ index.printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
58
+ }
59
+ hardwareBackButtonModule.blockHardwareBackButton();
60
+ }
61
+ if (typeof window !== 'undefined') {
62
+ Promise.resolve().then(function () { return require('./keyboard-hHzlEQpk.js'); }).then((module) => module.startKeyboardAssist(window));
63
+ }
64
+ Promise.resolve().then(function () { return require('./focus-visible-CCvKiLh3.js'); }).then((module) => (this.focusVisible = module.startFocusVisible()));
65
+ });
66
+ }
67
+ }
68
+ disconnectedCallback() {
69
+ if (this.loadTimeout) {
70
+ clearTimeout(this.loadTimeout);
71
+ }
72
+ }
27
73
  /**
28
74
  * Used to set focus on an element that uses `ion-focusable`.
29
75
  * Do not use this if focusing the element as a result of a keyboard
@@ -36,29 +82,52 @@ const App = class {
36
82
  * @param elements An array of HTML elements to set focus on.
37
83
  */
38
84
  async setFocus(elements) {
39
- /**
40
- * The focus-visible utility is used to set focus on an
41
- * element that uses `ion-focusable`.
42
- */
43
- focusVisible.focusElements(elements);
85
+ if (this.focusVisible) {
86
+ this.focusVisible.setFocus(elements);
87
+ }
88
+ }
89
+ rIC(callback) {
90
+ if ('requestIdleCallback' in window) {
91
+ window.requestIdleCallback(callback);
92
+ }
93
+ else {
94
+ this.loadTimeout = setTimeout(callback, 32);
95
+ }
44
96
  }
45
97
  render() {
46
- const theme = ionicGlobal.getIonTheme(this);
47
- return (index.h(index.Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
48
- [theme]: true,
98
+ const mode = ionicGlobal.getIonMode(this);
99
+ return (index.h(index.Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
100
+ [mode]: true,
49
101
  'ion-page': true,
50
102
  'force-statusbar-padding': index.config.getBoolean('_forceStatusbarPadding'),
51
103
  } }));
52
104
  }
53
105
  get el() { return index.getElement(this); }
54
106
  };
107
+ const needInputShims = () => {
108
+ /**
109
+ * iOS always needs input shims
110
+ */
111
+ const needsShimsIOS = ionicGlobal.isPlatform(window, 'ios') && ionicGlobal.isPlatform(window, 'mobile');
112
+ if (needsShimsIOS) {
113
+ return true;
114
+ }
115
+ /**
116
+ * Android only needs input shims when running
117
+ * in the browser and only if the browser is using the
118
+ * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
119
+ */
120
+ const isAndroidMobileWeb = ionicGlobal.isPlatform(window, 'android') && ionicGlobal.isPlatform(window, 'mobileweb');
121
+ if (isAndroidMobileWeb) {
122
+ return true;
123
+ }
124
+ return false;
125
+ };
55
126
  App.style = appCss();
56
127
 
57
- const buttonsIonicCss = () => `.sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-600, 1.5rem)}`;
58
-
59
- const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-h{z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
128
+ const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
60
129
 
61
- const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-h{z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
130
+ const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
62
131
 
63
132
  const Buttons = class {
64
133
  constructor(hostRef) {
@@ -70,7 +139,7 @@ const Buttons = class {
70
139
  * first toolbar, the buttons will be hidden and will
71
140
  * only be shown once all toolbars have fully collapsed.
72
141
  *
73
- * Only applies in the `ios` theme with `collapse` set to
142
+ * Only applies in `ios` mode with `collapse` set to
74
143
  * `true` on `ion-header`.
75
144
  *
76
145
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -78,20 +147,19 @@ const Buttons = class {
78
147
  this.collapse = false;
79
148
  }
80
149
  render() {
81
- const theme = ionicGlobal.getIonTheme(this);
82
- return (index.h(index.Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
83
- [theme]: true,
150
+ const mode = ionicGlobal.getIonMode(this);
151
+ return (index.h(index.Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
152
+ [mode]: true,
84
153
  ['buttons-collapse']: this.collapse,
85
- } }, index.h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
154
+ } }, index.h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
86
155
  }
87
156
  };
88
157
  Buttons.style = {
89
- ionic: buttonsIonicCss(),
90
158
  ios: buttonsIosCss(),
91
159
  md: buttonsMdCss()
92
160
  };
93
161
 
94
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-header-hide-height, 0px));-webkit-transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-footer-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-tab-bar-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{-webkit-transition:none;transition:none}}`;
162
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
95
163
 
96
164
  const Content = class {
97
165
  constructor(hostRef) {
@@ -254,8 +322,9 @@ const Content = class {
254
322
  this.resize();
255
323
  }, 100);
256
324
  }
257
- shouldForceOverscroll(mode) {
325
+ shouldForceOverscroll() {
258
326
  const { forceOverscroll } = this;
327
+ const mode = ionicGlobal.getIonMode(this);
259
328
  return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
260
329
  }
261
330
  resize() {
@@ -451,13 +520,12 @@ const Content = class {
451
520
  render() {
452
521
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
453
522
  const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
454
- const theme$1 = ionicGlobal.getIonTheme(this);
455
- const mode = ionicGlobal.getIonMode(this, theme$1);
456
- const forceOverscroll = this.shouldForceOverscroll(mode);
457
- const transitionShadow = theme$1 === 'ios';
523
+ const mode = ionicGlobal.getIonMode(this);
524
+ const forceOverscroll = this.shouldForceOverscroll();
525
+ const transitionShadow = mode === 'ios';
458
526
  this.resize();
459
- return (index.h(index.Host, Object.assign({ key: 'd7f325c30b698dc42ec5e8c45b29e82749743cf4', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
460
- [theme$1]: true,
527
+ return (index.h(index.Host, Object.assign({ key: '8c1bc4a4df8698d3884741eb38512dc059210c50', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
528
+ [mode]: true,
461
529
  'content-fullscreen': this.fullscreen,
462
530
  'content-sizing': theme.hostContext('ion-popover', this.el),
463
531
  overscroll: forceOverscroll,
@@ -465,12 +533,12 @@ const Content = class {
465
533
  }), style: {
466
534
  '--offset-top': `${this.cTop}px`,
467
535
  '--offset-bottom': `${this.cBottom}px`,
468
- } }, inheritedAttributes), index.h("div", { key: 'c93b2c622a69c7fd153bbe9b0c6f8c24d85ed969', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '1700cc94e464ad1ab1c6672270f9649e90be3a5e', class: {
536
+ } }, inheritedAttributes), index.h("div", { key: '5e7412549b51ef7543d9378ecab9aac6bc461588', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '33f6fbf7e1e027c7cbd2dda95b487f18dc648cef', class: {
469
537
  'inner-scroll': true,
470
538
  'scroll-x': scrollX,
471
539
  'scroll-y': scrollY,
472
540
  overscroll: (scrollX || scrollY) && forceOverscroll,
473
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: 'bff713ead4f61730e3f36b5af4b771ae62bde6cd' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
541
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: '00c8fe7b9e73533c702273c9457d274195d54e98' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
474
542
  }
475
543
  get el() { return index.getElement(this); }
476
544
  };
@@ -496,8 +564,7 @@ const getPageElement = (el) => {
496
564
  * between the popover and the edges of the screen. But if the popover contains
497
565
  * its own page element, we should use that instead.
498
566
  */
499
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
500
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
567
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
501
568
  if (page) {
502
569
  return page;
503
570
  }
@@ -561,90 +628,45 @@ const handleFooterFade = (scrollEl, baseEl) => {
561
628
  });
562
629
  };
563
630
 
564
- 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}`;
565
-
566
- 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}`;
631
+ 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}`;
567
632
 
568
- 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}`;
633
+ 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}`;
569
634
 
570
635
  const Footer = class {
571
636
  constructor(hostRef) {
572
637
  index.registerInstance(this, hostRef);
573
638
  this.keyboardCtrl = null;
574
639
  this.keyboardCtrlPromise = null;
575
- this.scrollHideCtrlPromise = null;
576
- this.hasWarnedCollapse = false;
577
- this.fadeSetupId = 0;
578
640
  this.keyboardVisible = false;
579
641
  /**
580
642
  * If `true`, the footer will be translucent.
581
- * Only applies when the theme is `"ios"` and the device supports
643
+ * Only applies when the mode is `"ios"` and the device supports
582
644
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
583
645
  *
584
646
  * Note: In order to scroll content behind the footer, the `fullscreen`
585
647
  * attribute needs to be set on the content.
586
648
  */
587
649
  this.translucent = false;
588
- this.checkCollapsibleFooter = async () => {
589
- const { scrollEffect, collapse } = this;
590
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
591
- this.hasWarnedCollapse = true;
592
- index.printIonWarning(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${collapse}">`, this.el);
593
- }
594
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
595
- // Skip teardown/rebuild if the effect hasn't changed.
596
- // This prevents keyboard toggles (which trigger re-renders via
597
- // @State keyboardVisible) from destroying the scroll controller
598
- // and resetting isHidden.
599
- if (effect === this.activeEffect) {
650
+ this.checkCollapsibleFooter = () => {
651
+ const mode = ionicGlobal.getIonMode(this);
652
+ if (mode !== 'ios') {
600
653
  return;
601
654
  }
602
- const hasHide = effect === 'hide';
603
- const hasFade = effect === 'fade';
655
+ const { collapse } = this;
656
+ const hasFade = collapse === 'fade';
604
657
  this.destroyCollapsibleFooter();
605
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
606
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
607
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
608
- if (hasHide && contentEl) {
609
- this.activeEffect = effect;
610
- await this.setupScrollEffectHide(contentEl);
611
- return;
612
- }
613
- // fade via the deprecated `collapse` prop is iOS-only.
614
- // fade via the new `scrollEffect` prop works in all themes.
615
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
616
- if (hasFade && !isModeRestricted) {
658
+ if (hasFade) {
659
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
660
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
617
661
  if (!contentEl) {
618
662
  index$1.printIonContentErrorMsg(this.el);
619
663
  return;
620
664
  }
621
665
  this.setupFadeFooter(contentEl);
622
- this.activeEffect = effect;
623
- }
624
- };
625
- this.setupScrollEffectHide = async (contentEl) => {
626
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
627
- el: this.el,
628
- cssVar: '--internal-footer-hide-height',
629
- hiddenClass: 'footer-scroll-hidden',
630
- contentPartnerClass: 'content-footer-hide-scroll-partner',
631
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
632
- });
633
- this.scrollHideCtrlPromise = setupPromise;
634
- const controller = await setupPromise;
635
- if (this.scrollHideCtrlPromise === setupPromise) {
636
- this.scrollHideCtrlPromise = null;
637
- controller.init();
638
- this.scrollHideCtrl = controller;
639
666
  }
640
667
  };
641
668
  this.setupFadeFooter = async (contentEl) => {
642
- const setupId = ++this.fadeSetupId;
643
- const scrollEl = await index$1.getScrollElement(contentEl);
644
- if (this.fadeSetupId !== setupId) {
645
- return;
646
- }
647
- this.scrollEl = scrollEl;
669
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
648
670
  /**
649
671
  * Handle fading of toolbars on scroll
650
672
  */
@@ -662,7 +684,7 @@ const Footer = class {
662
684
  this.checkCollapsibleFooter();
663
685
  }
664
686
  async connectedCallback() {
665
- const promise = scrollHideController.createKeyboardController(async (keyboardOpen, waitForResize) => {
687
+ const promise = keyboardController.createKeyboardController(async (keyboardOpen, waitForResize) => {
666
688
  /**
667
689
  * If the keyboard is hiding, then we need to wait
668
690
  * for the webview to resize. Otherwise, the footer
@@ -689,7 +711,6 @@ const Footer = class {
689
711
  }
690
712
  }
691
713
  disconnectedCallback() {
692
- this.destroyCollapsibleFooter();
693
714
  if (this.keyboardCtrlPromise) {
694
715
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
695
716
  this.keyboardCtrlPromise = null;
@@ -700,43 +721,29 @@ const Footer = class {
700
721
  }
701
722
  }
702
723
  destroyCollapsibleFooter() {
703
- this.activeEffect = undefined;
704
- this.fadeSetupId++;
705
- this.scrollHideCtrlPromise = null;
706
- if (this.scrollHideCtrl) {
707
- this.scrollHideCtrl.destroy();
708
- this.scrollHideCtrl = undefined;
709
- }
710
724
  if (this.scrollEl && this.contentScrollCallback) {
711
725
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
712
726
  this.contentScrollCallback = undefined;
713
727
  }
714
728
  }
715
729
  render() {
716
- const { translucent, scrollEffect, collapse } = this;
717
- const theme = ionicGlobal.getIonTheme(this);
718
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
719
- // fade via the deprecated `collapse` prop is iOS-only.
720
- const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
721
- const hasHide = effect === 'hide';
722
- const hasFade = effect === 'fade' && !isModeRestricted;
730
+ const { translucent, collapse } = this;
731
+ const mode = ionicGlobal.getIonMode(this);
723
732
  const tabs = this.el.closest('ion-tabs');
724
733
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
725
- return (index.h(index.Host, { key: 'a0777b4a639d22e15374879f018efcf589e756f8', role: "contentinfo", class: {
726
- [theme]: true,
734
+ return (index.h(index.Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
735
+ [mode]: true,
727
736
  // Used internally for styling
728
- [`footer-${theme}`]: true,
737
+ [`footer-${mode}`]: true,
729
738
  [`footer-translucent`]: translucent,
730
- [`footer-translucent-${theme}`]: translucent,
739
+ [`footer-translucent-${mode}`]: translucent,
731
740
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
732
- 'footer-collapse-fade': hasFade,
733
- 'footer-scroll-effect-hide': hasHide,
734
- } }, theme === 'ios' && translucent && index.h("div", { key: 'd78b46870cbf11c95b066d649c04ec398b66e614', class: "footer-background" }), index.h("slot", { key: '9dc34787cd29597fe1b1198db317602014ac1483' })));
741
+ [`footer-collapse-${collapse}`]: collapse !== undefined,
742
+ } }, mode === 'ios' && translucent && index.h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), index.h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
735
743
  }
736
744
  get el() { return index.getElement(this); }
737
745
  };
738
746
  Footer.style = {
739
- ionic: ionicFooterMdCss(),
740
747
  ios: footerIosCss(),
741
748
  md: footerMdCss()
742
749
  };
@@ -788,14 +795,13 @@ const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
788
795
  });
789
796
  };
790
797
  const setToolbarBackgroundOpacity = (headerEl, opacity) => {
791
- var _a;
792
798
  /**
793
799
  * Fading in the backdrop opacity
794
800
  * should happen after the large title
795
801
  * has collapsed, so it is handled
796
802
  * by handleHeaderFade()
797
803
  */
798
- if (((_a = headerEl.scrollEffect) !== null && _a !== void 0 ? _a : headerEl.collapse) === 'fade') {
804
+ if (headerEl.collapse === 'fade') {
799
805
  return;
800
806
  }
801
807
  if (opacity === undefined) {
@@ -953,69 +959,46 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
953
959
  * Get the role type for the ion-header.
954
960
  *
955
961
  * @param isInsideMenu If ion-header is inside ion-menu.
956
- * @returns 'none' if inside ion-menu, otherwise 'banner'.
957
- * Condensed headers start as 'banner' and have their role
958
- * toggled dynamically by setHeaderActive() on scroll.
962
+ * @param isCondensed If ion-header has collapse="condense".
963
+ * @param mode The current mode.
964
+ * @returns 'none' if inside ion-menu or if condensed in md
965
+ * mode, otherwise 'banner'.
959
966
  */
960
- const getRoleType = (isInsideMenu) => {
967
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
961
968
  // If the header is inside a menu, it should not have the banner role.
962
969
  if (isInsideMenu) {
963
970
  return ROLE_NONE;
964
971
  }
972
+ /**
973
+ * Only apply role="none" to `md` mode condensed headers
974
+ * since the large header is never shown.
975
+ */
976
+ if (isCondensed && mode === 'md') {
977
+ return ROLE_NONE;
978
+ }
965
979
  // Default to banner role.
966
980
  return ROLE_BANNER;
967
981
  };
968
982
 
969
- 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}}`;
970
-
971
- 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}`;
983
+ 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}`;
972
984
 
973
- 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}`;
985
+ 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}`;
974
986
 
975
987
  const Header = class {
976
988
  constructor(hostRef) {
977
989
  index.registerInstance(this, hostRef);
978
990
  this.inheritedAttributes = {};
979
- this.scrollHideCtrlPromise = null;
980
- this.hasWarnedCollapse = false;
981
- this.fadeCondenseSetupId = 0;
982
- /**
983
- * If `true`, the header will have a line at the bottom.
984
- * TODO(ROU-10855): add support for this prop on ios/md themes
985
- */
986
- this.divider = false;
987
991
  /**
988
992
  * If `true`, the header will be translucent.
989
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
993
+ * Only applies when the mode is `"ios"` and the device supports
990
994
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
991
995
  *
992
996
  * Note: In order to scroll content behind the header, the `fullscreen`
993
997
  * attribute needs to be set on the content.
994
998
  */
995
999
  this.translucent = false;
996
- this.setupScrollEffectHide = async (contentEl) => {
997
- const setupPromise = scrollHideController.createScrollHideController(contentEl, {
998
- el: this.el,
999
- cssVar: '--internal-header-hide-height',
1000
- hiddenClass: 'header-scroll-hidden',
1001
- contentPartnerClass: 'content-header-hide-scroll-partner',
1002
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1003
- });
1004
- this.scrollHideCtrlPromise = setupPromise;
1005
- const controller = await setupPromise;
1006
- if (this.scrollHideCtrlPromise === setupPromise) {
1007
- this.scrollHideCtrlPromise = null;
1008
- controller.init();
1009
- this.scrollHideCtrl = controller;
1010
- }
1011
- };
1012
1000
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
1013
- const setupId = ++this.fadeCondenseSetupId;
1014
- const scrollEl = await index$1.getScrollElement(contentEl);
1015
- if (this.fadeCondenseSetupId !== setupId) {
1016
- return;
1017
- }
1018
- this.scrollEl = scrollEl;
1001
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
1019
1002
  /**
1020
1003
  * Handle fading of toolbars on scroll
1021
1004
  */
@@ -1039,63 +1022,37 @@ const Header = class {
1039
1022
  this.destroyCollapsibleHeader();
1040
1023
  }
1041
1024
  async checkCollapsibleHeader() {
1042
- const { scrollEffect, collapse } = this;
1043
- if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
1044
- this.hasWarnedCollapse = true;
1045
- index.printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
1046
- }
1047
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1048
- // Skip teardown/rebuild if the effect hasn't changed.
1049
- // This prevents re-renders from destroying the scroll controller
1050
- // and resetting isHidden.
1051
- if (effect === this.activeEffect) {
1025
+ const mode = ionicGlobal.getIonMode(this);
1026
+ if (mode !== 'ios') {
1052
1027
  return;
1053
1028
  }
1054
- const hasHide = effect === 'hide';
1055
- const hasCondense = effect === 'condense';
1056
- const hasFade = effect === 'fade';
1029
+ const { collapse } = this;
1030
+ const hasCondense = collapse === 'condense';
1031
+ const hasFade = collapse === 'fade';
1057
1032
  this.destroyCollapsibleHeader();
1058
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
1059
- const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
1060
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1061
- if (hasHide && contentEl) {
1062
- this.activeEffect = effect;
1063
- await this.setupScrollEffectHide(contentEl);
1064
- return;
1065
- }
1066
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1067
- // condense/fade via the new `scrollEffect` prop work in all themes.
1068
- const isModeRestricted = scrollEffect === undefined && ionicGlobal.getIonTheme(this) !== 'ios';
1069
- if (hasCondense && !isModeRestricted) {
1033
+ if (hasCondense) {
1034
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1035
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1070
1036
  // Cloned elements are always needed in iOS transition
1071
1037
  index.writeTask(() => {
1072
1038
  const title = cloneElement('ion-title');
1073
1039
  title.size = 'large';
1074
1040
  cloneElement('ion-back-button');
1075
1041
  });
1076
- const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
1077
- if (didSetup) {
1078
- this.activeEffect = effect;
1079
- }
1042
+ await this.setupCondenseHeader(contentEl, pageEl);
1080
1043
  }
1081
- else if (hasFade && !isModeRestricted) {
1044
+ else if (hasFade) {
1045
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1046
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1082
1047
  if (!contentEl) {
1083
1048
  index$1.printIonContentErrorMsg(this.el);
1084
1049
  return;
1085
1050
  }
1086
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
1087
- this.activeEffect = effect;
1051
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1088
1052
  await this.setupFadeHeader(contentEl, condenseHeader);
1089
1053
  }
1090
1054
  }
1091
1055
  destroyCollapsibleHeader() {
1092
- this.activeEffect = undefined;
1093
- this.fadeCondenseSetupId++;
1094
- this.scrollHideCtrlPromise = null;
1095
- if (this.scrollHideCtrl) {
1096
- this.scrollHideCtrl.destroy();
1097
- this.scrollHideCtrl = undefined;
1098
- }
1099
1056
  if (this.intersectionObserver) {
1100
1057
  this.intersectionObserver.disconnect();
1101
1058
  this.intersectionObserver = undefined;
@@ -1112,40 +1069,21 @@ const Header = class {
1112
1069
  async setupCondenseHeader(contentEl, pageEl) {
1113
1070
  if (!contentEl || !pageEl) {
1114
1071
  index$1.printIonContentErrorMsg(this.el);
1115
- return false;
1072
+ return;
1116
1073
  }
1117
1074
  if (typeof IntersectionObserver === 'undefined') {
1118
- return false;
1119
- }
1120
- const setupId = ++this.fadeCondenseSetupId;
1121
- const scrollEl = await index$1.getScrollElement(contentEl);
1122
- if (this.fadeCondenseSetupId !== setupId) {
1123
- return false;
1124
- }
1125
- this.scrollEl = scrollEl;
1126
- /**
1127
- * The condense effect requires an ion-title with size="large"
1128
- * in the condense header. Without it, there is nothing to
1129
- * collapse into the main header toolbar.
1130
- */
1131
- const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
1132
- if (!hasLargeTitle) {
1133
- index.printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
1134
- return false;
1075
+ return;
1135
1076
  }
1077
+ this.scrollEl = await index$1.getScrollElement(contentEl);
1136
1078
  const headers = pageEl.querySelectorAll('ion-header');
1137
- this.collapsibleMainHeader = Array.from(headers).find((header) => {
1138
- var _a;
1139
- const effect = (_a = header.scrollEffect) !== null && _a !== void 0 ? _a : header.collapse;
1140
- return effect !== 'condense';
1141
- });
1079
+ this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
1142
1080
  if (!this.collapsibleMainHeader) {
1143
- return false;
1081
+ return;
1144
1082
  }
1145
1083
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
1146
1084
  const scrollHeaderIndex = createHeaderIndex(this.el);
1147
1085
  if (!mainHeaderIndex || !scrollHeaderIndex) {
1148
- return false;
1086
+ return;
1149
1087
  }
1150
1088
  setHeaderActive(mainHeaderIndex, false);
1151
1089
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -1177,45 +1115,31 @@ const Header = class {
1177
1115
  this.collapsibleMainHeader.classList.add('header-collapse-main');
1178
1116
  }
1179
1117
  });
1180
- return true;
1181
1118
  }
1182
1119
  render() {
1183
- const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
1184
- const theme$1 = ionicGlobal.getIonTheme(this);
1185
- const effect = scrollEffect !== null && scrollEffect !== void 0 ? scrollEffect : collapse;
1186
- // condense/fade via the deprecated `collapse` prop are iOS-only.
1187
- const isModeRestricted = scrollEffect === undefined && theme$1 !== 'ios';
1188
- const hasHide = effect === 'hide';
1189
- const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
1190
- const hasFade = effect === 'fade' && !isModeRestricted;
1191
- // The condense header should be hidden when
1192
- // - deprecated collapse prop is used on non-iOS (mode restricted), or
1193
- // - scrollEffect="condense" is set but no ion-title[size="large"] is present
1194
- const isHiddenCondense = effect === 'condense' && !hasCondense;
1120
+ const { translucent, inheritedAttributes } = this;
1121
+ const mode = ionicGlobal.getIonMode(this);
1122
+ const collapse = this.collapse || 'none';
1123
+ const isCondensed = collapse === 'condense';
1195
1124
  // banner role must be at top level, so remove role if inside a menu
1196
- const roleType = isHiddenCondense ? 'none' : getRoleType(theme.hostContext('ion-menu', this.el));
1197
- return (index.h(index.Host, Object.assign({ key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
1198
- [theme$1]: true,
1125
+ const roleType = getRoleType(theme.hostContext('ion-menu', this.el), isCondensed, mode);
1126
+ return (index.h(index.Host, Object.assign({ key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1127
+ [mode]: true,
1199
1128
  // Used internally for styling
1200
- [`header-${theme$1}`]: true,
1129
+ [`header-${mode}`]: true,
1201
1130
  [`header-translucent`]: this.translucent,
1202
- ['header-collapse-condense']: hasCondense,
1203
- ['header-collapse-condense-hidden']: isHiddenCondense,
1204
- ['header-collapse-fade']: hasFade,
1205
- [`header-translucent-${theme$1}`]: this.translucent,
1206
- ['header-divider']: divider,
1207
- 'header-scroll-effect-hide': hasHide,
1208
- } }, inheritedAttributes), theme$1 !== 'md' && translucent && index.h("div", { key: 'fd5ff245ae0166e5e1d50936cacc98c90625db48', class: "header-background" }), index.h("slot", { key: '1baa31af87b9eb6406a21073ec65afa191dfbb3d' })));
1131
+ [`header-collapse-${collapse}`]: true,
1132
+ [`header-translucent-${mode}`]: this.translucent,
1133
+ } }, inheritedAttributes), mode === 'ios' && translucent && index.h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), index.h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1209
1134
  }
1210
1135
  get el() { return index.getElement(this); }
1211
1136
  };
1212
1137
  Header.style = {
1213
- ionic: headerIonicCss(),
1214
1138
  ios: headerIosCss(),
1215
1139
  md: headerMdCss()
1216
1140
  };
1217
1141
 
1218
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1142
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1219
1143
 
1220
1144
  const RouterOutlet = class {
1221
1145
  constructor(hostRef) {
@@ -1226,7 +1150,7 @@ const RouterOutlet = class {
1226
1150
  this.lockController = lockController.createLockController();
1227
1151
  this.gestureOrAnimationInProgress = false;
1228
1152
  /**
1229
- * The mode determines the platform behaviors of the component.
1153
+ * The mode determines which platform styles to use.
1230
1154
  */
1231
1155
  this.mode = ionicGlobal.getIonMode(this);
1232
1156
  /**
@@ -1234,10 +1158,11 @@ const RouterOutlet = class {
1234
1158
  */
1235
1159
  this.animated = true;
1236
1160
  }
1161
+ swipeGestureChanged() {
1162
+ this.updateGestureEnabled();
1163
+ }
1237
1164
  swipeHandlerChanged() {
1238
- if (this.gesture) {
1239
- this.gesture.enable(this.swipeHandler !== undefined);
1240
- }
1165
+ this.updateGestureEnabled();
1241
1166
  }
1242
1167
  async connectedCallback() {
1243
1168
  const onStart = () => {
@@ -1246,7 +1171,7 @@ const RouterOutlet = class {
1246
1171
  this.swipeHandler.onStart();
1247
1172
  }
1248
1173
  };
1249
- this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-CvZt_4YX.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) => {
1174
+ this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-C0GCB18x.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) => {
1250
1175
  if (this.ani) {
1251
1176
  this.ani.onFinish(() => {
1252
1177
  this.gestureOrAnimationInProgress = false;
@@ -1277,11 +1202,21 @@ const RouterOutlet = class {
1277
1202
  this.gestureOrAnimationInProgress = false;
1278
1203
  }
1279
1204
  });
1280
- this.swipeHandlerChanged();
1205
+ if (this.swipeGesture === undefined) {
1206
+ this.swipeGesture = index.config.getBoolean('swipeBackEnabled', this.mode === 'ios');
1207
+ }
1208
+ else {
1209
+ this.updateGestureEnabled();
1210
+ }
1281
1211
  }
1282
1212
  componentWillLoad() {
1283
1213
  this.ionNavWillLoad.emit();
1284
1214
  }
1215
+ updateGestureEnabled() {
1216
+ if (this.gesture) {
1217
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
1218
+ }
1219
+ }
1285
1220
  disconnectedCallback() {
1286
1221
  if (this.gesture) {
1287
1222
  this.gesture.destroy();
@@ -1392,10 +1327,13 @@ const RouterOutlet = class {
1392
1327
  return true;
1393
1328
  }
1394
1329
  render() {
1395
- return index.h("slot", { key: '56e3d06ed939755796058e30ef19fbc7f7cb490d' });
1330
+ return index.h("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
1396
1331
  }
1397
1332
  get el() { return index.getElement(this); }
1398
1333
  static get watchers() { return {
1334
+ "swipeGesture": [{
1335
+ "swipeGestureChanged": 0
1336
+ }],
1399
1337
  "swipeHandler": [{
1400
1338
  "swipeHandlerChanged": 0
1401
1339
  }]
@@ -1403,11 +1341,9 @@ const RouterOutlet = class {
1403
1341
  };
1404
1342
  RouterOutlet.style = routerOutletCss();
1405
1343
 
1406
- 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}`;
1407
-
1408
- 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)}}`;
1344
+ 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)}}`;
1409
1345
 
1410
- 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}`;
1346
+ 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}`;
1411
1347
 
1412
1348
  const ToolbarTitle = class {
1413
1349
  constructor(hostRef) {
@@ -1430,13 +1366,13 @@ const ToolbarTitle = class {
1430
1366
  return this.size !== undefined ? this.size : 'default';
1431
1367
  }
1432
1368
  render() {
1433
- const theme$1 = ionicGlobal.getIonTheme(this);
1369
+ const mode = ionicGlobal.getIonMode(this);
1434
1370
  const size = this.getSize();
1435
- return (index.h(index.Host, { key: 'd64e86bed418cba707d4a26c9274f18ed06c0e9e', class: theme.createColorClasses(this.color, {
1436
- [theme$1]: true,
1371
+ return (index.h(index.Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: theme.createColorClasses(this.color, {
1372
+ [mode]: true,
1437
1373
  [`title-${size}`]: true,
1438
1374
  'title-rtl': document.dir === 'rtl',
1439
- }) }, index.h("div", { key: '386a71e974cde0bfbf5b655d69ed5f718de8ce48', class: "toolbar-title" }, index.h("slot", { key: '8aa804c9e1b11574a42268805d3117a085e699b4' }))));
1375
+ }) }, index.h("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, index.h("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
1440
1376
  }
1441
1377
  get el() { return index.getElement(this); }
1442
1378
  static get watchers() { return {
@@ -1446,29 +1382,18 @@ const ToolbarTitle = class {
1446
1382
  }; }
1447
1383
  };
1448
1384
  ToolbarTitle.style = {
1449
- ionic: titleIonicCss(),
1450
1385
  ios: titleIosCss(),
1451
1386
  md: titleMdCss()
1452
1387
  };
1453
1388
 
1454
- 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}`;
1389
+ 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%}`;
1455
1390
 
1456
- 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%}`;
1457
-
1458
- 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}`;
1391
+ 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}`;
1459
1392
 
1460
1393
  const Toolbar = class {
1461
1394
  constructor(hostRef) {
1462
1395
  index.registerInstance(this, hostRef);
1463
1396
  this.childrenStyles = new Map();
1464
- this.slotClasses = [
1465
- 'has-start-content',
1466
- 'has-end-content',
1467
- 'has-primary-content',
1468
- 'has-secondary-content',
1469
- ];
1470
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1471
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1472
1397
  }
1473
1398
  componentWillLoad() {
1474
1399
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1485,173 +1410,6 @@ const Toolbar = class {
1485
1410
  if (lastButtons) {
1486
1411
  lastButtons.classList.add('buttons-last-slot');
1487
1412
  }
1488
- this.updateSlotClasses();
1489
- }
1490
- componentDidLoad() {
1491
- this.updateSlotClasses();
1492
- this.updateSlotWidths();
1493
- }
1494
- titlePlacementChanged() {
1495
- this.updateSlotClasses();
1496
- }
1497
- /**
1498
- * Gets the title placement.
1499
- * Returns the title placement if it is set, otherwise returns `"center"`
1500
- * for `ionic` and `ios`, and `"start"` for `md`.
1501
- */
1502
- getTitlePlacement() {
1503
- if (this.titlePlacement !== undefined) {
1504
- return this.titlePlacement;
1505
- }
1506
- return ionicGlobal.getIonTheme(this) === 'ionic' || ionicGlobal.getIonTheme(this) === 'ios' ? 'center' : 'start';
1507
- }
1508
- /**
1509
- * Updates the CSS custom properties for slot widths
1510
- * This ensures that slots shown by their met conditions
1511
- * have a minimum width matching their required slot
1512
- */
1513
- updateSlotWidths(tries = 0) {
1514
- // Set timeout to try to execute after everything is rendered
1515
- setTimeout(() => {
1516
- // Attempt to measure and update
1517
- const success = this.measureAndUpdateSlots();
1518
- // If not all measurements were successful, try again in 100 ms
1519
- // cap recursion at 5 tries for safety
1520
- if (!success && tries < 5) {
1521
- setTimeout(() => {
1522
- this.updateSlotWidths(tries + 1);
1523
- }, 100);
1524
- }
1525
- });
1526
- }
1527
- /**
1528
- * Measure the widths of the slots and update the CSS custom properties
1529
- * for the minimum width of each pair of slots based on the largest width in each pair.
1530
- * Returns whether we successfully measured all of the slots we expect to have content.
1531
- * If not, the content probably hasn't rendered yet and we need to try again.
1532
- */
1533
- measureAndUpdateSlots() {
1534
- // Define the relationship between slots based on the conditions array
1535
- // Group slots that should have the same width
1536
- const slotPairs = [
1537
- { name: 'start-end', slots: ['start', 'end'] },
1538
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1539
- ];
1540
- // First, measure all slot widths
1541
- const slotWidths = new Map();
1542
- let allMeasurementsSuccessful = true;
1543
- // Measure all slots with content
1544
- const slots = ['start', 'end', 'primary', 'secondary'];
1545
- slots.forEach((slot) => {
1546
- var _a;
1547
- if (this.el.classList.contains(`has-${slot}-content`)) {
1548
- const slotElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slot}"]`);
1549
- if (slotElement) {
1550
- // Check if the slot contains an img or ion-img
1551
- const assignedElements = slotElement.assignedElements({ flatten: true });
1552
- const hasImg = assignedElements.some((el) => {
1553
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1554
- return true;
1555
- }
1556
- // Check for nested images
1557
- return el.querySelector('img, ion-img');
1558
- });
1559
- // Temporarily allow slot to size to content by setting flex-basis
1560
- // to 'auto'. This ensures that slotted images can render at their
1561
- // intrinsic width for measurement.
1562
- if (hasImg) {
1563
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1564
- this.el.style.setProperty(`--${name}-size`, 'auto');
1565
- }
1566
- const width = slotElement.offsetWidth;
1567
- if (width > 0) {
1568
- slotWidths.set(slot, width);
1569
- }
1570
- else {
1571
- allMeasurementsSuccessful = false;
1572
- }
1573
- }
1574
- }
1575
- });
1576
- // Then set the CSS custom properties based on the largest width in each pair
1577
- slotPairs.forEach(({ name, slots }) => {
1578
- // Find the maximum width among the slots in this pair
1579
- let maxWidth = 0;
1580
- let hasAnyContent = false;
1581
- slots.forEach((slot) => {
1582
- var _a;
1583
- if (slotWidths.has(slot)) {
1584
- hasAnyContent = true;
1585
- maxWidth = Math.max(maxWidth, (_a = slotWidths.get(slot)) !== null && _a !== void 0 ? _a : 0);
1586
- }
1587
- });
1588
- // If at least one slot in the pair has content, set the min-width for the pair
1589
- if (hasAnyContent && maxWidth > 0) {
1590
- // Set a single CSS variable for the pair
1591
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1592
- }
1593
- });
1594
- return allMeasurementsSuccessful;
1595
- }
1596
- /**
1597
- * Removes all slot visibility classes and slot width CSS variables.
1598
- */
1599
- removeSlotClasses() {
1600
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1601
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1602
- }
1603
- updateSlotClasses() {
1604
- const titlePlacement = this.getTitlePlacement();
1605
- if (titlePlacement !== 'center') {
1606
- this.removeSlotClasses();
1607
- return;
1608
- }
1609
- // Check if slots have content
1610
- const slots = ['start', 'end', 'primary', 'secondary'];
1611
- const classesToAdd = [];
1612
- const classesToRemove = [];
1613
- slots.forEach((slot) => {
1614
- const slotHasContent = this.hasSlotContent(slot);
1615
- const slotClass = `has-${slot}-content`;
1616
- if (slotHasContent) {
1617
- classesToAdd.push(slotClass);
1618
- }
1619
- else {
1620
- classesToRemove.push(slotClass);
1621
- }
1622
- });
1623
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1624
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1625
- // and does not have any of the excluded slots, otherwise it will be removed.
1626
- // This is useful to enforce centering of the toolbar content when there are different amounts
1627
- // of slots on either side of the toolbar.
1628
- const conditions = [
1629
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1630
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1631
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1632
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1633
- ];
1634
- conditions.forEach((condition) => {
1635
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1636
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1637
- const className = `show-${condition.name}`;
1638
- if (hasRequiredSlots && !hasExcludedSlots) {
1639
- classesToAdd.push(className);
1640
- }
1641
- else {
1642
- classesToRemove.push(className);
1643
- }
1644
- });
1645
- // Add classes to the toolbar element
1646
- this.el.classList.add(...classesToAdd);
1647
- this.el.classList.remove(...classesToRemove);
1648
- // Update slot widths after classes have been updated
1649
- this.updateSlotWidths();
1650
- }
1651
- hasSlotContent(slotName) {
1652
- var _a;
1653
- const slotNode = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slotName}"]`);
1654
- return !!slotNode && slotNode.assignedNodes().length > 0;
1655
1413
  }
1656
1414
  childrenStyle(ev) {
1657
1415
  ev.stopPropagation();
@@ -1676,27 +1434,19 @@ const Toolbar = class {
1676
1434
  }
1677
1435
  }
1678
1436
  render() {
1679
- const theme$1 = ionicGlobal.getIonTheme(this);
1437
+ const mode = ionicGlobal.getIonMode(this);
1680
1438
  const childStyles = {};
1681
- this.childrenStyles.forEach((style) => {
1682
- Object.assign(childStyles, style);
1439
+ this.childrenStyles.forEach((value) => {
1440
+ Object.assign(childStyles, value);
1683
1441
  });
1684
- const titlePlacement = this.getTitlePlacement();
1685
- return (index.h(index.Host, { key: 'bcb621674157410d7eaeb006779bdd677346587e', class: Object.assign(Object.assign({}, theme.createColorClasses(this.color, {
1686
- [theme$1]: true,
1442
+ return (index.h(index.Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
1443
+ [mode]: true,
1687
1444
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
1688
- [`toolbar-title-placement-${titlePlacement}`]: true,
1689
- })), childStyles) }, index.h("div", { key: '0d31a98b2571b9a0ae142fbdfd83e2ebdcd8e069', class: "toolbar-background", part: "background" }), index.h("div", { key: 'de938534c487c6cb4060dac44b40c2d872130f50', class: "toolbar-container", part: "container" }, index.h("slot", { key: 'a337150d353e439eae67c31ff86e383ed51f3d8f', name: "start", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: '02effd3ce0cdad5ec5645fa58ccb329321449190', name: "secondary", onSlotchange: () => this.updateSlotClasses }), index.h("div", { key: '3e22f5feda2aea02117bdea2fe8a4b8905ba82f6', class: "toolbar-content", part: "content" }, index.h("slot", { key: 'ebf828643ff05a8bf662a54715d21d0859168d31' })), index.h("slot", { key: 'a6940648dfe25a7aa8792a1bd9267437274f333c', name: "primary", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: 'afb1d61aa0e430fcf483ba482af64762474e06fe', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1445
+ })) }, index.h("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), index.h("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, index.h("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), index.h("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), index.h("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, index.h("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), index.h("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), index.h("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
1690
1446
  }
1691
1447
  get el() { return index.getElement(this); }
1692
- static get watchers() { return {
1693
- "titlePlacement": [{
1694
- "titlePlacementChanged": 0
1695
- }]
1696
- }; }
1697
1448
  };
1698
1449
  Toolbar.style = {
1699
- ionic: toolbarIonicCss(),
1700
1450
  ios: toolbarIosCss(),
1701
1451
  md: toolbarMdCss()
1702
1452
  };