@sparkle-learning/core 0.0.29 → 0.0.32

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 (656) hide show
  1. package/dist/cjs/{PrivateRoute-81e20cbf.js → PrivateRoute-043bb7d3.js} +2 -2
  2. package/dist/cjs/{active-router-3bd7b540.js → active-router-eedb3bfe.js} +1 -1
  3. package/dist/cjs/{animation-05337433.js → animation-6132e37f.js} +28 -4
  4. package/dist/cjs/app-globals-9869bf67.js +9 -0
  5. package/dist/cjs/{auth.store-aba3d22f.js → auth.store-ff3fda09.js} +1869 -357
  6. package/dist/cjs/compass-svg.cjs.entry.js +1 -1
  7. package/dist/cjs/context-consumer.cjs.entry.js +1 -1
  8. package/dist/cjs/course-select.cjs.entry.js +1 -1
  9. package/dist/cjs/{cubic-bezier-24e309bf.js → cubic-bezier-293f4663.js} +3 -0
  10. package/dist/cjs/dir-5af5259a.js +20 -0
  11. package/dist/cjs/{facilitator.service-e1e2f719.js → facilitator.service-faac5c0c.js} +1 -1
  12. package/dist/cjs/{feed.service-032c2ecc.js → feed.service-66405969.js} +6 -6
  13. package/dist/cjs/focus-visible-ad3828a7.js +63 -0
  14. package/dist/cjs/framework-delegate-2470a246.js +113 -0
  15. package/dist/cjs/{gesture-controller-e824cfb3.js → gesture-controller-07c31f70.js} +3 -0
  16. package/dist/cjs/{haptic-415dac5b.js → haptic-91e86eb7.js} +3 -0
  17. package/dist/cjs/{hardware-back-button-ca468aae.js → hardware-back-button-f7b5d99e.js} +3 -0
  18. package/dist/cjs/header-mobile-collapse_61.cjs.entry.js +17999 -0
  19. package/dist/cjs/{helpers-26770c32.js → helpers-7e28976c.js} +122 -3
  20. package/dist/cjs/{icons-a0fef92b.js → icons-80d477f6.js} +1 -1
  21. package/dist/cjs/{index-427d03fb.js → index-185f9c5a.js} +3 -0
  22. package/dist/cjs/{index-6eff209d.js → index-43642662.js} +24 -3
  23. package/dist/cjs/{index-7bcd36a0.js → index-459a5fa9.js} +20 -4
  24. package/dist/cjs/index-8540d72e.js +42 -0
  25. package/dist/cjs/{index-58b3ee93.js → index-b12edb26.js} +34 -5
  26. package/dist/cjs/{index-fbf4d3bf.js → index-bae2a754.js} +303 -207
  27. package/dist/cjs/index.cjs.js +7 -7
  28. package/dist/cjs/index.es-ef3efdfb.js +10671 -0
  29. package/dist/cjs/{input-shims-213e83f8.js → input-shims-6c442c9f.js} +34 -10
  30. package/dist/cjs/ion-accordion-group.cjs.entry.js +197 -0
  31. package/dist/cjs/ion-accordion.cjs.entry.js +340 -0
  32. package/dist/cjs/ion-action-sheet_4.cjs.entry.js +2203 -0
  33. package/dist/cjs/ion-app.cjs.entry.js +23 -8
  34. package/dist/cjs/ion-back-button.cjs.entry.js +14 -9
  35. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-badge.cjs.entry.js +3 -3
  37. package/dist/cjs/ion-breadcrumb.cjs.entry.js +103 -0
  38. package/dist/cjs/ion-breadcrumbs.cjs.entry.js +135 -0
  39. package/dist/cjs/ion-buttons_3.cjs.entry.js +7 -6
  40. package/dist/cjs/ion-card-header.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-card-subtitle.cjs.entry.js +3 -3
  42. package/dist/cjs/ion-card-title.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-chip.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-content_2.cjs.entry.js +144 -56
  45. package/dist/cjs/ion-datetime.cjs.entry.js +1902 -779
  46. package/dist/cjs/ion-fab-button.cjs.entry.js +5 -4
  47. package/dist/cjs/ion-fab-list.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-fab.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-footer.cjs.entry.js +79 -4
  50. package/dist/cjs/ion-img.cjs.entry.js +33 -7
  51. package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-infinite-scroll.cjs.entry.js +4 -2
  53. package/dist/cjs/ion-item-divider.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-item-group.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-item-option.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-item-options.cjs.entry.js +3 -3
  57. package/dist/cjs/ion-item-sliding.cjs.entry.js +52 -8
  58. package/dist/cjs/ion-loading.cjs.entry.js +23 -11
  59. package/dist/cjs/ion-menu-button.cjs.entry.js +17 -11
  60. package/dist/cjs/ion-menu-toggle.cjs.entry.js +7 -7
  61. package/dist/cjs/ion-menu.cjs.entry.js +141 -29
  62. package/dist/cjs/ion-modal.cjs.entry.js +649 -75
  63. package/dist/cjs/ion-nav-link.cjs.entry.js +4 -1
  64. package/dist/cjs/ion-nav.cjs.entry.js +140 -137
  65. package/dist/cjs/ion-picker-column-internal_2.cjs.entry.js +700 -0
  66. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
  67. package/dist/cjs/ion-picker.cjs.entry.js +18 -11
  68. package/dist/cjs/ion-progress-bar.cjs.entry.js +17 -13
  69. package/dist/cjs/ion-refresher-content.cjs.entry.js +7 -6
  70. package/dist/cjs/ion-refresher.cjs.entry.js +83 -84
  71. package/dist/cjs/ion-reorder-group.cjs.entry.js +9 -8
  72. package/dist/cjs/ion-reorder.cjs.entry.js +5 -4
  73. package/dist/cjs/ion-route-redirect.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-route.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-router-link.cjs.entry.js +3 -3
  76. package/dist/cjs/ion-router-outlet.cjs.entry.js +50 -12
  77. package/dist/cjs/ion-router.cjs.entry.js +378 -234
  78. package/dist/cjs/ion-searchbar.cjs.entry.js +50 -17
  79. package/dist/cjs/ion-segment-button.cjs.entry.js +12 -9
  80. package/dist/cjs/ion-segment.cjs.entry.js +89 -10
  81. package/dist/cjs/ion-select_2.cjs.entry.js +64 -30
  82. package/dist/cjs/ion-skeleton-text.cjs.entry.js +4 -4
  83. package/dist/cjs/ion-slide.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-slides.cjs.entry.js +19 -32
  85. package/dist/cjs/ion-split-pane.cjs.entry.js +8 -3
  86. package/dist/cjs/ion-tab-bar.cjs.entry.js +25 -12
  87. package/dist/cjs/ion-tab-button.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-tab.cjs.entry.js +3 -2
  89. package/dist/cjs/ion-tabs.cjs.entry.js +1 -1
  90. package/dist/cjs/ion-textarea.cjs.entry.js +9 -8
  91. package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-toast.cjs.entry.js +37 -27
  93. package/dist/cjs/ion-toggle.cjs.entry.js +15 -15
  94. package/dist/cjs/ion-virtual-scroll.cjs.entry.js +13 -3
  95. package/dist/cjs/{ionic-global-4930d319.js → ionic-global-878073d1.js} +103 -77
  96. package/dist/cjs/{ios.transition-6e1fd3d6.js → ios.transition-c3bfb096.js} +8 -5
  97. package/dist/cjs/{keyboard-1dcbde6c.js → keyboard-dfd76ac3.js} +3 -0
  98. package/dist/cjs/loader.cjs.js +5 -5
  99. package/dist/cjs/{md.transition-3652ad78.js → md.transition-7eb9a1a7.js} +7 -4
  100. package/dist/cjs/{menu-toggle-util-a8fb4c56.js → menu-toggle-util-cb549c2c.js} +4 -1
  101. package/dist/cjs/{overlays-08a817ea.js → overlays-0a748609.js} +188 -47
  102. package/dist/cjs/{purify-a443f0eb.js → purify-d0ad2883.js} +187 -74
  103. package/dist/cjs/sparkle-animation-player.cjs.entry.js +2 -2
  104. package/dist/cjs/sparkle-character-intro.cjs.entry.js +1 -1
  105. package/dist/cjs/sparkle-code.cjs.entry.js +2 -2
  106. package/dist/cjs/sparkle-compass-post.cjs.entry.js +1 -1
  107. package/dist/cjs/sparkle-compass.cjs.entry.js +1 -1
  108. package/dist/cjs/sparkle-core.cjs.js +7 -7
  109. package/dist/cjs/sparkle-emoji.cjs.entry.js +1 -1
  110. package/dist/cjs/sparkle-facilitator-notes-form.cjs.entry.js +7 -7
  111. package/dist/cjs/sparkle-feed-post.cjs.entry.js +1 -1
  112. package/dist/cjs/sparkle-feedback.cjs.entry.js +7 -7
  113. package/dist/cjs/sparkle-goal-form.cjs.entry.js +8 -8
  114. package/dist/cjs/sparkle-gww-comment-list.cjs.entry.js +1 -1
  115. package/dist/cjs/sparkle-gww-graph.cjs.entry.js +1 -1
  116. package/dist/cjs/sparkle-lower-content-nav.cjs.entry.js +1 -1
  117. package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +2 -2
  118. package/dist/cjs/sparkle-modal-image.cjs.entry.js +1 -1
  119. package/dist/cjs/sparkle-notfound-page.cjs.entry.js +1 -1
  120. package/dist/cjs/sparkle-overlay.cjs.entry.js +1 -1
  121. package/dist/cjs/sparkle-poll.cjs.entry.js +1 -1
  122. package/dist/cjs/sparkle-quiz-container.cjs.entry.js +1 -1
  123. package/dist/cjs/sparkle-quiz-feedback_5.cjs.entry.js +1 -1
  124. package/dist/cjs/sparkle-quiz.cjs.entry.js +2 -2
  125. package/dist/cjs/sparkle-select.cjs.entry.js +1 -1
  126. package/dist/cjs/sparkle-sidebar.cjs.entry.js +1 -1
  127. package/dist/cjs/sparkle-tab.cjs.entry.js +1 -1
  128. package/dist/cjs/sparkle-table-of-contents.cjs.entry.js +1 -1
  129. package/dist/cjs/sparkle-tabs.cjs.entry.js +1 -1
  130. package/dist/cjs/sparkle-youtube.cjs.entry.js +2 -2
  131. package/dist/cjs/{spinner-configs-559523fd.js → spinner-configs-6f6b7ef0.js} +36 -1
  132. package/dist/cjs/status-tap-8697433c.js +40 -0
  133. package/dist/cjs/stencil-async-content.cjs.entry.js +1 -1
  134. package/dist/cjs/stencil-route-title.cjs.entry.js +2 -2
  135. package/dist/cjs/stencil-router-prompt.cjs.entry.js +2 -2
  136. package/dist/cjs/{student.service-41c7c78d.js → student.service-744c3155.js} +1 -1
  137. package/dist/cjs/{swipe-back-c1951cbd.js → swipe-back-7e08b5e0.js} +32 -8
  138. package/dist/cjs/{swiper.bundle-cbea42d8.js → swiper.bundle-8c897c07.js} +4 -4
  139. package/dist/cjs/{tap-click-cd858b48.js → tap-click-1caf1780.js} +8 -1
  140. package/dist/cjs/{theme-98ccfc24.js → theme-4252ac15.js} +3 -0
  141. package/dist/cjs/util-d383acb8.js +2462 -0
  142. package/dist/collection/collection-manifest.json +8 -2
  143. package/dist/collection/components/layout/page/page.js +1 -2
  144. package/dist/collection/components/sparkle-youtube/sparkle-youtube.js +6 -2
  145. package/dist/collection/models/course.model.js +6 -0
  146. package/dist/esm/{PrivateRoute-df0d1e6b.js → PrivateRoute-b9937c45.js} +2 -2
  147. package/dist/esm/{active-router-b3ae32c7.js → active-router-909088d6.js} +1 -1
  148. package/dist/esm/{animation-72fdacfb.js → animation-b306f6c2.js} +28 -4
  149. package/dist/esm/app-globals-5c736ae5.js +7 -0
  150. package/dist/esm/auth.store-3ed2389e.js +4061 -0
  151. package/dist/esm/compass-svg.entry.js +1 -1
  152. package/dist/esm/context-consumer.entry.js +1 -1
  153. package/dist/esm/course-select.entry.js +1 -1
  154. package/dist/esm/{cubic-bezier-ed243a9b.js → cubic-bezier-a7ad9c8e.js} +3 -0
  155. package/dist/esm/dir-03012648.js +18 -0
  156. package/dist/esm/{facilitator.service-cddb2feb.js → facilitator.service-ec0a9739.js} +1 -1
  157. package/dist/esm/{feed.service-694d3d54.js → feed.service-33b83cb7.js} +6 -6
  158. package/dist/esm/focus-visible-40cda868.js +61 -0
  159. package/dist/esm/framework-delegate-3bc58c27.js +109 -0
  160. package/dist/esm/{gesture-controller-604336b7.js → gesture-controller-686622ba.js} +3 -0
  161. package/dist/esm/{haptic-67928174.js → haptic-99c9e346.js} +4 -1
  162. package/dist/esm/{hardware-back-button-508e48cf.js → hardware-back-button-b6ccf74a.js} +3 -0
  163. package/dist/esm/header-mobile-collapse_61.entry.js +17935 -0
  164. package/dist/esm/{helpers-e7f66b2b.js → helpers-39367fe1.js} +119 -4
  165. package/dist/esm/{icons-33e5804c.js → icons-61dec176.js} +1 -1
  166. package/dist/esm/{index-cc97b114.js → index-435af8e6.js} +3 -0
  167. package/dist/esm/{index-55fc9f5e.js → index-5568e3fa.js} +303 -208
  168. package/dist/esm/{index-dc09784f.js → index-9594837e.js} +20 -4
  169. package/dist/esm/{index-b2ad0f1a.js → index-a12c14bd.js} +25 -4
  170. package/dist/esm/{index-a94619f9.js → index-c26d8655.js} +34 -5
  171. package/dist/esm/index-dc61f152.js +22 -0
  172. package/dist/esm/index.es-97dd8174.js +10585 -0
  173. package/dist/esm/index.js +7 -7
  174. package/dist/esm/{input-shims-3a97fa86.js → input-shims-cc98ea92.js} +34 -10
  175. package/dist/esm/ion-accordion-group.entry.js +193 -0
  176. package/dist/esm/ion-accordion.entry.js +336 -0
  177. package/dist/esm/ion-action-sheet_4.entry.js +2196 -0
  178. package/dist/esm/ion-app.entry.js +23 -8
  179. package/dist/esm/ion-back-button.entry.js +14 -9
  180. package/dist/esm/ion-backdrop.entry.js +3 -3
  181. package/dist/esm/ion-badge.entry.js +3 -3
  182. package/dist/esm/ion-breadcrumb.entry.js +99 -0
  183. package/dist/esm/ion-breadcrumbs.entry.js +131 -0
  184. package/dist/esm/ion-buttons_3.entry.js +7 -6
  185. package/dist/esm/ion-card-header.entry.js +3 -3
  186. package/dist/esm/ion-card-subtitle.entry.js +3 -3
  187. package/dist/esm/ion-card-title.entry.js +3 -3
  188. package/dist/esm/ion-chip.entry.js +3 -3
  189. package/dist/esm/ion-content_2.entry.js +144 -56
  190. package/dist/esm/ion-datetime.entry.js +1902 -779
  191. package/dist/esm/ion-fab-button.entry.js +5 -4
  192. package/dist/esm/ion-fab-list.entry.js +2 -2
  193. package/dist/esm/ion-fab.entry.js +2 -2
  194. package/dist/esm/ion-footer.entry.js +79 -4
  195. package/dist/esm/ion-img.entry.js +33 -7
  196. package/dist/esm/ion-infinite-scroll-content.entry.js +3 -3
  197. package/dist/esm/ion-infinite-scroll.entry.js +4 -2
  198. package/dist/esm/ion-item-divider.entry.js +3 -3
  199. package/dist/esm/ion-item-group.entry.js +2 -2
  200. package/dist/esm/ion-item-option.entry.js +4 -4
  201. package/dist/esm/ion-item-options.entry.js +3 -3
  202. package/dist/esm/ion-item-sliding.entry.js +52 -8
  203. package/dist/esm/ion-loading.entry.js +23 -11
  204. package/dist/esm/ion-menu-button.entry.js +17 -11
  205. package/dist/esm/ion-menu-toggle.entry.js +7 -7
  206. package/dist/esm/ion-menu.entry.js +141 -29
  207. package/dist/esm/ion-modal.entry.js +649 -75
  208. package/dist/esm/ion-nav-link.entry.js +4 -1
  209. package/dist/esm/ion-nav.entry.js +140 -137
  210. package/dist/esm/ion-picker-column-internal_2.entry.js +695 -0
  211. package/dist/esm/ion-picker-column.entry.js +5 -5
  212. package/dist/esm/ion-picker.entry.js +18 -11
  213. package/dist/esm/ion-progress-bar.entry.js +17 -13
  214. package/dist/esm/ion-refresher-content.entry.js +7 -6
  215. package/dist/esm/ion-refresher.entry.js +82 -83
  216. package/dist/esm/ion-reorder-group.entry.js +9 -8
  217. package/dist/esm/ion-reorder.entry.js +5 -4
  218. package/dist/esm/ion-route-redirect.entry.js +1 -1
  219. package/dist/esm/ion-route.entry.js +1 -1
  220. package/dist/esm/ion-router-link.entry.js +3 -3
  221. package/dist/esm/ion-router-outlet.entry.js +50 -12
  222. package/dist/esm/ion-router.entry.js +378 -234
  223. package/dist/esm/ion-searchbar.entry.js +50 -17
  224. package/dist/esm/ion-segment-button.entry.js +12 -9
  225. package/dist/esm/ion-segment.entry.js +89 -10
  226. package/dist/esm/ion-select_2.entry.js +64 -30
  227. package/dist/esm/ion-skeleton-text.entry.js +4 -4
  228. package/dist/esm/ion-slide.entry.js +2 -2
  229. package/dist/esm/ion-slides.entry.js +19 -32
  230. package/dist/esm/ion-split-pane.entry.js +8 -3
  231. package/dist/esm/ion-tab-bar.entry.js +25 -12
  232. package/dist/esm/ion-tab-button.entry.js +2 -2
  233. package/dist/esm/ion-tab.entry.js +3 -2
  234. package/dist/esm/ion-tabs.entry.js +1 -1
  235. package/dist/esm/ion-textarea.entry.js +9 -8
  236. package/dist/esm/ion-thumbnail.entry.js +2 -2
  237. package/dist/esm/ion-toast.entry.js +37 -27
  238. package/dist/esm/ion-toggle.entry.js +15 -15
  239. package/dist/esm/ion-virtual-scroll.entry.js +13 -3
  240. package/dist/esm/{ionic-global-1f9287cc.js → ionic-global-0939c477.js} +103 -77
  241. package/dist/esm/{ios.transition-d01abefd.js → ios.transition-b4ca8a33.js} +8 -5
  242. package/dist/esm/{keyboard-06906eac.js → keyboard-2503e874.js} +3 -0
  243. package/dist/esm/loader.js +5 -5
  244. package/dist/esm/{md.transition-245ffa55.js → md.transition-ca5e0322.js} +7 -4
  245. package/dist/esm/{menu-toggle-util-fe83fcf5.js → menu-toggle-util-7fa22c2f.js} +4 -1
  246. package/dist/esm/{overlays-8363621c.js → overlays-34cfa9e0.js} +187 -47
  247. package/dist/esm/polyfills/css-shim.js +1 -1
  248. package/dist/esm/polyfills/index.js +2 -2
  249. package/dist/esm/{purify-7e29b899.js → purify-ffce2b4c.js} +185 -72
  250. package/dist/esm/sparkle-animation-player.entry.js +2 -2
  251. package/dist/esm/sparkle-character-intro.entry.js +1 -1
  252. package/dist/esm/sparkle-code.entry.js +2 -2
  253. package/dist/esm/sparkle-compass-post.entry.js +1 -1
  254. package/dist/esm/sparkle-compass.entry.js +1 -1
  255. package/dist/esm/sparkle-core.js +7 -7
  256. package/dist/esm/sparkle-emoji.entry.js +1 -1
  257. package/dist/esm/sparkle-facilitator-notes-form.entry.js +7 -7
  258. package/dist/esm/sparkle-feed-post.entry.js +1 -1
  259. package/dist/esm/sparkle-feedback.entry.js +7 -7
  260. package/dist/esm/sparkle-goal-form.entry.js +8 -8
  261. package/dist/esm/sparkle-gww-comment-list.entry.js +1 -1
  262. package/dist/esm/sparkle-gww-graph.entry.js +1 -1
  263. package/dist/esm/sparkle-lower-content-nav.entry.js +1 -1
  264. package/dist/esm/sparkle-menu-collapsible.entry.js +2 -2
  265. package/dist/esm/sparkle-modal-image.entry.js +1 -1
  266. package/dist/esm/sparkle-notfound-page.entry.js +1 -1
  267. package/dist/esm/sparkle-overlay.entry.js +1 -1
  268. package/dist/esm/sparkle-poll.entry.js +1 -1
  269. package/dist/esm/sparkle-quiz-container.entry.js +1 -1
  270. package/dist/esm/sparkle-quiz-feedback_5.entry.js +1 -1
  271. package/dist/esm/sparkle-quiz.entry.js +2 -2
  272. package/dist/esm/sparkle-select.entry.js +1 -1
  273. package/dist/esm/sparkle-sidebar.entry.js +1 -1
  274. package/dist/esm/sparkle-tab.entry.js +1 -1
  275. package/dist/esm/sparkle-table-of-contents.entry.js +1 -1
  276. package/dist/esm/sparkle-tabs.entry.js +1 -1
  277. package/dist/esm/sparkle-youtube.entry.js +2 -2
  278. package/dist/esm/{spinner-configs-9536fae2.js → spinner-configs-f609a655.js} +36 -1
  279. package/dist/esm/status-tap-6351a0cb.js +38 -0
  280. package/dist/esm/stencil-async-content.entry.js +1 -1
  281. package/dist/esm/stencil-route-title.entry.js +2 -2
  282. package/dist/esm/stencil-router-prompt.entry.js +2 -2
  283. package/dist/esm/{student.service-c36c5a75.js → student.service-29b688ba.js} +1 -1
  284. package/dist/esm/{swipe-back-21f58ecf.js → swipe-back-34251834.js} +32 -8
  285. package/dist/esm/{swiper.bundle-d4422d52.js → swiper.bundle-b6a959de.js} +4 -4
  286. package/dist/esm/{tap-click-8c728329.js → tap-click-13f1fb0d.js} +8 -1
  287. package/dist/esm/{theme-12606872.js → theme-c336c9d9.js} +3 -0
  288. package/dist/esm/util-6ef753e9.js +2451 -0
  289. package/dist/loader/index.d.ts +0 -1
  290. package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.ios.css +75 -0
  291. package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.md.css +72 -0
  292. package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.ios.css +25 -0
  293. package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.md.css +59 -0
  294. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.ios.css +10 -19
  295. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.md.css +19 -16
  296. package/dist/node_modules/@ionic/core/dist/collection/components/alert/alert.md.css +2 -2
  297. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.ios.css +4 -0
  298. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.md.css +4 -0
  299. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.ios.css +234 -0
  300. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.md.css +237 -0
  301. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +38 -0
  302. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.md.css +37 -0
  303. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.ios.css +0 -1
  304. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.md.css +5 -5
  305. package/dist/node_modules/@ionic/core/dist/collection/components/content/content.css +60 -14
  306. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.ios.css +586 -68
  307. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.md.css +575 -68
  308. package/dist/node_modules/@ionic/core/dist/collection/components/footer/footer.ios.css +4 -0
  309. package/dist/node_modules/@ionic/core/dist/collection/components/header/header.ios.css +16 -0
  310. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.ios.css +9 -0
  311. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.md.css +9 -0
  312. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.ios.css +105 -17
  313. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.md.css +295 -22
  314. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.ios.css +6 -6
  315. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.md.css +6 -6
  316. package/dist/node_modules/@ionic/core/dist/collection/components/item-sliding/item-sliding.css +2 -2
  317. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.ios.css +7 -3
  318. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.md.css +100 -18
  319. package/dist/node_modules/@ionic/core/dist/collection/components/list/list.ios.css +1 -1
  320. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.ios.css +2 -2
  321. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.md.css +2 -2
  322. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.ios.css +74 -11
  323. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.md.css +48 -4
  324. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +59 -0
  325. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.md.css +62 -0
  326. package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.ios.css +122 -0
  327. package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.md.css +118 -0
  328. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.ios.css +83 -0
  329. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.md.css +49 -0
  330. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.ios.css +53 -38
  331. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.md.css +53 -38
  332. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.ios.css +3 -3
  333. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.md.css +5 -5
  334. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.ios.css +12 -0
  335. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.md.css +2 -2
  336. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  337. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.md.css +1 -1
  338. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.ios.css +4 -0
  339. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.md.css +4 -0
  340. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.ios.css +1 -1
  341. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.md.css +30 -2
  342. package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/{select-popover.css → select-popover.ios.css} +4 -4
  343. package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/select-popover.md.css +37 -0
  344. package/dist/node_modules/@ionic/core/dist/collection/components/skeleton-text/skeleton-text.css +4 -4
  345. package/dist/node_modules/@ionic/core/dist/collection/components/spinner/spinner.css +15 -2
  346. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.ios.css +2 -1
  347. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.md.css +1 -0
  348. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.ios.css +9 -0
  349. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.md.css +9 -0
  350. package/dist/node_modules/@ionic/core/dist/collection/components/title/title.ios.css +4 -3
  351. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.ios.css +14 -2
  352. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.md.css +14 -2
  353. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.ios.css +1 -0
  354. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.md.css +1 -0
  355. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.ios.css +3 -2
  356. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.md.css +2 -1
  357. package/dist/node_modules/@ionic/core/dist/collection/components/virtual-scroll/virtual-scroll.css +1 -1
  358. package/dist/sparkle-core/index.esm.js +1 -1
  359. package/dist/sparkle-core/{p-52355989.entry.js → p-016a7aaf.entry.js} +1 -1
  360. package/dist/sparkle-core/p-0187adef.entry.js +1 -0
  361. package/dist/sparkle-core/{p-4328af62.js → p-03189863.js} +1 -1
  362. package/dist/sparkle-core/{p-d4d9aa4a.entry.js → p-03ec54a8.entry.js} +1 -1
  363. package/dist/sparkle-core/p-04583c51.entry.js +1 -0
  364. package/dist/sparkle-core/{p-6d506f4e.js → p-052caa63.js} +1 -1
  365. package/dist/sparkle-core/{p-016bf847.entry.js → p-057f6a23.entry.js} +1 -1
  366. package/dist/sparkle-core/p-0580419b.entry.js +1 -0
  367. package/dist/sparkle-core/{p-c563b4de.js → p-063cd168.js} +4 -1
  368. package/dist/sparkle-core/p-081968cc.entry.js +1 -0
  369. package/dist/sparkle-core/p-0934f5dd.entry.js +1 -0
  370. package/dist/sparkle-core/p-0f899097.entry.js +352 -0
  371. package/dist/sparkle-core/{p-3f5d7a08.entry.js → p-11cf398a.entry.js} +1 -1
  372. package/dist/sparkle-core/p-1339830f.entry.js +1 -0
  373. package/dist/sparkle-core/p-145e40f5.entry.js +1 -0
  374. package/dist/sparkle-core/{p-68f3c93d.entry.js → p-1726da2f.entry.js} +1 -1
  375. package/dist/sparkle-core/p-173d5461.entry.js +7 -0
  376. package/dist/sparkle-core/p-18e62133.entry.js +1 -0
  377. package/dist/sparkle-core/p-1af044f7.js +3 -0
  378. package/dist/sparkle-core/p-1b78dea1.entry.js +1 -0
  379. package/dist/sparkle-core/p-1cef8572.js +4 -0
  380. package/dist/sparkle-core/p-1df05176.js +4 -0
  381. package/dist/sparkle-core/p-21bf4ca0.entry.js +1 -0
  382. package/dist/sparkle-core/p-21db4e8e.entry.js +1 -0
  383. package/dist/sparkle-core/p-23a9f7d1.entry.js +1 -0
  384. package/dist/sparkle-core/p-289a35ed.entry.js +1 -0
  385. package/dist/sparkle-core/p-2ee6a5f9.entry.js +1 -0
  386. package/dist/sparkle-core/p-350adbaa.entry.js +1 -0
  387. package/dist/sparkle-core/{p-bccd9036.entry.js → p-35a7bd6c.entry.js} +1 -1
  388. package/dist/sparkle-core/{p-66e3bd1c.entry.js → p-37c00e39.entry.js} +1 -1
  389. package/dist/sparkle-core/p-389500fd.js +4 -0
  390. package/dist/sparkle-core/p-39e5a90f.entry.js +1 -0
  391. package/dist/sparkle-core/{p-ac5e5308.entry.js → p-3a202a38.entry.js} +1 -1
  392. package/dist/sparkle-core/p-3defe550.entry.js +1 -0
  393. package/dist/sparkle-core/p-45e6db62.entry.js +1 -0
  394. package/dist/sparkle-core/{p-581ca370.entry.js → p-48f9b960.entry.js} +1 -1
  395. package/dist/sparkle-core/{p-0efbc0b3.entry.js → p-4dc3ef96.entry.js} +1 -1
  396. package/dist/sparkle-core/p-506221fe.js +4 -0
  397. package/dist/sparkle-core/p-50aac721.entry.js +7 -0
  398. package/dist/sparkle-core/p-513794b0.js +16 -0
  399. package/dist/sparkle-core/{p-2e4e8117.js → p-5264da79.js} +3 -0
  400. package/dist/sparkle-core/{p-40db85ac.entry.js → p-547b70c6.entry.js} +1 -1
  401. package/dist/sparkle-core/p-5598650a.entry.js +1 -0
  402. package/dist/sparkle-core/p-55ae49e1.js +4 -0
  403. package/dist/sparkle-core/p-58e98f89.entry.js +1 -0
  404. package/dist/sparkle-core/p-59f7bf6e.entry.js +1 -0
  405. package/dist/sparkle-core/p-5a3d0e6b.js +4 -0
  406. package/dist/sparkle-core/{p-85d31769.entry.js → p-5b40aae5.entry.js} +1 -1
  407. package/dist/sparkle-core/p-5c9aa1f9.entry.js +4 -0
  408. package/dist/sparkle-core/p-5d2e54ee.entry.js +1 -0
  409. package/dist/sparkle-core/p-5d409601.js +1 -1
  410. package/dist/sparkle-core/{p-afbaad64.entry.js → p-5f45d206.entry.js} +1 -1
  411. package/dist/sparkle-core/p-5ff6416d.entry.js +7 -0
  412. package/dist/sparkle-core/{p-cf2332bb.entry.js → p-62a6c96f.entry.js} +1 -1
  413. package/dist/sparkle-core/p-64e72f8f.js +4 -0
  414. package/dist/sparkle-core/p-660e0742.js +1 -0
  415. package/dist/sparkle-core/{p-d5023db0.entry.js → p-667accac.entry.js} +1 -1
  416. package/dist/sparkle-core/{p-9ca56f5d.entry.js → p-680663a2.entry.js} +1 -1
  417. package/dist/sparkle-core/{p-e975924a.entry.js → p-6823e6c1.entry.js} +1 -1
  418. package/dist/sparkle-core/p-69e7783d.js +4 -0
  419. package/dist/sparkle-core/p-6bbabb80.entry.js +1 -0
  420. package/dist/sparkle-core/p-6bf07a28.js +1 -0
  421. package/dist/sparkle-core/p-6c6145cd.js +4 -0
  422. package/dist/sparkle-core/p-6c90bde6.entry.js +5 -0
  423. package/dist/sparkle-core/p-6e88764b.entry.js +4 -0
  424. package/dist/sparkle-core/p-6ee40949.js +1 -0
  425. package/dist/sparkle-core/p-6fbe3ca3.entry.js +1 -0
  426. package/dist/sparkle-core/{p-f2660943.js → p-6fd4985d.js} +3 -0
  427. package/dist/sparkle-core/{p-8fc9298a.js → p-703ca87c.js} +3 -0
  428. package/dist/sparkle-core/{p-1bf8bed6.entry.js → p-7052c43a.entry.js} +1 -1
  429. package/dist/sparkle-core/{p-111520a0.js → p-70b2452c.js} +3 -0
  430. package/dist/sparkle-core/p-713590fc.js +5 -0
  431. package/dist/sparkle-core/p-7493ee15.entry.js +1 -0
  432. package/dist/sparkle-core/p-75572037.js +1 -0
  433. package/dist/sparkle-core/{p-eb56aa20.entry.js → p-768bcc9e.entry.js} +1 -1
  434. package/dist/sparkle-core/p-797c23ed.entry.js +1 -0
  435. package/dist/sparkle-core/{p-09d43bee.entry.js → p-7d61177b.entry.js} +1 -1
  436. package/dist/sparkle-core/p-7dbfc316.js +1 -0
  437. package/dist/sparkle-core/p-7e61973d.entry.js +7 -0
  438. package/dist/sparkle-core/p-838fa86d.entry.js +18 -0
  439. package/dist/sparkle-core/p-855ca600.js +1 -0
  440. package/dist/sparkle-core/p-857f3696.entry.js +1 -0
  441. package/dist/sparkle-core/{p-8f72be08.js → p-8c6b6038.js} +3 -0
  442. package/dist/sparkle-core/p-8fe2e51f.entry.js +4 -0
  443. package/dist/sparkle-core/{p-f72a6e6d.entry.js → p-90389886.entry.js} +1 -1
  444. package/dist/sparkle-core/p-932bfb69.entry.js +1 -0
  445. package/dist/sparkle-core/p-935e7cfc.js +1 -0
  446. package/dist/sparkle-core/{p-c70b9765.entry.js → p-941eaa3a.entry.js} +1 -1
  447. package/dist/sparkle-core/p-95004267.entry.js +1 -0
  448. package/dist/sparkle-core/p-950effe7.entry.js +1 -0
  449. package/dist/sparkle-core/{p-1ca4bf1d.entry.js → p-996361f9.entry.js} +1 -1
  450. package/dist/sparkle-core/{p-3cd28c60.entry.js → p-99b43ee1.entry.js} +1 -1
  451. package/dist/sparkle-core/p-9a17f2ad.js +4 -0
  452. package/dist/sparkle-core/p-9a443f51.js +1 -1
  453. package/dist/sparkle-core/p-9babd345.js +1 -0
  454. package/dist/sparkle-core/{p-03eb2164.js → p-9c1772c3.js} +1 -1
  455. package/dist/sparkle-core/p-9cfdeb18.entry.js +1 -0
  456. package/dist/sparkle-core/p-a080e768.entry.js +1 -0
  457. package/dist/sparkle-core/p-a1cab0f3.js +4 -0
  458. package/dist/sparkle-core/p-a7cc0052.entry.js +4 -0
  459. package/dist/sparkle-core/p-a9ccb0df.js +4 -0
  460. package/dist/sparkle-core/p-a9ee3f6d.entry.js +1 -0
  461. package/dist/sparkle-core/{p-abe2676a.entry.js → p-aa87c7f0.entry.js} +1 -1
  462. package/dist/sparkle-core/{p-e818b11d.entry.js → p-aa9ebc39.entry.js} +1 -1
  463. package/dist/sparkle-core/p-ae1f145d.entry.js +1 -0
  464. package/dist/sparkle-core/{p-73a646fb.entry.js → p-b07a2cf2.entry.js} +1 -1
  465. package/dist/sparkle-core/{p-c82b05e0.entry.js → p-b3909012.entry.js} +1 -1
  466. package/dist/sparkle-core/p-b3e6427d.js +7 -0
  467. package/dist/sparkle-core/p-b49ca0ea.entry.js +1 -0
  468. package/dist/sparkle-core/p-b81e20fe.entry.js +4 -0
  469. package/dist/sparkle-core/p-bca0e465.entry.js +1 -0
  470. package/dist/sparkle-core/p-c1279cc9.entry.js +1 -0
  471. package/dist/sparkle-core/p-c1376096.entry.js +1 -0
  472. package/dist/sparkle-core/{p-5b4938ce.entry.js → p-c3986a52.entry.js} +1 -1
  473. package/dist/sparkle-core/p-c3d3d5c4.entry.js +1 -0
  474. package/dist/sparkle-core/p-c48bbc7c.entry.js +4 -0
  475. package/dist/sparkle-core/p-c5b9bdd6.entry.js +1 -0
  476. package/dist/sparkle-core/{p-15d68269.entry.js → p-c69b0a7a.entry.js} +1 -1
  477. package/dist/sparkle-core/p-cbbeed67.entry.js +1 -0
  478. package/dist/sparkle-core/p-d4a435f8.entry.js +1 -0
  479. package/dist/sparkle-core/p-d4c07aca.js +4 -0
  480. package/dist/sparkle-core/p-d5b05ece.entry.js +5 -0
  481. package/dist/sparkle-core/p-d7baf31e.entry.js +1 -0
  482. package/dist/sparkle-core/p-d8d3524a.js +1 -0
  483. package/dist/sparkle-core/{p-22926eed.entry.js → p-e0fced48.entry.js} +1 -1
  484. package/dist/sparkle-core/p-e1cba44b.entry.js +4 -0
  485. package/dist/sparkle-core/p-e225581a.js +7 -0
  486. package/dist/sparkle-core/{p-4e28ca37.entry.js → p-e3fdd0a8.entry.js} +1 -1
  487. package/dist/sparkle-core/p-e6b66cef.entry.js +1 -0
  488. package/dist/sparkle-core/p-e72d4450.js +4 -0
  489. package/dist/sparkle-core/p-eb70a23c.entry.js +1 -0
  490. package/dist/sparkle-core/{p-f9143c5d.entry.js → p-ecd39170.entry.js} +1 -1
  491. package/dist/sparkle-core/{p-151afa9e.entry.js → p-ed0e9d29.entry.js} +1 -1
  492. package/dist/sparkle-core/{p-92d42c10.entry.js → p-ee0d7f19.entry.js} +1 -1
  493. package/dist/sparkle-core/p-f4001fdf.js +4 -0
  494. package/dist/sparkle-core/p-f9b73032.entry.js +1 -0
  495. package/dist/sparkle-core/p-faa912d7.entry.js +1 -0
  496. package/dist/sparkle-core/{p-a250e2ae.entry.js → p-fbd7eeca.entry.js} +1 -1
  497. package/dist/sparkle-core/p-fc933591.entry.js +1 -0
  498. package/dist/sparkle-core/p-fef04ab5.js +4 -0
  499. package/dist/sparkle-core/sparkle-core.css +1 -1
  500. package/dist/sparkle-core/sparkle-core.esm.js +1 -1
  501. package/dist/sparkle-core/svg/balloon-outline.svg +1 -0
  502. package/dist/sparkle-core/svg/balloon-sharp.svg +1 -0
  503. package/dist/sparkle-core/svg/balloon.svg +1 -0
  504. package/dist/sparkle-core/svg/bowling-ball-outline.svg +1 -0
  505. package/dist/sparkle-core/svg/bowling-ball-sharp.svg +1 -0
  506. package/dist/sparkle-core/svg/bowling-ball.svg +1 -0
  507. package/dist/sparkle-core/svg/calendar-number-outline.svg +1 -0
  508. package/dist/sparkle-core/svg/calendar-number-sharp.svg +1 -0
  509. package/dist/sparkle-core/svg/calendar-number.svg +1 -0
  510. package/dist/sparkle-core/svg/diamond-outline.svg +1 -0
  511. package/dist/sparkle-core/svg/diamond-sharp.svg +1 -0
  512. package/dist/sparkle-core/svg/diamond.svg +1 -0
  513. package/dist/sparkle-core/svg/footsteps-outline.svg +1 -0
  514. package/dist/sparkle-core/svg/footsteps-sharp.svg +1 -0
  515. package/dist/sparkle-core/svg/footsteps.svg +1 -0
  516. package/dist/sparkle-core/svg/id-card-outline.svg +1 -0
  517. package/dist/sparkle-core/svg/id-card-sharp.svg +1 -0
  518. package/dist/sparkle-core/svg/id-card.svg +1 -0
  519. package/dist/sparkle-core/svg/logo-apple-ar.svg +1 -0
  520. package/dist/sparkle-core/svg/prism-outline.svg +1 -0
  521. package/dist/sparkle-core/svg/prism-sharp.svg +1 -0
  522. package/dist/sparkle-core/svg/prism.svg +1 -0
  523. package/dist/sparkle-core/svg/scale-outline.svg +1 -0
  524. package/dist/sparkle-core/svg/scale-sharp.svg +1 -0
  525. package/dist/sparkle-core/svg/scale.svg +1 -0
  526. package/dist/sparkle-core/svg/shield-half-outline.svg +1 -0
  527. package/dist/sparkle-core/svg/shield-half-sharp.svg +1 -0
  528. package/dist/sparkle-core/svg/shield-half.svg +1 -0
  529. package/dist/sparkle-core/svg/sparkles-outline.svg +1 -0
  530. package/dist/sparkle-core/svg/sparkles-sharp.svg +1 -0
  531. package/dist/sparkle-core/svg/sparkles.svg +1 -0
  532. package/dist/sparkle-core/swiper/swiper.bundle.js +2 -2
  533. package/dist/types/components/sparkle-youtube/sparkle-youtube.d.ts +1 -1
  534. package/dist/types/models/course.model.d.ts +1 -8
  535. package/dist/types/models/definitions.d.ts +8 -0
  536. package/dist/types/stencil-public-runtime.d.ts +200 -190
  537. package/package.json +26 -26
  538. package/dist/cjs/app-globals-98121d6d.js +0 -9
  539. package/dist/cjs/button-active-9456fb4d.js +0 -66
  540. package/dist/cjs/focus-visible-1583bc8e.js +0 -45
  541. package/dist/cjs/framework-delegate-72815681.js +0 -37
  542. package/dist/cjs/header-mobile-collapse_60.cjs.entry.js +0 -88
  543. package/dist/cjs/index.es-11437480.js +0 -13836
  544. package/dist/cjs/ion-action-sheet.cjs.entry.js +0 -261
  545. package/dist/cjs/ion-alert.cjs.entry.js +0 -455
  546. package/dist/cjs/ion-note.cjs.entry.js +0 -29
  547. package/dist/cjs/ion-popover.cjs.entry.js +0 -365
  548. package/dist/cjs/ion-select-popover.cjs.entry.js +0 -35
  549. package/dist/cjs/status-tap-466a7c6a.js +0 -25
  550. package/dist/cjs/util-b0e2ec9f.js +0 -5682
  551. package/dist/esm/app-globals-6451faf3.js +0 -7
  552. package/dist/esm/auth.store-dd944bc2.js +0 -2552
  553. package/dist/esm/button-active-97535443.js +0 -64
  554. package/dist/esm/focus-visible-abf04ce3.js +0 -43
  555. package/dist/esm/framework-delegate-2c397da3.js +0 -34
  556. package/dist/esm/header-mobile-collapse_60.entry.js +0 -21
  557. package/dist/esm/index.es-1d452836.js +0 -13750
  558. package/dist/esm/ion-action-sheet.entry.js +0 -257
  559. package/dist/esm/ion-alert.entry.js +0 -451
  560. package/dist/esm/ion-note.entry.js +0 -25
  561. package/dist/esm/ion-popover.entry.js +0 -361
  562. package/dist/esm/ion-select-popover.entry.js +0 -31
  563. package/dist/esm/status-tap-9221cd79.js +0 -23
  564. package/dist/esm/util-042b5fee.js +0 -5671
  565. package/dist/sparkle-core/p-019d9d02.entry.js +0 -1
  566. package/dist/sparkle-core/p-02d6d899.js +0 -1
  567. package/dist/sparkle-core/p-0312758b.js +0 -1
  568. package/dist/sparkle-core/p-03fd27d0.entry.js +0 -1
  569. package/dist/sparkle-core/p-07018d29.js +0 -1
  570. package/dist/sparkle-core/p-083d57a6.entry.js +0 -1
  571. package/dist/sparkle-core/p-0e1c7c8c.js +0 -1
  572. package/dist/sparkle-core/p-101feae9.js +0 -1
  573. package/dist/sparkle-core/p-13b0cdfc.entry.js +0 -1
  574. package/dist/sparkle-core/p-13c9bf3a.entry.js +0 -1
  575. package/dist/sparkle-core/p-169920f1.js +0 -1
  576. package/dist/sparkle-core/p-1e1f5e98.entry.js +0 -1
  577. package/dist/sparkle-core/p-1e866c41.entry.js +0 -1
  578. package/dist/sparkle-core/p-2474bf60.entry.js +0 -1
  579. package/dist/sparkle-core/p-25bbf9b4.entry.js +0 -1
  580. package/dist/sparkle-core/p-2a45b732.js +0 -1
  581. package/dist/sparkle-core/p-2abf4d37.entry.js +0 -1
  582. package/dist/sparkle-core/p-2c5edb9f.entry.js +0 -1
  583. package/dist/sparkle-core/p-2d966d35.js +0 -1
  584. package/dist/sparkle-core/p-30b641a4.entry.js +0 -1
  585. package/dist/sparkle-core/p-359422b6.entry.js +0 -1
  586. package/dist/sparkle-core/p-37bfb548.entry.js +0 -1
  587. package/dist/sparkle-core/p-396a9849.js +0 -1
  588. package/dist/sparkle-core/p-3a29a75b.entry.js +0 -1
  589. package/dist/sparkle-core/p-3bb55510.entry.js +0 -1
  590. package/dist/sparkle-core/p-3be0a218.js +0 -1
  591. package/dist/sparkle-core/p-417a8dd6.js +0 -1
  592. package/dist/sparkle-core/p-447163be.entry.js +0 -1
  593. package/dist/sparkle-core/p-49265a8e.entry.js +0 -1
  594. package/dist/sparkle-core/p-4950f841.entry.js +0 -1
  595. package/dist/sparkle-core/p-4b7db0e6.js +0 -1
  596. package/dist/sparkle-core/p-4d8cb365.entry.js +0 -1
  597. package/dist/sparkle-core/p-5073899e.entry.js +0 -1
  598. package/dist/sparkle-core/p-522733aa.js +0 -483
  599. package/dist/sparkle-core/p-5b366c20.entry.js +0 -1
  600. package/dist/sparkle-core/p-5dce20b9.entry.js +0 -1
  601. package/dist/sparkle-core/p-6006beec.entry.js +0 -1
  602. package/dist/sparkle-core/p-600d04fc.entry.js +0 -1
  603. package/dist/sparkle-core/p-60828739.entry.js +0 -1
  604. package/dist/sparkle-core/p-6112b180.entry.js +0 -1
  605. package/dist/sparkle-core/p-62a62b6e.entry.js +0 -1
  606. package/dist/sparkle-core/p-66eb6b7a.entry.js +0 -1
  607. package/dist/sparkle-core/p-67ddec3f.entry.js +0 -1
  608. package/dist/sparkle-core/p-68cb7d41.entry.js +0 -1
  609. package/dist/sparkle-core/p-69cd49de.js +0 -1
  610. package/dist/sparkle-core/p-6edbdde5.entry.js +0 -1
  611. package/dist/sparkle-core/p-6f0ecbe3.js +0 -1
  612. package/dist/sparkle-core/p-765b8593.js +0 -1
  613. package/dist/sparkle-core/p-770128c8.js +0 -1
  614. package/dist/sparkle-core/p-7840618d.js +0 -1
  615. package/dist/sparkle-core/p-7b37d523.entry.js +0 -1
  616. package/dist/sparkle-core/p-7d83d006.entry.js +0 -1
  617. package/dist/sparkle-core/p-7ecad3fb.entry.js +0 -1
  618. package/dist/sparkle-core/p-7f3d5344.js +0 -1
  619. package/dist/sparkle-core/p-81651f26.entry.js +0 -1
  620. package/dist/sparkle-core/p-8490f1bc.js +0 -1
  621. package/dist/sparkle-core/p-86148067.entry.js +0 -1
  622. package/dist/sparkle-core/p-8b5bc1d6.entry.js +0 -1
  623. package/dist/sparkle-core/p-8c3ee44c.entry.js +0 -1
  624. package/dist/sparkle-core/p-9007a06b.entry.js +0 -1
  625. package/dist/sparkle-core/p-90482861.entry.js +0 -1
  626. package/dist/sparkle-core/p-a061537e.entry.js +0 -1
  627. package/dist/sparkle-core/p-a38ea475.js +0 -1
  628. package/dist/sparkle-core/p-aef0bba0.js +0 -1
  629. package/dist/sparkle-core/p-b11fe0c7.js +0 -1
  630. package/dist/sparkle-core/p-bac45a26.entry.js +0 -1
  631. package/dist/sparkle-core/p-bbe5977b.entry.js +0 -1
  632. package/dist/sparkle-core/p-c163c16d.entry.js +0 -1
  633. package/dist/sparkle-core/p-c3166584.entry.js +0 -1
  634. package/dist/sparkle-core/p-c34269ae.entry.js +0 -1
  635. package/dist/sparkle-core/p-c466ee32.js +0 -1
  636. package/dist/sparkle-core/p-c6710592.entry.js +0 -1
  637. package/dist/sparkle-core/p-c7022391.entry.js +0 -1
  638. package/dist/sparkle-core/p-d4ad796c.js +0 -1
  639. package/dist/sparkle-core/p-d6152660.entry.js +0 -1
  640. package/dist/sparkle-core/p-d63406d8.js +0 -1
  641. package/dist/sparkle-core/p-dba672d5.entry.js +0 -1
  642. package/dist/sparkle-core/p-dd73d01a.entry.js +0 -1
  643. package/dist/sparkle-core/p-de33872d.entry.js +0 -1
  644. package/dist/sparkle-core/p-dee2128a.entry.js +0 -1
  645. package/dist/sparkle-core/p-df07e132.entry.js +0 -1
  646. package/dist/sparkle-core/p-e23bd285.js +0 -3
  647. package/dist/sparkle-core/p-e4f41e16.entry.js +0 -1
  648. package/dist/sparkle-core/p-e5d5aaa5.js +0 -1
  649. package/dist/sparkle-core/p-e72c6d87.entry.js +0 -1
  650. package/dist/sparkle-core/p-e8df6ea6.entry.js +0 -1
  651. package/dist/sparkle-core/p-ef2a2172.js +0 -1
  652. package/dist/sparkle-core/p-f1a4ab33.entry.js +0 -1
  653. package/dist/sparkle-core/p-f43ac631.entry.js +0 -1
  654. package/dist/sparkle-core/p-f8063d7b.js +0 -1
  655. package/dist/sparkle-core/p-fd62283e.entry.js +0 -1
  656. package/dist/sparkle-core/p-fef71e0e.entry.js +0 -1
@@ -2,12 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-fbf4d3bf.js');
6
- const ionicGlobal = require('./ionic-global-4930d319.js');
7
- const helpers = require('./helpers-26770c32.js');
8
- const theme = require('./theme-98ccfc24.js');
5
+ const index = require('./index-bae2a754.js');
6
+ const ionicGlobal = require('./ionic-global-878073d1.js');
7
+ const helpers = require('./helpers-7e28976c.js');
8
+ const dir = require('./dir-5af5259a.js');
9
+ const theme = require('./theme-4252ac15.js');
9
10
 
10
- const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}";
11
+ const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden;touch-action:manipulation}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:flex;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;transform:translateZ(0)}";
11
12
 
12
13
  const Content = class {
13
14
  constructor(hostRef) {
@@ -20,6 +21,7 @@ const Content = class {
20
21
  this.queued = false;
21
22
  this.cTop = -1;
22
23
  this.cBottom = -1;
24
+ this.isMainContent = true;
23
25
  // Detail is used in a hot loop in the scroll event, by allocating it here
24
26
  // V8 will be able to inline any read/write to it since it's a monomorphic class.
25
27
  // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
@@ -61,18 +63,15 @@ const Content = class {
61
63
  */
62
64
  this.scrollEvents = false;
63
65
  }
66
+ connectedCallback() {
67
+ this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
68
+ }
64
69
  disconnectedCallback() {
65
70
  this.onScrollEnd();
66
71
  }
67
72
  onAppLoad() {
68
73
  this.resize();
69
74
  }
70
- onClick(ev) {
71
- if (this.isScrolling) {
72
- ev.preventDefault();
73
- ev.stopPropagation();
74
- }
75
- }
76
75
  shouldForceOverscroll() {
77
76
  const { forceOverscroll } = this;
78
77
  const mode = ionicGlobal.getIonMode(this);
@@ -125,7 +124,14 @@ const Content = class {
125
124
  * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
126
125
  * and `scrollToPoint()` to scroll the content into a certain point.
127
126
  */
128
- getScrollElement() {
127
+ async getScrollElement() {
128
+ /**
129
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
130
+ * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.
131
+ */
132
+ if (!this.scrollEl) {
133
+ await new Promise(resolve => helpers.componentOnReady(this.el, resolve));
134
+ }
129
135
  return Promise.resolve(this.scrollEl);
130
136
  }
131
137
  /**
@@ -141,8 +147,9 @@ const Content = class {
141
147
  *
142
148
  * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
143
149
  */
144
- scrollToBottom(duration = 0) {
145
- const y = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;
150
+ async scrollToBottom(duration = 0) {
151
+ const scrollEl = await this.getScrollElement();
152
+ const y = scrollEl.scrollHeight - scrollEl.clientHeight;
146
153
  return this.scrollToPoint(undefined, y, duration);
147
154
  }
148
155
  /**
@@ -152,8 +159,9 @@ const Content = class {
152
159
  * @param y The amount to scroll by on the vertical axis.
153
160
  * @param duration The amount of time to take scrolling by that amount.
154
161
  */
155
- scrollByPoint(x, y, duration) {
156
- return this.scrollToPoint(x + this.scrollEl.scrollLeft, y + this.scrollEl.scrollTop, duration);
162
+ async scrollByPoint(x, y, duration) {
163
+ const scrollEl = await this.getScrollElement();
164
+ return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);
157
165
  }
158
166
  /**
159
167
  * Scroll to a specified X/Y location in the component.
@@ -163,7 +171,7 @@ const Content = class {
163
171
  * @param duration The amount of time to take scrolling to that point. Defaults to `0`.
164
172
  */
165
173
  async scrollToPoint(x, y, duration = 0) {
166
- const el = this.scrollEl;
174
+ const el = await this.getScrollElement();
167
175
  if (duration < 32) {
168
176
  if (y != null) {
169
177
  el.scrollTop = y;
@@ -233,24 +241,27 @@ const Content = class {
233
241
  }
234
242
  }
235
243
  render() {
236
- const { scrollX, scrollY } = this;
244
+ const { isMainContent, scrollX, scrollY, el } = this;
245
+ const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
237
246
  const mode = ionicGlobal.getIonMode(this);
238
247
  const forceOverscroll = this.shouldForceOverscroll();
239
- const transitionShadow = (mode === 'ios' && ionicGlobal.config.getBoolean('experimentalTransitionShadow', true));
248
+ const transitionShadow = mode === 'ios';
249
+ const TagType = isMainContent ? 'main' : 'div';
240
250
  this.resize();
241
251
  return (index.h(index.Host, { class: theme.createColorClasses(this.color, {
242
252
  [mode]: true,
243
253
  'content-sizing': theme.hostContext('ion-popover', this.el),
244
254
  'overscroll': forceOverscroll,
255
+ [`content-${rtl}`]: true
245
256
  }), style: {
246
257
  '--offset-top': `${this.cTop}px`,
247
258
  '--offset-bottom': `${this.cBottom}px`,
248
- } }, index.h("div", { id: "background-content", part: "background" }), index.h("main", { class: {
259
+ } }, index.h("div", { id: "background-content", part: "background" }), index.h(TagType, { class: {
249
260
  'inner-scroll': true,
250
261
  'scroll-x': scrollX,
251
262
  'scroll-y': scrollY,
252
263
  'overscroll': (scrollX || scrollY) && forceOverscroll
253
- }, ref: el => this.scrollEl = el, onScroll: (this.scrollEvents) ? ev => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", null)), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, index.h("slot", { name: "fixed" })));
264
+ }, ref: (scrollEl) => this.scrollEl = scrollEl, onScroll: (this.scrollEvents) ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", null)), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, index.h("slot", { name: "fixed" })));
254
265
  }
255
266
  get el() { return index.getElement(this); }
256
267
  };
@@ -270,7 +281,12 @@ const getPageElement = (el) => {
270
281
  if (tabs) {
271
282
  return tabs;
272
283
  }
273
- const page = el.closest('ion-app,ion-page,.ion-page,page-inner');
284
+ /**
285
+ * If we're in a popover, we need to use its wrapper so we can account for space
286
+ * between the popover and the edges of the screen. But if the popover contains
287
+ * its own page element, we should use that instead.
288
+ */
289
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
274
290
  if (page) {
275
291
  return page;
276
292
  }
@@ -305,6 +321,9 @@ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
305
321
  };
306
322
  Content.style = contentCss;
307
323
 
324
+ /*!
325
+ * (C) Ionic http://ionicframework.com - MIT License
326
+ */
308
327
  const TRANSITION = 'all 0.2s ease-in-out';
309
328
  const cloneElement = (tagName) => {
310
329
  const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`);
@@ -349,15 +368,24 @@ const handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {
349
368
  }
350
369
  });
351
370
  };
352
- const setToolbarBackgroundOpacity = (toolbar, opacity) => {
371
+ const setToolbarBackgroundOpacity = (headerEl, opacity) => {
372
+ /**
373
+ * Fading in the backdrop opacity
374
+ * should happen after the large title
375
+ * has collapsed, so it is handled
376
+ * by handleHeaderFade()
377
+ */
378
+ if (headerEl.collapse === 'fade') {
379
+ return;
380
+ }
353
381
  if (opacity === undefined) {
354
- toolbar.background.style.removeProperty('--opacity');
382
+ headerEl.style.removeProperty('--opacity-scale');
355
383
  }
356
384
  else {
357
- toolbar.background.style.setProperty('--opacity', opacity.toString());
385
+ headerEl.style.setProperty('--opacity-scale', opacity.toString());
358
386
  }
359
387
  };
360
- const handleToolbarBorderIntersection = (ev, mainHeaderIndex) => {
388
+ const handleToolbarBorderIntersection = (ev, mainHeaderIndex, scrollTop) => {
361
389
  if (!ev[0].isIntersecting) {
362
390
  return;
363
391
  }
@@ -366,20 +394,24 @@ const handleToolbarBorderIntersection = (ev, mainHeaderIndex) => {
366
394
  * does not always reset the scrollTop position to 0 when letting go. It will
367
395
  * set to 1 once the rubber band effect has ended. This causes the background to
368
396
  * appear slightly on certain app setups.
397
+ *
398
+ * Additionally, we check if user is rubber banding (scrolling is negative)
399
+ * as this can mean they are using pull to refresh. Once the refresher starts,
400
+ * the content is transformed which can cause the intersection observer to erroneously
401
+ * fire here as well.
369
402
  */
370
- const scale = (ev[0].intersectionRatio > 0.9) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;
371
- mainHeaderIndex.toolbars.forEach(toolbar => {
372
- setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale);
373
- });
403
+ const scale = (ev[0].intersectionRatio > 0.9 || scrollTop <= 0) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;
404
+ setToolbarBackgroundOpacity(mainHeaderIndex.el, (scale === 1) ? undefined : scale);
374
405
  };
375
406
  /**
376
407
  * If toolbars are intersecting, hide the scrollable toolbar content
377
408
  * and show the primary toolbar content. If the toolbars are not intersecting,
378
409
  * hide the primary toolbar content and show the scrollable toolbar content
379
410
  */
380
- const handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex) => {
411
+ const handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
381
412
  index.writeTask(() => {
382
- handleToolbarBorderIntersection(ev, mainHeaderIndex);
413
+ const scrollTop = scrollEl.scrollTop;
414
+ handleToolbarBorderIntersection(ev, mainHeaderIndex, scrollTop);
383
415
  const event = ev[0];
384
416
  const intersection = event.intersectionRect;
385
417
  const intersectionArea = intersection.width * intersection.height;
@@ -405,10 +437,10 @@ const handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex) => {
405
437
  * only Safari + CSS Animations.
406
438
  */
407
439
  const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);
408
- if (hasValidIntersection) {
440
+ if (hasValidIntersection && scrollTop > 0) {
409
441
  setHeaderActive(mainHeaderIndex);
410
442
  setHeaderActive(scrollHeaderIndex, false);
411
- setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]);
443
+ setToolbarBackgroundOpacity(mainHeaderIndex.el);
412
444
  }
413
445
  }
414
446
  });
@@ -432,15 +464,46 @@ const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
432
464
  titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;
433
465
  });
434
466
  };
467
+ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
468
+ index.readTask(() => {
469
+ const scrollTop = scrollEl.scrollTop;
470
+ const baseElHeight = baseEl.clientHeight;
471
+ const fadeStart = (condenseHeader) ? condenseHeader.clientHeight : 0;
472
+ /**
473
+ * If we are using fade header with a condense
474
+ * header, then the toolbar backgrounds should
475
+ * not begin to fade in until the condense
476
+ * header has fully collapsed.
477
+ *
478
+ * Additionally, the main content should not
479
+ * overflow out of the container until the
480
+ * condense header has fully collapsed. When
481
+ * using just the condense header the content
482
+ * should overflow out of the container.
483
+ */
484
+ if ((condenseHeader !== null) && (scrollTop < fadeStart)) {
485
+ baseEl.style.setProperty('--opacity-scale', '0');
486
+ scrollEl.style.setProperty('clip-path', `inset(${baseElHeight}px 0px 0px 0px)`);
487
+ return;
488
+ }
489
+ const distanceToStart = scrollTop - fadeStart;
490
+ const fadeDuration = 10;
491
+ const scale = helpers.clamp(0, (distanceToStart / fadeDuration), 1);
492
+ index.writeTask(() => {
493
+ scrollEl.style.removeProperty('clip-path');
494
+ baseEl.style.setProperty('--opacity-scale', scale.toString());
495
+ });
496
+ });
497
+ };
435
498
 
436
- const headerIosCss = "ion-header{display:block;position:relative;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports (backdrop-filter: blur(0)){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}";
499
+ const headerIosCss = "ion-header{display:block;position:relative;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports (backdrop-filter: blur(0)){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}";
437
500
 
438
501
  const headerMdCss = "ion-header{display:block;position:relative;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md::after{left:0;bottom:-5px;background-position:left 0 top -2px;position:absolute;width:100%;height:5px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==);background-repeat:repeat-x;content:\"\"}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{left:unset;right:unset;right:0}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{background-position:right 0 top -2px}.header-collapse-condense{display:none}.header-md.ion-no-border::after{display:none}";
439
502
 
440
503
  const Header = class {
441
504
  constructor(hostRef) {
442
505
  index.registerInstance(this, hostRef);
443
- this.collapsibleHeaderInitialized = false;
506
+ this.inheritedAttributes = {};
444
507
  /**
445
508
  * If `true`, the header will be translucent.
446
509
  * Only applies when the mode is `"ios"` and the device supports
@@ -450,24 +513,43 @@ const Header = class {
450
513
  * attribute needs to be set on the content.
451
514
  */
452
515
  this.translucent = false;
516
+ this.setupFadeHeader = async (contentEl, condenseHeader) => {
517
+ if (!contentEl) {
518
+ console.error('ion-header requires a content to collapse. Make sure there is an ion-content.');
519
+ return;
520
+ }
521
+ await new Promise(resolve => helpers.componentOnReady(contentEl, resolve));
522
+ const scrollEl = this.scrollEl = await contentEl.getScrollElement();
523
+ /**
524
+ * Handle fading of toolbars on scroll
525
+ */
526
+ this.contentScrollCallback = () => { handleHeaderFade(this.scrollEl, this.el, condenseHeader); };
527
+ scrollEl.addEventListener('scroll', this.contentScrollCallback);
528
+ handleHeaderFade(this.scrollEl, this.el, condenseHeader);
529
+ };
453
530
  }
454
- async componentDidLoad() {
455
- await this.checkCollapsibleHeader();
531
+ componentWillLoad() {
532
+ this.inheritedAttributes = helpers.inheritAttributes(this.el, ['role']);
456
533
  }
457
- async componentDidUpdate() {
458
- await this.checkCollapsibleHeader();
534
+ componentDidLoad() {
535
+ this.checkCollapsibleHeader();
536
+ }
537
+ componentDidUpdate() {
538
+ this.checkCollapsibleHeader();
459
539
  }
460
540
  disconnectedCallback() {
461
541
  this.destroyCollapsibleHeader();
462
542
  }
463
543
  async checkCollapsibleHeader() {
464
- // Determine if the header can collapse
465
- const hasCollapse = this.collapse === 'condense';
466
- const canCollapse = (hasCollapse && ionicGlobal.getIonMode(this) === 'ios') ? hasCollapse : false;
467
- if (!canCollapse && this.collapsibleHeaderInitialized) {
468
- this.destroyCollapsibleHeader();
544
+ const mode = ionicGlobal.getIonMode(this);
545
+ if (mode !== 'ios') {
546
+ return;
469
547
  }
470
- else if (canCollapse && !this.collapsibleHeaderInitialized) {
548
+ const { collapse } = this;
549
+ const hasCondense = collapse === 'condense';
550
+ const hasFade = collapse === 'fade';
551
+ this.destroyCollapsibleHeader();
552
+ if (hasCondense) {
471
553
  const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
472
554
  const contentEl = (pageEl) ? pageEl.querySelector('ion-content') : null;
473
555
  // Cloned elements are always needed in iOS transition
@@ -476,7 +558,13 @@ const Header = class {
476
558
  title.size = 'large';
477
559
  cloneElement('ion-back-button');
478
560
  });
479
- await this.setupCollapsibleHeader(contentEl, pageEl);
561
+ await this.setupCondenseHeader(contentEl, pageEl);
562
+ }
563
+ else if (hasFade) {
564
+ const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');
565
+ const contentEl = (pageEl) ? pageEl.querySelector('ion-content') : null;
566
+ const condenseHeader = (contentEl) ? contentEl.querySelector('ion-header[collapse="condense"]') : null;
567
+ await this.setupFadeHeader(contentEl, condenseHeader);
480
568
  }
481
569
  }
482
570
  destroyCollapsibleHeader() {
@@ -493,7 +581,7 @@ const Header = class {
493
581
  this.collapsibleMainHeader = undefined;
494
582
  }
495
583
  }
496
- async setupCollapsibleHeader(contentEl, pageEl) {
584
+ async setupCondenseHeader(contentEl, pageEl) {
497
585
  if (!contentEl || !pageEl) {
498
586
  console.error('ion-header requires a content to collapse, make sure there is an ion-content.');
499
587
  return;
@@ -501,6 +589,7 @@ const Header = class {
501
589
  if (typeof IntersectionObserver === 'undefined') {
502
590
  return;
503
591
  }
592
+ await new Promise(resolve => helpers.componentOnReady(contentEl, resolve));
504
593
  this.scrollEl = await contentEl.getScrollElement();
505
594
  const headers = pageEl.querySelectorAll('ion-header');
506
595
  this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');
@@ -513,16 +602,14 @@ const Header = class {
513
602
  return;
514
603
  }
515
604
  setHeaderActive(mainHeaderIndex, false);
516
- mainHeaderIndex.toolbars.forEach(toolbar => {
517
- setToolbarBackgroundOpacity(toolbar, 0);
518
- });
605
+ setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);
519
606
  /**
520
607
  * Handle interaction between toolbar collapse and
521
608
  * showing/hiding content in the primary ion-header
522
609
  * as well as progressively showing/hiding the main header
523
610
  * border as the top-most toolbar collapses or expands.
524
611
  */
525
- const toolbarIntersection = (ev) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex); };
612
+ const toolbarIntersection = (ev) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex, this.scrollEl); };
526
613
  this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] });
527
614
  this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);
528
615
  /**
@@ -537,20 +624,21 @@ const Header = class {
537
624
  this.collapsibleMainHeader.classList.add('header-collapse-main');
538
625
  }
539
626
  });
540
- this.collapsibleHeaderInitialized = true;
541
627
  }
542
628
  render() {
543
- const { translucent } = this;
629
+ const { translucent, inheritedAttributes } = this;
544
630
  const mode = ionicGlobal.getIonMode(this);
545
631
  const collapse = this.collapse || 'none';
546
- return (index.h(index.Host, { role: "banner", class: {
632
+ // banner role must be at top level, so remove role if inside a menu
633
+ const roleType = theme.hostContext('ion-menu', this.el) ? 'none' : 'banner';
634
+ return (index.h(index.Host, Object.assign({ role: roleType, class: {
547
635
  [mode]: true,
548
636
  // Used internally for styling
549
637
  [`header-${mode}`]: true,
550
638
  [`header-translucent`]: this.translucent,
551
639
  [`header-collapse-${collapse}`]: true,
552
640
  [`header-translucent-${mode}`]: this.translucent,
553
- } }, mode === 'ios' && translucent &&
641
+ } }, inheritedAttributes), mode === 'ios' && translucent &&
554
642
  index.h("div", { class: "header-background" }), index.h("slot", null)));
555
643
  }
556
644
  get el() { return index.getElement(this); }