@sparkle-learning/core 0.0.27 → 0.0.30

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 (697) hide show
  1. package/dist/cjs/{PrivateRoute-cee9b061.js → PrivateRoute-043bb7d3.js} +6 -40
  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-66405969.js +124 -0
  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 +18001 -0
  19. package/dist/cjs/{helpers-26770c32.js → helpers-7e28976c.js} +122 -3
  20. package/dist/cjs/{icons-a0fef92b.js → icons-b8a2231a.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 +8 -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/localstorage.service-6346a41d.js +40 -0
  100. package/dist/cjs/{md.transition-3652ad78.js → md.transition-7eb9a1a7.js} +7 -4
  101. package/dist/cjs/{menu-toggle-util-a8fb4c56.js → menu-toggle-util-cb549c2c.js} +4 -1
  102. package/dist/cjs/{overlays-08a817ea.js → overlays-0a748609.js} +188 -47
  103. package/dist/cjs/{purify-596fc2d6.js → purify-d0ad2883.js} +187 -74
  104. package/dist/cjs/sparkle-animation-player.cjs.entry.js +56 -50
  105. package/dist/cjs/sparkle-character-intro.cjs.entry.js +26 -0
  106. package/dist/cjs/sparkle-code.cjs.entry.js +2 -2
  107. package/dist/cjs/sparkle-compass-post.cjs.entry.js +1 -1
  108. package/dist/cjs/sparkle-compass.cjs.entry.js +1 -1
  109. package/dist/cjs/sparkle-core.cjs.js +7 -7
  110. package/dist/cjs/sparkle-emoji.cjs.entry.js +1 -1
  111. package/dist/cjs/sparkle-facilitator-notes-form.cjs.entry.js +7 -7
  112. package/dist/cjs/sparkle-feed-post.cjs.entry.js +1 -1
  113. package/dist/cjs/sparkle-feedback.cjs.entry.js +7 -7
  114. package/dist/cjs/sparkle-goal-form.cjs.entry.js +15 -14
  115. package/dist/cjs/sparkle-gww-comment-list.cjs.entry.js +1 -1
  116. package/dist/cjs/sparkle-gww-graph.cjs.entry.js +1 -1
  117. package/dist/cjs/sparkle-lower-content-nav.cjs.entry.js +1 -1
  118. package/dist/cjs/sparkle-menu-collapsible.cjs.entry.js +2 -2
  119. package/dist/cjs/sparkle-modal-image.cjs.entry.js +1 -1
  120. package/dist/cjs/sparkle-notfound-page.cjs.entry.js +1 -1
  121. package/dist/cjs/sparkle-overlay.cjs.entry.js +1 -1
  122. package/dist/cjs/sparkle-poll.cjs.entry.js +1 -1
  123. package/dist/cjs/sparkle-quiz-container.cjs.entry.js +1 -1
  124. package/dist/cjs/sparkle-quiz-feedback_5.cjs.entry.js +1 -1
  125. package/dist/cjs/sparkle-quiz.cjs.entry.js +2 -2
  126. package/dist/cjs/sparkle-select.cjs.entry.js +1 -1
  127. package/dist/cjs/sparkle-sidebar.cjs.entry.js +1 -1
  128. package/dist/cjs/sparkle-tab.cjs.entry.js +1 -1
  129. package/dist/cjs/sparkle-table-of-contents.cjs.entry.js +1 -1
  130. package/dist/cjs/sparkle-tabs.cjs.entry.js +1 -1
  131. package/dist/cjs/sparkle-youtube.cjs.entry.js +2 -2
  132. package/dist/cjs/{spinner-configs-559523fd.js → spinner-configs-6f6b7ef0.js} +36 -1
  133. package/dist/cjs/status-tap-8697433c.js +40 -0
  134. package/dist/cjs/stencil-async-content.cjs.entry.js +1 -1
  135. package/dist/cjs/stencil-route-title.cjs.entry.js +2 -2
  136. package/dist/cjs/stencil-router-prompt.cjs.entry.js +2 -2
  137. package/dist/cjs/{student.service-41c7c78d.js → student.service-744c3155.js} +1 -1
  138. package/dist/cjs/{swipe-back-c1951cbd.js → swipe-back-7e08b5e0.js} +32 -8
  139. package/dist/cjs/{swiper.bundle-cbea42d8.js → swiper.bundle-8c897c07.js} +4 -4
  140. package/dist/cjs/{tap-click-cd858b48.js → tap-click-1caf1780.js} +8 -1
  141. package/dist/cjs/{theme-98ccfc24.js → theme-4252ac15.js} +3 -0
  142. package/dist/cjs/util-d383acb8.js +2462 -0
  143. package/dist/collection/collection-manifest.json +9 -2
  144. package/dist/collection/components/layout/page/page.js +1 -0
  145. package/dist/collection/components/sparkle-animation-player/sparkle-animation-player.js +78 -66
  146. package/dist/collection/components/sparkle-character-intro/assets/characters/character-img.jpg +0 -0
  147. package/dist/collection/components/sparkle-character-intro/assets/characters/jen.png +0 -0
  148. package/dist/collection/components/sparkle-character-intro/assets/characters/kimberly.png +0 -0
  149. package/dist/collection/components/sparkle-character-intro/assets/characters/valeria.png +0 -0
  150. package/dist/collection/components/sparkle-character-intro/assets/characters/yuna.png +0 -0
  151. package/dist/collection/components/sparkle-character-intro/assets/characters/zynab.png +0 -0
  152. package/dist/collection/components/sparkle-character-intro/sparkle-character-intro.css +67 -0
  153. package/dist/collection/components/sparkle-character-intro/sparkle-character-intro.js +64 -0
  154. package/dist/collection/components/sparkle-course-root/sparkle-course-root.js +48 -43
  155. package/dist/collection/components/sparkle-youtube/sparkle-youtube.js +6 -2
  156. package/dist/collection/util.js +1 -0
  157. package/dist/esm/{PrivateRoute-9f0973bb.js → PrivateRoute-b9937c45.js} +3 -37
  158. package/dist/esm/{active-router-b3ae32c7.js → active-router-909088d6.js} +1 -1
  159. package/dist/esm/{animation-72fdacfb.js → animation-b306f6c2.js} +28 -4
  160. package/dist/esm/app-globals-5c736ae5.js +7 -0
  161. package/dist/esm/auth.store-3ed2389e.js +4061 -0
  162. package/dist/esm/compass-svg.entry.js +1 -1
  163. package/dist/esm/context-consumer.entry.js +1 -1
  164. package/dist/esm/course-select.entry.js +1 -1
  165. package/dist/esm/{cubic-bezier-ed243a9b.js → cubic-bezier-a7ad9c8e.js} +3 -0
  166. package/dist/esm/dir-03012648.js +18 -0
  167. package/dist/esm/{facilitator.service-cddb2feb.js → facilitator.service-ec0a9739.js} +1 -1
  168. package/dist/esm/feed.service-33b83cb7.js +119 -0
  169. package/dist/esm/focus-visible-40cda868.js +61 -0
  170. package/dist/esm/framework-delegate-3bc58c27.js +109 -0
  171. package/dist/esm/{gesture-controller-604336b7.js → gesture-controller-686622ba.js} +3 -0
  172. package/dist/esm/{haptic-67928174.js → haptic-99c9e346.js} +4 -1
  173. package/dist/esm/{hardware-back-button-508e48cf.js → hardware-back-button-b6ccf74a.js} +3 -0
  174. package/dist/esm/header-mobile-collapse_61.entry.js +17937 -0
  175. package/dist/esm/{helpers-e7f66b2b.js → helpers-39367fe1.js} +119 -4
  176. package/dist/esm/{icons-33e5804c.js → icons-5debfbaf.js} +1 -1
  177. package/dist/esm/{index-cc97b114.js → index-435af8e6.js} +3 -0
  178. package/dist/esm/{index-55fc9f5e.js → index-5568e3fa.js} +303 -208
  179. package/dist/esm/{index-dc09784f.js → index-9594837e.js} +20 -4
  180. package/dist/esm/{index-b2ad0f1a.js → index-a12c14bd.js} +25 -4
  181. package/dist/esm/{index-a94619f9.js → index-c26d8655.js} +34 -5
  182. package/dist/esm/index-dc61f152.js +22 -0
  183. package/dist/esm/index.es-97dd8174.js +10585 -0
  184. package/dist/esm/index.js +8 -7
  185. package/dist/esm/{input-shims-3a97fa86.js → input-shims-cc98ea92.js} +34 -10
  186. package/dist/esm/ion-accordion-group.entry.js +193 -0
  187. package/dist/esm/ion-accordion.entry.js +336 -0
  188. package/dist/esm/ion-action-sheet_4.entry.js +2196 -0
  189. package/dist/esm/ion-app.entry.js +23 -8
  190. package/dist/esm/ion-back-button.entry.js +14 -9
  191. package/dist/esm/ion-backdrop.entry.js +3 -3
  192. package/dist/esm/ion-badge.entry.js +3 -3
  193. package/dist/esm/ion-breadcrumb.entry.js +99 -0
  194. package/dist/esm/ion-breadcrumbs.entry.js +131 -0
  195. package/dist/esm/ion-buttons_3.entry.js +7 -6
  196. package/dist/esm/ion-card-header.entry.js +3 -3
  197. package/dist/esm/ion-card-subtitle.entry.js +3 -3
  198. package/dist/esm/ion-card-title.entry.js +3 -3
  199. package/dist/esm/ion-chip.entry.js +3 -3
  200. package/dist/esm/ion-content_2.entry.js +144 -56
  201. package/dist/esm/ion-datetime.entry.js +1902 -779
  202. package/dist/esm/ion-fab-button.entry.js +5 -4
  203. package/dist/esm/ion-fab-list.entry.js +2 -2
  204. package/dist/esm/ion-fab.entry.js +2 -2
  205. package/dist/esm/ion-footer.entry.js +79 -4
  206. package/dist/esm/ion-img.entry.js +33 -7
  207. package/dist/esm/ion-infinite-scroll-content.entry.js +3 -3
  208. package/dist/esm/ion-infinite-scroll.entry.js +4 -2
  209. package/dist/esm/ion-item-divider.entry.js +3 -3
  210. package/dist/esm/ion-item-group.entry.js +2 -2
  211. package/dist/esm/ion-item-option.entry.js +4 -4
  212. package/dist/esm/ion-item-options.entry.js +3 -3
  213. package/dist/esm/ion-item-sliding.entry.js +52 -8
  214. package/dist/esm/ion-loading.entry.js +23 -11
  215. package/dist/esm/ion-menu-button.entry.js +17 -11
  216. package/dist/esm/ion-menu-toggle.entry.js +7 -7
  217. package/dist/esm/ion-menu.entry.js +141 -29
  218. package/dist/esm/ion-modal.entry.js +649 -75
  219. package/dist/esm/ion-nav-link.entry.js +4 -1
  220. package/dist/esm/ion-nav.entry.js +140 -137
  221. package/dist/esm/ion-picker-column-internal_2.entry.js +695 -0
  222. package/dist/esm/ion-picker-column.entry.js +5 -5
  223. package/dist/esm/ion-picker.entry.js +18 -11
  224. package/dist/esm/ion-progress-bar.entry.js +17 -13
  225. package/dist/esm/ion-refresher-content.entry.js +7 -6
  226. package/dist/esm/ion-refresher.entry.js +82 -83
  227. package/dist/esm/ion-reorder-group.entry.js +9 -8
  228. package/dist/esm/ion-reorder.entry.js +5 -4
  229. package/dist/esm/ion-route-redirect.entry.js +1 -1
  230. package/dist/esm/ion-route.entry.js +1 -1
  231. package/dist/esm/ion-router-link.entry.js +3 -3
  232. package/dist/esm/ion-router-outlet.entry.js +50 -12
  233. package/dist/esm/ion-router.entry.js +378 -234
  234. package/dist/esm/ion-searchbar.entry.js +50 -17
  235. package/dist/esm/ion-segment-button.entry.js +12 -9
  236. package/dist/esm/ion-segment.entry.js +89 -10
  237. package/dist/esm/ion-select_2.entry.js +64 -30
  238. package/dist/esm/ion-skeleton-text.entry.js +4 -4
  239. package/dist/esm/ion-slide.entry.js +2 -2
  240. package/dist/esm/ion-slides.entry.js +19 -32
  241. package/dist/esm/ion-split-pane.entry.js +8 -3
  242. package/dist/esm/ion-tab-bar.entry.js +25 -12
  243. package/dist/esm/ion-tab-button.entry.js +2 -2
  244. package/dist/esm/ion-tab.entry.js +3 -2
  245. package/dist/esm/ion-tabs.entry.js +1 -1
  246. package/dist/esm/ion-textarea.entry.js +9 -8
  247. package/dist/esm/ion-thumbnail.entry.js +2 -2
  248. package/dist/esm/ion-toast.entry.js +37 -27
  249. package/dist/esm/ion-toggle.entry.js +15 -15
  250. package/dist/esm/ion-virtual-scroll.entry.js +13 -3
  251. package/dist/esm/{ionic-global-1f9287cc.js → ionic-global-0939c477.js} +103 -77
  252. package/dist/esm/{ios.transition-d01abefd.js → ios.transition-b4ca8a33.js} +8 -5
  253. package/dist/esm/{keyboard-06906eac.js → keyboard-2503e874.js} +3 -0
  254. package/dist/esm/loader.js +5 -5
  255. package/dist/esm/localstorage.service-4bf408c8.js +36 -0
  256. package/dist/esm/{md.transition-245ffa55.js → md.transition-ca5e0322.js} +7 -4
  257. package/dist/esm/{menu-toggle-util-fe83fcf5.js → menu-toggle-util-7fa22c2f.js} +4 -1
  258. package/dist/esm/{overlays-8363621c.js → overlays-34cfa9e0.js} +187 -47
  259. package/dist/esm/polyfills/css-shim.js +1 -1
  260. package/dist/esm/polyfills/index.js +2 -2
  261. package/dist/esm/{purify-4247e2d0.js → purify-ffce2b4c.js} +185 -72
  262. package/dist/esm/sparkle-animation-player.entry.js +56 -50
  263. package/dist/esm/sparkle-character-intro.entry.js +22 -0
  264. package/dist/esm/sparkle-code.entry.js +2 -2
  265. package/dist/esm/sparkle-compass-post.entry.js +1 -1
  266. package/dist/esm/sparkle-compass.entry.js +1 -1
  267. package/dist/esm/sparkle-core.js +7 -7
  268. package/dist/esm/sparkle-emoji.entry.js +1 -1
  269. package/dist/esm/sparkle-facilitator-notes-form.entry.js +7 -7
  270. package/dist/esm/sparkle-feed-post.entry.js +1 -1
  271. package/dist/esm/sparkle-feedback.entry.js +7 -7
  272. package/dist/esm/sparkle-goal-form.entry.js +8 -7
  273. package/dist/esm/sparkle-gww-comment-list.entry.js +1 -1
  274. package/dist/esm/sparkle-gww-graph.entry.js +1 -1
  275. package/dist/esm/sparkle-lower-content-nav.entry.js +1 -1
  276. package/dist/esm/sparkle-menu-collapsible.entry.js +2 -2
  277. package/dist/esm/sparkle-modal-image.entry.js +1 -1
  278. package/dist/esm/sparkle-notfound-page.entry.js +1 -1
  279. package/dist/esm/sparkle-overlay.entry.js +1 -1
  280. package/dist/esm/sparkle-poll.entry.js +1 -1
  281. package/dist/esm/sparkle-quiz-container.entry.js +1 -1
  282. package/dist/esm/sparkle-quiz-feedback_5.entry.js +1 -1
  283. package/dist/esm/sparkle-quiz.entry.js +2 -2
  284. package/dist/esm/sparkle-select.entry.js +1 -1
  285. package/dist/esm/sparkle-sidebar.entry.js +1 -1
  286. package/dist/esm/sparkle-tab.entry.js +1 -1
  287. package/dist/esm/sparkle-table-of-contents.entry.js +1 -1
  288. package/dist/esm/sparkle-tabs.entry.js +1 -1
  289. package/dist/esm/sparkle-youtube.entry.js +2 -2
  290. package/dist/esm/{spinner-configs-9536fae2.js → spinner-configs-f609a655.js} +36 -1
  291. package/dist/esm/status-tap-6351a0cb.js +38 -0
  292. package/dist/esm/stencil-async-content.entry.js +1 -1
  293. package/dist/esm/stencil-route-title.entry.js +2 -2
  294. package/dist/esm/stencil-router-prompt.entry.js +2 -2
  295. package/dist/esm/{student.service-c36c5a75.js → student.service-29b688ba.js} +1 -1
  296. package/dist/esm/{swipe-back-21f58ecf.js → swipe-back-34251834.js} +32 -8
  297. package/dist/esm/{swiper.bundle-d4422d52.js → swiper.bundle-b6a959de.js} +4 -4
  298. package/dist/esm/{tap-click-8c728329.js → tap-click-13f1fb0d.js} +8 -1
  299. package/dist/esm/{theme-12606872.js → theme-c336c9d9.js} +3 -0
  300. package/dist/esm/util-6ef753e9.js +2451 -0
  301. package/dist/loader/index.d.ts +0 -1
  302. package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.ios.css +75 -0
  303. package/dist/node_modules/@ionic/core/dist/collection/components/accordion/accordion.md.css +72 -0
  304. package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.ios.css +25 -0
  305. package/dist/node_modules/@ionic/core/dist/collection/components/accordion-group/accordion-group.md.css +59 -0
  306. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.ios.css +10 -19
  307. package/dist/node_modules/@ionic/core/dist/collection/components/action-sheet/action-sheet.md.css +19 -16
  308. package/dist/node_modules/@ionic/core/dist/collection/components/alert/alert.md.css +2 -2
  309. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.ios.css +4 -0
  310. package/dist/node_modules/@ionic/core/dist/collection/components/back-button/back-button.md.css +4 -0
  311. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.ios.css +234 -0
  312. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumb/breadcrumb.md.css +237 -0
  313. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +38 -0
  314. package/dist/node_modules/@ionic/core/dist/collection/components/breadcrumbs/breadcrumbs.md.css +37 -0
  315. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.ios.css +0 -1
  316. package/dist/node_modules/@ionic/core/dist/collection/components/button/button.md.css +5 -5
  317. package/dist/node_modules/@ionic/core/dist/collection/components/content/content.css +60 -14
  318. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.ios.css +586 -68
  319. package/dist/node_modules/@ionic/core/dist/collection/components/datetime/datetime.md.css +575 -68
  320. package/dist/node_modules/@ionic/core/dist/collection/components/footer/footer.ios.css +4 -0
  321. package/dist/node_modules/@ionic/core/dist/collection/components/header/header.ios.css +16 -0
  322. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.ios.css +9 -0
  323. package/dist/node_modules/@ionic/core/dist/collection/components/input/input.md.css +9 -0
  324. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.ios.css +105 -17
  325. package/dist/node_modules/@ionic/core/dist/collection/components/item/item.md.css +295 -22
  326. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.ios.css +6 -6
  327. package/dist/node_modules/@ionic/core/dist/collection/components/item-options/item-options.md.css +6 -6
  328. package/dist/node_modules/@ionic/core/dist/collection/components/item-sliding/item-sliding.css +2 -2
  329. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.ios.css +7 -3
  330. package/dist/node_modules/@ionic/core/dist/collection/components/label/label.md.css +100 -18
  331. package/dist/node_modules/@ionic/core/dist/collection/components/list/list.ios.css +1 -1
  332. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.ios.css +2 -2
  333. package/dist/node_modules/@ionic/core/dist/collection/components/menu/menu.md.css +2 -2
  334. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.ios.css +74 -11
  335. package/dist/node_modules/@ionic/core/dist/collection/components/modal/modal.md.css +48 -4
  336. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +59 -0
  337. package/dist/node_modules/@ionic/core/dist/collection/components/picker-column-internal/picker-column-internal.md.css +62 -0
  338. package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.ios.css +122 -0
  339. package/dist/node_modules/@ionic/core/dist/collection/components/picker-internal/picker-internal.md.css +118 -0
  340. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.ios.css +83 -0
  341. package/dist/node_modules/@ionic/core/dist/collection/components/popover/popover.md.css +49 -0
  342. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.ios.css +53 -38
  343. package/dist/node_modules/@ionic/core/dist/collection/components/progress-bar/progress-bar.md.css +53 -38
  344. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.ios.css +3 -3
  345. package/dist/node_modules/@ionic/core/dist/collection/components/range/range.md.css +5 -5
  346. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.ios.css +12 -0
  347. package/dist/node_modules/@ionic/core/dist/collection/components/refresher/refresher.md.css +2 -2
  348. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.ios.css +1 -1
  349. package/dist/node_modules/@ionic/core/dist/collection/components/searchbar/searchbar.md.css +1 -1
  350. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.ios.css +4 -0
  351. package/dist/node_modules/@ionic/core/dist/collection/components/segment-button/segment-button.md.css +4 -0
  352. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.ios.css +1 -1
  353. package/dist/node_modules/@ionic/core/dist/collection/components/select/select.md.css +30 -2
  354. package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/{select-popover.css → select-popover.ios.css} +4 -4
  355. package/dist/node_modules/@ionic/core/dist/collection/components/select-popover/select-popover.md.css +37 -0
  356. package/dist/node_modules/@ionic/core/dist/collection/components/skeleton-text/skeleton-text.css +4 -4
  357. package/dist/node_modules/@ionic/core/dist/collection/components/spinner/spinner.css +15 -2
  358. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.ios.css +2 -1
  359. package/dist/node_modules/@ionic/core/dist/collection/components/tab-bar/tab-bar.md.css +1 -0
  360. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.ios.css +9 -0
  361. package/dist/node_modules/@ionic/core/dist/collection/components/textarea/textarea.md.css +9 -0
  362. package/dist/node_modules/@ionic/core/dist/collection/components/title/title.ios.css +4 -3
  363. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.ios.css +14 -2
  364. package/dist/node_modules/@ionic/core/dist/collection/components/toast/toast.md.css +14 -2
  365. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.ios.css +1 -0
  366. package/dist/node_modules/@ionic/core/dist/collection/components/toggle/toggle.md.css +1 -0
  367. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.ios.css +3 -2
  368. package/dist/node_modules/@ionic/core/dist/collection/components/toolbar/toolbar.md.css +2 -1
  369. package/dist/node_modules/@ionic/core/dist/collection/components/virtual-scroll/virtual-scroll.css +1 -1
  370. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/button/button.css +49 -0
  371. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/card/card.css +208 -0
  372. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/cards/cards.css +31 -0
  373. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/code/code.css +245 -0
  374. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/dropdown/dropdown.css +115 -0
  375. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header-mobile-collapse/header-mobile-collapse.css +255 -0
  376. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/header/header.css +232 -0
  377. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/collapsible/collapsible.css +3 -0
  378. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu-toggle/menu-toggle.css +25 -0
  379. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/menu/menu.css +71 -0
  380. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/nav/nav.css +194 -0
  381. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/notfound-page/notfound-page.css +4 -0
  382. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/overlay/overlay.css +67 -0
  383. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/page-footer/page-footer.css +18 -0
  384. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/pagination/pagination.css +89 -0
  385. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/select/select.css +52 -0
  386. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sidebar/sidebar.css +98 -0
  387. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/sparkle-lower-content-nav/sparkle-lower-content-nav.css +8 -0
  388. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/table-of-contents/table-of-contents.css +37 -0
  389. package/dist/node_modules/@sparkle-learning/components/dist/collection/components/tabs/tabs.css +64 -0
  390. package/dist/sparkle-core/assets/characters/character-img.jpg +0 -0
  391. package/dist/sparkle-core/assets/characters/jen.png +0 -0
  392. package/dist/sparkle-core/assets/characters/kimberly.png +0 -0
  393. package/dist/sparkle-core/assets/characters/valeria.png +0 -0
  394. package/dist/sparkle-core/assets/characters/yuna.png +0 -0
  395. package/dist/sparkle-core/assets/characters/zynab.png +0 -0
  396. package/dist/sparkle-core/index.esm.js +1 -1
  397. package/dist/sparkle-core/p-0146afa0.entry.js +1 -0
  398. package/dist/sparkle-core/{p-52355989.entry.js → p-016a7aaf.entry.js} +1 -1
  399. package/dist/sparkle-core/p-0187adef.entry.js +1 -0
  400. package/dist/sparkle-core/p-03189863.js +1 -0
  401. package/dist/sparkle-core/{p-d4d9aa4a.entry.js → p-03ec54a8.entry.js} +1 -1
  402. package/dist/sparkle-core/p-04583c51.entry.js +1 -0
  403. package/dist/sparkle-core/{p-6d506f4e.js → p-052caa63.js} +1 -1
  404. package/dist/sparkle-core/{p-016bf847.entry.js → p-057f6a23.entry.js} +1 -1
  405. package/dist/sparkle-core/p-0580419b.entry.js +1 -0
  406. package/dist/sparkle-core/{p-c563b4de.js → p-063cd168.js} +4 -1
  407. package/dist/sparkle-core/p-081968cc.entry.js +1 -0
  408. package/dist/sparkle-core/p-0934f5dd.entry.js +1 -0
  409. package/dist/sparkle-core/{p-3f5d7a08.entry.js → p-11cf398a.entry.js} +1 -1
  410. package/dist/sparkle-core/p-1339830f.entry.js +1 -0
  411. package/dist/sparkle-core/p-145e40f5.entry.js +1 -0
  412. package/dist/sparkle-core/{p-68f3c93d.entry.js → p-1726da2f.entry.js} +1 -1
  413. package/dist/sparkle-core/p-173d5461.entry.js +7 -0
  414. package/dist/sparkle-core/p-18e62133.entry.js +1 -0
  415. package/dist/sparkle-core/p-1af044f7.js +3 -0
  416. package/dist/sparkle-core/p-1b78dea1.entry.js +1 -0
  417. package/dist/sparkle-core/p-1cef8572.js +4 -0
  418. package/dist/sparkle-core/p-1df05176.js +4 -0
  419. package/dist/sparkle-core/p-21bf4ca0.entry.js +1 -0
  420. package/dist/sparkle-core/p-21db4e8e.entry.js +1 -0
  421. package/dist/sparkle-core/p-23a9f7d1.entry.js +1 -0
  422. package/dist/sparkle-core/p-289a35ed.entry.js +1 -0
  423. package/dist/sparkle-core/p-2ee6a5f9.entry.js +1 -0
  424. package/dist/sparkle-core/p-350adbaa.entry.js +1 -0
  425. package/dist/sparkle-core/{p-bccd9036.entry.js → p-35a7bd6c.entry.js} +1 -1
  426. package/dist/sparkle-core/{p-66e3bd1c.entry.js → p-37c00e39.entry.js} +1 -1
  427. package/dist/sparkle-core/p-389500fd.js +4 -0
  428. package/dist/sparkle-core/p-39e5a90f.entry.js +1 -0
  429. package/dist/sparkle-core/{p-ac5e5308.entry.js → p-3a202a38.entry.js} +1 -1
  430. package/dist/sparkle-core/p-3defe550.entry.js +1 -0
  431. package/dist/sparkle-core/p-45e6db62.entry.js +1 -0
  432. package/dist/sparkle-core/{p-581ca370.entry.js → p-48f9b960.entry.js} +1 -1
  433. package/dist/sparkle-core/{p-0efbc0b3.entry.js → p-4dc3ef96.entry.js} +1 -1
  434. package/dist/sparkle-core/p-506221fe.js +4 -0
  435. package/dist/sparkle-core/p-50aac721.entry.js +7 -0
  436. package/dist/sparkle-core/p-513794b0.js +16 -0
  437. package/dist/sparkle-core/{p-2e4e8117.js → p-5264da79.js} +3 -0
  438. package/dist/sparkle-core/{p-40db85ac.entry.js → p-547b70c6.entry.js} +1 -1
  439. package/dist/sparkle-core/p-5598650a.entry.js +1 -0
  440. package/dist/sparkle-core/p-55ae49e1.js +4 -0
  441. package/dist/sparkle-core/p-58e98f89.entry.js +1 -0
  442. package/dist/sparkle-core/p-59f7bf6e.entry.js +1 -0
  443. package/dist/sparkle-core/p-5a3d0e6b.js +4 -0
  444. package/dist/sparkle-core/{p-85d31769.entry.js → p-5b40aae5.entry.js} +1 -1
  445. package/dist/sparkle-core/p-5c9aa1f9.entry.js +4 -0
  446. package/dist/sparkle-core/p-5d2e54ee.entry.js +1 -0
  447. package/dist/sparkle-core/p-5d409601.js +1 -0
  448. package/dist/sparkle-core/{p-afbaad64.entry.js → p-5f45d206.entry.js} +1 -1
  449. package/dist/sparkle-core/p-5ff6416d.entry.js +7 -0
  450. package/dist/sparkle-core/{p-cf2332bb.entry.js → p-62a6c96f.entry.js} +1 -1
  451. package/dist/sparkle-core/p-64e72f8f.js +4 -0
  452. package/dist/sparkle-core/p-660e0742.js +1 -0
  453. package/dist/sparkle-core/{p-d5023db0.entry.js → p-667accac.entry.js} +1 -1
  454. package/dist/sparkle-core/{p-9ca56f5d.entry.js → p-680663a2.entry.js} +1 -1
  455. package/dist/sparkle-core/{p-e975924a.entry.js → p-6823e6c1.entry.js} +1 -1
  456. package/dist/sparkle-core/p-69e7783d.js +4 -0
  457. package/dist/sparkle-core/p-6bbabb80.entry.js +1 -0
  458. package/dist/sparkle-core/p-6bf07a28.js +1 -0
  459. package/dist/sparkle-core/p-6c6145cd.js +4 -0
  460. package/dist/sparkle-core/p-6c90bde6.entry.js +5 -0
  461. package/dist/sparkle-core/p-6e88764b.entry.js +4 -0
  462. package/dist/sparkle-core/p-6ee40949.js +1 -0
  463. package/dist/sparkle-core/p-6fbe3ca3.entry.js +1 -0
  464. package/dist/sparkle-core/{p-f2660943.js → p-6fd4985d.js} +3 -0
  465. package/dist/sparkle-core/{p-8fc9298a.js → p-703ca87c.js} +3 -0
  466. package/dist/sparkle-core/{p-1bf8bed6.entry.js → p-7052c43a.entry.js} +1 -1
  467. package/dist/sparkle-core/{p-111520a0.js → p-70b2452c.js} +3 -0
  468. package/dist/sparkle-core/p-713590fc.js +5 -0
  469. package/dist/sparkle-core/p-7493ee15.entry.js +1 -0
  470. package/dist/sparkle-core/p-75572037.js +1 -0
  471. package/dist/sparkle-core/{p-eb56aa20.entry.js → p-768bcc9e.entry.js} +1 -1
  472. package/dist/sparkle-core/p-797c23ed.entry.js +1 -0
  473. package/dist/sparkle-core/{p-03eb2164.js → p-7c38a70b.js} +1 -1
  474. package/dist/sparkle-core/{p-09d43bee.entry.js → p-7d61177b.entry.js} +1 -1
  475. package/dist/sparkle-core/p-7dbfc316.js +1 -0
  476. package/dist/sparkle-core/p-7e61973d.entry.js +7 -0
  477. package/dist/sparkle-core/{p-3cd28c60.entry.js → p-82e98d07.entry.js} +1 -1
  478. package/dist/sparkle-core/p-838fa86d.entry.js +18 -0
  479. package/dist/sparkle-core/p-855ca600.js +1 -0
  480. package/dist/sparkle-core/p-857f3696.entry.js +1 -0
  481. package/dist/sparkle-core/{p-8f72be08.js → p-8c6b6038.js} +3 -0
  482. package/dist/sparkle-core/p-8fe2e51f.entry.js +4 -0
  483. package/dist/sparkle-core/{p-f72a6e6d.entry.js → p-90389886.entry.js} +1 -1
  484. package/dist/sparkle-core/p-932bfb69.entry.js +1 -0
  485. package/dist/sparkle-core/p-935e7cfc.js +1 -0
  486. package/dist/sparkle-core/{p-c70b9765.entry.js → p-941eaa3a.entry.js} +1 -1
  487. package/dist/sparkle-core/p-95004267.entry.js +1 -0
  488. package/dist/sparkle-core/p-950effe7.entry.js +1 -0
  489. package/dist/sparkle-core/{p-1ca4bf1d.entry.js → p-996361f9.entry.js} +1 -1
  490. package/dist/sparkle-core/p-9a17f2ad.js +4 -0
  491. package/dist/sparkle-core/p-9a443f51.js +1 -1
  492. package/dist/sparkle-core/p-9babd345.js +1 -0
  493. package/dist/sparkle-core/p-9cfdeb18.entry.js +1 -0
  494. package/dist/sparkle-core/p-a080e768.entry.js +1 -0
  495. package/dist/sparkle-core/p-a1cab0f3.js +4 -0
  496. package/dist/sparkle-core/p-a7cc0052.entry.js +4 -0
  497. package/dist/sparkle-core/p-a9ccb0df.js +4 -0
  498. package/dist/sparkle-core/p-a9ee3f6d.entry.js +1 -0
  499. package/dist/sparkle-core/{p-abe2676a.entry.js → p-aa87c7f0.entry.js} +1 -1
  500. package/dist/sparkle-core/{p-e818b11d.entry.js → p-aa9ebc39.entry.js} +1 -1
  501. package/dist/sparkle-core/p-ae1f145d.entry.js +1 -0
  502. package/dist/sparkle-core/{p-73a646fb.entry.js → p-b07a2cf2.entry.js} +1 -1
  503. package/dist/sparkle-core/{p-c82b05e0.entry.js → p-b3909012.entry.js} +1 -1
  504. package/dist/sparkle-core/p-b3e6427d.js +7 -0
  505. package/dist/sparkle-core/p-b49ca0ea.entry.js +1 -0
  506. package/dist/sparkle-core/p-b81e20fe.entry.js +4 -0
  507. package/dist/sparkle-core/p-bca0e465.entry.js +1 -0
  508. package/dist/sparkle-core/p-c1279cc9.entry.js +1 -0
  509. package/dist/sparkle-core/{p-82d95fcd.entry.js → p-c1376096.entry.js} +1 -1
  510. package/dist/sparkle-core/p-c3986a52.entry.js +1 -0
  511. package/dist/sparkle-core/p-c3d3d5c4.entry.js +1 -0
  512. package/dist/sparkle-core/p-c48bbc7c.entry.js +4 -0
  513. package/dist/sparkle-core/p-c5b9bdd6.entry.js +1 -0
  514. package/dist/sparkle-core/{p-15d68269.entry.js → p-c69b0a7a.entry.js} +1 -1
  515. package/dist/sparkle-core/p-cbbeed67.entry.js +1 -0
  516. package/dist/sparkle-core/p-d4a435f8.entry.js +1 -0
  517. package/dist/sparkle-core/p-d4c07aca.js +4 -0
  518. package/dist/sparkle-core/p-d5b05ece.entry.js +5 -0
  519. package/dist/sparkle-core/p-d7baf31e.entry.js +1 -0
  520. package/dist/sparkle-core/p-d8d3524a.js +1 -0
  521. package/dist/sparkle-core/p-df0070c5.entry.js +352 -0
  522. package/dist/sparkle-core/{p-22926eed.entry.js → p-e0fced48.entry.js} +1 -1
  523. package/dist/sparkle-core/p-e1cba44b.entry.js +4 -0
  524. package/dist/sparkle-core/p-e225581a.js +7 -0
  525. package/dist/sparkle-core/{p-4e28ca37.entry.js → p-e3fdd0a8.entry.js} +1 -1
  526. package/dist/sparkle-core/p-e72d4450.js +4 -0
  527. package/dist/sparkle-core/p-eb70a23c.entry.js +1 -0
  528. package/dist/sparkle-core/{p-f9143c5d.entry.js → p-ecd39170.entry.js} +1 -1
  529. package/dist/sparkle-core/{p-151afa9e.entry.js → p-ed0e9d29.entry.js} +1 -1
  530. package/dist/sparkle-core/{p-92d42c10.entry.js → p-ee0d7f19.entry.js} +1 -1
  531. package/dist/sparkle-core/p-f4001fdf.js +4 -0
  532. package/dist/sparkle-core/p-f9b73032.entry.js +1 -0
  533. package/dist/sparkle-core/p-faa912d7.entry.js +1 -0
  534. package/dist/sparkle-core/{p-a250e2ae.entry.js → p-fbd7eeca.entry.js} +1 -1
  535. package/dist/sparkle-core/p-fc933591.entry.js +1 -0
  536. package/dist/sparkle-core/p-fef04ab5.js +4 -0
  537. package/dist/sparkle-core/sparkle-core.css +1 -1
  538. package/dist/sparkle-core/sparkle-core.esm.js +1 -1
  539. package/dist/sparkle-core/svg/balloon-outline.svg +1 -0
  540. package/dist/sparkle-core/svg/balloon-sharp.svg +1 -0
  541. package/dist/sparkle-core/svg/balloon.svg +1 -0
  542. package/dist/sparkle-core/svg/bowling-ball-outline.svg +1 -0
  543. package/dist/sparkle-core/svg/bowling-ball-sharp.svg +1 -0
  544. package/dist/sparkle-core/svg/bowling-ball.svg +1 -0
  545. package/dist/sparkle-core/svg/calendar-number-outline.svg +1 -0
  546. package/dist/sparkle-core/svg/calendar-number-sharp.svg +1 -0
  547. package/dist/sparkle-core/svg/calendar-number.svg +1 -0
  548. package/dist/sparkle-core/svg/diamond-outline.svg +1 -0
  549. package/dist/sparkle-core/svg/diamond-sharp.svg +1 -0
  550. package/dist/sparkle-core/svg/diamond.svg +1 -0
  551. package/dist/sparkle-core/svg/footsteps-outline.svg +1 -0
  552. package/dist/sparkle-core/svg/footsteps-sharp.svg +1 -0
  553. package/dist/sparkle-core/svg/footsteps.svg +1 -0
  554. package/dist/sparkle-core/svg/id-card-outline.svg +1 -0
  555. package/dist/sparkle-core/svg/id-card-sharp.svg +1 -0
  556. package/dist/sparkle-core/svg/id-card.svg +1 -0
  557. package/dist/sparkle-core/svg/logo-apple-ar.svg +1 -0
  558. package/dist/sparkle-core/svg/prism-outline.svg +1 -0
  559. package/dist/sparkle-core/svg/prism-sharp.svg +1 -0
  560. package/dist/sparkle-core/svg/prism.svg +1 -0
  561. package/dist/sparkle-core/svg/scale-outline.svg +1 -0
  562. package/dist/sparkle-core/svg/scale-sharp.svg +1 -0
  563. package/dist/sparkle-core/svg/scale.svg +1 -0
  564. package/dist/sparkle-core/svg/shield-half-outline.svg +1 -0
  565. package/dist/sparkle-core/svg/shield-half-sharp.svg +1 -0
  566. package/dist/sparkle-core/svg/shield-half.svg +1 -0
  567. package/dist/sparkle-core/svg/sparkles-outline.svg +1 -0
  568. package/dist/sparkle-core/svg/sparkles-sharp.svg +1 -0
  569. package/dist/sparkle-core/svg/sparkles.svg +1 -0
  570. package/dist/sparkle-core/swiper/swiper.bundle.js +2 -2
  571. package/dist/types/components/sparkle-animation-player/sparkle-animation-player.d.ts +1 -0
  572. package/dist/types/components/sparkle-character-intro/sparkle-character-intro.d.ts +7 -0
  573. package/dist/types/components/sparkle-course-root/sparkle-course-root.d.ts +2 -2
  574. package/dist/types/components/sparkle-youtube/sparkle-youtube.d.ts +1 -1
  575. package/dist/types/components.d.ts +17 -0
  576. package/dist/types/models/definitions.d.ts +8 -0
  577. package/dist/types/stencil-public-runtime.d.ts +200 -190
  578. package/dist/types/util.d.ts +1 -0
  579. package/package.json +26 -26
  580. package/dist/cjs/app-globals-98121d6d.js +0 -9
  581. package/dist/cjs/button-active-9456fb4d.js +0 -66
  582. package/dist/cjs/feed.service-518d18fd.js +0 -5802
  583. package/dist/cjs/focus-visible-1583bc8e.js +0 -45
  584. package/dist/cjs/framework-delegate-72815681.js +0 -37
  585. package/dist/cjs/header-mobile-collapse_60.cjs.entry.js +0 -86
  586. package/dist/cjs/index.es-baef3314.js +0 -13834
  587. package/dist/cjs/ion-action-sheet.cjs.entry.js +0 -261
  588. package/dist/cjs/ion-alert.cjs.entry.js +0 -455
  589. package/dist/cjs/ion-note.cjs.entry.js +0 -29
  590. package/dist/cjs/ion-popover.cjs.entry.js +0 -365
  591. package/dist/cjs/ion-select-popover.cjs.entry.js +0 -35
  592. package/dist/cjs/status-tap-466a7c6a.js +0 -25
  593. package/dist/esm/app-globals-6451faf3.js +0 -7
  594. package/dist/esm/auth.store-dd944bc2.js +0 -2552
  595. package/dist/esm/button-active-97535443.js +0 -64
  596. package/dist/esm/feed.service-0fda1e36.js +0 -5787
  597. package/dist/esm/focus-visible-abf04ce3.js +0 -43
  598. package/dist/esm/framework-delegate-2c397da3.js +0 -34
  599. package/dist/esm/header-mobile-collapse_60.entry.js +0 -19
  600. package/dist/esm/index.es-a5bf9a49.js +0 -13748
  601. package/dist/esm/ion-action-sheet.entry.js +0 -257
  602. package/dist/esm/ion-alert.entry.js +0 -451
  603. package/dist/esm/ion-note.entry.js +0 -25
  604. package/dist/esm/ion-popover.entry.js +0 -361
  605. package/dist/esm/ion-select-popover.entry.js +0 -31
  606. package/dist/esm/status-tap-9221cd79.js +0 -23
  607. package/dist/sparkle-core/p-019d9d02.entry.js +0 -1
  608. package/dist/sparkle-core/p-02d6d899.js +0 -1
  609. package/dist/sparkle-core/p-03fd27d0.entry.js +0 -1
  610. package/dist/sparkle-core/p-07018d29.js +0 -1
  611. package/dist/sparkle-core/p-083d57a6.entry.js +0 -1
  612. package/dist/sparkle-core/p-090f2624.js +0 -1
  613. package/dist/sparkle-core/p-0e1c7c8c.js +0 -1
  614. package/dist/sparkle-core/p-101feae9.js +0 -1
  615. package/dist/sparkle-core/p-13b0cdfc.entry.js +0 -1
  616. package/dist/sparkle-core/p-13c9bf3a.entry.js +0 -1
  617. package/dist/sparkle-core/p-169920f1.js +0 -1
  618. package/dist/sparkle-core/p-1e1f5e98.entry.js +0 -1
  619. package/dist/sparkle-core/p-1e866c41.entry.js +0 -1
  620. package/dist/sparkle-core/p-2474bf60.entry.js +0 -1
  621. package/dist/sparkle-core/p-25bbf9b4.entry.js +0 -1
  622. package/dist/sparkle-core/p-2a45b732.js +0 -1
  623. package/dist/sparkle-core/p-2abf4d37.entry.js +0 -1
  624. package/dist/sparkle-core/p-2c5edb9f.entry.js +0 -1
  625. package/dist/sparkle-core/p-2d966d35.js +0 -1
  626. package/dist/sparkle-core/p-30b641a4.entry.js +0 -1
  627. package/dist/sparkle-core/p-34ea6639.entry.js +0 -1
  628. package/dist/sparkle-core/p-359422b6.entry.js +0 -1
  629. package/dist/sparkle-core/p-37bfb548.entry.js +0 -1
  630. package/dist/sparkle-core/p-38307b31.js +0 -1
  631. package/dist/sparkle-core/p-3a29a75b.entry.js +0 -1
  632. package/dist/sparkle-core/p-3bb55510.entry.js +0 -1
  633. package/dist/sparkle-core/p-3be0a218.js +0 -1
  634. package/dist/sparkle-core/p-417a8dd6.js +0 -1
  635. package/dist/sparkle-core/p-447163be.entry.js +0 -1
  636. package/dist/sparkle-core/p-49265a8e.entry.js +0 -1
  637. package/dist/sparkle-core/p-4950f841.entry.js +0 -1
  638. package/dist/sparkle-core/p-4b7db0e6.js +0 -1
  639. package/dist/sparkle-core/p-4d8cb365.entry.js +0 -1
  640. package/dist/sparkle-core/p-5073899e.entry.js +0 -1
  641. package/dist/sparkle-core/p-5b366c20.entry.js +0 -1
  642. package/dist/sparkle-core/p-5dce20b9.entry.js +0 -1
  643. package/dist/sparkle-core/p-6006beec.entry.js +0 -1
  644. package/dist/sparkle-core/p-600d04fc.entry.js +0 -1
  645. package/dist/sparkle-core/p-60828739.entry.js +0 -1
  646. package/dist/sparkle-core/p-6112b180.entry.js +0 -1
  647. package/dist/sparkle-core/p-66eb6b7a.entry.js +0 -1
  648. package/dist/sparkle-core/p-67ddec3f.entry.js +0 -1
  649. package/dist/sparkle-core/p-68cb7d41.entry.js +0 -1
  650. package/dist/sparkle-core/p-69cd49de.js +0 -1
  651. package/dist/sparkle-core/p-6edbdde5.entry.js +0 -1
  652. package/dist/sparkle-core/p-6f0ecbe3.js +0 -1
  653. package/dist/sparkle-core/p-765b8593.js +0 -1
  654. package/dist/sparkle-core/p-770128c8.js +0 -1
  655. package/dist/sparkle-core/p-7840618d.js +0 -1
  656. package/dist/sparkle-core/p-7b37d523.entry.js +0 -1
  657. package/dist/sparkle-core/p-7d83d006.entry.js +0 -1
  658. package/dist/sparkle-core/p-7f3d5344.js +0 -1
  659. package/dist/sparkle-core/p-81651f26.entry.js +0 -1
  660. package/dist/sparkle-core/p-86148067.entry.js +0 -1
  661. package/dist/sparkle-core/p-8b5bc1d6.entry.js +0 -1
  662. package/dist/sparkle-core/p-8c3ee44c.entry.js +0 -1
  663. package/dist/sparkle-core/p-9007a06b.entry.js +0 -1
  664. package/dist/sparkle-core/p-90482861.entry.js +0 -1
  665. package/dist/sparkle-core/p-a061537e.entry.js +0 -1
  666. package/dist/sparkle-core/p-a38ea475.js +0 -1
  667. package/dist/sparkle-core/p-ad1ddf1f.js +0 -483
  668. package/dist/sparkle-core/p-aef0bba0.js +0 -1
  669. package/dist/sparkle-core/p-b080c1e3.entry.js +0 -1
  670. package/dist/sparkle-core/p-b11fe0c7.js +0 -1
  671. package/dist/sparkle-core/p-bac45a26.entry.js +0 -1
  672. package/dist/sparkle-core/p-bbe5977b.entry.js +0 -1
  673. package/dist/sparkle-core/p-bc568dcb.js +0 -1
  674. package/dist/sparkle-core/p-bfb55f1d.js +0 -3
  675. package/dist/sparkle-core/p-c163c16d.entry.js +0 -1
  676. package/dist/sparkle-core/p-c3166584.entry.js +0 -1
  677. package/dist/sparkle-core/p-c34269ae.entry.js +0 -1
  678. package/dist/sparkle-core/p-c466ee32.js +0 -1
  679. package/dist/sparkle-core/p-c6710592.entry.js +0 -1
  680. package/dist/sparkle-core/p-c7022391.entry.js +0 -1
  681. package/dist/sparkle-core/p-d4ad796c.js +0 -1
  682. package/dist/sparkle-core/p-d6152660.entry.js +0 -1
  683. package/dist/sparkle-core/p-d63406d8.js +0 -1
  684. package/dist/sparkle-core/p-dba672d5.entry.js +0 -1
  685. package/dist/sparkle-core/p-dd73d01a.entry.js +0 -1
  686. package/dist/sparkle-core/p-de33872d.entry.js +0 -1
  687. package/dist/sparkle-core/p-dee2128a.entry.js +0 -1
  688. package/dist/sparkle-core/p-df07e132.entry.js +0 -1
  689. package/dist/sparkle-core/p-e5d5aaa5.js +0 -1
  690. package/dist/sparkle-core/p-e72c6d87.entry.js +0 -1
  691. package/dist/sparkle-core/p-e8df6ea6.entry.js +0 -1
  692. package/dist/sparkle-core/p-ef2a2172.js +0 -1
  693. package/dist/sparkle-core/p-f1a4ab33.entry.js +0 -1
  694. package/dist/sparkle-core/p-f43ac631.entry.js +0 -1
  695. package/dist/sparkle-core/p-f8063d7b.js +0 -1
  696. package/dist/sparkle-core/p-fd62283e.entry.js +0 -1
  697. package/dist/sparkle-core/p-fef71e0e.entry.js +0 -1
@@ -36,17 +36,20 @@ const doc = win.document || { head: {} };
36
36
  const plt = {
37
37
  $flags$: 0,
38
38
  $resourcesUrl$: '',
39
- jmp: h => h(),
40
- raf: h => requestAnimationFrame(h),
39
+ jmp: (h) => h(),
40
+ raf: (h) => requestAnimationFrame(h),
41
41
  ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
42
42
  rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
43
43
  ce: (eventName, opts) => new CustomEvent(eventName, opts),
44
44
  };
45
+ const setPlatformHelpers = (helpers) => {
46
+ Object.assign(plt, helpers);
47
+ };
45
48
  const promiseResolve = (v) => Promise.resolve(v);
46
- const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
49
+ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
47
50
  try {
48
51
  new CSSStyleSheet();
49
- return true;
52
+ return typeof new CSSStyleSheet().replace === 'function';
50
53
  }
51
54
  catch (e) { }
52
55
  return false;
@@ -54,9 +57,9 @@ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
54
57
  ;
55
58
  const Context = {};
56
59
  const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
57
- if ( listeners) {
60
+ if (listeners) {
58
61
  listeners.map(([flags, name, method]) => {
59
- const target = getHostListenerTarget(elm, flags) ;
62
+ const target = getHostListenerTarget(elm, flags) ;
60
63
  const handler = hostListenerProxy(hostRef, method);
61
64
  const opts = hostListenerOpts(flags);
62
65
  plt.ael(target, name, handler, opts);
@@ -81,16 +84,16 @@ const hostListenerProxy = (hostRef, methodName) => (ev) => {
81
84
  }
82
85
  };
83
86
  const getHostListenerTarget = (elm, flags) => {
84
- if ( flags & 4 /* TargetDocument */)
87
+ if (flags & 4 /* TargetDocument */)
85
88
  return doc;
86
- if ( flags & 8 /* TargetWindow */)
89
+ if (flags & 8 /* TargetWindow */)
87
90
  return win;
88
- if ( flags & 16 /* TargetBody */)
91
+ if (flags & 16 /* TargetBody */)
89
92
  return doc.body;
90
93
  return elm;
91
94
  };
92
95
  // prettier-ignore
93
- const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
96
+ const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
94
97
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
95
98
  const XLINK_NS = 'http://www.w3.org/1999/xlink';
96
99
  const createTime = (fnName, tagName = '') => {
@@ -146,7 +149,7 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
146
149
  }
147
150
  }
148
151
  }
149
- else if ( !styleContainerNode.adoptedStyleSheets.includes(style)) {
152
+ else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
150
153
  styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
151
154
  }
152
155
  }
@@ -157,8 +160,8 @@ const attachStyles = (hostRef) => {
157
160
  const elm = hostRef.$hostElement$;
158
161
  const flags = cmpMeta.$flags$;
159
162
  const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
160
- const scopeId = addStyle( elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$);
161
- if ( flags & 10 /* needsScopedEncapsulation */) {
163
+ const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$);
164
+ if (flags & 10 /* needsScopedEncapsulation */) {
162
165
  // only required when we're NOT using native shadow dom (slot)
163
166
  // or this browser doesn't support native shadow dom
164
167
  // and this host element was NOT created with SSR
@@ -168,15 +171,15 @@ const attachStyles = (hostRef) => {
168
171
  // DOM WRITE!!
169
172
  elm['s-sc'] = scopeId;
170
173
  elm.classList.add(scopeId + '-h');
171
- if ( flags & 2 /* scopedCssEncapsulation */) {
174
+ if (flags & 2 /* scopedCssEncapsulation */) {
172
175
  elm.classList.add(scopeId + '-s');
173
176
  }
174
177
  }
175
178
  endAttachStyles();
176
179
  };
177
- const getScopeId = (cmp, mode) => 'sc-' + ( mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);
180
+ const getScopeId = (cmp, mode) => 'sc-' + (mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);
178
181
  // Private
179
- const computeMode = (elm) => modeResolutionChain.map(h => h(elm)).find(m => !!m);
182
+ const computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);
180
183
  // Public
181
184
  const setMode = (handler) => modeResolutionChain.push(handler);
182
185
  const getMode = (ref) => getHostRef(ref).$modeName$;
@@ -242,10 +245,10 @@ const h = (nodeName, vnodeData, ...children) => {
242
245
  walk(children);
243
246
  if (vnodeData) {
244
247
  // normalize class / classname attributes
245
- if ( vnodeData.key) {
248
+ if (vnodeData.key) {
246
249
  key = vnodeData.key;
247
250
  }
248
- if ( vnodeData.name) {
251
+ if (vnodeData.name) {
249
252
  slotName = vnodeData.name;
250
253
  }
251
254
  {
@@ -255,12 +258,12 @@ const h = (nodeName, vnodeData, ...children) => {
255
258
  typeof classData !== 'object'
256
259
  ? classData
257
260
  : Object.keys(classData)
258
- .filter(k => classData[k])
261
+ .filter((k) => classData[k])
259
262
  .join(' ');
260
263
  }
261
264
  }
262
265
  }
263
- if ( typeof nodeName === 'function') {
266
+ if (typeof nodeName === 'function') {
264
267
  // nodeName is a functional component
265
268
  return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);
266
269
  }
@@ -340,19 +343,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
340
343
  if (oldValue !== newValue) {
341
344
  let isProp = isMemberInElement(elm, memberName);
342
345
  let ln = memberName.toLowerCase();
343
- if ( memberName === 'class') {
346
+ if (memberName === 'class') {
344
347
  const classList = elm.classList;
345
348
  const oldClasses = parseClassList(oldValue);
346
349
  const newClasses = parseClassList(newValue);
347
- classList.remove(...oldClasses.filter(c => c && !newClasses.includes(c)));
348
- classList.add(...newClasses.filter(c => c && !oldClasses.includes(c)));
350
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
351
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
349
352
  }
350
- else if ( memberName === 'style') {
353
+ else if (memberName === 'style') {
351
354
  // update style attribute, css properties and values
352
355
  {
353
356
  for (const prop in oldValue) {
354
357
  if (!newValue || newValue[prop] == null) {
355
- if ( prop.includes('-')) {
358
+ if (prop.includes('-')) {
356
359
  elm.style.removeProperty(prop);
357
360
  }
358
361
  else {
@@ -363,7 +366,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
363
366
  }
364
367
  for (const prop in newValue) {
365
368
  if (!oldValue || newValue[prop] !== oldValue[prop]) {
366
- if ( prop.includes('-')) {
369
+ if (prop.includes('-')) {
367
370
  elm.style.setProperty(prop, newValue[prop]);
368
371
  }
369
372
  else {
@@ -372,15 +375,17 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
372
375
  }
373
376
  }
374
377
  }
375
- else if ( memberName === 'key')
378
+ else if (memberName === 'key')
376
379
  ;
377
- else if ( memberName === 'ref') {
380
+ else if (memberName === 'ref') {
378
381
  // minifier will clean this up
379
382
  if (newValue) {
380
383
  newValue(elm);
381
384
  }
382
385
  }
383
- else if ( ( !isProp ) && memberName[0] === 'o' && memberName[1] === 'n') {
386
+ else if ((!isProp ) &&
387
+ memberName[0] === 'o' &&
388
+ memberName[1] === 'n') {
384
389
  // Event Handlers
385
390
  // so if the member name starts with "on" and the 3rd characters is
386
391
  // a capital letter, and it's not already a member on the element,
@@ -427,7 +432,6 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
427
432
  // Workaround for Safari, moving the <input> caret when re-assigning the same valued
428
433
  if (memberName === 'list') {
429
434
  isProp = false;
430
- // tslint:disable-next-line: triple-equals
431
435
  }
432
436
  else if (oldValue == null || elm[memberName] != n) {
433
437
  elm[memberName] = n;
@@ -455,7 +459,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
455
459
  }
456
460
  if (newValue == null || newValue === false) {
457
461
  if (newValue !== false || elm.getAttribute(memberName) === '') {
458
- if ( xlink) {
462
+ if (xlink) {
459
463
  elm.removeAttributeNS(XLINK_NS, memberName);
460
464
  }
461
465
  else {
@@ -465,7 +469,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
465
469
  }
466
470
  else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
467
471
  newValue = newValue === true ? '' : newValue;
468
- if ( xlink) {
472
+ if (xlink) {
469
473
  elm.setAttributeNS(XLINK_NS, memberName, newValue);
470
474
  }
471
475
  else {
@@ -481,7 +485,9 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
481
485
  // if the element passed in is a shadow root, which is a document fragment
482
486
  // then we want to be adding attrs/props to the shadow root's "host" element
483
487
  // if it's not a shadow root, then we add attrs/props to the same element
484
- const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
488
+ const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host
489
+ ? newVnode.$elm$.host
490
+ : newVnode.$elm$;
485
491
  const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;
486
492
  const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
487
493
  {
@@ -504,7 +510,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
504
510
  let elm;
505
511
  let childNode;
506
512
  let oldVNode;
507
- if ( !useNativeShadowDom) {
513
+ if (!useNativeShadowDom) {
508
514
  // remember for later we need to check to relocate nodes
509
515
  checkSlotRelocate = true;
510
516
  if (newVNode.$tag$ === 'slot') {
@@ -519,29 +525,32 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
519
525
  1 /* isSlotReference */;
520
526
  }
521
527
  }
522
- if ( newVNode.$text$ !== null) {
528
+ if (newVNode.$text$ !== null) {
523
529
  // create text node
524
530
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
525
531
  }
526
- else if ( newVNode.$flags$ & 1 /* isSlotReference */) {
532
+ else if (newVNode.$flags$ & 1 /* isSlotReference */) {
527
533
  // create a slot reference node
528
- elm = newVNode.$elm$ = doc.createTextNode('');
534
+ elm = newVNode.$elm$ =
535
+ doc.createTextNode('');
529
536
  }
530
537
  else {
531
- if ( !isSvgMode) {
538
+ if (!isSvgMode) {
532
539
  isSvgMode = newVNode.$tag$ === 'svg';
533
540
  }
534
541
  // create element
535
- elm = newVNode.$elm$ = ( doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$)
542
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */
543
+ ? 'slot-fb'
544
+ : newVNode.$tag$)
536
545
  );
537
- if ( isSvgMode && newVNode.$tag$ === 'foreignObject') {
546
+ if (isSvgMode && newVNode.$tag$ === 'foreignObject') {
538
547
  isSvgMode = false;
539
548
  }
540
549
  // add css classes, attrs, props, listeners, etc.
541
550
  {
542
551
  updateElement(null, newVNode, isSvgMode);
543
552
  }
544
- if ( isDef(scopeId) && elm['s-si'] !== scopeId) {
553
+ if (isDef(scopeId) && elm['s-si'] !== scopeId) {
545
554
  // if there is a scopeId and this is the initial render
546
555
  // then let's add the scopeId as a css class
547
556
  elm.classList.add((elm['s-si'] = scopeId));
@@ -613,9 +622,9 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
613
622
  plt.$flags$ &= ~1 /* isTmpDisconnected */;
614
623
  };
615
624
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
616
- let containerElm = (( parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
625
+ let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
617
626
  let childNode;
618
- if ( containerElm.shadowRoot && containerElm.tagName === hostTagName) {
627
+ if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
619
628
  containerElm = containerElm.shadowRoot;
620
629
  }
621
630
  for (; startIdx <= endIdx; ++startIdx) {
@@ -623,7 +632,7 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
623
632
  childNode = createElm(null, parentVNode, startIdx, parentElm);
624
633
  if (childNode) {
625
634
  vnodes[startIdx].$elm$ = childNode;
626
- containerElm.insertBefore(childNode, referenceNode(before) );
635
+ containerElm.insertBefore(childNode, referenceNode(before) );
627
636
  }
628
637
  }
629
638
  }
@@ -691,7 +700,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
691
700
  }
692
701
  else if (isSameVnode(oldStartVnode, newEndVnode)) {
693
702
  // Vnode moved right
694
- if ( (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
703
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
695
704
  putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
696
705
  }
697
706
  patch(oldStartVnode, newEndVnode);
@@ -701,7 +710,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
701
710
  }
702
711
  else if (isSameVnode(oldEndVnode, newStartVnode)) {
703
712
  // Vnode moved left
704
- if ( (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
713
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
705
714
  putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
706
715
  }
707
716
  patch(oldEndVnode, newStartVnode);
@@ -720,7 +729,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
720
729
  }
721
730
  }
722
731
  }
723
- if ( idxInOld >= 0) {
732
+ if (idxInOld >= 0) {
724
733
  elmToMove = oldCh[idxInOld];
725
734
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
726
735
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);
@@ -747,7 +756,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
747
756
  if (oldStartIdx > oldEndIdx) {
748
757
  addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);
749
758
  }
750
- else if ( newStartIdx > newEndIdx) {
759
+ else if (newStartIdx > newEndIdx) {
751
760
  removeVnodes(oldCh, oldStartIdx, oldEndIdx);
752
761
  }
753
762
  };
@@ -755,7 +764,7 @@ const isSameVnode = (vnode1, vnode2) => {
755
764
  // compare if two vnode to see if they're "technically" the same
756
765
  // need to have the same element tag, and same key to be the same
757
766
  if (vnode1.$tag$ === vnode2.$tag$) {
758
- if ( vnode1.$tag$ === 'slot') {
767
+ if (vnode1.$tag$ === 'slot') {
759
768
  return vnode1.$name$ === vnode2.$name$;
760
769
  }
761
770
  {
@@ -779,7 +788,7 @@ const patch = (oldVNode, newVNode) => {
779
788
  const tag = newVNode.$tag$;
780
789
  const text = newVNode.$text$;
781
790
  let defaultHolder;
782
- if ( text === null) {
791
+ if (text === null) {
783
792
  {
784
793
  // test if we're rendering an svg element, or still rendering nodes inside of one
785
794
  // only add this to the when the compiler sees we're using an svg somewhere
@@ -787,7 +796,7 @@ const patch = (oldVNode, newVNode) => {
787
796
  }
788
797
  // element node
789
798
  {
790
- if ( tag === 'slot')
799
+ if (tag === 'slot')
791
800
  ;
792
801
  else {
793
802
  // either this is the first render of an element OR it's an update
@@ -796,32 +805,32 @@ const patch = (oldVNode, newVNode) => {
796
805
  updateElement(oldVNode, newVNode, isSvgMode);
797
806
  }
798
807
  }
799
- if ( oldChildren !== null && newChildren !== null) {
808
+ if (oldChildren !== null && newChildren !== null) {
800
809
  // looks like there's child vnodes for both the old and new vnodes
801
810
  updateChildren(elm, oldChildren, newVNode, newChildren);
802
811
  }
803
812
  else if (newChildren !== null) {
804
813
  // no old child vnodes, but there are new child vnodes to add
805
- if ( oldVNode.$text$ !== null) {
814
+ if (oldVNode.$text$ !== null) {
806
815
  // the old vnode was text, so be sure to clear it out
807
816
  elm.textContent = '';
808
817
  }
809
818
  // add the new vnode children
810
819
  addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);
811
820
  }
812
- else if ( oldChildren !== null) {
821
+ else if (oldChildren !== null) {
813
822
  // no new child vnodes, but there are old child vnodes to remove
814
823
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
815
824
  }
816
- if ( isSvgMode && tag === 'svg') {
825
+ if (isSvgMode && tag === 'svg') {
817
826
  isSvgMode = false;
818
827
  }
819
828
  }
820
- else if ( (defaultHolder = elm['s-cr'])) {
829
+ else if ((defaultHolder = elm['s-cr'])) {
821
830
  // this element has slotted content
822
831
  defaultHolder.parentNode.textContent = text;
823
832
  }
824
- else if ( oldVNode.$text$ !== text) {
833
+ else if (oldVNode.$text$ !== text) {
825
834
  // update the text content for the text only vnode
826
835
  // and also only if the text is different than before
827
836
  elm.data = text;
@@ -847,24 +856,22 @@ const updateFallbackSlotVisibility = (elm) => {
847
856
  // then hide it if there are other slots in the light dom
848
857
  childNode.hidden = false;
849
858
  for (j = 0; j < ilen; j++) {
850
- if (childNodes[j]['s-hn'] !== childNode['s-hn']) {
851
- // this sibling node is from a different component
852
- nodeType = childNodes[j].nodeType;
853
- if (slotNameAttr !== '') {
854
- // this is a named fallback slot node
855
- if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
856
- childNode.hidden = true;
857
- break;
858
- }
859
+ nodeType = childNodes[j].nodeType;
860
+ if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
861
+ // this sibling node is from a different component OR is a named fallback slot node
862
+ if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
863
+ childNode.hidden = true;
864
+ break;
859
865
  }
860
- else {
861
- // this is a default fallback slot node
862
- // any element or text node (with content)
863
- // should hide the default fallback slot node
864
- if (nodeType === 1 /* ElementNode */ || (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
865
- childNode.hidden = true;
866
- break;
867
- }
866
+ }
867
+ else {
868
+ // this is a default fallback slot node
869
+ // any element or text node (with content)
870
+ // should hide the default fallback slot node
871
+ if (nodeType === 1 /* ElementNode */ ||
872
+ (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
873
+ childNode.hidden = true;
874
+ break;
868
875
  }
869
876
  }
870
877
  }
@@ -888,7 +895,7 @@ const relocateSlotContent = (elm) => {
888
895
  let ilen = childNodes.length;
889
896
  for (; i < ilen; i++) {
890
897
  childNode = childNodes[i];
891
- if (childNode['s-sr'] && (node = childNode['s-cr'])) {
898
+ if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
892
899
  // first got the content reference comment node
893
900
  // then we got it's parent, which is where all the host content is in now
894
901
  hostContentNodes = node.parentNode.childNodes;
@@ -901,7 +908,7 @@ const relocateSlotContent = (elm) => {
901
908
  // that is suppose to always represent the original content location
902
909
  if (isNodeLocatedInSlot(node, slotNameAttr)) {
903
910
  // it's possible we've already decided to relocate this node
904
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
911
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
905
912
  // made some changes to slots
906
913
  // let's make sure we also double check
907
914
  // fallbacks are correctly hidden or shown
@@ -920,9 +927,9 @@ const relocateSlotContent = (elm) => {
920
927
  });
921
928
  }
922
929
  if (node['s-sr']) {
923
- relocateNodes.map(relocateNode => {
930
+ relocateNodes.map((relocateNode) => {
924
931
  if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
925
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
932
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
926
933
  if (relocateNodeData && !relocateNode.$slotRefNode$) {
927
934
  relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
928
935
  }
@@ -930,7 +937,7 @@ const relocateSlotContent = (elm) => {
930
937
  });
931
938
  }
932
939
  }
933
- else if (!relocateNodes.some(r => r.$nodeToRelocate$ === node)) {
940
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
934
941
  // so far this element does not have a slot home, not setting slotRefNode on purpose
935
942
  // if we never find a home for this element then we'll need to hide it
936
943
  relocateNodes.push({
@@ -972,20 +979,20 @@ const renderVdom = (hostRef, renderFnResults) => {
972
979
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
973
980
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
974
981
  hostTagName = hostElm.tagName;
975
- if ( cmpMeta.$attrsToReflect$) {
982
+ if (cmpMeta.$attrsToReflect$) {
976
983
  rootVnode.$attrs$ = rootVnode.$attrs$ || {};
977
984
  cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));
978
985
  }
979
986
  rootVnode.$tag$ = null;
980
987
  rootVnode.$flags$ |= 4 /* isHost */;
981
988
  hostRef.$vnode$ = rootVnode;
982
- rootVnode.$elm$ = oldVNode.$elm$ = ( hostElm.shadowRoot || hostElm );
989
+ rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm );
983
990
  {
984
991
  scopeId = hostElm['s-sc'];
985
992
  }
986
993
  {
987
994
  contentRef = hostElm['s-cr'];
988
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
995
+ useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
989
996
  // always reset
990
997
  checkSlotFallbackVisibility = false;
991
998
  }
@@ -1010,7 +1017,8 @@ const renderVdom = (hostRef, renderFnResults) => {
1010
1017
  if (!nodeToRelocate['s-ol']) {
1011
1018
  // add a reference node marking this node's original location
1012
1019
  // keep a reference to this node for later lookups
1013
- orgLocationNode = doc.createTextNode('');
1020
+ orgLocationNode =
1021
+ doc.createTextNode('');
1014
1022
  orgLocationNode['s-nr'] = nodeToRelocate;
1015
1023
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1016
1024
  }
@@ -1034,7 +1042,8 @@ const renderVdom = (hostRef, renderFnResults) => {
1034
1042
  }
1035
1043
  }
1036
1044
  }
1037
- if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {
1045
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1046
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
1038
1047
  // we've checked that it's worth while to relocate
1039
1048
  // since that the node to relocate
1040
1049
  // has a different next sibling or parent relocated
@@ -1066,7 +1075,7 @@ const renderVdom = (hostRef, renderFnResults) => {
1066
1075
  relocateNodes.length = 0;
1067
1076
  }
1068
1077
  };
1069
- const getElement = (ref) => ( getHostRef(ref).$hostElement$ );
1078
+ const getElement = (ref) => (getHostRef(ref).$hostElement$ );
1070
1079
  const createEvent = (ref, name, flags) => {
1071
1080
  const elm = getElement(ref);
1072
1081
  return {
@@ -1080,21 +1089,28 @@ const createEvent = (ref, name, flags) => {
1080
1089
  },
1081
1090
  };
1082
1091
  };
1092
+ /**
1093
+ * Helper function to create & dispatch a custom Event on a provided target
1094
+ * @param elm the target of the Event
1095
+ * @param name the name to give the custom Event
1096
+ * @param opts options for configuring a custom Event
1097
+ * @returns the custom Event
1098
+ */
1083
1099
  const emitEvent = (elm, name, opts) => {
1084
1100
  const ev = plt.ce(name, opts);
1085
1101
  elm.dispatchEvent(ev);
1086
1102
  return ev;
1087
1103
  };
1088
1104
  const attachToAncestor = (hostRef, ancestorComponent) => {
1089
- if ( ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1090
- ancestorComponent['s-p'].push(new Promise(r => (hostRef.$onRenderResolve$ = r)));
1105
+ if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1106
+ ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));
1091
1107
  }
1092
1108
  };
1093
1109
  const scheduleUpdate = (hostRef, isInitialLoad) => {
1094
1110
  {
1095
1111
  hostRef.$flags$ |= 16 /* isQueuedForUpdate */;
1096
1112
  }
1097
- if ( hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1113
+ if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1098
1114
  hostRef.$flags$ |= 512 /* needsRerender */;
1099
1115
  return;
1100
1116
  }
@@ -1103,11 +1119,11 @@ const scheduleUpdate = (hostRef, isInitialLoad) => {
1103
1119
  // has already fired off its lifecycle update then
1104
1120
  // fire off the initial update
1105
1121
  const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
1106
- return writeTask(dispatch) ;
1122
+ return writeTask(dispatch) ;
1107
1123
  };
1108
1124
  const dispatchHooks = (hostRef, isInitialLoad) => {
1109
1125
  const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);
1110
- const instance = hostRef.$lazyInstance$ ;
1126
+ const instance = hostRef.$lazyInstance$ ;
1111
1127
  let promise;
1112
1128
  if (isInitialLoad) {
1113
1129
  {
@@ -1137,26 +1153,19 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1137
1153
  const elm = hostRef.$hostElement$;
1138
1154
  const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);
1139
1155
  const rc = elm['s-rc'];
1140
- if ( isInitialLoad) {
1156
+ if (isInitialLoad) {
1141
1157
  // DOM WRITE!
1142
1158
  attachStyles(hostRef);
1143
1159
  }
1144
1160
  const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);
1145
1161
  {
1146
- {
1147
- // looks like we've got child nodes to render into this host element
1148
- // or we need to update the css class/attrs on the host element
1149
- // DOM WRITE!
1150
- {
1151
- renderVdom(hostRef, callRender(hostRef, instance));
1152
- }
1153
- }
1162
+ callRender(hostRef, instance);
1154
1163
  }
1155
- if ( rc) {
1164
+ if (rc) {
1156
1165
  // ok, so turns out there are some child host elements
1157
1166
  // waiting on this parent element to load
1158
1167
  // let's fire off all update callbacks waiting
1159
- rc.map(cb => cb());
1168
+ rc.map((cb) => cb());
1160
1169
  elm['s-rc'] = undefined;
1161
1170
  }
1162
1171
  endRender();
@@ -1174,29 +1183,39 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1174
1183
  }
1175
1184
  }
1176
1185
  };
1177
- const callRender = (hostRef, instance) => {
1186
+ const callRender = (hostRef, instance, elm) => {
1178
1187
  try {
1179
1188
  renderingRef = instance;
1180
- instance = instance.render && instance.render();
1189
+ instance = instance.render && instance.render();
1181
1190
  {
1182
1191
  hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
1183
1192
  }
1184
1193
  {
1185
1194
  hostRef.$flags$ |= 2 /* hasRendered */;
1186
1195
  }
1196
+ {
1197
+ {
1198
+ // looks like we've got child nodes to render into this host element
1199
+ // or we need to update the css class/attrs on the host element
1200
+ // DOM WRITE!
1201
+ {
1202
+ renderVdom(hostRef, instance);
1203
+ }
1204
+ }
1205
+ }
1187
1206
  }
1188
1207
  catch (e) {
1189
1208
  consoleError(e, hostRef.$hostElement$);
1190
1209
  }
1191
1210
  renderingRef = null;
1192
- return instance;
1211
+ return null;
1193
1212
  };
1194
1213
  const getRenderingRef = () => renderingRef;
1195
1214
  const postUpdateComponent = (hostRef) => {
1196
1215
  const tagName = hostRef.$cmpMeta$.$tagName$;
1197
1216
  const elm = hostRef.$hostElement$;
1198
1217
  const endPostUpdate = createTime('postUpdate', tagName);
1199
- const instance = hostRef.$lazyInstance$ ;
1218
+ const instance = hostRef.$lazyInstance$ ;
1200
1219
  const ancestorComponent = hostRef.$ancestorComponent$;
1201
1220
  {
1202
1221
  safeCall(instance, 'componentDidRender');
@@ -1247,7 +1266,8 @@ const forceUpdate = (ref) => {
1247
1266
  {
1248
1267
  const hostRef = getHostRef(ref);
1249
1268
  const isConnected = hostRef.$hostElement$.isConnected;
1250
- if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1269
+ if (isConnected &&
1270
+ (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1251
1271
  scheduleUpdate(hostRef, false);
1252
1272
  }
1253
1273
  // Returns "true" when the forced update was successfully scheduled
@@ -1276,20 +1296,44 @@ const safeCall = (instance, method, arg) => {
1276
1296
  const then = (promise, thenFn) => {
1277
1297
  return promise && promise.then ? promise.then(thenFn) : thenFn();
1278
1298
  };
1279
- const addHydratedFlag = (elm) => ( elm.classList.add('hydrated') );
1299
+ const addHydratedFlag = (elm) => elm.classList.add('hydrated')
1300
+ ;
1301
+ /**
1302
+ * Parse a new property value for a given property type.
1303
+ *
1304
+ * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
1305
+ * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
1306
+ * 1. `any`, the type given to `propValue` in the function signature
1307
+ * 2. the type stored from `propType`.
1308
+ *
1309
+ * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
1310
+ *
1311
+ * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
1312
+ * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
1313
+ * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
1314
+ * ```tsx
1315
+ * <my-cmp prop-val={0}></my-cmp>
1316
+ * ```
1317
+ *
1318
+ * HTML prop values on the other hand, will always a string
1319
+ *
1320
+ * @param propValue the new value to coerce to some type
1321
+ * @param propType the type of the prop, expressed as a binary number
1322
+ * @returns the parsed/coerced value
1323
+ */
1280
1324
  const parsePropertyValue = (propValue, propType) => {
1281
1325
  // ensure this value is of the correct prop type
1282
1326
  if (propValue != null && !isComplexType(propValue)) {
1283
- if ( propType & 4 /* Boolean */) {
1327
+ if (propType & 4 /* Boolean */) {
1284
1328
  // per the HTML spec, any string value means it is a boolean true value
1285
1329
  // but we'll cheat here and say that the string "false" is the boolean false
1286
1330
  return propValue === 'false' ? false : propValue === '' || !!propValue;
1287
1331
  }
1288
- if ( propType & 2 /* Number */) {
1332
+ if (propType & 2 /* Number */) {
1289
1333
  // force it to be a number
1290
1334
  return parseFloat(propValue);
1291
1335
  }
1292
- if ( propType & 1 /* String */) {
1336
+ if (propType & 1 /* String */) {
1293
1337
  // could have been passed as a number or boolean
1294
1338
  // but we still want it as a string
1295
1339
  return String(propValue);
@@ -1305,22 +1349,25 @@ const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propNam
1305
1349
  const setValue = (ref, propName, newVal, cmpMeta) => {
1306
1350
  // check our new property value against our internal value
1307
1351
  const hostRef = getHostRef(ref);
1308
- const elm = hostRef.$hostElement$ ;
1352
+ const elm = hostRef.$hostElement$ ;
1309
1353
  const oldVal = hostRef.$instanceValues$.get(propName);
1310
1354
  const flags = hostRef.$flags$;
1311
- const instance = hostRef.$lazyInstance$ ;
1355
+ const instance = hostRef.$lazyInstance$ ;
1312
1356
  newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);
1313
- if (( !(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && newVal !== oldVal) {
1357
+ // explicitly check for NaN on both sides, as `NaN === NaN` is always false
1358
+ const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
1359
+ const didValueChange = newVal !== oldVal && !areBothNaN;
1360
+ if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && didValueChange) {
1314
1361
  // gadzooks! the property's value has changed!!
1315
1362
  // set our new value!
1316
1363
  hostRef.$instanceValues$.set(propName, newVal);
1317
- if ( instance) {
1364
+ if (instance) {
1318
1365
  // get an array of method names of watch functions to call
1319
- if ( cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1366
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1320
1367
  const watchMethods = cmpMeta.$watchers$[propName];
1321
1368
  if (watchMethods) {
1322
1369
  // this instance is watching for when this property changed
1323
- watchMethods.map(watchMethodName => {
1370
+ watchMethods.map((watchMethodName) => {
1324
1371
  try {
1325
1372
  // fire off each of the watch methods that are watching this property
1326
1373
  instance[watchMethodName](newVal, oldVal, propName);
@@ -1331,7 +1378,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1331
1378
  });
1332
1379
  }
1333
1380
  }
1334
- if ( (flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1381
+ if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1335
1382
  // looks like this value actually changed, so we've got work to do!
1336
1383
  // but only if we've already rendered, otherwise just chill out
1337
1384
  // queue that we need to do an update, but don't worry about queuing
@@ -1342,15 +1389,16 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1342
1389
  }
1343
1390
  };
1344
1391
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1345
- if ( cmpMeta.$members$) {
1346
- if ( Cstr.watchers) {
1392
+ if (cmpMeta.$members$) {
1393
+ if (Cstr.watchers) {
1347
1394
  cmpMeta.$watchers$ = Cstr.watchers;
1348
1395
  }
1349
1396
  // It's better to have a const than two Object.entries()
1350
1397
  const members = Object.entries(cmpMeta.$members$);
1351
1398
  const prototype = Cstr.prototype;
1352
1399
  members.map(([memberName, [memberFlags]]) => {
1353
- if ( (memberFlags & 31 /* Prop */ || (( flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1400
+ if ((memberFlags & 31 /* Prop */ ||
1401
+ ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1354
1402
  // proxyComponent - prop
1355
1403
  Object.defineProperty(prototype, memberName, {
1356
1404
  get() {
@@ -1365,7 +1413,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1365
1413
  enumerable: true,
1366
1414
  });
1367
1415
  }
1368
- else if ( flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1416
+ else if (flags & 1 /* isElementConstructor */ &&
1417
+ memberFlags & 64 /* Method */) {
1369
1418
  // proxyComponent - method
1370
1419
  Object.defineProperty(prototype, memberName, {
1371
1420
  value(...args) {
@@ -1375,11 +1424,56 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1375
1424
  });
1376
1425
  }
1377
1426
  });
1378
- if ( ( flags & 1 /* isElementConstructor */)) {
1427
+ if ((flags & 1 /* isElementConstructor */)) {
1379
1428
  const attrNameToPropName = new Map();
1380
1429
  prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1381
1430
  plt.jmp(() => {
1382
1431
  const propName = attrNameToPropName.get(attrName);
1432
+ // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
1433
+ // in the case where an attribute was set inline.
1434
+ // ```html
1435
+ // <my-component some-attribute="some-value"></my-component>
1436
+ // ```
1437
+ //
1438
+ // There is an edge case where a developer sets the attribute inline on a custom element and then
1439
+ // programmatically changes it before it has been upgraded as shown below:
1440
+ //
1441
+ // ```html
1442
+ // <!-- this component has _not_ been upgraded yet -->
1443
+ // <my-component id="test" some-attribute="some-value"></my-component>
1444
+ // <script>
1445
+ // // grab non-upgraded component
1446
+ // el = document.querySelector("#test");
1447
+ // el.someAttribute = "another-value";
1448
+ // // upgrade component
1449
+ // customElements.define('my-component', MyComponent);
1450
+ // </script>
1451
+ // ```
1452
+ // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1453
+ // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1454
+ // to the value that was set inline i.e. "some-value" from above example. When
1455
+ // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1456
+ //
1457
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1458
+ // by connectedCallback as this attributeChangedCallback will not fire.
1459
+ //
1460
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1461
+ //
1462
+ // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to
1463
+ // properties here given that this goes against best practices outlined here
1464
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy
1465
+ if (this.hasOwnProperty(propName)) {
1466
+ newValue = this[propName];
1467
+ delete this[propName];
1468
+ }
1469
+ else if (prototype.hasOwnProperty(propName) &&
1470
+ typeof this[propName] === 'number' &&
1471
+ this[propName] == newValue) {
1472
+ // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native
1473
+ // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in
1474
+ // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1475
+ return;
1476
+ }
1383
1477
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1384
1478
  });
1385
1479
  };
@@ -1390,7 +1484,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1390
1484
  .map(([propName, m]) => {
1391
1485
  const attrName = m[1] || propName;
1392
1486
  attrNameToPropName.set(attrName, propName);
1393
- if ( m[0] & 512 /* ReflectAttr */) {
1487
+ if (m[0] & 512 /* ReflectAttr */) {
1394
1488
  cmpMeta.$attrsToReflect$.push([propName, attrName]);
1395
1489
  }
1396
1490
  return attrName;
@@ -1401,7 +1495,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1401
1495
  };
1402
1496
  const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1403
1497
  // initializeComponent
1404
- if ( (hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1498
+ if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1405
1499
  {
1406
1500
  // we haven't initialized this element yet
1407
1501
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
@@ -1415,8 +1509,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1415
1509
  Cstr = await Cstr;
1416
1510
  endLoad();
1417
1511
  }
1418
- if ( !Cstr.isProxied) {
1419
- // we'eve never proxied this Constructor before
1512
+ if (!Cstr.isProxied) {
1513
+ // we've never proxied this Constructor before
1420
1514
  // let's add the getters/setters to its prototype before
1421
1515
  // the first time we create an instance of the implementation
1422
1516
  {
@@ -1451,10 +1545,10 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1451
1545
  endNewInstance();
1452
1546
  fireConnectedCallback(hostRef.$lazyInstance$);
1453
1547
  }
1454
- if ( Cstr.style) {
1548
+ if (Cstr.style) {
1455
1549
  // this component has styles but we haven't registered them yet
1456
1550
  let style = Cstr.style;
1457
- if ( typeof style !== 'string') {
1551
+ if (typeof style !== 'string') {
1458
1552
  style = style[(hostRef.$modeName$ = computeMode(elm))];
1459
1553
  }
1460
1554
  const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);
@@ -1468,8 +1562,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1468
1562
  // we've successfully created a lazy instance
1469
1563
  const ancestorComponent = hostRef.$ancestorComponent$;
1470
1564
  const schedule = () => scheduleUpdate(hostRef, true);
1471
- if ( ancestorComponent && ancestorComponent['s-rc']) {
1472
- // this is the intial load and this component it has an ancestor component
1565
+ if (ancestorComponent && ancestorComponent['s-rc']) {
1566
+ // this is the initial load and this component it has an ancestor component
1473
1567
  // but the ancestor component has NOT fired its will update lifecycle yet
1474
1568
  // so let's just cool our jets and wait for the ancestor to continue first
1475
1569
  // this will get fired off when the ancestor component
@@ -1499,7 +1593,7 @@ const connectedCallback = (elm) => {
1499
1593
  // if the slot polyfill is required we'll need to put some nodes
1500
1594
  // in here to act as original content anchors as we move nodes around
1501
1595
  // host element has been connected to the DOM
1502
- if ( ( cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1596
+ if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1503
1597
  setContentReference(elm);
1504
1598
  }
1505
1599
  }
@@ -1510,8 +1604,7 @@ const connectedCallback = (elm) => {
1510
1604
  while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {
1511
1605
  // climb up the ancestors looking for the first
1512
1606
  // component that hasn't finished its lifecycle update yet
1513
- if (
1514
- ancestorComponent['s-p']) {
1607
+ if (ancestorComponent['s-p']) {
1515
1608
  // we found this components first ancestor component
1516
1609
  // keep a reference to this component's ancestor component
1517
1610
  attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));
@@ -1521,7 +1614,7 @@ const connectedCallback = (elm) => {
1521
1614
  }
1522
1615
  // Lazy properties
1523
1616
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1524
- if ( cmpMeta.$members$) {
1617
+ if (cmpMeta.$members$) {
1525
1618
  Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {
1526
1619
  if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {
1527
1620
  const value = elm[memberName];
@@ -1552,17 +1645,17 @@ const setContentReference = (elm) => {
1552
1645
  // let's pick out the inner content for slot projection
1553
1646
  // create a node to represent where the original
1554
1647
  // content was first placed, which is useful later on
1555
- const contentRefElm = (elm['s-cr'] = doc.createComment( ''));
1648
+ const contentRefElm = (elm['s-cr'] = doc.createComment(''));
1556
1649
  contentRefElm['s-cn'] = true;
1557
1650
  elm.insertBefore(contentRefElm, elm.firstChild);
1558
1651
  };
1559
1652
  const disconnectedCallback = (elm) => {
1560
1653
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1561
1654
  const hostRef = getHostRef(elm);
1562
- const instance = hostRef.$lazyInstance$ ;
1655
+ const instance = hostRef.$lazyInstance$ ;
1563
1656
  {
1564
1657
  if (hostRef.$rmListeners$) {
1565
- hostRef.$rmListeners$.map(rmListener => rmListener());
1658
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
1566
1659
  hostRef.$rmListeners$ = undefined;
1567
1660
  }
1568
1661
  }
@@ -1587,74 +1680,76 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1587
1680
  let isBootstrapping = true;
1588
1681
  Object.assign(plt, options);
1589
1682
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
1590
- lazyBundles.map(lazyBundle => lazyBundle[1].map(compactMeta => {
1591
- const cmpMeta = {
1592
- $flags$: compactMeta[0],
1593
- $tagName$: compactMeta[1],
1594
- $members$: compactMeta[2],
1595
- $listeners$: compactMeta[3],
1596
- };
1597
- {
1598
- cmpMeta.$members$ = compactMeta[2];
1599
- }
1600
- {
1601
- cmpMeta.$listeners$ = compactMeta[3];
1602
- }
1603
- {
1604
- cmpMeta.$attrsToReflect$ = [];
1605
- }
1606
- {
1607
- cmpMeta.$watchers$ = {};
1608
- }
1609
- const tagName = cmpMeta.$tagName$;
1610
- const HostElement = class extends HTMLElement {
1611
- // StencilLazyHost
1612
- constructor(self) {
1613
- // @ts-ignore
1614
- super(self);
1615
- self = this;
1616
- registerHost(self, cmpMeta);
1617
- if ( cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1618
- // this component is using shadow dom
1619
- // and this browser supports shadow dom
1620
- // add the read-only property "shadowRoot" to the host element
1621
- // adding the shadow root build conditionals to minimize runtime
1622
- {
1683
+ lazyBundles.map((lazyBundle) => {
1684
+ lazyBundle[1].map((compactMeta) => {
1685
+ const cmpMeta = {
1686
+ $flags$: compactMeta[0],
1687
+ $tagName$: compactMeta[1],
1688
+ $members$: compactMeta[2],
1689
+ $listeners$: compactMeta[3],
1690
+ };
1691
+ {
1692
+ cmpMeta.$members$ = compactMeta[2];
1693
+ }
1694
+ {
1695
+ cmpMeta.$listeners$ = compactMeta[3];
1696
+ }
1697
+ {
1698
+ cmpMeta.$attrsToReflect$ = [];
1699
+ }
1700
+ {
1701
+ cmpMeta.$watchers$ = {};
1702
+ }
1703
+ const tagName = cmpMeta.$tagName$;
1704
+ const HostElement = class extends HTMLElement {
1705
+ // StencilLazyHost
1706
+ constructor(self) {
1707
+ // @ts-ignore
1708
+ super(self);
1709
+ self = this;
1710
+ registerHost(self, cmpMeta);
1711
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1712
+ // this component is using shadow dom
1713
+ // and this browser supports shadow dom
1714
+ // add the read-only property "shadowRoot" to the host element
1715
+ // adding the shadow root build conditionals to minimize runtime
1623
1716
  {
1624
- self.attachShadow({
1625
- mode: 'open',
1626
- delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
1627
- });
1717
+ {
1718
+ self.attachShadow({
1719
+ mode: 'open',
1720
+ delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
1721
+ });
1722
+ }
1628
1723
  }
1629
1724
  }
1630
1725
  }
1631
- }
1632
- connectedCallback() {
1633
- if (appLoadFallback) {
1634
- clearTimeout(appLoadFallback);
1635
- appLoadFallback = null;
1726
+ connectedCallback() {
1727
+ if (appLoadFallback) {
1728
+ clearTimeout(appLoadFallback);
1729
+ appLoadFallback = null;
1730
+ }
1731
+ if (isBootstrapping) {
1732
+ // connectedCallback will be processed once all components have been registered
1733
+ deferredConnectedCallbacks.push(this);
1734
+ }
1735
+ else {
1736
+ plt.jmp(() => connectedCallback(this));
1737
+ }
1636
1738
  }
1637
- if (isBootstrapping) {
1638
- // connectedCallback will be processed once all components have been registered
1639
- deferredConnectedCallbacks.push(this);
1739
+ disconnectedCallback() {
1740
+ plt.jmp(() => disconnectedCallback(this));
1640
1741
  }
1641
- else {
1642
- plt.jmp(() => connectedCallback(this));
1742
+ componentOnReady() {
1743
+ return getHostRef(this).$onReadyPromise$;
1643
1744
  }
1745
+ };
1746
+ cmpMeta.$lazyBundleId$ = lazyBundle[0];
1747
+ if (!exclude.includes(tagName) && !customElements.get(tagName)) {
1748
+ cmpTags.push(tagName);
1749
+ customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));
1644
1750
  }
1645
- disconnectedCallback() {
1646
- plt.jmp(() => disconnectedCallback(this));
1647
- }
1648
- componentOnReady() {
1649
- return getHostRef(this).$onReadyPromise$;
1650
- }
1651
- };
1652
- cmpMeta.$lazyBundleId$ = lazyBundle[0];
1653
- if (!exclude.includes(tagName) && !customElements.get(tagName)) {
1654
- cmpTags.push(tagName);
1655
- customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));
1656
- }
1657
- }));
1751
+ });
1752
+ });
1658
1753
  {
1659
1754
  visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
1660
1755
  visibilityStyle.setAttribute('data-styles', '');
@@ -1663,7 +1758,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1663
1758
  // Process deferred connectedCallbacks now all components have been registered
1664
1759
  isBootstrapping = false;
1665
1760
  if (deferredConnectedCallbacks.length) {
1666
- deferredConnectedCallbacks.map(host => host.connectedCallback());
1761
+ deferredConnectedCallbacks.map((host) => host.connectedCallback());
1667
1762
  }
1668
1763
  else {
1669
1764
  {
@@ -1688,10 +1783,10 @@ const getContext = (_elm, context) => {
1688
1783
  return doc;
1689
1784
  }
1690
1785
  else if (context === 'isServer' || context === 'isPrerender') {
1691
- return false;
1786
+ return false;
1692
1787
  }
1693
1788
  else if (context === 'isClient') {
1694
- return true;
1789
+ return true;
1695
1790
  }
1696
1791
  else if (context === 'resourcesUrl' || context === 'publicPath') {
1697
1792
  return getAssetPath('.');
@@ -1721,10 +1816,10 @@ const registerHost = (elm, cmpMeta) => {
1721
1816
  $instanceValues$: new Map(),
1722
1817
  };
1723
1818
  {
1724
- hostRef.$onInstancePromise$ = new Promise(r => (hostRef.$onInstanceResolve$ = r));
1819
+ hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));
1725
1820
  }
1726
1821
  {
1727
- hostRef.$onReadyPromise$ = new Promise(r => (hostRef.$onReadyResolve$ = r));
1822
+ hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
1728
1823
  elm['s-p'] = [];
1729
1824
  elm['s-rc'] = [];
1730
1825
  }
@@ -1732,13 +1827,13 @@ const registerHost = (elm, cmpMeta) => {
1732
1827
  return hostRefs.set(elm, hostRef);
1733
1828
  };
1734
1829
  const isMemberInElement = (elm, memberName) => memberName in elm;
1735
- const consoleError = (e, el) => ( 0, console.error)(e, el);
1830
+ const consoleError = (e, el) => (0, console.error)(e, el);
1736
1831
  const cmpModules = /*@__PURE__*/ new Map();
1737
1832
  const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1738
1833
  // loadModuleImport
1739
1834
  const exportName = cmpMeta.$tagName$.replace(/-/g, '_');
1740
1835
  const bundleId = cmpMeta.$lazyBundleId$;
1741
- const module = cmpModules.get(bundleId) ;
1836
+ const module = cmpModules.get(bundleId) ;
1742
1837
  if (module) {
1743
1838
  return module[exportName];
1744
1839
  }
@@ -1746,7 +1841,7 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1746
1841
  /* webpackInclude: /\.entry\.js$/ */
1747
1842
  /* webpackExclude: /\.system\.entry\.js$/ */
1748
1843
  /* webpackMode: "lazy" */
1749
- `./${bundleId}.entry.js${ ''}`)); }).then(importedModule => {
1844
+ `./${bundleId}.entry.js${''}`)); }).then((importedModule) => {
1750
1845
  {
1751
1846
  cmpModules.set(bundleId, importedModule);
1752
1847
  }
@@ -1799,10 +1894,10 @@ const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1799
1894
  const readTask = /*@__PURE__*/ queueTask(queueDomReads, false);
1800
1895
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1801
1896
  const Build = {
1802
- isDev: false,
1897
+ isDev: false,
1803
1898
  isBrowser: true,
1804
1899
  isServer: false,
1805
- isTesting: false,
1900
+ isTesting: false,
1806
1901
  };
1807
1902
 
1808
1903
  exports.Build = Build;
@@ -1822,4 +1917,5 @@ exports.promiseResolve = promiseResolve;
1822
1917
  exports.readTask = readTask;
1823
1918
  exports.registerInstance = registerInstance;
1824
1919
  exports.setMode = setMode;
1920
+ exports.setPlatformHelpers = setPlatformHelpers;
1825
1921
  exports.writeTask = writeTask;