@ionic/core 8.8.9-dev.11780493937.17fe092d → 8.8.9-dev.11780604658.184bb991

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 (1118) 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--JUspHvy.js +4 -0
  99. package/components/p-B8U2xbtx.js +4 -0
  100. package/components/p-B9jFTlwE.js +4 -0
  101. package/components/{p-oF-CwZ0b.js → p-BAYYcg3o.js} +1 -1
  102. package/components/p-BTPfOxsU.js +4 -0
  103. package/{dist/ionic/p-B2-sg7NJ.js → components/p-BT_5jSqG.js} +1 -1
  104. package/components/p-Baq1XyAy.js +4 -0
  105. package/components/p-BhmadOit.js +4 -0
  106. package/components/p-BirPFsRD.js +4 -0
  107. package/components/p-BjfgFSSR.js +4 -0
  108. package/components/p-BmVRXR1y.js +4 -0
  109. package/components/p-BnqQlm7c.js +4 -0
  110. package/components/p-BtVHN9Na.js +4 -0
  111. package/components/p-Bz0dSlXZ.js +4 -0
  112. package/components/p-C1aScSTo.js +4 -0
  113. package/components/p-C4t5ymfq.js +4 -0
  114. package/components/p-CHqRYvYm.js +4 -0
  115. package/components/p-CHzfYZbv.js +4 -0
  116. package/components/p-CI3ncNZm.js +4 -0
  117. package/components/p-CIGNaXM1.js +4 -0
  118. package/components/p-CO7fmmxt.js +4 -0
  119. package/components/p-CSZf8_j0.js +4 -0
  120. package/components/p-C_xFdyXe.js +4 -0
  121. package/components/p-Ciz1-FuE.js +4 -0
  122. package/components/p-Ck2wcXbv.js +4 -0
  123. package/components/p-CmR5uXej.js +4 -0
  124. package/components/p-CtWGkNnJ.js +4 -0
  125. package/components/p-CtukzcyX.js +4 -0
  126. package/{dist/ionic/p-CuGhCBt7.js → components/p-D13Eaw-8.js} +1 -1
  127. package/components/{p-ByW0kK1F.js → p-D5Ubpm7D.js} +1 -1
  128. package/components/p-D6Ynv7Xh.js +4 -0
  129. package/components/p-D7bSXQD3.js +4 -0
  130. package/components/p-DEBD4LvH.js +4 -0
  131. package/components/p-DH50pr9O.js +4 -0
  132. package/components/p-DIE4pXMl.js +4 -0
  133. package/components/p-DJztqcrH.js +4 -0
  134. package/components/{p-DXehWlOr.js → p-DNQI6d-L.js} +1 -1
  135. package/components/p-DOFCbuQR.js +4 -0
  136. package/components/p-DhkITZ-y.js +4 -0
  137. package/components/p-DiVJyqlX.js +4 -0
  138. package/components/p-DmpBvltk.js +4 -0
  139. package/components/p-DnL1c9_X.js +4 -0
  140. package/components/p-DpV-p5Xs.js +4 -0
  141. package/components/{p-zWP0sUV_.js → p-DqLB8yFQ.js} +1 -1
  142. package/components/p-DqZAXv2t.js +4 -0
  143. package/components/p-Dz74mwlk.js +4 -0
  144. package/components/{p-BcbmT6b3.js → p-Sh0ICmPV.js} +1 -1
  145. package/components/p-W5nO8mX_.js +4 -0
  146. package/components/p-XJWMAP8m.js +4 -0
  147. package/components/p-ZjP4CjeZ.js +4 -0
  148. package/components/{p-re70ahxF.js → p-cyNmxje6.js} +1 -1
  149. package/components/p-djQLE88P.js +4 -0
  150. package/components/{p-wCDzv5Q8.js → p-ijF0iCrA.js} +1 -1
  151. package/components/p-j5IxBIan.js +4 -0
  152. package/components/p-k_E4tX5Z.js +4 -0
  153. package/components/p-lE_JGpHD.js +4 -0
  154. package/components/p-r0aq7dpt.js +4 -0
  155. package/components/p-ryqmO0B-.js +4 -0
  156. package/components/p-wk2QqrAo.js +4 -0
  157. package/css/core.css +1 -1
  158. package/css/core.css.map +1 -1
  159. package/css/display.css +1 -1
  160. package/css/display.css.map +1 -1
  161. package/css/flex-utils.css +1 -1
  162. package/css/flex-utils.css.map +1 -1
  163. package/css/float-elements.css.map +1 -1
  164. package/css/global.bundle.css.map +1 -1
  165. package/css/ionic-swiper.css +1 -1
  166. package/css/ionic-swiper.css.map +1 -1
  167. package/css/ionic.bundle.css +1 -1
  168. package/css/ionic.bundle.css.map +1 -1
  169. package/css/normalize.css.map +1 -1
  170. package/css/padding.css.map +1 -1
  171. package/css/palettes/dark.always.css.map +1 -1
  172. package/css/palettes/dark.class.css.map +1 -1
  173. package/css/palettes/dark.system.css.map +1 -1
  174. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  175. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  176. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  177. package/css/palettes/high-contrast.always.css.map +1 -1
  178. package/css/palettes/high-contrast.class.css.map +1 -1
  179. package/css/palettes/high-contrast.system.css.map +1 -1
  180. package/css/structure.css.map +1 -1
  181. package/css/text-alignment.css.map +1 -1
  182. package/css/text-transformation.css.map +1 -1
  183. package/css/typography.css.map +1 -1
  184. package/css/utils.bundle.css +1 -1
  185. package/css/utils.bundle.css.map +1 -1
  186. package/dist/cjs/{animation-BZJ2wKuM.js → animation-BJq0kcy2.js} +3 -3
  187. package/dist/cjs/{app-globals-C-d5fQ35.js → app-globals-BlqrqKTN.js} +1 -1
  188. package/dist/cjs/{button-active-B_20Nxkv.js → button-active-0mPOKmV2.js} +2 -2
  189. package/dist/cjs/{capacitor-CXqhdZym.js → capacitor-DmA66EwP.js} +3 -3
  190. package/dist/cjs/{index-BJlwOs11.js → config-xninhj0J.js} +31 -1
  191. package/dist/cjs/{data-DuOuKG7I.js → data-DLTUw-KF.js} +6 -6
  192. package/dist/{esm/focus-visible-vXpMhGrs.js → cjs/focus-visible-CCvKiLh3.js} +3 -23
  193. package/dist/cjs/{framework-delegate-Dx9FrqAC.js → framework-delegate-BtICZDHr.js} +2 -4
  194. package/dist/cjs/{haptic-CQJGW58i.js → haptic-ClPPQ_PS.js} +1 -1
  195. package/dist/cjs/hardware-back-button-iUuF_76h.js +121 -0
  196. package/dist/cjs/{helpers-DJYxKN5U.js → helpers-Cv23MFHM.js} +4 -57
  197. package/dist/cjs/{index-DSNlrgfO.js → index-BERfRao3.js} +4 -4
  198. package/dist/cjs/{index-BJrpF9T3.js → index-CIrkNXqJ.js} +2 -2
  199. package/dist/cjs/{index-CzcLEdQ5.js → index-Ct7gcRif.js} +71 -64
  200. package/dist/cjs/{index-CwxYd6UD.js → index-D81eLYUM.js} +8 -9
  201. package/dist/cjs/index-DkNv4J_i.js +10 -0
  202. package/dist/cjs/{index-CgAbCW6L.js → index-DqmRDbxg.js} +0 -2
  203. package/dist/cjs/{index-BekUBS8C.js → index-aC4x3Fk3.js} +15 -15
  204. package/dist/cjs/index.cjs.js +16 -17
  205. package/dist/cjs/{input-shims-VyZciSxi.js → input-shims-CFLg7uzj.js} +17 -18
  206. package/dist/cjs/{input.utils-Ct5KzpYv.js → input.utils-DetjmtH2.js} +5 -5
  207. package/dist/cjs/ion-accordion_2.cjs.entry.js +29 -61
  208. package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -41
  209. package/dist/cjs/ion-alert.cjs.entry.js +45 -62
  210. package/dist/cjs/ion-app_8.cjs.entry.js +189 -568
  211. package/dist/cjs/ion-avatar_3.cjs.entry.js +13 -125
  212. package/dist/cjs/ion-back-button.cjs.entry.js +22 -31
  213. package/dist/cjs/ion-backdrop.cjs.entry.js +7 -10
  214. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +18 -54
  215. package/dist/cjs/ion-button_2.cjs.entry.js +22 -59
  216. package/dist/cjs/ion-card_5.cjs.entry.js +33 -55
  217. package/dist/cjs/ion-checkbox.cjs.entry.js +16 -34
  218. package/dist/cjs/ion-chip.cjs.entry.js +9 -50
  219. package/dist/cjs/ion-col_3.cjs.entry.js +57 -56
  220. package/dist/cjs/ion-datetime-button.cjs.entry.js +9 -13
  221. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +29 -742
  222. package/dist/cjs/ion-fab_3.cjs.entry.js +28 -44
  223. package/dist/cjs/ion-img.cjs.entry.js +4 -8
  224. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -93
  225. package/dist/cjs/ion-input-otp.cjs.entry.js +9 -74
  226. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +15 -53
  227. package/dist/cjs/ion-input.cjs.entry.js +35 -125
  228. package/dist/cjs/ion-item-option_3.cjs.entry.js +52 -467
  229. package/dist/cjs/ion-item_8.cjs.entry.js +49 -116
  230. package/dist/cjs/ion-loading.cjs.entry.js +23 -22
  231. package/dist/cjs/ion-menu_3.cjs.entry.js +29 -47
  232. package/dist/cjs/ion-modal.cjs.entry.js +142 -262
  233. package/dist/cjs/ion-nav_2.cjs.entry.js +11 -14
  234. package/dist/cjs/ion-picker-column-option.cjs.entry.js +8 -12
  235. package/dist/cjs/ion-picker-column.cjs.entry.js +14 -14
  236. package/dist/cjs/ion-picker.cjs.entry.js +6 -10
  237. package/dist/cjs/ion-popover.cjs.entry.js +23 -21
  238. package/dist/cjs/ion-progress-bar.cjs.entry.js +9 -27
  239. package/dist/cjs/ion-radio_2.cjs.entry.js +17 -35
  240. package/dist/cjs/ion-range.cjs.entry.js +13 -20
  241. package/dist/cjs/ion-refresher_2.cjs.entry.js +23 -42
  242. package/dist/cjs/ion-reorder_2.cjs.entry.js +15 -39
  243. package/dist/cjs/ion-ripple-effect.cjs.entry.js +7 -15
  244. package/dist/cjs/ion-route_4.cjs.entry.js +9 -10
  245. package/dist/cjs/ion-searchbar.cjs.entry.js +25 -138
  246. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  247. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -13
  248. package/dist/cjs/ion-segment_2.cjs.entry.js +16 -23
  249. package/dist/cjs/ion-select-modal.cjs.entry.js +40 -97
  250. package/dist/cjs/ion-select_3.cjs.entry.js +115 -453
  251. package/dist/cjs/ion-spinner.cjs.entry.js +8 -30
  252. package/dist/cjs/ion-split-pane.cjs.entry.js +9 -13
  253. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +23 -147
  254. package/dist/cjs/ion-tab_2.cjs.entry.js +7 -8
  255. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  256. package/dist/cjs/ion-textarea.cjs.entry.js +23 -137
  257. package/dist/cjs/ion-toast.cjs.entry.js +47 -71
  258. package/dist/cjs/ion-toggle.cjs.entry.js +27 -84
  259. package/dist/cjs/ionic-global-B-cA6LkY.js +151 -0
  260. package/dist/cjs/ionic.cjs.js +5 -5
  261. package/dist/cjs/{ios.transition-CyNNpj1i.js → ios.transition-BOSWOaiK.js} +5 -7
  262. package/dist/cjs/{keyboard-VLGMzWBE.js → keyboard-UuAS4D_9.js} +1 -1
  263. package/dist/cjs/{keyboard-controller-CCTvHp9l.js → keyboard-controller-GXBiBRKS.js} +9 -11
  264. package/dist/cjs/{keyboard-CA6RtoWx.js → keyboard-hHzlEQpk.js} +3 -4
  265. package/dist/cjs/loader.cjs.js +4 -4
  266. package/dist/cjs/{md.transition-BEfrfWKW.js → md.transition-B8-wBZqt.js} +5 -6
  267. package/dist/cjs/{notch-controller-BTZCPOsd.js → notch-controller-18PzRGXd.js} +4 -4
  268. package/dist/cjs/{overlays-BuMIwR8B.js → overlays-DSmSrd_4.js} +42 -117
  269. package/dist/cjs/{status-tap-CTY2dMsZ.js → status-tap-BXX8H8_Y.js} +3 -4
  270. package/dist/cjs/{swipe-back-jJFi5KCB.js → swipe-back-C0GCB18x.js} +2 -3
  271. package/dist/cjs/{theme-IlOsGAz7.js → theme-CeDs6Hcv.js} +1 -25
  272. package/dist/cjs/validity-BpS37YFM.js +19 -0
  273. package/dist/collection/collection-manifest.json +3 -13
  274. package/dist/collection/components/accordion/accordion.ios.css +58 -73
  275. package/dist/collection/components/accordion/accordion.js +27 -41
  276. package/dist/collection/components/accordion/accordion.md.css +59 -67
  277. package/dist/collection/components/accordion-group/accordion-group.ios.css +4 -16
  278. package/dist/collection/components/accordion-group/accordion-group.js +8 -44
  279. package/dist/collection/components/accordion-group/accordion-group.md.css +4 -22
  280. package/dist/collection/components/action-sheet/action-sheet.ios.css +6 -102
  281. package/dist/collection/components/action-sheet/action-sheet.js +18 -33
  282. package/dist/collection/components/action-sheet/action-sheet.md.css +5 -101
  283. package/dist/collection/components/alert/alert.ios.css +1 -102
  284. package/dist/collection/components/alert/alert.js +35 -52
  285. package/dist/collection/components/alert/alert.md.css +1 -102
  286. package/dist/collection/components/app/app.js +83 -15
  287. package/dist/collection/components/avatar/avatar.ios.css +33 -7
  288. package/dist/collection/components/avatar/avatar.js +4 -120
  289. package/dist/collection/components/avatar/avatar.md.css +0 -51
  290. package/dist/collection/components/back-button/back-button.ios.css +48 -60
  291. package/dist/collection/components/back-button/back-button.js +19 -27
  292. package/dist/collection/components/back-button/back-button.md.css +48 -60
  293. package/dist/collection/components/backdrop/backdrop.ios.css +19 -56
  294. package/dist/collection/components/backdrop/backdrop.js +6 -12
  295. package/dist/collection/components/backdrop/backdrop.md.css +19 -56
  296. package/dist/collection/components/badge/badge.ios.css +12 -139
  297. package/dist/collection/components/badge/badge.js +9 -145
  298. package/dist/collection/components/badge/badge.md.css +12 -123
  299. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +8 -20
  300. package/dist/collection/components/breadcrumb/breadcrumb.js +11 -43
  301. package/dist/collection/components/breadcrumb/breadcrumb.md.css +8 -20
  302. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +0 -6
  303. package/dist/collection/components/breadcrumbs/breadcrumbs.js +9 -11
  304. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +0 -6
  305. package/dist/collection/components/button/button.ios.css +46 -154
  306. package/dist/collection/components/button/button.js +27 -63
  307. package/dist/collection/components/button/button.md.css +50 -150
  308. package/dist/collection/components/buttons/buttons.ios.css +7 -59
  309. package/dist/collection/components/buttons/buttons.js +9 -15
  310. package/dist/collection/components/buttons/buttons.md.css +3 -55
  311. package/dist/collection/components/card/card.ios.css +14 -65
  312. package/dist/collection/components/card/card.js +10 -41
  313. package/dist/collection/components/card/card.md.css +14 -65
  314. package/dist/collection/components/card-content/card-content.ios.css +35 -20
  315. package/dist/collection/components/card-content/card-content.js +10 -12
  316. package/dist/collection/components/card-content/card-content.md.css +35 -20
  317. package/dist/collection/components/card-header/card-header.ios.css +15 -27
  318. package/dist/collection/components/card-header/card-header.js +10 -13
  319. package/dist/collection/components/card-header/card-header.md.css +15 -27
  320. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +0 -12
  321. package/dist/collection/components/card-subtitle/card-subtitle.js +8 -11
  322. package/dist/collection/components/card-subtitle/card-subtitle.md.css +0 -12
  323. package/dist/collection/components/card-title/card-title.ios.css +0 -73
  324. package/dist/collection/components/card-title/card-title.js +8 -11
  325. package/dist/collection/components/card-title/card-title.md.css +0 -73
  326. package/dist/collection/components/checkbox/checkbox.ios.css +101 -161
  327. package/dist/collection/components/checkbox/checkbox.js +14 -70
  328. package/dist/collection/components/checkbox/checkbox.md.css +102 -162
  329. package/dist/collection/components/chip/chip.ios.css +14 -67
  330. package/dist/collection/components/chip/chip.js +8 -108
  331. package/dist/collection/components/chip/chip.md.css +14 -67
  332. package/dist/collection/components/col/col.css +4 -192
  333. package/dist/collection/components/col/col.js +61 -211
  334. package/dist/collection/components/content/content.css +2 -64
  335. package/dist/collection/components/content/content.js +11 -16
  336. package/dist/collection/components/datetime/datetime.ios.css +106 -302
  337. package/dist/collection/components/datetime/datetime.js +20 -98
  338. package/dist/collection/components/datetime/datetime.md.css +96 -293
  339. package/dist/collection/components/datetime/utils/data.js +5 -5
  340. package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -6
  341. package/dist/collection/components/datetime-button/datetime-button.js +8 -11
  342. package/dist/collection/components/datetime-button/datetime-button.md.css +0 -6
  343. package/dist/collection/components/fab/fab.css +1 -25
  344. package/dist/collection/components/fab/fab.js +5 -9
  345. package/dist/collection/components/fab-button/fab-button.ios.css +6 -18
  346. package/dist/collection/components/fab-button/fab-button.js +21 -36
  347. package/dist/collection/components/fab-button/fab-button.md.css +8 -20
  348. package/dist/collection/components/fab-list/fab-list.css +0 -12
  349. package/dist/collection/components/fab-list/fab-list.js +5 -9
  350. package/dist/collection/components/footer/footer.ios.css +2 -27
  351. package/dist/collection/components/footer/footer.js +28 -80
  352. package/dist/collection/components/footer/footer.md.css +0 -25
  353. package/dist/collection/components/footer/footer.utils.js +0 -9
  354. package/dist/collection/components/grid/grid.css +0 -12
  355. package/dist/collection/components/grid/grid.js +5 -9
  356. package/dist/collection/components/header/header.ios.css +3 -93
  357. package/dist/collection/components/header/header.js +26 -87
  358. package/dist/collection/components/header/header.md.css +1 -91
  359. package/dist/collection/components/header/header.utils.js +5 -14
  360. package/dist/collection/components/img/img.js +2 -8
  361. package/dist/collection/components/infinite-scroll/infinite-scroll.js +5 -100
  362. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +0 -12
  363. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +10 -16
  364. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +0 -12
  365. package/dist/collection/components/input/input.ios.css +135 -223
  366. package/dist/collection/components/input/input.js +42 -153
  367. package/dist/collection/components/input/input.md.css +207 -193
  368. package/dist/collection/components/input-otp/input-otp.ios.css +60 -105
  369. package/dist/collection/components/input-otp/input-otp.js +6 -73
  370. package/dist/collection/components/input-otp/input-otp.md.css +60 -105
  371. package/dist/collection/components/input-password-toggle/input-password-toggle.js +12 -48
  372. package/dist/collection/components/item/item.ios.css +69 -109
  373. package/dist/collection/components/item/item.js +20 -51
  374. package/dist/collection/components/item/item.md.css +68 -120
  375. package/dist/collection/components/item-divider/item-divider.ios.css +0 -18
  376. package/dist/collection/components/item-divider/item-divider.js +8 -11
  377. package/dist/collection/components/item-divider/item-divider.md.css +0 -18
  378. package/dist/collection/components/item-group/item-group.ios.css +0 -12
  379. package/dist/collection/components/item-group/item-group.js +7 -13
  380. package/dist/collection/components/item-group/item-group.md.css +0 -12
  381. package/dist/collection/components/item-option/item-option.ios.css +29 -136
  382. package/dist/collection/components/item-option/item-option.js +9 -73
  383. package/dist/collection/components/item-option/item-option.md.css +29 -136
  384. package/dist/collection/components/item-options/item-options.ios.css +34 -77
  385. package/dist/collection/components/item-options/item-options.js +7 -13
  386. package/dist/collection/components/item-options/item-options.md.css +34 -77
  387. package/dist/collection/components/item-sliding/{item-sliding.native.css → item-sliding.css} +9 -84
  388. package/dist/collection/components/item-sliding/item-sliding.js +35 -421
  389. package/dist/collection/components/item-sliding/test/test.utils.js +0 -13
  390. package/dist/collection/components/label/label.ios.css +0 -18
  391. package/dist/collection/components/label/label.js +8 -11
  392. package/dist/collection/components/label/label.md.css +0 -18
  393. package/dist/collection/components/list/list.ios.css +14 -54
  394. package/dist/collection/components/list/list.js +9 -48
  395. package/dist/collection/components/list/list.md.css +16 -56
  396. package/dist/collection/components/list-header/list-header.ios.css +38 -82
  397. package/dist/collection/components/list-header/list-header.js +8 -11
  398. package/dist/collection/components/list-header/list-header.md.css +38 -82
  399. package/dist/collection/components/loading/loading.ios.css +1 -13
  400. package/dist/collection/components/loading/loading.js +16 -15
  401. package/dist/collection/components/loading/loading.md.css +1 -13
  402. package/dist/collection/components/menu/menu.ios.css +3 -15
  403. package/dist/collection/components/menu/menu.js +7 -12
  404. package/dist/collection/components/menu/menu.md.css +3 -15
  405. package/dist/collection/components/menu-button/menu-button.ios.css +14 -48
  406. package/dist/collection/components/menu-button/menu-button.js +10 -26
  407. package/dist/collection/components/menu-button/menu-button.md.css +15 -49
  408. package/dist/collection/components/menu-toggle/menu-toggle.js +5 -8
  409. package/dist/collection/components/modal/animations/sheet.js +2 -8
  410. package/dist/collection/components/modal/gestures/sheet.js +10 -76
  411. package/dist/collection/components/modal/modal.ios.css +70 -178
  412. package/dist/collection/components/modal/modal.js +17 -51
  413. package/dist/collection/components/modal/modal.md.css +70 -178
  414. package/dist/collection/components/nav/nav.css +1 -7
  415. package/dist/collection/components/nav/nav.js +5 -11
  416. package/dist/collection/components/nav-link/nav-link.js +1 -5
  417. package/dist/collection/components/note/note.ios.css +0 -12
  418. package/dist/collection/components/note/note.js +8 -11
  419. package/dist/collection/components/note/note.md.css +0 -12
  420. package/dist/collection/components/picker/picker.ios.css +3 -15
  421. package/dist/collection/components/picker/picker.js +5 -8
  422. package/dist/collection/components/picker/picker.md.css +3 -15
  423. package/dist/collection/components/picker-column/picker-column.css +2 -9
  424. package/dist/collection/components/picker-column/picker-column.js +7 -8
  425. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +0 -6
  426. package/dist/collection/components/picker-column-option/picker-column-option.js +7 -13
  427. package/dist/collection/components/picker-column-option/picker-column-option.md.css +0 -6
  428. package/dist/collection/components/popover/popover.ios.css +1 -29
  429. package/dist/collection/components/popover/popover.js +20 -19
  430. package/dist/collection/components/popover/popover.md.css +1 -29
  431. package/dist/collection/components/progress-bar/progress-bar.ios.css +17 -48
  432. package/dist/collection/components/progress-bar/progress-bar.js +7 -43
  433. package/dist/collection/components/progress-bar/progress-bar.md.css +17 -48
  434. package/dist/collection/components/radio/radio.ios.css +91 -134
  435. package/dist/collection/components/radio/radio.js +10 -15
  436. package/dist/collection/components/radio/radio.md.css +91 -134
  437. package/dist/collection/components/radio-group/radio-group.ios.css +19 -43
  438. package/dist/collection/components/radio-group/radio-group.js +7 -48
  439. package/dist/collection/components/radio-group/radio-group.md.css +19 -43
  440. package/dist/collection/components/range/range.ios.css +85 -128
  441. package/dist/collection/components/range/range.js +10 -16
  442. package/dist/collection/components/range/range.md.css +85 -128
  443. package/dist/collection/components/refresher/refresher.ios.css +1 -14
  444. package/dist/collection/components/refresher/refresher.js +8 -11
  445. package/dist/collection/components/refresher/refresher.md.css +2 -15
  446. package/dist/collection/components/refresher-content/refresher-content.js +7 -28
  447. package/dist/collection/components/reorder/reorder.ios.css +0 -6
  448. package/dist/collection/components/reorder/reorder.js +6 -33
  449. package/dist/collection/components/reorder/reorder.md.css +0 -6
  450. package/dist/collection/components/reorder-group/reorder-group.css +0 -6
  451. package/dist/collection/components/reorder-group/reorder-group.js +4 -8
  452. package/dist/collection/components/ripple-effect/{ripple-effect.common.css → ripple-effect.css} +1 -7
  453. package/dist/collection/components/ripple-effect/ripple-effect.js +6 -14
  454. package/dist/collection/components/route/route.js +0 -4
  455. package/dist/collection/components/router/router.js +0 -4
  456. package/dist/collection/components/router-link/router-link.css +2 -8
  457. package/dist/collection/components/router-link/router-link.js +5 -9
  458. package/dist/collection/components/router-outlet/router-outlet.css +1 -7
  459. package/dist/collection/components/router-outlet/router-outlet.js +40 -10
  460. package/dist/collection/components/row/row.css +0 -16
  461. package/dist/collection/components/row/row.js +2 -9
  462. package/dist/collection/components/searchbar/searchbar.ios.css +18 -56
  463. package/dist/collection/components/searchbar/searchbar.js +38 -185
  464. package/dist/collection/components/searchbar/searchbar.md.css +18 -56
  465. package/dist/collection/components/segment/segment.ios.css +2 -45
  466. package/dist/collection/components/segment/segment.js +8 -11
  467. package/dist/collection/components/segment/segment.md.css +2 -45
  468. package/dist/collection/components/segment-button/segment-button.ios.css +105 -146
  469. package/dist/collection/components/segment-button/segment-button.js +8 -11
  470. package/dist/collection/components/segment-button/segment-button.md.css +107 -148
  471. package/dist/collection/components/segment-content/segment-content.js +1 -1
  472. package/dist/collection/components/segment-view/segment-view.ios.css +0 -6
  473. package/dist/collection/components/segment-view/segment-view.js +4 -13
  474. package/dist/collection/components/segment-view/segment-view.md.css +0 -6
  475. package/dist/collection/components/select/select.ios.css +176 -348
  476. package/dist/collection/components/select/select.js +97 -434
  477. package/dist/collection/components/select/select.md.css +178 -364
  478. package/dist/collection/components/select-modal/select-modal.ios.css +0 -95
  479. package/dist/collection/components/select-modal/select-modal.js +32 -109
  480. package/dist/collection/components/select-modal/select-modal.md.css +0 -83
  481. package/dist/collection/components/select-option/select-option.js +2 -32
  482. package/dist/collection/components/select-popover/select-popover.ios.css +0 -100
  483. package/dist/collection/components/select-popover/select-popover.js +31 -72
  484. package/dist/collection/components/select-popover/select-popover.md.css +0 -100
  485. package/dist/collection/components/skeleton-text/skeleton-text.css +0 -6
  486. package/dist/collection/components/skeleton-text/skeleton-text.js +5 -9
  487. package/dist/collection/components/spinner/{spinner.ionic.css → spinner.css} +10 -78
  488. package/dist/collection/components/spinner/spinner.js +6 -47
  489. package/dist/collection/components/split-pane/split-pane.ios.css +2 -20
  490. package/dist/collection/components/split-pane/split-pane.js +9 -16
  491. package/dist/collection/components/split-pane/split-pane.md.css +2 -20
  492. package/dist/collection/components/tab/tab.js +2 -6
  493. package/dist/collection/components/tab-bar/tab-bar.ios.css +43 -71
  494. package/dist/collection/components/tab-bar/tab-bar.js +13 -171
  495. package/dist/collection/components/tab-bar/tab-bar.md.css +43 -71
  496. package/dist/collection/components/tab-button/tab-button.ios.css +95 -171
  497. package/dist/collection/components/tab-button/tab-button.js +9 -54
  498. package/dist/collection/components/tab-button/tab-button.md.css +93 -137
  499. package/dist/collection/components/tabs/tabs.css +1 -7
  500. package/dist/collection/components/tabs/tabs.js +1 -4
  501. package/dist/collection/components/text/text.css +0 -6
  502. package/dist/collection/components/text/text.js +6 -7
  503. package/dist/collection/components/textarea/textarea.ios.css +158 -298
  504. package/dist/collection/components/textarea/textarea.js +24 -162
  505. package/dist/collection/components/textarea/textarea.md.css +159 -312
  506. package/dist/collection/components/thumbnail/thumbnail.css +0 -6
  507. package/dist/collection/components/thumbnail/thumbnail.js +2 -9
  508. package/dist/collection/components/title/title.ios.css +4 -32
  509. package/dist/collection/components/title/title.js +7 -13
  510. package/dist/collection/components/title/title.md.css +4 -32
  511. package/dist/collection/components/toast/animations/utils.js +1 -1
  512. package/dist/collection/components/toast/toast.ios.css +45 -84
  513. package/dist/collection/components/toast/toast.js +13 -76
  514. package/dist/collection/components/toast/toast.md.css +45 -84
  515. package/dist/collection/components/toggle/toggle.ios.css +131 -247
  516. package/dist/collection/components/toggle/toggle.js +18 -73
  517. package/dist/collection/components/toggle/toggle.md.css +131 -244
  518. package/dist/collection/components/toolbar/toolbar.ios.css +47 -90
  519. package/dist/collection/components/toolbar/toolbar.js +13 -218
  520. package/dist/collection/components/toolbar/toolbar.md.css +47 -90
  521. package/dist/collection/global/ionic-global.js +13 -241
  522. package/dist/collection/index.js +1 -1
  523. package/dist/collection/utils/focus-trap.js +2 -13
  524. package/dist/collection/utils/focus-visible.js +0 -22
  525. package/dist/collection/utils/forms/validity.js +0 -31
  526. package/dist/collection/utils/framework-delegate.js +1 -3
  527. package/dist/collection/utils/hardware-back-button.js +0 -15
  528. package/dist/collection/utils/helpers.js +3 -57
  529. package/dist/collection/utils/keyboard/keyboard-controller.js +1 -3
  530. package/dist/collection/utils/media.js +0 -1
  531. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  532. package/dist/collection/utils/menu-controller/animations/push.js +1 -2
  533. package/dist/collection/utils/menu-controller/animations/reveal.js +1 -2
  534. package/dist/collection/utils/overlays.js +31 -97
  535. package/dist/collection/utils/test/playwright/drag-element.js +9 -32
  536. package/dist/collection/utils/test/playwright/generator.js +23 -48
  537. package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -14
  538. package/dist/collection/utils/test/playwright/page/utils/set-content.js +3 -26
  539. package/dist/collection/utils/theme.js +1 -25
  540. package/dist/collection/utils/transition/ios.transition.js +0 -1
  541. package/dist/docs.json +698 -10171
  542. package/dist/esm/{animation-Cd1EA2ar.js → animation-DLJpuoEz.js} +2 -2
  543. package/dist/esm/{app-globals-9x_U7ofY.js → app-globals-D0C5S4hU.js} +1 -1
  544. package/dist/esm/{button-active-B016u5N-.js → button-active-BSpTQmS9.js} +2 -2
  545. package/dist/esm/{capacitor-13SFuT1K.js → capacitor-CFERIeaU.js} +1 -1
  546. package/dist/esm/{index-D4ugF_sT.js → config-DQCONYYp.js} +29 -2
  547. package/dist/esm/{data-BNKYavC3.js → data-DZI70dKr.js} +6 -6
  548. package/dist/{cjs/focus-visible-BIj-I3-C.js → esm/focus-visible-BmVRXR1y.js} +1 -27
  549. package/dist/esm/{framework-delegate-CjVwn_KZ.js → framework-delegate-FnPGymXL.js} +2 -4
  550. package/dist/esm/{haptic-CbnKC3go.js → haptic-DzAMWJuk.js} +1 -1
  551. package/dist/esm/hardware-back-button-B93Gru0Y.js +115 -0
  552. package/dist/esm/{helpers-Do7zwvM1.js → helpers-HEqiOzXb.js} +5 -58
  553. package/dist/esm/{index-D2tu5BUg.js → index-AlrZKoWR.js} +1 -2
  554. package/dist/esm/{index-D3WueHpT.js → index-BRHzoo00.js} +3 -4
  555. package/dist/esm/{index-B2VWavcK.js → index-B_dQk_WE.js} +4 -4
  556. package/dist/esm/{index-BmkLokUL.js → index-MEDq2S8l.js} +2 -2
  557. package/dist/esm/{index-BWMvrRiE.js → index-Q6UPU0Ay.js} +11 -11
  558. package/dist/esm/index-ZjP4CjeZ.js +7 -0
  559. package/dist/esm/{index-Omi_TcwW.js → index-tcQvqkiX.js} +71 -64
  560. package/dist/esm/index.js +14 -14
  561. package/dist/esm/{input-shims-DU23z7Hg.js → input-shims-D10mwcw1.js} +6 -7
  562. package/dist/esm/{input.utils-C64RbLd_.js → input.utils-Y6NgW8bw.js} +3 -3
  563. package/dist/esm/ion-accordion_2.entry.js +29 -61
  564. package/dist/esm/ion-action-sheet.entry.js +26 -41
  565. package/dist/esm/ion-alert.entry.js +44 -61
  566. package/dist/esm/ion-app_8.entry.js +189 -568
  567. package/dist/esm/ion-avatar_3.entry.js +13 -125
  568. package/dist/esm/ion-back-button.entry.js +22 -31
  569. package/dist/esm/ion-backdrop.entry.js +7 -10
  570. package/dist/esm/ion-breadcrumb_2.entry.js +18 -54
  571. package/dist/esm/ion-button_2.entry.js +22 -59
  572. package/dist/esm/ion-card_5.entry.js +33 -55
  573. package/dist/esm/ion-checkbox.entry.js +16 -34
  574. package/dist/esm/ion-chip.entry.js +9 -50
  575. package/dist/esm/ion-col_3.entry.js +57 -56
  576. package/dist/esm/ion-datetime-button.entry.js +9 -13
  577. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +30 -741
  578. package/dist/esm/ion-fab_3.entry.js +28 -44
  579. package/dist/esm/ion-img.entry.js +4 -8
  580. package/dist/esm/ion-infinite-scroll_2.entry.js +16 -92
  581. package/dist/esm/ion-input-otp.entry.js +9 -74
  582. package/dist/esm/ion-input-password-toggle.entry.js +15 -53
  583. package/dist/esm/ion-input.entry.js +35 -125
  584. package/dist/esm/ion-item-option_3.entry.js +52 -467
  585. package/dist/esm/ion-item_8.entry.js +49 -116
  586. package/dist/esm/ion-loading.entry.js +22 -21
  587. package/dist/esm/ion-menu_3.entry.js +29 -47
  588. package/dist/esm/ion-modal.entry.js +95 -215
  589. package/dist/esm/ion-nav_2.entry.js +11 -14
  590. package/dist/esm/ion-picker-column-option.entry.js +8 -12
  591. package/dist/esm/ion-picker-column.entry.js +13 -13
  592. package/dist/esm/ion-picker.entry.js +6 -10
  593. package/dist/esm/ion-popover.entry.js +23 -21
  594. package/dist/esm/ion-progress-bar.entry.js +9 -27
  595. package/dist/esm/ion-radio_2.entry.js +17 -35
  596. package/dist/esm/ion-range.entry.js +13 -20
  597. package/dist/esm/ion-refresher_2.entry.js +21 -40
  598. package/dist/esm/ion-reorder_2.entry.js +15 -39
  599. package/dist/esm/ion-ripple-effect.entry.js +7 -15
  600. package/dist/esm/ion-route_4.entry.js +9 -10
  601. package/dist/esm/ion-searchbar.entry.js +25 -138
  602. package/dist/esm/ion-segment-content.entry.js +2 -2
  603. package/dist/esm/ion-segment-view.entry.js +3 -13
  604. package/dist/esm/ion-segment_2.entry.js +16 -23
  605. package/dist/esm/ion-select-modal.entry.js +40 -97
  606. package/dist/esm/ion-select_3.entry.js +116 -454
  607. package/dist/esm/ion-spinner.entry.js +8 -30
  608. package/dist/esm/ion-split-pane.entry.js +9 -13
  609. package/dist/esm/ion-tab-bar_2.entry.js +23 -147
  610. package/dist/esm/ion-tab_2.entry.js +7 -8
  611. package/dist/esm/ion-text.entry.js +7 -7
  612. package/dist/esm/ion-textarea.entry.js +23 -137
  613. package/dist/esm/ion-toast.entry.js +22 -46
  614. package/dist/esm/ion-toggle.entry.js +27 -84
  615. package/dist/esm/ionic-global-Cp_eT4sZ.js +146 -0
  616. package/dist/esm/ionic.js +6 -6
  617. package/dist/esm/{ios.transition-DoQTN5Jk.js → ios.transition-ClFrsIrS.js} +5 -7
  618. package/dist/esm/{keyboard-Dnno7-Ci.js → keyboard-CUw4ekVy.js} +1 -1
  619. package/dist/esm/{keyboard-controller-BpOdk6xN.js → keyboard-controller-BaaVITYt.js} +3 -5
  620. package/dist/esm/{keyboard-Ca1zVCcH.js → keyboard-ywgs5efA.js} +3 -4
  621. package/dist/esm/loader.js +5 -5
  622. package/dist/esm/{md.transition-DZydrWwq.js → md.transition-D0msQmzI.js} +5 -6
  623. package/dist/esm/{notch-controller-klgNWpjJ.js → notch-controller-DKDjU_O7.js} +2 -2
  624. package/dist/esm/{overlays-CpQ6Df2g.js → overlays-DLNOHWNc.js} +39 -114
  625. package/dist/esm/{status-tap-fYFdZg6z.js → status-tap-Kan2W7sh.js} +3 -4
  626. package/dist/esm/{swipe-back-BzGqTrrq.js → swipe-back-DQ1q5MgD.js} +2 -3
  627. package/dist/esm/{theme-DaJxRxSQ.js → theme-DiVJyqlX.js} +1 -25
  628. package/dist/esm/validity-DJztqcrH.js +17 -0
  629. package/dist/html.html-data.json +162 -2677
  630. package/dist/ionic/index.esm.js +1 -1
  631. package/dist/ionic/ionic.esm.js +1 -1
  632. package/dist/ionic/p-03aa786d.entry.js +4 -0
  633. package/dist/ionic/p-06c232a4.entry.js +4 -0
  634. package/dist/ionic/p-11684553.entry.js +4 -0
  635. package/dist/ionic/p-1ae21e4c.entry.js +4 -0
  636. package/dist/ionic/p-20b1a044.entry.js +4 -0
  637. package/dist/ionic/p-259d0d98.entry.js +4 -0
  638. package/dist/ionic/p-2a6d6565.entry.js +4 -0
  639. package/dist/ionic/p-341032b3.entry.js +4 -0
  640. package/dist/ionic/p-3e91d32e.entry.js +4 -0
  641. package/dist/ionic/p-441fbb13.entry.js +4 -0
  642. package/dist/ionic/p-4502a274.entry.js +4 -0
  643. package/dist/ionic/p-4621c387.entry.js +4 -0
  644. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  645. package/dist/ionic/p-4e92a11f.entry.js +4 -0
  646. package/dist/ionic/p-50e1194a.entry.js +4 -0
  647. package/dist/ionic/p-51cd1643.entry.js +4 -0
  648. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  649. package/dist/ionic/p-627fabd9.entry.js +4 -0
  650. package/dist/ionic/p-629e4703.entry.js +4 -0
  651. package/dist/ionic/p-76e92a84.entry.js +4 -0
  652. package/dist/ionic/p-7a37b3ce.entry.js +4 -0
  653. package/dist/ionic/p-7aed7726.entry.js +4 -0
  654. package/dist/ionic/p-7ebd980c.entry.js +4 -0
  655. package/dist/ionic/p-80b44b3c.entry.js +4 -0
  656. package/dist/ionic/p-81ea5652.entry.js +4 -0
  657. package/dist/ionic/p-8c8eee7d.entry.js +4 -0
  658. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  659. package/dist/ionic/p-8d6fd502.entry.js +4 -0
  660. package/dist/ionic/p-9177f4ac.entry.js +4 -0
  661. package/dist/ionic/p-9c6a5a8d.entry.js +4 -0
  662. package/dist/ionic/p-9eeaBrnk.js +4 -0
  663. package/dist/ionic/p-AlrZKoWR.js +4 -0
  664. package/dist/ionic/p-BGqMS-oh.js +4 -0
  665. package/dist/ionic/p-BUFIpxKM.js +4 -0
  666. package/dist/ionic/p-BmVRXR1y.js +4 -0
  667. package/dist/ionic/p-CFlfIb2g.js +4 -0
  668. package/dist/ionic/p-CIGNaXM1.js +4 -0
  669. package/dist/ionic/{p-BmEwy3tY.js → p-CKvCXMs9.js} +1 -1
  670. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  671. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  672. package/dist/ionic/p-Cx3IXROA.js +4 -0
  673. package/{components/p-Cllkut-B.js → dist/ionic/p-D13Eaw-8.js} +1 -1
  674. package/dist/ionic/p-D4uTWt4-.js +4 -0
  675. package/dist/ionic/{p-C8IHbcuP.js → p-DAAFkPFT.js} +1 -1
  676. package/dist/ionic/p-DC3RagnA.js +4 -0
  677. package/dist/ionic/p-DIuEbVLu.js +4 -0
  678. package/dist/ionic/p-DJztqcrH.js +4 -0
  679. package/dist/ionic/p-DSG2s2Eb.js +4 -0
  680. package/dist/ionic/p-Dfbt-q2k.js +4 -0
  681. package/dist/ionic/p-DiVJyqlX.js +4 -0
  682. package/dist/ionic/p-DoJvtrbw.js +4 -0
  683. package/{components/p-Cmql_g3_.js → dist/ionic/p-DzWaWHGc.js} +1 -1
  684. package/dist/ionic/p-KjNvRoEp.js +4 -0
  685. package/dist/ionic/p-Nqf6uvGh.js +4 -0
  686. package/dist/ionic/p-SNAkTDfm.js +4 -0
  687. package/{components/p-CDgDBcU9.js → dist/ionic/p-VAemlbDS.js} +1 -1
  688. package/dist/ionic/{p-DKWXAwlR.js → p-Wk5HzclC.js} +1 -1
  689. package/dist/ionic/p-ZjP4CjeZ.js +4 -0
  690. package/dist/ionic/p-a2e51c5d.entry.js +4 -0
  691. package/dist/ionic/p-a3bdcae6.entry.js +4 -0
  692. package/dist/ionic/p-a44b7536.entry.js +4 -0
  693. package/dist/ionic/p-a5213260.entry.js +4 -0
  694. package/dist/ionic/p-a7628bc7.entry.js +4 -0
  695. package/dist/ionic/p-b1599fca.entry.js +4 -0
  696. package/dist/ionic/p-b16be471.entry.js +4 -0
  697. package/dist/ionic/p-b6a7397c.entry.js +4 -0
  698. package/dist/ionic/p-b9ac1fe0.entry.js +4 -0
  699. package/dist/ionic/p-c6e49f3f.entry.js +4 -0
  700. package/dist/ionic/p-c93553d2.entry.js +4 -0
  701. package/dist/ionic/p-d2c7f046.entry.js +4 -0
  702. package/dist/ionic/p-d8387b99.entry.js +4 -0
  703. package/dist/ionic/p-d8ac9eea.entry.js +4 -0
  704. package/dist/ionic/p-db1b6738.entry.js +4 -0
  705. package/dist/ionic/p-dfa8d673.entry.js +4 -0
  706. package/dist/ionic/p-ed797c72.entry.js +4 -0
  707. package/dist/ionic/p-ef93ca92.entry.js +4 -0
  708. package/dist/ionic/p-f09f9642.entry.js +4 -0
  709. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  710. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  711. package/dist/ionic/p-fe4aa1db.entry.js +4 -0
  712. package/dist/ionic/p-mjKAFv89.js +4 -0
  713. package/dist/ionic/p-tcQvqkiX.js +5 -0
  714. package/dist/ionic/p-viFHDgRs.js +4 -0
  715. package/dist/ionic/p-xWb6fgfq.js +4 -0
  716. package/dist/types/components/accordion/accordion.d.ts +3 -6
  717. package/dist/types/components/accordion-group/accordion-group.d.ts +1 -12
  718. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +7 -3
  719. package/dist/types/components/action-sheet/action-sheet.d.ts +2 -3
  720. package/dist/types/components/alert/alert-interface.d.ts +7 -3
  721. package/dist/types/components/alert/alert.d.ts +2 -3
  722. package/dist/types/components/app/app.d.ts +5 -4
  723. package/dist/types/components/avatar/avatar.d.ts +0 -32
  724. package/dist/types/components/back-button/back-button.d.ts +1 -2
  725. package/dist/types/components/backdrop/backdrop.d.ts +0 -4
  726. package/dist/types/components/badge/badge.d.ts +1 -34
  727. package/dist/types/components/breadcrumb/breadcrumb.d.ts +1 -4
  728. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  729. package/dist/types/components/button/button.d.ts +8 -23
  730. package/dist/types/components/buttons/buttons.d.ts +1 -5
  731. package/dist/types/components/card/card.d.ts +1 -8
  732. package/dist/types/components/card-content/card-content.d.ts +1 -2
  733. package/dist/types/components/card-header/card-header.d.ts +2 -3
  734. package/dist/types/components/card-subtitle/card-subtitle.d.ts +1 -2
  735. package/dist/types/components/card-title/card-title.d.ts +1 -2
  736. package/dist/types/components/checkbox/checkbox.d.ts +4 -14
  737. package/dist/types/components/chip/chip.d.ts +1 -26
  738. package/dist/types/components/col/col.d.ts +5 -52
  739. package/dist/types/components/content/content.d.ts +0 -3
  740. package/dist/types/components/datetime/datetime.d.ts +1 -26
  741. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  742. package/dist/types/components/datetime-button/datetime-button.d.ts +1 -2
  743. package/dist/types/components/fab/fab.d.ts +0 -4
  744. package/dist/types/components/fab-button/fab-button.d.ts +3 -5
  745. package/dist/types/components/fab-list/fab-list.d.ts +0 -4
  746. package/dist/types/components/footer/footer.d.ts +4 -15
  747. package/dist/types/components/footer/footer.utils.d.ts +0 -1
  748. package/dist/types/components/grid/grid.d.ts +0 -4
  749. package/dist/types/components/header/header.d.ts +5 -18
  750. package/dist/types/components/header/header.utils.d.ts +3 -4
  751. package/dist/types/components/img/img.d.ts +0 -3
  752. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +0 -21
  753. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +0 -4
  754. package/dist/types/components/input/input.d.ts +6 -32
  755. package/dist/types/components/input-otp/input-otp.d.ts +0 -37
  756. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +0 -2
  757. package/dist/types/components/item/item.d.ts +4 -11
  758. package/dist/types/components/item-divider/item-divider.d.ts +1 -2
  759. package/dist/types/components/item-group/item-group.d.ts +0 -4
  760. package/dist/types/components/item-option/item-option.d.ts +1 -18
  761. package/dist/types/components/item-options/item-options.d.ts +0 -4
  762. package/dist/types/components/item-sliding/item-sliding.d.ts +1 -47
  763. package/dist/types/components/item-sliding/test/test.utils.d.ts +0 -13
  764. package/dist/types/components/label/label.d.ts +1 -2
  765. package/dist/types/components/list/list.d.ts +1 -15
  766. package/dist/types/components/list-header/list-header.d.ts +1 -2
  767. package/dist/types/components/loading/loading-interface.d.ts +7 -2
  768. package/dist/types/components/loading/loading.d.ts +2 -3
  769. package/dist/types/components/menu/menu.d.ts +0 -3
  770. package/dist/types/components/menu-button/menu-button.d.ts +1 -3
  771. package/dist/types/components/menu-toggle/menu-toggle.d.ts +0 -3
  772. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  773. package/dist/types/components/modal/modal-interface.d.ts +7 -4
  774. package/dist/types/components/modal/modal.d.ts +1 -11
  775. package/dist/types/components/nav/nav-interface.d.ts +1 -9
  776. package/dist/types/components/nav/nav.d.ts +1 -5
  777. package/dist/types/components/nav-link/nav-link.d.ts +0 -4
  778. package/dist/types/components/note/note.d.ts +1 -2
  779. package/dist/types/components/picker/picker.d.ts +1 -2
  780. package/dist/types/components/picker-column/picker-column.d.ts +1 -2
  781. package/dist/types/components/picker-column-option/picker-column-option.d.ts +0 -4
  782. package/dist/types/components/popover/popover-interface.d.ts +6 -3
  783. package/dist/types/components/popover/popover.d.ts +5 -6
  784. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -10
  785. package/dist/types/components/radio/radio.d.ts +1 -2
  786. package/dist/types/components/radio-group/radio-group.d.ts +0 -12
  787. package/dist/types/components/range/range.d.ts +1 -2
  788. package/dist/types/components/refresher/refresher.d.ts +1 -2
  789. package/dist/types/components/refresher-content/refresher-content.d.ts +0 -4
  790. package/dist/types/components/reorder/reorder.d.ts +0 -9
  791. package/dist/types/components/reorder-group/reorder-group.d.ts +0 -4
  792. package/dist/types/components/ripple-effect/ripple-effect.d.ts +0 -4
  793. package/dist/types/components/route/route.d.ts +0 -4
  794. package/dist/types/components/router/router.d.ts +0 -4
  795. package/dist/types/components/router-link/router-link.d.ts +0 -4
  796. package/dist/types/components/router-outlet/router-outlet.d.ts +8 -4
  797. package/dist/types/components/row/row.d.ts +0 -4
  798. package/dist/types/components/searchbar/searchbar.d.ts +10 -52
  799. package/dist/types/components/segment/segment.d.ts +1 -2
  800. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  801. package/dist/types/components/select/select-interface.d.ts +0 -23
  802. package/dist/types/components/select/select.d.ts +14 -66
  803. package/dist/types/components/select-modal/select-modal.d.ts +0 -8
  804. package/dist/types/components/select-option/select-option.d.ts +0 -12
  805. package/dist/types/components/select-popover/select-popover.d.ts +0 -3
  806. package/dist/types/components/skeleton-text/skeleton-text.d.ts +0 -4
  807. package/dist/types/components/spinner/spinner.d.ts +0 -15
  808. package/dist/types/components/split-pane/split-pane.d.ts +0 -4
  809. package/dist/types/components/tab/tab.d.ts +0 -4
  810. package/dist/types/components/tab-bar/tab-bar.d.ts +2 -37
  811. package/dist/types/components/tab-button/tab-button.d.ts +1 -12
  812. package/dist/types/components/tabs/tabs.d.ts +0 -3
  813. package/dist/types/components/text/text.d.ts +1 -2
  814. package/dist/types/components/textarea/textarea.d.ts +4 -53
  815. package/dist/types/components/thumbnail/thumbnail.d.ts +0 -4
  816. package/dist/types/components/title/title.d.ts +0 -4
  817. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  818. package/dist/types/components/toast/toast-interface.d.ts +7 -3
  819. package/dist/types/components/toast/toast.d.ts +2 -19
  820. package/dist/types/components/toggle/toggle.d.ts +1 -15
  821. package/dist/types/components/toolbar/toolbar.d.ts +3 -43
  822. package/dist/types/components.d.ts +269 -2128
  823. package/dist/types/global/ionic-global.d.ts +2 -28
  824. package/dist/types/index.d.ts +1 -1
  825. package/dist/types/interface.d.ts +0 -4
  826. package/dist/types/stencil-public-runtime.d.ts +4 -1
  827. package/dist/types/utils/config.d.ts +2 -114
  828. package/dist/types/utils/focus-trap.d.ts +1 -1
  829. package/dist/types/utils/focus-visible.d.ts +0 -13
  830. package/dist/types/utils/forms/validity.d.ts +0 -7
  831. package/dist/types/utils/helpers.d.ts +0 -11
  832. package/dist/types/utils/overlays-interface.d.ts +1 -31
  833. package/dist/types/utils/overlays.d.ts +12 -10
  834. package/dist/types/utils/test/playwright/drag-element.d.ts +3 -16
  835. package/dist/types/utils/test/playwright/generator.d.ts +2 -31
  836. package/dist/types/utils/theme.d.ts +0 -9
  837. package/hydrate/index.js +2329 -6522
  838. package/hydrate/index.mjs +2329 -6522
  839. package/package.json +40 -12
  840. package/components/ion-divider.d.ts +0 -11
  841. package/components/ion-divider.js +0 -4
  842. package/components/ion-gallery.d.ts +0 -11
  843. package/components/ion-gallery.js +0 -4
  844. package/components/ion-picker-legacy-column.d.ts +0 -11
  845. package/components/ion-picker-legacy-column.js +0 -4
  846. package/components/ion-picker-legacy.d.ts +0 -11
  847. package/components/ion-picker-legacy.js +0 -4
  848. package/components/p-3Ni1Z654.js +0 -4
  849. package/components/p-B9MABkWm.js +0 -4
  850. package/components/p-BBu2n-9C.js +0 -4
  851. package/components/p-BDcohALy.js +0 -4
  852. package/components/p-BDqjX7Z_.js +0 -4
  853. package/components/p-BF5oFX1I.js +0 -4
  854. package/components/p-BJzJdLry.js +0 -4
  855. package/components/p-BYSs-jZz.js +0 -4
  856. package/components/p-BZCB7f49.js +0 -4
  857. package/components/p-BaPtaYEC.js +0 -4
  858. package/components/p-Bg30AtDZ.js +0 -4
  859. package/components/p-BhkGOA7t.js +0 -4
  860. package/components/p-BjW8SOqw.js +0 -4
  861. package/components/p-Bk9hTY4h.js +0 -4
  862. package/components/p-BqDiJgC_.js +0 -4
  863. package/components/p-BsNpz2u3.js +0 -4
  864. package/components/p-Bt0d89x3.js +0 -4
  865. package/components/p-BwKpO3Is.js +0 -4
  866. package/components/p-BwQOIWD7.js +0 -4
  867. package/components/p-C0U8YqYW.js +0 -4
  868. package/components/p-C75FIZBC.js +0 -4
  869. package/components/p-C8kBejTT.js +0 -4
  870. package/components/p-CBS0sBAa.js +0 -4
  871. package/components/p-CPm7KgOP.js +0 -4
  872. package/components/p-Cg-xpJhD.js +0 -4
  873. package/components/p-CgSn4J7d.js +0 -4
  874. package/components/p-CgZLVOCc.js +0 -4
  875. package/components/p-CpFORZud.js +0 -4
  876. package/components/p-Cz4uz3Dy.js +0 -4
  877. package/components/p-CzC_ZSgb.js +0 -4
  878. package/components/p-D1t981Ih.js +0 -4
  879. package/components/p-D2mReIu8.js +0 -4
  880. package/components/p-D6g8ud1e.js +0 -4
  881. package/components/p-DAXhdEp5.js +0 -4
  882. package/components/p-DCS3n7Uq.js +0 -4
  883. package/components/p-DDw-NYxz.js +0 -4
  884. package/components/p-DN_scBC7.js +0 -4
  885. package/components/p-DVcs-2q3.js +0 -4
  886. package/components/p-DaJxRxSQ.js +0 -4
  887. package/components/p-Dhi5xtNS.js +0 -4
  888. package/components/p-Do7NMUwR.js +0 -4
  889. package/components/p-Dp2x0MpA.js +0 -4
  890. package/components/p-GElQZ38c.js +0 -4
  891. package/components/p-GtzfsjJP.js +0 -4
  892. package/components/p-IYdTEyGb.js +0 -4
  893. package/components/p-Skz67GXZ.js +0 -4
  894. package/components/p-XegQjlzJ.js +0 -4
  895. package/components/p-d77Zk1DK.js +0 -4
  896. package/components/p-fIOYmaqA.js +0 -4
  897. package/components/p-hdGd8ben.js +0 -4
  898. package/components/p-hpwmNJ2Q.js +0 -4
  899. package/components/p-kKYBfhbe.js +0 -4
  900. package/components/p-lGSe6-vg.js +0 -4
  901. package/components/p-pvh0bjpw.js +0 -4
  902. package/components/p-sToA4Co7.js +0 -4
  903. package/components/p-vXpMhGrs.js +0 -4
  904. package/css/ionic/bundle.ionic.css +0 -1
  905. package/css/ionic/bundle.ionic.css.map +0 -1
  906. package/css/ionic/core.ionic.css +0 -1
  907. package/css/ionic/core.ionic.css.map +0 -1
  908. package/css/ionic/global.bundle.ionic.css +0 -1
  909. package/css/ionic/global.bundle.ionic.css.map +0 -1
  910. package/css/ionic/ionic-swiper.ionic.css +0 -1
  911. package/css/ionic/ionic-swiper.ionic.css.map +0 -1
  912. package/css/ionic/link.ionic.css +0 -1
  913. package/css/ionic/link.ionic.css.map +0 -1
  914. package/css/ionic/structure.ionic.css +0 -1
  915. package/css/ionic/structure.ionic.css.map +0 -1
  916. package/css/ionic/typography.ionic.css +0 -1
  917. package/css/ionic/typography.ionic.css.map +0 -1
  918. package/css/ionic/utils.bundle.ionic.css +0 -1
  919. package/css/ionic/utils.bundle.ionic.css.map +0 -1
  920. package/dist/cjs/caret-down-vtVgfXIs.js +0 -8
  921. package/dist/cjs/caret-left-CxZXLRv5.js +0 -8
  922. package/dist/cjs/caret-right-CRCgv98E.js +0 -8
  923. package/dist/cjs/config-DWdFbSNK.js +0 -35
  924. package/dist/cjs/ion-divider.cjs.entry.js +0 -51
  925. package/dist/cjs/ion-gallery.cjs.entry.js +0 -510
  926. package/dist/cjs/ionic-global-BW5tRzrz.js +0 -519
  927. package/dist/cjs/list-a-7GSA6K.js +0 -8
  928. package/dist/cjs/select-option-render-C7klBX2H.js +0 -81
  929. package/dist/cjs/validity-QmuwEptc.js +0 -51
  930. package/dist/cjs/x-BTF99yFH.js +0 -8
  931. package/dist/collection/components/accordion/accordion.ionic.css +0 -201
  932. package/dist/collection/components/accordion-group/accordion-group.ionic.css +0 -93
  933. package/dist/collection/components/action-sheet/action-sheet.ionic.css +0 -834
  934. package/dist/collection/components/alert/alert.ionic.css +0 -1165
  935. package/dist/collection/components/avatar/avatar.ionic.css +0 -391
  936. package/dist/collection/components/backdrop/backdrop.ionic.css +0 -109
  937. package/dist/collection/components/badge/badge.ionic.css +0 -275
  938. package/dist/collection/components/button/button.ionic.css +0 -646
  939. package/dist/collection/components/buttons/buttons.ionic.css +0 -97
  940. package/dist/collection/components/card/card.ionic.css +0 -144
  941. package/dist/collection/components/card-content/card-content.ionic.css +0 -89
  942. package/dist/collection/components/card-header/card-header.ionic.css +0 -85
  943. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +0 -144
  944. package/dist/collection/components/checkbox/checkbox.ionic.css +0 -539
  945. package/dist/collection/components/chip/chip.ionic.css +0 -217
  946. package/dist/collection/components/datetime/datetime.ionic.css +0 -703
  947. package/dist/collection/components/divider/divider.ionic.css +0 -148
  948. package/dist/collection/components/divider/divider.ios.css +0 -87
  949. package/dist/collection/components/divider/divider.js +0 -94
  950. package/dist/collection/components/divider/divider.md.css +0 -87
  951. package/dist/collection/components/gallery/gallery-constants.js +0 -12
  952. package/dist/collection/components/gallery/gallery-interface.js +0 -1
  953. package/dist/collection/components/gallery/gallery.css +0 -100
  954. package/dist/collection/components/gallery/gallery.js +0 -595
  955. package/dist/collection/components/gallery/test/utils.js +0 -100
  956. package/dist/collection/components/header/header.ionic.css +0 -172
  957. package/dist/collection/components/input/input.ionic.css +0 -889
  958. package/dist/collection/components/input-otp/input-otp.ionic.css +0 -371
  959. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +0 -78
  960. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +0 -61
  961. package/dist/collection/components/item/item.ionic.css +0 -508
  962. package/dist/collection/components/item-option/item-option.ionic.css +0 -278
  963. package/dist/collection/components/item-options/item-options.ionic.css +0 -221
  964. package/dist/collection/components/item-sliding/item-sliding.ionic.css +0 -211
  965. package/dist/collection/components/list/list.ionic.css +0 -212
  966. package/dist/collection/components/list-header/list-header.ionic.css +0 -190
  967. package/dist/collection/components/menu-button/menu-button.ionic.css +0 -236
  968. package/dist/collection/components/modal/animations/ionic.enter.js +0 -40
  969. package/dist/collection/components/modal/animations/ionic.leave.js +0 -28
  970. package/dist/collection/components/modal/modal.ionic.css +0 -247
  971. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  972. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  973. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  974. package/dist/collection/components/picker-legacy/picker.ios.css +0 -312
  975. package/dist/collection/components/picker-legacy/picker.js +0 -891
  976. package/dist/collection/components/picker-legacy/picker.md.css +0 -299
  977. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -243
  978. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  979. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -234
  980. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  981. package/dist/collection/components/popover/popover.ionic.css +0 -290
  982. package/dist/collection/components/progress-bar/progress-bar.ionic.css +0 -287
  983. package/dist/collection/components/radio/radio.ionic.css +0 -422
  984. package/dist/collection/components/radio-group/radio-group.ionic.css +0 -119
  985. package/dist/collection/components/range/range.ionic.css +0 -567
  986. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +0 -215
  987. package/dist/collection/components/searchbar/searchbar.ionic.css +0 -626
  988. package/dist/collection/components/segment/segment.ionic.css +0 -115
  989. package/dist/collection/components/segment-button/segment-button.ionic.css +0 -353
  990. package/dist/collection/components/select/select.ionic.css +0 -810
  991. package/dist/collection/components/select-modal/select-modal.ionic.css +0 -154
  992. package/dist/collection/components/select-popover/select-popover.ionic.css +0 -499
  993. package/dist/collection/components/spinner/spinner.native.css +0 -199
  994. package/dist/collection/components/tab-bar/tab-bar.ionic.css +0 -227
  995. package/dist/collection/components/tab-button/tab-button.ionic.css +0 -348
  996. package/dist/collection/components/textarea/textarea.ionic.css +0 -898
  997. package/dist/collection/components/title/title.ionic.css +0 -127
  998. package/dist/collection/components/toast/toast.ionic.css +0 -394
  999. package/dist/collection/components/toggle/toggle.ionic.css +0 -508
  1000. package/dist/collection/components/toolbar/test/image.svg +0 -1
  1001. package/dist/collection/components/toolbar/toolbar.ionic.css +0 -249
  1002. package/dist/collection/utils/css-value-validation.js +0 -25
  1003. package/dist/collection/utils/on-scroll/collapse-hide.utils.js +0 -168
  1004. package/dist/collection/utils/select-option-render.js +0 -76
  1005. package/dist/esm/caret-down-D1t981Ih.js +0 -6
  1006. package/dist/esm/caret-left-fIOYmaqA.js +0 -6
  1007. package/dist/esm/caret-right-BYSs-jZz.js +0 -6
  1008. package/dist/esm/config-BwKpO3Is.js +0 -31
  1009. package/dist/esm/ion-divider.entry.js +0 -49
  1010. package/dist/esm/ion-gallery.entry.js +0 -508
  1011. package/dist/esm/ionic-global--9mOmThr.js +0 -508
  1012. package/dist/esm/list-Dhi5xtNS.js +0 -6
  1013. package/dist/esm/select-option-render-B2qc5ZP7.js +0 -79
  1014. package/dist/esm/validity-BjW8SOqw.js +0 -48
  1015. package/dist/esm/x-BDqjX7Z_.js +0 -6
  1016. package/dist/ionic/p-0030507d.entry.js +0 -4
  1017. package/dist/ionic/p-031df892.entry.js +0 -4
  1018. package/dist/ionic/p-04b5794c.entry.js +0 -4
  1019. package/dist/ionic/p-084c2623.entry.js +0 -4
  1020. package/dist/ionic/p-09f8a57f.entry.js +0 -4
  1021. package/dist/ionic/p-108c0f30.entry.js +0 -4
  1022. package/dist/ionic/p-1439fecb.entry.js +0 -4
  1023. package/dist/ionic/p-199bffb3.entry.js +0 -4
  1024. package/dist/ionic/p-19a1ff9a.entry.js +0 -4
  1025. package/dist/ionic/p-1a026890.entry.js +0 -4
  1026. package/dist/ionic/p-1ad16c09.entry.js +0 -4
  1027. package/dist/ionic/p-2aa7567e.entry.js +0 -4
  1028. package/dist/ionic/p-3656314c.entry.js +0 -4
  1029. package/dist/ionic/p-379cc989.entry.js +0 -4
  1030. package/dist/ionic/p-3f18dfe9.entry.js +0 -4
  1031. package/dist/ionic/p-40d9e029.entry.js +0 -4
  1032. package/dist/ionic/p-44d483c2.entry.js +0 -4
  1033. package/dist/ionic/p-456736d1.entry.js +0 -4
  1034. package/dist/ionic/p-48e3cb9e.entry.js +0 -4
  1035. package/dist/ionic/p-497f6391.entry.js +0 -4
  1036. package/dist/ionic/p-52ed96a8.entry.js +0 -4
  1037. package/dist/ionic/p-64b4e6eb.entry.js +0 -4
  1038. package/dist/ionic/p-66eb0193.entry.js +0 -4
  1039. package/dist/ionic/p-67c2d349.entry.js +0 -4
  1040. package/dist/ionic/p-7054a1b9.entry.js +0 -4
  1041. package/dist/ionic/p-7186786e.entry.js +0 -4
  1042. package/dist/ionic/p-7194f6fa.entry.js +0 -4
  1043. package/dist/ionic/p-76c70824.entry.js +0 -4
  1044. package/dist/ionic/p-7f294078.entry.js +0 -4
  1045. package/dist/ionic/p-8458f1b6.entry.js +0 -4
  1046. package/dist/ionic/p-88048796.entry.js +0 -4
  1047. package/dist/ionic/p-88e7f52a.entry.js +0 -4
  1048. package/dist/ionic/p-89eab395.entry.js +0 -4
  1049. package/dist/ionic/p-93315d96.entry.js +0 -4
  1050. package/dist/ionic/p-9ccfb733.entry.js +0 -4
  1051. package/dist/ionic/p-9dfbe98d.entry.js +0 -4
  1052. package/dist/ionic/p-B4ikoeaj.js +0 -4
  1053. package/dist/ionic/p-BDqjX7Z_.js +0 -4
  1054. package/dist/ionic/p-BFBCtvFI.js +0 -4
  1055. package/dist/ionic/p-BQgCYKKG.js +0 -4
  1056. package/dist/ionic/p-BYAxJDlE.js +0 -4
  1057. package/dist/ionic/p-BYSs-jZz.js +0 -4
  1058. package/dist/ionic/p-BjW8SOqw.js +0 -4
  1059. package/dist/ionic/p-BwKpO3Is.js +0 -4
  1060. package/dist/ionic/p-CDn0uNJA.js +0 -4
  1061. package/dist/ionic/p-CFjI63GE.js +0 -4
  1062. package/dist/ionic/p-CHE1xWbg.js +0 -4
  1063. package/dist/ionic/p-CK179dBb.js +0 -4
  1064. package/dist/ionic/p-CWJdc8f_.js +0 -4
  1065. package/dist/ionic/p-CYhXBSjd.js +0 -4
  1066. package/dist/ionic/p-D1t981Ih.js +0 -4
  1067. package/dist/ionic/p-D2tu5BUg.js +0 -4
  1068. package/dist/ionic/p-DDFhx1YX.js +0 -4
  1069. package/dist/ionic/p-DNGqaUsl.js +0 -4
  1070. package/dist/ionic/p-DaJxRxSQ.js +0 -4
  1071. package/dist/ionic/p-DaknVxZR.js +0 -4
  1072. package/dist/ionic/p-Dhi5xtNS.js +0 -4
  1073. package/dist/ionic/p-DoyDJ2X5.js +0 -4
  1074. package/dist/ionic/p-E1wtzfO0.js +0 -4
  1075. package/dist/ionic/p-FvDKM4Ax.js +0 -4
  1076. package/dist/ionic/p-IXZW3FBt.js +0 -4
  1077. package/dist/ionic/p-Omi_TcwW.js +0 -5
  1078. package/dist/ionic/p-PoSbs6oh.js +0 -4
  1079. package/dist/ionic/p-VAJ_3beW.js +0 -4
  1080. package/dist/ionic/p-a3f9be52.entry.js +0 -4
  1081. package/dist/ionic/p-ad4d0138.entry.js +0 -4
  1082. package/dist/ionic/p-b4fd91b8.entry.js +0 -4
  1083. package/dist/ionic/p-b653f4c2.entry.js +0 -4
  1084. package/dist/ionic/p-b69add0e.entry.js +0 -4
  1085. package/dist/ionic/p-b7235e85.entry.js +0 -4
  1086. package/dist/ionic/p-bc317965.entry.js +0 -4
  1087. package/dist/ionic/p-bf0c5a8d.entry.js +0 -4
  1088. package/dist/ionic/p-bsfLvRbd.js +0 -4
  1089. package/dist/ionic/p-c0558552.entry.js +0 -4
  1090. package/dist/ionic/p-c684a3b6.entry.js +0 -4
  1091. package/dist/ionic/p-c7139c41.entry.js +0 -4
  1092. package/dist/ionic/p-dac1d4de.entry.js +0 -4
  1093. package/dist/ionic/p-dd2981d0.entry.js +0 -4
  1094. package/dist/ionic/p-eTI_FbQJ.js +0 -4
  1095. package/dist/ionic/p-f08edb25.entry.js +0 -4
  1096. package/dist/ionic/p-f167c55c.entry.js +0 -4
  1097. package/dist/ionic/p-f7ca50a5.entry.js +0 -4
  1098. package/dist/ionic/p-fIOYmaqA.js +0 -4
  1099. package/dist/ionic/p-fbdbdb3e.entry.js +0 -4
  1100. package/dist/ionic/p-ff09d2a5.entry.js +0 -4
  1101. package/dist/ionic/p-vXpMhGrs.js +0 -4
  1102. package/dist/types/components/divider/divider.d.ts +0 -20
  1103. package/dist/types/components/gallery/gallery-constants.d.ts +0 -9
  1104. package/dist/types/components/gallery/gallery-interface.d.ts +0 -10
  1105. package/dist/types/components/gallery/gallery.d.ts +0 -183
  1106. package/dist/types/components/gallery/test/utils.d.ts +0 -2
  1107. package/dist/types/components/modal/animations/ionic.enter.d.ts +0 -6
  1108. package/dist/types/components/modal/animations/ionic.leave.d.ts +0 -6
  1109. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  1110. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  1111. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  1112. package/dist/types/components/picker-legacy/picker.d.ts +0 -159
  1113. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  1114. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
  1115. package/dist/types/utils/css-value-validation.d.ts +0 -12
  1116. package/dist/types/utils/on-scroll/collapse-hide.utils.d.ts +0 -26
  1117. package/dist/types/utils/select-option-render.d.ts +0 -22
  1118. /package/dist/collection/components/{refresher-content/refresher-content.css → input-password-toggle/input-password-toggle.css} +0 -0
@@ -1,20 +1,21 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, e as config, d as Host, g as getElement, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, j as printIonError } from './index-Omi_TcwW.js';
5
- import { focusElements } from './focus-visible-vXpMhGrs.js';
6
- import { c as getIonTheme, a as isPlatform, b as getIonMode } from './ionic-global--9mOmThr.js';
7
- import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-Do7zwvM1.js';
4
+ import { r as registerInstance, e as config, f as printIonWarning, h, d as Host, g as getElement, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, j as printIonError } from './index-tcQvqkiX.js';
5
+ import { shouldUseCloseWatcher } from './hardware-back-button-B93Gru0Y.js';
6
+ import { a as isPlatform, b as getIonMode } from './ionic-global-Cp_eT4sZ.js';
7
+ import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-HEqiOzXb.js';
8
8
  import { i as isRTL } from './dir-C53feagD.js';
9
- import { c as createColorClasses, h as hostContext } from './theme-DaJxRxSQ.js';
10
- import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-BmkLokUL.js';
11
- import { c as createKeyboardController } from './keyboard-controller-BpOdk6xN.js';
9
+ import { c as createColorClasses, h as hostContext } from './theme-DiVJyqlX.js';
10
+ import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-MEDq2S8l.js';
11
+ import { c as createKeyboardController } from './keyboard-controller-BaaVITYt.js';
12
12
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
13
- import { a as attachComponent, d as detachComponent } from './framework-delegate-CjVwn_KZ.js';
13
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-FnPGymXL.js';
14
14
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
15
- import { t as transition } from './index-B2VWavcK.js';
16
- import './keyboard-Dnno7-Ci.js';
17
- import './capacitor-13SFuT1K.js';
15
+ import { t as transition } from './index-B_dQk_WE.js';
16
+ import './index-ZjP4CjeZ.js';
17
+ import './keyboard-CUw4ekVy.js';
18
+ import './capacitor-CFERIeaU.js';
18
19
 
19
20
  const appCss = () => `html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}`;
20
21
 
@@ -22,6 +23,51 @@ const App = class {
22
23
  constructor(hostRef) {
23
24
  registerInstance(this, hostRef);
24
25
  }
26
+ componentDidLoad() {
27
+ {
28
+ this.rIC(async () => {
29
+ const isHybrid = isPlatform(window, 'hybrid');
30
+ if (!config.getBoolean('_testing')) {
31
+ import('./index-BRHzoo00.js').then((module) => module.startTapClick(config));
32
+ }
33
+ if (config.getBoolean('statusTap', isHybrid)) {
34
+ import('./status-tap-Kan2W7sh.js').then((module) => module.startStatusTap());
35
+ }
36
+ if (config.getBoolean('inputShims', needInputShims())) {
37
+ /**
38
+ * needInputShims() ensures that only iOS and Android
39
+ * platforms proceed into this block.
40
+ */
41
+ const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
42
+ import('./input-shims-D10mwcw1.js').then((module) => module.startInputShims(config, platform));
43
+ }
44
+ const hardwareBackButtonModule = await import('./hardware-back-button-B93Gru0Y.js');
45
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
46
+ if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
47
+ hardwareBackButtonModule.startHardwareBackButton();
48
+ }
49
+ else {
50
+ /**
51
+ * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
52
+ * then the close watcher will not be used.
53
+ */
54
+ if (shouldUseCloseWatcher()) {
55
+ printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
56
+ }
57
+ hardwareBackButtonModule.blockHardwareBackButton();
58
+ }
59
+ if (typeof window !== 'undefined') {
60
+ import('./keyboard-ywgs5efA.js').then((module) => module.startKeyboardAssist(window));
61
+ }
62
+ import('./focus-visible-BmVRXR1y.js').then((module) => (this.focusVisible = module.startFocusVisible()));
63
+ });
64
+ }
65
+ }
66
+ disconnectedCallback() {
67
+ if (this.loadTimeout) {
68
+ clearTimeout(this.loadTimeout);
69
+ }
70
+ }
25
71
  /**
26
72
  * Used to set focus on an element that uses `ion-focusable`.
27
73
  * Do not use this if focusing the element as a result of a keyboard
@@ -34,29 +80,52 @@ const App = class {
34
80
  * @param elements An array of HTML elements to set focus on.
35
81
  */
36
82
  async setFocus(elements) {
37
- /**
38
- * The focus-visible utility is used to set focus on an
39
- * element that uses `ion-focusable`.
40
- */
41
- focusElements(elements);
83
+ if (this.focusVisible) {
84
+ this.focusVisible.setFocus(elements);
85
+ }
86
+ }
87
+ rIC(callback) {
88
+ if ('requestIdleCallback' in window) {
89
+ window.requestIdleCallback(callback);
90
+ }
91
+ else {
92
+ this.loadTimeout = setTimeout(callback, 32);
93
+ }
42
94
  }
43
95
  render() {
44
- const theme = getIonTheme(this);
45
- return (h(Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
46
- [theme]: true,
96
+ const mode = getIonMode(this);
97
+ return (h(Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
98
+ [mode]: true,
47
99
  'ion-page': true,
48
100
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
49
101
  } }));
50
102
  }
51
103
  get el() { return getElement(this); }
52
104
  };
105
+ const needInputShims = () => {
106
+ /**
107
+ * iOS always needs input shims
108
+ */
109
+ const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');
110
+ if (needsShimsIOS) {
111
+ return true;
112
+ }
113
+ /**
114
+ * Android only needs input shims when running
115
+ * in the browser and only if the browser is using the
116
+ * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
117
+ */
118
+ const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');
119
+ if (isAndroidMobileWeb) {
120
+ return true;
121
+ }
122
+ return false;
123
+ };
53
124
  App.style = appCss();
54
125
 
55
- const buttonsIonicCss = () => `.sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-600, 1.5rem)}`;
56
-
57
- const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-h{z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
126
+ const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
58
127
 
59
- const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-h{z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
128
+ const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
60
129
 
61
130
  const Buttons = class {
62
131
  constructor(hostRef) {
@@ -68,7 +137,7 @@ const Buttons = class {
68
137
  * first toolbar, the buttons will be hidden and will
69
138
  * only be shown once all toolbars have fully collapsed.
70
139
  *
71
- * Only applies in the `ios` theme with `collapse` set to
140
+ * Only applies in `ios` mode with `collapse` set to
72
141
  * `true` on `ion-header`.
73
142
  *
74
143
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -76,20 +145,19 @@ const Buttons = class {
76
145
  this.collapse = false;
77
146
  }
78
147
  render() {
79
- const theme = getIonTheme(this);
80
- return (h(Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
81
- [theme]: true,
148
+ const mode = getIonMode(this);
149
+ return (h(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
150
+ [mode]: true,
82
151
  ['buttons-collapse']: this.collapse,
83
- } }, h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
152
+ } }, h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
84
153
  }
85
154
  };
86
155
  Buttons.style = {
87
- ionic: buttonsIonicCss(),
88
156
  ios: buttonsIosCss(),
89
157
  md: buttonsMdCss()
90
158
  };
91
159
 
92
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-footer-hide-scroll-partner)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-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-footer-hide-scroll-partner).content-header-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 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-header-hide-scroll-partner)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-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-footer-hide-scroll-partner:not(.content-header-hide-scroll-partner).content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--footer-hide-slide-y, 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-header-hide-scroll-partner.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-hidden):not(.content-footer-hide-scroll-hidden)) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;-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.content-footer-hide-scroll-partner.content-header-hide-scroll-hidden:not(.content-footer-hide-scroll-hidden)) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 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-header-hide-scroll-partner.content-footer-hide-scroll-partner:not(.content-header-hide-scroll-hidden).content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(0);transform:translateY(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--footer-hide-slide-y, 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-header-hide-scroll-partner.content-footer-hide-scroll-partner.content-header-hide-scroll-hidden.content-footer-hide-scroll-hidden) .inner-scroll{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));-webkit-backface-visibility:hidden;backface-visibility:hidden;height:calc(100% + var(--header-hide-slide-y, 0px) + var(--footer-hide-slide-y, 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)}`;
160
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
93
161
 
94
162
  const Content = class {
95
163
  constructor(hostRef) {
@@ -252,8 +320,9 @@ const Content = class {
252
320
  this.resize();
253
321
  }, 100);
254
322
  }
255
- shouldForceOverscroll(mode) {
323
+ shouldForceOverscroll() {
256
324
  const { forceOverscroll } = this;
325
+ const mode = getIonMode(this);
257
326
  return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
258
327
  }
259
328
  resize() {
@@ -449,13 +518,12 @@ const Content = class {
449
518
  render() {
450
519
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
451
520
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
452
- const theme = getIonTheme(this);
453
- const mode = getIonMode(this, theme);
454
- const forceOverscroll = this.shouldForceOverscroll(mode);
455
- const transitionShadow = theme === 'ios';
521
+ const mode = getIonMode(this);
522
+ const forceOverscroll = this.shouldForceOverscroll();
523
+ const transitionShadow = mode === 'ios';
456
524
  this.resize();
457
- return (h(Host, Object.assign({ key: 'd7f325c30b698dc42ec5e8c45b29e82749743cf4', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
458
- [theme]: true,
525
+ return (h(Host, Object.assign({ key: '8c1bc4a4df8698d3884741eb38512dc059210c50', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
526
+ [mode]: true,
459
527
  'content-fullscreen': this.fullscreen,
460
528
  'content-sizing': hostContext('ion-popover', this.el),
461
529
  overscroll: forceOverscroll,
@@ -463,12 +531,12 @@ const Content = class {
463
531
  }), style: {
464
532
  '--offset-top': `${this.cTop}px`,
465
533
  '--offset-bottom': `${this.cBottom}px`,
466
- } }, inheritedAttributes), h("div", { key: 'c93b2c622a69c7fd153bbe9b0c6f8c24d85ed969', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '1700cc94e464ad1ab1c6672270f9649e90be3a5e', class: {
534
+ } }, inheritedAttributes), h("div", { key: '5e7412549b51ef7543d9378ecab9aac6bc461588', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: '33f6fbf7e1e027c7cbd2dda95b487f18dc648cef', class: {
467
535
  'inner-scroll': true,
468
536
  'scroll-x': scrollX,
469
537
  'scroll-y': scrollY,
470
538
  overscroll: (scrollX || scrollY) && forceOverscroll,
471
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: 'bff713ead4f61730e3f36b5af4b771ae62bde6cd' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
539
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '00c8fe7b9e73533c702273c9457d274195d54e98' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
472
540
  }
473
541
  get el() { return getElement(this); }
474
542
  };
@@ -494,8 +562,7 @@ const getPageElement = (el) => {
494
562
  * between the popover and the edges of the screen. But if the popover contains
495
563
  * its own page element, we should use that instead.
496
564
  */
497
- const appRootSelector = config.get('appRootSelector', 'ion-app');
498
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
565
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
499
566
  if (page) {
500
567
  return page;
501
568
  }
@@ -530,171 +597,6 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
530
597
  };
531
598
  Content.style = contentCss();
532
599
 
533
- /** Cumulative downward delta before hiding (header or footer `collapse="hide"`). */
534
- const COLLAPSE_HIDE_THRESHOLD_PX = 24;
535
- /**
536
- * Cumulative upward delta before showing again after hide. Small bias
537
- * (instead of "any upward delta") guards against inertial-scroll
538
- * oscillation flicking the region back open during a downward gesture.
539
- */
540
- const COLLAPSE_SHOW_THRESHOLD_PX = 5;
541
- const WHEEL_SCROLL_SUPPRESS_MS = 80;
542
- const getContentHostFromScrollEl = (scrollEl) => {
543
- const root = scrollEl.getRootNode();
544
- if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
545
- return root.host;
546
- }
547
- // Light-DOM fallback: the scroll element may live inside a non-shadow
548
- // ion-content (e.g. custom scroll host). Walk up to the nearest ion-content.
549
- return scrollEl.closest('ion-content');
550
- };
551
- const applySlideDistance = (regionEl, contentHost, slideCssVar, heightPx) => {
552
- const value = `${Math.max(0, Math.ceil(heightPx))}px`;
553
- regionEl.style.setProperty(slideCssVar, value);
554
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.setProperty(slideCssVar, value);
555
- };
556
- const clearSlideDistance = (regionEl, contentHost, slideCssVar) => {
557
- regionEl.style.removeProperty(slideCssVar);
558
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.removeProperty(slideCssVar);
559
- };
560
- /**
561
- * Scroll/wheel-driven hide/show for `collapse="hide"` on `ion-header` or `ion-footer`.
562
- * Hide after {@link COLLAPSE_HIDE_THRESHOLD_PX}px cumulative downward delta; show after
563
- * {@link COLLAPSE_SHOW_THRESHOLD_PX}px cumulative upward delta. Each direction drains
564
- * (not resets) the opposing accumulator so inertial-scroll jitter doesn't stall either
565
- * transition. Motion is defined in component SCSS and `content.scss`; this toggles
566
- * classes and syncs the slide distance CSS var.
567
- */
568
- const createCollapseHideInteraction = ({ regionEl, scrollEl, slideCssVar, contentPartnerClass, contentHiddenClass, regionHiddenClass, }) => {
569
- const contentHost = getContentHostFromScrollEl(scrollEl);
570
- if (contentHost !== null) {
571
- contentHost.classList.add(contentPartnerClass);
572
- }
573
- let resizeObserver;
574
- let destroyed = false;
575
- const syncSlideDistance = () => {
576
- readTask(() => {
577
- if (destroyed) {
578
- return;
579
- }
580
- const heightPx = regionEl.offsetHeight;
581
- writeTask(() => {
582
- if (destroyed) {
583
- return;
584
- }
585
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
586
- });
587
- });
588
- };
589
- if (typeof ResizeObserver !== 'undefined') {
590
- resizeObserver = new ResizeObserver(() => {
591
- syncSlideDistance();
592
- });
593
- resizeObserver.observe(regionEl);
594
- }
595
- syncSlideDistance();
596
- requestAnimationFrame(() => {
597
- if (!destroyed) {
598
- syncSlideDistance();
599
- }
600
- });
601
- let hidden = false;
602
- let accDown = 0;
603
- let accUp = 0;
604
- let lastScrollTop = scrollEl.scrollTop;
605
- let lastWheelTime = 0;
606
- const setHidden = (next) => {
607
- if (hidden === next || destroyed) {
608
- return;
609
- }
610
- hidden = next;
611
- // When transitioning to hidden, re-measure synchronously in case the
612
- // initial layout reported offsetHeight === 0 (e.g. mid page transition).
613
- // Without this the slide animates by 0px and only opacity fades.
614
- if (hidden) {
615
- const heightPx = regionEl.offsetHeight;
616
- if (heightPx > 0) {
617
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
618
- }
619
- }
620
- writeTask(() => {
621
- if (destroyed) {
622
- return;
623
- }
624
- regionEl.classList.toggle(regionHiddenClass, hidden);
625
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.toggle(contentHiddenClass, hidden);
626
- if (hidden) {
627
- // `inert` removes the subtree from the tab order and AT, AND moves
628
- // focus out automatically in supporting browsers. `aria-hidden` is
629
- // kept as a fallback for older engines without `inert` support.
630
- regionEl.setAttribute('inert', '');
631
- regionEl.setAttribute('aria-hidden', 'true');
632
- }
633
- else {
634
- regionEl.removeAttribute('inert');
635
- regionEl.removeAttribute('aria-hidden');
636
- }
637
- });
638
- };
639
- // Accumulate cumulative movement in each direction. The OPPOSITE accumulator
640
- // is drained (not reset) by each event, so brief inertial jitter does not
641
- // wipe a sustained gesture's accumulation. Crossing a threshold resets both.
642
- const processDelta = (delta) => {
643
- if (delta > 0) {
644
- accUp = Math.max(0, accUp - delta);
645
- accDown += delta;
646
- if (accDown >= COLLAPSE_HIDE_THRESHOLD_PX) {
647
- setHidden(true);
648
- accDown = 0;
649
- accUp = 0;
650
- }
651
- }
652
- else if (delta < 0) {
653
- const mag = -delta;
654
- accDown = Math.max(0, accDown - mag);
655
- accUp += mag;
656
- if (accUp >= COLLAPSE_SHOW_THRESHOLD_PX) {
657
- setHidden(false);
658
- accUp = 0;
659
- accDown = 0;
660
- }
661
- }
662
- };
663
- const onWheel = (ev) => {
664
- if (destroyed) {
665
- return;
666
- }
667
- lastWheelTime = performance.now();
668
- processDelta(ev.deltaY);
669
- };
670
- const onScroll = () => {
671
- if (destroyed) {
672
- return;
673
- }
674
- const st = scrollEl.scrollTop;
675
- if (performance.now() - lastWheelTime < WHEEL_SCROLL_SUPPRESS_MS) {
676
- lastScrollTop = st;
677
- return;
678
- }
679
- const delta = st - lastScrollTop;
680
- lastScrollTop = st;
681
- processDelta(delta);
682
- };
683
- scrollEl.addEventListener('wheel', onWheel, { passive: true });
684
- scrollEl.addEventListener('scroll', onScroll, { passive: true });
685
- return () => {
686
- destroyed = true;
687
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
688
- scrollEl.removeEventListener('wheel', onWheel);
689
- scrollEl.removeEventListener('scroll', onScroll);
690
- regionEl.classList.remove(regionHiddenClass);
691
- regionEl.removeAttribute('inert');
692
- regionEl.removeAttribute('aria-hidden');
693
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.remove(contentPartnerClass, contentHiddenClass);
694
- clearSlideDistance(regionEl, contentHost, slideCssVar);
695
- };
696
- };
697
-
698
600
  const handleFooterFade = (scrollEl, baseEl) => {
699
601
  readTask(() => {
700
602
  const scrollTop = scrollEl.scrollTop;
@@ -723,32 +625,20 @@ const handleFooterFade = (scrollEl, baseEl) => {
723
625
  });
724
626
  });
725
627
  };
726
- const createFooterHideInteraction = (footerEl, scrollEl) => createCollapseHideInteraction({
727
- regionEl: footerEl,
728
- scrollEl,
729
- slideCssVar: '--footer-hide-slide-y',
730
- contentPartnerClass: 'content-footer-hide-scroll-partner',
731
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
732
- regionHiddenClass: 'footer-collapse-hide-hidden',
733
- });
734
-
735
- 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)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-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}.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}`;
736
628
 
737
- 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)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-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}.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}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
629
+ const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
738
630
 
739
- 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)}ion-footer.footer-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1}ion-footer.footer-collapse-hide.footer-collapse-hide-hidden{-webkit-transform:translateY(var(--footer-hide-slide-y, 0px));transform:translateY(var(--footer-hide-slide-y, 0px));pointer-events:none;-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}.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}`;
631
+ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
740
632
 
741
633
  const Footer = class {
742
634
  constructor(hostRef) {
743
635
  registerInstance(this, hostRef);
744
- this.didLoad = false;
745
- this.setupToken = 0;
746
636
  this.keyboardCtrl = null;
747
637
  this.keyboardCtrlPromise = null;
748
638
  this.keyboardVisible = false;
749
639
  /**
750
640
  * If `true`, the footer will be translucent.
751
- * Only applies when the theme is `"ios"` and the device supports
641
+ * Only applies when the mode is `"ios"` and the device supports
752
642
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
753
643
  *
754
644
  * Note: In order to scroll content behind the footer, the `fullscreen`
@@ -756,46 +646,25 @@ const Footer = class {
756
646
  */
757
647
  this.translucent = false;
758
648
  this.checkCollapsibleFooter = () => {
759
- const theme = getIonTheme(this);
760
- const { collapse } = this;
761
- const hasFade = collapse === 'fade';
762
- const hasHide = collapse === 'hide';
763
- const runIosFade = theme === 'ios' && hasFade;
764
- if (!runIosFade && !hasHide) {
765
- this.destroyCollapsibleFooter();
766
- return;
767
- }
768
- // Skip teardown/rebuild when the collapse mode and theme have not changed
769
- // since the last setup — avoids thrashing listeners and resetting scroll
770
- // accumulators on unrelated re-renders (e.g. keyboardVisible state flips).
771
- const activeMode = hasHide ? 'hide' : 'fade';
772
- if (this.appliedCollapse === activeMode && this.appliedTheme === theme) {
649
+ const mode = getIonMode(this);
650
+ if (mode !== 'ios') {
773
651
  return;
774
652
  }
653
+ const { collapse } = this;
654
+ const hasFade = collapse === 'fade';
775
655
  this.destroyCollapsibleFooter();
776
- const appRootSelector = config.get('appRootSelector', 'ion-app');
777
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
778
- const contentEl = pageEl ? findIonContent(pageEl) : null;
779
- if (!contentEl) {
780
- printIonContentErrorMsg(this.el);
781
- return;
782
- }
783
- this.appliedCollapse = activeMode;
784
- this.appliedTheme = theme;
785
- if (runIosFade) {
656
+ if (hasFade) {
657
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
658
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
659
+ if (!contentEl) {
660
+ printIonContentErrorMsg(this.el);
661
+ return;
662
+ }
786
663
  this.setupFadeFooter(contentEl);
787
664
  }
788
- else if (hasHide) {
789
- void this.setupHideFooter(contentEl);
790
- }
791
665
  };
792
666
  this.setupFadeFooter = async (contentEl) => {
793
- const token = ++this.setupToken;
794
- const scrollEl = await getScrollElement(contentEl);
795
- if (token !== this.setupToken) {
796
- return;
797
- }
798
- this.scrollEl = scrollEl;
667
+ const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
799
668
  /**
800
669
  * Handle fading of toolbars on scroll
801
670
  */
@@ -807,18 +676,12 @@ const Footer = class {
807
676
  };
808
677
  }
809
678
  componentDidLoad() {
810
- this.didLoad = true;
811
679
  this.checkCollapsibleFooter();
812
680
  }
813
681
  componentDidUpdate() {
814
682
  this.checkCollapsibleFooter();
815
683
  }
816
684
  async connectedCallback() {
817
- // On re-attach (didLoad already true but disconnectedCallback ran since),
818
- // componentDidLoad will not fire again — re-run setup here.
819
- if (this.didLoad) {
820
- this.checkCollapsibleFooter();
821
- }
822
685
  const promise = createKeyboardController(async (keyboardOpen, waitForResize) => {
823
686
  /**
824
687
  * If the keyboard is hiding, then we need to wait
@@ -846,7 +709,6 @@ const Footer = class {
846
709
  }
847
710
  }
848
711
  disconnectedCallback() {
849
- this.destroyCollapsibleFooter();
850
712
  if (this.keyboardCtrlPromise) {
851
713
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
852
714
  this.keyboardCtrlPromise = null;
@@ -856,49 +718,30 @@ const Footer = class {
856
718
  this.keyboardCtrl = null;
857
719
  }
858
720
  }
859
- async setupHideFooter(contentEl) {
860
- const token = ++this.setupToken;
861
- const scrollEl = await getScrollElement(contentEl);
862
- // A newer checkCollapsibleFooter ran while we were awaiting — abandon.
863
- if (token !== this.setupToken) {
864
- return;
865
- }
866
- this.scrollEl = scrollEl;
867
- this.footerHideCleanup = createFooterHideInteraction(this.el, scrollEl);
868
- }
869
721
  destroyCollapsibleFooter() {
870
- // Invalidate any in-flight setupHideFooter/setupFadeFooter awaits.
871
- this.setupToken++;
872
- if (this.footerHideCleanup) {
873
- this.footerHideCleanup();
874
- this.footerHideCleanup = undefined;
875
- }
876
722
  if (this.scrollEl && this.contentScrollCallback) {
877
723
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
878
724
  this.contentScrollCallback = undefined;
879
725
  }
880
- this.appliedCollapse = undefined;
881
- this.appliedTheme = undefined;
882
726
  }
883
727
  render() {
884
728
  const { translucent, collapse } = this;
885
- const theme = getIonTheme(this);
729
+ const mode = getIonMode(this);
886
730
  const tabs = this.el.closest('ion-tabs');
887
731
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
888
- return (h(Host, { key: '5df79a31f36febfad49c5858727e93c7ba5734f8', role: "contentinfo", class: {
889
- [theme]: true,
732
+ return (h(Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
733
+ [mode]: true,
890
734
  // Used internally for styling
891
- [`footer-${theme}`]: true,
735
+ [`footer-${mode}`]: true,
892
736
  [`footer-translucent`]: translucent,
893
- [`footer-translucent-${theme}`]: translucent,
737
+ [`footer-translucent-${mode}`]: translucent,
894
738
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
895
739
  [`footer-collapse-${collapse}`]: collapse !== undefined,
896
- } }, theme === 'ios' && translucent && h("div", { key: '9175ae4f6576d82dff2a00a36e91f4b633d8c9ad', class: "footer-background" }), h("slot", { key: 'd6d618cdae4726822d8e82edb782c5c86fc7b77b' })));
740
+ } }, mode === 'ios' && translucent && h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
897
741
  }
898
742
  get el() { return getElement(this); }
899
743
  };
900
744
  Footer.style = {
901
- ionic: ionicFooterMdCss(),
902
745
  ios: footerIosCss(),
903
746
  md: footerMdCss()
904
747
  };
@@ -1079,14 +922,6 @@ const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
1079
922
  titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
1080
923
  });
1081
924
  };
1082
- const createHeaderHideInteraction = (headerEl, scrollEl) => createCollapseHideInteraction({
1083
- regionEl: headerEl,
1084
- scrollEl,
1085
- slideCssVar: '--header-hide-slide-y',
1086
- contentPartnerClass: 'content-header-hide-scroll-partner',
1087
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1088
- regionHiddenClass: 'header-collapse-hide-hidden',
1089
- });
1090
925
  const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1091
926
  readTask(() => {
1092
927
  const scrollTop = scrollEl.scrollTop;
@@ -1123,45 +958,37 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1123
958
  *
1124
959
  * @param isInsideMenu If ion-header is inside ion-menu.
1125
960
  * @param isCondensed If ion-header has collapse="condense".
1126
- * @param theme The current theme.
961
+ * @param mode The current mode.
1127
962
  * @returns 'none' if inside ion-menu or if condensed in md
1128
- * theme, otherwise 'banner'.
963
+ * mode, otherwise 'banner'.
1129
964
  */
1130
- const getRoleType = (isInsideMenu, isCondensed, theme) => {
965
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
1131
966
  // If the header is inside a menu, it should not have the banner role.
1132
967
  if (isInsideMenu) {
1133
968
  return ROLE_NONE;
1134
969
  }
1135
970
  /**
1136
- * Only apply role="none" to `md` & `ionic` theme condensed headers
971
+ * Only apply role="none" to `md` mode condensed headers
1137
972
  * since the large header is never shown.
1138
973
  */
1139
- if (isCondensed && theme !== 'ios') {
974
+ if (isCondensed && mode === 'md') {
1140
975
  return ROLE_NONE;
1141
976
  }
1142
977
  // Default to banner role.
1143
978
  return ROLE_BANNER;
1144
979
  };
1145
980
 
1146
- 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)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-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}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}}`;
1147
-
1148
- 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)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-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}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-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}`;
981
+ const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}`;
1149
982
 
1150
- 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)}ion-header.header-collapse-hide{-webkit-transform:translateY(0);transform:translateY(0);-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);opacity:1;z-index:10}ion-header.header-collapse-hide.header-collapse-hide-hidden{-webkit-transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));transform:translateY(calc(-1 * var(--header-hide-slide-y, 0px)));pointer-events:none;-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}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{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
983
+ const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
1151
984
 
1152
985
  const Header = class {
1153
986
  constructor(hostRef) {
1154
987
  registerInstance(this, hostRef);
1155
988
  this.inheritedAttributes = {};
1156
- this.didLoad = false;
1157
- /**
1158
- * If `true`, the header will have a line at the bottom.
1159
- * TODO(ROU-10855): add support for this prop on ios/md themes
1160
- */
1161
- this.divider = false;
1162
989
  /**
1163
990
  * If `true`, the header will be translucent.
1164
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
991
+ * Only applies when the mode is `"ios"` and the device supports
1165
992
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
1166
993
  *
1167
994
  * Note: In order to scroll content behind the header, the `fullscreen`
@@ -1184,38 +1011,25 @@ const Header = class {
1184
1011
  this.inheritedAttributes = inheritAriaAttributes(this.el);
1185
1012
  }
1186
1013
  componentDidLoad() {
1187
- this.didLoad = true;
1188
1014
  this.checkCollapsibleHeader();
1189
1015
  }
1190
1016
  componentDidUpdate() {
1191
1017
  this.checkCollapsibleHeader();
1192
1018
  }
1193
- connectedCallback() {
1194
- // On re-attach (didLoad already true but disconnectedCallback ran since),
1195
- // componentDidLoad will not fire again — re-run setup here.
1196
- if (this.didLoad) {
1197
- this.checkCollapsibleHeader();
1198
- }
1199
- }
1200
1019
  disconnectedCallback() {
1201
1020
  this.destroyCollapsibleHeader();
1202
1021
  }
1203
1022
  async checkCollapsibleHeader() {
1204
- const theme = getIonTheme(this);
1023
+ const mode = getIonMode(this);
1024
+ if (mode !== 'ios') {
1025
+ return;
1026
+ }
1205
1027
  const { collapse } = this;
1206
1028
  const hasCondense = collapse === 'condense';
1207
1029
  const hasFade = collapse === 'fade';
1208
- const hasHide = collapse === 'hide';
1209
- const runIosCollapse = theme === 'ios' && (hasCondense || hasFade);
1210
- const runHide = hasHide;
1211
- if (!runIosCollapse && !runHide) {
1212
- this.destroyCollapsibleHeader();
1213
- return;
1214
- }
1215
1030
  this.destroyCollapsibleHeader();
1216
- const appRootSelector = config.get('appRootSelector', 'ion-app');
1217
- if (runIosCollapse && hasCondense) {
1218
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1031
+ if (hasCondense) {
1032
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1219
1033
  const contentEl = pageEl ? findIonContent(pageEl) : null;
1220
1034
  // Cloned elements are always needed in iOS transition
1221
1035
  writeTask(() => {
@@ -1225,8 +1039,8 @@ const Header = class {
1225
1039
  });
1226
1040
  await this.setupCondenseHeader(contentEl, pageEl);
1227
1041
  }
1228
- else if (runIosCollapse && hasFade) {
1229
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1042
+ else if (hasFade) {
1043
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1230
1044
  const contentEl = pageEl ? findIonContent(pageEl) : null;
1231
1045
  if (!contentEl) {
1232
1046
  printIonContentErrorMsg(this.el);
@@ -1235,29 +1049,12 @@ const Header = class {
1235
1049
  const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1236
1050
  await this.setupFadeHeader(contentEl, condenseHeader);
1237
1051
  }
1238
- if (runHide) {
1239
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1240
- const contentEl = pageEl ? findIonContent(pageEl) : null;
1241
- if (!contentEl) {
1242
- printIonContentErrorMsg(this.el);
1243
- return;
1244
- }
1245
- await this.setupHideHeader(contentEl);
1246
- }
1247
- }
1248
- async setupHideHeader(contentEl) {
1249
- const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
1250
- this.headerHideCleanup = createHeaderHideInteraction(this.el, scrollEl);
1251
1052
  }
1252
1053
  destroyCollapsibleHeader() {
1253
1054
  if (this.intersectionObserver) {
1254
1055
  this.intersectionObserver.disconnect();
1255
1056
  this.intersectionObserver = undefined;
1256
1057
  }
1257
- if (this.headerHideCleanup) {
1258
- this.headerHideCleanup();
1259
- this.headerHideCleanup = undefined;
1260
- }
1261
1058
  if (this.scrollEl && this.contentScrollCallback) {
1262
1059
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
1263
1060
  this.contentScrollCallback = undefined;
@@ -1318,31 +1115,29 @@ const Header = class {
1318
1115
  });
1319
1116
  }
1320
1117
  render() {
1321
- const { translucent, inheritedAttributes, divider } = this;
1322
- const theme = getIonTheme(this);
1118
+ const { translucent, inheritedAttributes } = this;
1119
+ const mode = getIonMode(this);
1323
1120
  const collapse = this.collapse || 'none';
1324
1121
  const isCondensed = collapse === 'condense';
1325
1122
  // banner role must be at top level, so remove role if inside a menu
1326
- const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
1327
- return (h(Host, Object.assign({ key: '5cae1ff0bbc5f2035325c128a9394caf7f1459a0', role: roleType, class: {
1328
- [theme]: true,
1123
+ const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, mode);
1124
+ return (h(Host, Object.assign({ key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1125
+ [mode]: true,
1329
1126
  // Used internally for styling
1330
- [`header-${theme}`]: true,
1127
+ [`header-${mode}`]: true,
1331
1128
  [`header-translucent`]: this.translucent,
1332
1129
  [`header-collapse-${collapse}`]: true,
1333
- [`header-translucent-${theme}`]: this.translucent,
1334
- ['header-divider']: divider,
1335
- } }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: '705f120951a3dd429286b66cd0b511fa267b3702', class: "header-background" }), h("slot", { key: '1c7a9d474083cf92abfe88c02d363f8d420716ca' })));
1130
+ [`header-translucent-${mode}`]: this.translucent,
1131
+ } }, inheritedAttributes), mode === 'ios' && translucent && h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1336
1132
  }
1337
1133
  get el() { return getElement(this); }
1338
1134
  };
1339
1135
  Header.style = {
1340
- ionic: headerIonicCss(),
1341
1136
  ios: headerIosCss(),
1342
1137
  md: headerMdCss()
1343
1138
  };
1344
1139
 
1345
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1140
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1346
1141
 
1347
1142
  const RouterOutlet = class {
1348
1143
  constructor(hostRef) {
@@ -1353,7 +1148,7 @@ const RouterOutlet = class {
1353
1148
  this.lockController = createLockController();
1354
1149
  this.gestureOrAnimationInProgress = false;
1355
1150
  /**
1356
- * The mode determines the platform behaviors of the component.
1151
+ * The mode determines which platform styles to use.
1357
1152
  */
1358
1153
  this.mode = getIonMode(this);
1359
1154
  /**
@@ -1361,10 +1156,11 @@ const RouterOutlet = class {
1361
1156
  */
1362
1157
  this.animated = true;
1363
1158
  }
1159
+ swipeGestureChanged() {
1160
+ this.updateGestureEnabled();
1161
+ }
1364
1162
  swipeHandlerChanged() {
1365
- if (this.gesture) {
1366
- this.gesture.enable(this.swipeHandler !== undefined);
1367
- }
1163
+ this.updateGestureEnabled();
1368
1164
  }
1369
1165
  async connectedCallback() {
1370
1166
  const onStart = () => {
@@ -1373,7 +1169,7 @@ const RouterOutlet = class {
1373
1169
  this.swipeHandler.onStart();
1374
1170
  }
1375
1171
  };
1376
- this.gesture = (await import('./swipe-back-BzGqTrrq.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1172
+ this.gesture = (await import('./swipe-back-DQ1q5MgD.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1377
1173
  if (this.ani) {
1378
1174
  this.ani.onFinish(() => {
1379
1175
  this.gestureOrAnimationInProgress = false;
@@ -1404,11 +1200,21 @@ const RouterOutlet = class {
1404
1200
  this.gestureOrAnimationInProgress = false;
1405
1201
  }
1406
1202
  });
1407
- this.swipeHandlerChanged();
1203
+ if (this.swipeGesture === undefined) {
1204
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
1205
+ }
1206
+ else {
1207
+ this.updateGestureEnabled();
1208
+ }
1408
1209
  }
1409
1210
  componentWillLoad() {
1410
1211
  this.ionNavWillLoad.emit();
1411
1212
  }
1213
+ updateGestureEnabled() {
1214
+ if (this.gesture) {
1215
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
1216
+ }
1217
+ }
1412
1218
  disconnectedCallback() {
1413
1219
  if (this.gesture) {
1414
1220
  this.gesture.destroy();
@@ -1519,10 +1325,13 @@ const RouterOutlet = class {
1519
1325
  return true;
1520
1326
  }
1521
1327
  render() {
1522
- return h("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
1328
+ return h("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
1523
1329
  }
1524
1330
  get el() { return getElement(this); }
1525
1331
  static get watchers() { return {
1332
+ "swipeGesture": [{
1333
+ "swipeGestureChanged": 0
1334
+ }],
1526
1335
  "swipeHandler": [{
1527
1336
  "swipeHandlerChanged": 0
1528
1337
  }]
@@ -1530,11 +1339,9 @@ const RouterOutlet = class {
1530
1339
  };
1531
1340
  RouterOutlet.style = routerOutletCss();
1532
1341
 
1533
- 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}`;
1534
-
1535
- const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host(.ion-color){color:var(--ion-color-base)}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1342
+ const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1536
1343
 
1537
- 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}`;
1344
+ const titleMdCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}`;
1538
1345
 
1539
1346
  const ToolbarTitle = class {
1540
1347
  constructor(hostRef) {
@@ -1557,13 +1364,13 @@ const ToolbarTitle = class {
1557
1364
  return this.size !== undefined ? this.size : 'default';
1558
1365
  }
1559
1366
  render() {
1560
- const theme = getIonTheme(this);
1367
+ const mode = getIonMode(this);
1561
1368
  const size = this.getSize();
1562
- return (h(Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: createColorClasses(this.color, {
1563
- [theme]: true,
1369
+ return (h(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses(this.color, {
1370
+ [mode]: true,
1564
1371
  [`title-${size}`]: true,
1565
1372
  'title-rtl': document.dir === 'rtl',
1566
- }) }, h("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, h("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
1373
+ }) }, h("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, h("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
1567
1374
  }
1568
1375
  get el() { return getElement(this); }
1569
1376
  static get watchers() { return {
@@ -1573,29 +1380,18 @@ const ToolbarTitle = class {
1573
1380
  }; }
1574
1381
  };
1575
1382
  ToolbarTitle.style = {
1576
- ionic: titleIonicCss(),
1577
1383
  ios: titleIosCss(),
1578
1384
  md: titleMdCss()
1579
1385
  };
1580
1386
 
1581
- const toolbarIonicCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--border-color:currentColor;--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--min-height:var(--token-scale-1400, 56px)}.toolbar-container{gap:var(--token-space-400, var(--token-scale-400, 16px));z-index:10}.toolbar-background{z-index:-1}.toolbar-content{-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}:host(.toolbar-searchbar) ::slotted(ion-searchbar){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}::slotted(ion-buttons){gap:var(--token-space-200, var(--token-scale-200, 8px))}::slotted(ion-title){-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px))}:host(.toolbar-title-large) ::slotted(ion-title){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}:host(.has-end-content) slot[name=end],:host(.show-end) slot[name=end]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-start-content) slot[name=start],:host(.show-start) slot[name=start]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0)}:host(.has-primary-content) slot[name=primary],:host(.show-primary) slot[name=primary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-secondary-content) slot[name=secondary],:host(.show-secondary) slot[name=secondary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0)}:host(.toolbar-title-placement-start) ::slotted(ion-title){text-align:start}:host(.toolbar-title-placement-center) ::slotted(ion-title){text-align:center}:host(.toolbar-title-placement-end) ::slotted(ion-title){text-align:end}`;
1387
+ const toolbarIosCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}`;
1582
1388
 
1583
- 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%}`;
1584
-
1585
- const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1389
+ const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1586
1390
 
1587
1391
  const Toolbar = class {
1588
1392
  constructor(hostRef) {
1589
1393
  registerInstance(this, hostRef);
1590
1394
  this.childrenStyles = new Map();
1591
- this.slotClasses = [
1592
- 'has-start-content',
1593
- 'has-end-content',
1594
- 'has-primary-content',
1595
- 'has-secondary-content',
1596
- ];
1597
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1598
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1599
1395
  }
1600
1396
  componentWillLoad() {
1601
1397
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1612,173 +1408,6 @@ const Toolbar = class {
1612
1408
  if (lastButtons) {
1613
1409
  lastButtons.classList.add('buttons-last-slot');
1614
1410
  }
1615
- this.updateSlotClasses();
1616
- }
1617
- componentDidLoad() {
1618
- this.updateSlotClasses();
1619
- this.updateSlotWidths();
1620
- }
1621
- titlePlacementChanged() {
1622
- this.updateSlotClasses();
1623
- }
1624
- /**
1625
- * Gets the title placement.
1626
- * Returns the title placement if it is set, otherwise returns `"center"`
1627
- * for `ionic` and `ios`, and `"start"` for `md`.
1628
- */
1629
- getTitlePlacement() {
1630
- if (this.titlePlacement !== undefined) {
1631
- return this.titlePlacement;
1632
- }
1633
- return getIonTheme(this) === 'ionic' || getIonTheme(this) === 'ios' ? 'center' : 'start';
1634
- }
1635
- /**
1636
- * Updates the CSS custom properties for slot widths
1637
- * This ensures that slots shown by their met conditions
1638
- * have a minimum width matching their required slot
1639
- */
1640
- updateSlotWidths(tries = 0) {
1641
- // Set timeout to try to execute after everything is rendered
1642
- setTimeout(() => {
1643
- // Attempt to measure and update
1644
- const success = this.measureAndUpdateSlots();
1645
- // If not all measurements were successful, try again in 100 ms
1646
- // cap recursion at 5 tries for safety
1647
- if (!success && tries < 5) {
1648
- setTimeout(() => {
1649
- this.updateSlotWidths(tries + 1);
1650
- }, 100);
1651
- }
1652
- });
1653
- }
1654
- /**
1655
- * Measure the widths of the slots and update the CSS custom properties
1656
- * for the minimum width of each pair of slots based on the largest width in each pair.
1657
- * Returns whether we successfully measured all of the slots we expect to have content.
1658
- * If not, the content probably hasn't rendered yet and we need to try again.
1659
- */
1660
- measureAndUpdateSlots() {
1661
- // Define the relationship between slots based on the conditions array
1662
- // Group slots that should have the same width
1663
- const slotPairs = [
1664
- { name: 'start-end', slots: ['start', 'end'] },
1665
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1666
- ];
1667
- // First, measure all slot widths
1668
- const slotWidths = new Map();
1669
- let allMeasurementsSuccessful = true;
1670
- // Measure all slots with content
1671
- const slots = ['start', 'end', 'primary', 'secondary'];
1672
- slots.forEach((slot) => {
1673
- var _a;
1674
- if (this.el.classList.contains(`has-${slot}-content`)) {
1675
- const slotElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slot}"]`);
1676
- if (slotElement) {
1677
- // Check if the slot contains an img or ion-img
1678
- const assignedElements = slotElement.assignedElements({ flatten: true });
1679
- const hasImg = assignedElements.some((el) => {
1680
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1681
- return true;
1682
- }
1683
- // Check for nested images
1684
- return el.querySelector('img, ion-img');
1685
- });
1686
- // Temporarily allow slot to size to content by setting flex-basis
1687
- // to 'auto'. This ensures that slotted images can render at their
1688
- // intrinsic width for measurement.
1689
- if (hasImg) {
1690
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1691
- this.el.style.setProperty(`--${name}-size`, 'auto');
1692
- }
1693
- const width = slotElement.offsetWidth;
1694
- if (width > 0) {
1695
- slotWidths.set(slot, width);
1696
- }
1697
- else {
1698
- allMeasurementsSuccessful = false;
1699
- }
1700
- }
1701
- }
1702
- });
1703
- // Then set the CSS custom properties based on the largest width in each pair
1704
- slotPairs.forEach(({ name, slots }) => {
1705
- // Find the maximum width among the slots in this pair
1706
- let maxWidth = 0;
1707
- let hasAnyContent = false;
1708
- slots.forEach((slot) => {
1709
- var _a;
1710
- if (slotWidths.has(slot)) {
1711
- hasAnyContent = true;
1712
- maxWidth = Math.max(maxWidth, (_a = slotWidths.get(slot)) !== null && _a !== void 0 ? _a : 0);
1713
- }
1714
- });
1715
- // If at least one slot in the pair has content, set the min-width for the pair
1716
- if (hasAnyContent && maxWidth > 0) {
1717
- // Set a single CSS variable for the pair
1718
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1719
- }
1720
- });
1721
- return allMeasurementsSuccessful;
1722
- }
1723
- /**
1724
- * Removes all slot visibility classes and slot width CSS variables.
1725
- */
1726
- removeSlotClasses() {
1727
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1728
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1729
- }
1730
- updateSlotClasses() {
1731
- const titlePlacement = this.getTitlePlacement();
1732
- if (titlePlacement !== 'center') {
1733
- this.removeSlotClasses();
1734
- return;
1735
- }
1736
- // Check if slots have content
1737
- const slots = ['start', 'end', 'primary', 'secondary'];
1738
- const classesToAdd = [];
1739
- const classesToRemove = [];
1740
- slots.forEach((slot) => {
1741
- const slotHasContent = this.hasSlotContent(slot);
1742
- const slotClass = `has-${slot}-content`;
1743
- if (slotHasContent) {
1744
- classesToAdd.push(slotClass);
1745
- }
1746
- else {
1747
- classesToRemove.push(slotClass);
1748
- }
1749
- });
1750
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1751
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1752
- // and does not have any of the excluded slots, otherwise it will be removed.
1753
- // This is useful to enforce centering of the toolbar content when there are different amounts
1754
- // of slots on either side of the toolbar.
1755
- const conditions = [
1756
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1757
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1758
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1759
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1760
- ];
1761
- conditions.forEach((condition) => {
1762
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1763
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1764
- const className = `show-${condition.name}`;
1765
- if (hasRequiredSlots && !hasExcludedSlots) {
1766
- classesToAdd.push(className);
1767
- }
1768
- else {
1769
- classesToRemove.push(className);
1770
- }
1771
- });
1772
- // Add classes to the toolbar element
1773
- this.el.classList.add(...classesToAdd);
1774
- this.el.classList.remove(...classesToRemove);
1775
- // Update slot widths after classes have been updated
1776
- this.updateSlotWidths();
1777
- }
1778
- hasSlotContent(slotName) {
1779
- var _a;
1780
- const slotNode = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slotName}"]`);
1781
- return !!slotNode && slotNode.assignedNodes().length > 0;
1782
1411
  }
1783
1412
  childrenStyle(ev) {
1784
1413
  ev.stopPropagation();
@@ -1803,27 +1432,19 @@ const Toolbar = class {
1803
1432
  }
1804
1433
  }
1805
1434
  render() {
1806
- const theme = getIonTheme(this);
1435
+ const mode = getIonMode(this);
1807
1436
  const childStyles = {};
1808
- this.childrenStyles.forEach((style) => {
1809
- Object.assign(childStyles, style);
1437
+ this.childrenStyles.forEach((value) => {
1438
+ Object.assign(childStyles, value);
1810
1439
  });
1811
- const titlePlacement = this.getTitlePlacement();
1812
- return (h(Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, createColorClasses(this.color, {
1813
- [theme]: true,
1440
+ return (h(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
1441
+ [mode]: true,
1814
1442
  'in-toolbar': hostContext('ion-toolbar', this.el),
1815
- [`toolbar-title-placement-${titlePlacement}`]: true,
1816
- })), childStyles) }, h("div", { key: '3255531be492b9afa7b47476a805f923beea09db', class: "toolbar-background", part: "background" }), h("div", { key: '8758189374c0a12f293c30ca7f8f049b732d2cab', class: "toolbar-container", part: "container" }, h("slot", { key: '74c3705f717968893bf94ea95c99cae313ce68f3', name: "start", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: '298c78f93291442f140f8c52983871215f20ea87', name: "secondary", onSlotchange: () => this.updateSlotClasses }), h("div", { key: 'f7376320b704b8ce375fe2223ae30d51bfc05acb', class: "toolbar-content", part: "content" }, h("slot", { key: 'ddaec08b1fbd13384d834ba4c3b4441c4d749faf' })), h("slot", { key: '6d5bce85159859bb548e4d3fb6b22208dcb48987', name: "primary", onSlotchange: () => this.updateSlotClasses }), h("slot", { key: 'd1d21752ed3bcc7bf15c20de1c0a6fd956373450', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1443
+ })) }, h("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), h("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, h("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), h("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), h("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, h("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), h("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), h("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
1817
1444
  }
1818
1445
  get el() { return getElement(this); }
1819
- static get watchers() { return {
1820
- "titlePlacement": [{
1821
- "titlePlacementChanged": 0
1822
- }]
1823
- }; }
1824
1446
  };
1825
1447
  Toolbar.style = {
1826
- ionic: toolbarIonicCss(),
1827
1448
  ios: toolbarIosCss(),
1828
1449
  md: toolbarMdCss()
1829
1450
  };