@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
@@ -3,20 +3,21 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-CzcLEdQ5.js');
7
- var focusVisible = require('./focus-visible-BIj-I3-C.js');
8
- var ionicGlobal = require('./ionic-global-BW5tRzrz.js');
9
- var helpers = require('./helpers-DJYxKN5U.js');
6
+ var index = require('./index-Ct7gcRif.js');
7
+ var hardwareBackButton = require('./hardware-back-button-iUuF_76h.js');
8
+ var ionicGlobal = require('./ionic-global-B-cA6LkY.js');
9
+ var helpers = require('./helpers-Cv23MFHM.js');
10
10
  var dir = require('./dir-Cn0z1rJH.js');
11
- var theme = require('./theme-IlOsGAz7.js');
12
- var index$1 = require('./index-BJrpF9T3.js');
13
- var keyboardController = require('./keyboard-controller-CCTvHp9l.js');
11
+ var theme = require('./theme-CeDs6Hcv.js');
12
+ var index$1 = require('./index-CIrkNXqJ.js');
13
+ var keyboardController = require('./keyboard-controller-GXBiBRKS.js');
14
14
  var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
15
- var frameworkDelegate = require('./framework-delegate-Dx9FrqAC.js');
15
+ var frameworkDelegate = require('./framework-delegate-BtICZDHr.js');
16
16
  var lockController = require('./lock-controller-aDB9wrEf.js');
17
- var index$2 = require('./index-DSNlrgfO.js');
18
- require('./keyboard-VLGMzWBE.js');
19
- require('./capacitor-CXqhdZym.js');
17
+ var index$2 = require('./index-BERfRao3.js');
18
+ require('./index-DkNv4J_i.js');
19
+ require('./keyboard-UuAS4D_9.js');
20
+ require('./capacitor-DmA66EwP.js');
20
21
 
21
22
  const appCss = () => `html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}`;
22
23
 
@@ -24,6 +25,51 @@ const App = class {
24
25
  constructor(hostRef) {
25
26
  index.registerInstance(this, hostRef);
26
27
  }
28
+ componentDidLoad() {
29
+ {
30
+ this.rIC(async () => {
31
+ const isHybrid = ionicGlobal.isPlatform(window, 'hybrid');
32
+ if (!index.config.getBoolean('_testing')) {
33
+ Promise.resolve().then(function () { return require('./index-D81eLYUM.js'); }).then((module) => module.startTapClick(index.config));
34
+ }
35
+ if (index.config.getBoolean('statusTap', isHybrid)) {
36
+ Promise.resolve().then(function () { return require('./status-tap-BXX8H8_Y.js'); }).then((module) => module.startStatusTap());
37
+ }
38
+ if (index.config.getBoolean('inputShims', needInputShims())) {
39
+ /**
40
+ * needInputShims() ensures that only iOS and Android
41
+ * platforms proceed into this block.
42
+ */
43
+ const platform = ionicGlobal.isPlatform(window, 'ios') ? 'ios' : 'android';
44
+ Promise.resolve().then(function () { return require('./input-shims-CFLg7uzj.js'); }).then((module) => module.startInputShims(index.config, platform));
45
+ }
46
+ const hardwareBackButtonModule = await Promise.resolve().then(function () { return require('./hardware-back-button-iUuF_76h.js'); });
47
+ const supportsHardwareBackButtonEvents = isHybrid || hardwareBackButton.shouldUseCloseWatcher();
48
+ if (index.config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
49
+ hardwareBackButtonModule.startHardwareBackButton();
50
+ }
51
+ else {
52
+ /**
53
+ * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
54
+ * then the close watcher will not be used.
55
+ */
56
+ if (hardwareBackButton.shouldUseCloseWatcher()) {
57
+ index.printIonWarning('[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
58
+ }
59
+ hardwareBackButtonModule.blockHardwareBackButton();
60
+ }
61
+ if (typeof window !== 'undefined') {
62
+ Promise.resolve().then(function () { return require('./keyboard-hHzlEQpk.js'); }).then((module) => module.startKeyboardAssist(window));
63
+ }
64
+ Promise.resolve().then(function () { return require('./focus-visible-CCvKiLh3.js'); }).then((module) => (this.focusVisible = module.startFocusVisible()));
65
+ });
66
+ }
67
+ }
68
+ disconnectedCallback() {
69
+ if (this.loadTimeout) {
70
+ clearTimeout(this.loadTimeout);
71
+ }
72
+ }
27
73
  /**
28
74
  * Used to set focus on an element that uses `ion-focusable`.
29
75
  * Do not use this if focusing the element as a result of a keyboard
@@ -36,29 +82,52 @@ const App = class {
36
82
  * @param elements An array of HTML elements to set focus on.
37
83
  */
38
84
  async setFocus(elements) {
39
- /**
40
- * The focus-visible utility is used to set focus on an
41
- * element that uses `ion-focusable`.
42
- */
43
- focusVisible.focusElements(elements);
85
+ if (this.focusVisible) {
86
+ this.focusVisible.setFocus(elements);
87
+ }
88
+ }
89
+ rIC(callback) {
90
+ if ('requestIdleCallback' in window) {
91
+ window.requestIdleCallback(callback);
92
+ }
93
+ else {
94
+ this.loadTimeout = setTimeout(callback, 32);
95
+ }
44
96
  }
45
97
  render() {
46
- const theme = ionicGlobal.getIonTheme(this);
47
- return (index.h(index.Host, { key: '3b7e84c7c4187287123413f90838cda89136b2a4', class: {
48
- [theme]: true,
98
+ const mode = ionicGlobal.getIonMode(this);
99
+ return (index.h(index.Host, { key: '77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb', class: {
100
+ [mode]: true,
49
101
  'ion-page': true,
50
102
  'force-statusbar-padding': index.config.getBoolean('_forceStatusbarPadding'),
51
103
  } }));
52
104
  }
53
105
  get el() { return index.getElement(this); }
54
106
  };
107
+ const needInputShims = () => {
108
+ /**
109
+ * iOS always needs input shims
110
+ */
111
+ const needsShimsIOS = ionicGlobal.isPlatform(window, 'ios') && ionicGlobal.isPlatform(window, 'mobile');
112
+ if (needsShimsIOS) {
113
+ return true;
114
+ }
115
+ /**
116
+ * Android only needs input shims when running
117
+ * in the browser and only if the browser is using the
118
+ * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/
119
+ */
120
+ const isAndroidMobileWeb = ionicGlobal.isPlatform(window, 'android') && ionicGlobal.isPlatform(window, 'mobileweb');
121
+ if (isAndroidMobileWeb) {
122
+ return true;
123
+ }
124
+ return false;
125
+ };
55
126
  App.style = appCss();
56
127
 
57
- const buttonsIonicCss = () => `.sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-600, 1.5rem)}`;
58
-
59
- const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-h{z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:0.12;--background-activated:#000;--background-activated-opacity:0.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
128
+ const buttonsIosCss = () => `.sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}`;
60
129
 
61
- const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-h{z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
130
+ const buttonsMdCss = () => `.sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}`;
62
131
 
63
132
  const Buttons = class {
64
133
  constructor(hostRef) {
@@ -70,7 +139,7 @@ const Buttons = class {
70
139
  * first toolbar, the buttons will be hidden and will
71
140
  * only be shown once all toolbars have fully collapsed.
72
141
  *
73
- * Only applies in the `ios` theme with `collapse` set to
142
+ * Only applies in `ios` mode with `collapse` set to
74
143
  * `true` on `ion-header`.
75
144
  *
76
145
  * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)
@@ -78,20 +147,19 @@ const Buttons = class {
78
147
  this.collapse = false;
79
148
  }
80
149
  render() {
81
- const theme = ionicGlobal.getIonTheme(this);
82
- return (index.h(index.Host, { key: '95c107ba7871c801a5ef14c636dc8e2fe69debf3', class: {
83
- [theme]: true,
150
+ const mode = ionicGlobal.getIonMode(this);
151
+ return (index.h(index.Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
152
+ [mode]: true,
84
153
  ['buttons-collapse']: this.collapse,
85
- } }, index.h("slot", { key: '58669abfce458e1344b84286d4200e305017b958' })));
154
+ } }, index.h("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
86
155
  }
87
156
  };
88
157
  Buttons.style = {
89
- ionic: buttonsIonicCss(),
90
158
  ios: buttonsIosCss(),
91
159
  md: buttonsMdCss()
92
160
  };
93
161
 
94
- const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}:host(.content-header-hide-scroll-partner:not(.content-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)}`;
162
+ const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--internal-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}`;
95
163
 
96
164
  const Content = class {
97
165
  constructor(hostRef) {
@@ -254,8 +322,9 @@ const Content = class {
254
322
  this.resize();
255
323
  }, 100);
256
324
  }
257
- shouldForceOverscroll(mode) {
325
+ shouldForceOverscroll() {
258
326
  const { forceOverscroll } = this;
327
+ const mode = ionicGlobal.getIonMode(this);
259
328
  return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
260
329
  }
261
330
  resize() {
@@ -451,13 +520,12 @@ const Content = class {
451
520
  render() {
452
521
  const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
453
522
  const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
454
- const theme$1 = ionicGlobal.getIonTheme(this);
455
- const mode = ionicGlobal.getIonMode(this, theme$1);
456
- const forceOverscroll = this.shouldForceOverscroll(mode);
457
- const transitionShadow = theme$1 === 'ios';
523
+ const mode = ionicGlobal.getIonMode(this);
524
+ const forceOverscroll = this.shouldForceOverscroll();
525
+ const transitionShadow = mode === 'ios';
458
526
  this.resize();
459
- return (index.h(index.Host, Object.assign({ key: 'd7f325c30b698dc42ec5e8c45b29e82749743cf4', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
460
- [theme$1]: true,
527
+ return (index.h(index.Host, Object.assign({ key: '8c1bc4a4df8698d3884741eb38512dc059210c50', role: isMainContent ? 'main' : undefined, class: theme.createColorClasses(this.color, {
528
+ [mode]: true,
461
529
  'content-fullscreen': this.fullscreen,
462
530
  'content-sizing': theme.hostContext('ion-popover', this.el),
463
531
  overscroll: forceOverscroll,
@@ -465,12 +533,12 @@ const Content = class {
465
533
  }), style: {
466
534
  '--offset-top': `${this.cTop}px`,
467
535
  '--offset-bottom': `${this.cBottom}px`,
468
- } }, inheritedAttributes), index.h("div", { key: 'c93b2c622a69c7fd153bbe9b0c6f8c24d85ed969', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '1700cc94e464ad1ab1c6672270f9649e90be3a5e', class: {
536
+ } }, inheritedAttributes), index.h("div", { key: '5e7412549b51ef7543d9378ecab9aac6bc461588', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? index.h("slot", { name: "fixed" }) : null, index.h("div", { key: '33f6fbf7e1e027c7cbd2dda95b487f18dc648cef', class: {
469
537
  'inner-scroll': true,
470
538
  'scroll-x': scrollX,
471
539
  'scroll-y': scrollY,
472
540
  overscroll: (scrollX || scrollY) && forceOverscroll,
473
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: 'bff713ead4f61730e3f36b5af4b771ae62bde6cd' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
541
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: '00c8fe7b9e73533c702273c9457d274195d54e98' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? index.h("slot", { name: "fixed" }) : null));
474
542
  }
475
543
  get el() { return index.getElement(this); }
476
544
  };
@@ -496,8 +564,7 @@ const getPageElement = (el) => {
496
564
  * between the popover and the edges of the screen. But if the popover contains
497
565
  * its own page element, we should use that instead.
498
566
  */
499
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
500
- const page = el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner, .popover-content`);
567
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
501
568
  if (page) {
502
569
  return page;
503
570
  }
@@ -532,171 +599,6 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
532
599
  };
533
600
  Content.style = contentCss();
534
601
 
535
- /** Cumulative downward delta before hiding (header or footer `collapse="hide"`). */
536
- const COLLAPSE_HIDE_THRESHOLD_PX = 24;
537
- /**
538
- * Cumulative upward delta before showing again after hide. Small bias
539
- * (instead of "any upward delta") guards against inertial-scroll
540
- * oscillation flicking the region back open during a downward gesture.
541
- */
542
- const COLLAPSE_SHOW_THRESHOLD_PX = 5;
543
- const WHEEL_SCROLL_SUPPRESS_MS = 80;
544
- const getContentHostFromScrollEl = (scrollEl) => {
545
- const root = scrollEl.getRootNode();
546
- if (root instanceof ShadowRoot && root.host instanceof HTMLElement) {
547
- return root.host;
548
- }
549
- // Light-DOM fallback: the scroll element may live inside a non-shadow
550
- // ion-content (e.g. custom scroll host). Walk up to the nearest ion-content.
551
- return scrollEl.closest('ion-content');
552
- };
553
- const applySlideDistance = (regionEl, contentHost, slideCssVar, heightPx) => {
554
- const value = `${Math.max(0, Math.ceil(heightPx))}px`;
555
- regionEl.style.setProperty(slideCssVar, value);
556
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.setProperty(slideCssVar, value);
557
- };
558
- const clearSlideDistance = (regionEl, contentHost, slideCssVar) => {
559
- regionEl.style.removeProperty(slideCssVar);
560
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.style.removeProperty(slideCssVar);
561
- };
562
- /**
563
- * Scroll/wheel-driven hide/show for `collapse="hide"` on `ion-header` or `ion-footer`.
564
- * Hide after {@link COLLAPSE_HIDE_THRESHOLD_PX}px cumulative downward delta; show after
565
- * {@link COLLAPSE_SHOW_THRESHOLD_PX}px cumulative upward delta. Each direction drains
566
- * (not resets) the opposing accumulator so inertial-scroll jitter doesn't stall either
567
- * transition. Motion is defined in component SCSS and `content.scss`; this toggles
568
- * classes and syncs the slide distance CSS var.
569
- */
570
- const createCollapseHideInteraction = ({ regionEl, scrollEl, slideCssVar, contentPartnerClass, contentHiddenClass, regionHiddenClass, }) => {
571
- const contentHost = getContentHostFromScrollEl(scrollEl);
572
- if (contentHost !== null) {
573
- contentHost.classList.add(contentPartnerClass);
574
- }
575
- let resizeObserver;
576
- let destroyed = false;
577
- const syncSlideDistance = () => {
578
- index.readTask(() => {
579
- if (destroyed) {
580
- return;
581
- }
582
- const heightPx = regionEl.offsetHeight;
583
- index.writeTask(() => {
584
- if (destroyed) {
585
- return;
586
- }
587
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
588
- });
589
- });
590
- };
591
- if (typeof ResizeObserver !== 'undefined') {
592
- resizeObserver = new ResizeObserver(() => {
593
- syncSlideDistance();
594
- });
595
- resizeObserver.observe(regionEl);
596
- }
597
- syncSlideDistance();
598
- requestAnimationFrame(() => {
599
- if (!destroyed) {
600
- syncSlideDistance();
601
- }
602
- });
603
- let hidden = false;
604
- let accDown = 0;
605
- let accUp = 0;
606
- let lastScrollTop = scrollEl.scrollTop;
607
- let lastWheelTime = 0;
608
- const setHidden = (next) => {
609
- if (hidden === next || destroyed) {
610
- return;
611
- }
612
- hidden = next;
613
- // When transitioning to hidden, re-measure synchronously in case the
614
- // initial layout reported offsetHeight === 0 (e.g. mid page transition).
615
- // Without this the slide animates by 0px and only opacity fades.
616
- if (hidden) {
617
- const heightPx = regionEl.offsetHeight;
618
- if (heightPx > 0) {
619
- applySlideDistance(regionEl, contentHost, slideCssVar, heightPx);
620
- }
621
- }
622
- index.writeTask(() => {
623
- if (destroyed) {
624
- return;
625
- }
626
- regionEl.classList.toggle(regionHiddenClass, hidden);
627
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.toggle(contentHiddenClass, hidden);
628
- if (hidden) {
629
- // `inert` removes the subtree from the tab order and AT, AND moves
630
- // focus out automatically in supporting browsers. `aria-hidden` is
631
- // kept as a fallback for older engines without `inert` support.
632
- regionEl.setAttribute('inert', '');
633
- regionEl.setAttribute('aria-hidden', 'true');
634
- }
635
- else {
636
- regionEl.removeAttribute('inert');
637
- regionEl.removeAttribute('aria-hidden');
638
- }
639
- });
640
- };
641
- // Accumulate cumulative movement in each direction. The OPPOSITE accumulator
642
- // is drained (not reset) by each event, so brief inertial jitter does not
643
- // wipe a sustained gesture's accumulation. Crossing a threshold resets both.
644
- const processDelta = (delta) => {
645
- if (delta > 0) {
646
- accUp = Math.max(0, accUp - delta);
647
- accDown += delta;
648
- if (accDown >= COLLAPSE_HIDE_THRESHOLD_PX) {
649
- setHidden(true);
650
- accDown = 0;
651
- accUp = 0;
652
- }
653
- }
654
- else if (delta < 0) {
655
- const mag = -delta;
656
- accDown = Math.max(0, accDown - mag);
657
- accUp += mag;
658
- if (accUp >= COLLAPSE_SHOW_THRESHOLD_PX) {
659
- setHidden(false);
660
- accUp = 0;
661
- accDown = 0;
662
- }
663
- }
664
- };
665
- const onWheel = (ev) => {
666
- if (destroyed) {
667
- return;
668
- }
669
- lastWheelTime = performance.now();
670
- processDelta(ev.deltaY);
671
- };
672
- const onScroll = () => {
673
- if (destroyed) {
674
- return;
675
- }
676
- const st = scrollEl.scrollTop;
677
- if (performance.now() - lastWheelTime < WHEEL_SCROLL_SUPPRESS_MS) {
678
- lastScrollTop = st;
679
- return;
680
- }
681
- const delta = st - lastScrollTop;
682
- lastScrollTop = st;
683
- processDelta(delta);
684
- };
685
- scrollEl.addEventListener('wheel', onWheel, { passive: true });
686
- scrollEl.addEventListener('scroll', onScroll, { passive: true });
687
- return () => {
688
- destroyed = true;
689
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
690
- scrollEl.removeEventListener('wheel', onWheel);
691
- scrollEl.removeEventListener('scroll', onScroll);
692
- regionEl.classList.remove(regionHiddenClass);
693
- regionEl.removeAttribute('inert');
694
- regionEl.removeAttribute('aria-hidden');
695
- contentHost === null || contentHost === void 0 ? void 0 : contentHost.classList.remove(contentPartnerClass, contentHiddenClass);
696
- clearSlideDistance(regionEl, contentHost, slideCssVar);
697
- };
698
- };
699
-
700
602
  const handleFooterFade = (scrollEl, baseEl) => {
701
603
  index.readTask(() => {
702
604
  const scrollTop = scrollEl.scrollTop;
@@ -725,32 +627,20 @@ const handleFooterFade = (scrollEl, baseEl) => {
725
627
  });
726
628
  });
727
629
  };
728
- const createFooterHideInteraction = (footerEl, scrollEl) => createCollapseHideInteraction({
729
- regionEl: footerEl,
730
- scrollEl,
731
- slideCssVar: '--footer-hide-slide-y',
732
- contentPartnerClass: 'content-footer-hide-scroll-partner',
733
- contentHiddenClass: 'content-footer-hide-scroll-hidden',
734
- regionHiddenClass: 'footer-collapse-hide-hidden',
735
- });
736
-
737
- 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}`;
738
630
 
739
- 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}`;
631
+ const footerIosCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}`;
740
632
 
741
- 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}`;
633
+ const footerMdCss = () => `ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
742
634
 
743
635
  const Footer = class {
744
636
  constructor(hostRef) {
745
637
  index.registerInstance(this, hostRef);
746
- this.didLoad = false;
747
- this.setupToken = 0;
748
638
  this.keyboardCtrl = null;
749
639
  this.keyboardCtrlPromise = null;
750
640
  this.keyboardVisible = false;
751
641
  /**
752
642
  * If `true`, the footer will be translucent.
753
- * Only applies when the theme is `"ios"` and the device supports
643
+ * Only applies when the mode is `"ios"` and the device supports
754
644
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
755
645
  *
756
646
  * Note: In order to scroll content behind the footer, the `fullscreen`
@@ -758,46 +648,25 @@ const Footer = class {
758
648
  */
759
649
  this.translucent = false;
760
650
  this.checkCollapsibleFooter = () => {
761
- const theme = ionicGlobal.getIonTheme(this);
762
- const { collapse } = this;
763
- const hasFade = collapse === 'fade';
764
- const hasHide = collapse === 'hide';
765
- const runIosFade = theme === 'ios' && hasFade;
766
- if (!runIosFade && !hasHide) {
767
- this.destroyCollapsibleFooter();
768
- return;
769
- }
770
- // Skip teardown/rebuild when the collapse mode and theme have not changed
771
- // since the last setup — avoids thrashing listeners and resetting scroll
772
- // accumulators on unrelated re-renders (e.g. keyboardVisible state flips).
773
- const activeMode = hasHide ? 'hide' : 'fade';
774
- if (this.appliedCollapse === activeMode && this.appliedTheme === theme) {
651
+ const mode = ionicGlobal.getIonMode(this);
652
+ if (mode !== 'ios') {
775
653
  return;
776
654
  }
655
+ const { collapse } = this;
656
+ const hasFade = collapse === 'fade';
777
657
  this.destroyCollapsibleFooter();
778
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
779
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
780
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
781
- if (!contentEl) {
782
- index$1.printIonContentErrorMsg(this.el);
783
- return;
784
- }
785
- this.appliedCollapse = activeMode;
786
- this.appliedTheme = theme;
787
- if (runIosFade) {
658
+ if (hasFade) {
659
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
660
+ const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
661
+ if (!contentEl) {
662
+ index$1.printIonContentErrorMsg(this.el);
663
+ return;
664
+ }
788
665
  this.setupFadeFooter(contentEl);
789
666
  }
790
- else if (hasHide) {
791
- void this.setupHideFooter(contentEl);
792
- }
793
667
  };
794
668
  this.setupFadeFooter = async (contentEl) => {
795
- const token = ++this.setupToken;
796
- const scrollEl = await index$1.getScrollElement(contentEl);
797
- if (token !== this.setupToken) {
798
- return;
799
- }
800
- this.scrollEl = scrollEl;
669
+ const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
801
670
  /**
802
671
  * Handle fading of toolbars on scroll
803
672
  */
@@ -809,18 +678,12 @@ const Footer = class {
809
678
  };
810
679
  }
811
680
  componentDidLoad() {
812
- this.didLoad = true;
813
681
  this.checkCollapsibleFooter();
814
682
  }
815
683
  componentDidUpdate() {
816
684
  this.checkCollapsibleFooter();
817
685
  }
818
686
  async connectedCallback() {
819
- // On re-attach (didLoad already true but disconnectedCallback ran since),
820
- // componentDidLoad will not fire again — re-run setup here.
821
- if (this.didLoad) {
822
- this.checkCollapsibleFooter();
823
- }
824
687
  const promise = keyboardController.createKeyboardController(async (keyboardOpen, waitForResize) => {
825
688
  /**
826
689
  * If the keyboard is hiding, then we need to wait
@@ -848,7 +711,6 @@ const Footer = class {
848
711
  }
849
712
  }
850
713
  disconnectedCallback() {
851
- this.destroyCollapsibleFooter();
852
714
  if (this.keyboardCtrlPromise) {
853
715
  this.keyboardCtrlPromise.then((ctrl) => ctrl.destroy());
854
716
  this.keyboardCtrlPromise = null;
@@ -858,49 +720,30 @@ const Footer = class {
858
720
  this.keyboardCtrl = null;
859
721
  }
860
722
  }
861
- async setupHideFooter(contentEl) {
862
- const token = ++this.setupToken;
863
- const scrollEl = await index$1.getScrollElement(contentEl);
864
- // A newer checkCollapsibleFooter ran while we were awaiting — abandon.
865
- if (token !== this.setupToken) {
866
- return;
867
- }
868
- this.scrollEl = scrollEl;
869
- this.footerHideCleanup = createFooterHideInteraction(this.el, scrollEl);
870
- }
871
723
  destroyCollapsibleFooter() {
872
- // Invalidate any in-flight setupHideFooter/setupFadeFooter awaits.
873
- this.setupToken++;
874
- if (this.footerHideCleanup) {
875
- this.footerHideCleanup();
876
- this.footerHideCleanup = undefined;
877
- }
878
724
  if (this.scrollEl && this.contentScrollCallback) {
879
725
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
880
726
  this.contentScrollCallback = undefined;
881
727
  }
882
- this.appliedCollapse = undefined;
883
- this.appliedTheme = undefined;
884
728
  }
885
729
  render() {
886
730
  const { translucent, collapse } = this;
887
- const theme = ionicGlobal.getIonTheme(this);
731
+ const mode = ionicGlobal.getIonMode(this);
888
732
  const tabs = this.el.closest('ion-tabs');
889
733
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
890
- return (index.h(index.Host, { key: '5df79a31f36febfad49c5858727e93c7ba5734f8', role: "contentinfo", class: {
891
- [theme]: true,
734
+ return (index.h(index.Host, { key: '71939c4bbaef5062532a99ee2e33574102a9abad', role: "contentinfo", class: {
735
+ [mode]: true,
892
736
  // Used internally for styling
893
- [`footer-${theme}`]: true,
737
+ [`footer-${mode}`]: true,
894
738
  [`footer-translucent`]: translucent,
895
- [`footer-translucent-${theme}`]: translucent,
739
+ [`footer-translucent-${mode}`]: translucent,
896
740
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
897
741
  [`footer-collapse-${collapse}`]: collapse !== undefined,
898
- } }, theme === 'ios' && translucent && index.h("div", { key: '9175ae4f6576d82dff2a00a36e91f4b633d8c9ad', class: "footer-background" }), index.h("slot", { key: 'd6d618cdae4726822d8e82edb782c5c86fc7b77b' })));
742
+ } }, mode === 'ios' && translucent && index.h("div", { key: '2fa14f61661c47c661cecd696176728d6eafa74f', class: "footer-background" }), index.h("slot", { key: '8e63696e7c528d5c38201e546bf08135290d0945' })));
899
743
  }
900
744
  get el() { return index.getElement(this); }
901
745
  };
902
746
  Footer.style = {
903
- ionic: ionicFooterMdCss(),
904
747
  ios: footerIosCss(),
905
748
  md: footerMdCss()
906
749
  };
@@ -1081,14 +924,6 @@ const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
1081
924
  titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
1082
925
  });
1083
926
  };
1084
- const createHeaderHideInteraction = (headerEl, scrollEl) => createCollapseHideInteraction({
1085
- regionEl: headerEl,
1086
- scrollEl,
1087
- slideCssVar: '--header-hide-slide-y',
1088
- contentPartnerClass: 'content-header-hide-scroll-partner',
1089
- contentHiddenClass: 'content-header-hide-scroll-hidden',
1090
- regionHiddenClass: 'header-collapse-hide-hidden',
1091
- });
1092
927
  const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1093
928
  index.readTask(() => {
1094
929
  const scrollTop = scrollEl.scrollTop;
@@ -1125,45 +960,37 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
1125
960
  *
1126
961
  * @param isInsideMenu If ion-header is inside ion-menu.
1127
962
  * @param isCondensed If ion-header has collapse="condense".
1128
- * @param theme The current theme.
963
+ * @param mode The current mode.
1129
964
  * @returns 'none' if inside ion-menu or if condensed in md
1130
- * theme, otherwise 'banner'.
965
+ * mode, otherwise 'banner'.
1131
966
  */
1132
- const getRoleType = (isInsideMenu, isCondensed, theme) => {
967
+ const getRoleType = (isInsideMenu, isCondensed, mode) => {
1133
968
  // If the header is inside a menu, it should not have the banner role.
1134
969
  if (isInsideMenu) {
1135
970
  return ROLE_NONE;
1136
971
  }
1137
972
  /**
1138
- * Only apply role="none" to `md` & `ionic` theme condensed headers
973
+ * Only apply role="none" to `md` mode condensed headers
1139
974
  * since the large header is never shown.
1140
975
  */
1141
- if (isCondensed && theme !== 'ios') {
976
+ if (isCondensed && mode === 'md') {
1142
977
  return ROLE_NONE;
1143
978
  }
1144
979
  // Default to banner role.
1145
980
  return ROLE_BANNER;
1146
981
  };
1147
982
 
1148
- 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}}`;
1149
-
1150
- 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}`;
983
+ const headerIosCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}`;
1151
984
 
1152
- 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}`;
985
+ const headerMdCss = () => `ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}`;
1153
986
 
1154
987
  const Header = class {
1155
988
  constructor(hostRef) {
1156
989
  index.registerInstance(this, hostRef);
1157
990
  this.inheritedAttributes = {};
1158
- this.didLoad = false;
1159
- /**
1160
- * If `true`, the header will have a line at the bottom.
1161
- * TODO(ROU-10855): add support for this prop on ios/md themes
1162
- */
1163
- this.divider = false;
1164
991
  /**
1165
992
  * If `true`, the header will be translucent.
1166
- * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
993
+ * Only applies when the mode is `"ios"` and the device supports
1167
994
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
1168
995
  *
1169
996
  * Note: In order to scroll content behind the header, the `fullscreen`
@@ -1186,38 +1013,25 @@ const Header = class {
1186
1013
  this.inheritedAttributes = helpers.inheritAriaAttributes(this.el);
1187
1014
  }
1188
1015
  componentDidLoad() {
1189
- this.didLoad = true;
1190
1016
  this.checkCollapsibleHeader();
1191
1017
  }
1192
1018
  componentDidUpdate() {
1193
1019
  this.checkCollapsibleHeader();
1194
1020
  }
1195
- connectedCallback() {
1196
- // On re-attach (didLoad already true but disconnectedCallback ran since),
1197
- // componentDidLoad will not fire again — re-run setup here.
1198
- if (this.didLoad) {
1199
- this.checkCollapsibleHeader();
1200
- }
1201
- }
1202
1021
  disconnectedCallback() {
1203
1022
  this.destroyCollapsibleHeader();
1204
1023
  }
1205
1024
  async checkCollapsibleHeader() {
1206
- const theme = ionicGlobal.getIonTheme(this);
1025
+ const mode = ionicGlobal.getIonMode(this);
1026
+ if (mode !== 'ios') {
1027
+ return;
1028
+ }
1207
1029
  const { collapse } = this;
1208
1030
  const hasCondense = collapse === 'condense';
1209
1031
  const hasFade = collapse === 'fade';
1210
- const hasHide = collapse === 'hide';
1211
- const runIosCollapse = theme === 'ios' && (hasCondense || hasFade);
1212
- const runHide = hasHide;
1213
- if (!runIosCollapse && !runHide) {
1214
- this.destroyCollapsibleHeader();
1215
- return;
1216
- }
1217
1032
  this.destroyCollapsibleHeader();
1218
- const appRootSelector = index.config.get('appRootSelector', 'ion-app');
1219
- if (runIosCollapse && hasCondense) {
1220
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1033
+ if (hasCondense) {
1034
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1221
1035
  const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1222
1036
  // Cloned elements are always needed in iOS transition
1223
1037
  index.writeTask(() => {
@@ -1227,8 +1041,8 @@ const Header = class {
1227
1041
  });
1228
1042
  await this.setupCondenseHeader(contentEl, pageEl);
1229
1043
  }
1230
- else if (runIosCollapse && hasFade) {
1231
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1044
+ else if (hasFade) {
1045
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
1232
1046
  const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1233
1047
  if (!contentEl) {
1234
1048
  index$1.printIonContentErrorMsg(this.el);
@@ -1237,29 +1051,12 @@ const Header = class {
1237
1051
  const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
1238
1052
  await this.setupFadeHeader(contentEl, condenseHeader);
1239
1053
  }
1240
- if (runHide) {
1241
- const pageEl = this.el.closest(`${appRootSelector},ion-page,.ion-page,page-inner`);
1242
- const contentEl = pageEl ? index$1.findIonContent(pageEl) : null;
1243
- if (!contentEl) {
1244
- index$1.printIonContentErrorMsg(this.el);
1245
- return;
1246
- }
1247
- await this.setupHideHeader(contentEl);
1248
- }
1249
- }
1250
- async setupHideHeader(contentEl) {
1251
- const scrollEl = (this.scrollEl = await index$1.getScrollElement(contentEl));
1252
- this.headerHideCleanup = createHeaderHideInteraction(this.el, scrollEl);
1253
1054
  }
1254
1055
  destroyCollapsibleHeader() {
1255
1056
  if (this.intersectionObserver) {
1256
1057
  this.intersectionObserver.disconnect();
1257
1058
  this.intersectionObserver = undefined;
1258
1059
  }
1259
- if (this.headerHideCleanup) {
1260
- this.headerHideCleanup();
1261
- this.headerHideCleanup = undefined;
1262
- }
1263
1060
  if (this.scrollEl && this.contentScrollCallback) {
1264
1061
  this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);
1265
1062
  this.contentScrollCallback = undefined;
@@ -1320,31 +1117,29 @@ const Header = class {
1320
1117
  });
1321
1118
  }
1322
1119
  render() {
1323
- const { translucent, inheritedAttributes, divider } = this;
1324
- const theme$1 = ionicGlobal.getIonTheme(this);
1120
+ const { translucent, inheritedAttributes } = this;
1121
+ const mode = ionicGlobal.getIonMode(this);
1325
1122
  const collapse = this.collapse || 'none';
1326
1123
  const isCondensed = collapse === 'condense';
1327
1124
  // banner role must be at top level, so remove role if inside a menu
1328
- const roleType = getRoleType(theme.hostContext('ion-menu', this.el), isCondensed, theme$1);
1329
- return (index.h(index.Host, Object.assign({ key: '5cae1ff0bbc5f2035325c128a9394caf7f1459a0', role: roleType, class: {
1330
- [theme$1]: true,
1125
+ const roleType = getRoleType(theme.hostContext('ion-menu', this.el), isCondensed, mode);
1126
+ return (index.h(index.Host, Object.assign({ key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
1127
+ [mode]: true,
1331
1128
  // Used internally for styling
1332
- [`header-${theme$1}`]: true,
1129
+ [`header-${mode}`]: true,
1333
1130
  [`header-translucent`]: this.translucent,
1334
1131
  [`header-collapse-${collapse}`]: true,
1335
- [`header-translucent-${theme$1}`]: this.translucent,
1336
- ['header-divider']: divider,
1337
- } }, inheritedAttributes), theme$1 !== 'md' && translucent && index.h("div", { key: '705f120951a3dd429286b66cd0b511fa267b3702', class: "header-background" }), index.h("slot", { key: '1c7a9d474083cf92abfe88c02d363f8d420716ca' })));
1132
+ [`header-translucent-${mode}`]: this.translucent,
1133
+ } }, inheritedAttributes), mode === 'ios' && translucent && index.h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), index.h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
1338
1134
  }
1339
1135
  get el() { return index.getElement(this); }
1340
1136
  };
1341
1137
  Header.style = {
1342
- ionic: headerIonicCss(),
1343
1138
  ios: headerIosCss(),
1344
1139
  md: headerMdCss()
1345
1140
  };
1346
1141
 
1347
- const routerOutletCss = () => `:host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1142
+ const routerOutletCss = () => `:host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}`;
1348
1143
 
1349
1144
  const RouterOutlet = class {
1350
1145
  constructor(hostRef) {
@@ -1355,7 +1150,7 @@ const RouterOutlet = class {
1355
1150
  this.lockController = lockController.createLockController();
1356
1151
  this.gestureOrAnimationInProgress = false;
1357
1152
  /**
1358
- * The mode determines the platform behaviors of the component.
1153
+ * The mode determines which platform styles to use.
1359
1154
  */
1360
1155
  this.mode = ionicGlobal.getIonMode(this);
1361
1156
  /**
@@ -1363,10 +1158,11 @@ const RouterOutlet = class {
1363
1158
  */
1364
1159
  this.animated = true;
1365
1160
  }
1161
+ swipeGestureChanged() {
1162
+ this.updateGestureEnabled();
1163
+ }
1366
1164
  swipeHandlerChanged() {
1367
- if (this.gesture) {
1368
- this.gesture.enable(this.swipeHandler !== undefined);
1369
- }
1165
+ this.updateGestureEnabled();
1370
1166
  }
1371
1167
  async connectedCallback() {
1372
1168
  const onStart = () => {
@@ -1375,7 +1171,7 @@ const RouterOutlet = class {
1375
1171
  this.swipeHandler.onStart();
1376
1172
  }
1377
1173
  };
1378
- this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-jJFi5KCB.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1174
+ this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-C0GCB18x.js'); })).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1379
1175
  if (this.ani) {
1380
1176
  this.ani.onFinish(() => {
1381
1177
  this.gestureOrAnimationInProgress = false;
@@ -1406,11 +1202,21 @@ const RouterOutlet = class {
1406
1202
  this.gestureOrAnimationInProgress = false;
1407
1203
  }
1408
1204
  });
1409
- this.swipeHandlerChanged();
1205
+ if (this.swipeGesture === undefined) {
1206
+ this.swipeGesture = index.config.getBoolean('swipeBackEnabled', this.mode === 'ios');
1207
+ }
1208
+ else {
1209
+ this.updateGestureEnabled();
1210
+ }
1410
1211
  }
1411
1212
  componentWillLoad() {
1412
1213
  this.ionNavWillLoad.emit();
1413
1214
  }
1215
+ updateGestureEnabled() {
1216
+ if (this.gesture) {
1217
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
1218
+ }
1219
+ }
1414
1220
  disconnectedCallback() {
1415
1221
  if (this.gesture) {
1416
1222
  this.gesture.destroy();
@@ -1521,10 +1327,13 @@ const RouterOutlet = class {
1521
1327
  return true;
1522
1328
  }
1523
1329
  render() {
1524
- return index.h("slot", { key: 'f59dfdc11831ed91f5f7d8147cdc14f3c07bc289' });
1330
+ return index.h("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
1525
1331
  }
1526
1332
  get el() { return index.getElement(this); }
1527
1333
  static get watchers() { return {
1334
+ "swipeGesture": [{
1335
+ "swipeGestureChanged": 0
1336
+ }],
1528
1337
  "swipeHandler": [{
1529
1338
  "swipeHandlerChanged": 0
1530
1339
  }]
@@ -1532,11 +1341,9 @@ const RouterOutlet = class {
1532
1341
  };
1533
1342
  RouterOutlet.style = routerOutletCss();
1534
1343
 
1535
- 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}`;
1536
-
1537
- const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host(.ion-color){color:var(--ion-color-base)}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1344
+ const titleIosCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}`;
1538
1345
 
1539
- 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}`;
1346
+ const titleMdCss = () => `:host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}`;
1540
1347
 
1541
1348
  const ToolbarTitle = class {
1542
1349
  constructor(hostRef) {
@@ -1559,13 +1366,13 @@ const ToolbarTitle = class {
1559
1366
  return this.size !== undefined ? this.size : 'default';
1560
1367
  }
1561
1368
  render() {
1562
- const theme$1 = ionicGlobal.getIonTheme(this);
1369
+ const mode = ionicGlobal.getIonMode(this);
1563
1370
  const size = this.getSize();
1564
- return (index.h(index.Host, { key: '87bb5264f4c13d0d6eeef874ed114539d0b59062', class: theme.createColorClasses(this.color, {
1565
- [theme$1]: true,
1371
+ return (index.h(index.Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: theme.createColorClasses(this.color, {
1372
+ [mode]: true,
1566
1373
  [`title-${size}`]: true,
1567
1374
  'title-rtl': document.dir === 'rtl',
1568
- }) }, index.h("div", { key: '75f2ddfaf693ffdec13d909eefdb09b441d76e80', class: "toolbar-title" }, index.h("slot", { key: '00539af5e250bee78fdd1c55f2ecdc8e53bc18b0' }))));
1375
+ }) }, index.h("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, index.h("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
1569
1376
  }
1570
1377
  get el() { return index.getElement(this); }
1571
1378
  static get watchers() { return {
@@ -1575,29 +1382,18 @@ const ToolbarTitle = class {
1575
1382
  }; }
1576
1383
  };
1577
1384
  ToolbarTitle.style = {
1578
- ionic: titleIonicCss(),
1579
1385
  ios: titleIosCss(),
1580
1386
  md: titleMdCss()
1581
1387
  };
1582
1388
 
1583
- const toolbarIonicCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424));--border-color:currentColor;--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--min-height:var(--token-scale-1400, 56px)}.toolbar-container{gap:var(--token-space-400, var(--token-scale-400, 16px));z-index:10}.toolbar-background{z-index:-1}.toolbar-content{-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}:host(.toolbar-searchbar) ::slotted(ion-searchbar){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}::slotted(ion-buttons){gap:var(--token-space-200, var(--token-scale-200, 8px))}::slotted(ion-title){-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px))}:host(.toolbar-title-large) ::slotted(ion-title){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}:host(.has-end-content) slot[name=end],:host(.show-end) slot[name=end]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-start-content) slot[name=start],:host(.show-start) slot[name=start]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0)}:host(.has-primary-content) slot[name=primary],:host(.show-primary) slot[name=primary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-secondary-content) slot[name=secondary],:host(.show-secondary) slot[name=secondary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0)}:host(.toolbar-title-placement-start) ::slotted(ion-title){text-align:start}:host(.toolbar-title-placement-center) ::slotted(ion-title){text-align:center}:host(.toolbar-title-placement-end) ::slotted(ion-title){text-align:end}`;
1389
+ const toolbarIosCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}`;
1584
1390
 
1585
- 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%}`;
1586
-
1587
- const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1391
+ const toolbarMdCss = () => `:host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}`;
1588
1392
 
1589
1393
  const Toolbar = class {
1590
1394
  constructor(hostRef) {
1591
1395
  index.registerInstance(this, hostRef);
1592
1396
  this.childrenStyles = new Map();
1593
- this.slotClasses = [
1594
- 'has-start-content',
1595
- 'has-end-content',
1596
- 'has-primary-content',
1597
- 'has-secondary-content',
1598
- ];
1599
- this.showClasses = ['show-start', 'show-end', 'show-primary', 'show-secondary'];
1600
- this.slotSizeVars = ['--start-end-size', '--primary-secondary-size'];
1601
1397
  }
1602
1398
  componentWillLoad() {
1603
1399
  const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));
@@ -1614,173 +1410,6 @@ const Toolbar = class {
1614
1410
  if (lastButtons) {
1615
1411
  lastButtons.classList.add('buttons-last-slot');
1616
1412
  }
1617
- this.updateSlotClasses();
1618
- }
1619
- componentDidLoad() {
1620
- this.updateSlotClasses();
1621
- this.updateSlotWidths();
1622
- }
1623
- titlePlacementChanged() {
1624
- this.updateSlotClasses();
1625
- }
1626
- /**
1627
- * Gets the title placement.
1628
- * Returns the title placement if it is set, otherwise returns `"center"`
1629
- * for `ionic` and `ios`, and `"start"` for `md`.
1630
- */
1631
- getTitlePlacement() {
1632
- if (this.titlePlacement !== undefined) {
1633
- return this.titlePlacement;
1634
- }
1635
- return ionicGlobal.getIonTheme(this) === 'ionic' || ionicGlobal.getIonTheme(this) === 'ios' ? 'center' : 'start';
1636
- }
1637
- /**
1638
- * Updates the CSS custom properties for slot widths
1639
- * This ensures that slots shown by their met conditions
1640
- * have a minimum width matching their required slot
1641
- */
1642
- updateSlotWidths(tries = 0) {
1643
- // Set timeout to try to execute after everything is rendered
1644
- setTimeout(() => {
1645
- // Attempt to measure and update
1646
- const success = this.measureAndUpdateSlots();
1647
- // If not all measurements were successful, try again in 100 ms
1648
- // cap recursion at 5 tries for safety
1649
- if (!success && tries < 5) {
1650
- setTimeout(() => {
1651
- this.updateSlotWidths(tries + 1);
1652
- }, 100);
1653
- }
1654
- });
1655
- }
1656
- /**
1657
- * Measure the widths of the slots and update the CSS custom properties
1658
- * for the minimum width of each pair of slots based on the largest width in each pair.
1659
- * Returns whether we successfully measured all of the slots we expect to have content.
1660
- * If not, the content probably hasn't rendered yet and we need to try again.
1661
- */
1662
- measureAndUpdateSlots() {
1663
- // Define the relationship between slots based on the conditions array
1664
- // Group slots that should have the same width
1665
- const slotPairs = [
1666
- { name: 'start-end', slots: ['start', 'end'] },
1667
- { name: 'primary-secondary', slots: ['primary', 'secondary'] },
1668
- ];
1669
- // First, measure all slot widths
1670
- const slotWidths = new Map();
1671
- let allMeasurementsSuccessful = true;
1672
- // Measure all slots with content
1673
- const slots = ['start', 'end', 'primary', 'secondary'];
1674
- slots.forEach((slot) => {
1675
- var _a;
1676
- if (this.el.classList.contains(`has-${slot}-content`)) {
1677
- const slotElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slot}"]`);
1678
- if (slotElement) {
1679
- // Check if the slot contains an img or ion-img
1680
- const assignedElements = slotElement.assignedElements({ flatten: true });
1681
- const hasImg = assignedElements.some((el) => {
1682
- if (el.tagName === 'IMG' || el.tagName === 'ION-IMG') {
1683
- return true;
1684
- }
1685
- // Check for nested images
1686
- return el.querySelector('img, ion-img');
1687
- });
1688
- // Temporarily allow slot to size to content by setting flex-basis
1689
- // to 'auto'. This ensures that slotted images can render at their
1690
- // intrinsic width for measurement.
1691
- if (hasImg) {
1692
- const { name } = slotPairs.find((pair) => pair.slots.includes(slot));
1693
- this.el.style.setProperty(`--${name}-size`, 'auto');
1694
- }
1695
- const width = slotElement.offsetWidth;
1696
- if (width > 0) {
1697
- slotWidths.set(slot, width);
1698
- }
1699
- else {
1700
- allMeasurementsSuccessful = false;
1701
- }
1702
- }
1703
- }
1704
- });
1705
- // Then set the CSS custom properties based on the largest width in each pair
1706
- slotPairs.forEach(({ name, slots }) => {
1707
- // Find the maximum width among the slots in this pair
1708
- let maxWidth = 0;
1709
- let hasAnyContent = false;
1710
- slots.forEach((slot) => {
1711
- var _a;
1712
- if (slotWidths.has(slot)) {
1713
- hasAnyContent = true;
1714
- maxWidth = Math.max(maxWidth, (_a = slotWidths.get(slot)) !== null && _a !== void 0 ? _a : 0);
1715
- }
1716
- });
1717
- // If at least one slot in the pair has content, set the min-width for the pair
1718
- if (hasAnyContent && maxWidth > 0) {
1719
- // Set a single CSS variable for the pair
1720
- this.el.style.setProperty(`--${name}-size`, `${maxWidth}px`);
1721
- }
1722
- });
1723
- return allMeasurementsSuccessful;
1724
- }
1725
- /**
1726
- * Removes all slot visibility classes and slot width CSS variables.
1727
- */
1728
- removeSlotClasses() {
1729
- this.el.classList.remove(...this.slotClasses, ...this.showClasses);
1730
- this.slotSizeVars.forEach((cssVar) => this.el.style.removeProperty(cssVar));
1731
- }
1732
- updateSlotClasses() {
1733
- const titlePlacement = this.getTitlePlacement();
1734
- if (titlePlacement !== 'center') {
1735
- this.removeSlotClasses();
1736
- return;
1737
- }
1738
- // Check if slots have content
1739
- const slots = ['start', 'end', 'primary', 'secondary'];
1740
- const classesToAdd = [];
1741
- const classesToRemove = [];
1742
- slots.forEach((slot) => {
1743
- const slotHasContent = this.hasSlotContent(slot);
1744
- const slotClass = `has-${slot}-content`;
1745
- if (slotHasContent) {
1746
- classesToAdd.push(slotClass);
1747
- }
1748
- else {
1749
- classesToRemove.push(slotClass);
1750
- }
1751
- });
1752
- // Force visibilities in certain conditions. This works by adding a class to the toolbar
1753
- // named `show-{slot}`. This class will be added if the toolbar has the required slots
1754
- // and does not have any of the excluded slots, otherwise it will be removed.
1755
- // This is useful to enforce centering of the toolbar content when there are different amounts
1756
- // of slots on either side of the toolbar.
1757
- const conditions = [
1758
- { name: 'end', requiredSlots: ['start'], excludeSlots: ['end', 'primary'] },
1759
- { name: 'start', requiredSlots: ['end'], excludeSlots: ['start', 'secondary'] },
1760
- { name: 'secondary', requiredSlots: ['primary'], excludeSlots: ['secondary', 'start'] },
1761
- { name: 'primary', requiredSlots: ['secondary'], excludeSlots: ['primary', 'end'] },
1762
- ];
1763
- conditions.forEach((condition) => {
1764
- const hasRequiredSlots = condition.requiredSlots.every((slot) => classesToAdd.includes(`has-${slot}-content`));
1765
- const hasExcludedSlots = condition.excludeSlots.some((slot) => classesToAdd.includes(`has-${slot}-content`));
1766
- const className = `show-${condition.name}`;
1767
- if (hasRequiredSlots && !hasExcludedSlots) {
1768
- classesToAdd.push(className);
1769
- }
1770
- else {
1771
- classesToRemove.push(className);
1772
- }
1773
- });
1774
- // Add classes to the toolbar element
1775
- this.el.classList.add(...classesToAdd);
1776
- this.el.classList.remove(...classesToRemove);
1777
- // Update slot widths after classes have been updated
1778
- this.updateSlotWidths();
1779
- }
1780
- hasSlotContent(slotName) {
1781
- var _a;
1782
- const slotNode = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`slot[name="${slotName}"]`);
1783
- return !!slotNode && slotNode.assignedNodes().length > 0;
1784
1413
  }
1785
1414
  childrenStyle(ev) {
1786
1415
  ev.stopPropagation();
@@ -1805,27 +1434,19 @@ const Toolbar = class {
1805
1434
  }
1806
1435
  }
1807
1436
  render() {
1808
- const theme$1 = ionicGlobal.getIonTheme(this);
1437
+ const mode = ionicGlobal.getIonMode(this);
1809
1438
  const childStyles = {};
1810
- this.childrenStyles.forEach((style) => {
1811
- Object.assign(childStyles, style);
1439
+ this.childrenStyles.forEach((value) => {
1440
+ Object.assign(childStyles, value);
1812
1441
  });
1813
- const titlePlacement = this.getTitlePlacement();
1814
- return (index.h(index.Host, { key: '069913e9241b8e9a2dee8e7d088d181b6faeab5e', class: Object.assign(Object.assign({}, theme.createColorClasses(this.color, {
1815
- [theme$1]: true,
1442
+ return (index.h(index.Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), theme.createColorClasses(this.color, {
1443
+ [mode]: true,
1816
1444
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
1817
- [`toolbar-title-placement-${titlePlacement}`]: true,
1818
- })), childStyles) }, index.h("div", { key: '3255531be492b9afa7b47476a805f923beea09db', class: "toolbar-background", part: "background" }), index.h("div", { key: '8758189374c0a12f293c30ca7f8f049b732d2cab', class: "toolbar-container", part: "container" }, index.h("slot", { key: '74c3705f717968893bf94ea95c99cae313ce68f3', name: "start", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: '298c78f93291442f140f8c52983871215f20ea87', name: "secondary", onSlotchange: () => this.updateSlotClasses }), index.h("div", { key: 'f7376320b704b8ce375fe2223ae30d51bfc05acb', class: "toolbar-content", part: "content" }, index.h("slot", { key: 'ddaec08b1fbd13384d834ba4c3b4441c4d749faf' })), index.h("slot", { key: '6d5bce85159859bb548e4d3fb6b22208dcb48987', name: "primary", onSlotchange: () => this.updateSlotClasses }), index.h("slot", { key: 'd1d21752ed3bcc7bf15c20de1c0a6fd956373450', name: "end", onSlotchange: () => this.updateSlotClasses }))));
1445
+ })) }, index.h("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), index.h("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, index.h("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), index.h("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), index.h("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, index.h("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), index.h("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), index.h("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
1819
1446
  }
1820
1447
  get el() { return index.getElement(this); }
1821
- static get watchers() { return {
1822
- "titlePlacement": [{
1823
- "titlePlacementChanged": 0
1824
- }]
1825
- }; }
1826
1448
  };
1827
1449
  Toolbar.style = {
1828
- ionic: toolbarIonicCss(),
1829
1450
  ios: toolbarIosCss(),
1830
1451
  md: toolbarMdCss()
1831
1452
  };