@cuemath/leap 2.8.23 → 2.8.24-hg1

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 (62) hide show
  1. package/dist/assets/lotties/circle/tables/advance-mode-segment-lottie.json.js +4370 -0
  2. package/dist/assets/lotties/circle/tables/advance-mode-segment-lottie.json.js.map +1 -0
  3. package/dist/assets/lotties/circle/tables/infinite-button-bg.json.js +1552 -0
  4. package/dist/assets/lotties/circle/tables/infinite-button-bg.json.js.map +1 -0
  5. package/dist/assets/lotties/circle/tables/infinite-button-symbol.json.js +1795 -0
  6. package/dist/assets/lotties/circle/tables/infinite-button-symbol.json.js.map +1 -0
  7. package/dist/assets/lotties/circle/tables/random-mode-segment-lottie.json.js +9661 -0
  8. package/dist/assets/lotties/circle/tables/random-mode-segment-lottie.json.js.map +1 -0
  9. package/dist/assets/lotties/circle/tables/sequence-mode-segment-lottie.json.js +8630 -0
  10. package/dist/assets/lotties/circle/tables/sequence-mode-segment-lottie.json.js.map +1 -0
  11. package/dist/assets/lotties/circle/tables/table-mode-reveal.json.js +9076 -0
  12. package/dist/assets/lotties/circle/tables/table-mode-reveal.json.js.map +1 -0
  13. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js +53 -0
  14. package/dist/features/circle-games/game-launcher/comps/card-container/card-container-styled.js.map +1 -0
  15. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js +24 -0
  16. package/dist/features/circle-games/game-launcher/comps/card-container/card-container.js.map +1 -0
  17. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js +7 -0
  18. package/dist/features/circle-games/game-launcher/comps/card-container/constants.js.map +1 -0
  19. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js +6 -6
  20. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/constants.js.map +1 -1
  21. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js +29 -73
  22. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card-styled.js.map +1 -1
  23. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +83 -81
  24. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  25. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js +20 -0
  26. package/dist/features/circle-games/game-launcher/comps/tables-card/constants.js.map +1 -0
  27. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js +24 -0
  28. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode-styled.js.map +1 -0
  29. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js +83 -0
  30. package/dist/features/circle-games/game-launcher/comps/tables-card/table-mode/table-mode.js.map +1 -0
  31. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +161 -0
  32. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -0
  33. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +223 -0
  34. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -0
  35. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js +25 -15
  36. package/dist/features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js.map +1 -1
  37. package/dist/features/circle-games/game-launcher/game-launcher-styled.js +6 -5
  38. package/dist/features/circle-games/game-launcher/game-launcher-styled.js.map +1 -1
  39. package/dist/features/circle-games/game-launcher/game-launcher.js +123 -82
  40. package/dist/features/circle-games/game-launcher/game-launcher.js.map +1 -1
  41. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js +1 -1
  42. package/dist/features/circle-games/games/web-view/enums/project-type-enum.js.map +1 -1
  43. package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
  44. package/dist/features/circle-games/games/web-view/web-view.js +70 -83
  45. package/dist/features/circle-games/games/web-view/web-view.js.map +1 -1
  46. package/dist/features/post-game-stats/accuracy/accuracy-styled.js +17 -16
  47. package/dist/features/post-game-stats/accuracy/accuracy-styled.js.map +1 -1
  48. package/dist/features/post-game-stats/clock/clock-styled.js +11 -10
  49. package/dist/features/post-game-stats/clock/clock-styled.js.map +1 -1
  50. package/dist/features/post-game-stats/points/points-styled.js +7 -6
  51. package/dist/features/post-game-stats/points/points-styled.js.map +1 -1
  52. package/dist/features/post-game-stats/post-game-stats-styled.js +1 -1
  53. package/dist/features/post-game-stats/post-game-stats-styled.js.map +1 -1
  54. package/dist/features/post-game-stats/streak/streak-styled.js +18 -17
  55. package/dist/features/post-game-stats/streak/streak-styled.js.map +1 -1
  56. package/dist/features/trial-session/comps/trial-circle-game/constants.js.map +1 -1
  57. package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
  58. package/dist/index.d.ts +72 -109
  59. package/dist/index.js +203 -208
  60. package/package.json +1 -1
  61. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js +0 -14
  62. package/dist/features/circle-games/games/web-view/enums/project-ids-enum.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import type { GameId, LessonId, PuzzleId } from '../../../circle-games/games/web-view/enums';\nimport type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, ProjectType>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(() => {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const { playGame } = useWebViewGames({ webViewRef });\n const [isLoading, setIsLoading] = useState(true);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats: Record<ProjectType, boolean> = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Record<ProjectType, string> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType ? url[projectType] : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType, matchMakingId } =\n playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchMakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id as GameId,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id as PuzzleId,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id as LessonId,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchMakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n }, []);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (projectType === ProjectType.GAME) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.LESSON) {\n updateSlideConfig({ showCircleGameScreen: true });\n }\n }, [updateSlideConfig, projectType]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({ isCircleGamePlayed: true, showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ isCirclePuzzleSolved: true, showCircleGameScreen: true });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame]);\n\n useEffect(() => {\n updateSlideConfig({ showCircleGameScreen: true });\n }, [updateSlideConfig]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={(projectType && isPlayed[projectType]) ?? false}\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={projectType && isPlayed[projectType] ? 'WELL DONE!' : ''}\n />\n </Styled.GameLaunchOverlay>\n )}\n <WebView\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n />\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","webViewRef","useRef","playGame","useWebViewGames","isLoading","setIsLoading","useState","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","matchMakingId","playerData","projectDetails","commonConfig","onGameLoad","useCallback","handleBack","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
1
+ {"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, Omit<ProjectType, ProjectType.TABLE>>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(() => {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const { playGame } = useWebViewGames({ webViewRef });\n const [isLoading, setIsLoading] = useState(true);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Omit<Record<ProjectType, string>, ProjectType.TABLE> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType\n ? url[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType, matchMakingId } =\n playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchMakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchMakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n }, []);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (projectType === ProjectType.GAME) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.LESSON) {\n updateSlideConfig({ showCircleGameScreen: true });\n }\n }, [updateSlideConfig, projectType]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({ isCircleGamePlayed: true, showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ isCirclePuzzleSolved: true, showCircleGameScreen: true });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame]);\n\n useEffect(() => {\n updateSlideConfig({ showCircleGameScreen: true });\n }, [updateSlideConfig]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={\n (projectType &&\n isPlayed[\n projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>\n ]) ??\n false\n }\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={\n projectType &&\n isPlayed[projectType as keyof Omit<Record<ProjectType, string>, ProjectType.TABLE>]\n ? 'WELL DONE!'\n : ''\n }\n />\n </Styled.GameLaunchOverlay>\n )}\n <WebView\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n />\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","webViewRef","useRef","playGame","useWebViewGames","isLoading","setIsLoading","useState","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","matchMakingId","playerData","projectDetails","commonConfig","onGameLoad","useCallback","handleBack","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -71,8 +71,8 @@ export declare const BackgroundImage: ({ img }: {
71
71
 
72
72
  export declare const BackIcon: React.FC<React.SVGProps<SVGSVGElement>>;
73
73
 
74
- declare interface BaseProject<T> {
75
- id: T;
74
+ declare interface BaseProject {
75
+ id: string;
76
76
  name: string;
77
77
  cardLottie: string;
78
78
  tutorial: string;
@@ -388,7 +388,7 @@ declare interface FlexViewProps {
388
388
  $flex?: number;
389
389
  }
390
390
 
391
- export declare interface Game extends BaseProject<GameId> {
391
+ export declare interface Game extends BaseProject {
392
392
  isPlayed: boolean;
393
393
  }
394
394
 
@@ -398,20 +398,6 @@ export declare const GAME_LAUNCHER_SIZE: number;
398
398
 
399
399
  export declare const GameIcon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
400
400
 
401
- export declare enum GameId {
402
- CHESS_MOVES = "chess-moves",
403
- NO_ATTACK = "no-attack",
404
- TROMINOS = "trominos",
405
- NIMS_GAME = "nims-game",
406
- TRANSFORMATION = "transformation",
407
- LIGHTS_ON_OR_OFF = "lights-on-or-off",
408
- LIQUID_WARS = "liquid-wars",
409
- HACKENBUSH = "hackenbush",
410
- SQUARE_IT = "square-it",
411
- CLASH_OF_COLOURS = "clash-of-colours",
412
- REACH = "reach"
413
- }
414
-
415
401
  export declare const GameLauncher: FC<IGameLauncherProps>;
416
402
 
417
403
  declare const getArrowTooltipConfig: IGetArrowTooltipConfig;
@@ -565,8 +551,8 @@ declare interface IBaseLeaderboardDetails {
565
551
  currentTimestamp: number;
566
552
  }
567
553
 
568
- declare interface IBaseProject<T> {
569
- id: T;
554
+ declare interface IBaseProject {
555
+ id: string;
570
556
  name: string;
571
557
  card: string;
572
558
  variant: string;
@@ -587,13 +573,10 @@ declare interface IBaseSelectInputProps<IDType extends string | number> extends
587
573
  theme?: 'light' | 'dark';
588
574
  }
589
575
 
590
- declare interface IBaseWebGameProps<T> {
591
- projectId: T;
576
+ declare interface IBaseWebGameProps {
577
+ projectId: string;
592
578
  variant: string;
593
579
  projectType: ProjectType;
594
- joinByRoomId?: string;
595
- enableSync?: boolean;
596
- enablePlayerTurnIndicators?: boolean;
597
580
  enableCloseButton?: boolean;
598
581
  }
599
582
 
@@ -1074,12 +1057,12 @@ declare interface IFile {
1074
1057
  url: string;
1075
1058
  }
1076
1059
 
1077
- declare interface IGame extends IBaseProject<GameId> {
1060
+ declare interface IGame extends IBaseProject {
1078
1061
  played: boolean;
1079
1062
  }
1080
1063
 
1081
1064
  declare interface IGameLauncherProps {
1082
- onSegmentClick: (projectDetail: Game | Puzzle | Lesson, projectType: ProjectType) => void;
1065
+ onSegmentClick: (projectDetail: Game | Puzzle | Lesson | ITableDetails, projectType: ProjectType) => void;
1083
1066
  isLoading?: boolean;
1084
1067
  data: IProjects | null;
1085
1068
  defaultIndex?: number;
@@ -1477,9 +1460,9 @@ declare interface ILearnosityQuestionScore {
1477
1460
  unscored?: boolean;
1478
1461
  }
1479
1462
 
1480
- declare interface ILesson extends IBaseProject<LessonId> {
1463
+ declare interface ILesson extends IBaseProject {
1481
1464
  session_id: string;
1482
- mini_game_identifier: MiniGameId;
1465
+ mini_game_identifier: string;
1483
1466
  target_questions: number;
1484
1467
  status: 'pending' | 'completed';
1485
1468
  }
@@ -1517,8 +1500,8 @@ declare interface ILessonsListProps extends ILessonItemCallbackProps {
1517
1500
  lessonItemColorHue: THueNames;
1518
1501
  }
1519
1502
 
1520
- export declare interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {
1521
- miniGameIdentifier: MiniGameId;
1503
+ export declare interface ILessonWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {
1504
+ miniGameIdentifier: string;
1522
1505
  sessionId: string;
1523
1506
  targetQuestions: number;
1524
1507
  }
@@ -1941,7 +1924,8 @@ declare interface IMilestoneWidgetResourcesProps extends ISheetItemCallbackProps
1941
1924
  canUpdatePlan?: boolean;
1942
1925
  }
1943
1926
 
1944
- export declare interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {
1927
+ export declare interface IMultiplayerWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {
1928
+ enablePlayerTurnIndicators?: boolean;
1945
1929
  }
1946
1930
 
1947
1931
  declare interface IMultiTabBlockerContextValue {
@@ -2152,6 +2136,7 @@ export declare interface IProjects {
2152
2136
  games: IProject<Game>;
2153
2137
  puzzles: IProject<Puzzle>;
2154
2138
  lessons?: IProject<Lesson>;
2139
+ tables?: ITables;
2155
2140
  }
2156
2141
 
2157
2142
  declare interface IProjects_2 {
@@ -2167,6 +2152,10 @@ declare interface IProjects_2 {
2167
2152
  label: string;
2168
2153
  data: ILesson[];
2169
2154
  };
2155
+ tables?: {
2156
+ label: string;
2157
+ data: ITables_2;
2158
+ };
2170
2159
  }
2171
2160
 
2172
2161
  declare interface IPublishData {
@@ -2174,7 +2163,7 @@ declare interface IPublishData {
2174
2163
  eventPayload: IActionData;
2175
2164
  }
2176
2165
 
2177
- declare interface IPuzzle extends IBaseProject<PuzzleId> {
2166
+ declare interface IPuzzle extends IBaseProject {
2178
2167
  question: string;
2179
2168
  is_hint_seen: boolean;
2180
2169
  solved: boolean;
@@ -2208,7 +2197,7 @@ declare interface IPuzzleCard_2 {
2208
2197
  programId: string;
2209
2198
  }
2210
2199
 
2211
- export declare interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {
2200
+ export declare interface IPuzzleWebGameProps extends IBaseWebGameProps, ISyncableWebGameProps {
2212
2201
  question: string;
2213
2202
  askHintPermission?: boolean;
2214
2203
  }
@@ -2571,6 +2560,48 @@ export declare const isV3Worksheet: (sheet: ISheetDataProps | TLPARSheetData, mo
2571
2560
 
2572
2561
  export declare const isV3WorksheetAttempt: (attempt: IWorksheetAttemptModel) => boolean;
2573
2562
 
2563
+ declare interface ISyncableWebGameProps {
2564
+ joinByRoomId?: string;
2565
+ enableSync?: boolean;
2566
+ }
2567
+
2568
+ export declare interface ITable {
2569
+ tableList: ITableInfo[];
2570
+ infiniteModeHighScore: number;
2571
+ }
2572
+
2573
+ export declare interface ITableDetails {
2574
+ mode: TTableMode;
2575
+ tableNumber?: number;
2576
+ infiniteModeHighScore?: number;
2577
+ }
2578
+
2579
+ export declare interface ITableInfo {
2580
+ tableNumber: number;
2581
+ stars: TTableMode[];
2582
+ }
2583
+
2584
+ declare interface ITableInfo_2 {
2585
+ table_number: number;
2586
+ stars: ('advance' | 'random' | 'sequence')[];
2587
+ }
2588
+
2589
+ declare interface ITables {
2590
+ type: ProjectType;
2591
+ label: string;
2592
+ data: ITable;
2593
+ }
2594
+
2595
+ declare interface ITables_2 {
2596
+ table_wise_details: ITableInfo_2[];
2597
+ infinite_mode_high_score: number;
2598
+ }
2599
+
2600
+ export declare interface ITableWebGameProps extends IBaseWebGameProps {
2601
+ tableNumber: number;
2602
+ infiniteModeHighScore?: number;
2603
+ }
2604
+
2574
2605
  declare interface ITabProps {
2575
2606
  label: number | string;
2576
2607
  $selected: boolean;
@@ -2956,7 +2987,7 @@ export declare interface IVibrationPattern {
2956
2987
 
2957
2988
  export declare interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {
2958
2989
  baseUrl: string;
2959
- projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;
2990
+ projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps | ITableWebGameProps;
2960
2991
  playerDetails: IPlayer;
2961
2992
  onBack?: () => void;
2962
2993
  onGameLoad?: () => void;
@@ -3251,9 +3282,9 @@ export declare const LearnosityPreloader: FC<PropsWithChildren<ILearnosityPreloa
3251
3282
 
3252
3283
  export declare const LeftIcon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
3253
3284
 
3254
- export declare interface Lesson extends BaseProject<LessonId> {
3285
+ export declare interface Lesson extends BaseProject {
3255
3286
  sessionId: string;
3256
- miniGameIdentifier: MiniGameId;
3287
+ miniGameIdentifier: string;
3257
3288
  targetQuestions: number;
3258
3289
  status: TSkillStatus;
3259
3290
  }
@@ -3263,17 +3294,6 @@ declare const LESSON_TAG_TYPE: {
3263
3294
  readonly DEFAULT: "DEFAULT";
3264
3295
  };
3265
3296
 
3266
- export declare enum LessonId {
3267
- ANGLES = "angles",
3268
- FRACTIONS = "fractions",
3269
- TIME = "time",
3270
- ADDITION_SUBTRACTION = "addition-subtraction",
3271
- MULTIPLICATION_DIVISION = "multiplication-division",
3272
- PERCENTAGES = "percentages",
3273
- INTEGERS = "integers",
3274
- RATIOS = "ratios"
3275
- }
3276
-
3277
3297
  export declare const loadScript: ILoadScript;
3278
3298
 
3279
3299
  export declare const Lock2Icon: React_2.FC<React_2.SVGProps<SVGSVGElement>>;
@@ -3300,23 +3320,6 @@ export declare const MilestoneOutcome: React_2.FC<IMilestoneOutcomeContainer>;
3300
3320
 
3301
3321
  export declare const MilestoneStart: React_2.FC<IMilestoneStartProps>;
3302
3322
 
3303
- export declare enum MiniGameId {
3304
- SNAKE = "snake",
3305
- BASKETBALL = "basketball",
3306
- REARRANGE = "rearrange",
3307
- CAR_RACE = "car-race",
3308
- DROP_ME = "drop-me",
3309
- WARZONE = "warzone",
3310
- SLOT_MACHINE = "slot-machine",
3311
- SLING_SHOT = "sling-shot",
3312
- CLOCK = "clock",
3313
- MINING = "mining",
3314
- SHADING_AREA = "shading-area",
3315
- MAGIC_HAT = "magic-hat",
3316
- PUZZLE = "puzzle",
3317
- BALANCE = "balance"
3318
- }
3319
-
3320
3323
  export declare const Minus2Icon: React.FC<React.SVGProps<SVGSVGElement>>;
3321
3324
 
3322
3325
  export declare const MinusIcon: React.FC<React.SVGProps<SVGSVGElement>>;
@@ -3520,36 +3523,6 @@ export declare const PreviewWorksheet: FC<IPreviewWorksheetProps>;
3520
3523
 
3521
3524
  export declare const ProgressIcon: React.FC<React.SVGProps<SVGSVGElement>>;
3522
3525
 
3523
- export declare const ProjectId: {
3524
- readonly ANGLES: LessonId.ANGLES;
3525
- readonly FRACTIONS: LessonId.FRACTIONS;
3526
- readonly TIME: LessonId.TIME;
3527
- readonly ADDITION_SUBTRACTION: LessonId.ADDITION_SUBTRACTION;
3528
- readonly MULTIPLICATION_DIVISION: LessonId.MULTIPLICATION_DIVISION;
3529
- readonly PERCENTAGES: LessonId.PERCENTAGES;
3530
- readonly INTEGERS: LessonId.INTEGERS;
3531
- readonly RATIOS: LessonId.RATIOS;
3532
- readonly CUT_THE_STRIP: PuzzleId.CUT_THE_STRIP;
3533
- readonly ONE_LINE_WONDER: PuzzleId.ONE_LINE_WONDER;
3534
- readonly FLIP_IT_UP: PuzzleId.FLIP_IT_UP;
3535
- readonly CARS_IN_CHAOS: PuzzleId.CARS_IN_CHAOS;
3536
- readonly REFLEKT: PuzzleId.REFLEKT;
3537
- readonly MATCHSTICKS: PuzzleId.MATCHSTICKS;
3538
- readonly NO_CROSS: PuzzleId.NO_CROSS;
3539
- readonly DISSECTION: PuzzleId.DISSECTION;
3540
- readonly CHESS_MOVES: GameId.CHESS_MOVES;
3541
- readonly NO_ATTACK: GameId.NO_ATTACK;
3542
- readonly TROMINOS: GameId.TROMINOS;
3543
- readonly NIMS_GAME: GameId.NIMS_GAME;
3544
- readonly TRANSFORMATION: GameId.TRANSFORMATION;
3545
- readonly LIGHTS_ON_OR_OFF: GameId.LIGHTS_ON_OR_OFF;
3546
- readonly LIQUID_WARS: GameId.LIQUID_WARS;
3547
- readonly HACKENBUSH: GameId.HACKENBUSH;
3548
- readonly SQUARE_IT: GameId.SQUARE_IT;
3549
- readonly CLASH_OF_COLOURS: GameId.CLASH_OF_COLOURS;
3550
- readonly REACH: GameId.REACH;
3551
- };
3552
-
3553
3526
  export declare enum ProjectOutcome {
3554
3527
  WIN = "win",
3555
3528
  LOSE = "lose",
@@ -3564,10 +3537,11 @@ export declare enum ProjectOutcome {
3564
3537
  export declare enum ProjectType {
3565
3538
  GAME = "game",
3566
3539
  PUZZLE = "puzzle",
3567
- LESSON = "lesson"
3540
+ LESSON = "lesson",
3541
+ TABLE = "table"
3568
3542
  }
3569
3543
 
3570
- export declare interface Puzzle extends BaseProject<PuzzleId> {
3544
+ export declare interface Puzzle extends BaseProject {
3571
3545
  question: string;
3572
3546
  isHintSeen: boolean;
3573
3547
  solved: boolean;
@@ -3588,17 +3562,6 @@ declare const PUZZLE_CARD_STATE: {
3588
3562
 
3589
3563
  declare const PUZZLE_CARDS: "puzzle_cards";
3590
3564
 
3591
- export declare enum PuzzleId {
3592
- CUT_THE_STRIP = "cut-the-strip",
3593
- ONE_LINE_WONDER = "one-line-wonder",
3594
- FLIP_IT_UP = "flip-it-up",
3595
- CARS_IN_CHAOS = "cars-in-chaos",
3596
- REFLEKT = "reflekt",
3597
- MATCHSTICKS = "matchsticks",
3598
- NO_CROSS = "no-cross",
3599
- DISSECTION = "dissection"
3600
- }
3601
-
3602
3565
  export declare const PYTHON_NODE_TYPES: {
3603
3566
  readonly PPT_BASIC: "PPT_BASIC";
3604
3567
  readonly PPT_CONTENT: "PPT_CONTENT";
@@ -4465,8 +4428,6 @@ declare type TPreference = {
4465
4428
 
4466
4429
  declare type TPreferenceCategory = (typeof PREFERENCE_CATEGORY)[keyof typeof PREFERENCE_CATEGORY];
4467
4430
 
4468
- export declare type TProject = GameId | PuzzleId | LessonId;
4469
-
4470
4431
  declare type TPublish = (data: IPublishData) => boolean | undefined;
4471
4432
 
4472
4433
  declare type TPublishMouseMove = (points: IPointerData) => void;
@@ -4649,6 +4610,8 @@ declare type TSubscribe = (id: string, cb: (data: IActionData | IActionData[]) =
4649
4610
 
4650
4611
  declare type TSubscribeMouseMove = (id: string, callback: (data: IPointerData) => void) => void;
4651
4612
 
4613
+ export declare type TTableMode = 'random' | 'sequence' | 'advance' | 'infinite';
4614
+
4652
4615
  export declare type TTabSizes = 'xsmall' | 'small' | 'regular' | 'medium';
4653
4616
 
4654
4617
  export declare type TTabVariants = 'primary';