@cuemath/leap 2.9.9-as4 → 2.9.9

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 (315) hide show
  1. package/dist/assets/illustrations/illustrations.js +0 -9
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/bin2.js +8 -7
  4. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  5. package/dist/assets/line-icons/icons/chevron-left.js.map +1 -1
  6. package/dist/assets/lottie/lottie.js +1 -9
  7. package/dist/assets/lottie/lottie.js.map +1 -1
  8. package/dist/constants/api.js +2 -3
  9. package/dist/constants/api.js.map +1 -1
  10. package/dist/features/analytics-events/platform-events-student.js +3 -3
  11. package/dist/features/analytics-events/platform-events-student.js.map +1 -1
  12. package/dist/features/analytics-events/whitelist-events.js +11 -13
  13. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  14. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +33 -99
  15. package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
  16. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +49 -92
  17. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  18. package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
  19. package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
  20. package/dist/features/chapters/chapters-list/chapters-list.js +70 -64
  21. package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
  22. package/dist/features/circle-games/games/tutorial/constants.js +2 -2
  23. package/dist/features/circle-games/games/tutorial/constants.js.map +1 -1
  24. package/dist/features/circle-games/games/tutorial/tutorial-styled.js +6 -6
  25. package/dist/features/circle-games/games/tutorial/tutorial-styled.js.map +1 -1
  26. package/dist/features/circle-games/games/web-view/web-view.js +52 -45
  27. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  28. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js +104 -74
  29. package/dist/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.js.map +1 -1
  30. package/dist/features/circle-games/leaderboard/comps/banner/banner.js +6 -6
  31. package/dist/features/circle-games/leaderboard/comps/banner/banner.js.map +1 -1
  32. package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js +1 -1
  33. package/dist/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.js.map +1 -1
  34. package/dist/features/circle-games/leaderboard/leaderboard-styled.js +1 -1
  35. package/dist/features/circle-games/leaderboard/leaderboard-styled.js.map +1 -1
  36. package/dist/features/circle-games/leaderboard/leaderboard.js +9 -9
  37. package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
  38. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js +8 -8
  39. package/dist/features/circle-games/sign-up/comp/circular-steps/circular-steps-styled.js.map +1 -1
  40. package/dist/features/circle-games/sign-up/constants.js +9 -9
  41. package/dist/features/circle-games/sign-up/constants.js.map +1 -1
  42. package/dist/features/communication/pub-sub/constants.js +6 -12
  43. package/dist/features/communication/pub-sub/constants.js.map +1 -1
  44. package/dist/features/journey/comps/coachmark/coachmark-styled.js +5 -12
  45. package/dist/features/journey/comps/coachmark/coachmark-styled.js.map +1 -1
  46. package/dist/features/journey/comps/coachmark/coachmark.js +24 -24
  47. package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
  48. package/dist/features/journey/journey-id/journey-id-student.js +1 -1
  49. package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
  50. package/dist/features/journey/use-journey/journey-context-provider.js +28 -36
  51. package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
  52. package/dist/features/journey/use-journey/journey-styled.js +5 -10
  53. package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
  54. package/dist/features/milestone/create/api/goal-submit.js +1 -1
  55. package/dist/features/milestone/create/api/goal-submit.js.map +1 -1
  56. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js +49 -42
  57. package/dist/features/milestone/create/comps/chapter-item/chapter-item.js.map +1 -1
  58. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
  59. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  60. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
  61. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  62. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +92 -0
  63. package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +1 -0
  64. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +25 -0
  65. package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +1 -0
  66. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js +20 -14
  67. package/dist/features/milestone/create/comps/sheets-list/sheets-list-styled.js.map +1 -1
  68. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js +50 -26
  69. package/dist/features/milestone/create/comps/sheets-list/sheets-list.js.map +1 -1
  70. package/dist/features/milestone/create/milestone-create.js +43 -49
  71. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  72. package/dist/features/milestone/create/utils/index.js +38 -33
  73. package/dist/features/milestone/create/utils/index.js.map +1 -1
  74. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  75. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  76. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js +1 -1
  77. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/patch-goal-plan.js.map +1 -1
  78. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +53 -51
  79. package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
  80. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
  81. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  82. package/dist/features/milestone/edit/goal-edit-container.js +62 -64
  83. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  84. package/dist/features/milestone/edit/goal-edit-helpers.js +53 -50
  85. package/dist/features/milestone/edit/goal-edit-helpers.js.map +1 -1
  86. package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
  87. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  88. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js +1 -1
  89. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
  90. package/dist/features/milestone/milestone-list-container/api/get-milestones.js +17 -9
  91. package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
  92. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js +1 -1
  93. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  94. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +105 -138
  95. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  96. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +13 -0
  97. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +1 -0
  98. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +38 -0
  99. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +1 -0
  100. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +123 -107
  101. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  102. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +176 -157
  103. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  104. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +10 -24
  105. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
  106. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +86 -80
  107. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  108. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js +22 -10
  109. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
  110. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js +53 -0
  111. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +1 -0
  112. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +37 -70
  113. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
  114. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +176 -114
  115. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  116. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js +25 -0
  117. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +1 -0
  118. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +16 -29
  119. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
  120. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js +25 -17
  121. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js.map +1 -1
  122. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js +35 -23
  123. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
  124. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +113 -110
  125. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  126. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js +1 -1
  127. package/dist/features/milestone/milestone-resources/resources-assign/api/goal-resource-assign.js.map +1 -1
  128. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js +8 -8
  129. package/dist/features/milestone/milestone-resources/resources-assign/resources-assign.js.map +1 -1
  130. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
  131. package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
  132. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +113 -116
  133. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  134. package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js +5 -5
  135. package/dist/features/milestone/milestone-tests/tests-creation/api/test-sheet-assign.js.map +1 -1
  136. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +50 -46
  137. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  138. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +71 -0
  139. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -0
  140. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +31 -0
  141. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -0
  142. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +38 -0
  143. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
  144. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +79 -0
  145. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -0
  146. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +18 -0
  147. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -0
  148. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +51 -0
  149. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -0
  150. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +11 -0
  151. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +1 -0
  152. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +135 -0
  153. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -0
  154. package/dist/features/sheets/resources-list/resource-item/styled.js +1 -1
  155. package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
  156. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +3 -4
  157. package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
  158. package/dist/features/ui/arc-button/constants.js +4 -4
  159. package/dist/features/ui/arc-button/constants.js.map +1 -1
  160. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +29 -30
  161. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  162. package/dist/features/ui/constants/z-index.js +1 -1
  163. package/dist/features/ui/constants/z-index.js.map +1 -1
  164. package/dist/features/ui/context-menu/context-menu-styled.js +14 -28
  165. package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
  166. package/dist/features/ui/context-menu/context-menu.js +15 -30
  167. package/dist/features/ui/context-menu/context-menu.js.map +1 -1
  168. package/dist/features/ui/lottie-animation/lottie-animation.js +13 -19
  169. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  170. package/dist/features/ui/theme/button.js +107 -22
  171. package/dist/features/ui/theme/button.js.map +1 -1
  172. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js +96 -78
  173. package/dist/features/worksheet/worksheet/hooks/use-create-imperative-handle.js.map +1 -1
  174. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +79 -47
  175. package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
  176. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +150 -147
  177. package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
  178. package/dist/features/worksheet/worksheet/worksheet-types.js.map +1 -1
  179. package/dist/features/worksheet/worksheet/worksheet.js +325 -300
  180. package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
  181. package/dist/index.d.ts +46 -355
  182. package/dist/index.js +471 -503
  183. package/dist/index.js.map +1 -1
  184. package/package.json +1 -1
  185. package/dist/assets/line-icons/icons/alarm.js +0 -41
  186. package/dist/assets/line-icons/icons/alarm.js.map +0 -1
  187. package/dist/assets/line-icons/icons/dart.js +0 -23
  188. package/dist/assets/line-icons/icons/dart.js.map +0 -1
  189. package/dist/assets/line-icons/icons/exclamation.js +0 -26
  190. package/dist/assets/line-icons/icons/exclamation.js.map +0 -1
  191. package/dist/assets/line-icons/icons/home2.js +0 -25
  192. package/dist/assets/line-icons/icons/home2.js.map +0 -1
  193. package/dist/assets/line-icons/icons/important.js +0 -23
  194. package/dist/assets/line-icons/icons/important.js.map +0 -1
  195. package/dist/assets/line-icons/icons/puzzle.js +0 -25
  196. package/dist/assets/line-icons/icons/puzzle.js.map +0 -1
  197. package/dist/assets/line-icons/icons/recap.js +0 -32
  198. package/dist/assets/line-icons/icons/recap.js.map +0 -1
  199. package/dist/assets/line-icons/icons/skip-colored.js +0 -43
  200. package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
  201. package/dist/assets/line-icons/icons/status.js +0 -41
  202. package/dist/assets/line-icons/icons/status.js.map +0 -1
  203. package/dist/assets/line-icons/icons/testtube.js +0 -33
  204. package/dist/assets/line-icons/icons/testtube.js.map +0 -1
  205. package/dist/features/chapters-v2/api/chapter.js +0 -10
  206. package/dist/features/chapters-v2/api/chapter.js.map +0 -1
  207. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +0 -112
  208. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +0 -1
  209. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +0 -35
  210. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +0 -1
  211. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +0 -83
  212. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +0 -1
  213. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +0 -90
  214. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +0 -1
  215. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +0 -98
  216. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +0 -1
  217. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +0 -51
  218. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +0 -1
  219. package/dist/features/chapters-v2/chapter-details/chapter-details.js +0 -127
  220. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +0 -1
  221. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +0 -13
  222. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +0 -1
  223. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +0 -159
  224. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +0 -1
  225. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +0 -16
  226. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +0 -1
  227. package/dist/features/chapters-v2/comps/node-card/node-card.js +0 -12
  228. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +0 -1
  229. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js +0 -31
  230. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-option.js.map +0 -1
  231. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +0 -32
  232. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +0 -1
  233. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +0 -9
  234. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +0 -1
  235. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +0 -189
  236. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +0 -1
  237. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +0 -194
  238. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +0 -1
  239. package/dist/features/chapters-v2/comps/tag/tag-styled.js +0 -13
  240. package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +0 -1
  241. package/dist/features/chapters-v2/comps/tag/tag.js +0 -28
  242. package/dist/features/chapters-v2/comps/tag/tag.js.map +0 -1
  243. package/dist/features/chapters-v2/constants/block-constants.js +0 -20
  244. package/dist/features/chapters-v2/constants/block-constants.js.map +0 -1
  245. package/dist/features/chapters-v2/constants/node-constants.js +0 -14
  246. package/dist/features/chapters-v2/constants/node-constants.js.map +0 -1
  247. package/dist/features/chapters-v2/utils/index.js +0 -38
  248. package/dist/features/chapters-v2/utils/index.js.map +0 -1
  249. package/dist/features/chapters-v2/utils/node-card-utils.js +0 -177
  250. package/dist/features/chapters-v2/utils/node-card-utils.js.map +0 -1
  251. package/dist/features/homework/card-menu-option.js +0 -28
  252. package/dist/features/homework/card-menu-option.js.map +0 -1
  253. package/dist/features/homework/card-menu-options.js +0 -22
  254. package/dist/features/homework/card-menu-options.js.map +0 -1
  255. package/dist/features/homework/card-title.js +0 -16
  256. package/dist/features/homework/card-title.js.map +0 -1
  257. package/dist/features/homework/homework-analytics-events.js +0 -10
  258. package/dist/features/homework/homework-analytics-events.js.map +0 -1
  259. package/dist/features/homework/homework-card-view.js +0 -143
  260. package/dist/features/homework/homework-card-view.js.map +0 -1
  261. package/dist/features/homework/homework-card.js +0 -245
  262. package/dist/features/homework/homework-card.js.map +0 -1
  263. package/dist/features/homework/hw-card-list/api/get-homeworks.js +0 -10
  264. package/dist/features/homework/hw-card-list/api/get-homeworks.js.map +0 -1
  265. package/dist/features/homework/hw-card-list/hw-card-list-styled.js +0 -63
  266. package/dist/features/homework/hw-card-list/hw-card-list-styled.js.map +0 -1
  267. package/dist/features/homework/hw-card-list/hw-card-list.js +0 -191
  268. package/dist/features/homework/hw-card-list/hw-card-list.js.map +0 -1
  269. package/dist/features/homework/node-progress.js +0 -29
  270. package/dist/features/homework/node-progress.js.map +0 -1
  271. package/dist/features/homework/styles.js +0 -130
  272. package/dist/features/homework/styles.js.map +0 -1
  273. package/dist/features/homework/utils.js +0 -48
  274. package/dist/features/homework/utils.js.map +0 -1
  275. package/dist/features/journey/hooks/use-chapter-journey.js +0 -194
  276. package/dist/features/journey/hooks/use-chapter-journey.js.map +0 -1
  277. package/dist/features/journey/hooks/use-home-page-journey.js +0 -189
  278. package/dist/features/journey/hooks/use-home-page-journey.js.map +0 -1
  279. package/dist/features/journey/journey-id/journey-id-teacher.js +0 -5
  280. package/dist/features/journey/journey-id/journey-id-teacher.js.map +0 -1
  281. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js +0 -587
  282. package/dist/features/journey/mocks/chapter-page-journey-mock-data.js.map +0 -1
  283. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +0 -165
  284. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +0 -1
  285. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +0 -25
  286. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +0 -1
  287. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +0 -87
  288. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +0 -1
  289. package/dist/features/recent-chapters/api/get-recent-chapters.js +0 -9
  290. package/dist/features/recent-chapters/api/get-recent-chapters.js.map +0 -1
  291. package/dist/features/recent-chapters/recent-chapters-styled.js +0 -16
  292. package/dist/features/recent-chapters/recent-chapters-styled.js.map +0 -1
  293. package/dist/features/recent-chapters/recent-chapters.js +0 -39
  294. package/dist/features/recent-chapters/recent-chapters.js.map +0 -1
  295. package/dist/features/sheet-v2/resource-list/resource-list.js +0 -45
  296. package/dist/features/sheet-v2/resource-list/resource-list.js.map +0 -1
  297. package/dist/node_modules/date-fns/differenceInDays.js +0 -17
  298. package/dist/node_modules/date-fns/differenceInDays.js.map +0 -1
  299. package/dist/static/chapter-header-bg-2.c8d96894.svg +0 -1
  300. package/dist/static/competitive-arena.b9c40801.json +0 -1
  301. package/dist/static/learn.71b13323.json +0 -1
  302. package/dist/static/node-custom-test-bg.d3b757be.svg +0 -1
  303. package/dist/static/node-learn-bg.b61f815c.svg +0 -1
  304. package/dist/static/node-practice-bg.16cbaf2a.svg +0 -1
  305. package/dist/static/node-project-bg.e6a33e28.svg +0 -1
  306. package/dist/static/node-puzzle-bg.3422135c.svg +0 -1
  307. package/dist/static/node-recap-bg.546154e4.svg +0 -1
  308. package/dist/static/node-test-prep-bg.42c0b9c4.svg +0 -1
  309. package/dist/static/node-video-bg.3df3f73a.svg +0 -1
  310. package/dist/static/practice.158dd488.json +0 -1
  311. package/dist/static/project.eb665827.json +0 -1
  312. package/dist/static/puzzle.b298c7e4.json +0 -1
  313. package/dist/static/recap.0dd2c1e2.json +0 -1
  314. package/dist/static/test.803d6036.json +0 -1
  315. package/dist/static/video.b41451e2.json +0 -1
@@ -1,28 +1,30 @@
1
- import { jsx as P } from "react/jsx-runtime";
2
- import { forwardRef as V, useRef as G, useMemo as R, useCallback as v, useImperativeHandle as $, useEffect as B } from "react";
1
+ import { jsxs as h, jsx as v } from "react/jsx-runtime";
2
+ import { forwardRef as P, useRef as G, useMemo as _, useCallback as T, useImperativeHandle as x, useEffect as B } from "react";
3
3
  import { useUIContext as J } from "../../../ui/context/context.js";
4
- import { ALLOWED_ORIGIN as C } from "./constants.js";
4
+ import U from "../../../ui/layout/flex-view.js";
5
+ import C from "../../../ui/separator/separator.js";
6
+ import { ALLOWED_ORIGIN as b } from "./constants.js";
5
7
  import { ProjectType as s } from "./enums/project-type-enum.js";
6
8
  import { WebViewEvent as o } from "./enums/web-view-events-enum.js";
7
- const Z = V((I, b) => {
9
+ const X = P((L, M) => {
8
10
  const {
9
- baseUrl: y,
10
- projectDetails: T,
11
- playerDetails: w,
11
+ baseUrl: g,
12
+ projectDetails: y,
13
+ playerDetails: E,
12
14
  onGameLoad: a,
13
15
  onGamePlayFinish: c,
14
16
  handleInfoMessage: p,
15
17
  onBack: f,
16
- parentDomain: g,
17
- ...L
18
- } = I, l = G(null), N = R(() => w, [w]), t = R(() => T, [T]);
18
+ parentDomain: N,
19
+ ...V
20
+ } = L, m = G(null), O = _(() => E, [E]), t = _(() => y, [y]);
19
21
  let A = "";
20
- const { onEvent: O } = J();
22
+ const { onEvent: S } = J();
21
23
  t.projectType === s.LESSON && (A = t.miniGameIdentifier);
22
- const m = v(() => {
23
- const { enableCloseButton: i = !0 } = t;
24
+ const l = T(() => {
25
+ const { enableCloseButton: r = !0 } = t;
24
26
  let e = {
25
- enableCloseButton: i
27
+ enableCloseButton: r
26
28
  };
27
29
  return t.projectType === s.GAME && (e = {
28
30
  ...e,
@@ -37,60 +39,65 @@ const Z = V((I, b) => {
37
39
  ...e,
38
40
  ...t
39
41
  }), e;
40
- }, [t]), d = v(() => {
41
- var e, r;
42
- const i = m();
43
- (r = (e = l.current) == null ? void 0 : e.contentWindow) == null || r.postMessage(
42
+ }, [t]), d = T(() => {
43
+ var e, i;
44
+ const r = l();
45
+ (i = (e = m.current) == null ? void 0 : e.contentWindow) == null || i.postMessage(
44
46
  JSON.stringify({
45
47
  event: o.GAME_DATA,
46
- payload: i
48
+ payload: r
47
49
  }),
48
- C
50
+ b
49
51
  );
50
- }, [m]), D = v(() => {
51
- var e, r;
52
- const i = m();
53
- (r = (e = l.current) == null ? void 0 : e.contentWindow) == null || r.postMessage(
52
+ }, [l]), j = T(() => {
53
+ var e, i;
54
+ const r = l();
55
+ (i = (e = m.current) == null ? void 0 : e.contentWindow) == null || i.postMessage(
54
56
  JSON.stringify({
55
57
  event: o.SET_CONFIG,
56
58
  payload: {
57
- user: N,
58
- projectConfig: i,
59
- parentDomain: g
59
+ user: O,
60
+ projectConfig: r,
61
+ parentDomain: N
60
62
  }
61
63
  }),
62
- C
64
+ b
63
65
  );
64
- }, [N, m, g]);
65
- $(b, () => l.current, []), B(() => {
66
- const i = (e) => {
67
- var j, _;
68
- const r = e.data, S = typeof r == "string" ? JSON.parse(r) : r, { event: n, payload: E = null } = S;
66
+ }, [O, l, N]);
67
+ x(M, () => m.current, []), B(() => {
68
+ const r = (e) => {
69
+ var R, I;
70
+ const i = e.data, D = typeof i == "string" ? JSON.parse(i) : i, { event: n, payload: w = null } = D;
69
71
  if (n === o.VIBRATE) {
70
- const { pattern: u } = E;
71
- window.ReactNativeWebView ? window.ReactNativeWebView.postMessage(JSON.stringify(S)) : (_ = (j = window.navigator).vibrate) == null || _.call(j, u);
72
+ const { pattern: u } = w;
73
+ window.ReactNativeWebView ? window.ReactNativeWebView.postMessage(JSON.stringify(D)) : (I = (R = window.navigator).vibrate) == null || I.call(R, u);
72
74
  }
73
- if (n === o.GAME_BACK && (f == null || f()), n === o.HIDE_LOADER && (a == null || a()), n === o.LOAD_DATA_FROM_APP && (d == null || d()), n === o.GET_CONFIG && D(), n === o.UPDATE_STATS && (c == null || c(E)), n === o.SHOW_SNACKBAR && (p == null || p(E)), n === o.TRACK_EVENT) {
74
- const { eventName: u, properties: W } = E;
75
- O(u, W);
75
+ if (n === o.GAME_BACK && (f == null || f()), n === o.HIDE_LOADER && (a == null || a()), n === o.LOAD_DATA_FROM_APP && (d == null || d()), n === o.GET_CONFIG && j(), n === o.UPDATE_STATS && (c == null || c(w)), n === o.SHOW_SNACKBAR && (p == null || p(w)), n === o.TRACK_EVENT) {
76
+ const { eventName: u, properties: $ } = w;
77
+ S(u, $);
76
78
  }
77
79
  };
78
- return window.addEventListener("message", i), () => {
79
- window.removeEventListener("message", i);
80
+ return window.addEventListener("message", r), () => {
81
+ window.removeEventListener("message", r);
80
82
  };
81
83
  }, [
82
84
  p,
83
85
  f,
84
86
  c,
85
87
  a,
86
- D,
88
+ j,
87
89
  d,
88
- O
90
+ S
89
91
  ]);
90
- const M = w.isAdmin ? y : `${y}/play-game/${t.projectId}/${t.variant}${A ? `/${A}` : ""}`;
91
- return /* @__PURE__ */ P("iframe", { ...L, ref: l, src: `${M}?version=2`, allow: "autoplay" });
92
+ const W = E.isAdmin ? g : `${g}/play-game/${t.projectId}/${t.variant}${A ? `/${A}` : ""}`;
93
+ return /* @__PURE__ */ h(U, { $height: "100%", $width: "100%", children: [
94
+ /* @__PURE__ */ v(C, { height: window.ReactNativeTopInset || 0 }),
95
+ /* @__PURE__ */ v("iframe", { ...V, ref: m, src: `${W}?version=2`, allow: "autoplay" }),
96
+ ";",
97
+ /* @__PURE__ */ v(C, { height: window.ReactNativeBottomInset || 0 })
98
+ ] });
92
99
  });
93
100
  export {
94
- Z as WebView
101
+ X as WebView
95
102
  };
96
103
  //# sourceMappingURL=web-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["declare global {\n interface IReactNativeWebview {\n postMessage: (data: string) => void;\n }\n\n interface Window {\n ReactNativeWebView?: IReactNativeWebview;\n }\n}\n\nimport type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n ITableWebGameProps,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const { enableCloseButton = true } = memoizedProjectDetails;\n\n let payload = {\n enableCloseButton,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.GAME) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IMultiplayerWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ILessonWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.TABLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ITableWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n const parsedData = typeof data === 'string' ? JSON.parse(data) : (data as IMessageProps);\n\n const { event, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(parsedData));\n } else {\n window.navigator.vibrate?.(pattern);\n }\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload;\n\n trackEvent(eventName, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n ]);\n\n const url = playerDetails.isAdmin\n ? baseUrl\n : `${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${memoizedProjectDetails.variant}${\n miniGameIdentifier ? `/${miniGameIdentifier}` : ''\n }`;\n\n return <iframe {...rest} ref={webViewRef} src={`${url}?version=2`} allow=\"autoplay\" />;\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","payload","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","useImperativeHandle","useEffect","handleMessage","data","parsedData","event","pattern","eventName","properties","url","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"web-view.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view.tsx"],"sourcesContent":["import type {\n IInfoMessage,\n ILessonWebGameProps,\n IMessageProps,\n IMultiplayerWebGameProps,\n IPlayerStats,\n IPuzzleWebGameProps,\n ITableWebGameProps,\n IVibrationPattern,\n IWebViewProps,\n} from './web-view-types';\nimport type { ForwardedRef } from 'react';\n\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react';\n\nimport { useUIContext } from '../../../ui/context/context';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport { ALLOWED_ORIGIN } from './constants';\nimport { ProjectType, WebViewEvent } from './enums';\n\nexport const WebView = forwardRef((props: IWebViewProps, ref: ForwardedRef<HTMLIFrameElement>) => {\n const {\n baseUrl,\n projectDetails,\n playerDetails,\n onGameLoad,\n onGamePlayFinish,\n handleInfoMessage,\n onBack,\n parentDomain,\n ...rest\n } = props;\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const memoizedPlayerDetails = useMemo(() => playerDetails, [playerDetails]);\n const memoizedProjectDetails = useMemo(() => projectDetails, [projectDetails]);\n\n let miniGameIdentifier = '';\n const { onEvent: trackEvent } = useUIContext();\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n miniGameIdentifier = (memoizedProjectDetails as ILessonWebGameProps).miniGameIdentifier;\n }\n\n const getProjectDetails = useCallback(() => {\n const { enableCloseButton = true } = memoizedProjectDetails;\n\n let payload = {\n enableCloseButton,\n } as IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n\n if (memoizedProjectDetails.projectType === ProjectType.GAME) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IMultiplayerWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.PUZZLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as IPuzzleWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.LESSON) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ILessonWebGameProps;\n }\n\n if (memoizedProjectDetails.projectType === ProjectType.TABLE) {\n payload = {\n ...payload,\n ...memoizedProjectDetails,\n } as ITableWebGameProps;\n }\n\n return payload;\n }, [memoizedProjectDetails]);\n\n const sendGamesData = useCallback(() => {\n const payload = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.GAME_DATA,\n payload,\n }),\n ALLOWED_ORIGIN,\n );\n }, [getProjectDetails]);\n\n const setConfig = useCallback(() => {\n const projectConfig = getProjectDetails();\n\n webViewRef.current?.contentWindow?.postMessage(\n JSON.stringify({\n event: WebViewEvent.SET_CONFIG,\n payload: {\n user: memoizedPlayerDetails,\n projectConfig,\n parentDomain,\n },\n }),\n ALLOWED_ORIGIN,\n );\n }, [memoizedPlayerDetails, getProjectDetails, parentDomain]);\n\n useImperativeHandle(ref, () => webViewRef.current as HTMLIFrameElement, []);\n\n useEffect(() => {\n const handleMessage = (e: MessageEvent) => {\n const data: string = e.data;\n const parsedData = typeof data === 'string' ? JSON.parse(data) : (data as IMessageProps);\n\n const { event, payload = null } = parsedData;\n\n if (event === WebViewEvent.VIBRATE) {\n const { pattern } = payload as IVibrationPattern;\n\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(parsedData));\n } else {\n window.navigator.vibrate?.(pattern);\n }\n }\n\n if (event === WebViewEvent.GAME_BACK) {\n onBack?.();\n }\n\n if (event === WebViewEvent.HIDE_LOADER) {\n onGameLoad?.();\n }\n\n if (event === WebViewEvent.LOAD_DATA_FROM_APP) {\n sendGamesData?.();\n }\n\n if (event === WebViewEvent.GET_CONFIG) {\n setConfig();\n }\n\n if (event === WebViewEvent.UPDATE_STATS) {\n onGamePlayFinish?.(payload as IPlayerStats);\n }\n\n if (event === WebViewEvent.SHOW_SNACKBAR) {\n handleInfoMessage?.(payload as IInfoMessage);\n }\n\n if (event === WebViewEvent.TRACK_EVENT) {\n const { eventName, properties } = payload;\n\n trackEvent(eventName, properties);\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, [\n handleInfoMessage,\n onBack,\n onGamePlayFinish,\n onGameLoad,\n setConfig,\n sendGamesData,\n trackEvent,\n ]);\n\n const url = playerDetails.isAdmin\n ? baseUrl\n : `${baseUrl}/play-game/${memoizedProjectDetails.projectId}/${memoizedProjectDetails.variant}${\n miniGameIdentifier ? `/${miniGameIdentifier}` : ''\n }`;\n\n return (\n <FlexView $height=\"100%\" $width=\"100%\">\n <Separator height={window.ReactNativeTopInset || 0} />\n <iframe {...rest} ref={webViewRef} src={`${url}?version=2`} allow=\"autoplay\" />;\n <Separator height={window.ReactNativeBottomInset || 0} />\n </FlexView>\n );\n});\n"],"names":["WebView","forwardRef","props","ref","baseUrl","projectDetails","playerDetails","onGameLoad","onGamePlayFinish","handleInfoMessage","onBack","parentDomain","rest","webViewRef","useRef","memoizedPlayerDetails","useMemo","memoizedProjectDetails","miniGameIdentifier","trackEvent","useUIContext","ProjectType","getProjectDetails","useCallback","enableCloseButton","payload","sendGamesData","_b","_a","WebViewEvent","ALLOWED_ORIGIN","setConfig","projectConfig","useImperativeHandle","useEffect","handleMessage","data","parsedData","event","pattern","eventName","properties","url","jsxs","FlexView","jsx","Separator"],"mappings":"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"}
@@ -1,88 +1,118 @@
1
- import { useCallback as a } from "react";
2
- import { CircleSoundKeyMapper as A, SWIPE_SOUND_ORDER as i } from "./constants.js";
3
- import { CircleSoundKey as l } from "./use-circle-sounds-enums.js";
4
- let C = 0;
5
- const r = {
6
- [l.BACKGROUND]: null,
7
- [l.BACKGROUND_RUSHHOUR]: null,
8
- [l.TUTORIAL]: null,
9
- [l.SWIPE_01]: null,
10
- [l.SWIPE_02]: null,
11
- [l.SWIPE_03]: null,
12
- [l.SWIPE_04]: null,
13
- [l.SWIPE_DOWN]: null,
14
- [l.TOGGLE]: null,
15
- [l.POINTS_AWARDED]: null,
16
- [l.POINTS_ADDED]: null,
17
- [l.GAME_CARD_CLICK]: null,
18
- [l.CLOCK_IN]: null,
19
- [l.CLOCK_OUT]: null,
20
- [l.ACCURACY_IN]: null,
21
- [l.ACCURACY_OUT]: null,
22
- [l.STREAK_IN]: null,
23
- [l.STREAK_OUT]: null,
24
- [l.ACCURACY_INTRO]: null,
25
- [l.ACCURACY_TARGET]: null,
26
- [l.TIME_INTRO]: null,
27
- [l.TIME_TARGET]: null,
28
- [l.METER_FILL]: null
29
- }, I = {}, O = () => {
30
- const e = a((n) => {
31
- if (!r[n]) {
32
- const t = new Audio(A[n]);
33
- r[n] = t;
1
+ import { useCallback as c, useRef as C, useEffect as T } from "react";
2
+ import { CircleSoundKeyMapper as A, SWIPE_SOUND_ORDER as E } from "./constants.js";
3
+ import { CircleSoundKey as n } from "./use-circle-sounds-enums.js";
4
+ let d = 0;
5
+ const o = {
6
+ [n.BACKGROUND]: null,
7
+ [n.BACKGROUND_RUSHHOUR]: null,
8
+ [n.TUTORIAL]: null,
9
+ [n.SWIPE_01]: null,
10
+ [n.SWIPE_02]: null,
11
+ [n.SWIPE_03]: null,
12
+ [n.SWIPE_04]: null,
13
+ [n.SWIPE_DOWN]: null,
14
+ [n.TOGGLE]: null,
15
+ [n.POINTS_AWARDED]: null,
16
+ [n.POINTS_ADDED]: null,
17
+ [n.GAME_CARD_CLICK]: null,
18
+ [n.CLOCK_IN]: null,
19
+ [n.CLOCK_OUT]: null,
20
+ [n.ACCURACY_IN]: null,
21
+ [n.ACCURACY_OUT]: null,
22
+ [n.STREAK_IN]: null,
23
+ [n.STREAK_OUT]: null,
24
+ [n.ACCURACY_INTRO]: null,
25
+ [n.ACCURACY_TARGET]: null,
26
+ [n.TIME_INTRO]: null,
27
+ [n.TIME_TARGET]: null,
28
+ [n.METER_FILL]: null
29
+ }, I = {}, D = () => {
30
+ const s = c((e) => {
31
+ if (!o[e]) {
32
+ const l = new Audio(A[e]);
33
+ o[e] = l;
34
34
  }
35
- }, []), p = a(() => {
36
- var t;
37
- i.forEach((o) => {
38
- e(o);
35
+ }, []), f = C(/* @__PURE__ */ new Set()), p = C({}), v = c(() => {
36
+ document.visibilityState === "hidden" ? Object.keys(o).forEach((e) => {
37
+ const l = o[e];
38
+ l && !l.paused && (l.pause(), f.current.add(e));
39
+ }) : document.visibilityState === "visible" && (f.current.forEach((e) => {
40
+ const l = o[e];
41
+ l == null || l.play();
42
+ }), f.current.clear());
43
+ }, []);
44
+ T(() => {
45
+ document.addEventListener("visibilitychange", v);
46
+ const e = p.current;
47
+ return () => {
48
+ document.removeEventListener("visibilitychange", v);
49
+ for (const l of Object.values(e))
50
+ l != null && clearInterval(l);
51
+ };
52
+ }, [v]);
53
+ const S = c(() => {
54
+ var l;
55
+ E.forEach((u) => {
56
+ s(u);
39
57
  });
40
- const n = i[C] || l.SWIPE_01;
41
- C < i.length - 1 ? C++ : C = 0, (t = r[n]) == null || t.play();
42
- }, [e]), _ = a(() => {
43
- var t;
44
- return e(l.TOGGLE), (t = r[l.TOGGLE]) == null ? void 0 : t.play();
45
- }, [e]), E = a(
46
- (n, t = !0, o = !1) => {
47
- e(n);
48
- const u = r[n];
49
- if (!u) return;
50
- if (u.loop = o, t) {
51
- u.volume = 1;
52
- const s = u.play();
53
- I[n] = s;
58
+ const e = E[d] || n.SWIPE_01;
59
+ d < E.length - 1 ? d++ : d = 0, (l = o[e]) == null || l.play();
60
+ }, [s]), m = c(() => {
61
+ var l;
62
+ return s(n.TOGGLE), (l = o[n.TOGGLE]) == null ? void 0 : l.play();
63
+ }, [s]), _ = c(
64
+ (e, l = !0, u = !1) => {
65
+ s(e);
66
+ const t = o[e];
67
+ if (!t) return;
68
+ if (!t.paused && t.currentTime > 0 && !t.ended)
69
+ return t;
70
+ if (t.loop = u, l) {
71
+ t.volume = 1;
72
+ const a = t.play();
73
+ I[e] = a;
54
74
  return;
55
75
  }
56
- u.volume = 0;
57
- const c = u.play();
58
- return I[n] = c, setInterval(() => {
59
- if (!u) return;
60
- const s = 0;
61
- u.volume = s + 0.1;
62
- }, 100), u;
76
+ t.volume = 0;
77
+ const r = t.play();
78
+ I[e] = r;
79
+ const i = setInterval(() => {
80
+ if (!t) {
81
+ clearInterval(i);
82
+ return;
83
+ }
84
+ const a = t.volume || 0;
85
+ a < 1 ? t.volume = Math.min(a + 0.1, 1) : clearInterval(i);
86
+ }, 100);
87
+ return p.current[e] = i, t;
63
88
  },
64
- [e]
65
- ), S = a((n, t = !0) => {
66
- var u;
67
- const o = r[n];
68
- I[n] !== void 0 && ((u = I[n]) == null || u.then(() => {
69
- if (t) {
70
- o == null || o.pause();
89
+ [s]
90
+ ), R = c((e, l = !0) => {
91
+ var t;
92
+ const u = o[e];
93
+ I[e] !== void 0 && ((t = I[e]) == null || t.then(() => {
94
+ if (!u) return;
95
+ if (l) {
96
+ u.pause();
71
97
  return;
72
98
  }
73
- const c = setInterval(() => {
74
- if (!o) return;
75
- const s = o.volume || 0;
76
- s - 0.1 <= 0 ? (o.volume = 0, o.pause(), clearInterval(c)) : o.volume = s - 0.1;
99
+ const r = setInterval(() => {
100
+ if (!u) {
101
+ clearInterval(r);
102
+ return;
103
+ }
104
+ const i = u.volume || 0;
105
+ i - 0.1 <= 0 ? (u.volume = 0, u.pause(), clearInterval(r)) : u.volume = i - 0.1;
77
106
  }, 100);
78
- }).catch((c) => {
79
- console.log("sound not playing", c);
107
+ p.current[e] = r;
108
+ }).catch((r) => {
109
+ console.log("sound not playing", r);
80
110
  }));
81
111
  }, []);
82
- return { playSwipSound: p, play: E, stop: S, playButtonSound: _ };
112
+ return { playSwipSound: S, play: _, stop: R, playButtonSound: m };
83
113
  };
84
114
  export {
85
- r as soundMapper,
86
- O as useCircleSounds
115
+ o as soundMapper,
116
+ D as useCircleSounds
87
117
  };
88
118
  //# sourceMappingURL=use-circle-sounds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = 0;\n\n if (vol < 1) {\n soundInstance.volume = vol + 0.1;\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n // check if the sound is playing as the play() return a promise\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (immediately) {\n soundInstance?.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) return;\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","vol","stop","intervalId","err"],"mappings":"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"}
1
+ {"version":3,"file":"use-circle-sounds.js","sources":["../../../../../src/features/circle-games/hooks/use-circle-sounds/use-circle-sounds.ts"],"sourcesContent":["import type { TimeoutMap } from './use-circle-sound-types';\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nimport { CircleSoundKeyMapper, SWIPE_SOUND_ORDER } from './constants';\nimport { CircleSoundKey } from './use-circle-sounds-enums';\n\nlet swipeSoundIndex = 0;\n\nexport const soundMapper: Record<keyof typeof CircleSoundKeyMapper, null | HTMLAudioElement> = {\n [CircleSoundKey.BACKGROUND]: null,\n [CircleSoundKey.BACKGROUND_RUSHHOUR]: null,\n [CircleSoundKey.TUTORIAL]: null,\n [CircleSoundKey.SWIPE_01]: null,\n [CircleSoundKey.SWIPE_02]: null,\n [CircleSoundKey.SWIPE_03]: null,\n [CircleSoundKey.SWIPE_04]: null,\n [CircleSoundKey.SWIPE_DOWN]: null,\n [CircleSoundKey.TOGGLE]: null,\n [CircleSoundKey.POINTS_AWARDED]: null,\n [CircleSoundKey.POINTS_ADDED]: null,\n [CircleSoundKey.GAME_CARD_CLICK]: null,\n [CircleSoundKey.CLOCK_IN]: null,\n [CircleSoundKey.CLOCK_OUT]: null,\n [CircleSoundKey.ACCURACY_IN]: null,\n [CircleSoundKey.ACCURACY_OUT]: null,\n [CircleSoundKey.STREAK_IN]: null,\n [CircleSoundKey.STREAK_OUT]: null,\n [CircleSoundKey.ACCURACY_INTRO]: null,\n [CircleSoundKey.ACCURACY_TARGET]: null,\n [CircleSoundKey.TIME_INTRO]: null,\n [CircleSoundKey.TIME_TARGET]: null,\n [CircleSoundKey.METER_FILL]: null,\n};\n\nconst soundInstancePromise: Partial<Record<keyof typeof CircleSoundKeyMapper, Promise<void>>> = {};\n\nexport const useCircleSounds = () => {\n const loadSound = useCallback((key: CircleSoundKey) => {\n if (!soundMapper[key]) {\n const loadedSound = new Audio(CircleSoundKeyMapper[key]);\n\n soundMapper[key] = loadedSound;\n }\n }, []);\n\n const pausedSoundsRef = useRef<Set<CircleSoundKey>>(new Set());\n const timeoutRefs = useRef<TimeoutMap>({});\n\n const handleVisibilityChange = useCallback(() => {\n if (document.visibilityState === 'hidden') {\n (Object.keys(soundMapper) as CircleSoundKey[]).forEach(key => {\n const sound = soundMapper[key];\n\n if (sound && !sound.paused) {\n sound.pause();\n pausedSoundsRef.current.add(key);\n }\n });\n } else if (document.visibilityState === 'visible') {\n pausedSoundsRef.current.forEach(key => {\n const sound = soundMapper[key];\n\n sound?.play();\n });\n pausedSoundsRef.current.clear();\n }\n }, []);\n\n useEffect(() => {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n const timeouts = timeoutRefs.current;\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n for (const id of Object.values(timeouts)) {\n if (id != null) clearInterval(id);\n }\n };\n }, [handleVisibilityChange]);\n\n const playSwipSound = useCallback(() => {\n SWIPE_SOUND_ORDER.forEach(key => {\n loadSound(key);\n });\n\n const key = SWIPE_SOUND_ORDER[swipeSoundIndex] || CircleSoundKey.SWIPE_01;\n\n if (swipeSoundIndex < SWIPE_SOUND_ORDER.length - 1) {\n swipeSoundIndex++;\n } else {\n swipeSoundIndex = 0;\n }\n soundMapper[key]?.play();\n }, [loadSound]);\n\n const playButtonSound = useCallback(() => {\n loadSound(CircleSoundKey.TOGGLE);\n const sound = soundMapper[CircleSoundKey.TOGGLE]?.play();\n\n return sound;\n }, [loadSound]);\n\n const play = useCallback(\n (key: CircleSoundKey, immediately: boolean = true, loop = false) => {\n loadSound(key);\n const soundInstance = soundMapper[key];\n\n if (!soundInstance) return;\n\n if (!soundInstance.paused && soundInstance.currentTime > 0 && !soundInstance.ended) {\n return soundInstance;\n }\n\n soundInstance.loop = loop;\n if (immediately) {\n soundInstance.volume = 1;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n return;\n }\n\n soundInstance.volume = 0;\n const promise = soundInstance.play();\n\n soundInstancePromise[key] = promise;\n\n const intervalId = setInterval(() => {\n if (!soundInstance) {\n clearInterval(intervalId);\n\n return;\n }\n\n const vol = soundInstance.volume || 0;\n\n if (vol < 1) {\n soundInstance.volume = Math.min(vol + 0.1, 1);\n } else {\n clearInterval(intervalId);\n }\n }, 100);\n\n timeoutRefs.current[key] = intervalId;\n\n return soundInstance;\n },\n [loadSound],\n );\n\n const stop = useCallback((key: CircleSoundKey, immediately: boolean = true) => {\n const soundInstance = soundMapper[key];\n\n if (soundInstancePromise[key] !== undefined) {\n soundInstancePromise[key]\n ?.then(() => {\n if (!soundInstance) return;\n\n if (immediately) {\n soundInstance.pause();\n\n return;\n }\n\n const intervalId = setInterval(() => {\n if (!soundInstance) {\n clearInterval(intervalId);\n\n return;\n }\n\n const vol = soundInstance.volume || 0;\n\n if (vol - 0.1 <= 0) {\n soundInstance.volume = 0;\n soundInstance.pause();\n clearInterval(intervalId);\n } else {\n soundInstance.volume = vol - 0.1;\n }\n }, 100);\n\n timeoutRefs.current[key] = intervalId;\n })\n .catch(err => {\n // eslint-disable-next-line no-console\n console.log('sound not playing', err);\n });\n }\n }, []);\n\n return { playSwipSound, play, stop, playButtonSound };\n};\n"],"names":["swipeSoundIndex","soundMapper","CircleSoundKey","soundInstancePromise","useCircleSounds","loadSound","useCallback","key","loadedSound","CircleSoundKeyMapper","pausedSoundsRef","useRef","timeoutRefs","handleVisibilityChange","sound","useEffect","timeouts","id","playSwipSound","SWIPE_SOUND_ORDER","_a","playButtonSound","play","immediately","loop","soundInstance","promise","intervalId","vol","stop","err"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  import { jsxs as n, jsx as r } from "react/jsx-runtime";
2
- import { memo as d } from "react";
2
+ import { memo as l } from "react";
3
3
  import h from "../../../../ui/lottie-animation/lottie-animation.js";
4
4
  import p from "../../../../ui/separator/separator.js";
5
5
  import o from "../../../../ui/text/text.js";
6
6
  import { BannerContainer as f, CircleLottieView as x, BannerTextContainer as T, CountTextWrapper as C } from "./banner-styled.js";
7
- const $ = { renderer: "canvas" }, H = d(
7
+ const $ = { renderer: "canvas" }, v = l(
8
8
  ({
9
9
  primaryText: i,
10
10
  secondaryText: t,
11
- topInset: e = 0,
11
+ topInset: e = window.ReactNativeTopInset || 0,
12
12
  isLoading: a = !1,
13
13
  lottiePath: m,
14
14
  bgFromTopPosition: c = 0,
15
15
  bgFromRightPosition: s = 0,
16
- custEle: l
16
+ custEle: d
17
17
  }) => /* @__PURE__ */ n(f, { topInset: e, children: [
18
18
  /* @__PURE__ */ r(
19
19
  x,
@@ -30,11 +30,11 @@ const $ = { renderer: "canvas" }, H = d(
30
30
  /* @__PURE__ */ r(p, { height: 4 }),
31
31
  /* @__PURE__ */ r(o, { $renderAs: "ah4", $color: "WHITE", children: a ? "__" : t })
32
32
  ] }),
33
- l
33
+ d
34
34
  ] })
35
35
  ] })
36
36
  );
37
37
  export {
38
- H as Banner
38
+ v as Banner
39
39
  };
40
40
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/banner/banner.tsx"],"sourcesContent":["import type { IBannerProps } from './banner-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './banner-styled';\n\nconst animationSettings = { renderer: 'canvas' };\n\nexport const Banner: FC<IBannerProps> = memo(\n ({\n primaryText,\n secondaryText,\n topInset = 0,\n isLoading = false,\n lottiePath,\n bgFromTopPosition = 0,\n bgFromRightPosition = 0,\n custEle,\n }) => (\n <Styled.BannerContainer topInset={topInset}>\n <Styled.CircleLottieView\n topInset={topInset}\n bgFromTopPosition={bgFromTopPosition}\n bgFromRightPosition={bgFromRightPosition}\n >\n <LottieAnimation src={lottiePath} settings={animationSettings} />\n </Styled.CircleLottieView>\n\n <Styled.BannerTextContainer>\n <Styled.CountTextWrapper topInset={topInset}>\n <Text $renderAs=\"ac4\" $color=\"WHITE\">\n {primaryText}\n </Text>\n <Separator height={4} />\n <Text $renderAs=\"ah4\" $color=\"WHITE\">\n {isLoading ? '__' : secondaryText}\n </Text>\n </Styled.CountTextWrapper>\n\n {custEle}\n </Styled.BannerTextContainer>\n </Styled.BannerContainer>\n ),\n);\n"],"names":["animationSettings","Banner","memo","primaryText","secondaryText","topInset","isLoading","lottiePath","bgFromTopPosition","bgFromRightPosition","custEle","jsxs","Styled.BannerContainer","jsx","Styled.CircleLottieView","LottieAnimation","Styled.BannerTextContainer","Styled.CountTextWrapper","Text","Separator"],"mappings":";;;;;;AAUA,MAAMA,IAAoB,EAAE,UAAU,YAEzBC,IAA2BC;AAAA,EACtC,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAAC,IAAY;AAAA,IACZ,YAAAC;AAAA,IACA,mBAAAC,IAAoB;AAAA,IACpB,qBAAAC,IAAsB;AAAA,IACtB,SAAAC;AAAA,EAEA,MAAA,gBAAAC,EAACC,GAAA,EAAuB,UAAAP,GACtB,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,UAAAT;AAAA,QACA,mBAAAG;AAAA,QACA,qBAAAC;AAAA,QAEA,UAAC,gBAAAI,EAAAE,GAAA,EAAgB,KAAKR,GAAY,UAAUP,GAAmB;AAAA,MAAA;AAAA,IACjE;AAAA,IAEA,gBAAAW,EAACK,GAAA,EACC,UAAA;AAAA,MAAC,gBAAAL,EAAAM,GAAA,EAAwB,UAAAZ,GACvB,UAAA;AAAA,QAAA,gBAAAQ,EAACK,GAAK,EAAA,WAAU,OAAM,QAAO,SAC1B,UACHf,GAAA;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,QAAQ,EAAG,CAAA;AAAA,QACtB,gBAAAN,EAACK,KAAK,WAAU,OAAM,QAAO,SAC1B,UAAAZ,IAAY,OAAOF,EACtB,CAAA;AAAA,MAAA,GACF;AAAA,MAECM;AAAA,IAAA,GACH;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"banner.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/banner/banner.tsx"],"sourcesContent":["import type { IBannerProps } from './banner-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport LottieAnimation from '../../../../ui/lottie-animation/lottie-animation';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport * as Styled from './banner-styled';\n\nconst animationSettings = { renderer: 'canvas' };\n\nexport const Banner: FC<IBannerProps> = memo(\n ({\n primaryText,\n secondaryText,\n topInset = window.ReactNativeTopInset || 0,\n isLoading = false,\n lottiePath,\n bgFromTopPosition = 0,\n bgFromRightPosition = 0,\n custEle,\n }) => (\n <Styled.BannerContainer topInset={topInset}>\n <Styled.CircleLottieView\n topInset={topInset}\n bgFromTopPosition={bgFromTopPosition}\n bgFromRightPosition={bgFromRightPosition}\n >\n <LottieAnimation src={lottiePath} settings={animationSettings} />\n </Styled.CircleLottieView>\n\n <Styled.BannerTextContainer>\n <Styled.CountTextWrapper topInset={topInset}>\n <Text $renderAs=\"ac4\" $color=\"WHITE\">\n {primaryText}\n </Text>\n <Separator height={4} />\n <Text $renderAs=\"ah4\" $color=\"WHITE\">\n {isLoading ? '__' : secondaryText}\n </Text>\n </Styled.CountTextWrapper>\n\n {custEle}\n </Styled.BannerTextContainer>\n </Styled.BannerContainer>\n ),\n);\n"],"names":["animationSettings","Banner","memo","primaryText","secondaryText","topInset","isLoading","lottiePath","bgFromTopPosition","bgFromRightPosition","custEle","jsxs","Styled.BannerContainer","jsx","Styled.CircleLottieView","LottieAnimation","Styled.BannerTextContainer","Styled.CountTextWrapper","Text","Separator"],"mappings":";;;;;;AAUA,MAAMA,IAAoB,EAAE,UAAU,YAEzBC,IAA2BC;AAAA,EACtC,CAAC;AAAA,IACC,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC,IAAW,OAAO,uBAAuB;AAAA,IACzC,WAAAC,IAAY;AAAA,IACZ,YAAAC;AAAA,IACA,mBAAAC,IAAoB;AAAA,IACpB,qBAAAC,IAAsB;AAAA,IACtB,SAAAC;AAAA,EAEA,MAAA,gBAAAC,EAACC,GAAA,EAAuB,UAAAP,GACtB,UAAA;AAAA,IAAA,gBAAAQ;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,UAAAT;AAAA,QACA,mBAAAG;AAAA,QACA,qBAAAC;AAAA,QAEA,UAAC,gBAAAI,EAAAE,GAAA,EAAgB,KAAKR,GAAY,UAAUP,GAAmB;AAAA,MAAA;AAAA,IACjE;AAAA,IAEA,gBAAAW,EAACK,GAAA,EACC,UAAA;AAAA,MAAC,gBAAAL,EAAAM,GAAA,EAAwB,UAAAZ,GACvB,UAAA;AAAA,QAAA,gBAAAQ,EAACK,GAAK,EAAA,WAAU,OAAM,QAAO,SAC1B,UACHf,GAAA;AAAA,QACA,gBAAAU,EAACM,GAAU,EAAA,QAAQ,EAAG,CAAA;AAAA,QACtB,gBAAAN,EAACK,KAAK,WAAU,OAAM,QAAO,SAC1B,UAAAZ,IAAY,OAAOF,EACtB,CAAA;AAAA,MAAA,GACF;AAAA,MAECM;AAAA,IAAA,GACH;AAAA,EAAA,GACF;AAEJ;"}
@@ -7,7 +7,7 @@ const i = o.div`
7
7
  left: ${({ align: t = "left" }) => t === "left" ? "20px" : "unset"};
8
8
  right: ${({ align: t = "left" }) => t === "right" ? "20px" : "unset"};
9
9
  z-index: 10;
10
- bottom: 50px;
10
+ bottom: ${(window.ReactNativeBottomInset || 0) + 50}px;
11
11
  `;
12
12
  export {
13
13
  n as ExtendedIconButton,
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-button-styled.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const NavigationActionWrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nexport const ExtendedIconButton = styled.div<{ align?: 'left' | 'right' }>`\n position: absolute;\n left: ${({ align = 'left' }) => (align === 'left' ? '20px' : 'unset')};\n right: ${({ align = 'left' }) => (align === 'right' ? '20px' : 'unset')};\n z-index: 10;\n bottom: 50px;\n`;\n"],"names":["NavigationActionWrapper","styled","ExtendedIconButton","align"],"mappings":";AAEO,MAAMA,IAA0BC,EAAO;AAAA;AAAA;AAAA,GAKjCC,IAAqBD,EAAO;AAAA;AAAA,UAE/B,CAAC,EAAE,OAAAE,IAAQ,OAAA,MAAcA,MAAU,SAAS,SAAS,OAAQ;AAAA,WAC5D,CAAC,EAAE,OAAAA,IAAQ,OAAA,MAAcA,MAAU,UAAU,SAAS,OAAQ;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"navigation-button-styled.js","sources":["../../../../../../src/features/circle-games/leaderboard/comps/navigation-button/navigation-button-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const NavigationActionWrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nexport const ExtendedIconButton = styled.div<{ align?: 'left' | 'right' }>`\n position: absolute;\n left: ${({ align = 'left' }) => (align === 'left' ? '20px' : 'unset')};\n right: ${({ align = 'left' }) => (align === 'right' ? '20px' : 'unset')};\n z-index: 10;\n bottom: ${(window.ReactNativeBottomInset || 0) + 50}px;\n`;\n"],"names":["NavigationActionWrapper","styled","ExtendedIconButton","align"],"mappings":";AAEO,MAAMA,IAA0BC,EAAO;AAAA;AAAA;AAAA,GAKjCC,IAAqBD,EAAO;AAAA;AAAA,UAE/B,CAAC,EAAE,OAAAE,IAAQ,OAAA,MAAcA,MAAU,SAAS,SAAS,OAAQ;AAAA,WAC5D,CAAC,EAAE,OAAAA,IAAQ,OAAA,MAAcA,MAAU,UAAU,SAAS,OAAQ;AAAA;AAAA,aAE5D,OAAO,0BAA0B,KAAK,EAAE;AAAA;"}
@@ -25,7 +25,7 @@ const s = t.div`
25
25
  width: 100%;
26
26
  flex: 1;
27
27
  height: 100%;
28
- padding-top: ${n}px;
28
+ padding-top: ${(window.ReactNativeTopInset || 0) + n}px;
29
29
  padding-bottom: ${i}px;
30
30
  `, m = t.div`
31
31
  position: absolute;
@@ -1 +1 @@
1
- {"version":3,"file":"leaderboard-styled.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport { ARC_BUTTON_BOTTOM_OFFSET } from '../../ui/arc-button/constants';\nimport FlexView from '../../ui/layout/flex-view';\nimport { BANNER_HEIGHT } from './comps/banner/constants';\n\nexport const Leaderboard = styled.div`\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n max-height: 100%;\n position: relative;\n`;\n\nexport const LeaderboardContainer = styled.div`\n background: ${({ theme }) => theme.colors.BLACK_1};\n height: 100%;\n position: relative;\n width: 100%;\n`;\n\nexport const BannerWrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 10;\n`;\n\nexport const ItemsWrapper = styled.div<{ topInset: number }>`\n background: transparent;\n position: absolute;\n overflow: auto;\n width: 100%;\n flex: 1;\n height: 100%;\n padding-top: ${BANNER_HEIGHT}px;\n padding-bottom: ${ARC_BUTTON_BOTTOM_OFFSET}px;\n`;\n\nexport const TournamentBannerCustContainer = styled.div`\n position: absolute;\n display: flex;\n top: 5px;\n right: -2px;\n width: 200px;\n height: 100%;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ActionButtonWrapper = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n`;\n\nexport const TrophyWrapper = styled.div`\n display: flex;\n justify-content: center;\n width: 150%;\n height: 150%;\n`;\n\nexport const Banner = styled.div`\n background: ${({ theme }) => theme.colors.YELLOW_6};\n min-height: 32px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n\nexport const InfoContainer = styled(FlexView)`\n padding: 16px;\n`;\n"],"names":["Leaderboard","styled","LeaderboardContainer","theme","BannerWrapper","ItemsWrapper","BANNER_HEIGHT","ARC_BUTTON_BOTTOM_OFFSET","TournamentBannerCustContainer","ActionButtonWrapper","TrophyWrapper","Banner","FlexView"],"mappings":";;;;AAMO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrBC,IAAuBD,EAAO;AAAA,gBAC3B,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMtCC,IAAgBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBI,IAAeJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAOlBK,CAAa;AAAA,oBACVC,CAAwB;AAAA,GAG/BC,IAAgCP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWvCQ,IAAsBR,EAAO;AAAA;AAAA;AAAA;AAAA,GAM7BS,IAAgBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBU,IAASV,EAAO;AAAA,gBACb,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASvBF,EAAOW,CAAQ;AAAA;AAAA;"}
1
+ {"version":3,"file":"leaderboard-styled.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport { ARC_BUTTON_BOTTOM_OFFSET } from '../../ui/arc-button/constants';\nimport FlexView from '../../ui/layout/flex-view';\nimport { BANNER_HEIGHT } from './comps/banner/constants';\n\nexport const Leaderboard = styled.div`\n flex-direction: column;\n overflow: hidden;\n height: 100vh;\n max-height: 100%;\n position: relative;\n`;\n\nexport const LeaderboardContainer = styled.div`\n background: ${({ theme }) => theme.colors.BLACK_1};\n height: 100%;\n position: relative;\n width: 100%;\n`;\n\nexport const BannerWrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 10;\n`;\n\nexport const ItemsWrapper = styled.div`\n background: transparent;\n position: absolute;\n overflow: auto;\n width: 100%;\n flex: 1;\n height: 100%;\n padding-top: ${(window.ReactNativeTopInset || 0) + BANNER_HEIGHT}px;\n padding-bottom: ${ARC_BUTTON_BOTTOM_OFFSET}px;\n`;\n\nexport const TournamentBannerCustContainer = styled.div`\n position: absolute;\n display: flex;\n top: 5px;\n right: -2px;\n width: 200px;\n height: 100%;\n align-items: center;\n justify-content: center;\n`;\n\nexport const ActionButtonWrapper = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n`;\n\nexport const TrophyWrapper = styled.div`\n display: flex;\n justify-content: center;\n width: 150%;\n height: 150%;\n`;\n\nexport const Banner = styled.div`\n background: ${({ theme }) => theme.colors.YELLOW_6};\n min-height: 32px;\n width: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n`;\n\nexport const InfoContainer = styled(FlexView)`\n padding: 16px;\n`;\n"],"names":["Leaderboard","styled","LeaderboardContainer","theme","BannerWrapper","ItemsWrapper","BANNER_HEIGHT","ARC_BUTTON_BOTTOM_OFFSET","TournamentBannerCustContainer","ActionButtonWrapper","TrophyWrapper","Banner","FlexView"],"mappings":";;;;AAMO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQrBC,IAAuBD,EAAO;AAAA,gBAC3B,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA,GAMtCC,IAAgBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBI,IAAeJ,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAOjB,OAAO,uBAAuB,KAAKK,CAAa;AAAA,oBAC9CC,CAAwB;AAAA,GAG/BC,IAAgCP,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAWvCQ,IAAsBR,EAAO;AAAA;AAAA;AAAA;AAAA,GAM7BS,IAAgBT,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAOvBU,IAASV,EAAO;AAAA,gBACb,CAAC,EAAE,OAAAE,EAAA,MAAYA,EAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASvBF,EAAOW,CAAQ;AAAA;AAAA;"}
@@ -1,5 +1,5 @@
1
- import { jsx as e, jsxs as p } from "react/jsx-runtime";
2
- import { useState as a, useEffect as K } from "react";
1
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import { useState as p, useEffect as K } from "react";
3
3
  import { ILLUSTRATIONS as w } from "../../../assets/illustrations/illustrations.js";
4
4
  import { LOTTIE as d } from "../../../assets/lottie/lottie.js";
5
5
  import { CircularLoader as U } from "../../ui/loader/circular-loader/circular-loader.js";
@@ -39,12 +39,12 @@ const L = {
39
39
  streakInfo: l
40
40
  }) => {
41
41
  var y, A, R, S, B, C, x, P;
42
- const [i, I] = a(
42
+ const [i, I] = p(
43
43
  o.findIndex((t) => u === t.type)
44
- ), [n, k] = a(((y = m == null ? void 0 : m[u]) == null ? void 0 : y.leaderboardPlayers) || []), [h, N] = a({
44
+ ), [n, k] = p(((y = m == null ? void 0 : m[u]) == null ? void 0 : y.leaderboardPlayers) || []), [h, N] = p({
45
45
  current: 0,
46
46
  end: 0
47
- }), [O, f] = V(0), [c, Y] = a(!1), F = (A = n == null ? void 0 : n[0]) == null ? void 0 : A.points, $ = ((R = n == null ? void 0 : n[0]) == null ? void 0 : R.streakDays) || 0, { playButtonSound: _ } = q(), j = () => {
47
+ }), [O, f] = V(0), [c, Y] = p(!1), F = (A = n == null ? void 0 : n[0]) == null ? void 0 : A.points, $ = ((R = n == null ? void 0 : n[0]) == null ? void 0 : R.streakDays) || 0, { playButtonSound: _ } = q(), j = () => {
48
48
  _(), I((t) => t - 1 < 0 ? o.length - 1 : t - 1);
49
49
  }, v = () => {
50
50
  _(), I((t) => t + 1 === o.length ? 0 : t + 1);
@@ -61,8 +61,8 @@ const L = {
61
61
  end: s.endTimestamp
62
62
  }), s.currentTimestamp > s.endTimestamp && (g.splice(10), Y(!0))), k([...g]);
63
63
  }
64
- }, [i, m]), /* @__PURE__ */ e(X, { children: /* @__PURE__ */ p(Z, { children: [
65
- /* @__PURE__ */ p(D, { children: [
64
+ }, [i, m]), /* @__PURE__ */ e(X, { children: /* @__PURE__ */ a(Z, { children: [
65
+ /* @__PURE__ */ a(D, { children: [
66
66
  ((S = o[i]) == null ? void 0 : S.type) === r.BI_WEEKLY && /* @__PURE__ */ e(
67
67
  E,
68
68
  {
@@ -70,7 +70,7 @@ const L = {
70
70
  bgFromTopPosition: -120,
71
71
  bgFromRightPosition: -110,
72
72
  primaryText: c ? /* @__PURE__ */ e("span", { children: "New Tournament" }) : /* @__PURE__ */ e("span", { children: "Tournament" }),
73
- secondaryText: c ? /* @__PURE__ */ e("span", { children: "Starts Soon" }) : /* @__PURE__ */ p("span", { children: [
73
+ secondaryText: c ? /* @__PURE__ */ e("span", { children: "Starts Soon" }) : /* @__PURE__ */ a("span", { children: [
74
74
  " ",
75
75
  /* @__PURE__ */ e(
76
76
  Q,
@@ -110,7 +110,7 @@ const L = {
110
110
  )
111
111
  ] }),
112
112
  T && /* @__PURE__ */ e(U, {}),
113
- !T && n && /* @__PURE__ */ p(te, { topInset: 0, children: [
113
+ !T && n && /* @__PURE__ */ a(te, { children: [
114
114
  ((x = o[i]) == null ? void 0 : x.type) === r.ALL_TIME_STREAK && /* @__PURE__ */ e(
115
115
  J,
116
116
  {