@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
@@ -14,17 +14,20 @@ const doc = win.document || { head: {} };
14
14
  const plt = {
15
15
  $flags$: 0,
16
16
  $resourcesUrl$: '',
17
- jmp: h => h(),
18
- raf: h => requestAnimationFrame(h),
17
+ jmp: (h) => h(),
18
+ raf: (h) => requestAnimationFrame(h),
19
19
  ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
20
20
  rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
21
21
  ce: (eventName, opts) => new CustomEvent(eventName, opts),
22
22
  };
23
+ const setPlatformHelpers = (helpers) => {
24
+ Object.assign(plt, helpers);
25
+ };
23
26
  const promiseResolve = (v) => Promise.resolve(v);
24
- const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
27
+ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
25
28
  try {
26
29
  new CSSStyleSheet();
27
- return true;
30
+ return typeof new CSSStyleSheet().replace === 'function';
28
31
  }
29
32
  catch (e) { }
30
33
  return false;
@@ -32,9 +35,9 @@ const supportsConstructibleStylesheets = /*@__PURE__*/ (() => {
32
35
  ;
33
36
  const Context = {};
34
37
  const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
35
- if ( listeners) {
38
+ if (listeners) {
36
39
  listeners.map(([flags, name, method]) => {
37
- const target = getHostListenerTarget(elm, flags) ;
40
+ const target = getHostListenerTarget(elm, flags) ;
38
41
  const handler = hostListenerProxy(hostRef, method);
39
42
  const opts = hostListenerOpts(flags);
40
43
  plt.ael(target, name, handler, opts);
@@ -59,16 +62,16 @@ const hostListenerProxy = (hostRef, methodName) => (ev) => {
59
62
  }
60
63
  };
61
64
  const getHostListenerTarget = (elm, flags) => {
62
- if ( flags & 4 /* TargetDocument */)
65
+ if (flags & 4 /* TargetDocument */)
63
66
  return doc;
64
- if ( flags & 8 /* TargetWindow */)
67
+ if (flags & 8 /* TargetWindow */)
65
68
  return win;
66
- if ( flags & 16 /* TargetBody */)
69
+ if (flags & 16 /* TargetBody */)
67
70
  return doc.body;
68
71
  return elm;
69
72
  };
70
73
  // prettier-ignore
71
- const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
74
+ const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
72
75
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
73
76
  const XLINK_NS = 'http://www.w3.org/1999/xlink';
74
77
  const createTime = (fnName, tagName = '') => {
@@ -124,7 +127,7 @@ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
124
127
  }
125
128
  }
126
129
  }
127
- else if ( !styleContainerNode.adoptedStyleSheets.includes(style)) {
130
+ else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
128
131
  styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
129
132
  }
130
133
  }
@@ -135,8 +138,8 @@ const attachStyles = (hostRef) => {
135
138
  const elm = hostRef.$hostElement$;
136
139
  const flags = cmpMeta.$flags$;
137
140
  const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
138
- const scopeId = addStyle( elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$);
139
- if ( flags & 10 /* needsScopedEncapsulation */) {
141
+ const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$);
142
+ if (flags & 10 /* needsScopedEncapsulation */) {
140
143
  // only required when we're NOT using native shadow dom (slot)
141
144
  // or this browser doesn't support native shadow dom
142
145
  // and this host element was NOT created with SSR
@@ -146,15 +149,15 @@ const attachStyles = (hostRef) => {
146
149
  // DOM WRITE!!
147
150
  elm['s-sc'] = scopeId;
148
151
  elm.classList.add(scopeId + '-h');
149
- if ( flags & 2 /* scopedCssEncapsulation */) {
152
+ if (flags & 2 /* scopedCssEncapsulation */) {
150
153
  elm.classList.add(scopeId + '-s');
151
154
  }
152
155
  }
153
156
  endAttachStyles();
154
157
  };
155
- const getScopeId = (cmp, mode) => 'sc-' + ( mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);
158
+ const getScopeId = (cmp, mode) => 'sc-' + (mode && cmp.$flags$ & 32 /* hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);
156
159
  // Private
157
- const computeMode = (elm) => modeResolutionChain.map(h => h(elm)).find(m => !!m);
160
+ const computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);
158
161
  // Public
159
162
  const setMode = (handler) => modeResolutionChain.push(handler);
160
163
  const getMode = (ref) => getHostRef(ref).$modeName$;
@@ -220,10 +223,10 @@ const h = (nodeName, vnodeData, ...children) => {
220
223
  walk(children);
221
224
  if (vnodeData) {
222
225
  // normalize class / classname attributes
223
- if ( vnodeData.key) {
226
+ if (vnodeData.key) {
224
227
  key = vnodeData.key;
225
228
  }
226
- if ( vnodeData.name) {
229
+ if (vnodeData.name) {
227
230
  slotName = vnodeData.name;
228
231
  }
229
232
  {
@@ -233,12 +236,12 @@ const h = (nodeName, vnodeData, ...children) => {
233
236
  typeof classData !== 'object'
234
237
  ? classData
235
238
  : Object.keys(classData)
236
- .filter(k => classData[k])
239
+ .filter((k) => classData[k])
237
240
  .join(' ');
238
241
  }
239
242
  }
240
243
  }
241
- if ( typeof nodeName === 'function') {
244
+ if (typeof nodeName === 'function') {
242
245
  // nodeName is a functional component
243
246
  return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);
244
247
  }
@@ -318,19 +321,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
318
321
  if (oldValue !== newValue) {
319
322
  let isProp = isMemberInElement(elm, memberName);
320
323
  let ln = memberName.toLowerCase();
321
- if ( memberName === 'class') {
324
+ if (memberName === 'class') {
322
325
  const classList = elm.classList;
323
326
  const oldClasses = parseClassList(oldValue);
324
327
  const newClasses = parseClassList(newValue);
325
- classList.remove(...oldClasses.filter(c => c && !newClasses.includes(c)));
326
- classList.add(...newClasses.filter(c => c && !oldClasses.includes(c)));
328
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
329
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
327
330
  }
328
- else if ( memberName === 'style') {
331
+ else if (memberName === 'style') {
329
332
  // update style attribute, css properties and values
330
333
  {
331
334
  for (const prop in oldValue) {
332
335
  if (!newValue || newValue[prop] == null) {
333
- if ( prop.includes('-')) {
336
+ if (prop.includes('-')) {
334
337
  elm.style.removeProperty(prop);
335
338
  }
336
339
  else {
@@ -341,7 +344,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
341
344
  }
342
345
  for (const prop in newValue) {
343
346
  if (!oldValue || newValue[prop] !== oldValue[prop]) {
344
- if ( prop.includes('-')) {
347
+ if (prop.includes('-')) {
345
348
  elm.style.setProperty(prop, newValue[prop]);
346
349
  }
347
350
  else {
@@ -350,15 +353,17 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
350
353
  }
351
354
  }
352
355
  }
353
- else if ( memberName === 'key')
356
+ else if (memberName === 'key')
354
357
  ;
355
- else if ( memberName === 'ref') {
358
+ else if (memberName === 'ref') {
356
359
  // minifier will clean this up
357
360
  if (newValue) {
358
361
  newValue(elm);
359
362
  }
360
363
  }
361
- else if ( ( !isProp ) && memberName[0] === 'o' && memberName[1] === 'n') {
364
+ else if ((!isProp ) &&
365
+ memberName[0] === 'o' &&
366
+ memberName[1] === 'n') {
362
367
  // Event Handlers
363
368
  // so if the member name starts with "on" and the 3rd characters is
364
369
  // a capital letter, and it's not already a member on the element,
@@ -405,7 +410,6 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
405
410
  // Workaround for Safari, moving the <input> caret when re-assigning the same valued
406
411
  if (memberName === 'list') {
407
412
  isProp = false;
408
- // tslint:disable-next-line: triple-equals
409
413
  }
410
414
  else if (oldValue == null || elm[memberName] != n) {
411
415
  elm[memberName] = n;
@@ -433,7 +437,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
433
437
  }
434
438
  if (newValue == null || newValue === false) {
435
439
  if (newValue !== false || elm.getAttribute(memberName) === '') {
436
- if ( xlink) {
440
+ if (xlink) {
437
441
  elm.removeAttributeNS(XLINK_NS, memberName);
438
442
  }
439
443
  else {
@@ -443,7 +447,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
443
447
  }
444
448
  else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
445
449
  newValue = newValue === true ? '' : newValue;
446
- if ( xlink) {
450
+ if (xlink) {
447
451
  elm.setAttributeNS(XLINK_NS, memberName, newValue);
448
452
  }
449
453
  else {
@@ -459,7 +463,9 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
459
463
  // if the element passed in is a shadow root, which is a document fragment
460
464
  // then we want to be adding attrs/props to the shadow root's "host" element
461
465
  // if it's not a shadow root, then we add attrs/props to the same element
462
- const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
466
+ const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host
467
+ ? newVnode.$elm$.host
468
+ : newVnode.$elm$;
463
469
  const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;
464
470
  const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
465
471
  {
@@ -482,7 +488,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
482
488
  let elm;
483
489
  let childNode;
484
490
  let oldVNode;
485
- if ( !useNativeShadowDom) {
491
+ if (!useNativeShadowDom) {
486
492
  // remember for later we need to check to relocate nodes
487
493
  checkSlotRelocate = true;
488
494
  if (newVNode.$tag$ === 'slot') {
@@ -497,29 +503,32 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
497
503
  1 /* isSlotReference */;
498
504
  }
499
505
  }
500
- if ( newVNode.$text$ !== null) {
506
+ if (newVNode.$text$ !== null) {
501
507
  // create text node
502
508
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
503
509
  }
504
- else if ( newVNode.$flags$ & 1 /* isSlotReference */) {
510
+ else if (newVNode.$flags$ & 1 /* isSlotReference */) {
505
511
  // create a slot reference node
506
- elm = newVNode.$elm$ = doc.createTextNode('');
512
+ elm = newVNode.$elm$ =
513
+ doc.createTextNode('');
507
514
  }
508
515
  else {
509
- if ( !isSvgMode) {
516
+ if (!isSvgMode) {
510
517
  isSvgMode = newVNode.$tag$ === 'svg';
511
518
  }
512
519
  // create element
513
- elm = newVNode.$elm$ = ( doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$)
520
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */
521
+ ? 'slot-fb'
522
+ : newVNode.$tag$)
514
523
  );
515
- if ( isSvgMode && newVNode.$tag$ === 'foreignObject') {
524
+ if (isSvgMode && newVNode.$tag$ === 'foreignObject') {
516
525
  isSvgMode = false;
517
526
  }
518
527
  // add css classes, attrs, props, listeners, etc.
519
528
  {
520
529
  updateElement(null, newVNode, isSvgMode);
521
530
  }
522
- if ( isDef(scopeId) && elm['s-si'] !== scopeId) {
531
+ if (isDef(scopeId) && elm['s-si'] !== scopeId) {
523
532
  // if there is a scopeId and this is the initial render
524
533
  // then let's add the scopeId as a css class
525
534
  elm.classList.add((elm['s-si'] = scopeId));
@@ -591,9 +600,9 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
591
600
  plt.$flags$ &= ~1 /* isTmpDisconnected */;
592
601
  };
593
602
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
594
- let containerElm = (( parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
603
+ let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
595
604
  let childNode;
596
- if ( containerElm.shadowRoot && containerElm.tagName === hostTagName) {
605
+ if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
597
606
  containerElm = containerElm.shadowRoot;
598
607
  }
599
608
  for (; startIdx <= endIdx; ++startIdx) {
@@ -601,7 +610,7 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
601
610
  childNode = createElm(null, parentVNode, startIdx, parentElm);
602
611
  if (childNode) {
603
612
  vnodes[startIdx].$elm$ = childNode;
604
- containerElm.insertBefore(childNode, referenceNode(before) );
613
+ containerElm.insertBefore(childNode, referenceNode(before) );
605
614
  }
606
615
  }
607
616
  }
@@ -669,7 +678,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
669
678
  }
670
679
  else if (isSameVnode(oldStartVnode, newEndVnode)) {
671
680
  // Vnode moved right
672
- if ( (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
681
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
673
682
  putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
674
683
  }
675
684
  patch(oldStartVnode, newEndVnode);
@@ -679,7 +688,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
679
688
  }
680
689
  else if (isSameVnode(oldEndVnode, newStartVnode)) {
681
690
  // Vnode moved left
682
- if ( (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
691
+ if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
683
692
  putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
684
693
  }
685
694
  patch(oldEndVnode, newStartVnode);
@@ -698,7 +707,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
698
707
  }
699
708
  }
700
709
  }
701
- if ( idxInOld >= 0) {
710
+ if (idxInOld >= 0) {
702
711
  elmToMove = oldCh[idxInOld];
703
712
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
704
713
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);
@@ -725,7 +734,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
725
734
  if (oldStartIdx > oldEndIdx) {
726
735
  addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);
727
736
  }
728
- else if ( newStartIdx > newEndIdx) {
737
+ else if (newStartIdx > newEndIdx) {
729
738
  removeVnodes(oldCh, oldStartIdx, oldEndIdx);
730
739
  }
731
740
  };
@@ -733,7 +742,7 @@ const isSameVnode = (vnode1, vnode2) => {
733
742
  // compare if two vnode to see if they're "technically" the same
734
743
  // need to have the same element tag, and same key to be the same
735
744
  if (vnode1.$tag$ === vnode2.$tag$) {
736
- if ( vnode1.$tag$ === 'slot') {
745
+ if (vnode1.$tag$ === 'slot') {
737
746
  return vnode1.$name$ === vnode2.$name$;
738
747
  }
739
748
  {
@@ -757,7 +766,7 @@ const patch = (oldVNode, newVNode) => {
757
766
  const tag = newVNode.$tag$;
758
767
  const text = newVNode.$text$;
759
768
  let defaultHolder;
760
- if ( text === null) {
769
+ if (text === null) {
761
770
  {
762
771
  // test if we're rendering an svg element, or still rendering nodes inside of one
763
772
  // only add this to the when the compiler sees we're using an svg somewhere
@@ -765,7 +774,7 @@ const patch = (oldVNode, newVNode) => {
765
774
  }
766
775
  // element node
767
776
  {
768
- if ( tag === 'slot')
777
+ if (tag === 'slot')
769
778
  ;
770
779
  else {
771
780
  // either this is the first render of an element OR it's an update
@@ -774,32 +783,32 @@ const patch = (oldVNode, newVNode) => {
774
783
  updateElement(oldVNode, newVNode, isSvgMode);
775
784
  }
776
785
  }
777
- if ( oldChildren !== null && newChildren !== null) {
786
+ if (oldChildren !== null && newChildren !== null) {
778
787
  // looks like there's child vnodes for both the old and new vnodes
779
788
  updateChildren(elm, oldChildren, newVNode, newChildren);
780
789
  }
781
790
  else if (newChildren !== null) {
782
791
  // no old child vnodes, but there are new child vnodes to add
783
- if ( oldVNode.$text$ !== null) {
792
+ if (oldVNode.$text$ !== null) {
784
793
  // the old vnode was text, so be sure to clear it out
785
794
  elm.textContent = '';
786
795
  }
787
796
  // add the new vnode children
788
797
  addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);
789
798
  }
790
- else if ( oldChildren !== null) {
799
+ else if (oldChildren !== null) {
791
800
  // no new child vnodes, but there are old child vnodes to remove
792
801
  removeVnodes(oldChildren, 0, oldChildren.length - 1);
793
802
  }
794
- if ( isSvgMode && tag === 'svg') {
803
+ if (isSvgMode && tag === 'svg') {
795
804
  isSvgMode = false;
796
805
  }
797
806
  }
798
- else if ( (defaultHolder = elm['s-cr'])) {
807
+ else if ((defaultHolder = elm['s-cr'])) {
799
808
  // this element has slotted content
800
809
  defaultHolder.parentNode.textContent = text;
801
810
  }
802
- else if ( oldVNode.$text$ !== text) {
811
+ else if (oldVNode.$text$ !== text) {
803
812
  // update the text content for the text only vnode
804
813
  // and also only if the text is different than before
805
814
  elm.data = text;
@@ -825,24 +834,22 @@ const updateFallbackSlotVisibility = (elm) => {
825
834
  // then hide it if there are other slots in the light dom
826
835
  childNode.hidden = false;
827
836
  for (j = 0; j < ilen; j++) {
828
- if (childNodes[j]['s-hn'] !== childNode['s-hn']) {
829
- // this sibling node is from a different component
830
- nodeType = childNodes[j].nodeType;
831
- if (slotNameAttr !== '') {
832
- // this is a named fallback slot node
833
- if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
834
- childNode.hidden = true;
835
- break;
836
- }
837
+ nodeType = childNodes[j].nodeType;
838
+ if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
839
+ // this sibling node is from a different component OR is a named fallback slot node
840
+ if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
841
+ childNode.hidden = true;
842
+ break;
837
843
  }
838
- else {
839
- // this is a default fallback slot node
840
- // any element or text node (with content)
841
- // should hide the default fallback slot node
842
- if (nodeType === 1 /* ElementNode */ || (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
843
- childNode.hidden = true;
844
- break;
845
- }
844
+ }
845
+ else {
846
+ // this is a default fallback slot node
847
+ // any element or text node (with content)
848
+ // should hide the default fallback slot node
849
+ if (nodeType === 1 /* ElementNode */ ||
850
+ (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
851
+ childNode.hidden = true;
852
+ break;
846
853
  }
847
854
  }
848
855
  }
@@ -866,7 +873,7 @@ const relocateSlotContent = (elm) => {
866
873
  let ilen = childNodes.length;
867
874
  for (; i < ilen; i++) {
868
875
  childNode = childNodes[i];
869
- if (childNode['s-sr'] && (node = childNode['s-cr'])) {
876
+ if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
870
877
  // first got the content reference comment node
871
878
  // then we got it's parent, which is where all the host content is in now
872
879
  hostContentNodes = node.parentNode.childNodes;
@@ -879,7 +886,7 @@ const relocateSlotContent = (elm) => {
879
886
  // that is suppose to always represent the original content location
880
887
  if (isNodeLocatedInSlot(node, slotNameAttr)) {
881
888
  // it's possible we've already decided to relocate this node
882
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
889
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
883
890
  // made some changes to slots
884
891
  // let's make sure we also double check
885
892
  // fallbacks are correctly hidden or shown
@@ -898,9 +905,9 @@ const relocateSlotContent = (elm) => {
898
905
  });
899
906
  }
900
907
  if (node['s-sr']) {
901
- relocateNodes.map(relocateNode => {
908
+ relocateNodes.map((relocateNode) => {
902
909
  if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {
903
- relocateNodeData = relocateNodes.find(r => r.$nodeToRelocate$ === node);
910
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
904
911
  if (relocateNodeData && !relocateNode.$slotRefNode$) {
905
912
  relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
906
913
  }
@@ -908,7 +915,7 @@ const relocateSlotContent = (elm) => {
908
915
  });
909
916
  }
910
917
  }
911
- else if (!relocateNodes.some(r => r.$nodeToRelocate$ === node)) {
918
+ else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
912
919
  // so far this element does not have a slot home, not setting slotRefNode on purpose
913
920
  // if we never find a home for this element then we'll need to hide it
914
921
  relocateNodes.push({
@@ -950,20 +957,20 @@ const renderVdom = (hostRef, renderFnResults) => {
950
957
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
951
958
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
952
959
  hostTagName = hostElm.tagName;
953
- if ( cmpMeta.$attrsToReflect$) {
960
+ if (cmpMeta.$attrsToReflect$) {
954
961
  rootVnode.$attrs$ = rootVnode.$attrs$ || {};
955
962
  cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));
956
963
  }
957
964
  rootVnode.$tag$ = null;
958
965
  rootVnode.$flags$ |= 4 /* isHost */;
959
966
  hostRef.$vnode$ = rootVnode;
960
- rootVnode.$elm$ = oldVNode.$elm$ = ( hostElm.shadowRoot || hostElm );
967
+ rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm );
961
968
  {
962
969
  scopeId = hostElm['s-sc'];
963
970
  }
964
971
  {
965
972
  contentRef = hostElm['s-cr'];
966
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
973
+ useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
967
974
  // always reset
968
975
  checkSlotFallbackVisibility = false;
969
976
  }
@@ -988,7 +995,8 @@ const renderVdom = (hostRef, renderFnResults) => {
988
995
  if (!nodeToRelocate['s-ol']) {
989
996
  // add a reference node marking this node's original location
990
997
  // keep a reference to this node for later lookups
991
- orgLocationNode = doc.createTextNode('');
998
+ orgLocationNode =
999
+ doc.createTextNode('');
992
1000
  orgLocationNode['s-nr'] = nodeToRelocate;
993
1001
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
994
1002
  }
@@ -1012,7 +1020,8 @@ const renderVdom = (hostRef, renderFnResults) => {
1012
1020
  }
1013
1021
  }
1014
1022
  }
1015
- if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {
1023
+ if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
1024
+ nodeToRelocate.nextSibling !== insertBeforeNode) {
1016
1025
  // we've checked that it's worth while to relocate
1017
1026
  // since that the node to relocate
1018
1027
  // has a different next sibling or parent relocated
@@ -1044,7 +1053,7 @@ const renderVdom = (hostRef, renderFnResults) => {
1044
1053
  relocateNodes.length = 0;
1045
1054
  }
1046
1055
  };
1047
- const getElement = (ref) => ( getHostRef(ref).$hostElement$ );
1056
+ const getElement = (ref) => (getHostRef(ref).$hostElement$ );
1048
1057
  const createEvent = (ref, name, flags) => {
1049
1058
  const elm = getElement(ref);
1050
1059
  return {
@@ -1058,21 +1067,28 @@ const createEvent = (ref, name, flags) => {
1058
1067
  },
1059
1068
  };
1060
1069
  };
1070
+ /**
1071
+ * Helper function to create & dispatch a custom Event on a provided target
1072
+ * @param elm the target of the Event
1073
+ * @param name the name to give the custom Event
1074
+ * @param opts options for configuring a custom Event
1075
+ * @returns the custom Event
1076
+ */
1061
1077
  const emitEvent = (elm, name, opts) => {
1062
1078
  const ev = plt.ce(name, opts);
1063
1079
  elm.dispatchEvent(ev);
1064
1080
  return ev;
1065
1081
  };
1066
1082
  const attachToAncestor = (hostRef, ancestorComponent) => {
1067
- if ( ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1068
- ancestorComponent['s-p'].push(new Promise(r => (hostRef.$onRenderResolve$ = r)));
1083
+ if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1084
+ ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));
1069
1085
  }
1070
1086
  };
1071
1087
  const scheduleUpdate = (hostRef, isInitialLoad) => {
1072
1088
  {
1073
1089
  hostRef.$flags$ |= 16 /* isQueuedForUpdate */;
1074
1090
  }
1075
- if ( hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1091
+ if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1076
1092
  hostRef.$flags$ |= 512 /* needsRerender */;
1077
1093
  return;
1078
1094
  }
@@ -1081,11 +1097,11 @@ const scheduleUpdate = (hostRef, isInitialLoad) => {
1081
1097
  // has already fired off its lifecycle update then
1082
1098
  // fire off the initial update
1083
1099
  const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
1084
- return writeTask(dispatch) ;
1100
+ return writeTask(dispatch) ;
1085
1101
  };
1086
1102
  const dispatchHooks = (hostRef, isInitialLoad) => {
1087
1103
  const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);
1088
- const instance = hostRef.$lazyInstance$ ;
1104
+ const instance = hostRef.$lazyInstance$ ;
1089
1105
  let promise;
1090
1106
  if (isInitialLoad) {
1091
1107
  {
@@ -1115,26 +1131,19 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1115
1131
  const elm = hostRef.$hostElement$;
1116
1132
  const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);
1117
1133
  const rc = elm['s-rc'];
1118
- if ( isInitialLoad) {
1134
+ if (isInitialLoad) {
1119
1135
  // DOM WRITE!
1120
1136
  attachStyles(hostRef);
1121
1137
  }
1122
1138
  const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);
1123
1139
  {
1124
- {
1125
- // looks like we've got child nodes to render into this host element
1126
- // or we need to update the css class/attrs on the host element
1127
- // DOM WRITE!
1128
- {
1129
- renderVdom(hostRef, callRender(hostRef, instance));
1130
- }
1131
- }
1140
+ callRender(hostRef, instance);
1132
1141
  }
1133
- if ( rc) {
1142
+ if (rc) {
1134
1143
  // ok, so turns out there are some child host elements
1135
1144
  // waiting on this parent element to load
1136
1145
  // let's fire off all update callbacks waiting
1137
- rc.map(cb => cb());
1146
+ rc.map((cb) => cb());
1138
1147
  elm['s-rc'] = undefined;
1139
1148
  }
1140
1149
  endRender();
@@ -1152,29 +1161,39 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1152
1161
  }
1153
1162
  }
1154
1163
  };
1155
- const callRender = (hostRef, instance) => {
1164
+ const callRender = (hostRef, instance, elm) => {
1156
1165
  try {
1157
1166
  renderingRef = instance;
1158
- instance = instance.render && instance.render();
1167
+ instance = instance.render && instance.render();
1159
1168
  {
1160
1169
  hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
1161
1170
  }
1162
1171
  {
1163
1172
  hostRef.$flags$ |= 2 /* hasRendered */;
1164
1173
  }
1174
+ {
1175
+ {
1176
+ // looks like we've got child nodes to render into this host element
1177
+ // or we need to update the css class/attrs on the host element
1178
+ // DOM WRITE!
1179
+ {
1180
+ renderVdom(hostRef, instance);
1181
+ }
1182
+ }
1183
+ }
1165
1184
  }
1166
1185
  catch (e) {
1167
1186
  consoleError(e, hostRef.$hostElement$);
1168
1187
  }
1169
1188
  renderingRef = null;
1170
- return instance;
1189
+ return null;
1171
1190
  };
1172
1191
  const getRenderingRef = () => renderingRef;
1173
1192
  const postUpdateComponent = (hostRef) => {
1174
1193
  const tagName = hostRef.$cmpMeta$.$tagName$;
1175
1194
  const elm = hostRef.$hostElement$;
1176
1195
  const endPostUpdate = createTime('postUpdate', tagName);
1177
- const instance = hostRef.$lazyInstance$ ;
1196
+ const instance = hostRef.$lazyInstance$ ;
1178
1197
  const ancestorComponent = hostRef.$ancestorComponent$;
1179
1198
  {
1180
1199
  safeCall(instance, 'componentDidRender');
@@ -1225,7 +1244,8 @@ const forceUpdate = (ref) => {
1225
1244
  {
1226
1245
  const hostRef = getHostRef(ref);
1227
1246
  const isConnected = hostRef.$hostElement$.isConnected;
1228
- if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1247
+ if (isConnected &&
1248
+ (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1229
1249
  scheduleUpdate(hostRef, false);
1230
1250
  }
1231
1251
  // Returns "true" when the forced update was successfully scheduled
@@ -1254,20 +1274,44 @@ const safeCall = (instance, method, arg) => {
1254
1274
  const then = (promise, thenFn) => {
1255
1275
  return promise && promise.then ? promise.then(thenFn) : thenFn();
1256
1276
  };
1257
- const addHydratedFlag = (elm) => ( elm.classList.add('hydrated') );
1277
+ const addHydratedFlag = (elm) => elm.classList.add('hydrated')
1278
+ ;
1279
+ /**
1280
+ * Parse a new property value for a given property type.
1281
+ *
1282
+ * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
1283
+ * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
1284
+ * 1. `any`, the type given to `propValue` in the function signature
1285
+ * 2. the type stored from `propType`.
1286
+ *
1287
+ * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
1288
+ *
1289
+ * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
1290
+ * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
1291
+ * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
1292
+ * ```tsx
1293
+ * <my-cmp prop-val={0}></my-cmp>
1294
+ * ```
1295
+ *
1296
+ * HTML prop values on the other hand, will always a string
1297
+ *
1298
+ * @param propValue the new value to coerce to some type
1299
+ * @param propType the type of the prop, expressed as a binary number
1300
+ * @returns the parsed/coerced value
1301
+ */
1258
1302
  const parsePropertyValue = (propValue, propType) => {
1259
1303
  // ensure this value is of the correct prop type
1260
1304
  if (propValue != null && !isComplexType(propValue)) {
1261
- if ( propType & 4 /* Boolean */) {
1305
+ if (propType & 4 /* Boolean */) {
1262
1306
  // per the HTML spec, any string value means it is a boolean true value
1263
1307
  // but we'll cheat here and say that the string "false" is the boolean false
1264
1308
  return propValue === 'false' ? false : propValue === '' || !!propValue;
1265
1309
  }
1266
- if ( propType & 2 /* Number */) {
1310
+ if (propType & 2 /* Number */) {
1267
1311
  // force it to be a number
1268
1312
  return parseFloat(propValue);
1269
1313
  }
1270
- if ( propType & 1 /* String */) {
1314
+ if (propType & 1 /* String */) {
1271
1315
  // could have been passed as a number or boolean
1272
1316
  // but we still want it as a string
1273
1317
  return String(propValue);
@@ -1283,22 +1327,25 @@ const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propNam
1283
1327
  const setValue = (ref, propName, newVal, cmpMeta) => {
1284
1328
  // check our new property value against our internal value
1285
1329
  const hostRef = getHostRef(ref);
1286
- const elm = hostRef.$hostElement$ ;
1330
+ const elm = hostRef.$hostElement$ ;
1287
1331
  const oldVal = hostRef.$instanceValues$.get(propName);
1288
1332
  const flags = hostRef.$flags$;
1289
- const instance = hostRef.$lazyInstance$ ;
1333
+ const instance = hostRef.$lazyInstance$ ;
1290
1334
  newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);
1291
- if (( !(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && newVal !== oldVal) {
1335
+ // explicitly check for NaN on both sides, as `NaN === NaN` is always false
1336
+ const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
1337
+ const didValueChange = newVal !== oldVal && !areBothNaN;
1338
+ if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && didValueChange) {
1292
1339
  // gadzooks! the property's value has changed!!
1293
1340
  // set our new value!
1294
1341
  hostRef.$instanceValues$.set(propName, newVal);
1295
- if ( instance) {
1342
+ if (instance) {
1296
1343
  // get an array of method names of watch functions to call
1297
- if ( cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1344
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1298
1345
  const watchMethods = cmpMeta.$watchers$[propName];
1299
1346
  if (watchMethods) {
1300
1347
  // this instance is watching for when this property changed
1301
- watchMethods.map(watchMethodName => {
1348
+ watchMethods.map((watchMethodName) => {
1302
1349
  try {
1303
1350
  // fire off each of the watch methods that are watching this property
1304
1351
  instance[watchMethodName](newVal, oldVal, propName);
@@ -1309,7 +1356,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1309
1356
  });
1310
1357
  }
1311
1358
  }
1312
- if ( (flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1359
+ if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1313
1360
  // looks like this value actually changed, so we've got work to do!
1314
1361
  // but only if we've already rendered, otherwise just chill out
1315
1362
  // queue that we need to do an update, but don't worry about queuing
@@ -1320,15 +1367,16 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1320
1367
  }
1321
1368
  };
1322
1369
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1323
- if ( cmpMeta.$members$) {
1324
- if ( Cstr.watchers) {
1370
+ if (cmpMeta.$members$) {
1371
+ if (Cstr.watchers) {
1325
1372
  cmpMeta.$watchers$ = Cstr.watchers;
1326
1373
  }
1327
1374
  // It's better to have a const than two Object.entries()
1328
1375
  const members = Object.entries(cmpMeta.$members$);
1329
1376
  const prototype = Cstr.prototype;
1330
1377
  members.map(([memberName, [memberFlags]]) => {
1331
- if ( (memberFlags & 31 /* Prop */ || (( flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1378
+ if ((memberFlags & 31 /* Prop */ ||
1379
+ ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1332
1380
  // proxyComponent - prop
1333
1381
  Object.defineProperty(prototype, memberName, {
1334
1382
  get() {
@@ -1343,7 +1391,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1343
1391
  enumerable: true,
1344
1392
  });
1345
1393
  }
1346
- else if ( flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1394
+ else if (flags & 1 /* isElementConstructor */ &&
1395
+ memberFlags & 64 /* Method */) {
1347
1396
  // proxyComponent - method
1348
1397
  Object.defineProperty(prototype, memberName, {
1349
1398
  value(...args) {
@@ -1353,11 +1402,56 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1353
1402
  });
1354
1403
  }
1355
1404
  });
1356
- if ( ( flags & 1 /* isElementConstructor */)) {
1405
+ if ((flags & 1 /* isElementConstructor */)) {
1357
1406
  const attrNameToPropName = new Map();
1358
1407
  prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1359
1408
  plt.jmp(() => {
1360
1409
  const propName = attrNameToPropName.get(attrName);
1410
+ // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
1411
+ // in the case where an attribute was set inline.
1412
+ // ```html
1413
+ // <my-component some-attribute="some-value"></my-component>
1414
+ // ```
1415
+ //
1416
+ // There is an edge case where a developer sets the attribute inline on a custom element and then
1417
+ // programmatically changes it before it has been upgraded as shown below:
1418
+ //
1419
+ // ```html
1420
+ // <!-- this component has _not_ been upgraded yet -->
1421
+ // <my-component id="test" some-attribute="some-value"></my-component>
1422
+ // <script>
1423
+ // // grab non-upgraded component
1424
+ // el = document.querySelector("#test");
1425
+ // el.someAttribute = "another-value";
1426
+ // // upgrade component
1427
+ // customElements.define('my-component', MyComponent);
1428
+ // </script>
1429
+ // ```
1430
+ // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1431
+ // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1432
+ // to the value that was set inline i.e. "some-value" from above example. When
1433
+ // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1434
+ //
1435
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1436
+ // by connectedCallback as this attributeChangedCallback will not fire.
1437
+ //
1438
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1439
+ //
1440
+ // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to
1441
+ // properties here given that this goes against best practices outlined here
1442
+ // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy
1443
+ if (this.hasOwnProperty(propName)) {
1444
+ newValue = this[propName];
1445
+ delete this[propName];
1446
+ }
1447
+ else if (prototype.hasOwnProperty(propName) &&
1448
+ typeof this[propName] === 'number' &&
1449
+ this[propName] == newValue) {
1450
+ // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native
1451
+ // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in
1452
+ // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1453
+ return;
1454
+ }
1361
1455
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1362
1456
  });
1363
1457
  };
@@ -1368,7 +1462,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1368
1462
  .map(([propName, m]) => {
1369
1463
  const attrName = m[1] || propName;
1370
1464
  attrNameToPropName.set(attrName, propName);
1371
- if ( m[0] & 512 /* ReflectAttr */) {
1465
+ if (m[0] & 512 /* ReflectAttr */) {
1372
1466
  cmpMeta.$attrsToReflect$.push([propName, attrName]);
1373
1467
  }
1374
1468
  return attrName;
@@ -1379,7 +1473,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1379
1473
  };
1380
1474
  const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1381
1475
  // initializeComponent
1382
- if ( (hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1476
+ if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1383
1477
  {
1384
1478
  // we haven't initialized this element yet
1385
1479
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
@@ -1393,8 +1487,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1393
1487
  Cstr = await Cstr;
1394
1488
  endLoad();
1395
1489
  }
1396
- if ( !Cstr.isProxied) {
1397
- // we'eve never proxied this Constructor before
1490
+ if (!Cstr.isProxied) {
1491
+ // we've never proxied this Constructor before
1398
1492
  // let's add the getters/setters to its prototype before
1399
1493
  // the first time we create an instance of the implementation
1400
1494
  {
@@ -1429,10 +1523,10 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1429
1523
  endNewInstance();
1430
1524
  fireConnectedCallback(hostRef.$lazyInstance$);
1431
1525
  }
1432
- if ( Cstr.style) {
1526
+ if (Cstr.style) {
1433
1527
  // this component has styles but we haven't registered them yet
1434
1528
  let style = Cstr.style;
1435
- if ( typeof style !== 'string') {
1529
+ if (typeof style !== 'string') {
1436
1530
  style = style[(hostRef.$modeName$ = computeMode(elm))];
1437
1531
  }
1438
1532
  const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);
@@ -1446,8 +1540,8 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1446
1540
  // we've successfully created a lazy instance
1447
1541
  const ancestorComponent = hostRef.$ancestorComponent$;
1448
1542
  const schedule = () => scheduleUpdate(hostRef, true);
1449
- if ( ancestorComponent && ancestorComponent['s-rc']) {
1450
- // this is the intial load and this component it has an ancestor component
1543
+ if (ancestorComponent && ancestorComponent['s-rc']) {
1544
+ // this is the initial load and this component it has an ancestor component
1451
1545
  // but the ancestor component has NOT fired its will update lifecycle yet
1452
1546
  // so let's just cool our jets and wait for the ancestor to continue first
1453
1547
  // this will get fired off when the ancestor component
@@ -1477,7 +1571,7 @@ const connectedCallback = (elm) => {
1477
1571
  // if the slot polyfill is required we'll need to put some nodes
1478
1572
  // in here to act as original content anchors as we move nodes around
1479
1573
  // host element has been connected to the DOM
1480
- if ( ( cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1574
+ if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1481
1575
  setContentReference(elm);
1482
1576
  }
1483
1577
  }
@@ -1488,8 +1582,7 @@ const connectedCallback = (elm) => {
1488
1582
  while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {
1489
1583
  // climb up the ancestors looking for the first
1490
1584
  // component that hasn't finished its lifecycle update yet
1491
- if (
1492
- ancestorComponent['s-p']) {
1585
+ if (ancestorComponent['s-p']) {
1493
1586
  // we found this components first ancestor component
1494
1587
  // keep a reference to this component's ancestor component
1495
1588
  attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));
@@ -1499,7 +1592,7 @@ const connectedCallback = (elm) => {
1499
1592
  }
1500
1593
  // Lazy properties
1501
1594
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1502
- if ( cmpMeta.$members$) {
1595
+ if (cmpMeta.$members$) {
1503
1596
  Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {
1504
1597
  if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {
1505
1598
  const value = elm[memberName];
@@ -1530,17 +1623,17 @@ const setContentReference = (elm) => {
1530
1623
  // let's pick out the inner content for slot projection
1531
1624
  // create a node to represent where the original
1532
1625
  // content was first placed, which is useful later on
1533
- const contentRefElm = (elm['s-cr'] = doc.createComment( ''));
1626
+ const contentRefElm = (elm['s-cr'] = doc.createComment(''));
1534
1627
  contentRefElm['s-cn'] = true;
1535
1628
  elm.insertBefore(contentRefElm, elm.firstChild);
1536
1629
  };
1537
1630
  const disconnectedCallback = (elm) => {
1538
1631
  if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1539
1632
  const hostRef = getHostRef(elm);
1540
- const instance = hostRef.$lazyInstance$ ;
1633
+ const instance = hostRef.$lazyInstance$ ;
1541
1634
  {
1542
1635
  if (hostRef.$rmListeners$) {
1543
- hostRef.$rmListeners$.map(rmListener => rmListener());
1636
+ hostRef.$rmListeners$.map((rmListener) => rmListener());
1544
1637
  hostRef.$rmListeners$ = undefined;
1545
1638
  }
1546
1639
  }
@@ -1565,74 +1658,76 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1565
1658
  let isBootstrapping = true;
1566
1659
  Object.assign(plt, options);
1567
1660
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
1568
- lazyBundles.map(lazyBundle => lazyBundle[1].map(compactMeta => {
1569
- const cmpMeta = {
1570
- $flags$: compactMeta[0],
1571
- $tagName$: compactMeta[1],
1572
- $members$: compactMeta[2],
1573
- $listeners$: compactMeta[3],
1574
- };
1575
- {
1576
- cmpMeta.$members$ = compactMeta[2];
1577
- }
1578
- {
1579
- cmpMeta.$listeners$ = compactMeta[3];
1580
- }
1581
- {
1582
- cmpMeta.$attrsToReflect$ = [];
1583
- }
1584
- {
1585
- cmpMeta.$watchers$ = {};
1586
- }
1587
- const tagName = cmpMeta.$tagName$;
1588
- const HostElement = class extends HTMLElement {
1589
- // StencilLazyHost
1590
- constructor(self) {
1591
- // @ts-ignore
1592
- super(self);
1593
- self = this;
1594
- registerHost(self, cmpMeta);
1595
- if ( cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1596
- // this component is using shadow dom
1597
- // and this browser supports shadow dom
1598
- // add the read-only property "shadowRoot" to the host element
1599
- // adding the shadow root build conditionals to minimize runtime
1600
- {
1661
+ lazyBundles.map((lazyBundle) => {
1662
+ lazyBundle[1].map((compactMeta) => {
1663
+ const cmpMeta = {
1664
+ $flags$: compactMeta[0],
1665
+ $tagName$: compactMeta[1],
1666
+ $members$: compactMeta[2],
1667
+ $listeners$: compactMeta[3],
1668
+ };
1669
+ {
1670
+ cmpMeta.$members$ = compactMeta[2];
1671
+ }
1672
+ {
1673
+ cmpMeta.$listeners$ = compactMeta[3];
1674
+ }
1675
+ {
1676
+ cmpMeta.$attrsToReflect$ = [];
1677
+ }
1678
+ {
1679
+ cmpMeta.$watchers$ = {};
1680
+ }
1681
+ const tagName = cmpMeta.$tagName$;
1682
+ const HostElement = class extends HTMLElement {
1683
+ // StencilLazyHost
1684
+ constructor(self) {
1685
+ // @ts-ignore
1686
+ super(self);
1687
+ self = this;
1688
+ registerHost(self, cmpMeta);
1689
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1690
+ // this component is using shadow dom
1691
+ // and this browser supports shadow dom
1692
+ // add the read-only property "shadowRoot" to the host element
1693
+ // adding the shadow root build conditionals to minimize runtime
1601
1694
  {
1602
- self.attachShadow({
1603
- mode: 'open',
1604
- delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
1605
- });
1695
+ {
1696
+ self.attachShadow({
1697
+ mode: 'open',
1698
+ delegatesFocus: !!(cmpMeta.$flags$ & 16 /* shadowDelegatesFocus */),
1699
+ });
1700
+ }
1606
1701
  }
1607
1702
  }
1608
1703
  }
1609
- }
1610
- connectedCallback() {
1611
- if (appLoadFallback) {
1612
- clearTimeout(appLoadFallback);
1613
- appLoadFallback = null;
1704
+ connectedCallback() {
1705
+ if (appLoadFallback) {
1706
+ clearTimeout(appLoadFallback);
1707
+ appLoadFallback = null;
1708
+ }
1709
+ if (isBootstrapping) {
1710
+ // connectedCallback will be processed once all components have been registered
1711
+ deferredConnectedCallbacks.push(this);
1712
+ }
1713
+ else {
1714
+ plt.jmp(() => connectedCallback(this));
1715
+ }
1614
1716
  }
1615
- if (isBootstrapping) {
1616
- // connectedCallback will be processed once all components have been registered
1617
- deferredConnectedCallbacks.push(this);
1717
+ disconnectedCallback() {
1718
+ plt.jmp(() => disconnectedCallback(this));
1618
1719
  }
1619
- else {
1620
- plt.jmp(() => connectedCallback(this));
1720
+ componentOnReady() {
1721
+ return getHostRef(this).$onReadyPromise$;
1621
1722
  }
1723
+ };
1724
+ cmpMeta.$lazyBundleId$ = lazyBundle[0];
1725
+ if (!exclude.includes(tagName) && !customElements.get(tagName)) {
1726
+ cmpTags.push(tagName);
1727
+ customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));
1622
1728
  }
1623
- disconnectedCallback() {
1624
- plt.jmp(() => disconnectedCallback(this));
1625
- }
1626
- componentOnReady() {
1627
- return getHostRef(this).$onReadyPromise$;
1628
- }
1629
- };
1630
- cmpMeta.$lazyBundleId$ = lazyBundle[0];
1631
- if (!exclude.includes(tagName) && !customElements.get(tagName)) {
1632
- cmpTags.push(tagName);
1633
- customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));
1634
- }
1635
- }));
1729
+ });
1730
+ });
1636
1731
  {
1637
1732
  visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
1638
1733
  visibilityStyle.setAttribute('data-styles', '');
@@ -1641,7 +1736,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1641
1736
  // Process deferred connectedCallbacks now all components have been registered
1642
1737
  isBootstrapping = false;
1643
1738
  if (deferredConnectedCallbacks.length) {
1644
- deferredConnectedCallbacks.map(host => host.connectedCallback());
1739
+ deferredConnectedCallbacks.map((host) => host.connectedCallback());
1645
1740
  }
1646
1741
  else {
1647
1742
  {
@@ -1666,10 +1761,10 @@ const getContext = (_elm, context) => {
1666
1761
  return doc;
1667
1762
  }
1668
1763
  else if (context === 'isServer' || context === 'isPrerender') {
1669
- return false;
1764
+ return false;
1670
1765
  }
1671
1766
  else if (context === 'isClient') {
1672
- return true;
1767
+ return true;
1673
1768
  }
1674
1769
  else if (context === 'resourcesUrl' || context === 'publicPath') {
1675
1770
  return getAssetPath('.');
@@ -1699,10 +1794,10 @@ const registerHost = (elm, cmpMeta) => {
1699
1794
  $instanceValues$: new Map(),
1700
1795
  };
1701
1796
  {
1702
- hostRef.$onInstancePromise$ = new Promise(r => (hostRef.$onInstanceResolve$ = r));
1797
+ hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));
1703
1798
  }
1704
1799
  {
1705
- hostRef.$onReadyPromise$ = new Promise(r => (hostRef.$onReadyResolve$ = r));
1800
+ hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
1706
1801
  elm['s-p'] = [];
1707
1802
  elm['s-rc'] = [];
1708
1803
  }
@@ -1710,13 +1805,13 @@ const registerHost = (elm, cmpMeta) => {
1710
1805
  return hostRefs.set(elm, hostRef);
1711
1806
  };
1712
1807
  const isMemberInElement = (elm, memberName) => memberName in elm;
1713
- const consoleError = (e, el) => ( 0, console.error)(e, el);
1808
+ const consoleError = (e, el) => (0, console.error)(e, el);
1714
1809
  const cmpModules = /*@__PURE__*/ new Map();
1715
1810
  const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1716
1811
  // loadModuleImport
1717
1812
  const exportName = cmpMeta.$tagName$.replace(/-/g, '_');
1718
1813
  const bundleId = cmpMeta.$lazyBundleId$;
1719
- const module = cmpModules.get(bundleId) ;
1814
+ const module = cmpModules.get(bundleId) ;
1720
1815
  if (module) {
1721
1816
  return module[exportName];
1722
1817
  }
@@ -1724,7 +1819,7 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
1724
1819
  /* webpackInclude: /\.entry\.js$/ */
1725
1820
  /* webpackExclude: /\.system\.entry\.js$/ */
1726
1821
  /* webpackMode: "lazy" */
1727
- `./${bundleId}.entry.js${ ''}`).then(importedModule => {
1822
+ `./${bundleId}.entry.js${''}`).then((importedModule) => {
1728
1823
  {
1729
1824
  cmpModules.set(bundleId, importedModule);
1730
1825
  }
@@ -1777,10 +1872,10 @@ const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
1777
1872
  const readTask = /*@__PURE__*/ queueTask(queueDomReads, false);
1778
1873
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
1779
1874
  const Build = {
1780
- isDev: false,
1875
+ isDev: false,
1781
1876
  isBrowser: true,
1782
1877
  isServer: false,
1783
- isTesting: false,
1878
+ isTesting: false,
1784
1879
  };
1785
1880
 
1786
- export { Build as B, Context as C, Fragment as F, Host as H, getAssetPath as a, bootstrapLazy as b, getRenderingRef as c, getElement as d, createEvent as e, forceUpdate as f, getMode as g, h, readTask as i, getContext as j, promiseResolve as p, registerInstance as r, setMode as s, writeTask as w };
1881
+ export { Build as B, Context as C, Fragment as F, Host as H, setMode as a, bootstrapLazy as b, getAssetPath as c, getRenderingRef as d, getElement as e, forceUpdate as f, getMode as g, h, createEvent as i, readTask as j, getContext as k, promiseResolve as p, registerInstance as r, setPlatformHelpers as s, writeTask as w };