react-native-games 0.3.0 → 0.4.0

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 (387) hide show
  1. package/README.md +45 -32
  2. package/lib/module/games/balloon-blaster/BalloonBlaster.js +160 -75
  3. package/lib/module/games/balloon-blaster/BalloonBlaster.js.map +1 -1
  4. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js +183 -0
  5. package/lib/module/games/balloon-blaster/BalloonBlasterConstants.js.map +1 -0
  6. package/lib/module/games/balloon-blaster/BalloonBlasterService.js +152 -55
  7. package/lib/module/games/balloon-blaster/BalloonBlasterService.js.map +1 -1
  8. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js +108 -92
  9. package/lib/module/games/balloon-blaster/BalloonBlasterStore.js.map +1 -1
  10. package/lib/module/games/balloon-blaster/components/BalloonComponent.js +48 -65
  11. package/lib/module/games/balloon-blaster/components/BalloonComponent.js.map +1 -1
  12. package/lib/module/games/balloon-blaster/components/GameArea.js +7 -2
  13. package/lib/module/games/balloon-blaster/components/GameArea.js.map +1 -1
  14. package/lib/module/games/balloon-blaster/components/GameBackground.js +8 -83
  15. package/lib/module/games/balloon-blaster/components/GameBackground.js.map +1 -1
  16. package/lib/module/games/balloon-blaster/components/ParticleSystem.js +9 -6
  17. package/lib/module/games/balloon-blaster/components/ParticleSystem.js.map +1 -1
  18. package/lib/module/games/balloon-blaster/components/ScoreBoard.js +8 -16
  19. package/lib/module/games/balloon-blaster/components/ScoreBoard.js.map +1 -1
  20. package/lib/module/games/balloon-blaster/components/index.js +0 -1
  21. package/lib/module/games/balloon-blaster/components/index.js.map +1 -1
  22. package/lib/module/games/{fruit-slicer/FruitSlicer.js → fruit-ninja/FruitNinja.js} +68 -54
  23. package/lib/module/games/fruit-ninja/FruitNinja.js.map +1 -0
  24. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js +151 -0
  25. package/lib/module/games/fruit-ninja/FruitNinjaConstants.js.map +1 -0
  26. package/lib/module/games/{fruit-slicer/FruitSlicerService.js → fruit-ninja/FruitNinjaService.js} +13 -12
  27. package/lib/module/games/fruit-ninja/FruitNinjaService.js.map +1 -0
  28. package/lib/module/games/fruit-ninja/FruitNinjaStore.js +166 -0
  29. package/lib/module/games/fruit-ninja/FruitNinjaStore.js.map +1 -0
  30. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.js +1 -1
  31. package/lib/module/games/fruit-ninja/components/FruitComponent.js.map +1 -0
  32. package/lib/module/games/fruit-ninja/components/GameArea.js.map +1 -0
  33. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameBackground.js +198 -169
  34. package/lib/module/games/fruit-ninja/components/GameBackground.js.map +1 -0
  35. package/lib/module/games/fruit-ninja/components/GameOverModal.js.map +1 -0
  36. package/lib/module/games/fruit-ninja/components/ParticleSystem.js.map +1 -0
  37. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.js +8 -17
  38. package/lib/module/games/fruit-ninja/components/ScoreBoard.js.map +1 -0
  39. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.js +1 -1
  40. package/lib/module/games/fruit-ninja/components/SliceTrail.js.map +1 -0
  41. package/lib/module/games/{fruit-slicer → fruit-ninja}/components/index.js +0 -1
  42. package/lib/module/games/fruit-ninja/components/index.js.map +1 -0
  43. package/lib/module/games/maze-runner/MazeRunner.js +109 -91
  44. package/lib/module/games/maze-runner/MazeRunner.js.map +1 -1
  45. package/lib/module/games/maze-runner/MazeRunnerConstants.js +105 -0
  46. package/lib/module/games/maze-runner/MazeRunnerConstants.js.map +1 -0
  47. package/lib/module/games/maze-runner/MazeRunnerService.js +37 -14
  48. package/lib/module/games/maze-runner/MazeRunnerService.js.map +1 -1
  49. package/lib/module/games/maze-runner/components/EnhancedGameArea.js +5 -9
  50. package/lib/module/games/maze-runner/components/EnhancedGameArea.js.map +1 -1
  51. package/lib/module/games/maze-runner/components/GameBackground.js +151 -192
  52. package/lib/module/games/maze-runner/components/GameBackground.js.map +1 -1
  53. package/lib/module/games/maze-runner/components/ScoreBoard.js +8 -23
  54. package/lib/module/games/maze-runner/components/ScoreBoard.js.map +1 -1
  55. package/lib/module/games/maze-runner/components/index.js +0 -1
  56. package/lib/module/games/maze-runner/components/index.js.map +1 -1
  57. package/lib/module/games/popit-fidget/PopitFidget.js +293 -0
  58. package/lib/module/games/popit-fidget/PopitFidget.js.map +1 -0
  59. package/lib/module/games/popit-fidget/PopitFidgetConstants.js +116 -0
  60. package/lib/module/games/popit-fidget/PopitFidgetConstants.js.map +1 -0
  61. package/lib/module/games/popit-fidget/PopitFidgetService.js +191 -0
  62. package/lib/module/games/popit-fidget/PopitFidgetService.js.map +1 -0
  63. package/lib/module/games/popit-fidget/PopitFidgetStore.js +190 -0
  64. package/lib/module/games/popit-fidget/PopitFidgetStore.js.map +1 -0
  65. package/lib/module/games/popit-fidget/components/BubbleComponent.js +196 -0
  66. package/lib/module/games/popit-fidget/components/BubbleComponent.js.map +1 -0
  67. package/lib/module/games/popit-fidget/components/FidgetGrid.js +165 -0
  68. package/lib/module/games/popit-fidget/components/FidgetGrid.js.map +1 -0
  69. package/lib/module/games/popit-fidget/components/GameBackground.js +174 -0
  70. package/lib/module/games/popit-fidget/components/GameBackground.js.map +1 -0
  71. package/lib/module/games/popit-fidget/components/GameOverModal.js +132 -0
  72. package/lib/module/games/popit-fidget/components/GameOverModal.js.map +1 -0
  73. package/lib/module/games/popit-fidget/components/ParticleSystem.js +89 -0
  74. package/lib/module/games/popit-fidget/components/ParticleSystem.js.map +1 -0
  75. package/lib/module/games/popit-fidget/components/ScoreBoard.js +68 -0
  76. package/lib/module/games/popit-fidget/components/ScoreBoard.js.map +1 -0
  77. package/lib/module/games/popit-fidget/components/index.js +9 -0
  78. package/lib/module/games/popit-fidget/components/index.js.map +1 -0
  79. package/lib/module/games/{space-traveller/SpaceTraveller.js → space-fighter/SpaceFighter.js} +94 -70
  80. package/lib/module/games/space-fighter/SpaceFighter.js.map +1 -0
  81. package/lib/module/games/space-fighter/SpaceFighterConstants.js +110 -0
  82. package/lib/module/games/space-fighter/SpaceFighterConstants.js.map +1 -0
  83. package/lib/module/games/{space-traveller/SpaceTravellerService.js → space-fighter/SpaceFighterService.js} +18 -10
  84. package/lib/module/games/space-fighter/SpaceFighterService.js.map +1 -0
  85. package/lib/module/games/space-fighter/SpaceFighterStore.js +143 -0
  86. package/lib/module/games/space-fighter/SpaceFighterStore.js.map +1 -0
  87. package/lib/module/games/space-fighter/components/AsteroidComponent.js.map +1 -0
  88. package/lib/module/games/space-fighter/components/GameArea.js.map +1 -0
  89. package/lib/module/games/space-fighter/components/GameBackground.js.map +1 -0
  90. package/lib/module/games/space-fighter/components/GameOverModal.js.map +1 -0
  91. package/lib/module/games/space-fighter/components/ParticleComponent.js.map +1 -0
  92. package/lib/module/games/{space-traveller → space-fighter}/components/ScoreBoard.js +11 -19
  93. package/lib/module/games/space-fighter/components/ScoreBoard.js.map +1 -0
  94. package/lib/module/games/space-fighter/components/SettingsModal.js.map +1 -0
  95. package/lib/module/games/space-fighter/components/Spacecraft3D.js.map +1 -0
  96. package/lib/module/games/{space-traveller → space-fighter}/components/SpacecraftPath.js +1 -1
  97. package/lib/module/games/space-fighter/components/SpacecraftPath.js.map +1 -0
  98. package/lib/module/games/{space-traveller → space-fighter}/components/index.js +0 -1
  99. package/lib/module/games/space-fighter/components/index.js.map +1 -0
  100. package/lib/module/games/whack-a-mole/WhackAMole.js +273 -0
  101. package/lib/module/games/whack-a-mole/WhackAMole.js.map +1 -0
  102. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js +117 -0
  103. package/lib/module/games/whack-a-mole/WhackAMoleConstants.js.map +1 -0
  104. package/lib/module/games/whack-a-mole/WhackAMoleService.js +120 -0
  105. package/lib/module/games/whack-a-mole/WhackAMoleService.js.map +1 -0
  106. package/lib/module/games/whack-a-mole/WhackAMoleStore.js +159 -0
  107. package/lib/module/games/whack-a-mole/WhackAMoleStore.js.map +1 -0
  108. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameBackground.js +31 -91
  109. package/lib/module/games/whack-a-mole/components/GameBackground.js.map +1 -0
  110. package/lib/module/games/whack-a-mole/components/GameGrid.js +97 -0
  111. package/lib/module/games/whack-a-mole/components/GameGrid.js.map +1 -0
  112. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameHole.js +67 -54
  113. package/lib/module/games/whack-a-mole/components/GameHole.js.map +1 -0
  114. package/lib/module/games/{cat-popper → whack-a-mole}/components/GameOverModal.js +2 -2
  115. package/lib/module/games/whack-a-mole/components/GameOverModal.js.map +1 -0
  116. package/lib/module/games/{cat-popper/components/CatCharacter.js → whack-a-mole/components/MoleCharacter.js} +75 -115
  117. package/lib/module/games/whack-a-mole/components/MoleCharacter.js.map +1 -0
  118. package/lib/module/games/{cat-popper → whack-a-mole}/components/ScoreBoard.js +8 -16
  119. package/lib/module/games/whack-a-mole/components/ScoreBoard.js.map +1 -0
  120. package/lib/module/games/{cat-popper → whack-a-mole}/components/index.js +1 -2
  121. package/lib/module/games/whack-a-mole/components/index.js.map +1 -0
  122. package/lib/module/index.js +4 -3
  123. package/lib/module/index.js.map +1 -1
  124. package/lib/module/services/GamesConstants.js +36 -506
  125. package/lib/module/services/GamesConstants.js.map +1 -1
  126. package/lib/module/services/GamesService.js +22 -14
  127. package/lib/module/services/GamesService.js.map +1 -1
  128. package/lib/module/services/HapticsService.js +77 -0
  129. package/lib/module/services/HapticsService.js.map +1 -0
  130. package/lib/module/services/SoundsService.js +171 -0
  131. package/lib/module/services/SoundsService.js.map +1 -0
  132. package/lib/module/{games/balloon-blaster/components/GameControls.js → shared/helpers/GameControlButton.js} +39 -58
  133. package/lib/module/shared/helpers/GameControlButton.js.map +1 -0
  134. package/lib/module/shared/helpers/ResponsiveScoreBoard.js +81 -0
  135. package/lib/module/shared/helpers/ResponsiveScoreBoard.js.map +1 -0
  136. package/lib/module/shared/helpers/index.js +5 -0
  137. package/lib/module/shared/helpers/index.js.map +1 -0
  138. package/lib/module/shared/settings/SettingsService.js +18 -12
  139. package/lib/module/shared/settings/SettingsService.js.map +1 -1
  140. package/lib/typescript/src/games/balloon-blaster/BalloonBlaster.d.ts.map +1 -1
  141. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts +143 -0
  142. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterConstants.d.ts.map +1 -0
  143. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts +3 -1
  144. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterService.d.ts.map +1 -1
  145. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts +12 -2
  146. package/lib/typescript/src/games/balloon-blaster/BalloonBlasterStore.d.ts.map +1 -1
  147. package/lib/typescript/src/games/balloon-blaster/components/BalloonComponent.d.ts.map +1 -1
  148. package/lib/typescript/src/games/balloon-blaster/components/GameArea.d.ts.map +1 -1
  149. package/lib/typescript/src/games/balloon-blaster/components/GameBackground.d.ts.map +1 -1
  150. package/lib/typescript/src/games/balloon-blaster/components/ParticleSystem.d.ts.map +1 -1
  151. package/lib/typescript/src/games/balloon-blaster/components/ScoreBoard.d.ts.map +1 -1
  152. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts +0 -1
  153. package/lib/typescript/src/games/balloon-blaster/components/index.d.ts.map +1 -1
  154. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts +16 -0
  155. package/lib/typescript/src/games/fruit-ninja/FruitNinja.d.ts.map +1 -0
  156. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts +112 -0
  157. package/lib/typescript/src/games/fruit-ninja/FruitNinjaConstants.d.ts.map +1 -0
  158. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerService.d.ts → fruit-ninja/FruitNinjaService.d.ts} +4 -4
  159. package/lib/typescript/src/games/fruit-ninja/FruitNinjaService.d.ts.map +1 -0
  160. package/lib/typescript/src/games/{fruit-slicer/FruitSlicerStore.d.ts → fruit-ninja/FruitNinjaStore.d.ts} +12 -4
  161. package/lib/typescript/src/games/fruit-ninja/FruitNinjaStore.d.ts.map +1 -0
  162. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/FruitComponent.d.ts +1 -1
  163. package/lib/typescript/src/games/fruit-ninja/components/FruitComponent.d.ts.map +1 -0
  164. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/GameArea.d.ts +1 -1
  165. package/lib/typescript/src/games/fruit-ninja/components/GameArea.d.ts.map +1 -0
  166. package/lib/typescript/src/games/fruit-ninja/components/GameBackground.d.ts.map +1 -0
  167. package/lib/typescript/src/games/fruit-ninja/components/GameOverModal.d.ts.map +1 -0
  168. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.d.ts +1 -1
  169. package/lib/typescript/src/games/fruit-ninja/components/ParticleSystem.d.ts.map +1 -0
  170. package/lib/typescript/src/games/fruit-ninja/components/ScoreBoard.d.ts.map +1 -0
  171. package/lib/typescript/src/games/fruit-ninja/components/SliceTrail.d.ts.map +1 -0
  172. package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/index.d.ts +0 -1
  173. package/lib/typescript/src/games/fruit-ninja/components/index.d.ts.map +1 -0
  174. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts +1 -9
  175. package/lib/typescript/src/games/maze-runner/MazeRunner.d.ts.map +1 -1
  176. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts +41 -0
  177. package/lib/typescript/src/games/maze-runner/MazeRunnerConstants.d.ts.map +1 -0
  178. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts +4 -2
  179. package/lib/typescript/src/games/maze-runner/MazeRunnerService.d.ts.map +1 -1
  180. package/lib/typescript/src/games/maze-runner/components/EnhancedGameArea.d.ts.map +1 -1
  181. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts +2 -1
  182. package/lib/typescript/src/games/maze-runner/components/GameBackground.d.ts.map +1 -1
  183. package/lib/typescript/src/games/maze-runner/components/ScoreBoard.d.ts.map +1 -1
  184. package/lib/typescript/src/games/maze-runner/components/index.d.ts +0 -1
  185. package/lib/typescript/src/games/maze-runner/components/index.d.ts.map +1 -1
  186. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts +11 -0
  187. package/lib/typescript/src/games/popit-fidget/PopitFidget.d.ts.map +1 -0
  188. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts +45 -0
  189. package/lib/typescript/src/games/popit-fidget/PopitFidgetConstants.d.ts.map +1 -0
  190. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts +54 -0
  191. package/lib/typescript/src/games/popit-fidget/PopitFidgetService.d.ts.map +1 -0
  192. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts +40 -0
  193. package/lib/typescript/src/games/popit-fidget/PopitFidgetStore.d.ts.map +1 -0
  194. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts +12 -0
  195. package/lib/typescript/src/games/popit-fidget/components/BubbleComponent.d.ts.map +1 -0
  196. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts +12 -0
  197. package/lib/typescript/src/games/popit-fidget/components/FidgetGrid.d.ts.map +1 -0
  198. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts +9 -0
  199. package/lib/typescript/src/games/popit-fidget/components/GameBackground.d.ts.map +1 -0
  200. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts +9 -0
  201. package/lib/typescript/src/games/popit-fidget/components/GameOverModal.d.ts.map +1 -0
  202. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts +9 -0
  203. package/lib/typescript/src/games/popit-fidget/components/ParticleSystem.d.ts.map +1 -0
  204. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts +8 -0
  205. package/lib/typescript/src/games/popit-fidget/components/ScoreBoard.d.ts.map +1 -0
  206. package/lib/typescript/src/games/popit-fidget/components/index.d.ts +7 -0
  207. package/lib/typescript/src/games/popit-fidget/components/index.d.ts.map +1 -0
  208. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts +9 -0
  209. package/lib/typescript/src/games/space-fighter/SpaceFighter.d.ts.map +1 -0
  210. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts +71 -0
  211. package/lib/typescript/src/games/space-fighter/SpaceFighterConstants.d.ts.map +1 -0
  212. package/lib/typescript/src/games/{space-traveller/SpaceTravellerService.d.ts → space-fighter/SpaceFighterService.d.ts} +7 -4
  213. package/lib/typescript/src/games/space-fighter/SpaceFighterService.d.ts.map +1 -0
  214. package/lib/typescript/src/games/{space-traveller/SpaceTravellerStore.d.ts → space-fighter/SpaceFighterStore.d.ts} +12 -4
  215. package/lib/typescript/src/games/space-fighter/SpaceFighterStore.d.ts.map +1 -0
  216. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/AsteroidComponent.d.ts +1 -1
  217. package/lib/typescript/src/games/space-fighter/components/AsteroidComponent.d.ts.map +1 -0
  218. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/GameArea.d.ts +1 -1
  219. package/lib/typescript/src/games/space-fighter/components/GameArea.d.ts.map +1 -0
  220. package/lib/typescript/src/games/space-fighter/components/GameBackground.d.ts.map +1 -0
  221. package/lib/typescript/src/games/space-fighter/components/GameOverModal.d.ts.map +1 -0
  222. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/ParticleComponent.d.ts +1 -1
  223. package/lib/typescript/src/games/space-fighter/components/ParticleComponent.d.ts.map +1 -0
  224. package/lib/typescript/src/games/space-fighter/components/ScoreBoard.d.ts.map +1 -0
  225. package/lib/typescript/src/games/space-fighter/components/SettingsModal.d.ts.map +1 -0
  226. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/Spacecraft3D.d.ts +1 -1
  227. package/lib/typescript/src/games/space-fighter/components/Spacecraft3D.d.ts.map +1 -0
  228. package/lib/typescript/src/games/space-fighter/components/SpacecraftPath.d.ts.map +1 -0
  229. package/lib/typescript/src/games/{space-traveller → space-fighter}/components/index.d.ts +0 -1
  230. package/lib/typescript/src/games/space-fighter/components/index.d.ts.map +1 -0
  231. package/lib/typescript/src/games/{cat-popper/CatPopper.d.ts → whack-a-mole/WhackAMole.d.ts} +4 -4
  232. package/lib/typescript/src/games/whack-a-mole/WhackAMole.d.ts.map +1 -0
  233. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts +79 -0
  234. package/lib/typescript/src/games/whack-a-mole/WhackAMoleConstants.d.ts.map +1 -0
  235. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts +33 -0
  236. package/lib/typescript/src/games/whack-a-mole/WhackAMoleService.d.ts.map +1 -0
  237. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts +41 -0
  238. package/lib/typescript/src/games/whack-a-mole/WhackAMoleStore.d.ts.map +1 -0
  239. package/lib/typescript/src/games/whack-a-mole/components/GameBackground.d.ts.map +1 -0
  240. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameGrid.d.ts +2 -2
  241. package/lib/typescript/src/games/whack-a-mole/components/GameGrid.d.ts.map +1 -0
  242. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/GameHole.d.ts +3 -2
  243. package/lib/typescript/src/games/whack-a-mole/components/GameHole.d.ts.map +1 -0
  244. package/lib/typescript/src/games/{fruit-slicer → whack-a-mole}/components/GameOverModal.d.ts.map +1 -1
  245. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts +7 -0
  246. package/lib/typescript/src/games/whack-a-mole/components/MoleCharacter.d.ts.map +1 -0
  247. package/lib/typescript/src/games/whack-a-mole/components/ScoreBoard.d.ts.map +1 -0
  248. package/lib/typescript/src/games/{cat-popper → whack-a-mole}/components/index.d.ts +1 -2
  249. package/lib/typescript/src/games/whack-a-mole/components/index.d.ts.map +1 -0
  250. package/lib/typescript/src/index.d.ts +4 -3
  251. package/lib/typescript/src/index.d.ts.map +1 -1
  252. package/lib/typescript/src/services/GamesConstants.d.ts +30 -318
  253. package/lib/typescript/src/services/GamesConstants.d.ts.map +1 -1
  254. package/lib/typescript/src/services/GamesService.d.ts +1 -0
  255. package/lib/typescript/src/services/GamesService.d.ts.map +1 -1
  256. package/lib/typescript/src/services/HapticsService.d.ts +16 -0
  257. package/lib/typescript/src/services/HapticsService.d.ts.map +1 -0
  258. package/lib/typescript/src/services/SoundsService.d.ts +154 -0
  259. package/lib/typescript/src/services/SoundsService.d.ts.map +1 -0
  260. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts +17 -0
  261. package/lib/typescript/src/shared/helpers/GameControlButton.d.ts.map +1 -0
  262. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts +42 -0
  263. package/lib/typescript/src/shared/helpers/ResponsiveScoreBoard.d.ts.map +1 -0
  264. package/lib/typescript/src/shared/helpers/index.d.ts +4 -0
  265. package/lib/typescript/src/shared/helpers/index.d.ts.map +1 -0
  266. package/lib/typescript/src/shared/settings/SettingsService.d.ts +2 -1
  267. package/lib/typescript/src/shared/settings/SettingsService.d.ts.map +1 -1
  268. package/package.json +9 -6
  269. package/lib/module/games/balloon-blaster/components/GameControls.js.map +0 -1
  270. package/lib/module/games/cat-popper/CatPopper.js +0 -230
  271. package/lib/module/games/cat-popper/CatPopper.js.map +0 -1
  272. package/lib/module/games/cat-popper/CatPopperService.js +0 -100
  273. package/lib/module/games/cat-popper/CatPopperService.js.map +0 -1
  274. package/lib/module/games/cat-popper/CatPopperStore.js +0 -113
  275. package/lib/module/games/cat-popper/CatPopperStore.js.map +0 -1
  276. package/lib/module/games/cat-popper/components/CatCharacter.js.map +0 -1
  277. package/lib/module/games/cat-popper/components/GameBackground.js.map +0 -1
  278. package/lib/module/games/cat-popper/components/GameControls.js +0 -230
  279. package/lib/module/games/cat-popper/components/GameControls.js.map +0 -1
  280. package/lib/module/games/cat-popper/components/GameGrid.js +0 -66
  281. package/lib/module/games/cat-popper/components/GameGrid.js.map +0 -1
  282. package/lib/module/games/cat-popper/components/GameHole.js.map +0 -1
  283. package/lib/module/games/cat-popper/components/GameOverModal.js.map +0 -1
  284. package/lib/module/games/cat-popper/components/ScoreBoard.js.map +0 -1
  285. package/lib/module/games/cat-popper/components/index.js.map +0 -1
  286. package/lib/module/games/fruit-slicer/FruitSlicer.js.map +0 -1
  287. package/lib/module/games/fruit-slicer/FruitSlicerService.js.map +0 -1
  288. package/lib/module/games/fruit-slicer/FruitSlicerStore.js +0 -156
  289. package/lib/module/games/fruit-slicer/FruitSlicerStore.js.map +0 -1
  290. package/lib/module/games/fruit-slicer/components/FruitComponent.js.map +0 -1
  291. package/lib/module/games/fruit-slicer/components/GameArea.js.map +0 -1
  292. package/lib/module/games/fruit-slicer/components/GameBackground.js.map +0 -1
  293. package/lib/module/games/fruit-slicer/components/GameControls.js +0 -230
  294. package/lib/module/games/fruit-slicer/components/GameControls.js.map +0 -1
  295. package/lib/module/games/fruit-slicer/components/GameOverModal.js.map +0 -1
  296. package/lib/module/games/fruit-slicer/components/ParticleSystem.js.map +0 -1
  297. package/lib/module/games/fruit-slicer/components/ScoreBoard.js.map +0 -1
  298. package/lib/module/games/fruit-slicer/components/SliceTrail.js.map +0 -1
  299. package/lib/module/games/fruit-slicer/components/index.js.map +0 -1
  300. package/lib/module/games/maze-runner/components/GameControls.js +0 -129
  301. package/lib/module/games/maze-runner/components/GameControls.js.map +0 -1
  302. package/lib/module/games/space-traveller/SpaceTraveller.js.map +0 -1
  303. package/lib/module/games/space-traveller/SpaceTravellerService.js.map +0 -1
  304. package/lib/module/games/space-traveller/SpaceTravellerStore.js +0 -139
  305. package/lib/module/games/space-traveller/SpaceTravellerStore.js.map +0 -1
  306. package/lib/module/games/space-traveller/components/AsteroidComponent.js.map +0 -1
  307. package/lib/module/games/space-traveller/components/GameArea.js.map +0 -1
  308. package/lib/module/games/space-traveller/components/GameBackground.js.map +0 -1
  309. package/lib/module/games/space-traveller/components/GameControls.js +0 -177
  310. package/lib/module/games/space-traveller/components/GameControls.js.map +0 -1
  311. package/lib/module/games/space-traveller/components/GameOverModal.js.map +0 -1
  312. package/lib/module/games/space-traveller/components/ParticleComponent.js.map +0 -1
  313. package/lib/module/games/space-traveller/components/ScoreBoard.js.map +0 -1
  314. package/lib/module/games/space-traveller/components/SettingsModal.js.map +0 -1
  315. package/lib/module/games/space-traveller/components/Spacecraft3D.js.map +0 -1
  316. package/lib/module/games/space-traveller/components/SpacecraftPath.js.map +0 -1
  317. package/lib/module/games/space-traveller/components/index.js.map +0 -1
  318. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts +0 -10
  319. package/lib/typescript/src/games/balloon-blaster/components/GameControls.d.ts.map +0 -1
  320. package/lib/typescript/src/games/cat-popper/CatPopper.d.ts.map +0 -1
  321. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts +0 -32
  322. package/lib/typescript/src/games/cat-popper/CatPopperService.d.ts.map +0 -1
  323. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts +0 -21
  324. package/lib/typescript/src/games/cat-popper/CatPopperStore.d.ts.map +0 -1
  325. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts +0 -7
  326. package/lib/typescript/src/games/cat-popper/components/CatCharacter.d.ts.map +0 -1
  327. package/lib/typescript/src/games/cat-popper/components/GameBackground.d.ts.map +0 -1
  328. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts +0 -10
  329. package/lib/typescript/src/games/cat-popper/components/GameControls.d.ts.map +0 -1
  330. package/lib/typescript/src/games/cat-popper/components/GameGrid.d.ts.map +0 -1
  331. package/lib/typescript/src/games/cat-popper/components/GameHole.d.ts.map +0 -1
  332. package/lib/typescript/src/games/cat-popper/components/GameOverModal.d.ts.map +0 -1
  333. package/lib/typescript/src/games/cat-popper/components/ScoreBoard.d.ts.map +0 -1
  334. package/lib/typescript/src/games/cat-popper/components/index.d.ts.map +0 -1
  335. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts +0 -16
  336. package/lib/typescript/src/games/fruit-slicer/FruitSlicer.d.ts.map +0 -1
  337. package/lib/typescript/src/games/fruit-slicer/FruitSlicerService.d.ts.map +0 -1
  338. package/lib/typescript/src/games/fruit-slicer/FruitSlicerStore.d.ts.map +0 -1
  339. package/lib/typescript/src/games/fruit-slicer/components/FruitComponent.d.ts.map +0 -1
  340. package/lib/typescript/src/games/fruit-slicer/components/GameArea.d.ts.map +0 -1
  341. package/lib/typescript/src/games/fruit-slicer/components/GameBackground.d.ts.map +0 -1
  342. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts +0 -10
  343. package/lib/typescript/src/games/fruit-slicer/components/GameControls.d.ts.map +0 -1
  344. package/lib/typescript/src/games/fruit-slicer/components/ParticleSystem.d.ts.map +0 -1
  345. package/lib/typescript/src/games/fruit-slicer/components/ScoreBoard.d.ts.map +0 -1
  346. package/lib/typescript/src/games/fruit-slicer/components/SliceTrail.d.ts.map +0 -1
  347. package/lib/typescript/src/games/fruit-slicer/components/index.d.ts.map +0 -1
  348. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts +0 -10
  349. package/lib/typescript/src/games/maze-runner/components/GameControls.d.ts.map +0 -1
  350. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts +0 -17
  351. package/lib/typescript/src/games/space-traveller/SpaceTraveller.d.ts.map +0 -1
  352. package/lib/typescript/src/games/space-traveller/SpaceTravellerService.d.ts.map +0 -1
  353. package/lib/typescript/src/games/space-traveller/SpaceTravellerStore.d.ts.map +0 -1
  354. package/lib/typescript/src/games/space-traveller/components/AsteroidComponent.d.ts.map +0 -1
  355. package/lib/typescript/src/games/space-traveller/components/GameArea.d.ts.map +0 -1
  356. package/lib/typescript/src/games/space-traveller/components/GameBackground.d.ts.map +0 -1
  357. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts +0 -10
  358. package/lib/typescript/src/games/space-traveller/components/GameControls.d.ts.map +0 -1
  359. package/lib/typescript/src/games/space-traveller/components/GameOverModal.d.ts.map +0 -1
  360. package/lib/typescript/src/games/space-traveller/components/ParticleComponent.d.ts.map +0 -1
  361. package/lib/typescript/src/games/space-traveller/components/ScoreBoard.d.ts.map +0 -1
  362. package/lib/typescript/src/games/space-traveller/components/SettingsModal.d.ts.map +0 -1
  363. package/lib/typescript/src/games/space-traveller/components/Spacecraft3D.d.ts.map +0 -1
  364. package/lib/typescript/src/games/space-traveller/components/SpacecraftPath.d.ts.map +0 -1
  365. package/lib/typescript/src/games/space-traveller/components/index.d.ts.map +0 -1
  366. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameArea.js +0 -0
  367. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/GameOverModal.js +0 -0
  368. /package/lib/module/games/{fruit-slicer → fruit-ninja}/components/ParticleSystem.js +0 -0
  369. /package/lib/module/games/{space-traveller → space-fighter}/components/AsteroidComponent.js +0 -0
  370. /package/lib/module/games/{space-traveller → space-fighter}/components/GameArea.js +0 -0
  371. /package/lib/module/games/{space-traveller → space-fighter}/components/GameBackground.js +0 -0
  372. /package/lib/module/games/{space-traveller → space-fighter}/components/GameOverModal.js +0 -0
  373. /package/lib/module/games/{space-traveller → space-fighter}/components/ParticleComponent.js +0 -0
  374. /package/lib/module/games/{space-traveller → space-fighter}/components/SettingsModal.js +0 -0
  375. /package/lib/module/games/{space-traveller → space-fighter}/components/Spacecraft3D.js +0 -0
  376. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameBackground.d.ts +0 -0
  377. /package/lib/typescript/src/games/{cat-popper → fruit-ninja}/components/GameOverModal.d.ts +0 -0
  378. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/ScoreBoard.d.ts +0 -0
  379. /package/lib/typescript/src/games/{fruit-slicer → fruit-ninja}/components/SliceTrail.d.ts +0 -0
  380. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameBackground.d.ts +0 -0
  381. /package/lib/typescript/src/games/{fruit-slicer → space-fighter}/components/GameOverModal.d.ts +0 -0
  382. /package/lib/typescript/src/games/{cat-popper → space-fighter}/components/ScoreBoard.d.ts +0 -0
  383. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SettingsModal.d.ts +0 -0
  384. /package/lib/typescript/src/games/{space-traveller → space-fighter}/components/SpacecraftPath.d.ts +0 -0
  385. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameBackground.d.ts +0 -0
  386. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/GameOverModal.d.ts +0 -0
  387. /package/lib/typescript/src/games/{space-traveller → whack-a-mole}/components/ScoreBoard.d.ts +0 -0
@@ -1,34 +1,42 @@
1
1
  "use strict";
2
2
 
3
+ import { produce } from 'immer';
3
4
  export const gamesList = [{
4
- id: 'cat-popper',
5
- title: 'Cat Popper',
6
- description: 'Classic cat popper game with fun animations and sound effects',
5
+ id: 'whack-a-mole',
6
+ title: 'Whack A Mole',
7
+ description: 'Whack cute cats popping from holes - fast reflexes needed!',
7
8
  icon: 'hammer',
8
9
  color: '#ff6b6b'
9
10
  }, {
10
- id: 'fruit-slicer',
11
- title: 'Fruit Slicer',
12
- description: 'Slice fruits with smooth gesture controls and particle effects',
11
+ id: 'popit-fidget',
12
+ title: 'Popit Fidget',
13
+ description: 'Pop satisfying bubbles in this relaxing fidget toy game',
14
+ icon: 'ellipse',
15
+ color: '#6c5ce7'
16
+ }, {
17
+ id: 'fruit-ninja',
18
+ title: 'Fruit Ninja',
19
+ description: 'Slice flying fruits with finger swipes - avoid the bombs!',
13
20
  icon: 'cut',
14
21
  color: '#4ecdc4'
22
+ }, {
23
+ id: 'space-fighter',
24
+ title: 'Space Fighter',
25
+ description: 'Pilot spaceship through asteroid fields in endless space',
26
+ icon: 'rocket',
27
+ color: '#45b7d1'
15
28
  }, {
16
29
  id: 'balloon-blaster',
17
30
  title: 'Balloon Blaster',
18
- description: 'Pop colorful balloons rising from the bottom with gesture controls',
31
+ description: 'Pop rising balloons before they escape - quick taps win!',
19
32
  icon: 'balloon',
20
33
  color: '#ff9ff3'
21
- }, {
22
- id: 'space-traveller',
23
- title: 'Space Traveller',
24
- description: 'Navigate through space avoiding asteroids in this endless travelling',
25
- icon: 'rocket',
26
- color: '#45b7d1'
27
34
  }, {
28
35
  id: 'maze-runner',
29
36
  title: 'Maze Runner',
30
- description: 'Guide the ball through complex mazes with physics-based gameplay',
37
+ description: 'Navigate ball through mazes using tilt and physics controls',
31
38
  icon: 'trail-sign',
32
39
  color: '#96ceb4'
33
40
  }];
41
+ export const immerMiddleware = config => (set, get, api) => config(fn => set(produce(fn)), get, api);
34
42
  //# sourceMappingURL=GamesService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["gamesList","id","title","description","icon","color"],"sourceRoot":"../../../src","sources":["services/GamesService.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG,CACvB;EACEC,EAAE,EAAE,YAAY;EAChBC,KAAK,EAAE,YAAY;EACnBC,WAAW,EAAE,+DAA+D;EAC5EC,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAE,cAAc;EACrBC,WAAW,EAAE,gEAAgE;EAC7EC,IAAI,EAAE,KAAK;EACXC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAE,iBAAiB;EACxBC,WAAW,EAAE,oEAAoE;EACjFC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAE,iBAAiB;EACxBC,WAAW,EAAE,sEAAsE;EACnFC,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,aAAa;EACjBC,KAAK,EAAE,aAAa;EACpBC,WAAW,EAAE,kEAAkE;EAC/EC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE;AACT,CAAC,CACF","ignoreList":[]}
1
+ {"version":3,"names":["produce","gamesList","id","title","description","icon","color","immerMiddleware","config","set","get","api","fn"],"sourceRoot":"../../../src","sources":["services/GamesService.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,OAAO,MAAMC,SAAS,GAAG,CACvB;EACEC,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAE,cAAc;EACrBC,WAAW,EAAE,4DAA4D;EACzEC,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,cAAc;EAClBC,KAAK,EAAE,cAAc;EACrBC,WAAW,EAAE,yDAAyD;EACtEC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,aAAa;EACjBC,KAAK,EAAE,aAAa;EACpBC,WAAW,EAAE,2DAA2D;EACxEC,IAAI,EAAE,KAAK;EACXC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,eAAe;EACnBC,KAAK,EAAE,eAAe;EACtBC,WAAW,EAAE,0DAA0D;EACvEC,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,iBAAiB;EACrBC,KAAK,EAAE,iBAAiB;EACxBC,WAAW,EAAE,0DAA0D;EACvEC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAC,EACD;EACEJ,EAAE,EAAE,aAAa;EACjBC,KAAK,EAAE,aAAa;EACpBC,WAAW,EAAE,6DAA6D;EAC1EC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE;AACT,CAAC,CACF;AAED,OAAO,MAAMC,eAAe,GAAIC,MAAW,IAAK,CAACC,GAAQ,EAAEC,GAAQ,EAAEC,GAAQ,KAAKH,MAAM,CAAEI,EAAO,IAAKH,GAAG,CAACT,OAAO,CAACY,EAAE,CAAC,CAAC,EAAEF,GAAG,EAAEC,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import * as Haptics from 'expo-haptics';
4
+ export let HapticType = /*#__PURE__*/function (HapticType) {
5
+ HapticType["LIGHT"] = "light";
6
+ HapticType["MEDIUM"] = "medium";
7
+ HapticType["HEAVY"] = "heavy";
8
+ HapticType["SUCCESS"] = "success";
9
+ HapticType["WARNING"] = "warning";
10
+ HapticType["ERROR"] = "error";
11
+ HapticType["SELECTION"] = "selection";
12
+ return HapticType;
13
+ }({});
14
+
15
+ // Cache haptics availability to avoid repeated failed attempts
16
+ let hapticsDisabled = false;
17
+
18
+ /**
19
+ * Play haptic feedback with robust error handling
20
+ * @param type - Type of haptic feedback to play
21
+ * @param hapticEnabled - Whether haptic feedback is enabled in settings
22
+ */
23
+ export const playHaptic = (type, hapticEnabled = false) => {
24
+ // Early return if haptics are disabled in settings or previously failed
25
+ if (!hapticEnabled || hapticsDisabled) return;
26
+ try {
27
+ switch (type) {
28
+ case HapticType.LIGHT:
29
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).catch(error => {
30
+ console.warn('Light haptic failed:', error);
31
+ hapticsDisabled = true;
32
+ });
33
+ break;
34
+ case HapticType.MEDIUM:
35
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium).catch(error => {
36
+ console.warn('Medium haptic failed:', error);
37
+ hapticsDisabled = true;
38
+ });
39
+ break;
40
+ case HapticType.HEAVY:
41
+ Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy).catch(error => {
42
+ console.warn('Heavy haptic failed:', error);
43
+ hapticsDisabled = true;
44
+ });
45
+ break;
46
+ case HapticType.SUCCESS:
47
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success).catch(error => {
48
+ console.warn('Success haptic failed:', error);
49
+ hapticsDisabled = true;
50
+ });
51
+ break;
52
+ case HapticType.WARNING:
53
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Warning).catch(error => {
54
+ console.warn('Warning haptic failed:', error);
55
+ hapticsDisabled = true;
56
+ });
57
+ break;
58
+ case HapticType.ERROR:
59
+ Haptics.notificationAsync(Haptics.NotificationFeedbackType.Error).catch(error => {
60
+ console.warn('Error haptic failed:', error);
61
+ hapticsDisabled = true;
62
+ });
63
+ break;
64
+ case HapticType.SELECTION:
65
+ Haptics.selectionAsync().catch(error => {
66
+ console.warn('Selection haptic failed:', error);
67
+ hapticsDisabled = true;
68
+ });
69
+ break;
70
+ }
71
+ } catch (error) {
72
+ // Synchronous error handling - disable haptics completely
73
+ console.warn('Haptic feedback failed, disabling haptics:', error);
74
+ hapticsDisabled = true;
75
+ }
76
+ };
77
+ //# sourceMappingURL=HapticsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Haptics","HapticType","hapticsDisabled","playHaptic","type","hapticEnabled","LIGHT","impactAsync","ImpactFeedbackStyle","Light","catch","error","console","warn","MEDIUM","Medium","HEAVY","Heavy","SUCCESS","notificationAsync","NotificationFeedbackType","Success","WARNING","Warning","ERROR","Error","SELECTION","selectionAsync"],"sourceRoot":"../../../src","sources":["services/HapticsService.ts"],"mappings":";;AAAA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;;AAUtB;AACA,IAAIC,eAAe,GAAG,KAAK;;AAE3B;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGA,CAACC,IAAgB,EAAEC,aAAsB,GAAG,KAAK,KAAW;EACpF;EACA,IAAI,CAACA,aAAa,IAAIH,eAAe,EAAE;EAEvC,IAAI;IACF,QAAQE,IAAI;MACV,KAAKH,UAAU,CAACK,KAAK;QACnBN,OAAO,CAACO,WAAW,CAACP,OAAO,CAACQ,mBAAmB,CAACC,KAAK,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;UACtEC,OAAO,CAACC,IAAI,CAAC,sBAAsB,EAAEF,KAAK,CAAC;UAC3CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACa,MAAM;QACpBd,OAAO,CAACO,WAAW,CAACP,OAAO,CAACQ,mBAAmB,CAACO,MAAM,CAAC,CAACL,KAAK,CAAEC,KAAK,IAAK;UACvEC,OAAO,CAACC,IAAI,CAAC,uBAAuB,EAAEF,KAAK,CAAC;UAC5CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACe,KAAK;QACnBhB,OAAO,CAACO,WAAW,CAACP,OAAO,CAACQ,mBAAmB,CAACS,KAAK,CAAC,CAACP,KAAK,CAAEC,KAAK,IAAK;UACtEC,OAAO,CAACC,IAAI,CAAC,sBAAsB,EAAEF,KAAK,CAAC;UAC3CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACiB,OAAO;QACrBlB,OAAO,CAACmB,iBAAiB,CAACnB,OAAO,CAACoB,wBAAwB,CAACC,OAAO,CAAC,CAACX,KAAK,CAAEC,KAAK,IAAK;UACnFC,OAAO,CAACC,IAAI,CAAC,wBAAwB,EAAEF,KAAK,CAAC;UAC7CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACqB,OAAO;QACrBtB,OAAO,CAACmB,iBAAiB,CAACnB,OAAO,CAACoB,wBAAwB,CAACG,OAAO,CAAC,CAACb,KAAK,CAAEC,KAAK,IAAK;UACnFC,OAAO,CAACC,IAAI,CAAC,wBAAwB,EAAEF,KAAK,CAAC;UAC7CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACuB,KAAK;QACnBxB,OAAO,CAACmB,iBAAiB,CAACnB,OAAO,CAACoB,wBAAwB,CAACK,KAAK,CAAC,CAACf,KAAK,CAAEC,KAAK,IAAK;UACjFC,OAAO,CAACC,IAAI,CAAC,sBAAsB,EAAEF,KAAK,CAAC;UAC3CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;MACF,KAAKD,UAAU,CAACyB,SAAS;QACvB1B,OAAO,CAAC2B,cAAc,CAAC,CAAC,CAACjB,KAAK,CAAEC,KAAK,IAAK;UACxCC,OAAO,CAACC,IAAI,CAAC,0BAA0B,EAAEF,KAAK,CAAC;UAC/CT,eAAe,GAAG,IAAI;QACxB,CAAC,CAAC;QACF;IACJ;EACF,CAAC,CAAC,OAAOS,KAAK,EAAE;IACd;IACAC,OAAO,CAACC,IAAI,CAAC,4CAA4C,EAAEF,KAAK,CAAC;IACjET,eAAe,GAAG,IAAI;EACxB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+
3
+ import * as Speech from 'expo-speech';
4
+ export const playSound = (soundConfig, soundEnabled) => {
5
+ if (!soundEnabled) return;
6
+ Speech.speak(soundConfig.text, {
7
+ pitch: soundConfig.pitch || 1.0,
8
+ rate: soundConfig.rate || 1.5,
9
+ language: soundConfig.language || 'en'
10
+ });
11
+ };
12
+ export const stopAllSounds = () => {
13
+ Speech.stop();
14
+ };
15
+ export const isSpeechAvailable = async () => {
16
+ try {
17
+ return await Speech.isSpeakingAsync();
18
+ } catch {
19
+ return false;
20
+ }
21
+ };
22
+
23
+ // Predefined sound configurations for common game events
24
+ export const GAME_SOUNDS = {
25
+ // Generic game sounds
26
+ POP: {
27
+ text: 'Pop!',
28
+ pitch: 1.6,
29
+ rate: 2.2
30
+ },
31
+ SWOOSH: {
32
+ text: 'Swoosh!',
33
+ pitch: 1.5,
34
+ rate: 2.5
35
+ },
36
+ BOOM: {
37
+ text: 'Boom!',
38
+ pitch: 0.8,
39
+ rate: 1.5
40
+ },
41
+ WHOOSH: {
42
+ text: 'Whoosh',
43
+ pitch: 0.7,
44
+ rate: 1.8
45
+ },
46
+ // Game state sounds
47
+ GAME_START: {
48
+ text: 'Game started!',
49
+ pitch: 1.2,
50
+ rate: 1.8
51
+ },
52
+ GAME_OVER: {
53
+ text: 'Game over!',
54
+ pitch: 1.0,
55
+ rate: 1.5
56
+ },
57
+ TIME_UP: {
58
+ text: 'Time up! Game over!',
59
+ pitch: 1.0,
60
+ rate: 1.5
61
+ },
62
+ WELL_DONE: {
63
+ text: 'Well done!',
64
+ pitch: 1.3,
65
+ rate: 1.6
66
+ },
67
+ CONGRATULATIONS: {
68
+ text: 'Congratulations!',
69
+ pitch: 1.2,
70
+ rate: 1.6
71
+ },
72
+ // Specific game sounds
73
+ BUBBLE_POPPER: {
74
+ START: {
75
+ text: 'Bubble Popper started!',
76
+ pitch: 1.2,
77
+ rate: 1.8
78
+ },
79
+ COMPLETE: {
80
+ text: 'All bubbles popped! Well done!',
81
+ pitch: 1.3,
82
+ rate: 1.6
83
+ },
84
+ POP: {
85
+ text: 'Pop!',
86
+ pitch: 1.6,
87
+ rate: 2.2
88
+ }
89
+ },
90
+ WHACK_A_MOLE: {
91
+ HIT: {
92
+ text: 'Pop!',
93
+ pitch: 1.8,
94
+ rate: 2.0
95
+ },
96
+ MISS: {
97
+ text: 'Whoosh',
98
+ pitch: 0.7,
99
+ rate: 1.8
100
+ }
101
+ },
102
+ BALLOON_BLASTER: {
103
+ POP: {
104
+ text: 'Pop!',
105
+ pitch: 1.5,
106
+ rate: 2.5
107
+ },
108
+ BOMB: {
109
+ text: 'Boom!',
110
+ pitch: 0.8,
111
+ rate: 1.5
112
+ },
113
+ BONUS: {
114
+ text: 'bonus life!',
115
+ pitch: 1.8,
116
+ rate: 2.0
117
+ }
118
+ },
119
+ FRUIT_NINJA: {
120
+ SLICE: {
121
+ text: 'Swoosh!',
122
+ pitch: 1.5,
123
+ rate: 2.5
124
+ },
125
+ BOMB: {
126
+ text: 'Boom!',
127
+ pitch: 0.8,
128
+ rate: 1.5
129
+ },
130
+ BONUS: {
131
+ text: 'bonus life!',
132
+ pitch: 1.8,
133
+ rate: 2.0
134
+ }
135
+ },
136
+ MAZE_RUNNER: {
137
+ START: {
138
+ text: 'Maze started! Navigate to the exit!',
139
+ pitch: 1.0,
140
+ rate: 1.8
141
+ },
142
+ COMPLETE: {
143
+ text: 'Congratulations! Maze completed!',
144
+ pitch: 1.2,
145
+ rate: 1.6
146
+ },
147
+ STOP: {
148
+ text: 'Maze stopped!',
149
+ pitch: 1.0,
150
+ rate: 1.5
151
+ }
152
+ },
153
+ SPACE_FIGHTER: {
154
+ START: {
155
+ text: 'Mission started! Navigate through the asteroid field!',
156
+ pitch: 1.0,
157
+ rate: 1.8
158
+ },
159
+ SUCCESS: {
160
+ text: 'Nice!',
161
+ pitch: 1.8,
162
+ rate: 2.0
163
+ },
164
+ COLLISION: {
165
+ text: 'Ouch!',
166
+ pitch: 0.8,
167
+ rate: 1.5
168
+ }
169
+ }
170
+ };
171
+ //# sourceMappingURL=SoundsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Speech","playSound","soundConfig","soundEnabled","speak","text","pitch","rate","language","stopAllSounds","stop","isSpeechAvailable","isSpeakingAsync","GAME_SOUNDS","POP","SWOOSH","BOOM","WHOOSH","GAME_START","GAME_OVER","TIME_UP","WELL_DONE","CONGRATULATIONS","BUBBLE_POPPER","START","COMPLETE","WHACK_A_MOLE","HIT","MISS","BALLOON_BLASTER","BOMB","BONUS","FRUIT_NINJA","SLICE","MAZE_RUNNER","STOP","SPACE_FIGHTER","SUCCESS","COLLISION"],"sourceRoot":"../../../src","sources":["services/SoundsService.ts"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,21 @@
1
1
  "use strict";
2
2
 
3
- import React, { useRef, useEffect } from 'react';
3
+ import React, { useRef, useEffect, useMemo } from 'react';
4
4
  import { View, TouchableOpacity, Text, StyleSheet, Animated } from 'react-native';
5
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
- export const GameControls = ({
6
+ export const GameControlButton = /*#__PURE__*/React.memo(({
7
7
  isPlaying,
8
8
  gameOver,
9
9
  onStartGame,
10
- onStopGame
10
+ onStopGame,
11
+ startButtonText = 'START GAME',
12
+ stopButtonText = 'STOP GAME',
13
+ startButtonSubtext = 'Begin playing!',
14
+ stopButtonSubtext = 'End current game',
15
+ startButtonColor = '#10b981',
16
+ stopButtonColor = '#dc2626',
17
+ startButtonBorderColor = '#34d399',
18
+ stopButtonBorderColor = '#f87171'
11
19
  }) => {
12
20
  const scaleAnim = useRef(new Animated.Value(1)).current;
13
21
  const pulseAnim = useRef(new Animated.Value(1)).current;
@@ -62,10 +70,12 @@ export const GameControls = ({
62
70
  useNativeDriver: true
63
71
  }).start();
64
72
  };
65
- const glowColor = glowAnim.interpolate({
73
+
74
+ // Memoize glow color interpolation to prevent continuous re-renders
75
+ const glowColor = useMemo(() => glowAnim.interpolate({
66
76
  inputRange: [0, 1],
67
- outputRange: ['rgba(239, 68, 68, 0.3)', 'rgba(239, 68, 68, 0.8)']
68
- });
77
+ outputRange: [`${stopButtonColor}30`, `${stopButtonColor}CC`]
78
+ }), [glowAnim, stopButtonColor]);
69
79
  return /*#__PURE__*/_jsxs(View, {
70
80
  style: styles.gameControls,
71
81
  children: [!isPlaying && !gameOver && /*#__PURE__*/_jsx(Animated.View, {
@@ -75,7 +85,10 @@ export const GameControls = ({
75
85
  }]
76
86
  }],
77
87
  children: /*#__PURE__*/_jsx(TouchableOpacity, {
78
- style: [styles.startButton],
88
+ style: [styles.button, styles.startButton, {
89
+ backgroundColor: startButtonColor,
90
+ borderColor: startButtonBorderColor
91
+ }],
79
92
  onPress: onStartGame,
80
93
  onPressIn: handlePressIn,
81
94
  onPressOut: handlePressOut,
@@ -87,11 +100,11 @@ export const GameControls = ({
87
100
  }]
88
101
  }],
89
102
  children: [/*#__PURE__*/_jsx(Text, {
90
- style: styles.startButtonText,
91
- children: "START POPPING"
103
+ style: styles.buttonText,
104
+ children: startButtonText
92
105
  }), /*#__PURE__*/_jsx(Text, {
93
106
  style: styles.buttonSubtext,
94
- children: "Pop balloons to score!"
107
+ children: startButtonSubtext
95
108
  })]
96
109
  })
97
110
  })
@@ -100,7 +113,10 @@ export const GameControls = ({
100
113
  shadowColor: glowColor
101
114
  }],
102
115
  children: /*#__PURE__*/_jsx(TouchableOpacity, {
103
- style: [styles.stopButton],
116
+ style: [styles.button, styles.stopButton, {
117
+ backgroundColor: stopButtonColor,
118
+ borderColor: stopButtonBorderColor
119
+ }],
104
120
  onPress: onStopGame,
105
121
  onPressIn: handlePressIn,
106
122
  onPressOut: handlePressOut,
@@ -112,17 +128,17 @@ export const GameControls = ({
112
128
  }]
113
129
  }],
114
130
  children: [/*#__PURE__*/_jsx(Text, {
115
- style: styles.stopButtonText,
116
- children: "STOP GAME"
131
+ style: styles.buttonText,
132
+ children: stopButtonText
117
133
  }), /*#__PURE__*/_jsx(Text, {
118
134
  style: styles.buttonSubtext,
119
- children: "End current game"
135
+ children: stopButtonSubtext
120
136
  })]
121
137
  })
122
138
  })
123
139
  })]
124
140
  });
125
- };
141
+ });
126
142
  const styles = StyleSheet.create({
127
143
  gameControls: {
128
144
  justifyContent: 'center',
@@ -130,13 +146,11 @@ const styles = StyleSheet.create({
130
146
  paddingVertical: 20,
131
147
  paddingHorizontal: 20
132
148
  },
133
- startButton: {
134
- backgroundColor: '#3b82f6',
135
- // Blue for balloon theme
149
+ button: {
136
150
  paddingHorizontal: 32,
137
151
  paddingVertical: 20,
138
152
  borderRadius: 30,
139
- shadowColor: '#3b82f6',
153
+ shadowColor: '#000',
140
154
  shadowOffset: {
141
155
  width: 0,
142
156
  height: 8
@@ -149,34 +163,14 @@ const styles = StyleSheet.create({
149
163
  minHeight: 70,
150
164
  minWidth: 200,
151
165
  borderWidth: 3,
152
- borderColor: '#60a5fa',
153
- // Light blue border
154
166
  position: 'relative',
155
167
  overflow: 'hidden'
156
168
  },
169
+ startButton: {
170
+ // Colors will be applied via props
171
+ },
157
172
  stopButton: {
158
- backgroundColor: '#dc2626',
159
- // Red
160
- paddingHorizontal: 32,
161
- paddingVertical: 20,
162
- borderRadius: 30,
163
- shadowColor: '#dc2626',
164
- shadowOffset: {
165
- width: 0,
166
- height: 8
167
- },
168
- shadowOpacity: 0.4,
169
- shadowRadius: 12,
170
- elevation: 8,
171
- justifyContent: 'center',
172
- alignItems: 'center',
173
- minHeight: 70,
174
- minWidth: 200,
175
- borderWidth: 3,
176
- borderColor: '#f87171',
177
- // Light red border
178
- position: 'relative',
179
- overflow: 'hidden'
173
+ // Colors will be applied via props
180
174
  },
181
175
  stopButtonContainer: {
182
176
  shadowOffset: {
@@ -191,20 +185,7 @@ const styles = StyleSheet.create({
191
185
  alignItems: 'center',
192
186
  justifyContent: 'center'
193
187
  },
194
- startButtonText: {
195
- fontSize: 20,
196
- fontWeight: '800',
197
- color: '#ffffff',
198
- textAlign: 'center',
199
- textShadowColor: 'rgba(0, 0, 0, 0.3)',
200
- textShadowOffset: {
201
- width: 1,
202
- height: 1
203
- },
204
- textShadowRadius: 2,
205
- letterSpacing: 1
206
- },
207
- stopButtonText: {
188
+ buttonText: {
208
189
  fontSize: 20,
209
190
  fontWeight: '800',
210
191
  color: '#ffffff',
@@ -226,4 +207,4 @@ const styles = StyleSheet.create({
226
207
  letterSpacing: 0.5
227
208
  }
228
209
  });
229
- //# sourceMappingURL=GameControls.js.map
210
+ //# sourceMappingURL=GameControlButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useRef","useEffect","useMemo","View","TouchableOpacity","Text","StyleSheet","Animated","jsx","_jsx","jsxs","_jsxs","GameControlButton","memo","isPlaying","gameOver","onStartGame","onStopGame","startButtonText","stopButtonText","startButtonSubtext","stopButtonSubtext","startButtonColor","stopButtonColor","startButtonBorderColor","stopButtonBorderColor","scaleAnim","Value","current","pulseAnim","glowAnim","pulseAnimation","loop","sequence","timing","toValue","duration","useNativeDriver","start","stop","glowAnimation","handlePressIn","spring","handlePressOut","friction","tension","glowColor","interpolate","inputRange","outputRange","style","styles","gameControls","children","transform","scale","button","startButton","backgroundColor","borderColor","onPress","onPressIn","onPressOut","activeOpacity","buttonContent","buttonText","buttonSubtext","stopButtonContainer","shadowColor","stopButton","create","justifyContent","alignItems","paddingVertical","paddingHorizontal","borderRadius","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","minHeight","minWidth","borderWidth","position","overflow","fontSize","fontWeight","color","textAlign","textShadowColor","textShadowOffset","textShadowRadius","letterSpacing","marginTop"],"sourceRoot":"../../../../src","sources":["shared/helpers/GameControlButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet, Dimensions } from 'react-native';
4
+ const {
5
+ width: screenWidth
6
+ } = Dimensions.get('window');
7
+
8
+ /**
9
+ * Enhanced responsive dimensions for scoreboard optimization
10
+ * Provides better tablet support with dynamic sizing
11
+ */
12
+ export const getResponsiveScoreBoardDimensions = () => {
13
+ // Maximum container width for tablets (600px max)
14
+ const maxContainerWidth = Math.min(screenWidth * 0.9, 600);
15
+
16
+ // Minimum width for small phones
17
+ const minContainerWidth = Math.max(screenWidth * 0.85, 300);
18
+
19
+ // Calculate responsive width
20
+ const responsiveWidth = Math.min(maxContainerWidth, Math.max(minContainerWidth, screenWidth * 0.9));
21
+ return {
22
+ containerWidth: responsiveWidth,
23
+ isTablet: screenWidth >= 768,
24
+ isLargeTablet: screenWidth >= 1024,
25
+ padding: screenWidth >= 768 ? 24 : 20,
26
+ fontSize: {
27
+ label: screenWidth >= 768 ? 20 : 18,
28
+ value: screenWidth >= 768 ? 34 : 30,
29
+ time: screenWidth >= 768 ? 34 : 30
30
+ },
31
+ borderRadius: screenWidth >= 768 ? 20 : 16
32
+ };
33
+ };
34
+
35
+ /**
36
+ * Shared responsive styling for ScoreBoard components across all games
37
+ * Provides consistent maxWidth and centering for mobile/tablet optimization
38
+ */
39
+ export const createResponsiveScoreBoardStyle = gameSpecificStyle => {
40
+ const dimensions = getResponsiveScoreBoardDimensions();
41
+ return StyleSheet.create({
42
+ ...gameSpecificStyle,
43
+ scoreBoard: {
44
+ ...gameSpecificStyle.scoreBoard,
45
+ maxWidth: dimensions.containerWidth,
46
+ alignSelf: 'center',
47
+ width: '100%',
48
+ padding: dimensions.padding,
49
+ borderRadius: dimensions.borderRadius
50
+ }
51
+ });
52
+ };
53
+
54
+ /**
55
+ * Enhanced responsive container style that can be applied to any ScoreBoard
56
+ * Now includes dynamic sizing based on screen dimensions
57
+ */
58
+ export const RESPONSIVE_SCOREBOARD_CONTAINER = (() => {
59
+ const dimensions = getResponsiveScoreBoardDimensions();
60
+ return {
61
+ maxWidth: dimensions.containerWidth,
62
+ alignSelf: 'center',
63
+ width: '100%',
64
+ padding: dimensions.padding,
65
+ borderRadius: dimensions.borderRadius,
66
+ marginTop: 20
67
+ };
68
+ })();
69
+
70
+ /**
71
+ * Responsive font sizes for scoreboard text elements
72
+ */
73
+ export const RESPONSIVE_SCOREBOARD_FONTS = (() => {
74
+ const dimensions = getResponsiveScoreBoardDimensions();
75
+ return {
76
+ labelSize: dimensions.fontSize.label,
77
+ valueSize: dimensions.fontSize.value,
78
+ timeSize: dimensions.fontSize.time
79
+ };
80
+ })();
81
+ //# sourceMappingURL=ResponsiveScoreBoard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","Dimensions","width","screenWidth","get","getResponsiveScoreBoardDimensions","maxContainerWidth","Math","min","minContainerWidth","max","responsiveWidth","containerWidth","isTablet","isLargeTablet","padding","fontSize","label","value","time","borderRadius","createResponsiveScoreBoardStyle","gameSpecificStyle","dimensions","create","scoreBoard","maxWidth","alignSelf","RESPONSIVE_SCOREBOARD_CONTAINER","marginTop","RESPONSIVE_SCOREBOARD_FONTS","labelSize","valueSize","timeSize"],"sourceRoot":"../../../../src","sources":["shared/helpers/ResponsiveScoreBoard.ts"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAErD,MAAM;EAAEC,KAAK,EAAEC;AAAY,CAAC,GAAGF,UAAU,CAACG,GAAG,CAAC,QAAQ,CAAC;;AAEvD;AACA;AACA;AACA;AACA,OAAO,MAAMC,iCAAiC,GAAGA,CAAA,KAAM;EACrD;EACA,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAACL,WAAW,GAAG,GAAG,EAAE,GAAG,CAAC;;EAE1D;EACA,MAAMM,iBAAiB,GAAGF,IAAI,CAACG,GAAG,CAACP,WAAW,GAAG,IAAI,EAAE,GAAG,CAAC;;EAE3D;EACA,MAAMQ,eAAe,GAAGJ,IAAI,CAACC,GAAG,CAACF,iBAAiB,EAAEC,IAAI,CAACG,GAAG,CAACD,iBAAiB,EAAEN,WAAW,GAAG,GAAG,CAAC,CAAC;EAEnG,OAAO;IACLS,cAAc,EAAED,eAAe;IAC/BE,QAAQ,EAAEV,WAAW,IAAI,GAAG;IAC5BW,aAAa,EAAEX,WAAW,IAAI,IAAI;IAClCY,OAAO,EAAEZ,WAAW,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE;IACrCa,QAAQ,EAAE;MACRC,KAAK,EAAEd,WAAW,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE;MACnCe,KAAK,EAAEf,WAAW,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE;MACnCgB,IAAI,EAAEhB,WAAW,IAAI,GAAG,GAAG,EAAE,GAAG;IAClC,CAAC;IACDiB,YAAY,EAAEjB,WAAW,IAAI,GAAG,GAAG,EAAE,GAAG;EAC1C,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMkB,+BAA+B,GAAIC,iBAAsB,IAAK;EACzE,MAAMC,UAAU,GAAGlB,iCAAiC,CAAC,CAAC;EAEtD,OAAOL,UAAU,CAACwB,MAAM,CAAC;IACvB,GAAGF,iBAAiB;IACpBG,UAAU,EAAE;MACV,GAAGH,iBAAiB,CAACG,UAAU;MAC/BC,QAAQ,EAAEH,UAAU,CAACX,cAAc;MACnCe,SAAS,EAAE,QAAQ;MACnBzB,KAAK,EAAE,MAAM;MACba,OAAO,EAAEQ,UAAU,CAACR,OAAO;MAC3BK,YAAY,EAAEG,UAAU,CAACH;IAC3B;EACF,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMQ,+BAA+B,GAAG,CAAC,MAAM;EACpD,MAAML,UAAU,GAAGlB,iCAAiC,CAAC,CAAC;EAEtD,OAAO;IACLqB,QAAQ,EAAEH,UAAU,CAACX,cAAc;IACnCe,SAAS,EAAE,QAAiB;IAC5BzB,KAAK,EAAE,MAAe;IACtBa,OAAO,EAAEQ,UAAU,CAACR,OAAO;IAC3BK,YAAY,EAAEG,UAAU,CAACH,YAAY;IACrCS,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,CAAC;;AAEJ;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAG,CAAC,MAAM;EAChD,MAAMP,UAAU,GAAGlB,iCAAiC,CAAC,CAAC;EAEtD,OAAO;IACL0B,SAAS,EAAER,UAAU,CAACP,QAAQ,CAACC,KAAK;IACpCe,SAAS,EAAET,UAAU,CAACP,QAAQ,CAACE,KAAK;IACpCe,QAAQ,EAAEV,UAAU,CAACP,QAAQ,CAACG;EAChC,CAAC;AACH,CAAC,EAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export { GameControlButton } from "./GameControlButton.js";
4
+ export { createResponsiveScoreBoardStyle, RESPONSIVE_SCOREBOARD_CONTAINER, RESPONSIVE_SCOREBOARD_FONTS, getResponsiveScoreBoardDimensions } from "./ResponsiveScoreBoard.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GameControlButton","createResponsiveScoreBoardStyle","RESPONSIVE_SCOREBOARD_CONTAINER","RESPONSIVE_SCOREBOARD_FONTS","getResponsiveScoreBoardDimensions"],"sourceRoot":"../../../../src","sources":["shared/helpers/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,wBAAqB;AAEvD,SACEC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,2BAA2B,EAC3BC,iCAAiC,QAC5B,2BAAwB","ignoreList":[]}