@ionic/core 9.0.2 → 9.0.3-dev.11788456135.1ab1d6cd

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 (1116) 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-divider.d.ts +11 -0
  27. package/components/ion-divider.js +4 -0
  28. package/components/ion-fab-button.js +1 -1
  29. package/components/ion-fab-list.js +1 -1
  30. package/components/ion-fab.js +1 -1
  31. package/components/ion-footer.js +1 -1
  32. package/components/ion-gallery-item.d.ts +11 -0
  33. package/components/ion-gallery-item.js +4 -0
  34. package/components/ion-gallery.d.ts +11 -0
  35. package/components/ion-gallery.js +4 -0
  36. package/components/ion-grid.js +1 -1
  37. package/components/ion-header.js +1 -1
  38. package/components/ion-icon.js +1 -1
  39. package/components/ion-img.js +1 -1
  40. package/components/ion-infinite-scroll-content.js +1 -1
  41. package/components/ion-infinite-scroll.js +1 -1
  42. package/components/ion-input-otp.js +1 -1
  43. package/components/ion-input-password-toggle.js +1 -1
  44. package/components/ion-input.js +1 -1
  45. package/components/ion-item-divider.js +1 -1
  46. package/components/ion-item-group.js +1 -1
  47. package/components/ion-item-option.js +1 -1
  48. package/components/ion-item-options.js +1 -1
  49. package/components/ion-item-sliding.js +1 -1
  50. package/components/ion-item.js +1 -1
  51. package/components/ion-label.js +1 -1
  52. package/components/ion-list-header.js +1 -1
  53. package/components/ion-list.js +1 -1
  54. package/components/ion-loading.js +1 -1
  55. package/components/ion-menu-button.js +1 -1
  56. package/components/ion-menu-toggle.js +1 -1
  57. package/components/ion-menu.js +1 -1
  58. package/components/ion-modal.js +1 -1
  59. package/components/ion-nav-link.js +1 -1
  60. package/components/ion-nav.js +1 -1
  61. package/components/ion-note.js +1 -1
  62. package/components/ion-picker-column-option.js +1 -1
  63. package/components/ion-picker-column.js +1 -1
  64. package/components/ion-picker.js +1 -1
  65. package/components/ion-popover.js +1 -1
  66. package/components/ion-progress-bar.js +1 -1
  67. package/components/ion-radio-group.js +1 -1
  68. package/components/ion-radio.js +1 -1
  69. package/components/ion-range.js +1 -1
  70. package/components/ion-refresher-content.js +1 -1
  71. package/components/ion-refresher.js +1 -1
  72. package/components/ion-reorder-group.js +1 -1
  73. package/components/ion-reorder.js +1 -1
  74. package/components/ion-ripple-effect.js +1 -1
  75. package/components/ion-route-redirect.js +1 -1
  76. package/components/ion-route.js +1 -1
  77. package/components/ion-router-link.js +1 -1
  78. package/components/ion-router-outlet.js +1 -1
  79. package/components/ion-router.js +1 -1
  80. package/components/ion-row.js +1 -1
  81. package/components/ion-searchbar.js +1 -1
  82. package/components/ion-segment-button.js +1 -1
  83. package/components/ion-segment-content.js +1 -1
  84. package/components/ion-segment-view.js +1 -1
  85. package/components/ion-segment.js +1 -1
  86. package/components/ion-select-modal.js +1 -1
  87. package/components/ion-select-option.js +1 -1
  88. package/components/ion-select-popover.js +1 -1
  89. package/components/ion-select.js +1 -1
  90. package/components/ion-skeleton-text.js +1 -1
  91. package/components/ion-spinner.js +1 -1
  92. package/components/ion-split-pane.js +1 -1
  93. package/components/ion-tab-bar.js +1 -1
  94. package/components/ion-tab-button.js +1 -1
  95. package/components/ion-tab.js +1 -1
  96. package/components/ion-tabs.js +1 -1
  97. package/components/ion-text.js +1 -1
  98. package/components/ion-textarea.js +1 -1
  99. package/components/ion-thumbnail.js +1 -1
  100. package/components/ion-title.js +1 -1
  101. package/components/ion-toast.js +1 -1
  102. package/components/ion-toggle.js +1 -1
  103. package/components/ion-toolbar.js +1 -1
  104. package/components/p-B1AK6oR-.js +4 -0
  105. package/components/p-B8dfyFoB.js +4 -0
  106. package/components/p-B9UT2JwK.js +4 -0
  107. package/components/p-BBz0jPCg.js +4 -0
  108. package/components/p-BDqjX7Z_.js +4 -0
  109. package/components/p-BGP1kR6j.js +4 -0
  110. package/components/p-BLGqtLjb.js +4 -0
  111. package/components/p-BQUTtt8S.js +4 -0
  112. package/components/p-BUF_V-Kg.js +4 -0
  113. package/components/p-BYSs-jZz.js +4 -0
  114. package/components/{p-BT9-hMMz.js → p-BZmR0M4X.js} +1 -1
  115. package/components/{p-CWuIRJQN.js → p-BZtGrrX4.js} +1 -1
  116. package/{dist/ionic/p-DTxBioUO.js → components/p-BahD7B6k.js} +1 -1
  117. package/{dist/ionic/p-DZ6Hmc-8.js → components/p-BcxhVbtz.js} +1 -1
  118. package/components/p-BdAOHgnb.js +4 -0
  119. package/components/p-Be00fpKV.js +4 -0
  120. package/{dist/ionic/p-C8XilMh0.js → components/p-BkQ1V9ee.js} +1 -1
  121. package/components/p-Bkk8447d.js +4 -0
  122. package/components/p-C8aonLbo.js +4 -0
  123. package/components/p-C9cwz4xv.js +4 -0
  124. package/components/p-CDmCFFLL.js +4 -0
  125. package/components/{p-Cw6WocLJ.js → p-CN41sVGB.js} +1 -1
  126. package/components/p-CODBQrPj.js +4 -0
  127. package/components/p-CPXKIYkL.js +4 -0
  128. package/components/p-CPdOdJa7.js +4 -0
  129. package/components/p-CTTmpA7l.js +4 -0
  130. package/components/p-Cc3oC60a.js +4 -0
  131. package/components/{p-BMPN55of.js → p-CksPhDEa.js} +1 -1
  132. package/components/{p-Fl7ZFU74.js → p-ClnMyzlV.js} +1 -1
  133. package/components/p-Cm78Kk79.js +4 -0
  134. package/components/p-CmEe-Llj.js +4 -0
  135. package/components/{p-DM1gJSMP.js → p-CrNVENZG.js} +1 -1
  136. package/components/p-CsQsFkwO.js +4 -0
  137. package/components/{p-BQyuFxYc.js → p-CtLeQL1G.js} +1 -1
  138. package/components/p-CvRAtS4n.js +4 -0
  139. package/components/p-D1t981Ih.js +4 -0
  140. package/components/p-D5lFNdff.js +4 -0
  141. package/components/p-D9jEKvVd.js +4 -0
  142. package/components/p-DG-ZC7Js.js +4 -0
  143. package/components/p-DGfjyB0v.js +4 -0
  144. package/components/p-DJkuoL4u.js +4 -0
  145. package/{dist/ionic/p-BaeKWZ-a.js → components/p-DNrr6r3I.js} +1 -1
  146. package/components/p-DOdd_Inr.js +4 -0
  147. package/components/p-DOoxQDxg.js +4 -0
  148. package/components/p-DWBpR7SJ.js +4 -0
  149. package/components/{p-CEW4RXZO.js → p-DcOWEjmv.js} +1 -1
  150. package/components/p-DgEOEy6x.js +4 -0
  151. package/components/{p-DhNuxvJH.js → p-DgIAZUGe.js} +1 -1
  152. package/components/{p-qAXsfUff.js → p-DhBOoebx.js} +1 -1
  153. package/components/p-Dhi5xtNS.js +4 -0
  154. package/components/p-DkQNAyg8.js +4 -0
  155. package/components/p-DtPgvez6.js +4 -0
  156. package/components/p-DwAij6DN.js +4 -0
  157. package/components/p-DzaPYdjZ.js +4 -0
  158. package/components/p-Dzuh_AKJ.js +4 -0
  159. package/components/p-EayFnjkU.js +4 -0
  160. package/components/p-JAFy4ZHv.js +4 -0
  161. package/components/p-NcQUGze-.js +4 -0
  162. package/components/p-Uo-TYRpE.js +4 -0
  163. package/components/p-VLn2Ytmp.js +4 -0
  164. package/components/p-W8Yq_OMR.js +4 -0
  165. package/components/p-ZxET9sbA.js +4 -0
  166. package/components/p-cKiRADSB.js +4 -0
  167. package/components/p-e73ca-aN.js +4 -0
  168. package/components/p-fIOYmaqA.js +4 -0
  169. package/components/p-fh4o6dKR.js +4 -0
  170. package/components/p-vXpMhGrs.js +4 -0
  171. package/css/core.css +1 -1
  172. package/css/core.css.map +1 -1
  173. package/css/display.css +1 -1
  174. package/css/display.css.map +1 -1
  175. package/css/flex-utils.css +1 -1
  176. package/css/flex-utils.css.map +1 -1
  177. package/css/float-elements.css.map +1 -1
  178. package/css/global.bundle.css.map +1 -1
  179. package/css/ionic/bundle.ionic.css +1 -0
  180. package/css/ionic/bundle.ionic.css.map +1 -0
  181. package/css/ionic/core.ionic.css +1 -0
  182. package/css/ionic/core.ionic.css.map +1 -0
  183. package/css/ionic/global.bundle.ionic.css +1 -0
  184. package/css/ionic/global.bundle.ionic.css.map +1 -0
  185. package/css/ionic/ionic-swiper.ionic.css +1 -0
  186. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  187. package/css/ionic/link.ionic.css +1 -0
  188. package/css/ionic/link.ionic.css.map +1 -0
  189. package/css/ionic/structure.ionic.css +1 -0
  190. package/css/ionic/structure.ionic.css.map +1 -0
  191. package/css/ionic/typography.ionic.css +1 -0
  192. package/css/ionic/typography.ionic.css.map +1 -0
  193. package/css/ionic/utils.bundle.ionic.css +1 -0
  194. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  195. package/css/ionic-swiper.css +1 -1
  196. package/css/ionic-swiper.css.map +1 -1
  197. package/css/ionic.bundle.css +1 -1
  198. package/css/ionic.bundle.css.map +1 -1
  199. package/css/normalize.css.map +1 -1
  200. package/css/padding.css.map +1 -1
  201. package/css/palettes/dark.always.css.map +1 -1
  202. package/css/palettes/dark.class.css.map +1 -1
  203. package/css/palettes/dark.system.css.map +1 -1
  204. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  205. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  206. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  207. package/css/palettes/high-contrast.always.css.map +1 -1
  208. package/css/palettes/high-contrast.class.css.map +1 -1
  209. package/css/palettes/high-contrast.system.css.map +1 -1
  210. package/css/structure.css.map +1 -1
  211. package/css/text-alignment.css.map +1 -1
  212. package/css/text-transformation.css.map +1 -1
  213. package/css/typography.css.map +1 -1
  214. package/css/utils.bundle.css +1 -1
  215. package/css/utils.bundle.css.map +1 -1
  216. package/dist/cjs/{animation-Kd1N7WTN.js → animation-DVrkairK.js} +3 -3
  217. package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-CTxe9MxF.js} +1 -1
  218. package/dist/cjs/{button-active-CQCFubJJ.js → button-active-B8t6YMNb.js} +2 -2
  219. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-w_r4U-_S.js} +3 -3
  220. package/dist/cjs/caret-down-vtVgfXIs.js +8 -0
  221. package/dist/cjs/caret-left-CxZXLRv5.js +8 -0
  222. package/dist/cjs/caret-right-CRCgv98E.js +8 -0
  223. package/dist/cjs/clear-button-press-controller-BKSn-dVq.js +45 -0
  224. package/dist/{esm/focus-visible-BmVRXR1y.js → cjs/focus-visible-BIj-I3-C.js} +27 -1
  225. package/dist/cjs/{format-bHU8N1g5.js → format-CSwmjLtu.js} +1 -1
  226. package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-Dmce7iqZ.js} +4 -2
  227. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-DZEv3V5s.js} +1 -1
  228. package/dist/cjs/{helpers-7wzdhdeg.js → helpers-DFJMw-qZ.js} +71 -4
  229. package/dist/cjs/{index-C74Q3t6a.js → index-Bm6y0Ibt.js} +9 -8
  230. package/dist/cjs/{index-CQfEIyLK.js → index-BoQA7njo.js} +4 -4
  231. package/dist/cjs/{index-DXoo08JC.js → index-BsDPqfGS.js} +53 -4
  232. package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
  233. package/dist/cjs/{index-DFNrCX7M.js → index-DN51-BQl.js} +15 -15
  234. package/dist/cjs/{index-DtvKGwdh.js → index-DWP810QI.js} +2 -2
  235. package/dist/cjs/{index-KiSZqhYS.js → index-jHTqyXrs.js} +1 -1
  236. package/dist/cjs/index.cjs.js +13 -14
  237. package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-BFGH5o2Z.js} +18 -17
  238. package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-C5MTV3xv.js} +1 -1
  239. package/dist/cjs/ion-accordion_2.cjs.entry.js +61 -29
  240. package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -24
  241. package/dist/cjs/ion-alert.cjs.entry.js +33 -31
  242. package/dist/cjs/ion-app_8.cjs.entry.js +454 -195
  243. package/dist/cjs/ion-avatar_3.cjs.entry.js +123 -13
  244. package/dist/cjs/ion-back-button.cjs.entry.js +31 -22
  245. package/dist/cjs/ion-backdrop.cjs.entry.js +10 -7
  246. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +54 -18
  247. package/dist/cjs/ion-button_2.cjs.entry.js +59 -22
  248. package/dist/cjs/ion-card_5.cjs.entry.js +55 -33
  249. package/dist/cjs/ion-checkbox.cjs.entry.js +34 -17
  250. package/dist/cjs/ion-chip.cjs.entry.js +50 -9
  251. package/dist/cjs/ion-col_3.cjs.entry.js +56 -62
  252. package/dist/cjs/ion-datetime-button.cjs.entry.js +13 -9
  253. package/dist/cjs/ion-datetime.cjs.entry.js +109 -34
  254. package/dist/cjs/ion-divider.cjs.entry.js +51 -0
  255. package/dist/cjs/ion-fab_3.cjs.entry.js +44 -28
  256. package/dist/cjs/ion-gallery-item.cjs.entry.js +58 -0
  257. package/dist/cjs/ion-gallery.cjs.entry.js +607 -0
  258. package/dist/cjs/ion-img.cjs.entry.js +8 -4
  259. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +90 -16
  260. package/dist/cjs/ion-input-otp.cjs.entry.js +73 -9
  261. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +53 -14
  262. package/dist/cjs/ion-input.cjs.entry.js +158 -39
  263. package/dist/cjs/ion-item-option_3.cjs.entry.js +465 -52
  264. package/dist/cjs/ion-item_8.cjs.entry.js +121 -50
  265. package/dist/cjs/ion-loading.cjs.entry.js +21 -19
  266. package/dist/cjs/ion-menu_3.cjs.entry.js +47 -29
  267. package/dist/cjs/ion-modal.cjs.entry.js +264 -139
  268. package/dist/cjs/ion-nav_2.cjs.entry.js +13 -10
  269. package/dist/cjs/ion-picker-column-option.cjs.entry.js +12 -8
  270. package/dist/cjs/ion-picker-column.cjs.entry.js +16 -16
  271. package/dist/cjs/ion-picker.cjs.entry.js +10 -6
  272. package/dist/cjs/ion-popover.cjs.entry.js +22 -20
  273. package/dist/cjs/ion-progress-bar.cjs.entry.js +27 -9
  274. package/dist/cjs/ion-radio_2.cjs.entry.js +36 -18
  275. package/dist/cjs/ion-range.cjs.entry.js +20 -13
  276. package/dist/cjs/ion-refresher_2.cjs.entry.js +39 -21
  277. package/dist/cjs/ion-reorder_2.cjs.entry.js +38 -14
  278. package/dist/cjs/ion-ripple-effect.cjs.entry.js +15 -7
  279. package/dist/cjs/ion-route_4.cjs.entry.js +11 -10
  280. package/dist/cjs/ion-searchbar.cjs.entry.js +146 -32
  281. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  282. package/dist/cjs/ion-segment-view.cjs.entry.js +13 -3
  283. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -16
  284. package/dist/cjs/ion-select-modal.cjs.entry.js +51 -26
  285. package/dist/cjs/ion-select_3.cjs.entry.js +217 -78
  286. package/dist/cjs/ion-spinner.cjs.entry.js +30 -8
  287. package/dist/cjs/ion-split-pane.cjs.entry.js +13 -9
  288. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +149 -28
  289. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
  290. package/dist/cjs/ion-text.cjs.entry.js +7 -7
  291. package/dist/cjs/ion-textarea.cjs.entry.js +191 -26
  292. package/dist/cjs/ion-toast.cjs.entry.js +72 -46
  293. package/dist/cjs/ion-toggle.cjs.entry.js +82 -26
  294. package/dist/cjs/ionic-global-BaVLW54G.js +522 -0
  295. package/dist/cjs/ionic.cjs.js +4 -4
  296. package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-Bm4N3WK1.js} +7 -5
  297. package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-C3d1lMiz.js} +1 -1
  298. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-5cEsoK5l.js} +4 -3
  299. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-9uOUQmB-.js} +1 -1
  300. package/dist/cjs/list-a-7GSA6K.js +8 -0
  301. package/dist/cjs/loader.cjs.js +4 -4
  302. package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-Z-7hu2x1.js} +6 -5
  303. package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
  304. package/dist/cjs/{overlays-BR21NUIG.js → overlays-Jn6TNpc3.js} +306 -18
  305. package/dist/cjs/scroll-hide-controller-DQ9ulQ11.js +345 -0
  306. package/dist/cjs/{select-option-render-D8ZEjYji.js → select-option-render-BUF8TPE0.js} +2 -2
  307. package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-C9i1ymbP.js} +5 -5
  308. package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-DT7J4fZQ.js} +4 -3
  309. package/dist/cjs/{swipe-back-BYb_nLJe.js → swipe-back-BIbF7bVy.js} +3 -2
  310. package/dist/cjs/{theme-Bw0rpaNN.js → theme-Cy4joHPt.js} +25 -1
  311. package/dist/cjs/validity-CoPMWggj.js +51 -0
  312. package/dist/cjs/x-BTF99yFH.js +8 -0
  313. package/dist/collection/collection-manifest.json +8 -0
  314. package/dist/collection/components/accordion/accordion.ionic.css +201 -0
  315. package/dist/collection/components/accordion/accordion.ios.css +73 -58
  316. package/dist/collection/components/accordion/accordion.js +41 -27
  317. package/dist/collection/components/accordion/accordion.md.css +67 -59
  318. package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
  319. package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
  320. package/dist/collection/components/accordion-group/accordion-group.js +44 -8
  321. package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
  322. package/dist/collection/components/action-sheet/action-sheet.ionic.css +494 -0
  323. package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
  324. package/dist/collection/components/action-sheet/action-sheet.js +16 -13
  325. package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
  326. package/dist/collection/components/alert/alert.ionic.css +787 -0
  327. package/dist/collection/components/alert/alert.ios.css +247 -54
  328. package/dist/collection/components/alert/alert.js +22 -19
  329. package/dist/collection/components/alert/alert.md.css +243 -56
  330. package/dist/collection/components/app/app.js +15 -83
  331. package/dist/collection/components/avatar/avatar.ionic.css +385 -0
  332. package/dist/collection/components/avatar/avatar.ios.css +7 -33
  333. package/dist/collection/components/avatar/avatar.js +120 -4
  334. package/dist/collection/components/avatar/avatar.md.css +51 -0
  335. package/dist/collection/components/back-button/back-button.ios.css +60 -48
  336. package/dist/collection/components/back-button/back-button.js +27 -19
  337. package/dist/collection/components/back-button/back-button.md.css +60 -48
  338. package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
  339. package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
  340. package/dist/collection/components/backdrop/backdrop.js +12 -6
  341. package/dist/collection/components/backdrop/backdrop.md.css +56 -19
  342. package/dist/collection/components/badge/badge.ionic.css +272 -0
  343. package/dist/collection/components/badge/badge.ios.css +137 -12
  344. package/dist/collection/components/badge/badge.js +143 -9
  345. package/dist/collection/components/badge/badge.md.css +122 -12
  346. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
  347. package/dist/collection/components/breadcrumb/breadcrumb.js +43 -11
  348. package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
  349. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
  350. package/dist/collection/components/breadcrumbs/breadcrumbs.js +11 -9
  351. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
  352. package/dist/collection/components/button/button.ionic.css +644 -0
  353. package/dist/collection/components/button/button.ios.css +154 -46
  354. package/dist/collection/components/button/button.js +63 -27
  355. package/dist/collection/components/button/button.md.css +150 -50
  356. package/dist/collection/components/buttons/buttons.ionic.css +97 -0
  357. package/dist/collection/components/buttons/buttons.ios.css +59 -7
  358. package/dist/collection/components/buttons/buttons.js +15 -9
  359. package/dist/collection/components/buttons/buttons.md.css +55 -3
  360. package/dist/collection/components/card/card.ionic.css +144 -0
  361. package/dist/collection/components/card/card.ios.css +65 -14
  362. package/dist/collection/components/card/card.js +41 -10
  363. package/dist/collection/components/card/card.md.css +65 -14
  364. package/dist/collection/components/card-content/card-content.ionic.css +89 -0
  365. package/dist/collection/components/card-content/card-content.ios.css +20 -35
  366. package/dist/collection/components/card-content/card-content.js +12 -10
  367. package/dist/collection/components/card-content/card-content.md.css +20 -35
  368. package/dist/collection/components/card-header/card-header.ionic.css +85 -0
  369. package/dist/collection/components/card-header/card-header.ios.css +27 -15
  370. package/dist/collection/components/card-header/card-header.js +13 -10
  371. package/dist/collection/components/card-header/card-header.md.css +27 -15
  372. package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
  373. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
  374. package/dist/collection/components/card-subtitle/card-subtitle.js +11 -8
  375. package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
  376. package/dist/collection/components/card-title/card-title.ios.css +73 -0
  377. package/dist/collection/components/card-title/card-title.js +11 -8
  378. package/dist/collection/components/card-title/card-title.md.css +73 -0
  379. package/dist/collection/components/checkbox/checkbox.ionic.css +543 -0
  380. package/dist/collection/components/checkbox/checkbox.ios.css +242 -117
  381. package/dist/collection/components/checkbox/checkbox.js +69 -14
  382. package/dist/collection/components/checkbox/checkbox.md.css +243 -118
  383. package/dist/collection/components/chip/chip.ionic.css +217 -0
  384. package/dist/collection/components/chip/chip.ios.css +67 -14
  385. package/dist/collection/components/chip/chip.js +108 -8
  386. package/dist/collection/components/chip/chip.md.css +67 -14
  387. package/dist/collection/components/col/col.css +192 -4
  388. package/dist/collection/components/col/col.js +211 -66
  389. package/dist/collection/components/content/content.css +47 -2
  390. package/dist/collection/components/content/content.js +16 -11
  391. package/dist/collection/components/datetime/datetime.ionic.css +703 -0
  392. package/dist/collection/components/datetime/datetime.ios.css +314 -118
  393. package/dist/collection/components/datetime/datetime.js +97 -20
  394. package/dist/collection/components/datetime/datetime.md.css +304 -107
  395. package/dist/collection/components/datetime/utils/data.js +5 -5
  396. package/dist/collection/components/datetime-button/datetime-button.ios.css +6 -0
  397. package/dist/collection/components/datetime-button/datetime-button.js +11 -8
  398. package/dist/collection/components/datetime-button/datetime-button.md.css +6 -0
  399. package/dist/collection/components/divider/divider.ionic.css +148 -0
  400. package/dist/collection/components/divider/divider.ios.css +87 -0
  401. package/dist/collection/components/divider/divider.js +94 -0
  402. package/dist/collection/components/divider/divider.md.css +87 -0
  403. package/dist/collection/components/fab/fab.css +25 -1
  404. package/dist/collection/components/fab/fab.js +9 -5
  405. package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
  406. package/dist/collection/components/fab-button/fab-button.js +36 -21
  407. package/dist/collection/components/fab-button/fab-button.md.css +20 -8
  408. package/dist/collection/components/fab-list/fab-list.css +12 -0
  409. package/dist/collection/components/fab-list/fab-list.js +9 -5
  410. package/dist/collection/components/footer/footer-interface.js +1 -0
  411. package/dist/collection/components/footer/footer.ios.css +33 -6
  412. package/dist/collection/components/footer/footer.js +117 -25
  413. package/dist/collection/components/footer/footer.md.css +40 -0
  414. package/dist/collection/components/gallery/gallery-constants.js +12 -0
  415. package/dist/collection/components/gallery/gallery-interface.js +1 -0
  416. package/dist/collection/components/gallery/gallery.css +15 -0
  417. package/dist/collection/components/gallery/gallery.js +678 -0
  418. package/dist/collection/components/gallery/test/utils.js +100 -0
  419. package/dist/collection/components/gallery-item/gallery-item.css +49 -0
  420. package/dist/collection/components/gallery-item/gallery-item.js +98 -0
  421. package/dist/collection/components/grid/grid.css +12 -0
  422. package/dist/collection/components/grid/grid.js +9 -5
  423. package/dist/collection/components/header/header-interface.js +1 -0
  424. package/dist/collection/components/header/header.ionic.css +250 -0
  425. package/dist/collection/components/header/header.ios.css +178 -133
  426. package/dist/collection/components/header/header.js +180 -39
  427. package/dist/collection/components/header/header.md.css +199 -9
  428. package/dist/collection/components/header/header.utils.js +5 -13
  429. package/dist/collection/components/img/img.js +7 -2
  430. package/dist/collection/components/infinite-scroll/infinite-scroll.js +99 -5
  431. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
  432. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +16 -10
  433. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
  434. package/dist/collection/components/input/input.ionic.css +937 -0
  435. package/dist/collection/components/input/input.ios.css +245 -154
  436. package/dist/collection/components/input/input.js +184 -44
  437. package/dist/collection/components/input/input.md.css +215 -226
  438. package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
  439. package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
  440. package/dist/collection/components/input-otp/input-otp.js +73 -7
  441. package/dist/collection/components/input-otp/input-otp.md.css +105 -60
  442. package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
  443. package/dist/collection/components/input-password-toggle/input-password-toggle.js +48 -11
  444. package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
  445. package/dist/collection/components/item/item.ionic.css +496 -0
  446. package/dist/collection/components/item/item.ios.css +120 -80
  447. package/dist/collection/components/item/item.js +56 -21
  448. package/dist/collection/components/item/item.md.css +131 -79
  449. package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
  450. package/dist/collection/components/item-divider/item-divider.js +11 -8
  451. package/dist/collection/components/item-divider/item-divider.md.css +18 -0
  452. package/dist/collection/components/item-group/item-group.ios.css +12 -0
  453. package/dist/collection/components/item-group/item-group.js +13 -7
  454. package/dist/collection/components/item-group/item-group.md.css +12 -0
  455. package/dist/collection/components/item-option/item-option.ionic.css +277 -0
  456. package/dist/collection/components/item-option/item-option.ios.css +136 -29
  457. package/dist/collection/components/item-option/item-option.js +73 -9
  458. package/dist/collection/components/item-option/item-option.md.css +136 -29
  459. package/dist/collection/components/item-options/item-options.ionic.css +221 -0
  460. package/dist/collection/components/item-options/item-options.ios.css +77 -34
  461. package/dist/collection/components/item-options/item-options.js +13 -7
  462. package/dist/collection/components/item-options/item-options.md.css +77 -34
  463. package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
  464. package/dist/collection/components/item-sliding/item-sliding.js +419 -35
  465. package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
  466. package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
  467. package/dist/collection/components/label/label.ios.css +18 -0
  468. package/dist/collection/components/label/label.js +11 -8
  469. package/dist/collection/components/label/label.md.css +18 -0
  470. package/dist/collection/components/list/list.ionic.css +212 -0
  471. package/dist/collection/components/list/list.ios.css +54 -14
  472. package/dist/collection/components/list/list.js +48 -9
  473. package/dist/collection/components/list/list.md.css +56 -16
  474. package/dist/collection/components/list-header/list-header.ionic.css +190 -0
  475. package/dist/collection/components/list-header/list-header.ios.css +82 -38
  476. package/dist/collection/components/list-header/list-header.js +11 -8
  477. package/dist/collection/components/list-header/list-header.md.css +82 -38
  478. package/dist/collection/components/loading/loading.ios.css +13 -1
  479. package/dist/collection/components/loading/loading.js +15 -12
  480. package/dist/collection/components/loading/loading.md.css +13 -1
  481. package/dist/collection/components/menu/menu.ios.css +15 -3
  482. package/dist/collection/components/menu/menu.js +12 -7
  483. package/dist/collection/components/menu/menu.md.css +15 -3
  484. package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
  485. package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
  486. package/dist/collection/components/menu-button/menu-button.js +26 -10
  487. package/dist/collection/components/menu-button/menu-button.md.css +49 -15
  488. package/dist/collection/components/menu-toggle/menu-toggle.js +8 -5
  489. package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
  490. package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
  491. package/dist/collection/components/modal/animations/sheet.js +8 -2
  492. package/dist/collection/components/modal/gestures/sheet.js +76 -10
  493. package/dist/collection/components/modal/modal.ionic.css +255 -0
  494. package/dist/collection/components/modal/modal.ios.css +178 -70
  495. package/dist/collection/components/modal/modal.js +52 -13
  496. package/dist/collection/components/modal/modal.md.css +178 -70
  497. package/dist/collection/components/nav/nav.css +7 -1
  498. package/dist/collection/components/nav/nav.js +10 -4
  499. package/dist/collection/components/nav-link/nav-link.js +5 -1
  500. package/dist/collection/components/note/note.ios.css +12 -0
  501. package/dist/collection/components/note/note.js +11 -8
  502. package/dist/collection/components/note/note.md.css +12 -0
  503. package/dist/collection/components/picker/picker.ios.css +15 -3
  504. package/dist/collection/components/picker/picker.js +8 -5
  505. package/dist/collection/components/picker/picker.md.css +15 -3
  506. package/dist/collection/components/picker-column/picker-column.css +9 -2
  507. package/dist/collection/components/picker-column/picker-column.js +8 -7
  508. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
  509. package/dist/collection/components/picker-column-option/picker-column-option.js +13 -7
  510. package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -0
  511. package/dist/collection/components/popover/popover.ionic.css +289 -0
  512. package/dist/collection/components/popover/popover.ios.css +13 -1
  513. package/dist/collection/components/popover/popover.js +19 -16
  514. package/dist/collection/components/popover/popover.md.css +13 -1
  515. package/dist/collection/components/progress-bar/progress-bar.ionic.css +287 -0
  516. package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
  517. package/dist/collection/components/progress-bar/progress-bar.js +43 -7
  518. package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
  519. package/dist/collection/components/radio/radio.ionic.css +422 -0
  520. package/dist/collection/components/radio/radio.ios.css +207 -102
  521. package/dist/collection/components/radio/radio.js +14 -9
  522. package/dist/collection/components/radio/radio.md.css +207 -102
  523. package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
  524. package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
  525. package/dist/collection/components/radio-group/radio-group.js +48 -7
  526. package/dist/collection/components/radio-group/radio-group.md.css +43 -19
  527. package/dist/collection/components/range/range.ionic.css +567 -0
  528. package/dist/collection/components/range/range.ios.css +128 -85
  529. package/dist/collection/components/range/range.js +16 -10
  530. package/dist/collection/components/range/range.md.css +128 -85
  531. package/dist/collection/components/refresher/refresher.ios.css +14 -1
  532. package/dist/collection/components/refresher/refresher.js +11 -8
  533. package/dist/collection/components/refresher/refresher.md.css +15 -2
  534. package/dist/collection/components/refresher-content/refresher-content.js +28 -7
  535. package/dist/collection/components/reorder/reorder.ios.css +6 -0
  536. package/dist/collection/components/reorder/reorder.js +33 -6
  537. package/dist/collection/components/reorder/reorder.md.css +6 -0
  538. package/dist/collection/components/reorder-group/reorder-group.css +6 -0
  539. package/dist/collection/components/reorder-group/reorder-group.js +8 -4
  540. package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
  541. package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
  542. package/dist/collection/components/ripple-effect/ripple-effect.js +14 -6
  543. package/dist/collection/components/route/route.js +4 -0
  544. package/dist/collection/components/router/router.js +4 -0
  545. package/dist/collection/components/router-link/router-link.css +8 -2
  546. package/dist/collection/components/router-link/router-link.js +9 -5
  547. package/dist/collection/components/router-outlet/router-outlet.css +7 -1
  548. package/dist/collection/components/router-outlet/router-outlet.js +6 -3
  549. package/dist/collection/components/row/row.css +16 -0
  550. package/dist/collection/components/row/row.js +9 -2
  551. package/dist/collection/components/searchbar/searchbar.ionic.css +622 -0
  552. package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
  553. package/dist/collection/components/searchbar/searchbar.js +191 -42
  554. package/dist/collection/components/searchbar/searchbar.md.css +56 -18
  555. package/dist/collection/components/segment/segment.ionic.css +115 -0
  556. package/dist/collection/components/segment/segment.ios.css +45 -2
  557. package/dist/collection/components/segment/segment.js +11 -8
  558. package/dist/collection/components/segment/segment.md.css +45 -2
  559. package/dist/collection/components/segment-button/segment-button.ionic.css +352 -0
  560. package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
  561. package/dist/collection/components/segment-button/segment-button.js +11 -8
  562. package/dist/collection/components/segment-button/segment-button.md.css +148 -107
  563. package/dist/collection/components/segment-content/segment-content.js +1 -1
  564. package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
  565. package/dist/collection/components/segment-view/segment-view.js +13 -4
  566. package/dist/collection/components/segment-view/segment-view.md.css +6 -0
  567. package/dist/collection/components/select/select.ionic.css +864 -0
  568. package/dist/collection/components/select/select.ios.css +300 -148
  569. package/dist/collection/components/select/select.js +253 -82
  570. package/dist/collection/components/select/select.md.css +316 -150
  571. package/dist/collection/components/select-modal/select-modal.ionic.css +257 -0
  572. package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
  573. package/dist/collection/components/select-modal/select-modal.js +61 -15
  574. package/dist/collection/components/select-modal/select-modal.md.css +273 -43
  575. package/dist/collection/components/select-option/select-option.js +8 -4
  576. package/dist/collection/components/select-popover/select-popover.ionic.css +255 -0
  577. package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
  578. package/dist/collection/components/select-popover/select-popover.js +17 -9
  579. package/dist/collection/components/select-popover/select-popover.md.css +228 -47
  580. package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
  581. package/dist/collection/components/skeleton-text/skeleton-text.js +9 -5
  582. package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
  583. package/dist/collection/components/spinner/spinner.js +47 -6
  584. package/dist/collection/components/spinner/spinner.native.css +199 -0
  585. package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
  586. package/dist/collection/components/split-pane/split-pane.js +15 -8
  587. package/dist/collection/components/split-pane/split-pane.md.css +20 -2
  588. package/dist/collection/components/tab/tab.js +6 -2
  589. package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
  590. package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
  591. package/dist/collection/components/tab-bar/tab-bar.js +178 -15
  592. package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
  593. package/dist/collection/components/tab-button/tab-button.ionic.css +373 -0
  594. package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
  595. package/dist/collection/components/tab-button/tab-button.js +54 -9
  596. package/dist/collection/components/tab-button/tab-button.md.css +137 -93
  597. package/dist/collection/components/tabs/tabs.css +7 -1
  598. package/dist/collection/components/tabs/tabs.js +4 -1
  599. package/dist/collection/components/text/text.css +6 -0
  600. package/dist/collection/components/text/text.js +7 -6
  601. package/dist/collection/components/textarea/textarea.ionic.css +945 -0
  602. package/dist/collection/components/textarea/textarea.ios.css +301 -155
  603. package/dist/collection/components/textarea/textarea.js +216 -27
  604. package/dist/collection/components/textarea/textarea.md.css +315 -156
  605. package/dist/collection/components/thumbnail/thumbnail.css +6 -0
  606. package/dist/collection/components/thumbnail/thumbnail.js +9 -2
  607. package/dist/collection/components/title/title.ionic.css +127 -0
  608. package/dist/collection/components/title/title.ios.css +32 -4
  609. package/dist/collection/components/title/title.js +13 -7
  610. package/dist/collection/components/title/title.md.css +39 -4
  611. package/dist/collection/components/toast/animations/utils.js +1 -1
  612. package/dist/collection/components/toast/toast.ionic.css +394 -0
  613. package/dist/collection/components/toast/toast.ios.css +84 -45
  614. package/dist/collection/components/toast/toast.js +79 -13
  615. package/dist/collection/components/toast/toast.md.css +84 -45
  616. package/dist/collection/components/toggle/toggle.ionic.css +512 -0
  617. package/dist/collection/components/toggle/toggle.ios.css +247 -127
  618. package/dist/collection/components/toggle/toggle.js +72 -18
  619. package/dist/collection/components/toggle/toggle.md.css +245 -127
  620. package/dist/collection/components/toolbar/test/image.svg +1 -0
  621. package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
  622. package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
  623. package/dist/collection/components/toolbar/toolbar.js +216 -14
  624. package/dist/collection/components/toolbar/toolbar.md.css +90 -47
  625. package/dist/collection/global/ionic-global.js +239 -13
  626. package/dist/collection/utils/css-value-validation.js +39 -0
  627. package/dist/collection/utils/focus-trap.js +13 -2
  628. package/dist/collection/utils/focus-visible.js +22 -0
  629. package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
  630. package/dist/collection/utils/forms/index.js +1 -0
  631. package/dist/collection/utils/forms/validity.js +31 -0
  632. package/dist/collection/utils/framework-delegate.js +3 -1
  633. package/dist/collection/utils/hardware-back-button.js +15 -0
  634. package/dist/collection/utils/helpers.js +70 -3
  635. package/dist/collection/utils/keyboard/keyboard-controller.js +3 -1
  636. package/dist/collection/utils/media.js +1 -0
  637. package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
  638. package/dist/collection/utils/menu-controller/animations/push.js +2 -1
  639. package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
  640. package/dist/collection/utils/overlay-control-label.js +13 -11
  641. package/dist/collection/utils/overlays.js +287 -8
  642. package/dist/collection/utils/scroll-hide-controller.js +178 -0
  643. package/dist/collection/utils/test/playwright/drag-element.js +32 -9
  644. package/dist/collection/utils/test/playwright/generator.js +48 -23
  645. package/dist/collection/utils/test/playwright/page/utils/goto.js +10 -1
  646. package/dist/collection/utils/test/playwright/page/utils/set-content.js +26 -3
  647. package/dist/collection/utils/theme.js +25 -1
  648. package/dist/collection/utils/transition/ios.transition.js +1 -0
  649. package/dist/docs.json +8849 -288
  650. package/dist/esm/{animation-BFNVlYum.js → animation-DXpoXT3G.js} +2 -2
  651. package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-gnMsODWu.js} +1 -1
  652. package/dist/esm/{button-active-BfOvDr3b.js → button-active-DtDlu9-d.js} +2 -2
  653. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CMyaZHxy.js} +1 -1
  654. package/dist/esm/caret-down-D1t981Ih.js +6 -0
  655. package/dist/esm/caret-left-fIOYmaqA.js +6 -0
  656. package/dist/esm/caret-right-BYSs-jZz.js +6 -0
  657. package/dist/esm/clear-button-press-controller-CWOPHFBc.js +43 -0
  658. package/dist/{cjs/focus-visible-CCvKiLh3.js → esm/focus-visible-vXpMhGrs.js} +23 -3
  659. package/dist/esm/{format-DDFE9jM5.js → format-DHkUcwuW.js} +1 -1
  660. package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-DUQ69ajj.js} +4 -2
  661. package/dist/esm/{haptic-Cq4UAeka.js → haptic-Dal3yCq6.js} +1 -1
  662. package/dist/esm/{helpers-BSmc0nst.js → helpers-DTqW6MzS.js} +71 -5
  663. package/dist/esm/{index-D76bbuoi.js → index-B6qBfx1b.js} +1 -1
  664. package/dist/esm/{index-BvabGprD.js → index-BqQ15K9a.js} +2 -1
  665. package/dist/esm/{index-BuPaALjU.js → index-C2QkTAgc.js} +11 -11
  666. package/dist/esm/{index-C1b9CLFg.js → index-CpKLzrYn.js} +2 -2
  667. package/dist/esm/{index-DnA_7Bnx.js → index-D76uuG8P.js} +4 -4
  668. package/dist/esm/{index-CJln0gS3.js → index-D_YUqPZN.js} +4 -3
  669. package/dist/esm/{index-C23AVPx9.js → index-jsOqXOKf.js} +53 -4
  670. package/dist/esm/index.js +13 -14
  671. package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-DgFi_b6v.js} +7 -6
  672. package/dist/esm/{input.utils-rqoH22pW.js → input.utils-BV974hyf.js} +1 -1
  673. package/dist/esm/ion-accordion_2.entry.js +61 -29
  674. package/dist/esm/ion-action-sheet.entry.js +26 -24
  675. package/dist/esm/ion-alert.entry.js +33 -31
  676. package/dist/esm/ion-app_8.entry.js +453 -194
  677. package/dist/esm/ion-avatar_3.entry.js +123 -13
  678. package/dist/esm/ion-back-button.entry.js +31 -22
  679. package/dist/esm/ion-backdrop.entry.js +10 -7
  680. package/dist/esm/ion-breadcrumb_2.entry.js +54 -18
  681. package/dist/esm/ion-button_2.entry.js +59 -22
  682. package/dist/esm/ion-card_5.entry.js +55 -33
  683. package/dist/esm/ion-checkbox.entry.js +34 -17
  684. package/dist/esm/ion-chip.entry.js +50 -9
  685. package/dist/esm/ion-col_3.entry.js +56 -62
  686. package/dist/esm/ion-datetime-button.entry.js +13 -9
  687. package/dist/esm/ion-datetime.entry.js +109 -34
  688. package/dist/esm/ion-divider.entry.js +49 -0
  689. package/dist/esm/ion-fab_3.entry.js +44 -28
  690. package/dist/esm/ion-gallery-item.entry.js +56 -0
  691. package/dist/esm/ion-gallery.entry.js +605 -0
  692. package/dist/esm/ion-img.entry.js +8 -4
  693. package/dist/esm/ion-infinite-scroll_2.entry.js +90 -16
  694. package/dist/esm/ion-input-otp.entry.js +73 -9
  695. package/dist/esm/ion-input-password-toggle.entry.js +53 -14
  696. package/dist/esm/ion-input.entry.js +158 -39
  697. package/dist/esm/ion-item-option_3.entry.js +465 -52
  698. package/dist/esm/ion-item_8.entry.js +121 -50
  699. package/dist/esm/ion-loading.entry.js +21 -19
  700. package/dist/esm/ion-menu_3.entry.js +47 -29
  701. package/dist/esm/ion-modal.entry.js +217 -92
  702. package/dist/esm/ion-nav_2.entry.js +13 -10
  703. package/dist/esm/ion-picker-column-option.entry.js +12 -8
  704. package/dist/esm/ion-picker-column.entry.js +13 -13
  705. package/dist/esm/ion-picker.entry.js +10 -6
  706. package/dist/esm/ion-popover.entry.js +22 -20
  707. package/dist/esm/ion-progress-bar.entry.js +27 -9
  708. package/dist/esm/ion-radio_2.entry.js +36 -18
  709. package/dist/esm/ion-range.entry.js +20 -13
  710. package/dist/esm/ion-refresher_2.entry.js +39 -21
  711. package/dist/esm/ion-reorder_2.entry.js +38 -14
  712. package/dist/esm/ion-ripple-effect.entry.js +15 -7
  713. package/dist/esm/ion-route_4.entry.js +11 -10
  714. package/dist/esm/ion-searchbar.entry.js +146 -32
  715. package/dist/esm/ion-segment-content.entry.js +2 -2
  716. package/dist/esm/ion-segment-view.entry.js +13 -3
  717. package/dist/esm/ion-segment_2.entry.js +23 -16
  718. package/dist/esm/ion-select-modal.entry.js +51 -26
  719. package/dist/esm/ion-select_3.entry.js +217 -78
  720. package/dist/esm/ion-spinner.entry.js +30 -8
  721. package/dist/esm/ion-split-pane.entry.js +13 -9
  722. package/dist/esm/ion-tab-bar_2.entry.js +148 -27
  723. package/dist/esm/ion-tab_2.entry.js +8 -7
  724. package/dist/esm/ion-text.entry.js +7 -7
  725. package/dist/esm/ion-textarea.entry.js +191 -26
  726. package/dist/esm/ion-toast.entry.js +47 -21
  727. package/dist/esm/ion-toggle.entry.js +82 -26
  728. package/dist/esm/ionic-global-oK2heABF.js +511 -0
  729. package/dist/esm/ionic.js +5 -5
  730. package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-D6rsx0aJ.js} +7 -5
  731. package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-CAlufDbv.js} +1 -1
  732. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-Dzp50ozz.js} +1 -1
  733. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-YBye__Ay.js} +4 -3
  734. package/dist/esm/list-Dhi5xtNS.js +6 -0
  735. package/dist/esm/loader.js +5 -5
  736. package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-0y4So3tu.js} +6 -5
  737. package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
  738. package/dist/esm/{overlays-DKE0DgvE.js → overlays-CLlfG_qy.js} +303 -15
  739. package/dist/esm/scroll-hide-controller-BUZm0jSI.js +342 -0
  740. package/dist/esm/{select-option-render-CRP_teb1.js → select-option-render-DICJMeLf.js} +2 -2
  741. package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-C5Vj7Od7.js} +2 -2
  742. package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-VmNhEOZr.js} +4 -3
  743. package/dist/esm/{swipe-back-B2CmabKY.js → swipe-back-BHHiqew-.js} +3 -2
  744. package/dist/esm/{theme-byZM6qHV.js → theme-BUF_V-Kg.js} +25 -1
  745. package/dist/esm/validity-NcQUGze-.js +48 -0
  746. package/dist/esm/x-BDqjX7Z_.js +6 -0
  747. package/dist/html.html-data.json +2631 -150
  748. package/dist/ionic/index.esm.js +1 -1
  749. package/dist/ionic/ionic.esm.js +1 -1
  750. package/dist/ionic/p-04d96dad.entry.js +4 -0
  751. package/dist/ionic/p-08f20edc.entry.js +4 -0
  752. package/dist/ionic/p-0a924e6a.entry.js +4 -0
  753. package/dist/ionic/p-0f268972.entry.js +4 -0
  754. package/dist/ionic/p-18c6af89.entry.js +4 -0
  755. package/dist/ionic/p-1cc2a196.entry.js +4 -0
  756. package/dist/ionic/p-201f484e.entry.js +4 -0
  757. package/dist/ionic/p-26efcc45.entry.js +4 -0
  758. package/dist/ionic/p-2c3704b9.entry.js +4 -0
  759. package/dist/ionic/p-2da21af7.entry.js +4 -0
  760. package/dist/ionic/p-2e3acd77.entry.js +4 -0
  761. package/dist/ionic/p-2fc1521f.entry.js +4 -0
  762. package/dist/ionic/p-30c4458b.entry.js +4 -0
  763. package/dist/ionic/p-32be916d.entry.js +4 -0
  764. package/dist/ionic/p-384fb50d.entry.js +4 -0
  765. package/dist/ionic/p-3bb43e22.entry.js +4 -0
  766. package/dist/ionic/p-46709a42.entry.js +4 -0
  767. package/dist/ionic/p-4QzQhqmw.js +4 -0
  768. package/dist/ionic/p-5217eb00.entry.js +4 -0
  769. package/dist/ionic/p-55e13406.entry.js +4 -0
  770. package/dist/ionic/p-6b23289a.entry.js +4 -0
  771. package/dist/ionic/p-73309d35.entry.js +4 -0
  772. package/dist/ionic/p-74ab5f49.entry.js +4 -0
  773. package/dist/ionic/p-7d2f3242.entry.js +4 -0
  774. package/dist/ionic/p-7e28cc53.entry.js +4 -0
  775. package/dist/ionic/p-83d13d56.entry.js +4 -0
  776. package/dist/ionic/p-84b5eafe.entry.js +4 -0
  777. package/dist/ionic/p-854b95f9.entry.js +4 -0
  778. package/dist/ionic/p-886236f0.entry.js +4 -0
  779. package/dist/ionic/p-8NLG9fne.js +4 -0
  780. package/dist/ionic/p-8a7bf6c7.entry.js +4 -0
  781. package/dist/ionic/p-8c446282.entry.js +4 -0
  782. package/dist/ionic/p-8dcd18cf.entry.js +4 -0
  783. package/dist/ionic/p-924182fc.entry.js +4 -0
  784. package/dist/ionic/p-92f21db6.entry.js +4 -0
  785. package/dist/ionic/p-945ed823.entry.js +4 -0
  786. package/dist/ionic/p-9ca59419.entry.js +4 -0
  787. package/dist/ionic/p-B3L20Lav.js +4 -0
  788. package/dist/ionic/p-B6aOaV_m.js +4 -0
  789. package/dist/ionic/p-BDqjX7Z_.js +4 -0
  790. package/dist/ionic/p-BUF_V-Kg.js +4 -0
  791. package/dist/ionic/{p-D7jHfs0Y.js → p-BUvFnCVr.js} +1 -1
  792. package/dist/ionic/{p-Bd72UYI2.js → p-BVv5nqxG.js} +1 -1
  793. package/dist/ionic/p-BYSs-jZz.js +4 -0
  794. package/dist/ionic/p-BdqFx5km.js +4 -0
  795. package/dist/ionic/p-BnRvdoDY.js +4 -0
  796. package/{components/p-DiuOa1vw.js → dist/ionic/p-BooNJoKP.js} +1 -1
  797. package/dist/ionic/p-BqQ15K9a.js +4 -0
  798. package/{components/p-6ZLn6K5e.js → dist/ionic/p-C0V6sqau.js} +1 -1
  799. package/dist/ionic/p-CD4Mty1V.js +4 -0
  800. package/dist/ionic/p-CE00jiiW.js +4 -0
  801. package/dist/ionic/p-CLVGlNRl.js +4 -0
  802. package/dist/ionic/p-CODBQrPj.js +4 -0
  803. package/dist/ionic/p-CP5-2cXj.js +4 -0
  804. package/dist/ionic/p-CRbXZpID.js +4 -0
  805. package/dist/ionic/p-CZ-V4tB0.js +4 -0
  806. package/dist/ionic/p-Cs5kzNVE.js +4 -0
  807. package/dist/ionic/p-CsmXfOZY.js +4 -0
  808. package/dist/ionic/p-CyXL8sF6.js +4 -0
  809. package/dist/ionic/{p-T71k3C35.js → p-D1ej8PMz.js} +1 -1
  810. package/dist/ionic/p-D1t981Ih.js +4 -0
  811. package/{components/p-DxhHlJln.js → dist/ionic/p-D8HyO4-0.js} +1 -1
  812. package/dist/ionic/p-DAFzmzMJ.js +4 -0
  813. package/{components/p-BgkOsq-d.js → dist/ionic/p-DFZcZ5hU.js} +1 -1
  814. package/dist/ionic/p-Dhi5xtNS.js +4 -0
  815. package/dist/ionic/{p-CkxVYPtX.js → p-DpE9LgN6.js} +1 -1
  816. package/dist/ionic/p-DvXo4Ng9.js +4 -0
  817. package/{components/p-C4VpVfrJ.js → dist/ionic/p-Izgzy5eB.js} +1 -1
  818. package/dist/ionic/p-NcQUGze-.js +4 -0
  819. package/dist/ionic/p-ac4ea8db.entry.js +4 -0
  820. package/dist/ionic/p-b10dc124.entry.js +4 -0
  821. package/dist/ionic/p-b411d90d.entry.js +4 -0
  822. package/dist/ionic/p-b7ce4a50.entry.js +4 -0
  823. package/dist/ionic/p-b83de44e.entry.js +4 -0
  824. package/dist/ionic/p-c7035f3f.entry.js +4 -0
  825. package/dist/ionic/p-c91fc9d4.entry.js +4 -0
  826. package/dist/ionic/p-cd05447f.entry.js +4 -0
  827. package/dist/ionic/p-cd4791d5.entry.js +4 -0
  828. package/dist/ionic/p-ce1ab874.entry.js +4 -0
  829. package/dist/ionic/p-d0368d31.entry.js +4 -0
  830. package/dist/ionic/p-d1d3048b.entry.js +4 -0
  831. package/dist/ionic/p-db011674.entry.js +4 -0
  832. package/dist/ionic/p-dc000de0.entry.js +4 -0
  833. package/dist/ionic/p-e939adf3.entry.js +4 -0
  834. package/dist/ionic/p-e9480e7f.entry.js +4 -0
  835. package/dist/ionic/p-e9fdff49.entry.js +4 -0
  836. package/dist/ionic/p-f29b784f.entry.js +4 -0
  837. package/dist/ionic/p-f82b13a6.entry.js +4 -0
  838. package/dist/ionic/p-fIOYmaqA.js +4 -0
  839. package/dist/ionic/p-fdb940e3.entry.js +4 -0
  840. package/dist/ionic/p-jsOqXOKf.js +6 -0
  841. package/dist/ionic/p-psKsVoNI.js +4 -0
  842. package/dist/ionic/p-si7ttuvL.js +4 -0
  843. package/dist/ionic/p-vXpMhGrs.js +4 -0
  844. package/dist/types/components/accordion/accordion.d.ts +6 -3
  845. package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
  846. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
  847. package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
  848. package/dist/types/components/alert/alert-interface.d.ts +3 -7
  849. package/dist/types/components/alert/alert.d.ts +3 -2
  850. package/dist/types/components/app/app.d.ts +4 -5
  851. package/dist/types/components/avatar/avatar.d.ts +32 -0
  852. package/dist/types/components/back-button/back-button.d.ts +2 -1
  853. package/dist/types/components/backdrop/backdrop.d.ts +4 -0
  854. package/dist/types/components/badge/badge.d.ts +34 -1
  855. package/dist/types/components/breadcrumb/breadcrumb.d.ts +4 -1
  856. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
  857. package/dist/types/components/button/button.d.ts +23 -8
  858. package/dist/types/components/buttons/buttons.d.ts +5 -1
  859. package/dist/types/components/card/card.d.ts +8 -1
  860. package/dist/types/components/card-content/card-content.d.ts +2 -1
  861. package/dist/types/components/card-header/card-header.d.ts +3 -2
  862. package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
  863. package/dist/types/components/card-title/card-title.d.ts +2 -1
  864. package/dist/types/components/checkbox/checkbox.d.ts +14 -4
  865. package/dist/types/components/chip/chip.d.ts +26 -1
  866. package/dist/types/components/col/col.d.ts +52 -5
  867. package/dist/types/components/content/content.d.ts +3 -0
  868. package/dist/types/components/datetime/datetime.d.ts +26 -1
  869. package/dist/types/components/datetime/utils/data.d.ts +5 -5
  870. package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
  871. package/dist/types/components/divider/divider.d.ts +20 -0
  872. package/dist/types/components/fab/fab.d.ts +4 -0
  873. package/dist/types/components/fab-button/fab-button.d.ts +5 -3
  874. package/dist/types/components/fab-list/fab-list.d.ts +4 -0
  875. package/dist/types/components/footer/footer-interface.d.ts +1 -0
  876. package/dist/types/components/footer/footer.d.ts +20 -3
  877. package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
  878. package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
  879. package/dist/types/components/gallery/gallery.d.ts +218 -0
  880. package/dist/types/components/gallery/test/utils.d.ts +3 -0
  881. package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
  882. package/dist/types/components/grid/grid.d.ts +4 -0
  883. package/dist/types/components/header/header-interface.d.ts +1 -0
  884. package/dist/types/components/header/header.d.ts +26 -3
  885. package/dist/types/components/header/header.utils.d.ts +4 -5
  886. package/dist/types/components/img/img.d.ts +2 -0
  887. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
  888. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
  889. package/dist/types/components/input/input.d.ts +48 -5
  890. package/dist/types/components/input-otp/input-otp.d.ts +37 -0
  891. package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +2 -0
  892. package/dist/types/components/item/item.d.ts +11 -4
  893. package/dist/types/components/item-divider/item-divider.d.ts +2 -1
  894. package/dist/types/components/item-group/item-group.d.ts +4 -0
  895. package/dist/types/components/item-option/item-option.d.ts +18 -1
  896. package/dist/types/components/item-options/item-options.d.ts +4 -0
  897. package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
  898. package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
  899. package/dist/types/components/label/label.d.ts +2 -1
  900. package/dist/types/components/list/list.d.ts +15 -1
  901. package/dist/types/components/list-header/list-header.d.ts +2 -1
  902. package/dist/types/components/loading/loading-interface.d.ts +2 -7
  903. package/dist/types/components/loading/loading.d.ts +3 -2
  904. package/dist/types/components/menu/menu.d.ts +3 -0
  905. package/dist/types/components/menu-button/menu-button.d.ts +3 -1
  906. package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
  907. package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
  908. package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
  909. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  910. package/dist/types/components/modal/modal-interface.d.ts +4 -7
  911. package/dist/types/components/modal/modal.d.ts +11 -1
  912. package/dist/types/components/nav/nav-interface.d.ts +9 -1
  913. package/dist/types/components/nav/nav.d.ts +5 -1
  914. package/dist/types/components/nav-link/nav-link.d.ts +4 -0
  915. package/dist/types/components/note/note.d.ts +2 -1
  916. package/dist/types/components/picker/picker.d.ts +2 -1
  917. package/dist/types/components/picker-column/picker-column.d.ts +2 -1
  918. package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
  919. package/dist/types/components/popover/popover-interface.d.ts +3 -6
  920. package/dist/types/components/popover/popover.d.ts +6 -5
  921. package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
  922. package/dist/types/components/radio/radio.d.ts +2 -1
  923. package/dist/types/components/radio-group/radio-group.d.ts +12 -0
  924. package/dist/types/components/range/range.d.ts +2 -1
  925. package/dist/types/components/refresher/refresher.d.ts +2 -1
  926. package/dist/types/components/refresher-content/refresher-content.d.ts +4 -0
  927. package/dist/types/components/reorder/reorder.d.ts +9 -0
  928. package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
  929. package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
  930. package/dist/types/components/route/route.d.ts +4 -0
  931. package/dist/types/components/router/router.d.ts +4 -0
  932. package/dist/types/components/router-link/router-link.d.ts +4 -0
  933. package/dist/types/components/router-outlet/router-outlet.d.ts +4 -1
  934. package/dist/types/components/row/row.d.ts +4 -0
  935. package/dist/types/components/searchbar/searchbar.d.ts +56 -10
  936. package/dist/types/components/segment/segment.d.ts +2 -1
  937. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  938. package/dist/types/components/select/select.d.ts +64 -15
  939. package/dist/types/components/select-modal/select-modal.d.ts +8 -0
  940. package/dist/types/components/select-option/select-option.d.ts +7 -4
  941. package/dist/types/components/select-popover/select-popover.d.ts +3 -0
  942. package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
  943. package/dist/types/components/spinner/spinner.d.ts +15 -0
  944. package/dist/types/components/split-pane/split-pane.d.ts +4 -0
  945. package/dist/types/components/tab/tab.d.ts +4 -0
  946. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
  947. package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
  948. package/dist/types/components/tab-button/tab-button.d.ts +12 -1
  949. package/dist/types/components/tabs/tabs.d.ts +3 -0
  950. package/dist/types/components/text/text.d.ts +2 -1
  951. package/dist/types/components/textarea/textarea.d.ts +74 -4
  952. package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
  953. package/dist/types/components/title/title.d.ts +4 -0
  954. package/dist/types/components/toast/animations/utils.d.ts +2 -2
  955. package/dist/types/components/toast/toast-interface.d.ts +3 -7
  956. package/dist/types/components/toast/toast.d.ts +19 -2
  957. package/dist/types/components/toggle/toggle.d.ts +15 -1
  958. package/dist/types/components/toolbar/toolbar.d.ts +43 -3
  959. package/dist/types/components.d.ts +1839 -211
  960. package/dist/types/global/ionic-global.d.ts +28 -2
  961. package/dist/types/interface.d.ts +3 -0
  962. package/dist/types/utils/config.d.ts +106 -2
  963. package/dist/types/utils/css-value-validation.d.ts +21 -0
  964. package/dist/types/utils/focus-trap.d.ts +1 -1
  965. package/dist/types/utils/focus-visible.d.ts +13 -0
  966. package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
  967. package/dist/types/utils/forms/index.d.ts +1 -0
  968. package/dist/types/utils/forms/validity.d.ts +7 -0
  969. package/dist/types/utils/helpers.d.ts +22 -0
  970. package/dist/types/utils/overlay-control-label.d.ts +11 -9
  971. package/dist/types/utils/overlays-interface.d.ts +31 -1
  972. package/dist/types/utils/overlays.d.ts +1 -1
  973. package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
  974. package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
  975. package/dist/types/utils/test/playwright/generator.d.ts +31 -2
  976. package/dist/types/utils/theme.d.ts +9 -0
  977. package/hydrate/index.js +5448 -1219
  978. package/hydrate/index.mjs +5448 -1219
  979. package/package.json +7 -3
  980. package/components/p-1sJ0ZDPe.js +0 -4
  981. package/components/p-5ldEpNdG.js +0 -4
  982. package/components/p-B1_TL6RQ.js +0 -4
  983. package/components/p-B4lxwJ8N.js +0 -4
  984. package/components/p-BF48Oc0v.js +0 -4
  985. package/components/p-BJr2B5hZ.js +0 -4
  986. package/components/p-BNIsryb2.js +0 -4
  987. package/components/p-BSQPZ79H.js +0 -4
  988. package/components/p-BU8a2IhR.js +0 -4
  989. package/components/p-BW_SlU2D.js +0 -4
  990. package/components/p-BWoa-cki.js +0 -4
  991. package/components/p-BYJRZKHa.js +0 -4
  992. package/components/p-BhamHSw3.js +0 -4
  993. package/components/p-Bi-it1EH.js +0 -4
  994. package/components/p-BmVRXR1y.js +0 -4
  995. package/components/p-C-NbvXu4.js +0 -4
  996. package/components/p-C09TXohi.js +0 -4
  997. package/components/p-C8Ck7_Eo.js +0 -4
  998. package/components/p-CG_zZq_I.js +0 -4
  999. package/components/p-CIGNaXM1.js +0 -4
  1000. package/components/p-CJgnoKcN.js +0 -4
  1001. package/components/p-CMRYD_yR.js +0 -4
  1002. package/components/p-CNLioZ3B.js +0 -4
  1003. package/components/p-COO0eJOA.js +0 -4
  1004. package/components/p-CWAks_S_.js +0 -4
  1005. package/components/p-Cd1WaN-0.js +0 -4
  1006. package/components/p-CqbGBmqb.js +0 -4
  1007. package/components/p-CrAKlX71.js +0 -4
  1008. package/components/p-Ctop2IWW.js +0 -4
  1009. package/components/p-D5w_FlVa.js +0 -4
  1010. package/components/p-D7-vHX0A.js +0 -4
  1011. package/components/p-D7wDJdFn.js +0 -4
  1012. package/components/p-DFLJvuRK.js +0 -4
  1013. package/components/p-DJztqcrH.js +0 -4
  1014. package/components/p-DL13ieTa.js +0 -4
  1015. package/components/p-DMBiAyOR.js +0 -4
  1016. package/components/p-DZRZic9C.js +0 -4
  1017. package/components/p-DnBNYc7u.js +0 -4
  1018. package/components/p-GGbIHyEF.js +0 -4
  1019. package/components/p-Hp8t4RMX.js +0 -4
  1020. package/components/p-LpMHEu3v.js +0 -4
  1021. package/components/p-M34T2gyX.js +0 -4
  1022. package/components/p-TWw4e4sO.js +0 -4
  1023. package/components/p-YjMkHuvH.js +0 -4
  1024. package/components/p-ZjP4CjeZ.js +0 -4
  1025. package/components/p-byZM6qHV.js +0 -4
  1026. package/components/p-cEN43Ahr.js +0 -4
  1027. package/dist/cjs/hardware-back-button-Bu4Dzw8l.js +0 -121
  1028. package/dist/cjs/index-DkNv4J_i.js +0 -10
  1029. package/dist/cjs/ionic-global-CYJNT-2P.js +0 -156
  1030. package/dist/cjs/keyboard-controller-PtZoN2GS.js +0 -167
  1031. package/dist/cjs/validity-BpS37YFM.js +0 -19
  1032. package/dist/esm/hardware-back-button-DmkiRgOT.js +0 -115
  1033. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  1034. package/dist/esm/ionic-global-ZXjCXKH0.js +0 -151
  1035. package/dist/esm/keyboard-controller-DEwoa1ev.js +0 -165
  1036. package/dist/esm/validity-DJztqcrH.js +0 -17
  1037. package/dist/ionic/p-099b7f9f.entry.js +0 -4
  1038. package/dist/ionic/p-171a2278.entry.js +0 -4
  1039. package/dist/ionic/p-191a651e.entry.js +0 -4
  1040. package/dist/ionic/p-1f24cb24.entry.js +0 -4
  1041. package/dist/ionic/p-271c3640.entry.js +0 -4
  1042. package/dist/ionic/p-2ea4bb36.entry.js +0 -4
  1043. package/dist/ionic/p-338a02e0.entry.js +0 -4
  1044. package/dist/ionic/p-354d38d3.entry.js +0 -4
  1045. package/dist/ionic/p-38b9375b.entry.js +0 -4
  1046. package/dist/ionic/p-3bba83ee.entry.js +0 -4
  1047. package/dist/ionic/p-3e01c744.entry.js +0 -4
  1048. package/dist/ionic/p-458715a9.entry.js +0 -4
  1049. package/dist/ionic/p-4712a8a9.entry.js +0 -4
  1050. package/dist/ionic/p-4c3e50f8.entry.js +0 -4
  1051. package/dist/ionic/p-54cbb0a7.entry.js +0 -4
  1052. package/dist/ionic/p-561af487.entry.js +0 -4
  1053. package/dist/ionic/p-5906ea6f.entry.js +0 -4
  1054. package/dist/ionic/p-5cc09b40.entry.js +0 -4
  1055. package/dist/ionic/p-5d9094ac.entry.js +0 -4
  1056. package/dist/ionic/p-612ea3b1.entry.js +0 -4
  1057. package/dist/ionic/p-68cc89a6.entry.js +0 -4
  1058. package/dist/ionic/p-6e386853.entry.js +0 -4
  1059. package/dist/ionic/p-77c96e08.entry.js +0 -4
  1060. package/dist/ionic/p-7bfeccb3.entry.js +0 -4
  1061. package/dist/ionic/p-7e394cc3.entry.js +0 -4
  1062. package/dist/ionic/p-7fbb3319.entry.js +0 -4
  1063. package/dist/ionic/p-803059b6.entry.js +0 -4
  1064. package/dist/ionic/p-85599fe3.entry.js +0 -4
  1065. package/dist/ionic/p-8b80d9f9.entry.js +0 -4
  1066. package/dist/ionic/p-90f50a65.entry.js +0 -4
  1067. package/dist/ionic/p-9595e305.entry.js +0 -4
  1068. package/dist/ionic/p-9c5f2691.entry.js +0 -4
  1069. package/dist/ionic/p-9ee9c5b6.entry.js +0 -4
  1070. package/dist/ionic/p-BMPN55of.js +0 -4
  1071. package/dist/ionic/p-BMiZX1LT.js +0 -4
  1072. package/dist/ionic/p-BSQPZ79H.js +0 -4
  1073. package/dist/ionic/p-BY6BzzPF.js +0 -4
  1074. package/dist/ionic/p-BgOvhHy_.js +0 -4
  1075. package/dist/ionic/p-BhamHSw3.js +0 -4
  1076. package/dist/ionic/p-BijjLYjT.js +0 -4
  1077. package/dist/ionic/p-BmVRXR1y.js +0 -4
  1078. package/dist/ionic/p-BvabGprD.js +0 -4
  1079. package/dist/ionic/p-C23AVPx9.js +0 -6
  1080. package/dist/ionic/p-CER8qW8Y.js +0 -4
  1081. package/dist/ionic/p-CFuOr1Tu.js +0 -4
  1082. package/dist/ionic/p-CIGNaXM1.js +0 -4
  1083. package/dist/ionic/p-CJv-wOAd.js +0 -4
  1084. package/dist/ionic/p-CMZYmFb4.js +0 -4
  1085. package/dist/ionic/p-CmXuiRT6.js +0 -4
  1086. package/dist/ionic/p-D5t_-oMk.js +0 -4
  1087. package/dist/ionic/p-D6rHcCvc.js +0 -4
  1088. package/dist/ionic/p-DJztqcrH.js +0 -4
  1089. package/dist/ionic/p-DLM95R4x.js +0 -4
  1090. package/dist/ionic/p-DYUjHcuH.js +0 -4
  1091. package/dist/ionic/p-D_gb-kdd.js +0 -4
  1092. package/dist/ionic/p-DajLgJ4d.js +0 -4
  1093. package/dist/ionic/p-Do3zTvCA.js +0 -4
  1094. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  1095. package/dist/ionic/p-a8df96c8.entry.js +0 -4
  1096. package/dist/ionic/p-a8ff2489.entry.js +0 -4
  1097. package/dist/ionic/p-aff52029.entry.js +0 -4
  1098. package/dist/ionic/p-b3532b8d.entry.js +0 -4
  1099. package/dist/ionic/p-b9b4e85d.entry.js +0 -4
  1100. package/dist/ionic/p-byZM6qHV.js +0 -4
  1101. package/dist/ionic/p-ca1b8865.entry.js +0 -4
  1102. package/dist/ionic/p-cc4320d3.entry.js +0 -4
  1103. package/dist/ionic/p-d526798a.entry.js +0 -4
  1104. package/dist/ionic/p-d6755739.entry.js +0 -4
  1105. package/dist/ionic/p-d8c138d9.entry.js +0 -4
  1106. package/dist/ionic/p-dd01be0a.entry.js +0 -4
  1107. package/dist/ionic/p-e7f4b1e0.entry.js +0 -4
  1108. package/dist/ionic/p-ec00fd0d.entry.js +0 -4
  1109. package/dist/ionic/p-ee09ac9d.entry.js +0 -4
  1110. package/dist/ionic/p-efc0cf82.entry.js +0 -4
  1111. package/dist/ionic/p-f0fb23c1.entry.js +0 -4
  1112. package/dist/ionic/p-f83b3e0c.entry.js +0 -4
  1113. package/dist/ionic/p-fa50d493.entry.js +0 -4
  1114. package/dist/ionic/p-fe9ed9bd.entry.js +0 -4
  1115. package/dist/ionic/p-zWf7R2xV.js +0 -4
  1116. /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
@@ -1,3 +1,173 @@
1
+ ion-header {
2
+ display: block;
3
+ position: relative;
4
+ order: -1;
5
+ width: 100%;
6
+ }
7
+
8
+ ion-header ion-toolbar:first-of-type {
9
+ padding-top: var(--ion-safe-area-top, 0);
10
+ }
11
+
12
+ .header-collapse-fade ion-toolbar {
13
+ --opacity-scale: inherit;
14
+ }
15
+
16
+ /**
17
+ * Override styles applied during the page transition to prevent
18
+ * header flickering.
19
+ */
20
+ .header-collapse-fade.header-transitioning ion-toolbar {
21
+ --background: transparent;
22
+ --border-style: none;
23
+ }
24
+
25
+ .header-collapse-condense {
26
+ z-index: 9;
27
+ }
28
+
29
+ .header-collapse-condense ion-toolbar {
30
+ position: sticky;
31
+ top: 0;
32
+ }
33
+
34
+ .header-collapse-condense ion-toolbar:first-of-type {
35
+ /**
36
+ * The toolbar that contains the collapsible
37
+ * large title should not have safe area padding applied.
38
+ */
39
+ padding-top: 0px;
40
+ z-index: 1;
41
+ }
42
+
43
+ /**
44
+ * Large title toolbar should just use the content background
45
+ * since it needs to blend in with the header above it.
46
+ */
47
+ .header-collapse-condense ion-toolbar {
48
+ z-index: 0;
49
+ }
50
+
51
+ .header-collapse-condense ion-toolbar:last-of-type {
52
+ --border-width: 0px;
53
+ }
54
+
55
+ .header-collapse-condense ion-toolbar ion-searchbar {
56
+ padding-top: 0px;
57
+ padding-bottom: 13px;
58
+ }
59
+
60
+ .header-collapse-main {
61
+ --opacity-scale: 1;
62
+ }
63
+
64
+ .header-collapse-main ion-toolbar {
65
+ --opacity-scale: inherit;
66
+ }
67
+
68
+ .header-collapse-main ion-toolbar.in-toolbar ion-title,
69
+ .header-collapse-main ion-toolbar.in-toolbar ion-buttons {
70
+ transition: all 0.2s ease-in-out;
71
+ }
72
+
73
+ /**
74
+ * Large title toolbar should just use the content background
75
+ * since it needs to blend in with the header above it.
76
+ */
77
+ .header-collapse-condense ion-toolbar,
78
+ .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
79
+ --background: var(--ion-background-color, #fff);
80
+ }
81
+
82
+ /**
83
+ * Override styles applied during the page transition to prevent
84
+ * header flickering.
85
+ */
86
+ .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
87
+ --border-style: none;
88
+ --opacity-scale: 1;
89
+ }
90
+
91
+ .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,
92
+ .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
93
+ opacity: 0;
94
+ pointer-events: none;
95
+ }
96
+
97
+ /**
98
+ * There is a bug in Safari where changing
99
+ * the opacity of an element in a scrollable container
100
+ * while rubber-banding causes the scroll position
101
+ * to jump to the top
102
+ */
103
+ .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,
104
+ .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
105
+ visibility: hidden;
106
+ }
107
+
108
+ /**
109
+ * The main header is only hidden once the collapsible large
110
+ * title is configured. As a result, if the main header loads
111
+ * before the collapsible large title is configured then the
112
+ * main header will be visible briefly before being hidden
113
+ * by the collapsible large title.
114
+ *
115
+ * The following selector ensures that any main header
116
+ * on a page with a collapsible large title is hidden
117
+ * before the collapsible large title is configured.
118
+ * Once the collapsible large title is configured the main
119
+ * header will have the ".header-collapse-main" class, and
120
+ * this selector will no longer apply.
121
+ *
122
+ * The :has(...) part of the selector ensures a couple things:
123
+ * 1. This will only apply within a page view since the content
124
+ * must be a subsequent-sibling of the header (~ ion-content).
125
+ * 2. This will only apply when that content has an active condense
126
+ * header (the .header-collapse-condense class).
127
+ *
128
+ * We use opacity: 0 to avoid a layout shift.
129
+ * We use the class (not the attribute) because the class is only
130
+ * added when the condense effect is valid (large title present).
131
+ * The attribute alone is not sufficient since it would match even
132
+ * when the effect is guarded (e.g. no large title).
133
+ */
134
+ ion-header:not(.header-collapse-main):has(~ ion-content ion-header.header-collapse-condense) {
135
+ opacity: 0;
136
+ }
137
+
138
+ /**
139
+ * The deprecated collapse="condense" prop is iOS-only.
140
+ * On non-iOS themes, the condense header should be hidden since
141
+ * the JS won't activate it. Uses a class instead of an attribute
142
+ * selector because collapse is not a reflected prop, and framework
143
+ * proxies (Angular/Vue) bind it as a property.
144
+ */
145
+ .header-collapse-condense-hidden {
146
+ display: none;
147
+ }
148
+
149
+ ion-header.header-scroll-effect-hide {
150
+ transition: transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);
151
+ }
152
+
153
+ ion-header.header-scroll-effect-hide.header-scroll-hidden {
154
+ transform: translateY(-100%);
155
+ transition: transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);
156
+ opacity: 0;
157
+ }
158
+
159
+ @media (prefers-reduced-motion: reduce) {
160
+ ion-header.header-scroll-effect-hide,
161
+ ion-header.header-scroll-effect-hide.header-scroll-hidden {
162
+ transition: none;
163
+ }
164
+ }
165
+ /**
166
+ * Convert a pixels given value into rem
167
+ *
168
+ * @param pixels - Value in pixels to be converted (i.e. px)
169
+ * @param context (optional) - Baseline value
170
+ */
1
171
  /**
2
172
  * Convert a font size to a dynamic font size.
3
173
  * Fonts that participate in Dynamic Type should use
@@ -54,17 +224,15 @@
54
224
  * }
55
225
  */
56
226
  ion-header {
57
- display: block;
58
- position: relative;
59
- order: -1;
60
- width: 100%;
61
227
  z-index: 10;
62
228
  }
63
229
 
64
- ion-header ion-toolbar:first-of-type {
65
- padding-top: var(--ion-safe-area-top, 0);
66
- }
67
-
230
+ /**
231
+ * Convert a pixels given value into rem
232
+ *
233
+ * @param pixels - Value in pixels to be converted (i.e. px)
234
+ * @param context (optional) - Baseline value
235
+ */
68
236
  /**
69
237
  * Convert a font size to a dynamic font size.
70
238
  * Fonts that participate in Dynamic Type should use
@@ -126,15 +294,15 @@ ion-header ion-toolbar:first-of-type {
126
294
 
127
295
  @supports (backdrop-filter: blur(0)) {
128
296
  .header-background {
129
- left: 0;
130
297
  right: 0;
298
+ left: 0;
131
299
  top: 0;
132
300
  bottom: 0;
133
301
  position: absolute;
134
302
  backdrop-filter: saturate(180%) blur(20px);
135
303
  }
136
304
  .header-translucent-ios ion-toolbar {
137
- --opacity: .8;
305
+ --opacity: 0.8;
138
306
  }
139
307
  /**
140
308
  * Disable the saturation otherwise it distorts the content
@@ -148,129 +316,6 @@ ion-header ion-toolbar:first-of-type {
148
316
  --border-width: 0;
149
317
  }
150
318
 
151
- .header-collapse-fade ion-toolbar {
152
- --opacity-scale: inherit;
153
- }
154
-
155
- /**
156
- * Override styles applied during the page transition to prevent
157
- * header flickering.
158
- */
159
- .header-collapse-fade.header-transitioning ion-toolbar {
160
- --background: transparent;
161
- --border-style: none;
162
- }
163
-
164
- .header-collapse-condense {
165
- z-index: 9;
166
- }
167
-
168
- .header-collapse-condense ion-toolbar {
169
- position: sticky;
170
- top: 0;
171
- }
172
-
173
- .header-collapse-condense ion-toolbar:first-of-type {
174
- /**
175
- * The toolbar that contains the collapsible
176
- * large title should not have safe area padding applied.
177
- */
178
- padding-top: 0px;
179
- z-index: 1;
180
- }
181
-
182
- /**
183
- * Large title toolbar should just use the content background
184
- * since it needs to blend in with the header above it.
185
- */
186
- .header-collapse-condense ion-toolbar {
187
- z-index: 0;
188
- }
189
-
190
319
  .header-collapse-condense ion-toolbar:last-of-type {
191
320
  --border-width: 0px;
192
- }
193
-
194
- .header-collapse-condense ion-toolbar ion-searchbar {
195
- padding-top: 0px;
196
- padding-bottom: 13px;
197
- }
198
-
199
- .header-collapse-main {
200
- --opacity-scale: 1;
201
- }
202
-
203
- .header-collapse-main ion-toolbar {
204
- --opacity-scale: inherit;
205
- }
206
-
207
- .header-collapse-main ion-toolbar.in-toolbar ion-title,
208
- .header-collapse-main ion-toolbar.in-toolbar ion-buttons {
209
- transition: all 0.2s ease-in-out;
210
- }
211
-
212
- /**
213
- * Large title toolbar should just use the content background
214
- * since it needs to blend in with the header above it.
215
- */
216
- .header-collapse-condense ion-toolbar,
217
- .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
218
- --background: var(--ion-background-color, #fff);
219
- }
220
-
221
- /**
222
- * Override styles applied during the page transition to prevent
223
- * header flickering.
224
- */
225
- .header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar {
226
- --border-style: none;
227
- --opacity-scale: 1;
228
- }
229
-
230
- .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,
231
- .header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
232
- opacity: 0;
233
- pointer-events: none;
234
- }
235
-
236
- /**
237
- * There is a bug in Safari where changing
238
- * the opacity of an element in a scrollable container
239
- * while rubber-banding causes the scroll position
240
- * to jump to the top
241
- */
242
- .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,
243
- .header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse {
244
- visibility: hidden;
245
- }
246
-
247
- /**
248
- * The main header is only hidden once the collapsible large
249
- * title is configured. As a result, if the main header loads
250
- * before the collapsible large title is configured then the
251
- * main header will be visible briefly before being hidden
252
- * by the collapsible large title.
253
- *
254
- * The following selector ensures that any main header
255
- * on a page with a collapsible large title is hidden
256
- * before the collapsible large title is configured.
257
- * Once the collapsible large title is configured the main
258
- * header will have the ".header-collapse-main" class, and
259
- * this selector will no longer apply.
260
- *
261
- * The :has(...) part of the selector ensures a couple things:
262
- * 1. This will only apply within a page view since the content
263
- * must be a subsequent-sibling of the header (~ ion-content).
264
- * 2. This will only apply when that content has a collapse header (ion-header[collapse="condense"])
265
- *
266
- * We use opacity: 0 to avoid a layout shift.
267
- * We target both the attribute and the class in the event that the attribute
268
- * is not reflected on the host in some frameworks.
269
- *
270
- * Both headers should be scoped to iOS mode otherwise an MD app that uses an
271
- * iOS header may cause other MD headers to be unexpectedly hidden.
272
- */
273
- ion-header.header-ios:not(.header-collapse-main):has(~ ion-content ion-header.header-ios[collapse=condense],
274
- ~ ion-content ion-header.header-ios.header-collapse-condense) {
275
- opacity: 0;
276
321
  }
@@ -4,26 +4,59 @@
4
4
  import { Host, h, writeTask } from "@stencil/core";
5
5
  import { findIonContent, getScrollElement, printIonContentErrorMsg } from "../../utils/content/index";
6
6
  import { inheritAriaAttributes } from "../../utils/helpers";
7
+ import { printIonWarning } from "../../utils/logging/index";
8
+ import { createScrollHideController } from "../../utils/scroll-hide-controller";
7
9
  import { hostContext } from "../../utils/theme";
8
- import { getIonMode } from "../../global/ionic-global";
10
+ import { config } from "../../global/config";
11
+ import { getIonTheme } from "../../global/ionic-global";
9
12
  import { cloneElement, createHeaderIndex, handleContentScroll, handleHeaderFade, handleToolbarIntersection, setHeaderActive, setToolbarBackgroundOpacity, getRoleType, } from "./header.utils";
10
13
  /**
11
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
14
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
15
+ * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
12
16
  */
13
17
  export class Header {
14
18
  constructor() {
15
19
  this.inheritedAttributes = {};
20
+ this.scrollHideCtrlPromise = null;
21
+ this.hasWarnedCollapse = false;
22
+ this.fadeCondenseSetupId = 0;
23
+ /**
24
+ * If `true`, the header will have a line at the bottom.
25
+ * TODO(ROU-10855): add support for this prop on ios/md themes
26
+ */
27
+ this.divider = false;
16
28
  /**
17
29
  * If `true`, the header will be translucent.
18
- * Only applies when the mode is `"ios"` and the device supports
30
+ * Only applies when the theme is `"ios"` or `"ionic"` and the device supports
19
31
  * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).
20
32
  *
21
33
  * Note: In order to scroll content behind the header, the `fullscreen`
22
34
  * attribute needs to be set on the content.
23
35
  */
24
36
  this.translucent = false;
37
+ this.setupScrollEffectHide = async (contentEl) => {
38
+ const setupPromise = createScrollHideController(contentEl, {
39
+ el: this.el,
40
+ cssVar: '--internal-header-hide-height',
41
+ hiddenClass: 'header-scroll-hidden',
42
+ contentPartnerClass: 'content-header-hide-scroll-partner',
43
+ contentHiddenClass: 'content-header-hide-scroll-hidden',
44
+ });
45
+ this.scrollHideCtrlPromise = setupPromise;
46
+ const controller = await setupPromise;
47
+ if (this.scrollHideCtrlPromise === setupPromise) {
48
+ this.scrollHideCtrlPromise = null;
49
+ controller.init();
50
+ this.scrollHideCtrl = controller;
51
+ }
52
+ };
25
53
  this.setupFadeHeader = async (contentEl, condenseHeader) => {
26
- const scrollEl = (this.scrollEl = await getScrollElement(contentEl));
54
+ const setupId = ++this.fadeCondenseSetupId;
55
+ const scrollEl = await getScrollElement(contentEl);
56
+ if (this.fadeCondenseSetupId !== setupId) {
57
+ return;
58
+ }
59
+ this.scrollEl = scrollEl;
27
60
  /**
28
61
  * Handle fading of toolbars on scroll
29
62
  */
@@ -47,37 +80,63 @@ export class Header {
47
80
  this.destroyCollapsibleHeader();
48
81
  }
49
82
  async checkCollapsibleHeader() {
50
- const mode = getIonMode(this);
51
- if (mode !== 'ios') {
83
+ const { scrollEffect, collapse } = this;
84
+ if (collapse !== undefined && scrollEffect === undefined && !this.hasWarnedCollapse) {
85
+ this.hasWarnedCollapse = true;
86
+ printIonWarning(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${collapse}">`, this.el);
87
+ }
88
+ const effect = scrollEffect ?? collapse;
89
+ // Skip teardown/rebuild if the effect hasn't changed.
90
+ // This prevents re-renders from destroying the scroll controller
91
+ // and resetting isHidden.
92
+ if (effect === this.activeEffect) {
52
93
  return;
53
94
  }
54
- const { collapse } = this;
55
- const hasCondense = collapse === 'condense';
56
- const hasFade = collapse === 'fade';
95
+ const hasHide = effect === 'hide';
96
+ const hasCondense = effect === 'condense';
97
+ const hasFade = effect === 'fade';
57
98
  this.destroyCollapsibleHeader();
58
- if (hasCondense) {
59
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
60
- const contentEl = pageEl ? findIonContent(pageEl) : null;
99
+ const appRootSelector = config.get('appRootSelector', 'ion-app');
100
+ const pageEl = this.el.closest(`${appRootSelector}, ion-page, .ion-page, page-inner`);
101
+ const contentEl = pageEl ? findIonContent(pageEl) : null;
102
+ if (hasHide && contentEl) {
103
+ this.activeEffect = effect;
104
+ await this.setupScrollEffectHide(contentEl);
105
+ return;
106
+ }
107
+ // condense/fade via the deprecated `collapse` prop are iOS-only.
108
+ // condense/fade via the new `scrollEffect` prop work in all themes.
109
+ const isModeRestricted = scrollEffect === undefined && getIonTheme(this) !== 'ios';
110
+ if (hasCondense && !isModeRestricted) {
61
111
  // Cloned elements are always needed in iOS transition
62
112
  writeTask(() => {
63
113
  const title = cloneElement('ion-title');
64
114
  title.size = 'large';
65
115
  cloneElement('ion-back-button');
66
116
  });
67
- await this.setupCondenseHeader(contentEl, pageEl);
117
+ const didSetup = await this.setupCondenseHeader(contentEl, pageEl);
118
+ if (didSetup) {
119
+ this.activeEffect = effect;
120
+ }
68
121
  }
69
- else if (hasFade) {
70
- const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
71
- const contentEl = pageEl ? findIonContent(pageEl) : null;
122
+ else if (hasFade && !isModeRestricted) {
72
123
  if (!contentEl) {
73
124
  printIonContentErrorMsg(this.el);
74
125
  return;
75
126
  }
76
- const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"]');
127
+ const condenseHeader = contentEl.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');
128
+ this.activeEffect = effect;
77
129
  await this.setupFadeHeader(contentEl, condenseHeader);
78
130
  }
79
131
  }
80
132
  destroyCollapsibleHeader() {
133
+ this.activeEffect = undefined;
134
+ this.fadeCondenseSetupId++;
135
+ this.scrollHideCtrlPromise = null;
136
+ if (this.scrollHideCtrl) {
137
+ this.scrollHideCtrl.destroy();
138
+ this.scrollHideCtrl = undefined;
139
+ }
81
140
  if (this.intersectionObserver) {
82
141
  this.intersectionObserver.disconnect();
83
142
  this.intersectionObserver = undefined;
@@ -94,21 +153,39 @@ export class Header {
94
153
  async setupCondenseHeader(contentEl, pageEl) {
95
154
  if (!contentEl || !pageEl) {
96
155
  printIonContentErrorMsg(this.el);
97
- return;
156
+ return false;
98
157
  }
99
158
  if (typeof IntersectionObserver === 'undefined') {
100
- return;
159
+ return false;
160
+ }
161
+ const setupId = ++this.fadeCondenseSetupId;
162
+ const scrollEl = await getScrollElement(contentEl);
163
+ if (this.fadeCondenseSetupId !== setupId) {
164
+ return false;
165
+ }
166
+ this.scrollEl = scrollEl;
167
+ /**
168
+ * The condense effect requires an ion-title with size="large"
169
+ * in the condense header. Without it, there is nothing to
170
+ * collapse into the main header toolbar.
171
+ */
172
+ const hasLargeTitle = this.el.querySelector('ion-title[size="large"]') !== null;
173
+ if (!hasLargeTitle) {
174
+ printIonWarning('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.', this.el);
175
+ return false;
101
176
  }
102
- this.scrollEl = await getScrollElement(contentEl);
103
177
  const headers = pageEl.querySelectorAll('ion-header');
104
- this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
178
+ this.collapsibleMainHeader = Array.from(headers).find((header) => {
179
+ const effect = header.scrollEffect ?? header.collapse;
180
+ return effect !== 'condense';
181
+ });
105
182
  if (!this.collapsibleMainHeader) {
106
- return;
183
+ return false;
107
184
  }
108
185
  const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);
109
186
  const scrollHeaderIndex = createHeaderIndex(this.el);
110
187
  if (!mainHeaderIndex || !scrollHeaderIndex) {
111
- return;
188
+ return false;
112
189
  }
113
190
  setHeaderActive(mainHeaderIndex, false);
114
191
  setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
@@ -140,38 +217,79 @@ export class Header {
140
217
  this.collapsibleMainHeader.classList.add('header-collapse-main');
141
218
  }
142
219
  });
220
+ return true;
143
221
  }
144
222
  render() {
145
- const { translucent, inheritedAttributes } = this;
146
- const mode = getIonMode(this);
147
- const collapse = this.collapse || 'none';
148
- const isCondensed = collapse === 'condense';
223
+ const { translucent, inheritedAttributes, divider, scrollEffect, collapse } = this;
224
+ const theme = getIonTheme(this);
225
+ const effect = scrollEffect ?? collapse;
226
+ // condense/fade via the deprecated `collapse` prop are iOS-only.
227
+ const isModeRestricted = scrollEffect === undefined && theme !== 'ios';
228
+ const hasHide = effect === 'hide';
229
+ const hasCondense = effect === 'condense' && !isModeRestricted && this.el.querySelector('ion-title[size="large"]') !== null;
230
+ const hasFade = effect === 'fade' && !isModeRestricted;
231
+ // The condense header should be hidden when
232
+ // - deprecated collapse prop is used on non-iOS (mode restricted), or
233
+ // - scrollEffect="condense" is set but no ion-title[size="large"] is present
234
+ const isHiddenCondense = effect === 'condense' && !hasCondense;
149
235
  // banner role must be at top level, so remove role if inside a menu
150
- const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, mode);
151
- return (h(Host, { key: '863c4568cd7b8c0ec55109f193bbbaed68a1346e', role: roleType, class: {
152
- [mode]: true,
236
+ const roleType = isHiddenCondense ? 'none' : getRoleType(hostContext('ion-menu', this.el));
237
+ return (h(Host, { key: '09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46', role: roleType, class: {
238
+ [theme]: true,
153
239
  // Used internally for styling
154
- [`header-${mode}`]: true,
240
+ [`header-${theme}`]: true,
155
241
  [`header-translucent`]: this.translucent,
156
- [`header-collapse-${collapse}`]: true,
157
- [`header-translucent-${mode}`]: this.translucent,
158
- }, ...inheritedAttributes }, mode === 'ios' && translucent && h("div", { key: '25c3bdce328b0b35607d154c8b8374679313d881', class: "header-background" }), h("slot", { key: 'b44fab0a9be7920b9650da26117c783e751e1702' })));
242
+ ['header-collapse-condense']: hasCondense,
243
+ ['header-collapse-condense-hidden']: isHiddenCondense,
244
+ ['header-collapse-fade']: hasFade,
245
+ [`header-translucent-${theme}`]: this.translucent,
246
+ ['header-divider']: divider,
247
+ 'header-scroll-effect-hide': hasHide,
248
+ }, ...inheritedAttributes }, theme !== 'md' && translucent && h("div", { key: 'fd5ff245ae0166e5e1d50936cacc98c90625db48', class: "header-background" }), h("slot", { key: '1baa31af87b9eb6406a21073ec65afa191dfbb3d' })));
159
249
  }
160
250
  static get is() { return "ion-header"; }
161
251
  static get originalStyleUrls() {
162
252
  return {
163
253
  "ios": ["header.ios.scss"],
164
- "md": ["header.md.scss"]
254
+ "md": ["header.md.scss"],
255
+ "ionic": ["header.ionic.scss"]
165
256
  };
166
257
  }
167
258
  static get styleUrls() {
168
259
  return {
169
260
  "ios": ["header.ios.css"],
170
- "md": ["header.md.css"]
261
+ "md": ["header.md.css"],
262
+ "ionic": ["header.ionic.css"]
171
263
  };
172
264
  }
173
265
  static get properties() {
174
266
  return {
267
+ "scrollEffect": {
268
+ "type": "string",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "HeaderScrollEffect",
272
+ "resolved": "\"condense\" | \"fade\" | \"hide\" | undefined",
273
+ "references": {
274
+ "HeaderScrollEffect": {
275
+ "location": "import",
276
+ "path": "./header-interface",
277
+ "id": "src/components/header/header-interface.ts::HeaderScrollEffect",
278
+ "referenceLocation": "HeaderScrollEffect"
279
+ }
280
+ }
281
+ },
282
+ "required": false,
283
+ "optional": true,
284
+ "docs": {
285
+ "tags": [],
286
+ "text": "Describes the scroll effect that will be applied to the header.\n`\"hide\"` slides the header out of view when scrolling down and back in\nwhen scrolling up.\n`\"condense\"` collapses the large title into the main toolbar on scroll.\n`\"fade\"` fades the toolbar background on scroll."
287
+ },
288
+ "getter": false,
289
+ "setter": false,
290
+ "reflect": true,
291
+ "attribute": "scroll-effect"
292
+ },
175
293
  "collapse": {
176
294
  "type": "string",
177
295
  "mutable": false,
@@ -183,14 +301,37 @@ export class Header {
183
301
  "required": false,
184
302
  "optional": true,
185
303
  "docs": {
186
- "tags": [],
187
- "text": "Describes the scroll effect that will be applied to the header.\nOnly applies in iOS mode.\n\nTypically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)"
304
+ "tags": [{
305
+ "name": "deprecated",
306
+ "text": "Use `scrollEffect` instead."
307
+ }],
308
+ "text": "Describes the scroll effect that will be applied to the header.\nOnly applies when the theme is `\"ios\"`.\n\nTypically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)"
188
309
  },
189
310
  "getter": false,
190
311
  "setter": false,
191
312
  "reflect": false,
192
313
  "attribute": "collapse"
193
314
  },
315
+ "divider": {
316
+ "type": "boolean",
317
+ "mutable": false,
318
+ "complexType": {
319
+ "original": "boolean",
320
+ "resolved": "boolean",
321
+ "references": {}
322
+ },
323
+ "required": false,
324
+ "optional": false,
325
+ "docs": {
326
+ "tags": [],
327
+ "text": "If `true`, the header will have a line at the bottom.\nTODO(ROU-10855): add support for this prop on ios/md themes"
328
+ },
329
+ "getter": false,
330
+ "setter": false,
331
+ "reflect": false,
332
+ "attribute": "divider",
333
+ "defaultValue": "false"
334
+ },
194
335
  "translucent": {
195
336
  "type": "boolean",
196
337
  "mutable": false,
@@ -203,7 +344,7 @@ export class Header {
203
344
  "optional": false,
204
345
  "docs": {
205
346
  "tags": [],
206
- "text": "If `true`, the header will be translucent.\nOnly applies when the mode is `\"ios\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n\nNote: In order to scroll content behind the header, the `fullscreen`\nattribute needs to be set on the content."
347
+ "text": "If `true`, the header will be translucent.\nOnly applies when the theme is `\"ios\"` or `\"ionic\"` and the device supports\n[`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n\nNote: In order to scroll content behind the header, the `fullscreen`\nattribute needs to be set on the content."
207
348
  },
208
349
  "getter": false,
209
350
  "setter": false,